about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua4
-rw-r--r--doc/builders/images/dockertools.section.md2
-rw-r--r--doc/contributing/contributing-to-documentation.chapter.md20
-rw-r--r--doc/contributing/reviewing-contributions.chapter.md105
-rw-r--r--doc/contributing/submitting-changes.chapter.md2
-rw-r--r--doc/doc-support/default.nix15
-rw-r--r--doc/languages-frameworks/coq.section.md2
-rw-r--r--doc/languages-frameworks/dotnet.section.md2
-rw-r--r--doc/languages-frameworks/python.section.md67
-rw-r--r--doc/release-notes.xml650
-rw-r--r--lib/default.nix4
-rw-r--r--lib/modules.nix9
-rw-r--r--lib/options.nix21
-rw-r--r--lib/tests/maintainer-module.nix31
-rw-r--r--lib/tests/maintainers.nix37
-rwxr-xr-xlib/tests/modules.sh11
-rw-r--r--lib/tests/modules/deferred-module-error.nix20
-rw-r--r--lib/tests/modules/deferred-module.nix58
-rw-r--r--lib/tests/modules/define-settingsDict-a-is-b.nix3
-rw-r--r--lib/tests/modules/submoduleFiles.nix21
-rw-r--r--lib/tests/release.nix4
-rw-r--r--lib/tests/teams.nix50
-rw-r--r--lib/types.nix53
-rw-r--r--maintainers/maintainer-list.nix361
-rw-r--r--maintainers/scripts/luarocks-packages.csv1
-rw-r--r--maintainers/team-list.nix16
-rw-r--r--nixos/doc/manual/configuration/xfce.chapter.md11
-rw-r--r--nixos/doc/manual/development/option-declarations.section.md9
-rw-r--r--nixos/doc/manual/development/option-types.section.md19
-rw-r--r--nixos/doc/manual/from_md/configuration/xfce.chapter.xml14
-rw-r--r--nixos/doc/manual/from_md/development/option-declarations.section.xml12
-rw-r--r--nixos/doc/manual/from_md/development/option-types.section.xml37
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2205.section.xml14
-rw-r--r--nixos/doc/manual/from_md/release-notes/rl-2211.section.xml155
-rw-r--r--nixos/doc/manual/release-notes/rl-2205.section.md6
-rw-r--r--nixos/doc/manual/release-notes/rl-2211.section.md53
-rw-r--r--nixos/lib/make-ext4-fs.nix9
-rw-r--r--nixos/lib/make-options-doc/default.nix18
-rw-r--r--nixos/lib/make-options-doc/mergeJSON.py146
-rw-r--r--nixos/lib/make-options-doc/options-to-docbook.xsl17
-rw-r--r--nixos/lib/systemd-unit-options.nix11
-rw-r--r--nixos/lib/test-driver/setup.py1
-rw-r--r--nixos/lib/testing-python.nix4
-rw-r--r--nixos/modules/config/console.nix4
-rw-r--r--nixos/modules/config/debug-info.nix19
-rw-r--r--nixos/modules/config/fonts/fontconfig.nix17
-rw-r--r--nixos/modules/config/i18n.nix13
-rw-r--r--nixos/modules/hardware/device-tree.nix18
-rw-r--r--nixos/modules/hardware/video/nvidia.nix19
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix3
-rw-r--r--nixos/modules/installer/sd-card/sd-image.nix15
-rw-r--r--nixos/modules/installer/tools/get-version-suffix7
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl9
-rw-r--r--nixos/modules/misc/documentation.nix31
-rw-r--r--nixos/modules/misc/ids.nix4
-rw-r--r--nixos/modules/misc/man-db.nix8
-rw-r--r--nixos/modules/misc/nixpkgs.nix108
-rw-r--r--nixos/modules/misc/nixpkgs/test.nix61
-rw-r--r--nixos/modules/module-list.nix7
-rw-r--r--nixos/modules/profiles/minimal.nix3
-rw-r--r--nixos/modules/programs/clickshare.nix21
-rw-r--r--nixos/modules/programs/thunar.nix44
-rw-r--r--nixos/modules/rename.nix1
-rw-r--r--nixos/modules/security/systemd-confinement.nix11
-rw-r--r--nixos/modules/services/audio/navidrome.nix3
-rw-r--r--nixos/modules/services/cluster/k3s/default.nix21
-rw-r--r--nixos/modules/services/databases/cassandra.nix127
-rw-r--r--nixos/modules/services/databases/riak.nix162
-rw-r--r--nixos/modules/services/desktops/pipewire/pipewire.nix5
-rw-r--r--nixos/modules/services/desktops/pipewire/wireplumber.nix15
-rw-r--r--nixos/modules/services/hardware/argonone.nix58
-rw-r--r--nixos/modules/services/home-automation/home-assistant.nix19
-rw-r--r--nixos/modules/services/logging/logrotate.nix2
-rw-r--r--nixos/modules/services/mail/schleuder.nix162
-rw-r--r--nixos/modules/services/matrix/appservice-irc.nix3
-rw-r--r--nixos/modules/services/matrix/synapse.nix18
-rw-r--r--nixos/modules/services/misc/geoipupdate.nix53
-rw-r--r--nixos/modules/services/misc/gitlab.nix28
-rw-r--r--nixos/modules/services/misc/gollum.nix9
-rw-r--r--nixos/modules/services/misc/paperless.nix2
-rw-r--r--nixos/modules/services/misc/radarr.nix10
-rw-r--r--nixos/modules/services/monitoring/grafana-agent.nix143
-rw-r--r--nixos/modules/services/monitoring/parsedmarc.nix163
-rw-r--r--nixos/modules/services/monitoring/prometheus/exporters/postfix.nix2
-rw-r--r--nixos/modules/services/network-filesystems/ipfs.nix2
-rw-r--r--nixos/modules/services/networking/bitlbee.nix1
-rw-r--r--nixos/modules/services/networking/mosquitto.nix40
-rw-r--r--nixos/modules/services/networking/prosody.nix79
-rw-r--r--nixos/modules/services/networking/routedns.nix84
-rw-r--r--nixos/modules/services/networking/syncthing.nix108
-rw-r--r--nixos/modules/services/networking/tailscale.nix13
-rw-r--r--nixos/modules/services/networking/trickster.nix20
-rw-r--r--nixos/modules/services/security/vaultwarden/default.nix72
-rw-r--r--nixos/modules/services/web-apps/nextcloud.nix9
-rw-r--r--nixos/modules/services/web-apps/tt-rss.nix1
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix4
-rw-r--r--nixos/modules/services/web-servers/nginx/location-options.nix11
-rw-r--r--nixos/modules/services/web-servers/nginx/vhost-options.nix2
-rw-r--r--nixos/modules/services/x11/desktop-managers/pantheon.nix51
-rw-r--r--nixos/modules/services/x11/desktop-managers/plasma5.nix4
-rw-r--r--nixos/modules/services/x11/desktop-managers/xfce.nix20
-rw-r--r--nixos/modules/services/x11/display-managers/xpra.nix9
-rw-r--r--nixos/modules/tasks/network-interfaces-scripted.nix2
-rw-r--r--nixos/modules/tasks/network-interfaces-systemd.nix25
-rw-r--r--nixos/modules/virtualisation/lxc-container.nix8
-rw-r--r--nixos/modules/virtualisation/xen-dom0.nix6
-rw-r--r--nixos/tests/acme.nix2
-rw-r--r--nixos/tests/all-tests.nix6
-rw-r--r--nixos/tests/containers-custom-pkgs.nix2
-rw-r--r--nixos/tests/convos.nix2
-rw-r--r--nixos/tests/docker-tools.nix5
-rw-r--r--nixos/tests/fcitx/default.nix1
-rw-r--r--nixos/tests/grafana-agent.nix32
-rw-r--r--nixos/tests/home-assistant.nix36
-rw-r--r--nixos/tests/k3s-single-node-docker.nix84
-rw-r--r--nixos/tests/kernel-generic.nix1
-rw-r--r--nixos/tests/matrix/appservice-irc.nix3
-rw-r--r--nixos/tests/networking.nix3
-rw-r--r--nixos/tests/paperless.nix2
-rw-r--r--nixos/tests/pykms.nix14
-rw-r--r--nixos/tests/riak.nix18
-rw-r--r--nixos/tests/schleuder.nix128
-rw-r--r--nixos/tests/systemd-networkd-vrf.nix65
-rw-r--r--nixos/tests/traefik.nix22
-rw-r--r--nixos/tests/vengi-tools.nix2
-rw-r--r--nixos/tests/virtualbox.nix29
-rw-r--r--nixos/tests/vscodium.nix8
-rw-r--r--nixos/tests/zeronet-conservancy.nix25
-rw-r--r--pkgs/applications/audio/amberol/default.nix6
-rw-r--r--pkgs/applications/audio/baudline/default.nix1
-rw-r--r--pkgs/applications/audio/easyeffects/default.nix4
-rw-r--r--pkgs/applications/audio/flacon/default.nix8
-rw-r--r--pkgs/applications/audio/ft2-clone/default.nix4
-rw-r--r--pkgs/applications/audio/geonkick/default.nix4
-rw-r--r--pkgs/applications/audio/google-play-music-desktop-player/default.nix82
-rw-r--r--pkgs/applications/audio/hqplayer-desktop/default.nix1
-rw-r--r--pkgs/applications/audio/klystrack/default.nix6
-rw-r--r--pkgs/applications/audio/losslessaudiochecker/default.nix1
-rw-r--r--pkgs/applications/audio/midas/generic.nix1
-rw-r--r--pkgs/applications/audio/ncpamixer/default.nix2
-rw-r--r--pkgs/applications/audio/noisetorch/default.nix2
-rw-r--r--pkgs/applications/audio/ocenaudio/default.nix1
-rw-r--r--pkgs/applications/audio/pocket-casts/default.nix1
-rw-r--r--pkgs/applications/audio/quodlibet/default.nix4
-rw-r--r--pkgs/applications/audio/reaper/default.nix7
-rw-r--r--pkgs/applications/audio/redux/default.nix1
-rw-r--r--pkgs/applications/audio/renoise/default.nix1
-rw-r--r--pkgs/applications/audio/rymcast/default.nix1
-rwxr-xr-xpkgs/applications/audio/soundwireserver/default.nix1
-rw-r--r--pkgs/applications/audio/spotify/default.nix1
-rw-r--r--pkgs/applications/audio/sunvox/default.nix1
-rw-r--r--pkgs/applications/audio/tidal-hifi/default.nix119
-rw-r--r--pkgs/applications/audio/tonelib-gfx/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-jam/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-metal/default.nix1
-rw-r--r--pkgs/applications/audio/tonelib-zoom/default.nix1
-rw-r--r--pkgs/applications/audio/transcribe/default.nix1
-rw-r--r--pkgs/applications/audio/vcv-rack/default.nix180
-rw-r--r--pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch21
-rw-r--r--pkgs/applications/audio/virtual-ans/default.nix1
-rw-r--r--pkgs/applications/backup/vorta/default.nix4
-rw-r--r--pkgs/applications/blockchains/btcpayserver/default.nix2
-rw-r--r--pkgs/applications/blockchains/clightning/default.nix4
-rw-r--r--pkgs/applications/blockchains/exodus/default.nix1
-rw-r--r--pkgs/applications/blockchains/go-ethereum/default.nix6
-rw-r--r--pkgs/applications/blockchains/ledger-live-desktop/default.nix6
-rw-r--r--pkgs/applications/blockchains/lightning-loop/default.nix6
-rw-r--r--pkgs/applications/blockchains/lndconnect/default.nix2
-rw-r--r--pkgs/applications/blockchains/nbxplorer/default.nix2
-rw-r--r--pkgs/applications/blockchains/nearcore/default.nix6
-rw-r--r--pkgs/applications/blockchains/sparrow/default.nix4
-rw-r--r--pkgs/applications/blockchains/wasabibackend/default.nix1
-rw-r--r--pkgs/applications/blockchains/wasabibackend/deps.nix21
-rw-r--r--pkgs/applications/blockchains/wasabiwallet/default.nix1
-rw-r--r--pkgs/applications/editors/atom/default.nix9
-rw-r--r--pkgs/applications/editors/cudatext/default.nix8
-rw-r--r--pkgs/applications/editors/cudatext/deps.json28
-rwxr-xr-xpkgs/applications/editors/cudatext/update.sh10
-rw-r--r--pkgs/applications/editors/eclipse/build-eclipse.nix1
-rw-r--r--pkgs/applications/editors/eclipse/plugins.nix24
-rw-r--r--pkgs/applications/editors/featherpad/default.nix4
-rw-r--r--pkgs/applications/editors/ghostwriter/default.nix4
-rw-r--r--pkgs/applications/editors/jetbrains/default.nix2
-rw-r--r--pkgs/applications/editors/ldtk/default.nix58
-rw-r--r--pkgs/applications/editors/lighttable/default.nix65
-rw-r--r--pkgs/applications/editors/neovim/build-neovim-plugin.nix35
-rw-r--r--pkgs/applications/editors/neovim/default.nix2
-rw-r--r--pkgs/applications/editors/neovim/utils.nix7
-rw-r--r--pkgs/applications/editors/netbeans/default.nix4
-rw-r--r--pkgs/applications/editors/pinegrow/default.nix1
-rw-r--r--pkgs/applications/editors/pixelorama/default.nix57
-rw-r--r--pkgs/applications/editors/quartus-prime/quartus.nix1
-rw-r--r--pkgs/applications/editors/rehex/default.nix2
-rw-r--r--pkgs/applications/editors/rstudio/default.nix34
-rw-r--r--pkgs/applications/editors/rstudio/fix-resources-path.patch19
-rw-r--r--pkgs/applications/editors/rstudio/package.json72
-rw-r--r--pkgs/applications/editors/rstudio/pandoc-nix-path.patch11
-rw-r--r--pkgs/applications/editors/rstudio/use-system-node.patch28
-rw-r--r--pkgs/applications/editors/rstudio/yarn.lock913
-rw-r--r--pkgs/applications/editors/rstudio/yarndeps.nix1956
-rw-r--r--pkgs/applications/editors/sublime/2/default.nix1
-rw-r--r--pkgs/applications/editors/sublime/3/common.nix1
-rw-r--r--pkgs/applications/editors/sublime/4/common.nix1
-rw-r--r--pkgs/applications/editors/vim/default.nix13
-rw-r--r--pkgs/applications/editors/vim/plugins/build-vim-plugin.nix10
-rw-r--r--pkgs/applications/editors/vim/plugins/default.nix22
-rw-r--r--pkgs/applications/editors/vim/plugins/generated.nix1136
-rw-r--r--pkgs/applications/editors/vim/plugins/overrides.nix196
-rwxr-xr-xpkgs/applications/editors/vim/plugins/update.py8
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-plugin-names26
-rw-r--r--pkgs/applications/editors/vim/plugins/vim-utils.nix37
-rw-r--r--pkgs/applications/editors/vscode/extensions/default.nix58
-rw-r--r--pkgs/applications/editors/vscode/extensions/ms-toolsai-jupyter/default.nix4
-rw-r--r--pkgs/applications/editors/vscode/extensions/python/default.nix13
-rw-r--r--pkgs/applications/editors/vscode/vscode.nix12
-rw-r--r--pkgs/applications/editors/vscode/vscodium.nix12
-rw-r--r--pkgs/applications/emulators/atari800/default.nix4
-rw-r--r--pkgs/applications/emulators/bochs/default.nix1
-rw-r--r--pkgs/applications/emulators/kega-fusion/default.nix1
-rw-r--r--pkgs/applications/emulators/ryujinx/deps.nix16
-rw-r--r--pkgs/applications/emulators/wine/base.nix4
-rw-r--r--pkgs/applications/emulators/wine/sources.nix10
-rw-r--r--pkgs/applications/finance/cryptowatch/default.nix1
-rw-r--r--pkgs/applications/finance/odoo/default.nix4
-rw-r--r--pkgs/applications/gis/gmt/default.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped-ltr.nix4
-rw-r--r--pkgs/applications/gis/qgis/unwrapped.nix4
-rw-r--r--pkgs/applications/gis/udig/default.nix1
-rw-r--r--pkgs/applications/graphics/ImageMagick/7.0.nix4
-rw-r--r--pkgs/applications/graphics/avocode/default.nix1
-rw-r--r--pkgs/applications/graphics/drawio/default.nix5
-rw-r--r--pkgs/applications/graphics/fiji/default.nix5
-rw-r--r--pkgs/applications/graphics/freecad/default.nix4
-rw-r--r--pkgs/applications/graphics/gimp/default.nix6
-rw-r--r--pkgs/applications/graphics/gimp/plugins/default.nix13
-rw-r--r--pkgs/applications/graphics/hydrus/default.nix4
-rw-r--r--pkgs/applications/graphics/image_optim/Gemfile.lock16
-rw-r--r--pkgs/applications/graphics/image_optim/gemset.nix36
-rw-r--r--pkgs/applications/graphics/ipe/default.nix6
-rw-r--r--pkgs/applications/graphics/kodelife/default.nix1
-rw-r--r--pkgs/applications/graphics/lightburn/default.nix1
-rw-r--r--pkgs/applications/graphics/lorien/default.nix124
-rw-r--r--pkgs/applications/graphics/mcomix/default.nix4
-rw-r--r--pkgs/applications/graphics/odafileconverter/default.nix1
-rw-r--r--pkgs/applications/graphics/panotools/default.nix7
-rw-r--r--pkgs/applications/graphics/pencil/default.nix1
-rw-r--r--pkgs/applications/graphics/pixeluvo/default.nix1
-rw-r--r--pkgs/applications/graphics/pixinsight/default.nix7
-rw-r--r--pkgs/applications/graphics/qosmic/default.nix22
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan4/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/brscan5/default.nix1
-rw-r--r--pkgs/applications/graphics/sane/backends/dsseries/default.nix1
-rw-r--r--pkgs/applications/graphics/solvespace/default.nix8
-rw-r--r--pkgs/applications/graphics/synfigstudio/default.nix182
-rw-r--r--pkgs/applications/graphics/tesseract/tesseract3.nix2
-rw-r--r--pkgs/applications/graphics/tesseract/tesseract4.nix2
-rw-r--r--pkgs/applications/graphics/unigine-heaven/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-sanctuary/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-superposition/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-tropics/default.nix1
-rw-r--r--pkgs/applications/graphics/unigine-valley/default.nix1
-rw-r--r--pkgs/applications/graphics/vengi-tools/default.nix4
-rw-r--r--pkgs/applications/graphics/write_stylus/default.nix1
-rw-r--r--pkgs/applications/kde/default.nix5
-rw-r--r--pkgs/applications/kde/fetch.sh2
-rw-r--r--pkgs/applications/kde/kdevelop/kdev-php.nix (renamed from pkgs/applications/editors/kdevelop5/kdev-php.nix)10
-rw-r--r--pkgs/applications/kde/kdevelop/kdev-python.nix (renamed from pkgs/applications/editors/kdevelop5/kdev-python.nix)18
-rw-r--r--pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix (renamed from pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix)8
-rw-r--r--pkgs/applications/kde/kdevelop/kdevelop.nix (renamed from pkgs/applications/editors/kdevelop5/kdevelop.nix)16
-rw-r--r--pkgs/applications/kde/kdevelop/wrapper.nix (renamed from pkgs/applications/editors/kdevelop5/wrapper.nix)0
-rw-r--r--pkgs/applications/kde/kio-extras.nix12
-rw-r--r--pkgs/applications/kde/srcs.nix1884
-rw-r--r--pkgs/applications/misc/1password-gui/beta.nix1
-rw-r--r--pkgs/applications/misc/1password-gui/default.nix1
-rw-r--r--pkgs/applications/misc/1password/default.nix12
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix34
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix34
-rw-r--r--pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix3
-rw-r--r--pkgs/applications/misc/HentaiAtHome/default.nix48
-rw-r--r--pkgs/applications/misc/adobe-reader/default.nix1
-rw-r--r--pkgs/applications/misc/anytype/default.nix4
-rw-r--r--pkgs/applications/misc/archivebox/default.nix15
-rw-r--r--pkgs/applications/misc/authenticator/default.nix6
-rw-r--r--pkgs/applications/misc/authy/default.nix1
-rw-r--r--pkgs/applications/misc/azuredatastudio/default.nix1
-rw-r--r--pkgs/applications/misc/bikeshed/default.nix4
-rw-r--r--pkgs/applications/misc/binance/default.nix5
-rw-r--r--pkgs/applications/misc/blender/default.nix4
-rw-r--r--pkgs/applications/misc/calibre/default.nix3
-rw-r--r--pkgs/applications/misc/cherrytree/default.nix4
-rw-r--r--pkgs/applications/misc/confclerk/default.nix18
-rw-r--r--pkgs/applications/misc/dbeaver/default.nix10
-rw-r--r--pkgs/applications/misc/debian-goodies/default.nix4
-rw-r--r--pkgs/applications/misc/diffuse/default.nix68
-rw-r--r--pkgs/applications/misc/dmenu/wayland.nix2
-rw-r--r--pkgs/applications/misc/etesync-dav/default.nix5
-rw-r--r--pkgs/applications/misc/foxitreader/default.nix1
-rw-r--r--pkgs/applications/misc/gmtp/default.nix6
-rw-r--r--pkgs/applications/misc/gollum/Gemfile.lock23
-rw-r--r--pkgs/applications/misc/gollum/gemset.nix65
-rw-r--r--pkgs/applications/misc/gometer/default.nix1
-rw-r--r--pkgs/applications/misc/googleearth-pro/default.nix1
-rw-r--r--pkgs/applications/misc/gpxsee/default.nix8
-rw-r--r--pkgs/applications/misc/hollywood/default.nix94
-rw-r--r--pkgs/applications/misc/hollywood/nixos-paths.patch67
-rw-r--r--pkgs/applications/misc/hubstaff/default.nix1
-rw-r--r--pkgs/applications/misc/icesl/default.nix1
-rw-r--r--pkgs/applications/misc/ideamaker/default.nix1
-rw-r--r--pkgs/applications/misc/ipmicfg/default.nix1
-rw-r--r--pkgs/applications/misc/ipmiview/default.nix5
-rw-r--r--pkgs/applications/misc/join-desktop/default.nix1
-rw-r--r--pkgs/applications/misc/joplin-desktop/default.nix6
-rw-r--r--pkgs/applications/misc/josm/default.nix6
-rw-r--r--pkgs/applications/misc/jotta-cli/default.nix1
-rw-r--r--pkgs/applications/misc/kdbplus/default.nix1
-rw-r--r--pkgs/applications/misc/kiwix/default.nix4
-rw-r--r--pkgs/applications/misc/kiwix/lib.nix4
-rw-r--r--pkgs/applications/misc/koreader/default.nix1
-rw-r--r--pkgs/applications/misc/logseq/default.nix4
-rwxr-xr-xpkgs/applications/misc/logseq/update.sh2
-rw-r--r--pkgs/applications/misc/mapproxy/default.nix4
-rw-r--r--pkgs/applications/misc/masterpdfeditor/default.nix1
-rw-r--r--pkgs/applications/misc/masterpdfeditor4/default.nix1
-rw-r--r--pkgs/applications/misc/megacmd/default.nix4
-rw-r--r--pkgs/applications/misc/mkgmap/splitter/default.nix4
-rw-r--r--pkgs/applications/misc/mystem/default.nix1
-rw-r--r--pkgs/applications/misc/octoprint/plugins.nix4
-rw-r--r--pkgs/applications/misc/organicmaps/default.nix16
-rw-r--r--pkgs/applications/misc/pastel/default.nix6
-rw-r--r--pkgs/applications/misc/pdfsam-basic/default.nix4
-rw-r--r--pkgs/applications/misc/pdfstudio/common.nix4
-rw-r--r--pkgs/applications/misc/playonlinux/default.nix1
-rw-r--r--pkgs/applications/misc/polar-bookshelf/default.nix1
-rw-r--r--pkgs/applications/misc/premid/default.nix1
-rw-r--r--pkgs/applications/misc/privacyidea/default.nix6
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix55
-rw-r--r--pkgs/applications/misc/rescuetime/default.nix1
-rw-r--r--pkgs/applications/misc/rivercarro/default.nix8
-rw-r--r--pkgs/applications/misc/robo3t/default.nix1
-rw-r--r--pkgs/applications/misc/rofi-rbw/default.nix6
-rw-r--r--pkgs/applications/misc/sidequest/default.nix1
-rw-r--r--pkgs/applications/misc/signumone-ks/default.nix4
-rw-r--r--pkgs/applications/misc/simplenote/default.nix1
-rw-r--r--pkgs/applications/misc/skytemple/default.nix22
-rw-r--r--pkgs/applications/misc/snapmaker-luban/default.nix1
-rw-r--r--pkgs/applications/misc/snowsql/default.nix1
-rw-r--r--pkgs/applications/misc/spacefm/default.nix7
-rw-r--r--pkgs/applications/misc/thedesk/default.nix1
-rw-r--r--pkgs/applications/misc/upwork/default.nix1
-rw-r--r--pkgs/applications/misc/whalebird/default.nix61
-rw-r--r--pkgs/applications/misc/xkblayout-state/default.nix4
-rw-r--r--pkgs/applications/misc/xmind/default.nix5
-rw-r--r--pkgs/applications/misc/xplr/default.nix8
-rw-r--r--pkgs/applications/misc/zettlr/default.nix4
-rw-r--r--pkgs/applications/networking/aether/default.nix1
-rw-r--r--pkgs/applications/networking/apache-directory-studio/default.nix4
-rw-r--r--pkgs/applications/networking/appgate-sdp/default.nix5
-rw-r--r--pkgs/applications/networking/blocky/default.nix6
-rw-r--r--pkgs/applications/networking/brig/default.nix52
-rw-r--r--pkgs/applications/networking/browsers/brave/default.nix5
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix4
-rw-r--r--pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch43
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json52
-rw-r--r--pkgs/applications/networking/browsers/firefox/common.nix7
-rw-r--r--pkgs/applications/networking/browsers/firefox/wrapper.nix7
-rw-r--r--pkgs/applications/networking/browsers/librewolf/src.json10
-rw-r--r--pkgs/applications/networking/browsers/microsoft-edge/browser.nix3
-rw-r--r--pkgs/applications/networking/browsers/microsoft-edge/default.nix12
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/default.nix4
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix1
-rw-r--r--pkgs/applications/networking/browsers/vivaldi/widevine.nix1
-rw-r--r--pkgs/applications/networking/cisco-packet-tracer/7.nix1
-rw-r--r--pkgs/applications/networking/cisco-packet-tracer/8.nix1
-rw-r--r--pkgs/applications/networking/cluster/argo/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/argocd/default.nix10
-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/cilium/default.nix32
-rw-r--r--pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/cmctl/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/driftctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/fluxcd/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/fluxctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/fn-cli/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm-docs/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/helm/chart-testing/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/hubble/default.nix31
-rw-r--r--pkgs/applications/networking/cluster/istioctl/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/k3s/default.nix20
-rw-r--r--pkgs/applications/networking/cluster/kn/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/default.nix35
-rw-r--r--pkgs/applications/networking/cluster/kubernetes/kubectl.nix19
-rw-r--r--pkgs/applications/networking/cluster/lens/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/linkerd/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/linkerd/edge.nix6
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.2.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/1.3.nix4
-rw-r--r--pkgs/applications/networking/cluster/nomad/generic.nix17
-rw-r--r--pkgs/applications/networking/cluster/ocm/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/octant/default.nix1
-rw-r--r--pkgs/applications/networking/cluster/pgo-client/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/rancher/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/roxctl/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix7
-rw-r--r--pkgs/applications/networking/cluster/talosctl/default.nix42
-rw-r--r--pkgs/applications/networking/cluster/tanka/default.nix6
-rw-r--r--pkgs/applications/networking/cluster/temporal-cli/default.nix17
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/default.nix14
-rw-r--r--pkgs/applications/networking/cluster/terraform-providers/providers.json322
-rw-r--r--pkgs/applications/networking/cluster/terraform/default.nix29
-rw-r--r--pkgs/applications/networking/cluster/terraform/provider-path.patch16
-rw-r--r--pkgs/applications/networking/cluster/tfswitch/default.nix4
-rw-r--r--pkgs/applications/networking/cluster/velero/default.nix8
-rw-r--r--pkgs/applications/networking/cluster/werf/default.nix6
-rw-r--r--pkgs/applications/networking/dnscontrol/default.nix13
-rw-r--r--pkgs/applications/networking/errbot/default.nix32
-rw-r--r--pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/flexget/default.nix4
-rw-r--r--pkgs/applications/networking/gopher/sacc/default.nix4
-rw-r--r--pkgs/applications/networking/hpmyroom/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/alfaview/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/chatty/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/darwin.nix10
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/default.nix9
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/linux.nix14
-rw-r--r--pkgs/applications/networking/instant-messengers/discord/openasar.nix42
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-desktop-package.json2
-rw-r--r--pkgs/applications/networking/instant-messengers/element/element-web-package.json4
-rw-r--r--pkgs/applications/networking/instant-messengers/element/pin.json8
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdi/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ferdium/default.nix22
-rw-r--r--pkgs/applications/networking/instant-messengers/franz/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/gitter/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/gotktrix/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/hipchat/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/client-gnome.nix64
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/client-qt.nix26
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common19
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/daemon.nix16
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/default.nix21
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/libclient.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix6
-rwxr-xr-xpkgs/applications/networking/instant-messengers/jami/update.sh24
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix5
-rw-r--r--pkgs/applications/networking/instant-messengers/matrix-commander/default.nix71
-rw-r--r--pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/ripcord/darwin.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/ripcord/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-cli/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/sky/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/stride/default.nix68
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/client.nix3
-rw-r--r--pkgs/applications/networking/instant-messengers/teamspeak/server.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/threema-desktop/default.nix7
-rw-r--r--pkgs/applications/networking/instant-messengers/turses/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/viber/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-cli/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-messenger/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix1
-rw-r--r--pkgs/applications/networking/insync/default.nix1
-rw-r--r--pkgs/applications/networking/insync/v3.nix1
-rw-r--r--pkgs/applications/networking/ipfs-cluster/default.nix6
-rw-r--r--pkgs/applications/networking/ipfs/default.nix4
-rw-r--r--pkgs/applications/networking/ipget/default.nix4
-rw-r--r--pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix6
-rw-r--r--pkgs/applications/networking/jmeter/default.nix4
-rw-r--r--pkgs/applications/networking/juju/default.nix10
-rw-r--r--pkgs/applications/networking/mailreaders/electron-mail/default.nix5
-rw-r--r--pkgs/applications/networking/mailreaders/mailspring/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix1
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix522
-rw-r--r--pkgs/applications/networking/mailreaders/thunderbird/packages.nix4
-rw-r--r--pkgs/applications/networking/mullvad-vpn/default.nix1
-rw-r--r--pkgs/applications/networking/n8n/node-packages.nix284
-rw-r--r--pkgs/applications/networking/nali/default.nix8
-rw-r--r--pkgs/applications/networking/newsreaders/raven-reader/default.nix4
-rw-r--r--pkgs/applications/networking/onionshare/default.nix2
-rw-r--r--pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix9
-rw-r--r--pkgs/applications/networking/p2p/jesec-rtorrent/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix4
-rw-r--r--pkgs/applications/networking/p2p/soulseekqt/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/tixati/default.nix1
-rw-r--r--pkgs/applications/networking/p2p/zeronet-conservancy/default.nix9
-rw-r--r--pkgs/applications/networking/pcloud/default.nix1
-rw-r--r--pkgs/applications/networking/remote/anydesk/default.nix5
-rw-r--r--pkgs/applications/networking/remote/aws-workspaces/default.nix1
-rw-r--r--pkgs/applications/networking/remote/citrix-workspace/generic.nix1
-rw-r--r--pkgs/applications/networking/remote/nice-dcv-client/default.nix1
-rw-r--r--pkgs/applications/networking/remote/teamviewer/default.nix1
-rw-r--r--pkgs/applications/networking/resilio-sync/default.nix1
-rw-r--r--pkgs/applications/networking/scaleft/default.nix1
-rw-r--r--pkgs/applications/networking/sniffers/sngrep/default.nix4
-rw-r--r--pkgs/applications/networking/spideroak/default.nix1
-rw-r--r--pkgs/applications/networking/sync/onedrive/default.nix4
-rw-r--r--pkgs/applications/networking/sync/rsync/base.nix22
-rw-r--r--pkgs/applications/networking/sync/rsync/default.nix39
-rw-r--r--pkgs/applications/networking/sync/rsync/rrsync.nix12
-rw-r--r--pkgs/applications/networking/syncthing-gtk/paths.patch22
-rw-r--r--pkgs/applications/networking/syncthing/default.nix4
-rw-r--r--pkgs/applications/networking/synology-drive-client/default.nix1
-rw-r--r--pkgs/applications/networking/termius/default.nix7
-rw-r--r--pkgs/applications/networking/tetrd/default.nix1
-rw-r--r--pkgs/applications/networking/warp/default.nix6
-rw-r--r--pkgs/applications/office/PageEdit/default.nix4
-rw-r--r--pkgs/applications/office/appflowy/default.nix1
-rw-r--r--pkgs/applications/office/gnucash/default.nix2
-rw-r--r--pkgs/applications/office/jabref/default.nix1
-rw-r--r--pkgs/applications/office/libreoffice/default.nix2
-rw-r--r--pkgs/applications/office/mendeley/default.nix1
-rw-r--r--pkgs/applications/office/moneyplex/default.nix1
-rw-r--r--pkgs/applications/office/morgen/default.nix1
-rw-r--r--pkgs/applications/office/onlyoffice-bin/default.nix1
-rw-r--r--pkgs/applications/office/paperless-ngx/default.nix2
-rw-r--r--pkgs/applications/office/portfolio/default.nix5
-rw-r--r--pkgs/applications/office/qownnotes/default.nix4
-rw-r--r--pkgs/applications/office/softmaker/generic.nix1
-rw-r--r--pkgs/applications/office/super-productivity/default.nix4
-rw-r--r--pkgs/applications/office/watson/default.nix11
-rw-r--r--pkgs/applications/office/wpsoffice/default.nix1
-rw-r--r--pkgs/applications/office/zotero/default.nix5
-rw-r--r--pkgs/applications/radio/gnuradio/3.9.nix4
-rw-r--r--pkgs/applications/radio/gnuradio/default.nix4
-rw-r--r--pkgs/applications/radio/js8call/cmake.patch69
-rw-r--r--pkgs/applications/radio/js8call/default.nix65
-rw-r--r--pkgs/applications/radio/sdrplay/default.nix1
-rw-r--r--pkgs/applications/science/astronomy/kstars/default.nix4
-rw-r--r--pkgs/applications/science/biology/MACS2/default.nix8
-rw-r--r--pkgs/applications/science/biology/flywheel-cli/default.nix1
-rw-r--r--pkgs/applications/science/biology/neuron/default.nix5
-rw-r--r--pkgs/applications/science/biology/quast/default.nix4
-rw-r--r--pkgs/applications/science/chemistry/openmolcas/default.nix12
-rw-r--r--pkgs/applications/science/electronics/bitscope/common.nix1
-rw-r--r--pkgs/applications/science/electronics/eagle/eagle.nix1
-rw-r--r--pkgs/applications/science/electronics/fped/default.nix5
-rw-r--r--pkgs/applications/science/electronics/horizon-eda/default.nix4
-rw-r--r--pkgs/applications/science/electronics/picoscope/default.nix2
-rw-r--r--pkgs/applications/science/geometry/gama/default.nix4
-rw-r--r--pkgs/applications/science/logic/abc/default.nix6
-rw-r--r--pkgs/applications/science/logic/formula/default.nix12
-rw-r--r--pkgs/applications/science/logic/formula/nuget.nix60
-rw-r--r--pkgs/applications/science/logic/isabelle/default.nix20
-rw-r--r--pkgs/applications/science/logic/nuXmv/default.nix1
-rw-r--r--pkgs/applications/science/logic/saw-tools/default.nix1
-rw-r--r--pkgs/applications/science/logic/tamarin-prover/default.nix1
-rw-r--r--pkgs/applications/science/logic/tlaplus/toolbox.nix1
-rw-r--r--pkgs/applications/science/logic/tptp/default.nix1
-rw-r--r--pkgs/applications/science/logic/verifast/default.nix1
-rw-r--r--pkgs/applications/science/logic/verit/default.nix1
-rw-r--r--pkgs/applications/science/logic/z3/4.4.0.nix2
-rw-r--r--pkgs/applications/science/machine-learning/sc2-headless/default.nix1
-rw-r--r--pkgs/applications/science/math/cplex/default.nix1
-rw-r--r--pkgs/applications/science/math/geogebra/default.nix4
-rw-r--r--pkgs/applications/science/math/geogebra/geogebra6.nix6
-rw-r--r--pkgs/applications/science/math/giac/default.nix3
-rw-r--r--pkgs/applications/science/math/ginac/default.nix4
-rw-r--r--pkgs/applications/science/math/gmsh/default.nix4
-rw-r--r--pkgs/applications/science/math/gurobi/default.nix5
-rw-r--r--pkgs/applications/science/math/hmetis/default.nix1
-rw-r--r--pkgs/applications/science/math/mathematica/generic.nix2
-rw-r--r--pkgs/applications/science/math/scilab-bin/default.nix1
-rw-r--r--pkgs/applications/science/math/wolfram-engine/default.nix1
-rw-r--r--pkgs/applications/science/math/wxmaxima/default.nix4
-rw-r--r--pkgs/applications/science/medicine/aliza/default.nix1
-rw-r--r--pkgs/applications/science/misc/boinc/default.nix6
-rw-r--r--pkgs/applications/science/misc/foldingathome/client.nix1
-rw-r--r--pkgs/applications/science/misc/foldingathome/control.nix1
-rw-r--r--pkgs/applications/science/misc/foldingathome/viewer.nix1
-rw-r--r--pkgs/applications/science/misc/snakemake/default.nix4
-rw-r--r--pkgs/applications/science/molecular-dynamics/gromacs/default.nix4
-rw-r--r--pkgs/applications/science/physics/dawn/default.nix34
-rw-r--r--pkgs/applications/science/programming/fdr/default.nix1
-rw-r--r--pkgs/applications/science/robotics/betaflight-configurator/default.nix7
-rw-r--r--pkgs/applications/science/robotics/emuflight-configurator/default.nix1
-rw-r--r--pkgs/applications/science/robotics/inav-configurator/default.nix1
-rw-r--r--pkgs/applications/system/glances/default.nix4
-rw-r--r--pkgs/applications/system/monitor/default.nix11
-rw-r--r--pkgs/applications/terminal-emulators/dterm/default.nix42
-rw-r--r--pkgs/applications/terminal-emulators/hyper/default.nix1
-rw-r--r--pkgs/applications/terminal-emulators/kitty/default.nix35
-rw-r--r--pkgs/applications/terminal-emulators/wezterm/default.nix6
-rw-r--r--pkgs/applications/version-management/bcompare/default.nix1
-rw-r--r--pkgs/applications/version-management/git-and-tools/gfold/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/gh/default.nix6
-rw-r--r--pkgs/applications/version-management/git-and-tools/ghorg/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-appraise/default.nix25
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-machete/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix8
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-secret/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/lefthook/default.nix6
-rw-r--r--pkgs/applications/version-management/git-lfs/default.nix2
-rw-r--r--pkgs/applications/version-management/gitea/default.nix15
-rw-r--r--pkgs/applications/version-management/github-desktop/default.nix1
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix9
-rw-r--r--pkgs/applications/version-management/gitlab/Remove-geo-from-database.yml.patch69
-rw-r--r--pkgs/applications/version-management/gitlab/data.json16
-rw-r--r--pkgs/applications/version-management/gitlab/default.nix14
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock4
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/default.nix8
-rw-r--r--pkgs/applications/version-management/gitlab/gitaly/gemset.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-shell/default.nix6
-rw-r--r--pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix4
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile48
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock159
-rw-r--r--pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix261
-rw-r--r--pkgs/applications/version-management/got/default.nix4
-rw-r--r--pkgs/applications/version-management/meld/default.nix22
-rw-r--r--pkgs/applications/version-management/mercurial/default.nix6
-rw-r--r--pkgs/applications/version-management/p4/default.nix1
-rw-r--r--pkgs/applications/version-management/p4v/default.nix1
-rw-r--r--pkgs/applications/version-management/sublime-merge/common.nix1
-rw-r--r--pkgs/applications/version-management/sublime-merge/default.nix8
-rw-r--r--pkgs/applications/video/anime-downloader/default.nix51
-rwxr-xr-xpkgs/applications/video/anime-downloader/update.sh8
-rw-r--r--pkgs/applications/video/clapper/default.nix9
-rw-r--r--pkgs/applications/video/clickshare-csc1/default.nix122
-rw-r--r--pkgs/applications/video/coriander/default.nix5
-rw-r--r--pkgs/applications/video/filebot/default.nix5
-rw-r--r--pkgs/applications/video/flirc/default.nix1
-rw-r--r--pkgs/applications/video/gnome-mplayer/default.nix5
-rw-r--r--pkgs/applications/video/haruna/default.nix25
-rw-r--r--pkgs/applications/video/hypnotix/default.nix5
-rw-r--r--pkgs/applications/video/jellyfin-media-player/default.nix15
-rw-r--r--pkgs/applications/video/jellyfin-mpv-shim/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/certifi/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/idna/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/requests/default.nix4
-rw-r--r--pkgs/applications/video/kodi/addons/urllib3/default.nix19
-rw-r--r--pkgs/applications/video/lightworks/default.nix1
-rw-r--r--pkgs/applications/video/makemkv/default.nix1
-rw-r--r--pkgs/applications/video/mkvtoolnix/default.nix4
-rw-r--r--pkgs/applications/video/streamlink-twitch-gui/bin.nix1
-rw-r--r--pkgs/applications/video/vlc/default.nix2
-rw-r--r--pkgs/applications/video/wxcam/default.nix51
-rw-r--r--pkgs/applications/virtualization/conmon/default.nix4
-rw-r--r--pkgs/applications/virtualization/crun/default.nix10
-rw-r--r--pkgs/applications/virtualization/docker/compose.nix6
-rw-r--r--pkgs/applications/virtualization/docker/distribution.nix4
-rw-r--r--pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix1
-rw-r--r--pkgs/applications/virtualization/driver/win-spice/default.nix1
-rw-r--r--pkgs/applications/virtualization/lima/default.nix6
-rw-r--r--pkgs/applications/virtualization/podman/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/default.nix4
-rw-r--r--pkgs/applications/virtualization/virtualbox/guest-additions/default.nix28
-rwxr-xr-xpkgs/applications/virtualization/vmware-workstation/default.nix1
-rw-r--r--pkgs/applications/window-managers/e16/default.nix11
-rw-r--r--pkgs/applications/window-managers/i3/i3-resurrect.nix4
-rw-r--r--pkgs/applications/window-managers/i3/status-rust.nix8
-rw-r--r--pkgs/applications/window-managers/shod/default.nix58
-rw-r--r--pkgs/applications/window-managers/sway/default.nix2
-rw-r--r--pkgs/applications/window-managers/sway/idle.nix10
-rw-r--r--pkgs/applications/window-managers/sway/lock-fancy.nix2
-rw-r--r--pkgs/build-support/appimage/default.nix12
-rw-r--r--pkgs/build-support/cc-wrapper/default.nix2
-rw-r--r--pkgs/build-support/coq/default.nix2
-rw-r--r--pkgs/build-support/docker/examples.nix41
-rw-r--r--pkgs/build-support/dotnet/build-dotnet-module/default.nix8
-rw-r--r--pkgs/build-support/dotnet/make-nuget-deps/default.nix11
-rw-r--r--pkgs/build-support/dotnet/nuget-to-nix/default.nix4
-rwxr-xr-xpkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh11
-rw-r--r--pkgs/build-support/fetchgit/default.nix4
-rwxr-xr-xpkgs/build-support/node/fetch-yarn-deps/index.js8
-rw-r--r--pkgs/build-support/prefer-remote-fetch/default.nix10
-rw-r--r--pkgs/build-support/replace-dependency.nix2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/lib.sh2
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/default.nix14
-rw-r--r--pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix3496
-rw-r--r--pkgs/build-support/src-only/default.nix28
-rw-r--r--pkgs/data/documentation/execline-man-pages/default.nix4
-rw-r--r--pkgs/data/documentation/scheme-manpages/default.nix8
-rw-r--r--pkgs/data/fonts/unifont/default.nix6
-rw-r--r--pkgs/data/fonts/unifont_upper/default.nix12
-rw-r--r--pkgs/data/fonts/victor-mono/default.nix14
-rw-r--r--pkgs/data/icons/papirus-icon-theme/default.nix4
-rw-r--r--pkgs/data/misc/hackage/pin.json8
-rw-r--r--pkgs/data/misc/mailcap/default.nix22
-rw-r--r--pkgs/data/misc/mobile-broadband-provider-info/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-domain-list-community/default.nix4
-rw-r--r--pkgs/data/misc/v2ray-geoip/default.nix6
-rw-r--r--pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix6
-rw-r--r--pkgs/data/themes/matcha/default.nix33
-rw-r--r--pkgs/data/themes/mojave/default.nix12
-rw-r--r--pkgs/data/themes/nordic/default.nix34
-rw-r--r--pkgs/data/themes/plasma-overdose-kde-theme/default.nix38
-rw-r--r--pkgs/desktops/gnome/apps/ghex/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-calendar/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-text-editor/default.nix4
-rw-r--r--pkgs/desktops/gnome/apps/gnome-todo/default.nix6
-rw-r--r--pkgs/desktops/gnome/apps/vinagre/default.nix12
-rw-r--r--pkgs/desktops/gnome/extensions/collisions.json8
-rw-r--r--pkgs/desktops/gnome/extensions/extensionRenames.nix6
-rw-r--r--pkgs/desktops/gnome/extensions/extensions.json108
-rw-r--r--pkgs/desktops/gnome/games/aisleriot/default.nix4
-rw-r--r--pkgs/desktops/gnome/misc/nautilus-python/default.nix7
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix8
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-tasks/default.nix8
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix6
-rw-r--r--pkgs/desktops/pantheon/services/elementary-notifications/default.nix7
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix7
-rw-r--r--pkgs/desktops/plasma-5/default.nix1
-rw-r--r--pkgs/desktops/plasma-5/fetch.sh2
-rw-r--r--pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch25
-rw-r--r--pkgs/desktops/plasma-5/kwayland-server/default.nix18
-rw-r--r--pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch12
-rw-r--r--pkgs/desktops/plasma-5/kwin/0002-xwayland.patch16
-rw-r--r--pkgs/desktops/plasma-5/kwin/default.nix12
-rw-r--r--pkgs/desktops/plasma-5/plasma-integration/default.nix6
-rw-r--r--pkgs/desktops/plasma-5/plasma-mobile/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/plasma-workspace/default.nix2
-rw-r--r--pkgs/desktops/plasma-5/powerdevil.nix2
-rw-r--r--pkgs/desktops/plasma-5/srcs.nix432
-rw-r--r--pkgs/development/compilers/binaryen/default.nix40
-rw-r--r--pkgs/development/compilers/bs-platform/ocaml.nix7
-rw-r--r--pkgs/development/compilers/dmd/default.nix4
-rw-r--r--pkgs/development/compilers/dotnet/default.nix98
-rw-r--r--pkgs/development/compilers/dtc/default.nix25
-rw-r--r--pkgs/development/compilers/dtc/python-3.10.patch28
-rw-r--r--pkgs/development/compilers/emscripten/default.nix6
-rw-r--r--pkgs/development/compilers/emscripten/package.json18
-rw-r--r--pkgs/development/compilers/emscripten/yarn.lock1558
-rw-r--r--pkgs/development/compilers/emscripten/yarn.nix1536
-rw-r--r--pkgs/development/compilers/fpc/binary.nix10
-rw-r--r--pkgs/development/compilers/fpc/default.nix4
-rw-r--r--pkgs/development/compilers/fpc/lazarus.nix4
-rw-r--r--pkgs/development/compilers/fpc/mark-paths.patch8
-rw-r--r--pkgs/development/compilers/gcc/4.9/default.nix6
-rw-r--r--pkgs/development/compilers/gcc/9/default.nix24
-rw-r--r--pkgs/development/compilers/gcc/common/pre-configure.nix10
-rw-r--r--pkgs/development/compilers/ghc/8.10.7.nix3
-rw-r--r--pkgs/development/compilers/ghc/9.0.2.nix3
-rw-r--r--pkgs/development/compilers/ghc/9.2.2-binary.nix448
-rw-r--r--pkgs/development/compilers/ghc/9.2.3.nix3
-rw-r--r--pkgs/development/compilers/ghcjs/ghcjs-base.nix8
-rw-r--r--pkgs/development/compilers/go/1.17.nix4
-rw-r--r--pkgs/development/compilers/go/1.18.nix4
-rw-r--r--pkgs/development/compilers/go/go-1.9-skip-flaky-20072.patch20
-rw-r--r--pkgs/development/compilers/hare/disable-failing-test-cases.patch37
-rw-r--r--pkgs/development/compilers/hare/hare.nix10
-rw-r--r--pkgs/development/compilers/hare/harec.nix6
-rw-r--r--pkgs/development/compilers/hare/setup-hook.sh11
-rw-r--r--pkgs/development/compilers/inklecate/deps-darwin.nix2
-rw-r--r--pkgs/development/compilers/inklecate/deps-linux.nix2
-rw-r--r--pkgs/development/compilers/juniper/default.nix2
-rw-r--r--pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch32
-rw-r--r--pkgs/development/compilers/llvm/14/compiler-rt/default.nix3
-rw-r--r--pkgs/development/compilers/vyper/default.nix3
-rw-r--r--pkgs/development/compilers/yosys/default.nix4
-rw-r--r--pkgs/development/coq-modules/hierarchy-builder/default.nix3
-rw-r--r--pkgs/development/coq-modules/paramcoq/default.nix3
-rw-r--r--pkgs/development/dotnet-modules/python-language-server/deps.nix22
-rw-r--r--pkgs/development/em-modules/generic/default.nix3
-rw-r--r--pkgs/development/embedded/arduino/arduino-core/default.nix5
-rw-r--r--pkgs/development/haskell-modules/cabal2nix-unstable.nix6
-rw-r--r--pkgs/development/haskell-modules/configuration-arm.nix1
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix91
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix2
-rw-r--r--pkgs/development/haskell-modules/configuration-ghcjs.nix5
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml43
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml268
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml116
-rw-r--r--pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml68
-rw-r--r--pkgs/development/haskell-modules/configuration-nix.nix54
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix7734
-rw-r--r--pkgs/development/haskell-modules/lib/compose.nix3
-rw-r--r--pkgs/development/haskell-modules/non-hackage-packages.nix4
-rw-r--r--pkgs/development/interpreters/clojure/default.nix4
-rw-r--r--pkgs/development/interpreters/dhall/build-dhall-url.nix4
-rw-r--r--pkgs/development/interpreters/groovy/default.nix6
-rw-r--r--pkgs/development/interpreters/lua-5/CVE-2022-28805.patch10
-rw-r--r--pkgs/development/interpreters/lua-5/build-lua-package.nix24
-rw-r--r--pkgs/development/interpreters/lua-5/default.nix16
-rw-r--r--pkgs/development/interpreters/lua-5/hooks/default.nix13
-rw-r--r--pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh18
-rw-r--r--pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh15
-rw-r--r--pkgs/development/interpreters/oak/default.nix25
-rw-r--r--pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch13
-rw-r--r--pkgs/development/interpreters/python/cpython/default.nix20
-rw-r--r--pkgs/development/interpreters/python/default.nix6
-rw-r--r--pkgs/development/interpreters/spidermonkey/78.nix4
-rw-r--r--pkgs/development/interpreters/wasmtime/default.nix20
-rw-r--r--pkgs/development/libraries/allegro/5.nix4
-rw-r--r--pkgs/development/libraries/amdvlk/default.nix4
-rw-r--r--pkgs/development/libraries/armadillo/default.nix4
-rw-r--r--pkgs/development/libraries/audio/libopenmpt-modplug/default.nix42
-rw-r--r--pkgs/development/libraries/boost/1.72.nix2
-rw-r--r--pkgs/development/libraries/boost/1.73.nix2
-rw-r--r--pkgs/development/libraries/boost/1.74.nix2
-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/capnproto/default.nix7
-rw-r--r--pkgs/development/libraries/capnproto/musl-no-fibers.patch244
-rw-r--r--pkgs/development/libraries/catch2/3.nix42
-rw-r--r--pkgs/development/libraries/cpp-utilities/default.nix4
-rw-r--r--pkgs/development/libraries/dbus/default.nix9
-rw-r--r--pkgs/development/libraries/dbus/make-dbus-conf.nix26
-rw-r--r--pkgs/development/libraries/doctest/default.nix4
-rw-r--r--pkgs/development/libraries/duckdb/default.nix16
-rw-r--r--pkgs/development/libraries/egl-wayland/default.nix4
-rw-r--r--pkgs/development/libraries/faudio/default.nix4
-rw-r--r--pkgs/development/libraries/ffmpeg-full/default.nix17
-rw-r--r--pkgs/development/libraries/flint/default.nix4
-rw-r--r--pkgs/development/libraries/folly/default.nix4
-rw-r--r--pkgs/development/libraries/geos/default.nix15
-rw-r--r--pkgs/development/libraries/glib/default.nix4
-rw-r--r--pkgs/development/libraries/gnu-efi/default.nix21
-rw-r--r--pkgs/development/libraries/gstreamer/bad/default.nix6
-rw-r--r--pkgs/development/libraries/gtksourceview/5.x.nix4
-rw-r--r--pkgs/development/libraries/hunspell/dictionaries.nix11
-rw-r--r--pkgs/development/libraries/intel-media-driver/default.nix4
-rw-r--r--pkgs/development/libraries/jansson/default.nix24
-rw-r--r--pkgs/development/libraries/jarowinkler-cpp/default.nix14
-rw-r--r--pkgs/development/libraries/java/commons/daemon/default.nix4
-rw-r--r--pkgs/development/libraries/json-c/default.nix13
-rw-r--r--pkgs/development/libraries/kde-frameworks/fetch.sh2
-rw-r--r--pkgs/development/libraries/kde-frameworks/plasma-framework.nix10
-rw-r--r--pkgs/development/libraries/kde-frameworks/srcs.nix664
-rw-r--r--pkgs/development/libraries/libbluedevil/default.nix21
-rw-r--r--pkgs/development/libraries/libcef/default.nix4
-rw-r--r--pkgs/development/libraries/libdbusmenu-qt/default.nix31
-rw-r--r--pkgs/development/libraries/libffi/default.nix13
-rw-r--r--pkgs/development/libraries/libffi/libffi-powerpc64.patch23
-rw-r--r--pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix1
-rw-r--r--pkgs/development/libraries/libkqueue/default.nix5
-rw-r--r--pkgs/development/libraries/libqmi/default.nix4
-rw-r--r--pkgs/development/libraries/libsciter/default.nix1
-rw-r--r--pkgs/development/libraries/libunwind/default.nix2
-rw-r--r--pkgs/development/libraries/libusb1/default.nix4
-rw-r--r--pkgs/development/libraries/libvgm/default.nix6
-rw-r--r--pkgs/development/libraries/libzip/default.nix4
-rw-r--r--pkgs/development/libraries/live555/default.nix33
-rw-r--r--pkgs/development/libraries/malcontent/default.nix4
-rw-r--r--pkgs/development/libraries/mapnik/default.nix13
-rw-r--r--pkgs/development/libraries/mesa/default.nix8
-rw-r--r--pkgs/development/libraries/monocypher/default.nix33
-rw-r--r--pkgs/development/libraries/ncurses/default.nix12
-rw-r--r--pkgs/development/libraries/ndi/default.nix1
-rw-r--r--pkgs/development/libraries/nghttp3/default.nix4
-rw-r--r--pkgs/development/libraries/ngtcp2/default.nix4
-rw-r--r--pkgs/development/libraries/nss/esr.nix4
-rw-r--r--pkgs/development/libraries/nss/generic.nix4
-rw-r--r--pkgs/development/libraries/nss/latest.nix4
-rw-r--r--pkgs/development/libraries/olm/default.nix4
-rw-r--r--pkgs/development/libraries/opencv/default.nix6
-rw-r--r--pkgs/development/libraries/openldap/default.nix42
-rw-r--r--pkgs/development/libraries/partio/default.nix25
-rw-r--r--pkgs/development/libraries/pipewire/default.nix29
-rw-r--r--pkgs/development/libraries/portaudio/default.nix9
-rw-r--r--pkgs/development/libraries/psol/generic.nix1
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.14/default.nix3
-rw-r--r--pkgs/development/libraries/qt-5/5.15/default.nix3
-rw-r--r--pkgs/development/libraries/qt-6/default.nix3
-rw-r--r--pkgs/development/libraries/qtscriptgenerator/default.nix51
-rw-r--r--pkgs/development/libraries/qtscriptgenerator/qt-4.8.patch23
-rw-r--r--pkgs/development/libraries/qtscriptgenerator/qtscriptgenerator.gcc-4.4.patch11
-rw-r--r--pkgs/development/libraries/rapidfuzz-cpp/default.nix16
-rw-r--r--pkgs/development/libraries/rapidfuzz-cpp/dont-fetch-project-options.patch58
-rw-r--r--pkgs/development/libraries/rapidjson/default.nix39
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix1
-rw-r--r--pkgs/development/libraries/science/math/cutensor/generic.nix1
-rw-r--r--pkgs/development/libraries/science/math/m4rie/default.nix4
-rw-r--r--pkgs/development/libraries/science/math/mkl/default.nix1
-rw-r--r--pkgs/development/libraries/science/math/tensorflow/bin.nix1
-rw-r--r--pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix1
-rw-r--r--pkgs/development/libraries/scmccid/default.nix1
-rw-r--r--pkgs/development/libraries/smpeg/default.nix21
-rw-r--r--pkgs/development/libraries/smpeg2/default.nix17
-rw-r--r--pkgs/development/libraries/smpeg2/hufftable-uint_max.patch33
-rw-r--r--pkgs/development/libraries/sokol/default.nix35
-rw-r--r--pkgs/development/libraries/taskflow/default.nix4
-rw-r--r--pkgs/development/libraries/thrift/default.nix56
-rw-r--r--pkgs/development/libraries/tracker/default.nix8
-rw-r--r--pkgs/development/libraries/unicorn/default.nix17
-rw-r--r--pkgs/development/libraries/unixODBCDrivers/default.nix2
-rw-r--r--pkgs/development/libraries/v8/8_x.nix7
-rw-r--r--pkgs/development/libraries/v8/default.nix1
-rw-r--r--pkgs/development/libraries/wtk/default.nix1
-rw-r--r--pkgs/development/libraries/wxSVG/default.nix11
-rw-r--r--pkgs/development/libraries/wxsqliteplus/default.nix19
-rw-r--r--pkgs/development/libraries/wxwidgets/wxGTK30.nix3
-rw-r--r--pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix27
-rw-r--r--pkgs/development/libraries/xxHash/default.nix47
-rw-r--r--pkgs/development/libraries/zimlib/default.nix14
-rw-r--r--pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch51
-rw-r--r--pkgs/development/libraries/zlib/default.nix6
-rw-r--r--pkgs/development/lua-modules/generated-packages.nix32
-rw-r--r--pkgs/development/lua-modules/overrides.nix31
-rw-r--r--pkgs/development/misc/msp430/mspds/binary.nix1
-rw-r--r--pkgs/development/mobile/adb-sync/default.nix2
-rw-r--r--pkgs/development/mobile/androidenv/emulator.nix2
-rw-r--r--pkgs/development/mobile/androidenv/tools/25.nix2
-rw-r--r--pkgs/development/mobile/androidenv/tools/26.nix2
-rw-r--r--pkgs/development/mobile/checkra1n/default.nix1
-rw-r--r--pkgs/development/mobile/genymotion/default.nix1
-rw-r--r--pkgs/development/mobile/gomobile/default.nix26
-rw-r--r--pkgs/development/node-packages/main-programs.nix2
-rw-r--r--pkgs/development/node-packages/node-packages.json8
-rw-r--r--pkgs/development/node-packages/node-packages.nix8721
-rw-r--r--pkgs/development/node-packages/overrides.nix12
-rw-r--r--pkgs/development/ocaml-modules/ffmpeg/base.nix4
-rw-r--r--pkgs/development/ocaml-modules/fmt/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/lablgtk/default.nix8
-rw-r--r--pkgs/development/ocaml-modules/mldoc/default.nix65
-rw-r--r--pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix8
-rw-r--r--pkgs/development/ocaml-modules/ocaml-r/default.nix2
-rw-r--r--pkgs/development/ocaml-modules/parmap/default.nix3
-rw-r--r--pkgs/development/ocaml-modules/pbkdf/default.nix17
-rw-r--r--pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/tsort/default.nix5
-rw-r--r--pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix3
-rw-r--r--pkgs/development/perl-modules/ham/default.nix1
-rw-r--r--pkgs/development/python-modules/GitPython/default.nix4
-rw-r--r--pkgs/development/python-modules/JPype1/default.nix4
-rw-r--r--pkgs/development/python-modules/Pmw/default.nix4
-rw-r--r--pkgs/development/python-modules/Rtree/default.nix34
-rw-r--r--pkgs/development/python-modules/adb-enhanced/default.nix4
-rw-r--r--pkgs/development/python-modules/aesara/default.nix8
-rw-r--r--pkgs/development/python-modules/ailment/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomusiccast/default.nix6
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix4
-rw-r--r--pkgs/development/python-modules/aiosteamist/default.nix7
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix1
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix12
-rw-r--r--pkgs/development/python-modules/aioymaps/default.nix4
-rw-r--r--pkgs/development/python-modules/amazon-ion/default.nix4
-rw-r--r--pkgs/development/python-modules/angr/default.nix4
-rw-r--r--pkgs/development/python-modules/angrop/default.nix9
-rw-r--r--pkgs/development/python-modules/ansible-later/default.nix2
-rw-r--r--pkgs/development/python-modules/ansible-lint/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible/core.nix4
-rw-r--r--pkgs/development/python-modules/ansible/default.nix4
-rw-r--r--pkgs/development/python-modules/antlr4-python3-runtime/default.nix3
-rw-r--r--pkgs/development/python-modules/anyio/default.nix2
-rw-r--r--pkgs/development/python-modules/aocd/default.nix6
-rw-r--r--pkgs/development/python-modules/apipkg/default.nix4
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix4
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix4
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/archspec/default.nix36
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix13
-rw-r--r--pkgs/development/python-modules/astroid/default.nix22
-rw-r--r--pkgs/development/python-modules/audible/default.nix12
-rw-r--r--pkgs/development/python-modules/aurorapy/default.nix4
-rw-r--r--pkgs/development/python-modules/authcaptureproxy/default.nix6
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix4
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-data-tables/default.nix34
-rw-r--r--pkgs/development/python-modules/azure-mgmt-consumption/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventhub/default.nix12
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-mgmt-relay/default.nix6
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix4
-rw-r--r--pkgs/development/python-modules/beaker/default.nix5
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/default.nix7
-rw-r--r--pkgs/development/python-modules/billiard/default.nix5
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix4
-rw-r--r--pkgs/development/python-modules/bitlist/default.nix4
-rw-r--r--pkgs/development/python-modules/blinkpy/default.nix6
-rw-r--r--pkgs/development/python-modules/botocore/default.nix2
-rw-r--r--pkgs/development/python-modules/breathe/default.nix6
-rw-r--r--pkgs/development/python-modules/browser-cookie3/default.nix4
-rw-r--r--pkgs/development/python-modules/cachecontrol/default.nix13
-rw-r--r--pkgs/development/python-modules/cachelib/default.nix4
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix4
-rw-r--r--pkgs/development/python-modules/casbin/default.nix4
-rw-r--r--pkgs/development/python-modules/censys/default.nix24
-rw-r--r--pkgs/development/python-modules/certbot/default.nix4
-rw-r--r--pkgs/development/python-modules/certifi/default.nix4
-rw-r--r--pkgs/development/python-modules/cfn-flip/default.nix2
-rw-r--r--pkgs/development/python-modules/channels/default.nix4
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix15
-rw-r--r--pkgs/development/python-modules/chess/default.nix4
-rw-r--r--pkgs/development/python-modules/claripy/default.nix4
-rw-r--r--pkgs/development/python-modules/cle/default.nix7
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix3
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix4
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix40
-rw-r--r--pkgs/development/python-modules/cloup/default.nix4
-rw-r--r--pkgs/development/python-modules/cocotb/0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch26
-rw-r--r--pkgs/development/python-modules/cocotb/default.nix10
-rw-r--r--pkgs/development/python-modules/colorama/default.nix5
-rw-r--r--pkgs/development/python-modules/compreffor/default.nix4
-rw-r--r--pkgs/development/python-modules/configobj/default.nix29
-rw-r--r--pkgs/development/python-modules/connexion/default.nix4
-rw-r--r--pkgs/development/python-modules/constantly/default.nix2
-rw-r--r--pkgs/development/python-modules/container-inspector/default.nix6
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix18
-rw-r--r--pkgs/development/python-modules/crownstone-uart/default.nix4
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix10
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix2
-rw-r--r--pkgs/development/python-modules/cssutils/default.nix8
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix4
-rw-r--r--pkgs/development/python-modules/dash/default.nix4
-rw-r--r--pkgs/development/python-modules/dask-gateway-server/default.nix32
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix54
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix6
-rw-r--r--pkgs/development/python-modules/dask/default.nix63
-rw-r--r--pkgs/development/python-modules/databases/default.nix4
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix1
-rw-r--r--pkgs/development/python-modules/datashader/default.nix4
-rw-r--r--pkgs/development/python-modules/deal-solver/default.nix17
-rw-r--r--pkgs/development/python-modules/debian/default.nix4
-rw-r--r--pkgs/development/python-modules/diff-cover/default.nix4
-rw-r--r--pkgs/development/python-modules/discogs-client/default.nix6
-rw-r--r--pkgs/development/python-modules/distributed/default.nix30
-rw-r--r--pkgs/development/python-modules/django-allauth/default.nix4
-rw-r--r--pkgs/development/python-modules/django-debug-toolbar/default.nix22
-rw-r--r--pkgs/development/python-modules/django-filter/default.nix4
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix49
-rw-r--r--pkgs/development/python-modules/django-oauth-toolkit/default.nix6
-rw-r--r--pkgs/development/python-modules/django-prometheus/default.nix4
-rw-r--r--pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch6
-rw-r--r--pkgs/development/python-modules/django-reversion/default.nix (renamed from pkgs/development/python-modules/django_reversion/default.nix)4
-rw-r--r--pkgs/development/python-modules/django-webpack-loader/default.nix4
-rw-r--r--pkgs/development/python-modules/djangoql/default.nix2
-rw-r--r--pkgs/development/python-modules/dremel3dpy/default.nix10
-rw-r--r--pkgs/development/python-modules/drf-spectacular-sidecar/default.nix4
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix6
-rw-r--r--pkgs/development/python-modules/ducc0/default.nix4
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix6
-rw-r--r--pkgs/development/python-modules/duckdb/default.nix4
-rw-r--r--pkgs/development/python-modules/email-validator/default.nix3
-rw-r--r--pkgs/development/python-modules/enaml/default.nix4
-rw-r--r--pkgs/development/python-modules/eth-typing/default.nix4
-rw-r--r--pkgs/development/python-modules/expiringdict/default.nix4
-rw-r--r--pkgs/development/python-modules/face_recognition/default.nix2
-rw-r--r--pkgs/development/python-modules/face_recognition_models/default.nix2
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix10
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix25
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix4
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix32
-rw-r--r--pkgs/development/python-modules/filecheck/default.nix29
-rw-r--r--pkgs/development/python-modules/filelock/default.nix13
-rw-r--r--pkgs/development/python-modules/filemagic/default.nix2
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix4
-rw-r--r--pkgs/development/python-modules/flammkuchen/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix28
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-mongoengine/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-security-too/default.nix4
-rw-r--r--pkgs/development/python-modules/flask-wtf/default.nix4
-rw-r--r--pkgs/development/python-modules/flickrapi/default.nix2
-rw-r--r--pkgs/development/python-modules/flower/default.nix3
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix4
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix64
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix34
-rw-r--r--pkgs/development/python-modules/functorch/default.nix5
-rw-r--r--pkgs/development/python-modules/furo/default.nix6
-rw-r--r--pkgs/development/python-modules/fuzzywuzzy/default.nix2
-rw-r--r--pkgs/development/python-modules/gcal-sync/default.nix4
-rw-r--r--pkgs/development/python-modules/gcsfs/default.nix8
-rw-r--r--pkgs/development/python-modules/gdown/default.nix7
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix4
-rw-r--r--pkgs/development/python-modules/geoip2/default.nix4
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix4
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix4
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix2
-rw-r--r--pkgs/development/python-modules/gnureadline/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-datastore/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-firestore/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-spanner/default.nix4
-rw-r--r--pkgs/development/python-modules/graph-tool/default.nix59
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix66
-rw-r--r--pkgs/development/python-modules/graphite-web/update-django-tagging.patch13
-rw-r--r--pkgs/development/python-modules/growattserver/default.nix19
-rw-r--r--pkgs/development/python-modules/gsd/default.nix6
-rw-r--r--pkgs/development/python-modules/gunicorn/default.nix57
-rw-r--r--pkgs/development/python-modules/gurobipy/linux.nix1
-rw-r--r--pkgs/development/python-modules/gvm-tools/default.nix4
-rw-r--r--pkgs/development/python-modules/gyp/default.nix20
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix4
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix6
-rw-r--r--pkgs/development/python-modules/homeconnect/default.nix2
-rw-r--r--pkgs/development/python-modules/hpccm/default.nix39
-rw-r--r--pkgs/development/python-modules/http-sfv/default.nix4
-rw-r--r--pkgs/development/python-modules/httpagentparser/default.nix5
-rw-r--r--pkgs/development/python-modules/httpbin/default.nix8
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix44
-rw-r--r--pkgs/development/python-modules/httpx/default.nix58
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix4
-rw-r--r--pkgs/development/python-modules/hyperion-py/default.nix11
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix16
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix9
-rw-r--r--pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix8
-rw-r--r--pkgs/development/python-modules/ifaddr/default.nix11
-rw-r--r--pkgs/development/python-modules/igraph/default.nix9
-rw-r--r--pkgs/development/python-modules/ihatemoney/default.nix4
-rw-r--r--pkgs/development/python-modules/imageio/default.nix4
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix6
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix30
-rw-r--r--pkgs/development/python-modules/immutables/default.nix14
-rw-r--r--pkgs/development/python-modules/infinity/default.nix28
-rw-r--r--pkgs/development/python-modules/injector/default.nix4
-rw-r--r--pkgs/development/python-modules/inotify-simple/default.nix2
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix4
-rw-r--r--pkgs/development/python-modules/intake/default.nix64
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix4
-rw-r--r--pkgs/development/python-modules/ipaddress/default.nix27
-rw-r--r--pkgs/development/python-modules/jaraco-test/default.nix54
-rw-r--r--pkgs/development/python-modules/jarowinkler/default.nix17
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix1
-rw-r--r--pkgs/development/python-modules/jc/default.nix4
-rw-r--r--pkgs/development/python-modules/jsbeautifier/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonpatch/default.nix38
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix12
-rw-r--r--pkgs/development/python-modules/junos-eznc/default.nix2
-rw-r--r--pkgs/development/python-modules/jupyter_server/default.nix33
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix5
-rw-r--r--pkgs/development/python-modules/kerberos/default.nix6
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix6
-rw-r--r--pkgs/development/python-modules/langdetect/default.nix2
-rw-r--r--pkgs/development/python-modules/libcst/default.nix15
-rw-r--r--pkgs/development/python-modules/libversion/default.nix15
-rw-r--r--pkgs/development/python-modules/limits/default.nix7
-rw-r--r--pkgs/development/python-modules/locket/default.nix21
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix4
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix4
-rw-r--r--pkgs/development/python-modules/lxml/default.nix4
-rw-r--r--pkgs/development/python-modules/m2r/default.nix9
-rw-r--r--pkgs/development/python-modules/manuel/default.nix4
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix8
-rw-r--r--pkgs/development/python-modules/mdx-truly-sane-lists/default.nix36
-rw-r--r--pkgs/development/python-modules/miniaudio/default.nix6
-rw-r--r--pkgs/development/python-modules/mitogen/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-exclude/default.nix37
-rw-r--r--pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix37
-rw-r--r--pkgs/development/python-modules/mkdocs-gitlab-plugin/mkdocs-gitlab-plugin.diff37
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--pkgs/development/python-modules/mockito/default.nix4
-rw-r--r--pkgs/development/python-modules/moto/default.nix10
-rw-r--r--pkgs/development/python-modules/msgpack/default.nix18
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix4
-rw-r--r--pkgs/development/python-modules/napalm/default.nix8
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix6
-rw-r--r--pkgs/development/python-modules/netifaces/default.nix17
-rw-r--r--pkgs/development/python-modules/networkx/default.nix13
-rw-r--r--pkgs/development/python-modules/nexia/default.nix4
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix4
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix4
-rw-r--r--pkgs/development/python-modules/nose_progressive/default.nix2
-rw-r--r--pkgs/development/python-modules/notebook/default.nix4
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix4
-rw-r--r--pkgs/development/python-modules/numpy/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix4
-rw-r--r--pkgs/development/python-modules/ocrmypdf/paths.patch40
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/ordereddict/default.nix21
-rw-r--r--pkgs/development/python-modules/oscpy/default.nix24
-rwxr-xr-xpkgs/development/python-modules/osmnx/default.nix6
-rw-r--r--pkgs/development/python-modules/osmpythontools/default.nix6
-rw-r--r--pkgs/development/python-modules/pad4pi/default.nix24
-rw-r--r--pkgs/development/python-modules/param/default.nix6
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix17
-rw-r--r--pkgs/development/python-modules/parts/default.nix4
-rw-r--r--pkgs/development/python-modules/pbr/default.nix5
-rw-r--r--pkgs/development/python-modules/pdftotext/default.nix2
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/pefile/default.nix12
-rw-r--r--pkgs/development/python-modules/pex/default.nix4
-rw-r--r--pkgs/development/python-modules/pgcli/default.nix (renamed from pkgs/development/tools/database/pgcli/default.nix)6
-rw-r--r--pkgs/development/python-modules/pglast/default.nix4
-rw-r--r--pkgs/development/python-modules/pgpy/default.nix5
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix6
-rw-r--r--pkgs/development/python-modules/pillow/default.nix4
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix4
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix4
-rw-r--r--pkgs/development/python-modules/psutil/default.nix11
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix5
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix4
-rw-r--r--pkgs/development/python-modules/pulumi-aws/default.nix4
-rw-r--r--pkgs/development/python-modules/pure-eval/default.nix13
-rw-r--r--pkgs/development/python-modules/py4j/default.nix4
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/pyannotate/default.nix34
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix37
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix12
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix4
-rw-r--r--pkgs/development/python-modules/pychm/default.nix27
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix4
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix6
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix31
-rw-r--r--pkgs/development/python-modules/pycryptodome/vectors.nix (renamed from pkgs/development/python-modules/pycryptodome-test-vectors/default.nix)0
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix26
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix44
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix14
-rw-r--r--pkgs/development/python-modules/pyenvisalink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyfuse3/default.nix5
-rw-r--r--pkgs/development/python-modules/pygal/default.nix42
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix6
-rw-r--r--pkgs/development/python-modules/pyhiveapi/default.nix4
-rw-r--r--pkgs/development/python-modules/pyjwt/default.nix8
-rw-r--r--pkgs/development/python-modules/pyld/default.nix (renamed from pkgs/development/python-modules/PyLD/default.nix)4
-rw-r--r--pkgs/development/python-modules/pylink-square/default.nix33
-rw-r--r--pkgs/development/python-modules/pylint/default.nix23
-rw-r--r--pkgs/development/python-modules/pymazda/default.nix4
-rw-r--r--pkgs/development/python-modules/pymc/default.nix6
-rw-r--r--pkgs/development/python-modules/pymemcache/default.nix15
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix4
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix4
-rw-r--r--pkgs/development/python-modules/pypoolstation/default.nix6
-rw-r--r--pkgs/development/python-modules/pyrogram/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-core/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ethtool/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipdb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ipset/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-ndb/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nftables/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-nslink/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2-protocols/default.nix4
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix4
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix13
-rw-r--r--pkgs/development/python-modules/pyserial/default.nix32
-rw-r--r--pkgs/development/python-modules/pyside2/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-backend-splunk/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-windows/default.nix6
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix6
-rw-r--r--pkgs/development/python-modules/pysnmp-pysmi/default.nix6
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix8
-rw-r--r--pkgs/development/python-modules/pyspcwebgw/default.nix6
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix8
-rw-r--r--pkgs/development/python-modules/pytenable/default.nix6
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-annotate/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-env/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix8
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-localserver/default.nix9
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix4
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix2
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix12
-rw-r--r--pkgs/development/python-modules/python-ldap-test/default.nix4
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix5
-rw-r--r--pkgs/development/python-modules/python-olm/default.nix5
-rw-r--r--pkgs/development/python-modules/python-rapidjson/default.nix47
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix12
-rw-r--r--pkgs/development/python-modules/pytibber/default.nix4
-rw-r--r--pkgs/development/python-modules/pytorch/bin.nix1
-rw-r--r--pkgs/development/python-modules/pytorch/default.nix26
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix4
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix4
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix60
-rw-r--r--pkgs/development/python-modules/qcelemental/default.nix4
-rw-r--r--pkgs/development/python-modules/qiling/default.nix4
-rw-r--r--pkgs/development/python-modules/qiskit-finance/default.nix6
-rw-r--r--pkgs/development/python-modules/qiskit-nature/default.nix4
-rw-r--r--pkgs/development/python-modules/qutip/default.nix137
-rw-r--r--pkgs/development/python-modules/railroad-diagrams/default.nix16
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix11
-rw-r--r--pkgs/development/python-modules/raven/default.nix18
-rw-r--r--pkgs/development/python-modules/rdkit/default.nix22
-rw-r--r--pkgs/development/python-modules/rencode/default.nix24
-rw-r--r--pkgs/development/python-modules/repoze_lru/default.nix3
-rw-r--r--pkgs/development/python-modules/requests/default.nix25
-rw-r--r--pkgs/development/python-modules/responses/default.nix4
-rw-r--r--pkgs/development/python-modules/rns/default.nix4
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix7
-rw-r--r--pkgs/development/python-modules/ropgadget/default.nix6
-rw-r--r--pkgs/development/python-modules/routes/default.nix15
-rw-r--r--pkgs/development/python-modules/rpi-gpio/default.nix23
-rw-r--r--pkgs/development/python-modules/rpi-gpio2/default.nix28
-rw-r--r--pkgs/development/python-modules/rplcd/default.nix24
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix22
-rw-r--r--pkgs/development/python-modules/sabyenc3/default.nix4
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix4
-rw-r--r--pkgs/development/python-modules/sanic-testing/default.nix4
-rw-r--r--pkgs/development/python-modules/schwifty/default.nix49
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix4
-rw-r--r--pkgs/development/python-modules/scrap-engine/default.nix24
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix4
-rw-r--r--pkgs/development/python-modules/selectors2/mapping-import.patch14
-rw-r--r--pkgs/development/python-modules/selenium/default.nix65
-rw-r--r--pkgs/development/python-modules/sentry-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix2
-rw-r--r--pkgs/development/python-modules/simple-rest-client/default.nix4
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/sleekxmpp/default.nix4
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix7
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix6
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix19
-rw-r--r--pkgs/development/python-modules/soco/default.nix6
-rw-r--r--pkgs/development/python-modules/sopel/default.nix28
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix19
-rw-r--r--pkgs/development/python-modules/sparse/default.nix26
-rw-r--r--pkgs/development/python-modules/sphinx-basic-ng/default.nix44
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix2
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-spelling/default.nix4
-rw-r--r--pkgs/development/python-modules/splinter/default.nix8
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/ssh-mitm/default.nix4
-rw-r--r--pkgs/development/python-modules/starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/streamz/default.nix18
-rw-r--r--pkgs/development/python-modules/strenum/default.nix4
-rw-r--r--pkgs/development/python-modules/stripe/default.nix4
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix4
-rw-r--r--pkgs/development/python-modules/svg-path/default.nix4
-rw-r--r--pkgs/development/python-modules/systemd/default.nix36
-rw-r--r--pkgs/development/python-modules/tabula-py/default.nix62
-rw-r--r--pkgs/development/python-modules/tensorboard/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/default.nix4
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix15
-rw-r--r--pkgs/development/python-modules/tensorflow/binary-hashes.nix50
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix29
-rwxr-xr-xpkgs/development/python-modules/tensorflow/prefetcher.sh18
-rw-r--r--pkgs/development/python-modules/threat9-test-bed/default.nix65
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix7
-rw-r--r--pkgs/development/python-modules/time-machine/default.nix4
-rw-r--r--pkgs/development/python-modules/timetagger/default.nix4
-rw-r--r--pkgs/development/python-modules/torchaudio/bin.nix1
-rw-r--r--pkgs/development/python-modules/torchvision/bin.nix1
-rw-r--r--pkgs/development/python-modules/trio-websocket/default.nix42
-rw-r--r--pkgs/development/python-modules/trytond/default.nix4
-rw-r--r--pkgs/development/python-modules/tubeup/default.nix4
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twine/default.nix6
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pytz/default.nix4
-rw-r--r--pkgs/development/python-modules/types-pyyaml/default.nix30
-rw-r--r--pkgs/development/python-modules/types-redis/default.nix4
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix4
-rw-r--r--pkgs/development/python-modules/types-tabulate/default.nix4
-rw-r--r--pkgs/development/python-modules/types-typed-ast/default.nix4
-rw-r--r--pkgs/development/python-modules/ultraheat-api/default.nix4
-rw-r--r--pkgs/development/python-modules/unidecode/default.nix7
-rw-r--r--pkgs/development/python-modules/unifi-discovery/default.nix6
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix21
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix2
-rw-r--r--pkgs/development/python-modules/vaa/default.nix4
-rw-r--r--pkgs/development/python-modules/vapoursynth/default.nix22
-rw-r--r--pkgs/development/python-modules/vulture/default.nix27
-rw-r--r--pkgs/development/python-modules/waitress/default.nix4
-rw-r--r--pkgs/development/python-modules/wandb/default.nix17
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix9
-rw-r--r--pkgs/development/python-modules/watchdog/force-kqueue.patch159
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix20
-rw-r--r--pkgs/development/python-modules/webob/default.nix32
-rw-r--r--pkgs/development/python-modules/websockets/default.nix4
-rw-r--r--pkgs/development/python-modules/weconnect-mqtt/default.nix6
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix4
-rw-r--r--pkgs/development/python-modules/xdis/default.nix9
-rw-r--r--pkgs/development/python-modules/xhtml2pdf/default.nix6
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix4
-rw-r--r--pkgs/development/python-modules/xmltodict/default.nix8
-rw-r--r--pkgs/development/python-modules/yamlordereddictloader/default.nix4
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix6
-rw-r--r--pkgs/development/python-modules/youtube-search-python/default.nix4
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix6
-rw-r--r--pkgs/development/python-modules/zipp/default.nix6
-rw-r--r--pkgs/development/python2-modules/botocore/default.nix2
-rw-r--r--pkgs/development/r-modules/default.nix16
-rw-r--r--pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb14
-rw-r--r--pkgs/development/ruby-modules/gem-config/default.nix8
-rw-r--r--pkgs/development/tools/analysis/actionlint/default.nix6
-rw-r--r--pkgs/development/tools/analysis/autoflake/default.nix30
-rw-r--r--pkgs/development/tools/analysis/checkov/default.nix4
-rw-r--r--pkgs/development/tools/analysis/checkstyle/default.nix4
-rw-r--r--pkgs/development/tools/analysis/cvehound/default.nix6
-rw-r--r--pkgs/development/tools/analysis/radare2/default.nix9
-rw-r--r--pkgs/development/tools/analysis/tflint/default.nix4
-rw-r--r--pkgs/development/tools/analysis/tfsec/default.nix9
-rw-r--r--pkgs/development/tools/apko/default.nix6
-rw-r--r--pkgs/development/tools/appthreat-depscan/default.nix4
-rw-r--r--pkgs/development/tools/asmfmt/default.nix21
-rw-r--r--pkgs/development/tools/asmfmt/deps.nix20
-rw-r--r--pkgs/development/tools/azure-functions-core-tools/default.nix4
-rw-r--r--pkgs/development/tools/bazelisk/default.nix6
-rw-r--r--pkgs/development/tools/beancount-language-server/default.nix6
-rw-r--r--pkgs/development/tools/buf/default.nix6
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_4/default.nix15
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel_5/default.nix16
-rw-r--r--pkgs/development/tools/build-managers/bloop/default.nix1
-rw-r--r--pkgs/development/tools/build-managers/conan/default.nix15
-rw-r--r--pkgs/development/tools/build-managers/gradle/default.nix5
-rw-r--r--pkgs/development/tools/build-managers/msbuild/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/default.nix20
-rw-r--r--pkgs/development/tools/build-managers/scala-cli/sources.json10
-rw-r--r--pkgs/development/tools/cambalache/default.nix9
-rw-r--r--pkgs/development/tools/ccloud-cli/default.nix1
-rw-r--r--pkgs/development/tools/check/default.nix22
-rw-r--r--pkgs/development/tools/check/deps.nix11
-rw-r--r--pkgs/development/tools/clj-kondo/default.nix4
-rw-r--r--pkgs/development/tools/cloud-nuke/default.nix6
-rw-r--r--pkgs/development/tools/comby/default.nix5
-rw-r--r--pkgs/development/tools/confluent-cli/default.nix1
-rw-r--r--pkgs/development/tools/conftest/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/dagger/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/drone/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/fly/default.nix27
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/github-runner/deps.nix10
-rw-r--r--pkgs/development/tools/continuous-integration/gitlab-runner/default.nix6
-rw-r--r--pkgs/development/tools/continuous-integration/jenkins/default.nix4
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/agent.nix17
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/cli.nix17
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/common.nix36
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/frontend.nix40
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/server.nix27
-rwxr-xr-xpkgs/development/tools/continuous-integration/woodpecker/update.sh50
-rw-r--r--pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json63
-rw-r--r--pkgs/development/tools/dapper/default.nix19
-rw-r--r--pkgs/development/tools/database/sqlfluff/default.nix4
-rw-r--r--pkgs/development/tools/ddosify/default.nix6
-rw-r--r--pkgs/development/tools/deadnix/default.nix6
-rw-r--r--pkgs/development/tools/delve/default.nix1
-rw-r--r--pkgs/development/tools/doctl/default.nix4
-rw-r--r--pkgs/development/tools/dyff/default.nix6
-rw-r--r--pkgs/development/tools/earthly/default.nix6
-rw-r--r--pkgs/development/tools/eclipse-mat/default.nix1
-rw-r--r--pkgs/development/tools/esbuild/default.nix8
-rw-r--r--pkgs/development/tools/flyway/default.nix4
-rw-r--r--pkgs/development/tools/golangci-lint-langserver/default.nix27
-rw-r--r--pkgs/development/tools/google-app-engine-go-sdk/default.nix4
-rw-r--r--pkgs/development/tools/gosca/default.nix34
-rw-r--r--pkgs/development/tools/gosec/default.nix6
-rw-r--r--pkgs/development/tools/gotags/default.nix15
-rw-r--r--pkgs/development/tools/grpc-gateway/default.nix29
-rw-r--r--pkgs/development/tools/iaca/2.1.nix1
-rw-r--r--pkgs/development/tools/iaca/3.0.nix1
-rw-r--r--pkgs/development/tools/ineffassign/default.nix27
-rw-r--r--pkgs/development/tools/jbake/default.nix6
-rw-r--r--pkgs/development/tools/jd-diff-patch/default.nix6
-rw-r--r--pkgs/development/tools/jira-cli-go/default.nix4
-rw-r--r--pkgs/development/tools/jira_cli/default.nix4
-rw-r--r--pkgs/development/tools/jless/default.nix2
-rw-r--r--pkgs/development/tools/k6/default.nix4
-rw-r--r--pkgs/development/tools/kube-prompt/default.nix23
-rw-r--r--pkgs/development/tools/kube-prompt/deps.nix993
-rw-r--r--pkgs/development/tools/kubicorn/default.nix26
-rw-r--r--pkgs/development/tools/kythe/default.nix1
-rw-r--r--pkgs/development/tools/lc3tools/0004-configure-use-cc.patch22
-rw-r--r--pkgs/development/tools/lc3tools/default.nix10
-rw-r--r--pkgs/development/tools/maligned/default.nix27
-rw-r--r--pkgs/development/tools/maligned/deps.nix20
-rw-r--r--pkgs/development/tools/mblock-mlink/default.nix1
-rw-r--r--pkgs/development/tools/metal-cli/default.nix6
-rw-r--r--pkgs/development/tools/millet/default.nix29
-rw-r--r--pkgs/development/tools/misc/act/default.nix6
-rw-r--r--pkgs/development/tools/misc/arcanist/default.nix11
-rw-r--r--pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch13
-rw-r--r--pkgs/development/tools/misc/binutils/default.nix3
-rw-r--r--pkgs/development/tools/misc/blackfire/default.nix1
-rw-r--r--pkgs/development/tools/misc/blackfire/php-probe.nix1
-rw-r--r--pkgs/development/tools/misc/checkbashisms/default.nix4
-rw-r--r--pkgs/development/tools/misc/cli11/default.nix27
-rw-r--r--pkgs/development/tools/misc/clojure-lsp/default.nix6
-rw-r--r--pkgs/development/tools/misc/editorconfig-checker/default.nix4
-rw-r--r--pkgs/development/tools/misc/elfinfo/default.nix13
-rw-r--r--pkgs/development/tools/misc/fswatch/default.nix4
-rw-r--r--pkgs/development/tools/misc/grpc-client-cli/default.nix22
-rw-r--r--pkgs/development/tools/misc/hound/default.nix4
-rw-r--r--pkgs/development/tools/misc/hydra/eval.patch11
-rw-r--r--pkgs/development/tools/misc/hydra/unstable.nix14
-rw-r--r--pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix1
-rw-r--r--pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix1
-rw-r--r--pkgs/development/tools/misc/saleae-logic-2/default.nix4
-rw-r--r--pkgs/development/tools/misc/saleae-logic/default.nix1
-rw-r--r--pkgs/development/tools/misc/segger-ozone/default.nix1
-rw-r--r--pkgs/development/tools/misc/strace/default.nix4
-rw-r--r--pkgs/development/tools/misc/terraform-ls/default.nix6
-rw-r--r--pkgs/development/tools/misc/xorg-autoconf/default.nix29
-rw-r--r--pkgs/development/tools/mold/default.nix4
-rw-r--r--pkgs/development/tools/neoload/default.nix1
-rw-r--r--pkgs/development/tools/ocaml/dune/3.nix6
-rw-r--r--pkgs/development/tools/ocaml/utop/default.nix6
-rw-r--r--pkgs/development/tools/okteto/default.nix6
-rwxr-xr-xpkgs/development/tools/omnisharp-roslyn/create-deps.sh74
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/default.nix107
-rw-r--r--pkgs/development/tools/omnisharp-roslyn/deps.nix3215
-rw-r--r--pkgs/development/tools/open-policy-agent/default.nix4
-rw-r--r--pkgs/development/tools/packer/default.nix6
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/default.nix4
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gowork.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hcl.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rego.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sql.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tiger.json11
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json8
-rw-r--r--pkgs/development/tools/parsing/tree-sitter/update.nix16
-rw-r--r--pkgs/development/tools/pip-audit/default.nix6
-rw-r--r--pkgs/development/tools/quick-lint-js/default.nix4
-rw-r--r--pkgs/development/tools/rbspy/default.nix22
-rw-r--r--pkgs/development/tools/react-native-debugger/default.nix1
-rw-r--r--pkgs/development/tools/rgp/default.nix1
-rw-r--r--pkgs/development/tools/rnix-lsp/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-about/default.nix (renamed from pkgs/tools/package-management/cargo-about/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch (renamed from pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch)0
-rw-r--r--pkgs/development/tools/rust/cargo-audit/default.nix (renamed from pkgs/tools/package-management/cargo-audit/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-bisect-rustc/default.nix31
-rw-r--r--pkgs/development/tools/rust/cargo-bloat/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-crev/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deb/default.nix (renamed from pkgs/tools/package-management/cargo-deb/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-depgraph/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-deps/default.nix (renamed from pkgs/tools/package-management/cargo-deps/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/Cargo.nix (renamed from pkgs/tools/package-management/cargo-download/Cargo.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/crates-io.nix (renamed from pkgs/tools/package-management/cargo-download/crates-io.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-download/default.nix (renamed from pkgs/tools/package-management/cargo-download/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-edit/default.nix (renamed from pkgs/tools/package-management/cargo-edit/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-expand/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-flamegraph/default.nix (renamed from pkgs/development/tools/cargo-flamegraph/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-graph/default.nix (renamed from pkgs/tools/package-management/cargo-graph/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-insta/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-kcov/default.nix (renamed from pkgs/tools/package-management/cargo-kcov/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-license/default.nix (renamed from pkgs/tools/package-management/cargo-license/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-llvm-lines/default.nix6
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix8
-rw-r--r--pkgs/development/tools/rust/cargo-nextest/default.nix10
-rw-r--r--pkgs/development/tools/rust/cargo-outdated/default.nix (renamed from pkgs/tools/package-management/cargo-outdated/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-release/default.nix (renamed from pkgs/tools/package-management/cargo-release/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-update/default.nix (renamed from pkgs/tools/package-management/cargo-update/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cargo-web/default.nix (renamed from pkgs/development/tools/cargo-web/default.nix)0
-rw-r--r--pkgs/development/tools/rust/cbindgen/default.nix6
-rw-r--r--pkgs/development/tools/rust/rust-analyzer/default.nix8
-rw-r--r--pkgs/development/tools/sauce-connect/default.nix1
-rw-r--r--pkgs/development/tools/selenium/chromedriver/default.nix1
-rw-r--r--pkgs/development/tools/spr/default.nix27
-rw-r--r--pkgs/development/tools/sslmate-agent/default.nix1
-rw-r--r--pkgs/development/tools/tabnine/default.nix8
-rw-r--r--pkgs/development/tools/tfplugindocs/default.nix22
-rw-r--r--pkgs/development/tools/thrust/default.nix1
-rw-r--r--pkgs/development/tools/tradcpp/default.nix3
-rw-r--r--pkgs/development/tools/typos/default.nix6
-rw-r--r--pkgs/development/tools/unity3d/default.nix143
-rw-r--r--pkgs/development/tools/unity3d/unity-nosuid.c32
-rw-r--r--pkgs/development/tools/vultr/default.nix24
-rw-r--r--pkgs/development/tools/wasm-bindgen-cli/default.nix2
-rw-r--r--pkgs/development/tools/yq-go/default.nix18
-rw-r--r--pkgs/development/web/cypress/default.nix5
-rw-r--r--pkgs/development/web/deno/default.nix6
-rw-r--r--pkgs/development/web/deno/librusty_v8.nix10
-rw-r--r--pkgs/development/web/flyctl/default.nix6
-rw-r--r--pkgs/development/web/insomnia/default.nix1
-rw-r--r--pkgs/development/web/nodejs/v18.nix4
-rw-r--r--pkgs/development/web/postman/default.nix1
-rw-r--r--pkgs/games/factorio/default.nix1
-rw-r--r--pkgs/games/ferium/default.nix28
-rw-r--r--pkgs/games/fheroes2/default.nix4
-rw-r--r--pkgs/games/freeciv/default.nix25
-rw-r--r--pkgs/games/gamehub/default.nix67
-rw-r--r--pkgs/games/garden-of-coloured-lights/default.nix5
-rw-r--r--pkgs/games/gcompris/default.nix4
-rw-r--r--pkgs/games/gnonograms/default.nix14
-rw-r--r--pkgs/games/graphwar/default.nix66
-rw-r--r--pkgs/games/infra-arcana/default.nix60
-rw-r--r--pkgs/games/itch-setup/default.nix24
-rw-r--r--pkgs/games/itch/butler.nix29
-rw-r--r--pkgs/games/itch/default.nix85
-rw-r--r--pkgs/games/legendary-gl/default.nix4
-rw-r--r--pkgs/games/megaglest/default.nix11
-rw-r--r--pkgs/games/minecraft/default.nix1
-rw-r--r--pkgs/games/osu-lazer/deps.nix4
-rw-r--r--pkgs/games/pokete/default.nix54
-rw-r--r--pkgs/games/runelite/default.nix5
-rw-r--r--pkgs/games/runescape-launcher/default.nix1
-rw-r--r--pkgs/games/sil-q/default.nix73
-rw-r--r--pkgs/games/sil/default.nix34
-rw-r--r--pkgs/games/sm64ex/default.nix112
-rw-r--r--pkgs/games/sm64ex/generic.nix83
-rw-r--r--pkgs/games/titanion/default.nix91
-rw-r--r--pkgs/games/umoria/default.nix78
-rw-r--r--pkgs/games/unvanquished/default.nix23
-rw-r--r--pkgs/games/xivlauncher/deps.nix4
-rw-r--r--pkgs/misc/arm-trusted-firmware/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/brgenml1lpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/brother/mfcl3770cdw/default.nix2
-rw-r--r--pkgs/misc/cups/drivers/canon/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/cnijfilter_4_00/default.nix4
-rw-r--r--pkgs/misc/cups/drivers/fxlinuxprint/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hl1110/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hl1210w/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hl3140cw/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hll2340dw/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hll2350dw/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/hll2390dw-cups/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/kyocera/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/kyodialog3/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfc9140cdncupswrapper/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfc9140cdnlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcl2700dnlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcl2720dwlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcl2750dw/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/mfcl8690cdwlpr/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.36/default.nix1
-rw-r--r--pkgs/misc/cups/drivers/samsung/1.00.37.nix1
-rw-r--r--pkgs/misc/cups/drivers/samsung/4.01.17.nix1
-rw-r--r--pkgs/misc/drivers/epkowa/default.nix1
-rw-r--r--pkgs/misc/drivers/epson-alc1100/default.nix1
-rw-r--r--pkgs/misc/drivers/gutenprint/bin.nix1
-rw-r--r--pkgs/misc/drivers/pantum-driver/default.nix1
-rw-r--r--pkgs/misc/drivers/pentablet-driver/default.nix1
-rw-r--r--pkgs/misc/drivers/steamcontroller/default.nix5
-rw-r--r--pkgs/misc/drivers/sundtek/default.nix1
-rw-r--r--pkgs/misc/drivers/utsushi/networkscan.nix1
-rw-r--r--pkgs/misc/i3a/default.nix8
-rw-r--r--pkgs/misc/opensbi/default.nix8
-rw-r--r--pkgs/misc/screensavers/rss-glx/cstddef.patch12
-rw-r--r--pkgs/misc/screensavers/rss-glx/default.nix20
-rw-r--r--pkgs/misc/uboot/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix6
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix4
-rw-r--r--pkgs/os-specific/darwin/apple-source-releases/top/default.nix3
-rw-r--r--pkgs/os-specific/darwin/iproute2mac/default.nix11
-rw-r--r--pkgs/os-specific/darwin/sketchybar/default.nix4
-rw-r--r--pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix4
-rw-r--r--pkgs/os-specific/linux/ax99100/default.nix29
-rw-r--r--pkgs/os-specific/linux/bcc/default.nix2
-rw-r--r--pkgs/os-specific/linux/bpftrace/default.nix10
-rw-r--r--pkgs/os-specific/linux/busybox/default.nix5
-rw-r--r--pkgs/os-specific/linux/firejail/fix-opengl-support.patch7
-rw-r--r--pkgs/os-specific/linux/firejail/whitelist-nix-profile.patch9
-rw-r--r--pkgs/os-specific/linux/hwdata/default.nix11
-rw-r--r--pkgs/os-specific/linux/kernel-headers/default.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/common-config.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/hardened/patches.json70
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.9.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.10.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.15.nix8
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.17.nix18
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.18.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-5.4.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-libre.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix1
-rw-r--r--pkgs/os-specific/linux/kernel/linux-zen.nix4
-rwxr-xr-xpkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh2
-rwxr-xr-xpkgs/os-specific/linux/nvidia-x11/builder.sh5
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix7
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/generic.nix8
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/open.nix37
-rw-r--r--pkgs/os-specific/linux/open-iscsi/default.nix13
-rw-r--r--pkgs/os-specific/linux/rtw88/default.nix6
-rw-r--r--pkgs/os-specific/linux/system76-io/default.nix4
-rw-r--r--pkgs/os-specific/linux/tinyalsa/default.nix37
-rw-r--r--pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch25
-rw-r--r--pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch70
-rw-r--r--pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch25
-rw-r--r--pkgs/os-specific/linux/tiscamera/default.nix118
-rw-r--r--pkgs/os-specific/linux/upower/default.nix50
-rw-r--r--pkgs/os-specific/linux/waydroid/default.nix4
-rw-r--r--pkgs/os-specific/linux/wpa_supplicant/default.nix1
-rw-r--r--pkgs/os-specific/linux/zfs/default.nix18
-rw-r--r--pkgs/pkgs-lib/formats.nix26
-rw-r--r--pkgs/servers/adguardhome/default.nix1
-rw-r--r--pkgs/servers/bird/default.nix10
-rw-r--r--pkgs/servers/calibre-web/default.nix4
-rw-r--r--pkgs/servers/cayley/default.nix40
-rw-r--r--pkgs/servers/cayley/deps.nix471
-rw-r--r--pkgs/servers/computing/slurm/default.nix7
-rw-r--r--pkgs/servers/confluencepot/default.nix44
-rw-r--r--pkgs/servers/dendrite/default.nix6
-rw-r--r--pkgs/servers/dns/bind/default.nix4
-rw-r--r--pkgs/servers/dns/coredns/default.nix6
-rw-r--r--pkgs/servers/dns/dnsdist/default.nix4
-rw-r--r--pkgs/servers/dns/knot-resolver/default.nix4
-rw-r--r--pkgs/servers/dns/pdns-recursor/default.nix4
-rw-r--r--pkgs/servers/documize-community/default.nix2
-rw-r--r--pkgs/servers/etebase/default.nix9
-rw-r--r--pkgs/servers/geospatial/geoserver/default.nix38
-rw-r--r--pkgs/servers/gpm/default.nix10
-rw-r--r--pkgs/servers/hashi-ui/default.nix1
-rw-r--r--pkgs/servers/heisenbridge/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix2
-rw-r--r--pkgs/servers/home-assistant/default.nix17
-rwxr-xr-xpkgs/servers/home-assistant/parse-requirements.py2
-rw-r--r--pkgs/servers/hqplayerd/default.nix1
-rw-r--r--pkgs/servers/http/apache-modules/mod_cspnonce/default.nix4
-rw-r--r--pkgs/servers/http/envoy/default.nix10
-rw-r--r--pkgs/servers/http/nginx/modules.nix4
-rw-r--r--pkgs/servers/interlock/default.nix48
-rw-r--r--pkgs/servers/interlock/deps.nix65
-rw-r--r--pkgs/servers/irc/ergochat/default.nix4
-rw-r--r--pkgs/servers/jellyfin/nuget-deps.nix4
-rw-r--r--pkgs/servers/mail/dovecot/default.nix4
-rw-r--r--pkgs/servers/mail/mailman/hyperkitty.nix6
-rw-r--r--pkgs/servers/mail/mlmmj/default.nix6
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/mattermost/default.nix4
-rw-r--r--pkgs/servers/mautrix-whatsapp/default.nix6
-rw-r--r--pkgs/servers/metabase/default.nix4
-rw-r--r--pkgs/servers/meteor/default.nix1
-rw-r--r--pkgs/servers/misc/navidrome/default.nix1
-rw-r--r--pkgs/servers/monitoring/cadvisor/default.nix6
-rw-r--r--pkgs/servers/monitoring/grafana-agent/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix13
-rw-r--r--pkgs/servers/monitoring/prometheus/blackbox-exporter.nix6
-rw-r--r--pkgs/servers/monitoring/prometheus/default.nix14
-rw-r--r--pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix2
-rw-r--r--pkgs/servers/networkaudiod/default.nix1
-rw-r--r--pkgs/servers/nextcloud/default.nix8
-rw-r--r--pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch14
-rw-r--r--pkgs/servers/nosql/mongodb/v4_0.nix14
-rw-r--r--pkgs/servers/nosql/mongodb/v4_2.nix13
-rw-r--r--pkgs/servers/nosql/riak/2.2.0.nix106
-rw-r--r--pkgs/servers/peertube/default.nix8
-rw-r--r--pkgs/servers/plex/raw.nix7
-rw-r--r--pkgs/servers/plik/default.nix4
-rw-r--r--pkgs/servers/plik/programs.nix14
-rw-r--r--pkgs/servers/roon-bridge/default.nix1
-rw-r--r--pkgs/servers/roon-server/default.nix1
-rw-r--r--pkgs/servers/rt/default.nix5
-rw-r--r--pkgs/servers/sabnzbd/default.nix20
-rw-r--r--pkgs/servers/search/lnx/default.nix31
-rw-r--r--pkgs/servers/serf/default.nix42
-rw-r--r--pkgs/servers/shairport-sync/default.nix22
-rw-r--r--pkgs/servers/sickbeard/sickgear.nix4
-rw-r--r--pkgs/servers/sql/mariadb/galera/default.nix4
-rw-r--r--pkgs/servers/tailscale/default.nix6
-rw-r--r--pkgs/servers/tautulli/default.nix4
-rw-r--r--pkgs/servers/traefik/default.nix29
-rw-r--r--pkgs/servers/trickster/trickster.nix53
-rw-r--r--pkgs/servers/trickster/trickster_deps.nix237
-rw-r--r--pkgs/servers/tt-rss/plugin-feediron/default.nix33
-rwxr-xr-xpkgs/servers/unifi-video/default.nix4
-rw-r--r--pkgs/servers/urserver/default.nix1
-rw-r--r--pkgs/servers/web-apps/hedgedoc/default.nix2
-rw-r--r--pkgs/servers/web-apps/jirafeau/default.nix4
-rw-r--r--pkgs/servers/web-apps/lemmy/package.json70
-rw-r--r--pkgs/servers/web-apps/lemmy/pin.json10
-rw-r--r--pkgs/servers/web-apps/lemmy/server.nix4
-rw-r--r--pkgs/servers/web-apps/snipe-it/default.nix4
-rwxr-xr-xpkgs/servers/web-apps/snipe-it/update.sh4
-rw-r--r--pkgs/servers/web-apps/wordpress/default.nix4
-rw-r--r--pkgs/shells/fish/default.nix14
-rw-r--r--pkgs/shells/fish/plugins/fzf-fish.nix4
-rw-r--r--pkgs/shells/oh/default.nix6
-rw-r--r--pkgs/shells/zsh/default.nix6
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/stdenv/common-path.nix8
-rw-r--r--pkgs/stdenv/darwin/default.nix3
-rw-r--r--pkgs/stdenv/generic/make-derivation.nix6
-rw-r--r--pkgs/stdenv/generic/setup.sh15
-rw-r--r--pkgs/stdenv/linux/default.nix2
-rw-r--r--pkgs/tools/X11/focus/default.nix34
-rw-r--r--pkgs/tools/X11/pmenu/default.nix60
-rw-r--r--pkgs/tools/X11/sx/default.nix33
-rw-r--r--pkgs/tools/X11/xdg-utils/default.nix2
-rw-r--r--pkgs/tools/X11/xlogo/default.nix36
-rw-r--r--pkgs/tools/X11/xmcp/default.nix33
-rw-r--r--pkgs/tools/admin/aliyun-cli/default.nix6
-rw-r--r--pkgs/tools/admin/aws-sso-cli/default.nix25
-rw-r--r--pkgs/tools/admin/awscli2/default.nix9
-rw-r--r--pkgs/tools/admin/awsrm/default.nix28
-rw-r--r--pkgs/tools/admin/azure-cli/default.nix13
-rw-r--r--pkgs/tools/admin/azure-cli/python-packages.nix155
-rw-r--r--pkgs/tools/admin/bluemix-cli/default.nix1
-rw-r--r--pkgs/tools/admin/boulder/default.nix57
-rw-r--r--pkgs/tools/admin/chamber/default.nix6
-rw-r--r--pkgs/tools/admin/chkservice/default.nix37
-rw-r--r--pkgs/tools/admin/docker-credential-gcr/default.nix4
-rw-r--r--pkgs/tools/admin/eksctl/default.nix6
-rw-r--r--pkgs/tools/admin/exoscale-cli/default.nix4
-rw-r--r--pkgs/tools/admin/google-cloud-sdk/default.nix4
-rw-r--r--pkgs/tools/admin/lxd/default.nix7
-rw-r--r--pkgs/tools/admin/nomachine-client/default.nix9
-rw-r--r--pkgs/tools/admin/pebble/default.nix4
-rw-r--r--pkgs/tools/admin/pulumi/data.nix434
-rw-r--r--pkgs/tools/admin/pulumi/default.nix1
-rw-r--r--pkgs/tools/admin/pulumi/update-pulumi-shell.nix1
-rwxr-xr-xpkgs/tools/admin/pulumi/update.sh5
-rw-r--r--pkgs/tools/admin/realvnc-vnc-viewer/default.nix1
-rw-r--r--pkgs/tools/admin/salt/0001-Fix-Jinja2-3.1.0.patch38
-rw-r--r--pkgs/tools/admin/salt/default.nix7
-rw-r--r--pkgs/tools/admin/syft/default.nix6
-rw-r--r--pkgs/tools/admin/trinsic-cli/default.nix4
-rw-r--r--pkgs/tools/admin/trivy/default.nix6
-rw-r--r--pkgs/tools/admin/winbox/default.nix1
-rw-r--r--pkgs/tools/archivers/7zz/default.nix8
-rw-r--r--pkgs/tools/archivers/rar/default.nix1
-rw-r--r--pkgs/tools/archivers/unrar/default.nix4
-rw-r--r--pkgs/tools/audio/abcmidi/default.nix4
-rw-r--r--pkgs/tools/audio/liquidsoap/full.nix4
-rw-r--r--pkgs/tools/audio/mpd-discord-rpc/default.nix12
-rw-r--r--pkgs/tools/backup/borgmatic/default.nix4
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/duplicity/default.nix1
-rw-r--r--pkgs/tools/backup/gphotos-sync/default.nix62
-rw-r--r--pkgs/tools/backup/gphotos-sync/skip-network-tests.patch21
-rw-r--r--pkgs/tools/backup/rsbep/default.nix2
-rw-r--r--pkgs/tools/backup/tsm-client/default.nix1
-rw-r--r--pkgs/tools/backup/zfsbackup/default.nix26
-rw-r--r--pkgs/tools/backup/zfsbackup/deps.nix1326
-rw-r--r--pkgs/tools/backup/zrepl/default.nix2
-rw-r--r--pkgs/tools/bluetooth/blueman/default.nix4
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/001-add-mips64.diff (renamed from pkgs/tools/cd-dvd/ventoy-bin/add-mips64.patch)0
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/002-fix-for-read-only-file-system.diff (renamed from pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch)0
-rw-r--r--pkgs/tools/cd-dvd/ventoy-bin/default.nix142
-rw-r--r--pkgs/tools/compression/bzip3/default.nix6
-rw-r--r--pkgs/tools/filesystems/bindfs/default.nix4
-rw-r--r--pkgs/tools/filesystems/catcli/default.nix6
-rw-r--r--pkgs/tools/filesystems/ceph/default.nix12
-rw-r--r--pkgs/tools/filesystems/gcsfuse/default.nix16
-rw-r--r--pkgs/tools/filesystems/httm/default.nix6
-rw-r--r--pkgs/tools/filesystems/sftpman/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/fabric-installer/default.nix4
-rw-r--r--pkgs/tools/games/minecraft/packwiz/default.nix6
-rw-r--r--pkgs/tools/games/opentracker/deps.nix24
-rw-r--r--pkgs/tools/graphics/flam3/default.nix2
-rw-r--r--pkgs/tools/graphics/resvg/default.nix12
-rw-r--r--pkgs/tools/graphics/vulkan-tools/default.nix1
-rw-r--r--pkgs/tools/graphics/wallutils/default.nix4
-rw-r--r--pkgs/tools/inputmethods/droidmote/default.nix1
-rw-r--r--pkgs/tools/inputmethods/uim/default.nix18
-rw-r--r--pkgs/tools/misc/alarm-clock-applet/default.nix77
-rw-r--r--pkgs/tools/misc/antimicrox/default.nix4
-rw-r--r--pkgs/tools/misc/archi/default.nix1
-rw-r--r--pkgs/tools/misc/asciinema-scenario/default.nix6
-rw-r--r--pkgs/tools/misc/asciinema/default.nix27
-rw-r--r--pkgs/tools/misc/broot/default.nix6
-rw-r--r--pkgs/tools/misc/bsp-layout/default.nix8
-rw-r--r--pkgs/tools/misc/calamares-nixos-extensions/default.nix4
-rw-r--r--pkgs/tools/misc/calamares/default.nix6
-rw-r--r--pkgs/tools/misc/chafa/default.nix4
-rw-r--r--pkgs/tools/misc/chezmoi/default.nix6
-rw-r--r--pkgs/tools/misc/colorpanes/default.nix27
-rw-r--r--pkgs/tools/misc/dateutils/default.nix4
-rw-r--r--pkgs/tools/misc/depotdownloader/deps.nix2
-rwxr-xr-xpkgs/tools/misc/depotdownloader/fetch-deps.sh2
-rw-r--r--pkgs/tools/misc/diffoscope/default.nix9
-rw-r--r--pkgs/tools/misc/direnv/default.nix6
-rw-r--r--pkgs/tools/misc/docker-ls/default.nix2
-rw-r--r--pkgs/tools/misc/dsq/default.nix26
-rw-r--r--pkgs/tools/misc/dt-shell-color-scripts/default.nix41
-rw-r--r--pkgs/tools/misc/dua/default.nix6
-rw-r--r--pkgs/tools/misc/esphome/default.nix4
-rw-r--r--pkgs/tools/misc/fend/default.nix6
-rw-r--r--pkgs/tools/misc/ffsend/default.nix17
-rw-r--r--pkgs/tools/misc/file/default.nix5
-rw-r--r--pkgs/tools/misc/flameshot/default.nix4
-rw-r--r--pkgs/tools/misc/gams/default.nix1
-rw-r--r--pkgs/tools/misc/geekbench/default.nix4
-rw-r--r--pkgs/tools/misc/hakuneko/default.nix1
-rw-r--r--pkgs/tools/misc/hyperledger-fabric/default.nix60
-rw-r--r--pkgs/tools/misc/iam-policy-json-to-terraform/default.nix23
-rw-r--r--pkgs/tools/misc/kisslicer/default.nix1
-rw-r--r--pkgs/tools/misc/logstash/7.x.nix4
-rw-r--r--pkgs/tools/misc/mandown/default.nix2
-rw-r--r--pkgs/tools/misc/mongodb-compass/default.nix5
-rw-r--r--pkgs/tools/misc/mongodb-tools/default.nix70
-rw-r--r--pkgs/tools/misc/moreutils/default.nix19
-rw-r--r--pkgs/tools/misc/mutagen/default.nix1
-rw-r--r--pkgs/tools/misc/ntfy-sh/default.nix6
-rw-r--r--pkgs/tools/misc/ntfy/default.nix22
-rw-r--r--pkgs/tools/misc/ntfy/webpush.nix (renamed from pkgs/tools/misc/ntfy-webpush/default.nix)11
-rw-r--r--pkgs/tools/misc/phraseapp-client/default.nix27
-rw-r--r--pkgs/tools/misc/pipelight/default.nix3
-rw-r--r--pkgs/tools/misc/pipelight/wine-7.10-ControlMask.patch26
-rw-r--r--pkgs/tools/misc/plocate/default.nix4
-rw-r--r--pkgs/tools/misc/qjoypad/default.nix36
-rw-r--r--pkgs/tools/misc/sam-ba/default.nix1
-rw-r--r--pkgs/tools/misc/sheldon/default.nix60
-rwxr-xr-xpkgs/tools/misc/starfetch/default.nix36
-rw-r--r--pkgs/tools/misc/starship/default.nix6
-rw-r--r--pkgs/tools/misc/staruml/default.nix1
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix4
-rw-r--r--pkgs/tools/misc/sweep-visualizer/default.nix59
-rw-r--r--pkgs/tools/misc/termtosvg/default.nix2
-rw-r--r--pkgs/tools/misc/time-decode/default.nix6
-rw-r--r--pkgs/tools/misc/tmux/default.nix6
-rw-r--r--pkgs/tools/misc/unclutter-xfixes/default.nix3
-rw-r--r--pkgs/tools/misc/vector/default.nix8
-rw-r--r--pkgs/tools/misc/viddy/default.nix4
-rw-r--r--pkgs/tools/misc/vtm/default.nix5
-rw-r--r--pkgs/tools/misc/watchlog/default.nix3
-rw-r--r--pkgs/tools/misc/wayback-machine-archiver/default.nix31
-rw-r--r--pkgs/tools/misc/xflux/default.nix1
-rw-r--r--pkgs/tools/misc/youtube-dl/default.nix20
-rw-r--r--pkgs/tools/misc/yt-dlp/default.nix4
-rw-r--r--pkgs/tools/misc/yubikey-manager/default.nix6
-rw-r--r--pkgs/tools/misc/zoxide/default.nix6
-rw-r--r--pkgs/tools/networking/asleap/default.nix27
-rw-r--r--pkgs/tools/networking/bandwhich/default.nix2
-rw-r--r--pkgs/tools/networking/boundary/default.nix11
-rw-r--r--pkgs/tools/networking/brook/default.nix6
-rw-r--r--pkgs/tools/networking/cantoolz/default.nix5
-rw-r--r--pkgs/tools/networking/clash/default.nix6
-rw-r--r--pkgs/tools/networking/cloudflare-warp/default.nix1
-rw-r--r--pkgs/tools/networking/discord-sh/default.nix50
-rw-r--r--pkgs/tools/networking/dnsmon-go/default.nix30
-rw-r--r--pkgs/tools/networking/dnsmonster/default.nix39
-rw-r--r--pkgs/tools/networking/fdm/default.nix4
-rw-r--r--pkgs/tools/networking/frp/default.nix4
-rw-r--r--pkgs/tools/networking/ghostunnel/default.nix6
-rw-r--r--pkgs/tools/networking/gnirehtet/default.nix4
-rw-r--r--pkgs/tools/networking/godns/default.nix6
-rw-r--r--pkgs/tools/networking/mu/default.nix69
-rw-r--r--pkgs/tools/networking/networkmanager/default.nix20
-rw-r--r--pkgs/tools/networking/networkmanager/libnma/default.nix4
-rw-r--r--pkgs/tools/networking/ngrok-2/versions.json38
-rw-r--r--pkgs/tools/networking/ngrok/default.nix (renamed from pkgs/tools/networking/ngrok-2/default.nix)3
-rwxr-xr-xpkgs/tools/networking/ngrok/update.sh (renamed from pkgs/tools/networking/ngrok-2/update.sh)4
-rw-r--r--pkgs/tools/networking/ngrok/versions.json38
-rw-r--r--pkgs/tools/networking/norouter/default.nix35
-rw-r--r--pkgs/tools/networking/offlineimap/default.nix1
-rw-r--r--pkgs/tools/networking/ookla-speedtest/default.nix1
-rw-r--r--pkgs/tools/networking/p2p/amule/default.nix2
-rw-r--r--pkgs/tools/networking/pykms/default.nix17
-rw-r--r--pkgs/tools/networking/routedns/default.nix29
-rw-r--r--pkgs/tools/networking/s3gof3r/default.nix25
-rw-r--r--pkgs/tools/networking/s3gof3r/deps.nix11
-rw-r--r--pkgs/tools/networking/vde2/default.nix35
-rw-r--r--pkgs/tools/networking/vegeta/default.nix37
-rw-r--r--pkgs/tools/networking/vegeta/deps.nix255
-rw-r--r--pkgs/tools/networking/waitron/default.nix33
-rw-r--r--pkgs/tools/networking/waitron/deps.nix57
-rw-r--r--pkgs/tools/networking/zerotierone/default.nix9
-rw-r--r--pkgs/tools/nix/alejandra/default.nix6
-rw-r--r--pkgs/tools/nix/nar-serve/default.nix6
-rw-r--r--pkgs/tools/nix/nixel/default.nix36
-rw-r--r--pkgs/tools/nix/nixpkgs-fmt/default.nix6
-rw-r--r--pkgs/tools/nix/statix/default.nix6
-rw-r--r--pkgs/tools/package-management/appimagekit/default.nix1
-rw-r--r--pkgs/tools/package-management/micromamba/default.nix30
-rw-r--r--pkgs/tools/package-management/nix-doc/default.nix6
-rw-r--r--pkgs/tools/security/adenum/default.nix48
-rw-r--r--pkgs/tools/security/beyond-identity/default.nix1
-rw-r--r--pkgs/tools/security/bitwarden/default.nix7
-rw-r--r--pkgs/tools/security/certstrap/default.nix24
-rw-r--r--pkgs/tools/security/chain-bench/default.nix62
-rw-r--r--pkgs/tools/security/commix/default.nix27
-rw-r--r--pkgs/tools/security/cve-bin-tool/default.nix25
-rw-r--r--pkgs/tools/security/decoder/default.nix39
-rw-r--r--pkgs/tools/security/exploitdb/default.nix4
-rw-r--r--pkgs/tools/security/fail2ban/default.nix6
-rw-r--r--pkgs/tools/security/fpm2/default.nix16
-rw-r--r--pkgs/tools/security/gitleaks/default.nix4
-rw-r--r--pkgs/tools/security/gitls/default.nix34
-rw-r--r--pkgs/tools/security/gitsign/default.nix8
-rw-r--r--pkgs/tools/security/gopass/git-credential.nix6
-rw-r--r--pkgs/tools/security/gopass/hibp.nix39
-rw-r--r--pkgs/tools/security/gopass/jsonapi.nix6
-rw-r--r--pkgs/tools/security/gopass/summon.nix6
-rw-r--r--pkgs/tools/security/graphqlmap/default.nix35
-rw-r--r--pkgs/tools/security/graphw00f/default.nix37
-rw-r--r--pkgs/tools/security/grype/default.nix10
-rw-r--r--pkgs/tools/security/himitsu-firefox/default.nix46
-rw-r--r--pkgs/tools/security/himitsu/default.nix34
-rw-r--r--pkgs/tools/security/jsubfinder/default.nix25
-rw-r--r--pkgs/tools/security/jwt-hack/default.nix25
-rw-r--r--pkgs/tools/security/kdigger/default.nix82
-rw-r--r--pkgs/tools/security/keybase/default.nix6
-rw-r--r--pkgs/tools/security/keybase/gui.nix7
-rw-r--r--pkgs/tools/security/kubescape/default.nix2
-rw-r--r--pkgs/tools/security/libmodsecurity/default.nix15
-rw-r--r--pkgs/tools/security/metasploit/Gemfile2
-rw-r--r--pkgs/tools/security/metasploit/Gemfile.lock39
-rw-r--r--pkgs/tools/security/metasploit/default.nix4
-rw-r--r--pkgs/tools/security/metasploit/gemset.nix62
-rw-r--r--pkgs/tools/security/minica/default.nix27
-rw-r--r--pkgs/tools/security/mitmproxy2swagger/default.nix6
-rw-r--r--pkgs/tools/security/munge/default.nix10
-rw-r--r--pkgs/tools/security/nmap-formatter/default.nix12
-rw-r--r--pkgs/tools/security/nuclei/default.nix6
-rw-r--r--pkgs/tools/security/osv-detector/default.nix40
-rw-r--r--pkgs/tools/security/pcsc-safenet/default.nix1
-rw-r--r--pkgs/tools/security/prs/default.nix6
-rw-r--r--pkgs/tools/security/pwdsafety/default.nix10
-rw-r--r--pkgs/tools/security/rage/default.nix10
-rw-r--r--pkgs/tools/security/regpg/default.nix52
-rw-r--r--pkgs/tools/security/rekor/default.nix6
-rw-r--r--pkgs/tools/security/routersploit/default.nix56
-rw-r--r--pkgs/tools/security/schleuder/Gemfile3
-rw-r--r--pkgs/tools/security/schleuder/Gemfile.lock85
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile4
-rw-r--r--pkgs/tools/security/schleuder/cli/Gemfile.lock21
-rw-r--r--pkgs/tools/security/schleuder/cli/default.nix34
-rw-r--r--pkgs/tools/security/schleuder/cli/gemset.nix25
-rw-r--r--pkgs/tools/security/schleuder/default.nix38
-rw-r--r--pkgs/tools/security/schleuder/gemset.nix316
-rw-r--r--pkgs/tools/security/secrets-extractor/default.nix31
-rw-r--r--pkgs/tools/security/sherlock/default.nix56
-rw-r--r--pkgs/tools/security/spire/default.nix10
-rw-r--r--pkgs/tools/security/sslscan/default.nix4
-rw-r--r--pkgs/tools/security/terrascan/default.nix4
-rw-r--r--pkgs/tools/security/tor/default.nix4
-rw-r--r--pkgs/tools/security/witness/default.nix10
-rw-r--r--pkgs/tools/security/yubikey-agent/default.nix10
-rw-r--r--pkgs/tools/system/bfs/default.nix8
-rw-r--r--pkgs/tools/system/btop/default.nix4
-rw-r--r--pkgs/tools/system/colorls/Gemfile.lock14
-rw-r--r--pkgs/tools/system/colorls/gemset.nix35
-rw-r--r--pkgs/tools/system/fancy-motd/default.nix6
-rw-r--r--pkgs/tools/system/netdata/default.nix6
-rw-r--r--pkgs/tools/system/netdata/no-files-in-etc-and-var.patch25
-rw-r--r--pkgs/tools/system/nvtop/default.nix12
-rw-r--r--pkgs/tools/system/openipmi/default.nix6
-rw-r--r--pkgs/tools/system/smartmontools/default.nix10
-rw-r--r--pkgs/tools/system/tre-command/default.nix11
-rw-r--r--pkgs/tools/text/chroma/default.nix4
-rw-r--r--pkgs/tools/text/chroma/src.json8
-rw-r--r--pkgs/tools/text/cmigemo/default.nix6
-rw-r--r--pkgs/tools/text/difftastic/default.nix6
-rw-r--r--pkgs/tools/text/dos2unix/default.nix4
-rw-r--r--pkgs/tools/text/mdbook/default.nix6
-rw-r--r--pkgs/tools/text/nkf/default.nix11
-rw-r--r--pkgs/tools/text/poedit/default.nix8
-rw-r--r--pkgs/tools/text/qshowdiff/default.nix27
-rw-r--r--pkgs/tools/text/sad/default.nix6
-rw-r--r--pkgs/tools/text/vale/default.nix4
-rw-r--r--pkgs/tools/text/zim-tools/default.nix31
-rw-r--r--pkgs/tools/text/zimwriterfs/default.nix43
-rw-r--r--pkgs/tools/typesetting/asciidoctorj/default.nix6
-rw-r--r--pkgs/tools/typesetting/htmldoc/default.nix4
-rw-r--r--pkgs/tools/typesetting/lowdown/default.nix4
-rw-r--r--pkgs/tools/typesetting/sile/default.nix4
-rw-r--r--pkgs/tools/typesetting/tex/texlive/combine.nix2
-rw-r--r--pkgs/tools/typesetting/tex/texlive/default.nix4
-rw-r--r--pkgs/tools/video/harvid/default.nix12
-rw-r--r--pkgs/tools/video/rtmpdump/default.nix6
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix1
-rw-r--r--pkgs/tools/virtualization/awless/default.nix26
-rw-r--r--pkgs/tools/virtualization/awsebcli/default.nix6
-rw-r--r--pkgs/tools/virtualization/extra-container/default.nix19
-rw-r--r--pkgs/tools/virtualization/nixos-shell/default.nix4
-rw-r--r--pkgs/tools/wayland/way-displays/default.nix47
-rw-r--r--pkgs/tools/wayland/wl-clipboard/default.nix8
-rw-r--r--pkgs/top-level/aliases.nix33
-rw-r--r--pkgs/top-level/all-packages.nix514
-rw-r--r--pkgs/top-level/config.nix4
-rw-r--r--pkgs/top-level/dotnet-packages.nix4
-rw-r--r--pkgs/top-level/haskell-packages.nix22
-rw-r--r--pkgs/top-level/linux-kernels.nix21
-rw-r--r--pkgs/top-level/lua-packages.nix2
-rw-r--r--pkgs/top-level/ocaml-packages.nix2
-rw-r--r--pkgs/top-level/perl-packages.nix2900
-rw-r--r--pkgs/top-level/python-aliases.nix6
-rw-r--r--pkgs/top-level/python-packages.nix74
-rw-r--r--pkgs/top-level/release-lib.nix3
2065 files changed, 43073 insertions, 28675 deletions
diff --git a/.gitignore b/.gitignore
index 1411ef7e1c7ce..3bd5fe66df498 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,13 +5,13 @@
 .idea/
 .vscode/
 outputs/
-result
 result-*
-source/
 /doc/NEWS.html
 /doc/NEWS.txt
 /doc/manual.html
 /doc/manual.pdf
+/result
+/source/
 .version-suffix
 
 .DS_Store
diff --git a/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua b/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua
index 92dc6895750fc..1c745393a04b4 100644
--- a/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua
+++ b/doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua
@@ -27,6 +27,10 @@ function Code(elem)
       content = '<refentrytitle>' .. title .. '</refentrytitle>' .. (volnum ~= nil and ('<manvolnum>' .. volnum .. '</manvolnum>') or '')
     elseif elem.attributes['role'] == 'file' then
       tag = 'filename'
+    elseif elem.attributes['role'] == 'command' then
+      tag = 'command'
+    elseif elem.attributes['role'] == 'option' then
+      tag = 'option'
     end
 
     if tag ~= nil then
diff --git a/doc/builders/images/dockertools.section.md b/doc/builders/images/dockertools.section.md
index 458b0b36720fd..d7f8741437cc9 100644
--- a/doc/builders/images/dockertools.section.md
+++ b/doc/builders/images/dockertools.section.md
@@ -302,7 +302,7 @@ buildImage {
 
   runAsRoot = ''
     #!${pkgs.runtimeShell}
-    ${shadowSetup}
+    ${pkgs.dockerTools.shadowSetup}
     groupadd -r redis
     useradd -r -g redis redis
     mkdir /data
diff --git a/doc/contributing/contributing-to-documentation.chapter.md b/doc/contributing/contributing-to-documentation.chapter.md
index 1384772ebb2bf..db16f13b474b8 100644
--- a/doc/contributing/contributing-to-documentation.chapter.md
+++ b/doc/contributing/contributing-to-documentation.chapter.md
@@ -27,7 +27,7 @@ If the build succeeds, the manual will be in `./result/share/doc/nixpkgs/manual.
 
 As per [RFC 0072](https://github.com/NixOS/rfcs/pull/72), all new documentation content should be written in [CommonMark](https://commonmark.org/) Markdown dialect.
 
-Additionally, the following syntax extensions are currently used:
+Additional syntax extensions are available, though not all extensions can be used in NixOS option documentation. The following extensions are currently used:
 
 - []{#ssec-contributing-markup-anchors}
   Explicitly defined **anchors** on headings, to allow linking to sections. These should be always used, to ensure the anchors can be linked even when the heading text changes, and to prevent conflicts between [automatically assigned identifiers](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/auto_identifiers.md).
@@ -53,12 +53,22 @@ Additionally, the following syntax extensions are currently used:
   This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/using/syntax.html#targets-and-cross-referencing).
 
 - []{#ssec-contributing-markup-inline-roles}
-  If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`.
+  If you want to link to a man page, you can use `` {manpage}`nix.conf(5)` ``, which will turn into {manpage}`nix.conf(5)`. The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`.
 
-  The references will turn into links when a mapping exists in {file}`doc/build-aux/pandoc-filters/link-unix-man-references.lua`.
+  A few markups for other kinds of literals are also available:
+
+  - `` {command}`rm -rfi` `` turns into {command}`rm -rfi`
+  - `` {option}`networking.useDHCP` `` turns into {option}`networking.useDHCP`
+  - `` {file}`/etc/passwd` `` turns into {file}`/etc/passwd`
+
+  These literal kinds are used mostly in NixOS option documentation.
 
   This syntax is taken from [MyST](https://myst-parser.readthedocs.io/en/latest/syntax/syntax.html#roles-an-in-line-extension-point). Though, the feature originates from [reStructuredText](https://www.sphinx-doc.org/en/master/usage/restructuredtext/roles.html#role-manpage) with slightly different syntax.
 
+  ::: {.note}
+  Inline roles are available for option documentation.
+  :::
+
 - []{#ssec-contributing-markup-admonitions}
   **Admonitions**, set off from the text to bring attention to something.
 
@@ -84,6 +94,10 @@ Additionally, the following syntax extensions are currently used:
     - [`tip`](https://tdg.docbook.org/tdg/5.0/tip.html)
     - [`warning`](https://tdg.docbook.org/tdg/5.0/warning.html)
 
+  ::: {.note}
+  Admonitions are available for option documentation.
+  :::
+
 - []{#ssec-contributing-markup-definition-lists}
   [**Definition lists**](https://github.com/jgm/commonmark-hs/blob/master/commonmark-extensions/test/definition_lists.md), for defining a group of terms:
 
diff --git a/doc/contributing/reviewing-contributions.chapter.md b/doc/contributing/reviewing-contributions.chapter.md
index 3417854730ef6..4452695a6f388 100644
--- a/doc/contributing/reviewing-contributions.chapter.md
+++ b/doc/contributing/reviewing-contributions.chapter.md
@@ -185,6 +185,111 @@ Sample template for a new module review is provided below.
 ##### Comments
 ```
 
+## Individual maintainer list {#reviewing-contributions-indvidual-maintainer-list}
+
+When adding users to `maintainers/maintainer-list.nix`, the following
+checks should be performed:
+
+-   If the user has specified a GPG key, verify that the commit is
+    signed by their key.
+
+    First, validate that the commit adding the maintainer is signed by
+    the key the maintainer listed. Check out the pull request and
+    compare its signing key with the listed key in the commit.
+
+    If the commit is not signed or it is signed by a different user, ask
+    them to either recommit using that key or to remove their key
+    information.
+
+    Given a maintainter entry like this:
+
+    ``` nix
+    {
+      example = {
+        email = "user@example.com";
+        name = "Example User";
+        keys = [{
+          fingerprint = "0000 0000 2A70 6423 0AED  3C11 F04F 7A19 AAA6 3AFE";
+        }];
+      }
+    };
+    ```
+
+    First receive their key from a keyserver:
+
+        $ gpg --recv-keys 0xF04F7A19AAA63AFE
+        gpg: key 0xF04F7A19AAA63AFE: public key "Example <user@example.com>" imported
+        gpg: Total number processed: 1
+        gpg:               imported: 1
+
+    Then check the commit is signed by that key:
+
+        $ git log --show-signature
+        commit b87862a4f7d32319b1de428adb6cdbdd3a960153
+        gpg: Signature made Wed Mar 12 13:32:24 2003 +0000
+        gpg:                using RSA key 000000002A7064230AED3C11F04F7A19AAA63AFE
+        gpg: Good signature from "Example User <user@example.com>
+        Author: Example User <user@example.com>
+        Date:   Wed Mar 12 13:32:24 2003 +0000
+
+            maintainers: adding example
+
+    and validate that there is a `Good signature` and the printed key
+    matches the user's submitted key.
+
+    Note: GitHub's "Verified" label does not display the user's full key
+    fingerprint, and should not be used for validating the key matches.
+
+-   If the user has specified a `github` account name, ensure they have
+    also specified a `githubId` and verify the two match.
+
+    Maintainer entries that include a `github` field must also include
+    their `githubId`. People can and do change their GitHub name
+    frequently, and the ID is used as the official and stable identity
+    of the maintainer.
+
+    Given a maintainer entry like this:
+
+    ``` nix
+    {
+      example = {
+        email = "user@example.com";
+        name = "Example User";
+        github = "ghost";
+        githubId = 10137;
+      }
+    };
+    ```
+
+    First, make sure that the listed GitHub handle matches the author of
+    the commit.
+
+    Then, visit the URL `https://api.github.com/users/ghost` and
+    validate that the `id` field matches the provided `githubId`.
+
+## Maintainer teams {#reviewing-contributions-maintainer-teams}
+
+Feel free to create a new maintainer team in `maintainers/team-list.nix`
+when a group is collectively responsible for a collection of packages.
+Use taste and personal judgement when deciding if a team is warranted.
+
+Teams are allowed to define their own rules about membership.
+
+For example, some teams will represent a business or other group which
+wants to carefully track its members. Other teams may be very open about
+who can join, and allow anybody to participate.
+
+When reviewing changes to a team, read the team's scope and the context
+around the member list for indications about the team's membership
+policy.
+
+In any case, request reviews from the existing team members. If the team
+lists no specific membership policy, feel free to merge changes to the
+team after giving the existing members a few days to respond.
+
+*Important:* If a team says it is a closed group, do not merge additions
+to the team without an approval by at least one existing member.
+
 ## Other submissions {#reviewing-contributions-other-submissions}
 
 Other type of submissions requires different reviewing steps.
diff --git a/doc/contributing/submitting-changes.chapter.md b/doc/contributing/submitting-changes.chapter.md
index 6f87e015b9cf3..471e45d7dfb30 100644
--- a/doc/contributing/submitting-changes.chapter.md
+++ b/doc/contributing/submitting-changes.chapter.md
@@ -227,7 +227,7 @@ digraph {
 }
 ```
 
-[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours.
+[This GitHub Action](https://github.com/NixOS/nixpkgs/blob/master/.github/workflows/periodic-merge-6h.yml) brings changes from `master` to `staging-next` and from `staging-next` to `staging` every 6 hours; these are the blue arrows in the diagram above.  The purple arrows in the diagram above are done manually and much less frequently.  You can get an idea of how often these merges occur by looking at the git history.
 
 
 ### Master branch {#submitting-changes-master-branch}
diff --git a/doc/doc-support/default.nix b/doc/doc-support/default.nix
index 7c00195ab3909..429c7a5fbe800 100644
--- a/doc/doc-support/default.nix
+++ b/doc/doc-support/default.nix
@@ -1,5 +1,8 @@
 { pkgs ? (import ../.. {}), nixpkgs ? { }}:
 let
+  inherit (pkgs) lib;
+  inherit (lib) hasPrefix removePrefix;
+
   locationsXml = import ./lib-function-locations.nix { inherit pkgs nixpkgs; };
   functionDocs = import ./lib-function-docs.nix { inherit locationsXml pkgs; };
   version = pkgs.lib.version;
@@ -29,6 +32,18 @@ let
   optionsDoc = pkgs.nixosOptionsDoc {
     inherit (pkgs.lib.evalModules { modules = [ ../../pkgs/top-level/config.nix ]; }) options;
     documentType = "none";
+    transformOptions = opt:
+      opt // {
+        declarations =
+          map
+            (decl:
+              if hasPrefix (toString ../..) (toString decl)
+              then
+                let subpath = removePrefix "/" (removePrefix (toString ../..) (toString decl));
+                in { url = "https://github.com/NixOS/nixpkgs/blob/master/${subpath}"; name = subpath; }
+              else decl)
+            opt.declarations;
+        };
   };
 
 in pkgs.runCommand "doc-support" {}
diff --git a/doc/languages-frameworks/coq.section.md b/doc/languages-frameworks/coq.section.md
index 11777b5eef42e..80d8566f804fd 100644
--- a/doc/languages-frameworks/coq.section.md
+++ b/doc/languages-frameworks/coq.section.md
@@ -41,7 +41,7 @@ The recommended way of defining a derivation for a Coq library, is to use the `c
 * `useDune2` (optional, defaults to `false`) uses Dune2 to build the package if set to true, the presence of this attribute overrides the behavior of the previous one.
 * `opam-name` (optional, defaults to concatenating with a dash separator the components of `namePrefix` and `pname`), name of the Dune package to build.
 * `enableParallelBuilding` (optional, defaults to `true`), since it is activated by default, we provide a way to disable it.
-* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variables `DESTDIR` and `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
+* `extraInstallFlags` (optional), allows to extend `installFlags` which initializes the variable `COQMF_COQLIB` so as to install in the proper subdirectory. Indeed Coq libraries should be installed in `$(out)/lib/coq/${coq.coq-version}/user-contrib/`. Such directories are automatically added to the `$COQPATH` environment variable by the hook defined in the Coq derivation.
 * `setCOQBIN` (optional, defaults to `true`), by default, the environment variable `$COQBIN` is set to the current Coq's binary, but one can disable this behavior by setting it to `false`,
 * `useMelquiondRemake` (optional, default to `null`) is an attribute set, which, if given, overloads the `preConfigurePhases`, `configureFlags`, `buildPhase`, and `installPhase` attributes of the derivation for a specific use in libraries using `remake` as set up by Guillaume Melquiond for `flocq`, `gappalib`, `interval`, and `coquelicot` (see the corresponding derivation for concrete examples of use of this option). For backward compatibility, the attribute `useMelquiondRemake.logpath` must be set to the logical root of the library (otherwise, one can pass `useMelquiondRemake = {}` to activate this without backward compatibility).
 * `dropAttrs`, `keepAttrs`, `dropDerivationAttrs` are all optional and allow to tune which attribute is added or removed from the final call to `mkDerivation`.
diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md
index f7af28a167752..408446674e906 100644
--- a/doc/languages-frameworks/dotnet.section.md
+++ b/doc/languages-frameworks/dotnet.section.md
@@ -72,7 +72,7 @@ The `dotnetCorePackages.sdk` contains both a runtime and the full sdk of a given
 To package Dotnet applications, you can use `buildDotnetModule`. This has similar arguments to `stdenv.mkDerivation`, with the following additions:
 
 * `projectFile` has to be used for specifying the dotnet project file relative to the source root. These usually have `.sln` or `.csproj` file extensions. This can be an array of multiple projects as well.
-* `nugetDeps` has to be used to specify the NuGet dependency file. Unfortunately, these cannot be deterministically fetched without a lockfile. A script to fetch these is available as `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs.
+* `nugetDeps` takes either a path to a `deps.nix` file, or a derivation. The `deps.nix` file can be generated using the script attached to `passthru.fetch-deps`. This file can also be generated manually using `nuget-to-nix` tool, which is available in nixpkgs. If the argument is a derivation, it will be used directly and assume it has the same output as `mkNugetDeps`.
 * `packNupkg` is used to pack project as a `nupkg`, and installs it to `$out/share`. If set to `true`, the derivation can be used as a dependency for another dotnet project by adding it to `projectReferences`.
 * `projectReferences` can be used to resolve `ProjectReference` project items. Referenced projects can be packed with `buildDotnetModule` by setting the `packNupkg = true` attribute and passing a list of derivations to `projectReferences`. Since we are sharing referenced projects as NuGets they must be added to csproj/fsproj files as `PackageReference` as well.
  For example, your project has a local dependency:
diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md
index 3211ae616a1cd..09e177c7a482f 100644
--- a/doc/languages-frameworks/python.section.md
+++ b/doc/languages-frameworks/python.section.md
@@ -8,9 +8,9 @@
 
 Several versions of the Python interpreter are available on Nix, as well as a
 high amount of packages. The attribute `python3` refers to the default
-interpreter, which is currently CPython 3.9. The attribute `python` refers to
+interpreter, which is currently CPython 3.10. The attribute `python` refers to
 CPython 2.7 for backwards-compatibility. It is also possible to refer to
-specific versions, e.g. `python38` refers to CPython 3.8, and `pypy` refers to
+specific versions, e.g. `python39` refers to CPython 3.9, and `pypy` refers to
 the default PyPy interpreter.
 
 Python is used a lot, and in different ways. This affects also how it is
@@ -26,10 +26,10 @@ however, are in separate sets, with one set per interpreter version.
 The interpreters have several common attributes. One of these attributes is
 `pkgs`, which is a package set of Python libraries for this specific
 interpreter. E.g., the `toolz` package corresponding to the default interpreter
-is `python.pkgs.toolz`, and the CPython 3.8 version is `python38.pkgs.toolz`.
+is `python.pkgs.toolz`, and the CPython 3.9 version is `python39.pkgs.toolz`.
 The main package set contains aliases to these package sets, e.g.
-`pythonPackages` refers to `python.pkgs` and `python38Packages` to
-`python38.pkgs`.
+`pythonPackages` refers to `python.pkgs` and `python39Packages` to
+`python39.pkgs`.
 
 #### Installing Python and packages {#installing-python-and-packages}
 
@@ -54,7 +54,7 @@ with `python.buildEnv` or `python.withPackages` where the interpreter and other
 executables are wrapped to be able to find each other and all of the modules.
 
 In the following examples we will start by creating a simple, ad-hoc environment
-with a nix-shell that has `numpy` and `toolz` in Python 3.8; then we will create
+with a nix-shell that has `numpy` and `toolz` in Python 3.9; then we will create
 a re-usable environment in a single-file Python script; then we will create a
 full Python environment for development with this same environment.
 
@@ -70,10 +70,10 @@ temporary shell session with a Python and a *precise* list of packages (plus
 their runtime dependencies), with no other Python packages in the Python
 interpreter's scope.
 
-To create a Python 3.8 session with `numpy` and `toolz` available, run:
+To create a Python 3.9 session with `numpy` and `toolz` available, run:
 
 ```sh
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz ])'
+$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy toolz ])'
 ```
 
 By default `nix-shell` will start a `bash` session with this interpreter in our
@@ -81,8 +81,8 @@ By default `nix-shell` will start a `bash` session with this interpreter in our
 
 ```Python console
 [nix-shell:~/src/nixpkgs]$ python3
-Python 3.8.1 (default, Dec 18 2019, 19:06:26)
-[GCC 9.2.0] on linux
+Python 3.9.12 (main, Mar 23 2022, 21:36:19)
+[GCC 11.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import numpy; import toolz
 ```
@@ -102,13 +102,16 @@ will still get 1 wrapped Python interpreter. We can start the interpreter
 directly like so:
 
 ```sh
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy toolz requests ])' --run python3
-these derivations will be built:
-  /nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv
-building '/nix/store/xbdsrqrsfa1yva5s7pzsra8k08gxlbz1-python3-3.8.1-env.drv'...
-created 277 symlinks in user environment
-Python 3.8.1 (default, Dec 18 2019, 19:06:26)
-[GCC 9.2.0] on linux
+$ nix-shell -p "python39.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3
+this derivation will be built:
+  /nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv
+this path will be fetched (0.09 MiB download, 0.41 MiB unpacked):
+  /nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2
+copying path '/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2' from 'https://cache.nixos.org'...
+building '/nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv'...
+created 279 symlinks in user environment
+Python 3.9.12 (main, Mar 23 2022, 21:36:19)
+[GCC 11.3.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import requests
 >>>
@@ -147,7 +150,7 @@ Executing this script requires a `python3` that has `numpy`. Using what we learn
 in the previous section, we could startup a shell and just run it like so:
 
 ```ShellSession
-$ nix-shell -p 'python38.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
+$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
 The dot product of [1 2] and [3 4] is: 11
 ```
 
@@ -210,12 +213,12 @@ create a single script with Python dependencies, but in the course of normal
 development we're usually working in an entire package repository.
 
 As explained in the Nix manual, `nix-shell` can also load an expression from a
-`.nix` file. Say we want to have Python 3.8, `numpy` and `toolz`, like before,
+`.nix` file. Say we want to have Python 3.9, `numpy` and `toolz`, like before,
 in an environment. We can add a `shell.nix` file describing our dependencies:
 
 ```nix
 with import <nixpkgs> {};
-(python38.withPackages (ps: [ps.numpy ps.toolz])).env
+(python39.withPackages (ps: [ps.numpy ps.toolz])).env
 ```
 
 And then at the command line, just typing `nix-shell` produces the same
@@ -229,7 +232,7 @@ What's happening here?
    imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
    brings all attributes of `nixpkgs` in the local scope. These attributes form
    the main package set.
-2. Then we create a Python 3.8 environment with the `withPackages` function, as before.
+2. Then we create a Python 3.9 environment with the `withPackages` function, as before.
 3. The `withPackages` function expects us to provide a function as an argument
    that takes the set of all Python packages and returns a list of packages to
    include in the environment. Here, we select the packages `numpy` and `toolz`
@@ -240,7 +243,7 @@ To combine this with `mkShell` you can:
 ```nix
 with import <nixpkgs> {};
 let
-  pythonEnv = python38.withPackages (ps: [
+  pythonEnv = python39.withPackages (ps: [
     ps.numpy
     ps.toolz
   ]);
@@ -378,8 +381,8 @@ information. The output of the function is a derivation.
 
 An expression for `toolz` can be found in the Nixpkgs repository. As explained
 in the introduction of this Python section, a derivation of `toolz` is available
-for each interpreter version, e.g. `python38.pkgs.toolz` refers to the `toolz`
-derivation corresponding to the CPython 3.8 interpreter.
+for each interpreter version, e.g. `python39.pkgs.toolz` refers to the `toolz`
+derivation corresponding to the CPython 3.9 interpreter.
 
 The above example works when you're directly working on
 `pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
@@ -392,11 +395,11 @@ and adds it along with a `numpy` package to a Python environment.
 with import <nixpkgs> {};
 
 ( let
-    my_toolz = python38.pkgs.buildPythonPackage rec {
+    my_toolz = python39.pkgs.buildPythonPackage rec {
       pname = "toolz";
       version = "0.10.0";
 
-      src = python38.pkgs.fetchPypi {
+      src = python39.pkgs.fetchPypi {
         inherit pname version;
         sha256 = "08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560";
       };
@@ -414,7 +417,7 @@ with import <nixpkgs> {};
 ```
 
 Executing `nix-shell` will result in an environment in which you can use
-Python 3.8 and the `toolz` package. As you can see we had to explicitly mention
+Python 3.9 and the `toolz` package. As you can see we had to explicitly mention
 for which Python version we want to build a package.
 
 So, what did we do here? Well, we took the Nix expression that we used earlier
@@ -742,7 +745,7 @@ If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
 is a local source, and if the local source has a `setup.py`, then development
 mode is activated.
 
-In the following example we create a simple environment that has a Python 3.8
+In the following example we create a simple environment that has a Python 3.9
 version of our package in it, as well as its dependencies and other packages we
 like to have in the environment, all specified with `propagatedBuildInputs`.
 Indeed, we can just add any package we like to have in our environment to
@@ -750,7 +753,7 @@ Indeed, we can just add any package we like to have in our environment to
 
 ```nix
 with import <nixpkgs> {};
-with python38Packages;
+with python39Packages;
 
 buildPythonPackage rec {
   name = "mypackage";
@@ -828,9 +831,9 @@ and in this case the `python38` interpreter is automatically used.
 
 ### Interpreters {#interpreters}
 
-Versions 2.7, 3.7, 3.8 and 3.9 of the CPython interpreter are available as
-respectively `python27`, `python37`, `python38` and `python39`. The
-aliases `python2` and `python3` correspond to respectively `python27` and
+Versions 2.7, 3.7, 3.8, 3.9 and 3.10 of the CPython interpreter are available
+as respectively `python27`, `python37`, `python38`, `python39` and `python310`.
+The aliases `python2` and `python3` correspond to respectively `python27` and
 `python39`. The attribute `python` maps to `python2`. The PyPy interpreters
 compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
 aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`. The Nix
diff --git a/doc/release-notes.xml b/doc/release-notes.xml
deleted file mode 100644
index a15f54667290c..0000000000000
--- a/doc/release-notes.xml
+++ /dev/null
@@ -1,650 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<article xmlns="http://docbook.org/ns/docbook"
-         xmlns:xlink="http://www.w3.org/1999/xlink">
- <title>Nixpkgs Release Notes</title>
- <section xml:id="release-notes-0.14">
-  <title>Release 0.14 (June 4, 2012)</title>
-
-  <para>
-   In preparation for the switch from Subversion to Git, this release is mainly the prevent the Nixpkgs version number from going backwards. (This would happen because prerelease version numbers produced for the Git repository are lower than those for the Subversion repository.)
-  </para>
-
-  <para>
-   Since the last release, there have been thousands of changes and new packages by numerous contributors. For details, see the commit logs.
-  </para>
- </section>
- <section xml:id="release-notes-0.13">
-  <title>Release 0.13 (February 5, 2010)</title>
-
-  <para>
-   As always, there are many changes. Some of the most important updates are:
-   <itemizedlist>
-    <listitem>
-     <para>
-      Glibc 2.9.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      GCC 4.3.3.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Linux 2.6.32.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      X.org 7.5.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      KDE 4.3.4.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
- </section>
- <section xml:id="release-notes-0.12">
-  <title>Release 0.12 (April 24, 2009)</title>
-
-  <para>
-   There are way too many additions to Nixpkgs since the last release to list here: for example, the number of packages on Linux has increased from 1002 to 2159. However, some specific improvements are worth listing:
-   <itemizedlist>
-    <listitem>
-     <para>
-      Nixpkgs now has a manual. In particular, it describes the standard build environment in detail.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Major new packages:
-      <itemizedlist>
-       <listitem>
-        <para>
-         KDE 4.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         TeXLive.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         VirtualBox.
-        </para>
-       </listitem>
-      </itemizedlist>
-      … and many others.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Important updates:
-      <itemizedlist>
-       <listitem>
-        <para>
-         Glibc 2.7.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         GCC 4.2.4.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Linux 2.6.25 — 2.6.28.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Firefox 3.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         X.org 7.3.
-        </para>
-       </listitem>
-      </itemizedlist>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Support for building derivations in a virtual machine, including RPM and Debian builds in automatically generated VM images. See <filename>pkgs/build-support/vm/default.nix</filename> for details.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Improved support for building Haskell packages.
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
-
-  <para>
-   The following people contributed to this release: Andres Löh, Arie Middelkoop, Armijn Hemel, Eelco Dolstra, Lluís Batlle, Ludovic Courtès, Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Nicolas Pierron, Peter Simons, Pjotr Prins, Rob Vermaas, Sander van der Burg, Tobias Hammerschmidt, Valentin David, Wouter den Breejen and Yury G. Kudryashov. In addition, several people contributed patches on the <literal>nix-dev</literal> mailing list.
-  </para>
- </section>
- <section xml:id="release-notes-0.11">
-  <title>Release 0.11 (September 11, 2007)</title>
-
-  <para>
-   This release has the following improvements:
-   <itemizedlist>
-    <listitem>
-     <para>
-      The standard build environment (<literal>stdenv</literal>) is now pure on the <literal>x86_64-linux</literal> and <literal>powerpc-linux</literal> platforms, just as on <literal>i686-linux</literal>. (Purity means that building and using the standard environment has no dependencies outside of the Nix store. For instance, it doesn’t require an external C compiler such as <filename>/usr/bin/gcc</filename>.) Also, the statically linked binaries used in the bootstrap process are now automatically reproducible, making it easy to update the bootstrap tools and to add support for other Linux platforms. See <filename>pkgs/stdenv/linux/make-bootstrap-tools.nix</filename> for details.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Hook variables in the generic builder are now executed using the <function>eval</function> shell command. This has a major advantage: you can write hooks directly in Nix expressions. For instance, rather than writing a builder like this:
-<programlisting>
-source $stdenv/setup
-
-postInstall=postInstall
-postInstall() {
-    ln -sf gzip $out/bin/gunzip
-    ln -sf gzip $out/bin/zcat
-}
-
-genericBuild</programlisting>
-      (the <literal>gzip</literal> builder), you can just add this attribute to the derivation:
-<programlisting>
-postInstall = "ln -sf gzip $out/bin/gunzip; ln -sf gzip $out/bin/zcat";</programlisting>
-      and so a separate build script becomes unnecessary. This should allow us to get rid of most builders in Nixpkgs.
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      It is now possible to have the generic builder pass arguments to <command>configure</command> and <command>make</command> that contain whitespace. Previously, for example, you could say in a builder,
-<programlisting>
-configureFlags="CFLAGS=-O0"</programlisting>
-      but not
-<programlisting>
-configureFlags="CFLAGS=-O0 -g"</programlisting>
-      since the <literal>-g</literal> would be interpreted as a separate argument to <command>configure</command>. Now you can say
-<programlisting>
-configureFlagsArray=("CFLAGS=-O0 -g")</programlisting>
-      or similarly
-<programlisting>
-configureFlagsArray=("CFLAGS=-O0 -g" "LDFLAGS=-L/foo -L/bar")</programlisting>
-      which does the right thing. Idem for <literal>makeFlags</literal>, <literal>installFlags</literal>, <literal>checkFlags</literal> and <literal>distFlags</literal>.
-     </para>
-     <para>
-      Unfortunately you can't pass arrays to Bash through the environment, so you can't put the array above in a Nix expression, e.g.,
-<programlisting>
-configureFlagsArray = ["CFLAGS=-O0 -g"];</programlisting>
-      since it would just be flattened to a since string. However, you <emphasis>can</emphasis> use the inline hooks described above:
-<programlisting>
-preConfigure = "configureFlagsArray=(\"CFLAGS=-O0 -g\")";</programlisting>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      The function <function>fetchurl</function> now has support for two different kinds of mirroring of files. First, it has support for <emphasis>content-addressable mirrors</emphasis>. For example, given the <function>fetchurl</function> call
-<programlisting>
-fetchurl {
-  url = "http://releases.mozilla.org/<replaceable>...</replaceable>/firefox-2.0.0.6-source.tar.bz2";
-  sha1 = "eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082";
-}</programlisting>
-      <function>fetchurl</function> will first try to download this file from <link
-  xlink:href="http://tarballs.nixos.org/sha1/eb72f55e4a8bf08e8c6ef227c0ade3d068ba1082"/>. If that file doesn’t exist, it will try the original URL. In general, the “content-addressed” location is <replaceable>mirror</replaceable><literal>/</literal><replaceable>hash-type</replaceable><literal>/</literal><replaceable>hash</replaceable>. There is currently only one content-addressable mirror (<link
-  xlink:href="http://tarballs.nixos.org"/>), but more can be specified in the <varname>hashedMirrors</varname> attribute in <filename>pkgs/build-support/fetchurl/mirrors.nix</filename>, or by setting the <envar>NIX_HASHED_MIRRORS</envar> environment variable to a whitespace-separated list of URLs.
-     </para>
-     <para>
-      Second, <function>fetchurl</function> has support for widely-mirrored distribution sites such as SourceForge or the Linux kernel archives. Given a URL of the form <literal>mirror://<replaceable>site</replaceable>/<replaceable>path</replaceable></literal>, it will try to download <replaceable>path</replaceable> from a configurable list of mirrors for <replaceable>site</replaceable>. (This idea was borrowed from Gentoo Linux.) Example:
-<programlisting>
-fetchurl {
-  url = mirror://gnu/gcc/gcc-4.2.0/gcc-core-4.2.0.tar.bz2;
-  sha256 = "0ykhzxhr8857dr97z0j9wyybfz1kjr71xk457cfapfw5fjas4ny1";
-}</programlisting>
-      Currently <replaceable>site</replaceable> can be <literal>sourceforge</literal>, <literal>gnu</literal> and <literal>kernel</literal>. The list of mirrors is defined in <filename>pkgs/build-support/fetchurl/mirrors.nix</filename>. You can override the list of mirrors for a particular site by setting the environment variable <envar>NIX_MIRRORS_<replaceable>site</replaceable></envar>, e.g.
-<programlisting>
-export NIX_MIRRORS_sourceforge=http://osdn.dl.sourceforge.net/sourceforge/</programlisting>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Important updates:
-      <itemizedlist>
-       <listitem>
-        <para>
-         Glibc 2.5.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         GCC 4.1.2.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Gnome 2.16.3.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         X11R7.2.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Linux 2.6.21.7 and 2.6.22.6.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Emacs 22.1.
-        </para>
-       </listitem>
-      </itemizedlist>
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Major new packages:
-      <itemizedlist>
-       <listitem>
-        <para>
-         KDE 3.5.6 Base.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Wine 0.9.43.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         OpenOffice 2.2.1.
-        </para>
-       </listitem>
-       <listitem>
-        <para>
-         Many Linux system packages to support NixOS.
-        </para>
-       </listitem>
-      </itemizedlist>
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
-
-  <para>
-   The following people contributed to this release: Andres Löh, Arie Middelkoop, Armijn Hemel, Eelco Dolstra, Marc Weber, Mart Kolthof, Martin Bravenboer, Michael Raskin, Wouter den Breejen and Yury G. Kudryashov.
-  </para>
- </section>
- <section xml:id="release-notes-0.10">
-  <title>Release 0.10 (October 12, 2006)</title>
-
-  <note>
-   <para>
-    This release of Nixpkgs requires <link
-xlink:href='https://nixos.org/releases/nix/nix-0.10/'>Nix 0.10</link> or higher.
-   </para>
-  </note>
-
-  <para>
-   This release has the following improvements:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     <filename>pkgs/system/all-packages-generic.nix</filename> is gone, we now just have <filename>pkgs/top-level/all-packages.nix</filename> that contains all available packages. This should cause much less confusion with users. <filename>all-packages.nix</filename> is a function that by default returns packages for the current platform, but you can override this by specifying a different <varname>system</varname> argument.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Certain packages in Nixpkgs are now user-configurable through a configuration file, i.e., without having to edit the Nix expressions in Nixpkgs. For instance, the Firefox provided in the Nixpkgs channel is built without the RealPlayer plugin (for legal reasons). Previously, you could easily enable RealPlayer support by editing the call to the Firefox function in <filename>all-packages.nix</filename>, but such changes are not respected when Firefox is subsequently updated through the Nixpkgs channel.
-    </para>
-    <para>
-     The Nixpkgs configuration file (found in <filename>~/.nixpkgs/config.nix</filename> or through the <envar>NIXPKGS_CONFIG</envar> environment variable) is an attribute set that contains configuration options that <filename>all-packages.nix</filename> reads and uses for certain packages. For instance, the following configuration file:
-<programlisting>
-{
-  firefox = {
-    enableRealPlayer = true;
-  };
-}</programlisting>
-     persistently enables RealPlayer support in the Firefox build.
-    </para>
-    <para>
-     (Actually, <literal>firefox.enableRealPlayer</literal> is the <emphasis>only</emphasis> configuration option currently available, but more are sure to be added.)
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Support for new platforms:
-     <itemizedlist>
-      <listitem>
-       <para>
-        <literal>i686-cygwin</literal>, i.e., Windows (using <link xlink:href="http://www.cygwin.com/">Cygwin</link>). The standard environment on <literal>i686-cygwin</literal> by default builds binaries for the Cygwin environment (i.e., it uses Cygwin tools and produces executables that use the Cygwin library). However, there is also a standard environment that produces binaries that use <link
-      xlink:href="http://www.mingw.org/">MinGW</link>. You can use it by calling <filename>all-package.nix</filename> with the <varname>stdenvType</varname> argument set to <literal>"i686-mingw"</literal>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>i686-darwin</literal>, i.e., Mac OS X on Intel CPUs.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>powerpc-linux</literal>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>x86_64-linux</literal>, i.e., Linux on 64-bit AMD/Intel CPUs. Unlike <literal>i686-linux</literal>, this platform doesn’t have a pure <literal>stdenv</literal> yet.
-       </para>
-      </listitem>
-     </itemizedlist>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     The default compiler is now GCC 4.1.1.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     X11 updated to X.org’s X11R7.1.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Notable new packages:
-     <itemizedlist>
-      <listitem>
-       <para>
-        Opera.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Microsoft Visual C++ 2005 Express Edition and the Windows SDK.
-       </para>
-      </listitem>
-     </itemizedlist>
-     In total there are now around 809 packages in Nixpkgs.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It is now <emphasis>much</emphasis> easier to override the default C compiler and other tools in <literal>stdenv</literal> for specific packages. <filename>all-packages.nix</filename> provides two utility functions for this purpose: <function>overrideGCC</function> and <function>overrideInStdenv</function>. Both take a <literal>stdenv</literal> and return an augmented <literal>stdenv</literal>; the formed changes the C compiler, and the latter adds additional packages to the front of <literal>stdenv</literal>’s initial <envar>PATH</envar>, allowing tools to be overridden.
-    </para>
-    <para>
-     For instance, the package <varname>strategoxt</varname> doesn’t build with the GNU Make in <literal>stdenv</literal> (version 3.81), so we call it with an augmented <literal>stdenv</literal> that uses GNU Make 3.80:
-<programlisting>
-strategoxt = (import ../development/compilers/strategoxt) {
-  inherit fetchurl pkgconfig sdf aterm;
-  stdenv = overrideInStdenv stdenv [gnumake380];
-};
-
-gnumake380 = <replaceable>...</replaceable>;</programlisting>
-     Likewise, there are many packages that don’t compile with the default GCC (4.1.1), but that’s easily fixed:
-<programlisting>
-exult = import ../games/exult {
-  inherit fetchurl SDL SDL_mixer zlib libpng unzip;
-  stdenv = overrideGCC stdenv gcc34;
-};</programlisting>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     It has also become much easier to experiment with changes to the <literal>stdenv</literal> setup script (which notably contains the generic builder). Since edits to <filename>pkgs/stdenv/generic/setup.sh</filename> trigger a rebuild of <emphasis>everything</emphasis>, this was formerly quite painful. But now <literal>stdenv</literal> contains a function to “regenerate” <literal>stdenv</literal> with a different setup script, allowing the use of a different setup script for specific packages:
-<programlisting>
-pkg = import <replaceable>...</replaceable> {
-  stdenv = stdenv.regenerate ./my-setup.sh;
-  <replaceable>...</replaceable>
-}</programlisting>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Packages can now have a human-readable <emphasis>description</emphasis> field. Package descriptions are shown by <literal>nix-env -qa --description</literal>. In addition, they’re shown on the Nixpkgs release page. A description can be added to a package as follows:
-<programlisting>
-stdenv.mkDerivation {
-  name = "exult-1.2";
-  <replaceable>...</replaceable>
-  meta = {
-    description = "A reimplementation of the Ultima VII game engine";
-  };
-}</programlisting>
-     The <varname>meta</varname> attribute is not passed to the builder, so changes to the description do not trigger a rebuild. Additional <varname>meta</varname> attributes may be defined in the future (such as the URL of the package’s homepage, the license, etc.).
-    </para>
-   </listitem>
-  </itemizedlist>
-
-  <para>
-   The following people contributed to this release: Andres Löh, Armijn Hemel, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin Bravenboer, Merijn de Jonge, Rob Vermaas and Roy van den Broek.
-  </para>
- </section>
- <section xml:id="release-notes-0.9">
-  <title>Release 0.9 (January 31, 2006)</title>
-
-  <para>
-   There have been zillions of changes since the last release of Nixpkgs. Many packages have been added or updated. The following are some of the more notable changes:
-  </para>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     Distribution files have been moved to <link
-  xlink:href="https://nixos.org/" />.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     The C library on Linux, Glibc, has been updated to version 2.3.6.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     The default compiler is now GCC 3.4.5. GCC 4.0.2 is also available.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     The old, unofficial Xlibs has been replaced by the official modularised X11 distribution from X.org, i.e., X11R7.0. X11R7.0 consists of 287 (!) packages, all of which are in Nixpkgs though not all have been tested. It is now possible to build a working X server (previously we only had X client libraries). We use a fully Nixified X server on NixOS.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     The Sun JDK 5 has been purified, i.e., it doesn’t require any non-Nix components such as <filename>/lib/ld-linux.so.2</filename>. This means that Java applications such as Eclipse and Azureus can run on NixOS.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Hardware-accelerated OpenGL support, used by games like Quake 3 (which is now built from source).
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Improved support for FreeBSD on x86.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Improved Haskell support; e.g., the GHC build is now pure.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Some support for cross-compilation: cross-compiling builds of GCC and Binutils, and cross-compiled builds of the C library uClibc.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Notable new packages:
-     <itemizedlist>
-      <listitem>
-       <para>
-        teTeX, including support for building LaTeX documents using Nix (with automatic dependency determination).
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Ruby.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        System-level packages to support NixOS, e.g. Grub, GNU <literal>parted</literal> and so on.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>ecj</literal>, the Eclipse Compiler for Java, so we finally have a freely distributable compiler that supports Java 5.0.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>php</literal>.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        The GIMP.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Inkscape.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        GAIM.
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        <literal>kdelibs</literal>. This allows us to add KDE-based packages (such as <literal>kcachegrind</literal>).
-       </para>
-      </listitem>
-     </itemizedlist>
-    </para>
-   </listitem>
-  </itemizedlist>
-
-  <para>
-   The following people contributed to this release: Andres Löh, Armijn Hemel, Bogdan Dumitriu, Christof Douma, Eelco Dolstra, Eelco Visser, Mart Kolthof, Martin Bravenboer, Rob Vermaas and Roy van den Broek.
-  </para>
- </section>
- <section xml:id="release-notes-0.8">
-  <title>Release 0.8 (April 11, 2005)</title>
-
-  <para>
-   This release is mostly to remain synchronised with the changed hashing scheme in Nix 0.8.
-  </para>
-
-  <para>
-   Notable updates:
-   <itemizedlist>
-    <listitem>
-     <para>
-      Adobe Reader 7.0
-     </para>
-    </listitem>
-    <listitem>
-     <para>
-      Various security updates (zlib 1.2.2, etc.)
-     </para>
-    </listitem>
-   </itemizedlist>
-  </para>
- </section>
- <section xml:id="release-notes-0.7">
-  <title>Release 0.7 (March 14, 2005)</title>
-
-  <itemizedlist>
-   <listitem>
-    <para>
-     The bootstrap process for the standard build environment on Linux (stdenv-linux) has been improved. It is no longer dependent in its initial bootstrap stages on the system Glibc, GCC, and other tools. Rather, Nixpkgs contains a statically linked bash and curl, and uses that to download other statically linked tools. These are then used to build a Glibc and dynamically linked versions of all other tools.
-    </para>
-    <para>
-     This change also makes the bootstrap process faster. For instance, GCC is built only once instead of three times.
-    </para>
-    <para>
-     (Contributed by Armijn Hemel.)
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Tarballs used by Nixpkgs are now obtained from the same server that hosts Nixpkgs (<link
-  xlink:href="http://catamaran.labs.cs.uu.nl/" />). This reduces the risk of packages being unbuildable due to moved or deleted files on various servers.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     There now is a generic mechanism for building Perl modules. See the various Perl modules defined in pkgs/system/all-packages-generic.nix.
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Notable new packages:
-     <itemizedlist>
-      <listitem>
-       <para>
-        Qt 3
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        MySQL
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        MythTV
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Mono
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        MonoDevelop (alpha)
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Xine
-       </para>
-      </listitem>
-     </itemizedlist>
-    </para>
-   </listitem>
-   <listitem>
-    <para>
-     Notable updates:
-     <itemizedlist>
-      <listitem>
-       <para>
-        GCC 3.4.3
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        Glibc 2.3.4
-       </para>
-      </listitem>
-      <listitem>
-       <para>
-        GTK 2.6
-       </para>
-      </listitem>
-     </itemizedlist>
-    </para>
-   </listitem>
-  </itemizedlist>
- </section>
-</article>
diff --git a/lib/default.nix b/lib/default.nix
index a0d3339ef08e8..e2a93e63ac1fe 100644
--- a/lib/default.nix
+++ b/lib/default.nix
@@ -131,7 +131,9 @@ let
       getValues getFiles
       optionAttrSetToDocList optionAttrSetToDocList'
       scrubOptionValue literalExpression literalExample literalDocBook
-      showOption showFiles unknownModule mkOption mkPackageOption;
+      showOption showOptionWithDefLocs showFiles
+      unknownModule mkOption mkPackageOption
+      mdDoc literalMD;
     inherit (self.types) isType setType defaultTypeMerge defaultFunctor
       isOptionType mkOptionType;
     inherit (self.asserts)
diff --git a/lib/modules.nix b/lib/modules.nix
index 48ddb31508f25..1e48f54407989 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -113,10 +113,6 @@ rec {
                   args ? {}
                 , # This would be remove in the future, Prefer _module.check option instead.
                   check ? true
-                  # Internal variable to avoid `_key` collisions regardless
-                  # of `extendModules`. Used in `submoduleWith`.
-                  # Test case: lib/tests/modules, "168767"
-                , extensionOffset ? 0
                 }:
     let
       withWarnings = x:
@@ -345,17 +341,15 @@ rec {
         modules ? [],
         specialArgs ? {},
         prefix ? [],
-        extensionOffset ? length modules,
         }:
           evalModules (evalModulesArgs // {
             modules = regularModules ++ modules;
             specialArgs = evalModulesArgs.specialArgs or {} // specialArgs;
             prefix = extendArgs.prefix or evalModulesArgs.prefix or [];
-            inherit extensionOffset;
           });
 
       type = lib.types.submoduleWith {
-        inherit modules specialArgs extensionOffset;
+        inherit modules specialArgs;
       };
 
       result = withWarnings {
@@ -468,6 +462,7 @@ rec {
           config = addFreeformType (addMeta (m.config or {}));
         }
     else
+      lib.throwIfNot (isAttrs m) "module ${file} (${key}) does not look like a module."
       { _file = toString m._file or file;
         key = toString m.key or key;
         disabledModules = m.disabledModules or [];
diff --git a/lib/options.nix b/lib/options.nix
index 8d82a809083b7..afae1769afdd4 100644
--- a/lib/options.nix
+++ b/lib/options.nix
@@ -7,6 +7,7 @@ let
     collect
     concatLists
     concatMap
+    concatMapStringsSep
     elemAt
     filter
     foldl'
@@ -280,6 +281,21 @@ rec {
     if ! isString text then throw "literalDocBook expects a string."
     else { _type = "literalDocBook"; inherit text; };
 
+  /* Transition marker for documentation that's already migrated to markdown
+     syntax.
+  */
+  mdDoc = text:
+    if ! isString text then throw "mdDoc expects a string."
+    else { _type = "mdDoc"; inherit text; };
+
+  /* For use in the `defaultText` and `example` option attributes. Causes the
+     given MD text to be inserted verbatim in the documentation, for when
+     a `literalExpression` would be too hard to read.
+  */
+  literalMD = text:
+    if ! isString text then throw "literalMD expects a string."
+    else { _type = "literalMD"; inherit text; };
+
   # Helper functions.
 
   /* Convert an option, described as a list of the option parts in to a
@@ -325,6 +341,11 @@ rec {
     in "\n- In `${def.file}'${result}"
   ) defs;
 
+  showOptionWithDefLocs = opt: ''
+      ${showOption opt.loc}, with values defined in:
+      ${concatMapStringsSep "\n" (defFile: "  - ${defFile}") opt.files}
+    '';
+
   unknownModule = "<unknown-file>";
 
 }
diff --git a/lib/tests/maintainer-module.nix b/lib/tests/maintainer-module.nix
new file mode 100644
index 0000000000000..8cf8411b476a4
--- /dev/null
+++ b/lib/tests/maintainer-module.nix
@@ -0,0 +1,31 @@
+{ lib, ... }:
+let
+  inherit (lib) types;
+in {
+  options = {
+    name = lib.mkOption {
+      type = types.str;
+    };
+    email = lib.mkOption {
+      type = types.str;
+    };
+    matrix = lib.mkOption {
+      type = types.nullOr types.str;
+      default = null;
+    };
+    github = lib.mkOption {
+      type = types.nullOr types.str;
+      default = null;
+    };
+    githubId = lib.mkOption {
+      type = types.nullOr types.ints.unsigned;
+      default = null;
+    };
+    keys = lib.mkOption {
+      type = types.listOf (types.submodule {
+        options.fingerprint = lib.mkOption { type = types.str; };
+      });
+      default = [];
+    };
+  };
+}
diff --git a/lib/tests/maintainers.nix b/lib/tests/maintainers.nix
index 3cbfba569481c..935d256d218d2 100644
--- a/lib/tests/maintainers.nix
+++ b/lib/tests/maintainers.nix
@@ -1,50 +1,19 @@
 # to run these tests (and the others)
 # nix-build nixpkgs/lib/tests/release.nix
 { # The pkgs used for dependencies for the testing itself
-  pkgs
-, lib
+  pkgs ? import ../.. {}
+, lib ? pkgs.lib
 }:
 
 let
   inherit (lib) types;
-
-  maintainerModule = { config, ... }: {
-    options = {
-      name = lib.mkOption {
-        type = types.str;
-      };
-      email = lib.mkOption {
-        type = types.str;
-      };
-      matrix = lib.mkOption {
-        type = types.nullOr types.str;
-        default = null;
-      };
-      github = lib.mkOption {
-        type = types.nullOr types.str;
-        default = null;
-      };
-      githubId = lib.mkOption {
-        type = types.nullOr types.ints.unsigned;
-        default = null;
-      };
-      keys = lib.mkOption {
-        type = types.listOf (types.submodule {
-          options.longkeyid = lib.mkOption { type = types.str; };
-          options.fingerprint = lib.mkOption { type = types.str; };
-        });
-        default = [];
-      };
-    };
-  };
-
   checkMaintainer = handle: uncheckedAttrs:
   let
       prefix = [ "lib" "maintainers" handle ];
       checkedAttrs = (lib.modules.evalModules {
         inherit prefix;
         modules = [
-          maintainerModule
+          ./maintainer-module.nix
           {
             _file = toString ../../maintainers/maintainer-list.nix;
             config = uncheckedAttrs;
diff --git a/lib/tests/modules.sh b/lib/tests/modules.sh
index 487fcd93641b8..c92cc62023b56 100755
--- a/lib/tests/modules.sh
+++ b/lib/tests/modules.sh
@@ -194,6 +194,17 @@ checkConfigOutput '^"submodule"$' options.submodule.type.description ./declare-s
 ## Paths should be allowed as values and work as expected
 checkConfigOutput '^true$' config.submodule.enable ./declare-submoduleWith-path.nix
 
+## deferredModule
+# default module is merged into nodes.foo
+checkConfigOutput '"beta"' config.nodes.foo.settingsDict.c ./deferred-module.nix
+# errors from the default module are reported with accurate location
+checkConfigError 'In `the-file-that-contains-the-bad-config.nix, via option default'\'': "bogus"' config.nodes.foo.bottom ./deferred-module.nix
+checkConfigError '.*lib/tests/modules/deferred-module-error.nix, via option deferred [(]:anon-1:anon-1:anon-1[)] does not look like a module.' config.result ./deferred-module-error.nix
+
+# Check the file location information is propagated into submodules
+checkConfigOutput the-file.nix config.submodule.internalFiles.0 ./submoduleFiles.nix
+
+
 # Check that disabledModules works recursively and correctly
 checkConfigOutput '^true$' config.enable ./disable-recursive/main.nix
 checkConfigOutput '^true$' config.enable ./disable-recursive/{main.nix,disable-foo.nix}
diff --git a/lib/tests/modules/deferred-module-error.nix b/lib/tests/modules/deferred-module-error.nix
new file mode 100644
index 0000000000000..d48ae092e8fe8
--- /dev/null
+++ b/lib/tests/modules/deferred-module-error.nix
@@ -0,0 +1,20 @@
+{ config, lib, ... }:
+let
+  inherit (lib) types mkOption setDefaultModuleLocation evalModules;
+  inherit (types) deferredModule lazyAttrsOf submodule str raw enum;
+in
+{
+  options = {
+    deferred = mkOption {
+      type = deferredModule;
+    };
+    result = mkOption {
+      default = (evalModules { modules = [ config.deferred ]; }).config.result;
+    };
+  };
+  config = {
+    deferred = { ... }:
+      # this should be an attrset, so this fails
+      true;
+  };
+}
diff --git a/lib/tests/modules/deferred-module.nix b/lib/tests/modules/deferred-module.nix
new file mode 100644
index 0000000000000..d03c60b029bf1
--- /dev/null
+++ b/lib/tests/modules/deferred-module.nix
@@ -0,0 +1,58 @@
+{ lib, ... }:
+let
+  inherit (lib) types mkOption setDefaultModuleLocation;
+  inherit (types) deferredModule lazyAttrsOf submodule str raw enum;
+in
+{
+  imports = [
+    # generic module, declaring submodules:
+    #   - nodes.<name>
+    #   - default
+    # where all nodes include the default
+    ({ config, ... }: {
+      _file = "generic.nix";
+      options.nodes = mkOption {
+        type = lazyAttrsOf (submodule { imports = [ config.default ]; });
+        default = {};
+      };
+      options.default = mkOption {
+        type = deferredModule;
+        default = { };
+        description = ''
+          Module that is included in all nodes.
+        '';
+      };
+    })
+
+    {
+      _file = "default-1.nix";
+      default = { config, ... }: {
+        options.settingsDict = lib.mkOption { type = lazyAttrsOf str; default = {}; };
+        options.bottom = lib.mkOption { type = enum []; };
+      };
+    }
+
+    {
+      _file = "default-a-is-b.nix";
+      default = ./define-settingsDict-a-is-b.nix;
+    }
+
+    {
+      _file = "nodes-foo.nix";
+      nodes.foo.settingsDict.b = "beta";
+    }
+
+    {
+      _file = "the-file-that-contains-the-bad-config.nix";
+      default.bottom = "bogus";
+    }
+
+    {
+      _file = "nodes-foo-c-is-a.nix";
+      nodes.foo = { config, ... }: {
+        settingsDict.c = config.settingsDict.a;
+      };
+    }
+
+  ];
+}
diff --git a/lib/tests/modules/define-settingsDict-a-is-b.nix b/lib/tests/modules/define-settingsDict-a-is-b.nix
new file mode 100644
index 0000000000000..42363f45f78de
--- /dev/null
+++ b/lib/tests/modules/define-settingsDict-a-is-b.nix
@@ -0,0 +1,3 @@
+{ config, ... }: {
+  settingsDict.a = config.settingsDict.b;
+}
diff --git a/lib/tests/modules/submoduleFiles.nix b/lib/tests/modules/submoduleFiles.nix
new file mode 100644
index 0000000000000..c0d9b2cef3e8d
--- /dev/null
+++ b/lib/tests/modules/submoduleFiles.nix
@@ -0,0 +1,21 @@
+{ lib, ... }: {
+  options.submodule = lib.mkOption {
+    default = {};
+    type = lib.types.submoduleWith {
+      modules = [ ({ options, ... }: {
+        options.value = lib.mkOption {};
+
+        options.internalFiles = lib.mkOption {
+          default = options.value.files;
+        };
+      })];
+    };
+  };
+
+  imports = [
+    {
+      _file = "the-file.nix";
+      submodule.value = 10;
+    }
+  ];
+}
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index 815841e0a8f30..b93a4236f91e1 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -11,6 +11,10 @@ pkgs.runCommand "nixpkgs-lib-tests" {
       inherit pkgs;
       lib = import ../.;
     })
+    (import ./teams.nix {
+      inherit pkgs;
+      lib = import ../.;
+    })
   ];
 } ''
     datadir="${pkgs.nix}/share"
diff --git a/lib/tests/teams.nix b/lib/tests/teams.nix
new file mode 100644
index 0000000000000..8a0a5d272634b
--- /dev/null
+++ b/lib/tests/teams.nix
@@ -0,0 +1,50 @@
+# to run these tests:
+# nix-build nixpkgs/lib/tests/teams.nix
+# If it builds, all tests passed
+{ pkgs ? import ../.. {}, lib ? pkgs.lib }:
+
+let
+  inherit (lib) types;
+
+  teamModule = { config, ... }: {
+    options = {
+      shortName = lib.mkOption {
+        type = types.str;
+      };
+      scope = lib.mkOption {
+        type = types.str;
+      };
+      enableFeatureFreezePing = lib.mkOption {
+        type = types.bool;
+        default = false;
+      };
+      members = lib.mkOption {
+        type = types.listOf (types.submodule
+          (import ./maintainer-module.nix { inherit lib; })
+        );
+        default = [];
+      };
+      githubTeams = lib.mkOption {
+        type = types.listOf types.str;
+        default = [];
+      };
+    };
+  };
+
+  checkTeam = team: uncheckedAttrs:
+  let
+      prefix = [ "lib" "maintainer-team" team ];
+      checkedAttrs = (lib.modules.evalModules {
+        inherit prefix;
+        modules = [
+          teamModule
+          {
+            _file = toString ../../maintainers/team-list.nix;
+            config = uncheckedAttrs;
+          }
+        ];
+      }).config;
+  in checkedAttrs;
+
+  checkedTeams = lib.mapAttrs checkTeam lib.teams;
+in pkgs.writeTextDir "maintainer-teams.json" (builtins.toJSON checkedTeams)
diff --git a/lib/types.nix b/lib/types.nix
index 147b92f784c9d..354714b287333 100644
--- a/lib/types.nix
+++ b/lib/types.nix
@@ -539,6 +539,36 @@ rec {
       modules = toList modules;
     };
 
+    # A module to be imported in some other part of the configuration.
+    deferredModule = deferredModuleWith { };
+
+    # A module to be imported in some other part of the configuration.
+    # `staticModules`' options will be added to the documentation, unlike
+    # options declared via `config`.
+    deferredModuleWith = attrs@{ staticModules ? [] }: mkOptionType {
+      name = "deferredModule";
+      description = "module";
+      check = x: isAttrs x || isFunction x || path.check x;
+      merge = loc: defs: {
+        imports = staticModules ++ map (def: lib.setDefaultModuleLocation "${def.file}, via option ${showOption loc}" def.value) defs;
+      };
+      inherit (submoduleWith { modules = staticModules; })
+        getSubOptions
+        getSubModules;
+      substSubModules = m: deferredModuleWith (attrs // {
+        staticModules = m;
+      });
+      functor = defaultFunctor "deferredModuleWith" // {
+        type = types.deferredModuleWith;
+        payload = {
+          inherit staticModules;
+        };
+        binOp = lhs: rhs: {
+          staticModules = lhs.staticModules ++ rhs.staticModules;
+        };
+      };
+    };
+
     # The type of a type!
     optionType = mkOptionType {
       name = "optionType";
@@ -571,28 +601,14 @@ rec {
       , specialArgs ? {}
       , shorthandOnlyDefinesConfig ? false
       , description ? null
-
-        # Internal variable to avoid `_key` collisions regardless
-        # of `extendModules`. Wired through by `evalModules`.
-        # Test case: lib/tests/modules, "168767"
-      , extensionOffset ? 0
       }@attrs:
       let
         inherit (lib.modules) evalModules;
 
-        shorthandToModule = if shorthandOnlyDefinesConfig == false
-          then value: value
-          else value: { config = value; };
-
-        allModules = defs: imap1 (n: { value, file }:
-          if isFunction value
-          then setFunctionArgs
-                (args: lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (value args))
-                (functionArgs value)
-          else if isAttrs value
-          then
-            lib.modules.unifyModuleSyntax file "${toString file}-${toString (n + extensionOffset)}" (shorthandToModule value)
-          else value
+        allModules = defs: map ({ value, file }:
+          if isAttrs value && shorthandOnlyDefinesConfig
+          then { _file = file; config = value; }
+          else { _file = file; imports = [ value ]; }
         ) defs;
 
         base = evalModules {
@@ -632,7 +648,6 @@ rec {
           (base.extendModules {
             modules = [ { _module.args.name = last loc; } ] ++ allModules defs;
             prefix = loc;
-            extensionOffset = extensionOffset + length defs;
           }).config;
         emptyValue = { value = {}; };
         getSubOptions = prefix: (base.extendModules
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index 691d95e31f538..8a177be26d7c7 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -10,7 +10,6 @@
       github = "GithubUsername";
       githubId = your-github-id;
       keys = [{
-        longkeyid = "rsa2048/0x0123456789ABCDEF";
         fingerprint = "AAAA BBBB CCCC DDDD EEEE  FFFF 0000 1111 2222 3333";
       }];
     };
@@ -24,7 +23,7 @@
     - `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 IDs and fingerprints.
+    - `keys` is a list of your PGP/GPG key fingerprints.
 
     `handle == github` is strongly preferred whenever `github` is an acceptable attribute name and is short and convenient.
 
@@ -39,14 +38,18 @@
 
     To get the required PGP/GPG values for a key run
     ```shell
-    gpg --keyid-format 0xlong --fingerprint <email> | head -n 2
+    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.
 
     More fields may be added in the future, however, in order to comply with GDPR this file should stay as minimal as possible.
 
-    Please keep the list alphabetically sorted.
+    When editing this file:
+     * keep the list alphabetically sorted
+     * 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.
 */
 {
@@ -63,7 +66,6 @@
     github = "0x4A6F";
     githubId = 9675338;
     keys = [{
-      longkeyid = "rsa8192/0x87027528B006D66D";
       fingerprint = "F466 A548 AD3F C1F1 8C88  4576 8702 7528 B006 D66D";
     }];
   };
@@ -73,10 +75,16 @@
     github = "0xbe7a";
     githubId = 6232980;
     keys = [{
-      longkeyid = "rsa4096/0x6510870A77F49A99";
       fingerprint = "2536 9E86 1AA5 9EB7 4C47  B138 6510 870A 77F4 9A99";
     }];
   };
+  _0xC45 = {
+    email = "jason@0xc45.com";
+    name = "Jason Vigil";
+    github = "0xC45";
+    githubId = 56617252;
+    matrix = "@oxc45:matrix.org";
+  };
   _1000101 = {
     email = "b1000101@pm.me";
     github = "1000101";
@@ -182,7 +190,6 @@
     githubId = 2255192;
     name = "Ashish SHUKLA";
     keys = [{
-      longkeyid = "rsa4096/0xC746CFA9E74FA4B0";
       fingerprint = "F682 CDCC 39DC 0FEA E116  20B6 C746 CFA9 E74F A4B0";
     }];
   };
@@ -524,7 +531,6 @@
     github = "alexshpilkin";
     githubId = 1010468;
     keys = [{
-      longkeyid = "rsa4096/0x73E9AA114B3A894B";
       fingerprint = "B595 D74D 6615 C010 469F  5A13 73E9 AA11 4B3A 894B";
     }];
     matrix = "@alexshpilkin:matrix.org";
@@ -560,6 +566,12 @@
     githubId = 36147;
     name = "Alireza Meskin";
   };
+  alkasm = {
+    email = "alexreynolds00@gmail.com";
+    github = "alkasm";
+    githubId = 9651002;
+    name = "Alexander Reynolds";
+  };
   alkeryn = {
     email = "plbraundev@gmail.com";
     github = "Alkeryn";
@@ -582,7 +594,6 @@
     github = "AluisioASG";
     githubId = 1904165;
     keys = [{
-      longkeyid = "rsa4096/0x9FAA63E097506D9D";
       fingerprint = "7FDB 17B3 C29B 5BA6 E5A9  8BB2 9FAA 63E0 9750 6D9D";
     }];
   };
@@ -592,6 +603,12 @@
     githubId = 60479013;
     name = "Alma Cemerlic";
   };
+  alternateved = {
+    email = "alternateved@pm.me";
+    github = "alternateved";
+    githubId = 45176912;
+    name = "Tomasz Hołubowicz";
+  };
   alunduil = {
     email = "alunduil@gmail.com";
     github = "alunduil";
@@ -604,7 +621,6 @@
     githubId = 42881386;
     name = "Alva";
     keys = [{
-      longkeyid = "ed25519/0xF53E323342F7A6D3";
       fingerprint = "B422 CFB1 C9EF 73F7 E1E2 698D F53E 3233 42F7 A6D3A";
     }];
   };
@@ -614,7 +630,6 @@
     githubId = 74795488;
     name = "Alexandra Hollmeier";
     keys = [{
-      longkeyid = "rsa3072/0x87D1AADCD25B8DEE";
       fingerprint = "1F73 8879 5E5A 3DFC E2B3 FA32 87D1 AADC D25B 8DEE";
     }];
   };
@@ -654,7 +669,6 @@
     github = "matilde-ametrine";
     githubId = 90799677;
     keys = [{
-      longkeyid = "rsa3072/0x07EE1FFCA58A11C5";
       fingerprint = "7931 EB4E 4712 D7BE 04F8  6D34 07EE 1FFC A58A 11C5";
     }];
   };
@@ -682,7 +696,6 @@
     github = "notbandali";
     githubId = 1254858;
     keys = [{
-      longkeyid = "rsa4096/0xA21A020248816103";
       fingerprint = "BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103";
     }];
   };
@@ -818,7 +831,6 @@
     github = "anhdle14";
     githubId = 9645992;
     keys = [{
-      longkeyid = "rsa4096/0x0299AFF9ECBB5169";
       fingerprint = "AA4B 8EC3 F971 D350 482E  4E20 0299 AFF9 ECBB 5169";
     }];
   };
@@ -834,7 +846,6 @@
     github = "Anillc";
     githubId = 23411248;
     keys = [{
-      longkeyid = "ed25519/0x0BE8A88F47B2145C";
       fingerprint = "6141 1E4F FE10 CE7B 2E14  CD76 0BE8 A88F 47B2 145C";
     }];
   };
@@ -923,7 +934,6 @@
     githubId = 17154507;
     name = "Lein Matsumaru";
     keys = [{
-      longkeyid = "rsa4096/0xAAA50652F0479205";
       fingerprint = "BF8B F725 DA30 E53E 7F11  4ED8 AAA5 0652 F047 9205";
     }];
   };
@@ -1041,7 +1051,6 @@
     githubId = 1226638;
     name = "Artemis Tosini";
     keys = [{
-      longkeyid = "rsa4096/0x4FDC96F161E7BA8A";
       fingerprint = "3D2B B230 F9FA F0C5 1832  46DD 4FDC 96F1 61E7 BA8A";
     }];
   };
@@ -1136,7 +1145,6 @@
     githubId = 192147;
     name = "aszlig";
     keys = [{
-      longkeyid = "ed25519/0x684089CE67EBB691";
       fingerprint = "DD52 6BC7 767D BA28 16C0 95E5 6840 89CE 67EB B691";
     }];
   };
@@ -1182,6 +1190,12 @@
     github = "attila-lendvai";
     githubId = 840345;
   };
+  auchter = {
+    name = "Michael Auchter";
+    email = "a@phire.org";
+    github = "auchter";
+    githubId = 1190483;
+  };
   auntie = {
     email = "auntieNeo@gmail.com";
     github = "auntieNeo";
@@ -1230,7 +1244,6 @@
     githubId = 5110816;
     name = "avitex";
     keys = [{
-      longkeyid = "rsa4096/0x8B366C443CABE942";
       fingerprint = "271E 136C 178E 06FA EA4E  B854 8B36 6C44 3CAB E942";
     }];
   };
@@ -1272,7 +1285,6 @@
     github = "azahi";
     githubId = 22211000;
     keys = [{
-      longkeyid = "rsa4096/0xC8C6BDDB3847F72B";
       fingerprint = "2688 0377 C31D 9E81 9BDF  83A8 C8C6 BDDB 3847 F72B";
     }];
   };
@@ -1294,7 +1306,6 @@
     githubId = 448169;
     name = "Fabian Möller";
     keys = [{
-      longkeyid = "rsa4096/0x754B5C0963C42C5";
       fingerprint = "6309 E212 29D4 DA30 AF24  BDED 754B 5C09 63C4 2C50";
     }];
   };
@@ -1304,7 +1315,6 @@
     githubId = 12128029;
     name = "Bastien Rivière";
     keys = [{
-      longkeyid = "rsa4096/0xF202AD3B6EDF4BD1";
       fingerprint = "2F85 B362 B274 0012 37E2  81EE F202 AD3B 6EDF 4BD1";
     }];
   };
@@ -1314,7 +1324,6 @@
     github = "babbaj";
     githubId = 12820770;
     keys = [{
-      longkeyid = "rsa4096/0xF044309848A07CAC";
       fingerprint = "6FBC A462 4EAF C69C A7C4  98C1 F044 3098 48A0 7CAC";
     }];
   };
@@ -1395,7 +1404,6 @@
     githubId = 17708295;
     name = "Wanderson Ferreira";
     keys = [{
-      longkeyid = "rsa4096/0x56840A614DBE37AE";
       fingerprint = "A3E1 C409 B705 50B3 BF41  492B 5684 0A61 4DBE 37AE";
     }];
   };
@@ -1509,7 +1517,6 @@
     github = "bertof";
     githubId = 9915675;
     keys = [{
-      longkeyid = "rsa4096/0xFE98AE5EC52B1056";
       fingerprint = "17C5 1EF9 C0FE 2EB2 FE56  BB53 FE98 AE5E C52B 1056";
     }];
   };
@@ -1725,7 +1732,6 @@
     github = "booklearner";
     githubId = 103979114;
     keys = [{
-      longkeyid = "ed25519/0x0C61C4E5907F76C8";
       fingerprint = "17C7 95D4 871C 2F87 83C8  053D 0C61 C4E5 907F 76C8";
     }];
   };
@@ -1747,7 +1753,6 @@
     githubId = 71049646;
     name = "Zack A";
     keys = [{
-      longkeyid = "rsa4096/0x6310C97DE31D1545";
       fingerprint = "E8D7 5C19 9F65 269B 439D  F77B 6310 C97D E31D 1545";
     }];
   };
@@ -1817,7 +1822,6 @@
     githubId = 12615679;
     name = "Oleksii Filonenko";
     keys = [{
-      longkeyid = "rsa3072/0xA1BC8428323ECFE8";
       fingerprint = "F549 3B7F 9372 5578 FDD3  D0B8 A1BC 8428 323E CFE8";
     }];
   };
@@ -1857,7 +1861,6 @@
     githubId = 4763746;
     name = "Billy Rhoades";
     keys = [{
-      longkeyid = "rsa4096/0x8AE74787A4B7C07E";
       fingerprint = "BF4FCB85C69989B4ED95BF938AE74787A4B7C07E";
     }];
   };
@@ -1956,11 +1959,9 @@
       # compare with https://keybase.io/cab404
       {
         fingerprint = "1BB96810926F4E715DEF567E6BA7C26C3FDF7BB3";
-        longkeyid = "rsa3072/0xCBDECF658C38079E";
       }
       {
         fingerprint = "1EBC648C64D6045463013B3EB7EFFC271D55DB8A";
-        longkeyid = "ed25519/0xB7EFFC271D55DB8A";
       }
     ];
   };
@@ -2079,7 +2080,6 @@
     githubId = 109908;
     name = "Carsten Burstedde";
     keys = [{
-      longkeyid = "rsa2048/0x0704CD9E550A6BCD";
       fingerprint = "1127 A432 6524 BF02 737B  544E 0704 CD9E 550A 6BCD";
     }];
   };
@@ -2133,11 +2133,9 @@
     name = "Constantine Evans";
     keys = [
       {
-        longkeyid = "rsa4096/0xB67DB1D20A93A9F9";
         fingerprint = "32B1 6EE7 DBA5 16DE 526E  4C5A B67D B1D2 0A93 A9F9";
       }
       {
-        longkeyid = "rsa4096/0x1A1D58B86AE2AABD";
         fingerprint = "669C 1D24 5A87 DB34 6BE4  3216 1A1D 58B8 6AE2 AABD";
       }
     ];
@@ -2212,7 +2210,6 @@
     github = "Chili-Man";
     githubId = 631802;
     keys = [{
-      longkeyid = "rsa4096/0xE0EBAD78F0190BD9";
       fingerprint = "099E 3F97 FA08 3D47 8C75  EBEC E0EB AD78 F019 0BD9";
     }];
   };
@@ -2288,7 +2285,6 @@
     githubId = 13007345;
     name = "Christian Harke";
     keys = [{
-      longkeyid = "rsa4096/0x830A9728630966F4";
       fingerprint = "4EBB 30F1 E89A 541A A7F2  52BE 830A 9728 6309 66F4";
     }];
   };
@@ -2311,7 +2307,6 @@
     github = "chuangzhu";
     githubId = 31200881;
     keys = [{
-      longkeyid = "rsa4096/E838CED81CFFD3F9";
       fingerprint = "5D03 A5E6 0754 A3E3 CA57 5037 E838 CED8 1CFF D3F9";
     }];
   };
@@ -2352,7 +2347,6 @@
     githubId = 5567402;
     name = "Alex Zero";
     keys = [{
-      longkeyid = "rsa4096/0xA51550EDB450302C";
       fingerprint = "A0AA 4646 B8F6 9D45 4553  5A88 A515 50ED B450 302C";
     }];
   };
@@ -2379,7 +2373,6 @@
     github = "ckiee";
     githubId = 25263210;
     keys = [{
-      longkeyid = "rsa4096/0x13E79449C0525215";
       fingerprint = "539F 0655 4D35 38A5 429A  E253 13E7 9449 C052 5215";
     }];
     name = "ckie";
@@ -2434,7 +2427,6 @@
     githubId = 23741;
     name = "Casey Marshall";
     keys = [{
-      longkeyid = "rsa3072/0x6DEC2758ACD5A973";
       fingerprint = "6B78 7E5F B493 FA4F D009  5D10 6DEC 2758 ACD5 A973";
     }];
   };
@@ -2519,10 +2511,16 @@
     github = "cole-h";
     githubId = 28582702;
     keys = [{
-      longkeyid = "rsa4096/0xB37E0F2371016A4C";
       fingerprint = "68B8 0D57 B2E5 4AC3 EC1F  49B0 B37E 0F23 7101 6A4C";
     }];
   };
+  colinsane = {
+    name = "Colin Sane";
+    email = "colin@uninsane.org";
+    matrix = "@colin:uninsane.org";
+    github = "uninsane";
+    githubId = 106709944;
+  };
   collares = {
     email = "mauricio@collares.org";
     github = "collares";
@@ -2586,11 +2584,9 @@
     name = "Corban Raun";
     keys = [
       {
-        longkeyid = "rsa4096/0xA697A56F1F151189";
         fingerprint = "6607 0B24 8CE5 64ED 22CE  0950 A697 A56F 1F15 1189";
       }
       {
-        longkeyid = "ed25519/0x230F4AC153F90F29";
         fingerprint = "D8CB 816A B678 A4E6 1EC7  5325 230F 4AC1 53F9 0F29";
       }
     ];
@@ -2613,7 +2609,6 @@
     githubId = 292650;
     name = "Daniel McCarney";
     keys = [{
-      longkeyid = "rsa2048/0x08FB2BFC470E75B4";
       fingerprint = "8026 D24A A966 BF9C D3CD  CB3C 08FB 2BFC 470E 75B4";
     }];
   };
@@ -2654,7 +2649,6 @@
     githubId = 2440581;
     name = "Carl Richard Theodor Schneider";
     keys = [{
-      longkeyid = "rsa4096/0x45BCC1E2709B1788";
       fingerprint = "2017 E152 BB81 5C16 955C  E612 45BC C1E2 709B 1788";
     }];
   };
@@ -2694,7 +2688,6 @@
     githubId = 389387;
     name = "Serg Nesterov";
     keys = [{
-      longkeyid = "rsa4096/0x1512F6EB84AECC8C";
       fingerprint = "6E7D BA30 DB5D BA60 693C  3BE3 1512 F6EB 84AE CC8C";
     }];
   };
@@ -2717,11 +2710,9 @@
     name = "Ștefan D. Mihăilă";
     keys = [
       {
-        longkeyid = "rsa4096/6E68A39BF16A3ECB";
         fingerprint = "CBC9 C7CC 51F0 4A61 3901 C723 6E68 A39B F16A 3ECB";
       }
       {
-        longkeyid = "rsa4096/6220AD7846220A52";
         fingerprint = "7EAB 1447 5BBA 7DDE 7092 7276 6220 AD78 4622 0A52";
       }
     ];
@@ -2739,7 +2730,6 @@
     githubId = 43349662;
     name = "Dima";
     keys = [{
-      longkeyid = "rsa4096/BAB1D15FB7B4D4CE";
       fingerprint = "1C4E F4FE 7F8E D8B7 1E88 CCDF BAB1 D15F B7B4 D4CE";
     }];
   };
@@ -2755,7 +2745,6 @@
     github = "dadada";
     githubId = 7216772;
     keys = [{
-      longkeyid = "ed25519/0xEEB8D1CE62C4DFEA";
       fingerprint = "D68C 8469 5C08 7E0F 733A  28D0 EEB8 D1CE 62C4 DFEA";
     }];
   };
@@ -2839,7 +2828,6 @@
     github = "danth";
     githubId = 28959268;
     keys = [{
-      longkeyid = "rsa3072/0xD8AFC4BF05670F9D";
       fingerprint = "4779 D1D5 3C97 2EAE 34A5  ED3D D8AF C4BF 0567 0F9D";
     }];
   };
@@ -2874,7 +2862,6 @@
     github = "dasisdormax";
     githubId = 3714905;
     keys = [{
-      longkeyid = "rsa4096/0x02BA0D4480CA6C44";
       fingerprint = "E59B A198 61B0 A9ED C1FA  3FB2 02BA 0D44 80CA 6C44";
     }];
     name = "Maximilian Wende";
@@ -2933,12 +2920,11 @@
     name = "David Rusu";
   };
   davidtwco = {
-    email = "nix@david.davidtw.co";
+    email = "david@davidtw.co";
     github = "davidtwco";
     githubId = 1295100;
     name = "David Wood";
     keys = [{
-      longkeyid = "rsa4096/0x01760B4F9F53F154";
       fingerprint = "5B08 313C 6853 E5BF FA91  A817 0176 0B4F 9F53 F154";
     }];
   };
@@ -2966,7 +2952,6 @@
     githubId = 7545665;
     name = "David Birks";
     keys = [{
-      longkeyid = "ed25519/0xBB999F83D9A19A36";
       fingerprint = "B26F 9AD8 DA20 3392 EF87  C61A BB99 9F83 D9A1 9A36";
     }];
   };
@@ -3000,7 +2985,6 @@
     github = "dearrude";
     githubId = 30749142;
     keys = [{
-      longkeyid = "rsa4096/19151E03BF2CF012";
       fingerprint = "4E35 F2E5 2132 D654 E815  A672 DB2C BC24 2868 6000";
     }];
   };
@@ -3122,6 +3106,12 @@
     githubId = 17111639;
     name = "Devin Singh";
   };
+  devusb = {
+    email = "mhelton@devusb.us";
+    github = "devusb";
+    githubId = 4951663;
+    name = "Morgan Helton";
+  };
   dezgeg = {
     email = "tuomas.tynkkynen@iki.fi";
     github = "dezgeg";
@@ -3339,7 +3329,6 @@
     githubId = 16120;
     name = "Misha Gusarov";
     keys = [{
-      longkeyid = "rsa4096/0x9D20F6503E338888";
       fingerprint = "A8DF 1326 9E5D 9A38 E57C  FAC2 9D20 F650 3E33 8888";
     }];
   };
@@ -3361,7 +3350,6 @@
     githubId = 1965950;
     name = "Tobias Stenzel";
     keys = [{
-      longkeyid = "rsa2048/0x78C7DD40DF23FB16";
       fingerprint = "4749 0887 CF3B 85A1 6355  C671 78C7 DD40 DF23 FB16";
     }];
   };
@@ -3405,7 +3393,6 @@
     githubId = 92106371;
     name = "Dr Perceptron";
     keys = [{
-      longkeyid = "rsa4096/0x95EB6DFF26D1CEB0";
       fingerprint = "7E38 89D9 B1A8 B381 C8DE  A15F 95EB 6DFF 26D1 CEB0";
     }];
   };
@@ -3416,7 +3403,6 @@
     github = "drupol";
     githubId = 252042;
     keys = [{
-      longkeyid = "ed25519/0x0AAF2901E8040715";
       fingerprint = "85F3 72DF 4AF3 EF13 ED34  72A3 0AAF 2901 E804 0715";
     }];
   };
@@ -3438,7 +3424,6 @@
     github = "dschrempf";
     githubId = 5596239;
     keys = [{
-      longkeyid = "rsa2048/0x875F2BCF163F1B29";
       fingerprint = "62BC E2BD 49DF ECC7 35C7  E153 875F 2BCF 163F 1B29";
     }];
   };
@@ -3454,7 +3439,6 @@
     githubId = 817330;
     name = "Will Dietz";
     keys = [{
-      longkeyid = "rsa4096/0xFD42C7D0D41494C8";
       fingerprint = "389A 78CB CD88 5E0C 4701  DEB9 FD42 C7D0 D414 94C8";
     }];
   };
@@ -3470,7 +3454,6 @@
     githubId = 1749762;
     name = "Mikhail Klementev";
     keys = [{
-      longkeyid = "rsa4096/0x1525585D1B43C62A";
       fingerprint = "5DD7 C6F6 0630 F08E DAE7  4711 1525 585D 1B43 C62A";
     }];
   };
@@ -3535,7 +3518,7 @@
     githubId = 424946;
     name = "James Earl Douglas";
   };
-  earvstedt = {
+  erikarvstedt = {
     email = "erik.arvstedt@gmail.com";
     matrix = "@erikarvstedt:matrix.org";
     github = "erikarvstedt";
@@ -3548,7 +3531,6 @@
     githubId = 20522234;
     name = "Daniel Ebbert";
     keys = [{
-      longkeyid = "rsa2048/0x47BC155927CBB9C7";
       fingerprint = "E765 FCA3 D9BF 7FDB 856E  AD73 47BC 1559 27CB B9C7";
     }];
   };
@@ -3866,7 +3848,6 @@
     githubId = 2663216;
     name = "Alexandre Iooss";
     keys = [{
-      longkeyid = "rsa4096/0x6C79278F3FCDCC02";
       fingerprint = "2D37 1AD2 7E2B BC77 97E1  B759 6C79 278F 3FCD CC02";
     }];
   };
@@ -3908,7 +3889,6 @@
     githubId = 11532355;
     name = "Kerstin Humm";
     keys = [{
-      longkeyid = "rsa4096/0x40293358C7B9326B";
       fingerprint = "F178 B4B4 6165 6D1B 7C15  B55D 4029 3358 C7B9 326B";
     }];
   };
@@ -3970,7 +3950,6 @@
     githubId = 60861925;
     name = "Ethan Carter Edwards";
     keys = [{
-      longkeyid = "rsa4096/0xF93DDAFA26EF2458";
       fingerprint = "0E69 0F46 3457 D812 3387  C978 F93D DAFA 26EF 2458";
     }];
   };
@@ -4000,7 +3979,6 @@
     githubId = 461970;
     name = "Elis Hirwing";
     keys = [{
-      longkeyid = "rsa4096/0xD57EFA625C9A925F";
       fingerprint = "67FE 98F2 8C44 CF22 1828  E12F D57E FA62 5C9A 925F";
     }];
   };
@@ -4017,7 +3995,6 @@
     github = "evalexpr";
     githubId = 23485511;
     keys = [{
-      longkeyid = "rsa4096/0x2D1D402E17763DD6";
       fingerprint = "8129 5B85 9C5A F703 C2F4  1E29 2D1D 402E 1776 3DD6";
     }];
   };
@@ -4089,7 +4066,6 @@
     githubId = 857308;
     name = "Ellie Hermaszewska";
     keys = [{
-      longkeyid = "rsa4096/0xC8116E3A0C1CA76A";
       fingerprint = "FC1D 3E4F CBCA 80DF E870  6397 C811 6E3A 0C1C A76A";
     }];
   };
@@ -4125,7 +4101,6 @@
     github = "fabaff";
     githubId = 116184;
     keys = [{
-      longkeyid = "dsa1024/0xE23CD2DD36A4397F";
       fingerprint = "2F6C 930F D3C4 7E38 6AFA  4EB4 E23C D2DD 36A4 397F";
     }];
   };
@@ -4141,7 +4116,6 @@
     githubId = 368799;
     name = "Fabian Hauser";
     keys = [{
-      longkeyid = "rsa4096/0x8A52A140BEBF7D2C";
       fingerprint = "50B7 11F4 3DFD 2018 DCE6  E8D0 8A52 A140 BEBF 7D2C";
     }];
   };
@@ -4227,11 +4201,9 @@
     keys = [
       {
         # historical
-        longkeyid = "ed25519/0x910ACB9F6BD26F58";
         fingerprint = "6AB3 7A28 5420 9A41 82D9  0068 910A CB9F 6BD2 6F58";
       }
       {
-        longkeyid = "ed25519/0x671E39E6744C807D";
         fingerprint = "7E08 6842 0934 AA1D 6821  1F2A 671E 39E6 744C 807D";
       }
     ];
@@ -4292,7 +4264,6 @@
     githubId = 6499211;
     name = "Sebastian Neubauer";
     keys = [{
-      longkeyid = "rsa4096/0xECC755EE583C1672";
       fingerprint = "2F93 661D AC17 EA98 A104  F780 ECC7 55EE 583C 1672";
     }];
   };
@@ -4400,7 +4371,6 @@
     githubId = 114159;
     name = "Franz Pletz";
     keys = [{
-      longkeyid = "rsa4096/0x846FDED7792617B4";
       fingerprint = "8A39 615D CE78 AF08 2E23  F303 846F DED7 7926 17B4";
     }];
   };
@@ -4557,7 +4527,6 @@
     githubId = 1883533;
     name = "Florian Brandes";
     keys = [{
-      longkeyid = "rsa4096/0xBBB3E40E53797FD9";
       fingerprint = "0200 3EF8 8D2B CF2D 8F00  FFDC BBB3 E40E 5379 7FD9";
     }];
   };
@@ -4633,7 +4602,6 @@
     github = "genofire";
     githubId = 6905586;
     keys = [{
-      longkeyid = "rsa4096/0xFC83907C125BC2BC";
       fingerprint = "386E D1BF 848A BB4A 6B4A  3C45 FC83 907C 125B C2BC";
     }];
   };
@@ -4649,7 +4617,6 @@
     githubId = 19374;
     name = "George Shammas";
     keys = [{
-      longkeyid = "rsa4096/0x82BB70D541AE2DB4";
       fingerprint = "D0CF 440A A703 E0F9 73CB  A078 82BB 70D5 41AE 2DB4";
     }];
   };
@@ -4732,7 +4699,6 @@
     github = "glittershark";
     githubId = 1481027;
     keys = [{
-      longkeyid = "rsa2048/0x44EF5B5E861C09A7";
       fingerprint = "0F11 A989 879E 8BBB FDC1  E236 44EF 5B5E 861C 09A7";
     }];
   };
@@ -4784,7 +4750,6 @@
     github = "gordiasdot";
     githubId = 94724133;
     keys = [{
-      longkeyid = "ed25519/0x5D47284830FAA4FA";
       fingerprint = "C006 B8A0 0618 F3B6 E0E4  2ECD 5D47 2848 30FA A4FA";
     }];
   };
@@ -4794,7 +4759,6 @@
     github = "govanify";
     githubId = 6375438;
     keys = [{
-      longkeyid = "rsa4096/0xDE62E1E2A6145556";
       fingerprint = "5214 2D39 A7CE F8FA 872B  CA7F DE62 E1E2 A614 5556";
     }];
   };
@@ -4804,7 +4768,6 @@
     github = "gpanders";
     githubId = 8965202;
     keys = [{
-      longkeyid = "rsa2048/0x56E93C2FB6B08BDB";
       fingerprint = "B9D5 0EDF E95E ECD0 C135  00A9 56E9 3C2F B6B0 8BDB";
     }];
   };
@@ -4844,7 +4807,6 @@
     githubId = 4647221;
     name = "GRBurst";
     keys = [{
-      longkeyid = "rsa4096/0x797F623868CD00C2";
       fingerprint = "7FC7 98AB 390E 1646 ED4D  8F1F 797F 6238 68CD 00C2";
     }];
   };
@@ -4999,10 +4961,15 @@
     githubId = 4336207;
     name = "Rohit Goswami";
     keys = [{
-      longkeyid = "rsa4096/0x9CCCE36402CB49A6";
       fingerprint = "74B1 F67D 8E43 A94A 7554  0768 9CCC E364 02CB 49A6";
     }];
   };
+  happyalu = {
+    email = "alok@parlikar.com";
+    github = "happyalu";
+    githubId = 231523;
+    name = "Alok Parlikar";
+  };
   happysalada = {
     email = "raphael@megzari.com";
     matrix = "@happysalada:matrix.org";
@@ -5022,7 +4989,6 @@
     githubId = 1422583;
     name = "Martin Hardselius";
     keys = [{
-      longkeyid = "rsa4096/0x03A6E6F786936619";
       fingerprint = "3F35 E4CA CBF4 2DE1 2E90  53E5 03A6 E6F7 8693 6619";
     }];
   };
@@ -5069,7 +5035,6 @@
     github = "hdhog";
     githubId = 386666;
     keys = [{
-      longkeyid = "rsa496/952EACB76703BA63";
       fingerprint = "A25F 6321 AAB4 4151 4085  9924 952E ACB7 6703 BA63";
     }];
   };
@@ -5193,7 +5158,6 @@
     githubId = 4025991;
     name = "Valentin Boettcher";
     keys = [{
-      longkeyid = "rsa2048/0xC22D4DE4D7B32D19";
       fingerprint = "45A9 9917 578C D629 9F5F  B5B4 C22D 4DE4 D7B3 2D19";
     }];
   };
@@ -5209,7 +5173,6 @@
     github = "hkjn";
     githubId = 287215;
     keys = [{
-      longkeyid = "rsa4096/0x03EFBF839A5FDC15";
       fingerprint = "D618 7A03 A40A 3D56 62F5  4B46 03EF BF83 9A5F DC15";
     }];
   };
@@ -5231,7 +5194,6 @@
     githubId = 20039091;
     name = "Hugo Reeves";
     keys = [{
-      longkeyid = "rsa4096/0x49FA39F8A7F735F9";
       fingerprint = "78C2 E81C 828A 420B 269A  EBC1 49FA 39F8 A7F7 35F9";
     }];
   };
@@ -5338,7 +5300,6 @@
     github = "hyshka";
     githubId = 2090758;
     keys = [{
-      longkeyid = "rsa2048/0xDB2D93D1BFAAA6EA";
       fingerprint = "24F4 1925 28C4 8797 E539  F247 DB2D 93D1 BFAA A6EA";
     }];
   };
@@ -5366,7 +5327,6 @@
     githubId = 18238046;
     name = "Iago Manoel Brito";
     keys = [{
-      longkeyid = "rsa4096/0x35D39F9A9A1BC8DA";
       fingerprint = "DF90 9D58 BEE4 E73A 1B8C  5AF3 35D3 9F9A 9A1B C8DA";
     }];
   };
@@ -5401,7 +5361,6 @@
     githubId = 1044950;
     name = "Pierre Penninckx";
     keys = [{
-      longkeyid = "rsa2048/0xD4C5C37E6031A3FE";
       fingerprint = "A01F 10C6 7176 B2AE 2A34  1A56 D4C5 C37E 6031 A3FE";
     }];
   };
@@ -5559,7 +5518,6 @@
     githubId = 20525370;
     name = "Silvan Mosberger";
     keys = [{
-      longkeyid = "rsa4096/0x422E9EDAE0157170";
       fingerprint = "6C2B 55D4 4E04 8266 6B7D  DA1A 422E 9EDA E015 7170";
     }];
   };
@@ -5576,7 +5534,6 @@
     github = "IreneKnapp";
     githubId = 157678;
     keys = [{
-      longkeyid = "rsa4096/0xDBF252AFFB2619FD";
       fingerprint = "E864 BDFA AB55 36FD C905  5195 DBF2 52AF FB26 19FD";
     }];
   };
@@ -5592,7 +5549,6 @@
     github = "isgy";
     githubId = 13622947;
     keys = [{
-      longkeyid = "rsa4096/0xD3E1B013B4631293";
       fingerprint = "1412 816B A9FA F62F D051 1975 D3E1 B013 B463 1293";
     }];
   };
@@ -5631,7 +5587,6 @@
     githubId = 1672874;
     name = "Ivan Brennan";
     keys = [{
-      longkeyid = "rsa4096/0x79C3C47DC652EA54";
       fingerprint = "7311 2700 AB4F 4CDF C68C  F6A5 79C3 C47D C652 EA54";
     }];
   };
@@ -5641,7 +5596,6 @@
     githubId = 75213;
     name = "Ivan Kovnatsky";
     keys = [{
-      longkeyid = "rsa4096/0x3A33FA4C82ED674F";
       fingerprint = "6BD3 7248 30BD 941E 9180  C1A3 3A33 FA4C 82ED 674F";
     }];
   };
@@ -5856,7 +5810,6 @@
     githubId = 1235045;
     name = "Jichao Ouyang";
     keys = [{
-      longkeyid = "rsa2048/0xDA8B833B52604E63";
       fingerprint = "A506 C38D 5CC8 47D0 DF01  134A DA8B 833B 5260 4E63";
     }];
   };
@@ -5883,7 +5836,6 @@
     github = "jdanekrh";
     githubId = 17877663;
     keys = [{
-      longkeyid = "ed25519/0x69275CADF15D872E";
       fingerprint = "D4A6 F051 AD58 2E7C BCED  5439 6927 5CAD F15D 872E";
     }];
     name = "Jiri Daněk";
@@ -5984,7 +5936,6 @@
     githubId = 3001;
     name = "Jean-Francois Chevrette";
     keys = [{
-      longkeyid = "rsa4096/0x67A0585801290DC6";
       fingerprint = "B612 96A9 498E EECD D5E9  C0F0 67A0 5858 0129 0DC6";
     }];
   };
@@ -6007,7 +5958,6 @@
     github = "jfroche";
     githubId = 207369;
     keys = [{
-      longkeyid = "dsa1024/0xD1D09DE169EA19A0";
       fingerprint = "7EB1 C02A B62B B464 6D7C  E4AE D1D0 9DE1 69EA 19A0";
     }];
   };
@@ -6053,6 +6003,12 @@
     githubId = 2502736;
     name = "James Hillyerd";
   };
+  jiegec = {
+    name = "Jiajie Chen";
+    email = "c@jia.je";
+    github = "jiegec";
+    githubId = 6127678;
+  };
   jiehong = {
     email = "nixos@majiehong.com";
     github = "Jiehong";
@@ -6128,12 +6084,10 @@
     keys = [
       # GitHub signing key
       {
-        longkeyid = "rsa4096/0xDC7AE56AE98E02D7";
         fingerprint = "EC08 7AA3 DEAD A972 F015  6371 DC7A E56A E98E 02D7";
       }
       # Email encryption
       {
-        longkeyid = "ed25519/0x197F9A632D139E30";
         fingerprint = "816D 23F5 E672 EC58 7674  4A73 197F 9A63 2D13 9E30";
       }
     ];
@@ -6270,7 +6224,6 @@
     github = "jojosch";
     githubId = 327488;
     keys = [{
-      longkeyid = "ed25519/059093B1A278BCD0";
       fingerprint = "7249 70E6 A661 D84E 8B47  678A 0590 93B1 A278 BCD0";
     }];
   };
@@ -6280,7 +6233,6 @@
     githubId = 1252547;
     keys = [{
       # compare with https://keybase.io/joko
-      longkeyid = "rsa2048/0x85EAE7D9DF56C5CA";
       fingerprint = "B154 A8F9 0610 DB45 0CA8  CF39 85EA E7D9 DF56 C5CA";
     }];
     name = "Ioannis Koutras";
@@ -6303,6 +6255,12 @@
     githubId = 1843676;
     name = "Jonathan Reeve";
   };
+  jonnybolton = {
+    email = "jonnybolton@gmail.com";
+    github = "jonnybolton";
+    githubId = 8580434;
+    name = "Jonny Bolton";
+  };
   jonringer = {
     email = "jonringer117@gmail.com";
     matrix = "@jonringer:matrix.org";
@@ -6408,13 +6366,19 @@
     github = "jsierles";
     githubId = 82;
   };
+  jsimonetti = {
+    email = "jeroen+nixpkgs@simonetti.nl";
+    matrix = "@jeroen:simonetti.nl";
+    name = "Jeroen Simonetti";
+    github = "jsimonetti";
+    githubId = 5478838;
+  };
   jtcoolen = {
     email = "jtcoolen@pm.me";
     name = "Julien Coolen";
     github = "jtcoolen";
     githubId = 54635632;
     keys = [{
-      longkeyid = "rsa4096/0x19642151C218F6F5";
       fingerprint = "4C68 56EE DFDA 20FB 77E8  9169 1964 2151 C218 F6F5";
     }];
   };
@@ -6504,7 +6468,6 @@
     githubId = 1529052;
     name = "Jan van Brügge";
     keys = [{
-      longkeyid = "rsa4096/0x366572BE7D6C78A2";
       fingerprint = "3513 5CE5 77AD 711F 3825  9A99 3665 72BE 7D6C 78A2";
     }];
   };
@@ -6548,7 +6511,6 @@
     githubId = 63786778;
     name = "Joel";
     keys = [{
-      longkeyid = "rsa4096/18550BD205E9EF64";
       fingerprint = "9148 DC9E F4D5 3EB6 A30E  8EF0 1855 0BD2 05E9 EF64";
     }];
   };
@@ -6564,6 +6526,12 @@
     githubId = 66669;
     name = "Jeff Zellner";
   };
+  k3a = {
+    email = "git+nix@catmail.app";
+    name = "Mario Hros";
+    github = "k3a";
+    githubId = 966992;
+  };
   k4leg = {
     name = "k4leg";
     email = "python.bogdan@gmail.com";
@@ -6583,7 +6551,6 @@
     github = "kaction";
     githubId = 44864956;
     keys = [{
-      longkeyid = "ed25519/0x749FD4DFA2E94236";
       fingerprint = "3F87 0A7C A7B4 3731 2F13  6083 749F D4DF A2E9 4236";
     }];
   };
@@ -6612,7 +6579,6 @@
     github = "kamadorueda";
     githubId = 47480384;
     keys = [{
-      longkeyid = "rsa4096/0x04D0CEAF916A9A40";
       fingerprint = "2BE3 BAFD 793E A349 ED1F  F00F 04D0 CEAF 916A 9A40";
     }];
   };
@@ -6680,10 +6646,16 @@
     githubId = 2186188;
     name = "Kenny Ballou";
     keys = [{
-      longkeyid = "rsa4096/0xB0CAA28A02958308";
       fingerprint = "932F 3E8E 1C0F 4A98 95D7  B8B8 B0CA A28A 0295 8308";
     }];
   };
+  kenran = {
+    email = "johannes.maier@mailbox.org";
+    github = "kenranunderscore";
+    githubId = 5188977;
+    matrix = "@kenran_:matrix.org";
+    name = "Johannes Maier";
+  };
   kentjames = {
     email = "jameschristopherkent@gmail.com";
     github = "kentjames";
@@ -6746,7 +6718,6 @@
     githubId = 44947946;
     name = "Khushraj Rathod";
     keys = [{
-      longkeyid = "rsa2048/0xB77B2A40E7702F19";
       fingerprint = "1988 3FD8 EA2E B4EC 0A93  1E22 B77B 2A40 E770 2F19";
     }];
   };
@@ -6835,7 +6806,6 @@
     githubId = 67870215;
     name = "Kat Inskip";
     keys = [{
-      longkeyid = "rsa4096/0xE8DDE3ED1C90F3A0";
       fingerprint = "9CC6 44B5 69CD A59B C874  C4C9 E8DD E3ED 1C90 F3A0";
     }];
   };
@@ -6845,7 +6815,6 @@
     githubId = 35715;
     name = "Robert Djubek";
     keys = [{
-      longkeyid = "rsa4096/0x156C88A5B0A04B2A";
       fingerprint = "8992 44FC D291 5CA2 0A97  802C 156C 88A5 B0A0 4B2A";
     }];
   };
@@ -6884,7 +6853,6 @@
     github = "kloenk";
     githubId = 12898828;
     keys = [{
-      longkeyid = "ed25519/0xB92445CFC9546F9D";
       fingerprint = "6881 5A95 D715 D429 659B  48A4 B924 45CF C954 6F9D";
     }];
   };
@@ -7087,7 +7055,6 @@
     githubId = 1640900;
     name = "Kyle Ondy";
     keys = [{
-      longkeyid = "rsa4096/0xDB0E3C33491F91C9";
       fingerprint = "3C79 9D26 057B 64E6 D907  B0AC DB0E 3C33 491F 91C9";
     }];
   };
@@ -7099,7 +7066,6 @@
     githubId = 6677292;
 
     keys = [{
-      longkeyid = "rsa4096/81A1540948162372";
       fingerprint = "5A9A 1C9B 2369 8049 3B48  CF5B 81A1 5409 4816 2372";
     }];
   };
@@ -7109,7 +7075,6 @@
     github = "L-as";
     githubId = 22075344;
     keys = [{
-      longkeyid = "rsa2048/0xAC458A7D1087D025";
       fingerprint = "A093 EA17 F450 D4D1 60A0  1194 AC45 8A7D 1087 D025";
     }];
     name = "Las Safin";
@@ -7126,7 +7091,6 @@
     github = "CertainLach";
     githubId = 6235312;
     keys = [{
-      longkeyid = "rsa3072/40B5D6948143175F";
       fingerprint = "323C 95B5 DBF7 2D74 8570  C0B7 40B5 D694 8143 175F";
     }];
     name = "Yaroslav Bolyukin";
@@ -7279,7 +7243,6 @@
     githubId = 30902201;
     name = "legendofmiracles";
     keys = [{
-      longkeyid = "rsa4096/0x19B082B3DEFE5451";
       fingerprint = "CC50 F82C 985D 2679 0703  AF15 19B0 82B3 DEFE 5451";
     }];
   };
@@ -7290,7 +7253,6 @@
     githubId = 17183803;
     name = "Aleix Boné";
     keys = [{
-      longkeyid = "rsa4096/0xFC035BB2BB28E15D";
       fingerprint = "63D3 F436 EDE8 7E1F 1292  24AF FC03 5BB2 BB28 E15D";
     }];
   };
@@ -7355,7 +7317,6 @@
     github = "LEXUGE";
     githubId = 13804737;
     keys = [{
-      longkeyid = "rsa4096/0xAE53B4C2E58EDD45";
       fingerprint = "7FE2 113A A08B 695A C8B8  DDE6 AE53 B4C2 E58E DD45";
     }];
   };
@@ -7469,7 +7430,6 @@
     githubId = 3964494;
     name = "Lev Livnev";
     keys = [{
-      longkeyid = "rsa2048/0x68FF81E6A7850F49";
       fingerprint = "74F5 E5CC 19D3 B5CB 608F  6124 68FF 81E6 A785 0F49";
     }];
   };
@@ -7479,7 +7439,6 @@
     github = "lourkeur";
     githubId = 15657735;
     keys = [{
-      longkeyid = "ed25519/0xDFE1D4A017337E2A";
       fingerprint = "5B93 9CFA E8FC 4D8F E07A  3AEA DFE1 D4A0 1733 7E2A";
     }];
   };
@@ -7550,7 +7509,6 @@
     githubId = 25434434;
     name = "Jan Schmitt";
     keys = [{
-      longkeyid = "dsa2048/0xA2BC3C6F14351991";
       fingerprint = "1763 9903 2D7C 5B82 5D5A  0EAD A2BC 3C6F 1435 1991";
     }];
   };
@@ -7603,7 +7561,6 @@
     githubId = 7243783;
     name = "Bernardo Meurer";
     keys = [{
-      longkeyid = "rsa4096/0xF4C0D53B8D14C246";
       fingerprint = "F193 7596 57D5 6DA4 CCD4  786B F4C0 D53B 8D14 C246";
     }];
   };
@@ -7684,7 +7641,6 @@
     github = "Luflosi";
     githubId = 15217907;
     keys = [{
-      longkeyid = "rsa4096/0x6F987CCF224D20B9";
       fingerprint = "66D1 3048 2B5F 2069 81A6  6B83 6F98 7CCF 224D 20B9";
     }];
   };
@@ -7738,7 +7694,6 @@
     githubId = 13547699;
     name = "Corin Hoad";
     keys = [{
-      longkeyid = "rsa2048/0x6A37DF9483188492";
       fingerprint = "BA3A 5886 AE6D 526E 20B4  57D6 6A37 DF94 8318 8492";
     }];
   };
@@ -7841,6 +7796,12 @@
     githubId = 7645711;
     name = "Bart Brouns";
   };
+  magnouvean = {
+    email = "rg0zjsyh@anonaddy.me";
+    github = "magnouvean";
+    githubId = 85435692;
+    name = "Maxwell Berg";
+  };
   mahe = {
     email = "matthias.mh.herrmann@gmail.com";
     github = "2chilled";
@@ -7991,7 +7952,6 @@
     githubId = 2551444;
     name = "Marcial Gaißert";
     keys = [{
-      longkeyid = "rsa2048/0xB629036BE399EEE9";
       fingerprint = "B573 5118 0375 A872 FBBF  7770 B629 036B E399 EEE9";
     }];
   };
@@ -8074,7 +8034,6 @@
     githubId = 26559841;
     name = "Matthew Penner";
     keys = [{
-      longkeyid = "ed25519/0x31311906AD4CF6D6";
       fingerprint = "5118 F1CC B7B0 6C17 4DD1  5267 3131 1906 AD4C F6D6";
     }];
   };
@@ -8096,7 +8055,6 @@
     githubId = 19580458;
     name = "Max Niederman";
     keys = [{
-      longkeyid = "rsa3072/0x9AED881481D8444E";
       fingerprint = "1DE4 424D BF77 1192 5DC4  CF5E 9AED 8814 81D8 444E";
     }];
   };
@@ -8220,7 +8178,6 @@
     githubId = 13689192;
     name = "Nguyễn Gia Phong";
     keys = [{
-      longkeyid = "rsa3072/0x27148B2C06A2224B";
       fingerprint = "E90E 11B8 0493 343B 6132  E394 2714 8B2C 06A2 224B";
     }];
   };
@@ -8254,7 +8211,6 @@
     githubId = 1926905;
     name = "Matt Layher";
     keys = [{
-      longkeyid = "rsa2048/0x77BFE531397EDE94";
       fingerprint = "D709 03C8 0BE9 ACDC 14F0  3BFB 77BF E531 397E DE94";
     }];
   };
@@ -8384,7 +8340,6 @@
     name = "Jörg Thalheim";
     keys = [{
       # compare with https://keybase.io/Mic92
-      longkeyid = "rsa4096/0x003F2096411B5F92";
       fingerprint = "3DEE 1C55 6E1C 3DC5 54F5  875A 003F 2096 411B 5F92";
     }];
   };
@@ -8437,7 +8392,6 @@
     githubId = 7343721;
     name = "midchildan";
     keys = [{
-      longkeyid = "rsa4096/0x186A1EDAC5C63F83";
       fingerprint = "FEF0 AE2D 5449 3482 5F06  40AA 186A 1EDA C5C6 3F83";
     }];
   };
@@ -8471,7 +8425,6 @@
     githubId = 3490861;
     name = "Mark Vainomaa";
     keys = [{
-      longkeyid = "rsa4096/0xDA015B05B5A11B22";
       fingerprint = "DB43 2895 CF68 F0CE D4B7  EF60 DA01 5B05 B5A1 1B22";
     }];
   };
@@ -8527,7 +8480,6 @@
     githubId = 1200507;
     name = "Rémi Nicole";
     keys = [{
-      longkeyid = "rsa2048/0xFEA888C9F5D64F62";
       fingerprint = "3196 83D3 9A1B 4DE1 3DC2  51FD FEA8 88C9 F5D6 4F62";
     }];
   };
@@ -8538,7 +8490,6 @@
     github = "Minion3665";
     githubId = 34243578;
     keys = [{
-      longkeyid = "rsa4096/0x1AFD10256B3C714D";
       fingerprint = "D520 AC8D 7C96 9212 5B2B  BD3A 1AFD 1025 6B3C 714D";
     }];
   };
@@ -8567,7 +8518,6 @@
     matrix = "@misterio:matrix.org";
     name = "Gabriel Fontes";
     keys = [{
-      longkeyid = "rsa3072/0x245CAB70B4C225E9";
       fingerprint = "7088 C742 1873 E0DB 97FF  17C2 245C AB70 B4C2 25E9";
     }];
   };
@@ -8607,7 +8557,6 @@
     githubId = 7753506;
     name = "Michał Krzysztof Feiler";
     keys = [{
-      longkeyid = "rsa4096/0xE35C2D7C2C6AC724";
       fingerprint = "1E36 9940 CC7E 01C4 CFE8  F20A E35C 2D7C 2C6A C724";
     }];
   };
@@ -8624,7 +8573,6 @@
     githubId = 7735145;
     name = "Maciej Krüger";
     keys = [{
-      longkeyid = "rsa4096/0x0D948CE19CF49C5F";
       fingerprint = "E90C BA34 55B3 6236 740C  038F 0D94 8CE1 9CF4 9C5F";
     }];
   };
@@ -8707,7 +8655,6 @@
     github = "mohe2015";
     githubId = 13287984;
     keys = [{
-      longkeyid = "rsa4096/0x6794D45A488C2EDE";
       fingerprint = "1248 D3E1 1D11 4A85 75C9  8934 6794 D45A 488C 2EDE";
     }];
   };
@@ -8735,7 +8682,6 @@
     githubId = 100848;
     name = "André-Patrick Bubel";
     keys = [{
-      longkeyid = "rsa8192/0x118CE7C424B45728";
       fingerprint = "4412 38AD CAD3 228D 876C  5455 118C E7C4 24B4 5728";
     }];
   };
@@ -8861,7 +8807,6 @@
     name = "Harsh Shandilya";
     email = "nixos@msfjarvis.dev";
     keys = [{
-      longkeyid = "rsa4096/0xB7843F823355E9B9";
       fingerprint = "8F87 050B 0F9C B841 1515  7399 B784 3F82 3355 E9B9";
     }];
   };
@@ -8968,7 +8913,6 @@
     github = "mvisonneau";
     githubId = 1761583;
     keys = [{
-      longkeyid = "rsa4096/0x150D6F0AE9198D24";
       fingerprint = "EC63 0CEA E8BC 5EE5 5C58  F2E3 150D 6F0A E919 8D24";
     }];
   };
@@ -9027,7 +8971,6 @@
     githubId = 35005234;
     name = "Nasir Hussain";
     keys = [{
-      longkeyid = "rsa4096/0xD8126E559CE7C35D";
       fingerprint = "7A10 AB8E 0BEC 566B 090C  9BE3 D812 6E55 9CE7 C35D";
     }];
   };
@@ -9066,7 +9009,6 @@
     github = "nazarewk";
     githubId = 3494992;
     keys = [{
-      longkeyid = "rsa4096/0x916D8B67241892AE";
       fingerprint = "4BFF 0614 03A2 47F0 AA0B 4BC4 916D 8B67 2418 92AE";
     }];
   };
@@ -9089,8 +9031,7 @@
     githubId = 4323933;
     name = "Naïm Favier";
     keys = [{
-      longkeyid = "rsa2048/0x49B07322580B7EE2";
-      fingerprint = "51A0 705E 7DD2 3CBC 5EAA  B43E 49B0 7322 580B 7EE2";
+      fingerprint = "F3EB 4BBB 4E71 99BC 299C  D4E9 95AF CE82 1190 8325";
     }];
   };
   nckx = {
@@ -9229,7 +9170,6 @@
     githubId = 77309427;
     name = "Nicolás Kennedy";
     keys = [{
-      longkeyid = "rsa4096/0xC061089EFEBF7A35";
       fingerprint = "7BC1 77D9 C222 B1DC FB2F  0484 C061 089E FEBF 7A35";
     }];
   };
@@ -9275,7 +9215,6 @@
     githubId = 23580910;
     name = "Jakub Kądziołka";
     keys = [{
-      longkeyid = "rsa4096/0xE315A75846131564";
       fingerprint = "E576 BFB2 CF6E B13D F571  33B9 E315 A758 4613 1564";
     }];
   };
@@ -9316,7 +9255,6 @@
     githubId = 354934;
     name = "Pontus Stenetorp";
     keys = [{
-      longkeyid = "rsa4096/0xD430287500E6483C";
       fingerprint = "0966 2F9F 3FDA C22B C22E  4CE1 D430 2875 00E6 483C";
     }];
   };
@@ -9332,7 +9270,6 @@
     github = "NKJe";
     githubId = 1102306;
     keys = [{
-      longkeyid = "nistp256/0xDE3BADFECD31A89D";
       fingerprint = "B956 C6A4 22AF 86A0 8F77  A8CA DE3B ADFE CD31 A89D";
     }];
   };
@@ -9354,7 +9291,6 @@
     githubId = 45737139;
     name = "nixbitcoindev";
     keys = [{
-      longkeyid = "rsa4096/0xDD11F9AD5308B3BA";
       fingerprint = "577A 3452 7F3E 2A85 E80F  E164 DD11 F9AD 5308 B3BA";
     }];
   };
@@ -9535,7 +9471,6 @@
     name = "nzbr";
     matrix = "@nzbr:nzbr.de";
     keys = [{
-      longkeyid = "rsa2048/0x6C78B50B97A42F8A";
       fingerprint = "BF3A 3EE6 3144 2C5F C9FB  39A7 6C78 B50B 97A4 2F8A";
     }];
   };
@@ -9564,7 +9499,6 @@
     githubId = 1260687;
     name = "Felix C. Stegerman";
     keys = [{
-      longkeyid = "rsa4096/0x2F9607F09B360F2D";
       fingerprint = "D5E4 A51D F8D2 55B9 FAC6  A9BB 2F96 07F0 9B36 0F2D";
     }];
   };
@@ -9734,7 +9668,6 @@
     githubId = 14816024;
     name = "oxalica";
     keys = [{
-      longkeyid = "ed25519/0x7571654CF88E31C2";
       fingerprint = "F90F FD6D 585C 2BA1 F13D  E8A9 7571 654C F88E 31C2";
     }];
   };
@@ -9744,7 +9677,6 @@
     githubId = 391919;
     name = "Jan Malakhovski";
     keys = [{
-      longkeyid = "rsa2048/0x0E6CA66E5C557AA8";
       fingerprint = "514B B966 B46E 3565 0508  86E8 0E6C A66E 5C55 7AA8";
     }];
   };
@@ -9754,7 +9686,6 @@
     githubId = 8402811;
     name = "Alvar Penning";
     keys = [{
-      longkeyid = "rsa4096/0xF32A45637FA25E31";
       fingerprint = "EB14 4E67 E57D 27E2 B5A4  CD8C F32A 4563 7FA2 5E31";
     }];
   };
@@ -9893,7 +9824,6 @@
     githubId = 3395477;
     name = "Patryk Wychowaniec";
     keys = [{
-      longkeyid = "rsa4096/0xF62547D075E09767";
       fingerprint = "196A BFEC 6A1D D1EC 7594  F8D1 F625 47D0 75E0 9767";
     }];
   };
@@ -10116,7 +10046,6 @@
     githubId = 1576660;
     name = "Jelle Besseling";
     keys = [{
-      longkeyid = "rsa4096/0x9712452E8BE3372E";
       fingerprint = "A3A3 65AE 16ED A7A0 C29C  88F1 9712 452E 8BE3 372E";
     }];
   };
@@ -10126,7 +10055,6 @@
     githubId = 1719781;
     name = "Pablo Ovelleiro Corral";
     keys = [{
-      longkeyid = "rsa4096/0x823A6154426408D3";
       fingerprint = "D03B 218C AE77 1F77 D7F9  20D9 823A 6154 4264 08D3";
     }];
   };
@@ -10164,7 +10092,6 @@
     github = "plabadens";
     githubId = 4303706;
     keys = [{
-      longkeyid = "rsa2048/0xF55814E4D6874375";
       fingerprint = "B00F E582 FD3F 0732 EA48  3937 F558 14E4 D687 4375";
     }];
   };
@@ -10204,7 +10131,6 @@
     githubId = 898922;
     name = "Philipp Menke";
     keys = [{
-      longkeyid = "rsa4096/0xEB7F2D4CCBE23B69";
       fingerprint = "ED54 5EFD 64B6 B5AA EC61 8C16 EB7F 2D4C CBE2 3B69";
     }];
   };
@@ -10256,7 +10182,6 @@
     githubId = 46154511;
     name = "Kevin Mullins";
     keys = [{
-      longkeyid = "rsa4096/361820A45DB41E9A";
       fingerprint = "2CD2 B030 BD22 32EF DF5A  008A 3618 20A4 5DB4 1E9A";
     }];
   };
@@ -10320,7 +10245,6 @@
     githubId = 53291983;
     name = "Poscat Tarski";
     keys = [{
-      longkeyid = "rsa4096/2D2595A00D08ACE0";
       fingerprint = "48AD DE10 F27B AFB4 7BB0  CCAF 2D25 95A0 0D08 ACE0";
     }];
   };
@@ -10348,7 +10272,6 @@
     githubId = 9904569;
     name = "Pradyuman Vig";
     keys = [{
-      longkeyid = "rsa4096/4F74D5361C4CA31E";
       fingerprint = "240B 57DE 4271 2480 7CE3  EAC8 4F74 D536 1C4C A31E";
     }];
   };
@@ -10378,11 +10301,11 @@
     name = "Michael Weiss";
     keys = [
       {
-        longkeyid = "ed25519/0x130826A6C2A389FD"; # Git only
+        # Git only
         fingerprint = "86A7 4A55 07D0 58D1 322E  37FD 1308 26A6 C2A3 89FD";
       }
       {
-        longkeyid = "rsa3072/0xBCA9943DD1DF4C04"; # Email, etc.
+        # Email, etc.
         fingerprint = "AF85 991C C950 49A2 4205  1933 BCA9 943D D1DF 4C04";
       }
     ];
@@ -10423,7 +10346,6 @@
     githubId = 42201;
     name = "Pavol Rusnak";
     keys = [{
-      longkeyid = "rsa4096/0x91F3B339B9A02A3D";
       fingerprint = "86E6 792F C27B FD47 8860  C110 91F3 B339 B9A0 2A3D";
     }];
   };
@@ -10567,7 +10489,6 @@
     githubId = 2768870;
     name = "Alyssa Ross";
     keys = [{
-      longkeyid = "rsa4096/736CCDF9EF51BD97";
       fingerprint = "7573 56D7 79BB B888 773E  415E 736C CDF9 EF51 BD97";
     }];
   };
@@ -10698,7 +10619,6 @@
     github = "rbreslow";
     githubId = 1774125;
     keys = [{
-      longkeyid = "ed25519/0xA0D32ACCA38B88ED";
       fingerprint = "B5B7 BCA0 EE6F F31E 263A  69E3 A0D3 2ACC A38B 88ED";
     }];
   };
@@ -10729,7 +10649,6 @@
     keys = [
       # compare with https://keybase.io/reckenrode
       {
-        longkeyid = "ed25519/0xFBF19A982CCE0048";
         fingerprint = "01D7 5486 3A6D 64EA AC77 0D26 FBF1 9A98 2CCE 0048";
       }
     ];
@@ -10812,7 +10731,6 @@
     github = "revol-xut";
     githubId = 32239737;
     keys = [{
-      longkeyid = "rsa4096/B966009D57E69CC6";
       fingerprint = "91EB E870 1639 1323 642A  6803 B966 009D 57E6 9CC6";
     }];
   };
@@ -10940,11 +10858,9 @@
     githubId = 18313093;
     keys = [
       {
-        longkeyid = "rsa4096/0xF6FD87B15C263EC9";
         fingerprint = "8A0E 6A7C 08AB B9DE 67DE  2A13 F6FD 87B1 5C26 3EC9";
       }
       {
-        longkeyid = "ed25519/0xBBB7A6801DF1E03F";
         fingerprint = "C0A7 A9BB 115B C857 4D75  EA99 BBB7 A680 1DF1 E03F";
       }
     ];
@@ -10999,7 +10915,6 @@
     githubId = 2817565;
     name = "Michele Guerini Rocco";
     keys = [{
-      longkeyid = "ed25519/0xBFBAF4C975F76450";
       fingerprint = "92B2 904F D293 C94D C4C9  3E6B BFBA F4C9 75F7 6450";
     }];
   };
@@ -11101,7 +11016,6 @@
     githubId = 3621083;
     name = "Roosembert (Roosemberth) Palacios";
     keys = [{
-      longkeyid = "rsa2048/0xCAAAECE5C2242BB7";
       fingerprint = "78D9 1871 D059 663B 6117  7532 CAAA ECE5 C224 2BB7";
     }];
   };
@@ -11111,7 +11025,6 @@
     github = "rople380";
     githubId = 55679162;
     keys = [{
-      longkeyid = "rsa2048/0x8526B7574A536236";
       fingerprint = "1401 1B63 393D 16C1 AA9C  C521 8526 B757 4A53 6236";
     }];
   };
@@ -11272,7 +11185,6 @@
     githubId = 798147;
     name = "Robert Helgesson";
     keys = [{
-      longkeyid = "rsa4096/0x3573356C25C424D4";
       fingerprint = "36CA CF52 D098 CC0E 78FB  0CB1 3573 356C 25C4 24D4";
     }];
   };
@@ -11288,7 +11200,6 @@
     githubId = 8082305;
     name = "Maxwell Beck";
     keys = [{
-      longkeyid = "rsa2048/0xBB3EFA303760A0DB";
       fingerprint = "D260 79E3 C2BC 2E43 905B  D057 BB3E FA30 3760 A0DB";
     }];
   };
@@ -11312,7 +11223,6 @@
     github = "sagikazarmark";
     githubId = 1226384;
     keys = [{
-      longkeyid = "rsa4096/0xF251ADDC9D041C7E";
       fingerprint = "E628 C811 6FB8 1657 F706  4EA4 F251 ADDC 9D04 1C7E";
     }];
   };
@@ -11346,7 +11256,6 @@
     githubId = 1349989;
     name = "samlich";
     keys = [{
-      longkeyid = "rsa4096/B1568953B1939F1C";
       fingerprint = "AE8C 0836 FDF6 3FFC 9580  C588 B156 8953 B193 9F1C";
     }];
   };
@@ -11381,7 +11290,6 @@
     github = "Samyak2";
     githubId = 34161949;
     keys = [{
-      longkeyid = "rsa4096/0x365873F2F0C6153B";
       fingerprint = "155C F413 0129 C058 9A5F  5524 3658 73F2 F0C6 153B";
     }];
   };
@@ -11497,7 +11405,6 @@
     github = "Sciencentistguy";
     githubId = 4983935;
     keys = [{
-      longkeyid = "rsa2048/0x8E8FF66E2AE8D970";
       fingerprint = "30BB FF3F AB0B BB3E 0435  F83C 8E8F F66E 2AE8 D970";
     }];
   };
@@ -11635,7 +11542,6 @@
     githubId = 51969817;
     name = "Serval";
     keys = [{
-      longkeyid = "rsa4096/0x4A2AAAA382F8294C";
       fingerprint = "A317 37B3 693C 921B 480C  C629 4A2A AAA3 82F8 294C";
     }];
   };
@@ -11645,7 +11551,6 @@
     github = "seylerius";
     githubId = 1145981;
     keys = [{
-      longkeyid = "rsa4096/0xDC26B921A9E9DBDE";
       fingerprint = "7246 B6E1 ABB9 9A48 4395  FD11 DC26 B921 A9E9 DBDE";
     }];
   };
@@ -11702,7 +11607,6 @@
     github = "shanesveller";
     githubId = 831;
     keys = [{
-      longkeyid = "rsa4096/0x9210C218023C15CD";
       fingerprint = "F83C 407C ADC4 5A0F 1F2F  44E8 9210 C218 023C 15CD";
     }];
     name = "Shane Sveller";
@@ -11761,7 +11665,6 @@
     github = "shiryel";
     githubId = 35617139;
     keys = [{
-      longkeyid = "ed25519/0xC4041EA6B32633DE";
       fingerprint = "AB63 4CD9 3322 BD42 6231  F764 C404 1EA6 B326 33DE";
     }];
   };
@@ -11801,7 +11704,6 @@
     github = "Shrimpram";
     githubId = 67710369;
     keys = [{
-      longkeyid = "rsa4096/0x163B16EE76ED24CE";
       fingerprint = "EA88 EA07 26E9 6CBF 6365  3966 163B 16EE 76ED 24CE";
     }];
   };
@@ -11841,7 +11743,6 @@
     githubId = 688044;
     name = "Nikolay Korotkiy";
     keys = [{
-      longkeyid = "rsa2048/0xD1DE6D7F693663A5";
       fingerprint = "ADF4 C13D 0E36 1240 BD01  9B51 D1DE 6D7F 6936 63A5";
     }];
   };
@@ -11851,6 +11752,12 @@
     github = "simarra";
     githubId = 14372987;
   };
+  simoneruffini = {
+    email = "simone.ruffini@tutanota.com";
+    github = "simoneruffini";
+    githubId = 50401154;
+    name = "Simone Ruffini";
+  };
   simonchatts = {
     email = "code@chatts.net";
     github = "simonchatts";
@@ -11888,7 +11795,6 @@
     githubId = 23038812;
     name = "Sirio Balmelli";
     keys = [{
-      longkeyid = "ed25519/0xF72C4A887F9A24CA";
       fingerprint = "B234 EFD4 2B42 FE81 EE4D  7627 F72C 4A88 7F9A 24CA";
     }];
   };
@@ -11967,7 +11873,6 @@
     githubId = 12733495;
     name = "Sergey Makarov";
     keys = [{
-      longkeyid = "rsa2048/6AA23A1193B7064B";
       fingerprint = "6F8A 18AE 4101 103F 3C54  24B9 6AA2 3A11 93B7 064B";
     }];
   };
@@ -11983,7 +11888,6 @@
     githubId = 95471;
     name = "Sébastien Maret";
     keys = [{
-      longkeyid = "rsa4096/0x86E30E5A0F5FC59C";
       fingerprint = "4242 834C D401 86EF 8281  4093 86E3 0E5A 0F5F C59C";
     }];
   };
@@ -12068,7 +11972,6 @@
     githubId = 2280539;
     name = "Sondre Nilsen";
     keys = [{
-      longkeyid = "ed25519/0x25676BCBFFAD76B1";
       fingerprint = "0EC3 FA89 EFBA B421 F82E  40B0 2567 6BCB FFAD 76B1";
     }];
   };
@@ -12213,7 +12116,6 @@
     github = "steinybot";
     githubId = 4659562;
     keys = [{
-      longkeyid = "ed25519/0x21DE1CAE59762A0F";
       fingerprint = "2709 1DEC CC42 4635 4299  569C 21DE 1CAE 5976 2A0F";
     }];
   };
@@ -12260,7 +12162,6 @@
     github = "steshaw";
     githubId = 45735;
     keys = [{
-      longkeyid = "rsa4096/0x1D9A17DFD23DCB91";
       fingerprint = "0AFE 77F7 474D 1596 EE55  7A29 1D9A 17DF D23D CB91";
     }];
   };
@@ -12416,6 +12317,12 @@
     githubId = 1040871;
     name = "Mathis Antony";
   };
+  sven-of-cord = {
+    email = "sven@cord.com";
+    github = "sven-of-cord";
+    githubId = 98333944;
+    name = "Sven Over";
+  };
   svend = {
     email = "svend@svends.net";
     github = "svend";
@@ -12513,7 +12420,6 @@
     githubId = 4098453;
     name = "Tadeo Kondrak";
     keys = [{
-      longkeyid = "ed25519/0xFBE607FCC49516D3";
       fingerprint = "0F2B C0C7 E77C 5B42 AC5B  4C18 FBE6 07FC C495 16D3";
     }];
   };
@@ -12547,7 +12453,6 @@
     githubId = 94917129;
     name = "taikx4";
     keys = [{
-      longkeyid = "ed25519/0xCCD52C7B37BB837E";
       fingerprint = "6B02 8103 C4E5 F68C D77C  9E54 CCD5 2C7B 37BB 837E";
     }];
   };
@@ -12643,7 +12548,6 @@
     github = "tchekda";
     githubId = 23559888;
     keys = [{
-      longkeyid = "rsa4096/0xD0A007EDA4EADA0F";
       fingerprint = "44CE A8DD 3B31 49CD 6246  9D8F D0A0 07ED A4EA DA0F";
     }];
     name = "David Tchekachev";
@@ -12672,6 +12576,12 @@
     githubId = 139251;
     name = "Tom Hunger";
   };
+  tejasag = {
+    name = "Tejas Agarwal";
+    email = "tejasagarwalbly@gmail.com";
+    github = "tejasag";
+    githubId = 67542663;
+  };
   telotortium = {
     email = "rirelan@gmail.com";
     github = "telotortium";
@@ -12776,7 +12686,6 @@
     github = "thblt";
     githubId = 2453136;
     keys = [{
-      longkeyid = "rsa4096/0x63A44817A52EAB7B";
       fingerprint = "D2A2 F0A1 E7A8 5E6F B711  DEE5 63A4 4817 A52E AB7B";
     }];
   };
@@ -12811,7 +12720,6 @@
     github = "ModdedGamers";
     githubId = 35778371;
     keys = [{
-      longkeyid = "rsa4096/0x7D5107866B1C6752";
       fingerprint = "38A0 29B0 4A7E 4C13 A4BB  86C8 7D51 0786 6B1C 6752";
     }];
   };
@@ -12832,7 +12740,6 @@
     github = "thesola10";
     githubId = 7287268;
     keys = [{
-      longkeyid = "rsa4096/0x89245619BEBB95BA";
       fingerprint = "1D05 13A6 1AC4 0D8D C6D6  5F2C 8924 5619 BEBB 95BA";
     }];
     name = "Karim Vergnes";
@@ -12910,7 +12817,6 @@
     githubId = 11243138;
     name = "Chinmay D. Pai";
     keys = [{
-      longkeyid = "rsa4096/0x75507BE256F40CED";
       fingerprint = "7F3E EEAA EE66 93CC 8782  042A 7550 7BE2 56F4 0CED";
     }];
   };
@@ -12987,7 +12893,6 @@
     githubId = 5722198;
     name = "Thomas Kerber";
     keys = [{
-      longkeyid = "rsa4096/0x8489B911F9ED617B";
       fingerprint = "556A 403F B0A2 D423 F656  3424 8489 B911 F9ED 617B";
     }];
   };
@@ -13029,7 +12934,6 @@
     githubId = 561087;
     name = "toastal";
     keys = [{
-      longkeyid = "ed25519/5CCE6F1466D47C9E";
       fingerprint = "7944 74B7 D236 DAB9 C9EF  E7F9 5CCE 6F14 66D4 7C9E";
     }];
   };
@@ -13220,7 +13124,6 @@
     githubId = 722482;
     name = "Denny Schäfer";
     keys = [{
-      longkeyid = "rsa4096/0xB057455D1E567270";
       fingerprint = "C752 0E49 4D92 1740 D263  C467 B057 455D 1E56 7270";
     }];
   };
@@ -13266,7 +13169,6 @@
     github = "twhitehead";
     githubId = 787843;
     keys = [{
-      longkeyid = "rsa2048/0x594258F0389D2802";
       fingerprint = "E631 8869 586F 99B4 F6E6  D785 5942 58F0 389D 2802";
     }];
   };
@@ -13306,7 +13208,6 @@
     github = "unclechu";
     githubId = 799353;
     keys = [{
-      longkeyid = "rsa4096/0xD276FF7467007335";
       fingerprint = "EE59 5E29 BB5B F2B3 5ED2  3F1C D276 FF74 6700 7335";
     }];
   };
@@ -13422,7 +13323,6 @@
     githubId = 25173827;
     name = "Vanilla";
     keys = [{
-      longkeyid = "rsa4096/0x3750028ED04FA42E";
       fingerprint = "2649 340C C909 F821 D251  6714 3750 028E D04F A42E";
     }];
   };
@@ -13470,7 +13370,6 @@
     github = "vcunat";
     githubId = 1785925;
     keys = [{
-      longkeyid = "rsa4096/0xE747DF1F9575A3AA";
       fingerprint = "B600 6460 B60A 80E7 8206  2449 E747 DF1F 9575 A3AA";
     }];
   };
@@ -13486,7 +13385,6 @@
     github = "veehaitch";
     githubId = 15069839;
     keys = [{
-      longkeyid = "rsa4096/0x874BD6F916FAA742";
       fingerprint = "4D23 ECDF 880D CADF 5ECA  4458 874B D6F9 16FA A742";
     }];
   };
@@ -13532,7 +13430,6 @@
     githubId = 7953163;
     name = "Vika Shleina";
     keys = [{
-      longkeyid = "rsa2048/0x4F62CD07CE64796A";
       fingerprint = "B3C0 DA1A C18B 82E8 CA8B  B1D1 4F62 CD07 CE64 796A";
     }];
   };
@@ -13542,7 +13439,6 @@
     githubId = 631446;
     name = "Vincent Bernat";
     keys = [{
-      longkeyid = "rsa4096/0x95A42FE8353525F9";
       fingerprint = "AEF2 3487 66F3 71C6 89A7  3600 95A4 2FE8 3535 25F9";
     }];
   };
@@ -13689,7 +13585,6 @@
     github = "wackbyte";
     githubId = 29505620;
     keys = [{
-      longkeyid = "rsa4096/0x937F2AE5CCEFBF59";
       fingerprint = "E595 7FE4 FEF6 714B 1AD3  1483 937F 2AE5 CCEF BF59";
     }];
   };
@@ -13699,7 +13594,6 @@
     github = "wakira";
     githubId = 2338339;
     keys = [{
-      longkeyid = "rsa4096/0x8C9B0A8FC0C0D862";
       fingerprint = "47F7 009E 3AE3 1DA7 988E  12E1 8C9B 0A8F C0C0 D862";
     }];
   };
@@ -13738,7 +13632,6 @@
     github = "WeebSorceress";
     githubId = 106774777;
     keys = [{
-      longkeyid = "rsa4096/0x7F57344317F0FA43";
       fingerprint = "659A 9BC3 F904 EC24 1461  2EFE 7F57 3443 17F0 FA43";
     }];
   };
@@ -13760,7 +13653,6 @@
     githubId = 16267532;
     name = "Han Verstraete";
     keys = [{
-      longkeyid = "rsa4096/0x11F7BAEA856743FF";
       fingerprint = "2145 955E 3F5E 0C95 3458  41B5 11F7 BAEA 8567 43FF";
     }];
   };
@@ -13794,7 +13686,6 @@
     github = "wildsebastian";
     githubId = 1215623;
     keys = [{
-      longkeyid = "rsa4096/0x366A2940479A06FC";
       fingerprint = "DA03 D6C6 3F58 E796 AD26  E99B 366A 2940 479A 06FC";
     }];
   };
@@ -14061,6 +13952,12 @@
     githubId = 1962985;
     name = "Vincenzo Mantova";
   };
+  xyenon = {
+    name = "XYenon";
+    email = "i@xyenon.bid";
+    github = "xyenon";
+    githubId = 20698483;
+  };
   xzfc = {
     email = "xzfcpw@gmail.com";
     github = "xzfc";
@@ -14177,6 +14074,12 @@
     githubId = 687198;
     name = "Yuri Aisaka";
   };
+  yurkobb = {
+    name = "Yury Bulka";
+    email = "setthemfree@privacyrequired.com";
+    github = "yurkobb";
+    githubId = 479389;
+  };
   yurrriq = {
     email = "eric@ericb.me";
     github = "yurrriq";
@@ -14189,7 +14092,6 @@
     githubId = 24368641;
     name = "Guillaume Pagnoux";
     keys = [{
-      longkeyid = "rsa4096/0xEC5065899AEAAF4C";
       fingerprint = "85F8 E850 F8F2 F823 F934  535B EC50 6589 9AEA AF4C";
     }];
   };
@@ -14207,7 +14109,6 @@
     githubId = 19897088;
     name = "Yusuf Bera Ertan";
     keys = [{
-      longkeyid = "rsa2048/0x61807181F60EFCB2";
       fingerprint = "9270 66BD 8125 A45B 4AC4 0326 6180 7181 F60E FCB2";
     }];
   };
@@ -14217,7 +14118,6 @@
     githubId = 86538850;
     name = "Yuu Yin";
     keys = [{
-      longkeyid = "rsa4096/0x416F303B43C20AC3";
       fingerprint = "9F19 3AE8 AA25 647F FC31  46B5 416F 303B 43C2 0AC3";
     }];
   };
@@ -14304,7 +14204,6 @@
     githubId = 5024958;
     name = "Jona Abdinghoff";
     keys = [{
-      longkeyid = "rsa4096/0x8333735E784DF9D4";
       fingerprint = "44F7 B797 9D3A 27B1 89E0  841E 8333 735E 784D F9D4";
     }];
   };
@@ -14489,7 +14388,6 @@
     github = "ymatsiuk";
     githubId = 24990891;
     keys = [{
-      longkeyid = "rsa4096/0x61302290298601AA";
       fingerprint = "7BB8 84B5 74DA FDB1 E194  ED21 6130 2290 2986 01AA";
     }];
   };
@@ -14561,7 +14459,6 @@
     github = "hmenke";
     githubId = 1903556;
     keys = [{
-      longkeyid = "rsa4096/0xD65C9AFB4C224DA3";
       fingerprint = "F1C5 760E 45B9 9A44 72E9  6BFB D65C 9AFB 4C22 4DA3";
     }];
   };
@@ -14571,7 +14468,6 @@
     github = "berbiche";
     githubId = 20448408;
     keys = [{
-      longkeyid = "rsa4096/0xB461292445C6E696";
       fingerprint = "D446 E58D 87A0 31C7 EC15  88D7 B461 2924 45C6 E696";
     }];
   };
@@ -14593,7 +14489,6 @@
     github = "starcraft66";
     githubId = 1858154;
     keys = [{
-      longkeyid = "rsa4096/0x9D98CDACFF04FD78";
       fingerprint = "8597 4506 EC69 5392 0443  0805 9D98 CDAC FF04 FD78";
     }];
   };
@@ -14628,7 +14523,6 @@
     github = "princemachiavelli";
     githubId = 2730968;
     keys = [{
-      longkeyid = "ed25519/0x83124F97A318EA18";
       fingerprint = "DD54 130B ABEC B65C 1F6B  2A38 8312 4F97 A318 EA18";
     }];
   };
@@ -14638,7 +14532,6 @@
     github = "ydlr";
     githubId = 58453832;
     keys = [{
-      longkeyid = "rsa4096/0x43AB44130A29AD9D";
       fingerprint = "FD0A C425 9EF5 4084 F99F 9B47 2ACC 9749 7C68 FAD4";
     }];
   };
@@ -14648,7 +14541,6 @@
     github = "vs49688";
     githubId = 4423262;
     keys = [{
-      longkeyid = "rsa4096/0x68616B2D8AC4DCC5";
       fingerprint = "61AE D40F 368B 6F26 9DAE  3892 6861 6B2D 8AC4 DCC5";
     }];
   };
@@ -14670,7 +14562,6 @@
     github = "ZenithalHourlyRate";
     githubId = 19512674;
     keys = [{
-      longkeyid = "rsa4096/0x87E17EEF9B18B6C9";
       fingerprint = "1127 F188 280A E312 3619  3329 87E1 7EEF 9B18 B6C9";
     }];
   };
@@ -14687,7 +14578,6 @@
     name = "Zoey de Souza Pessanha";
     email = "zoey.spessanha@outlook.com";
     keys = [{
-      longkeyid = "rsa4096/0x1E1E889CDBD6A315";
       fingerprint = "EAA1 51DB 472B 0122 109A  CB17 1E1E 889C DBD6 A315";
     }];
   };
@@ -14703,7 +14593,6 @@
     github = "zseri";
     githubId = 1618343;
     keys = [{
-      longkeyid = "rsa4096/0x229E63AE5644A96D";
       fingerprint = "7AFB C595 0D3A 77BD B00F  947B 229E 63AE 5644 A96D";
     }];
   };
@@ -14756,7 +14645,6 @@
     githubId = 68368;
     matrix = "@qbit:tapenet.org";
     keys = [{
-      longkeyid = "rsa4096/0x1F81112D62A9ADCE";
       fingerprint = "3586 3350 BFEA C101 DB1A 4AF0 1F81 112D 62A9 ADCE";
     }];
   };
@@ -14804,7 +14692,6 @@
     name = "Bryan Bennett";
     keys = [{
       # compare with https://keybase.io/bbenne10
-      longkeyid = "rsa2048/0xEF90E3E98B8F5C0B";
       fingerprint = "41EA 00B4 00F9 6970 1CB2  D3AF EF90 E3E9 8B8F 5C0B";
     }];
   };
diff --git a/maintainers/scripts/luarocks-packages.csv b/maintainers/scripts/luarocks-packages.csv
index e743675be505e..c7b1e405ebba1 100644
--- a/maintainers/scripts/luarocks-packages.csv
+++ b/maintainers/scripts/luarocks-packages.csv
@@ -86,6 +86,7 @@ plenary.nvim,https://github.com/nvim-lua/plenary.nvim.git,,,,lua5_1,
 rapidjson,https://github.com/xpol/lua-rapidjson.git,,,,,
 readline,,,,,,
 say,https://github.com/Olivine-Labs/say.git,,,,,
+sqlite,,,,,,
 std._debug,https://github.com/lua-stdlib/_debug.git,,,,,
 std.normalize,https://github.com/lua-stdlib/normalize.git,,,,,
 stdlib,,,,41.2.2,,vyp
diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix
index 2ea345a652d29..413a6f9b1d7a9 100644
--- a/maintainers/team-list.nix
+++ b/maintainers/team-list.nix
@@ -19,7 +19,10 @@
 
   More fields may be added in the future.
 
-  Please keep the list alphabetically sorted.
+  When editing this file:
+   * keep the list alphabetically sorted
+   * test the validity of the format with:
+       nix-build lib/tests/teams.nix
   */
 
 { lib }:
@@ -91,6 +94,16 @@ with lib.maintainers; {
     enableFeatureFreezePing = true;
   };
 
+  c3d2 = {
+    members = [
+      astro
+      SuperSandro2000
+    ];
+    scope = "Maintain packages used in the C3D2 hackspace";
+    shortName = "c3d2";
+    enableFeatureFreezePing = true;
+  };
+
   cinnamon = {
     members = [
       mkg20001
@@ -139,6 +152,7 @@ with lib.maintainers; {
       tomberek
     ];
     scope = "Maintain the Cosmopolitan LibC and related programs.";
+    shortName = "Cosmopolitan";
   };
 
   deshaw = {
diff --git a/nixos/doc/manual/configuration/xfce.chapter.md b/nixos/doc/manual/configuration/xfce.chapter.md
index b0ef6682aae86..ee60d465e3b30 100644
--- a/nixos/doc/manual/configuration/xfce.chapter.md
+++ b/nixos/doc/manual/configuration/xfce.chapter.md
@@ -24,11 +24,16 @@ Some Xfce programs are not installed automatically. To install them
 manually (system wide), put them into your
 [](#opt-environment.systemPackages) from `pkgs.xfce`.
 
-## Thunar Plugins {#sec-xfce-thunar-plugins .unnumbered}
+## Thunar {#sec-xfce-thunar-plugins .unnumbered}
+
+Thunar (the Xfce file manager) is automatically enabled when Xfce is
+enabled. To enable Thunar without enabling Xfce, use the configuration
+option [](#opt-programs.thunar.enable) instead of simply adding
+`pkgs.xfce.thunar` to [](#opt-environment.systemPackages).
 
 If you\'d like to add extra plugins to Thunar, add them to
-[](#opt-services.xserver.desktopManager.xfce.thunarPlugins).
-You shouldn\'t just add them to [](#opt-environment.systemPackages).
+[](#opt-programs.thunar.plugins). You shouldn\'t just add them to
+[](#opt-environment.systemPackages).
 
 ## Troubleshooting {#sec-xfce-troubleshooting .unnumbered}
 
diff --git a/nixos/doc/manual/development/option-declarations.section.md b/nixos/doc/manual/development/option-declarations.section.md
index ef7255557a109..79914f2cb6ca9 100644
--- a/nixos/doc/manual/development/option-declarations.section.md
+++ b/nixos/doc/manual/development/option-declarations.section.md
@@ -56,7 +56,14 @@ The function `mkOption` accepts the following arguments.
 `description`
 
 :   A textual description of the option, in DocBook format, that will be
-    included in the NixOS manual.
+    included in the NixOS manual. During the migration process from DocBook
+    to CommonMark the description may also be written in CommonMark, but has
+    to be wrapped in `lib.mdDoc` to differentiate it from DocBook. See
+    the nixpkgs manual for [the list of CommonMark extensions](
+    https://nixos.org/nixpkgs/manual/#sec-contributing-markup)
+    supported by NixOS documentation.
+
+    New documentation should preferably be written as CommonMark.
 
 ## Utility functions for common option patterns {#sec-option-declarations-util}
 
diff --git a/nixos/doc/manual/development/option-types.section.md b/nixos/doc/manual/development/option-types.section.md
index d32d4fc50ad79..9b35e66301447 100644
--- a/nixos/doc/manual/development/option-types.section.md
+++ b/nixos/doc/manual/development/option-types.section.md
@@ -220,6 +220,25 @@ Value types are types that take a value parameter.
         requires using a function:
         `the-submodule = { ... }: { options = { ... }; }`.
 
+`types.deferredModule`
+
+:   Whereas `submodule` represents an option tree, `deferredModule` represents
+    a module value, such as a module file or a configuration.
+
+    It can be set multiple times.
+
+    Module authors can use its value in `imports`, in `submoduleWith`'s `modules`
+    or in `evalModules`' `modules` parameter, among other places.
+
+    Note that `imports` must be evaluated before the module fixpoint. Because
+    of this, deferred modules can only be imported into "other" fixpoints, such
+    as submodules.
+
+    One use case for this type is the type of a "default" module that allow the
+    user to affect all submodules in an `attrsOf submodule` at once. This is
+    more convenient and discoverable than expecting the module user to
+    type-merge with the `attrsOf submodule` option.
+
 ## Composed Types {#sec-option-types-composed}
 
 Composed types are types that take a type as parameter. `listOf
diff --git a/nixos/doc/manual/from_md/configuration/xfce.chapter.xml b/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
index f96ef2e8c483c..42e70d1d81d30 100644
--- a/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
+++ b/nixos/doc/manual/from_md/configuration/xfce.chapter.xml
@@ -27,13 +27,19 @@ services.picom = {
     <literal>pkgs.xfce</literal>.
   </para>
   <section xml:id="sec-xfce-thunar-plugins">
-    <title>Thunar Plugins</title>
+    <title>Thunar</title>
     <para>
-      If you'd like to add extra plugins to Thunar, add them to
-      <xref linkend="opt-services.xserver.desktopManager.xfce.thunarPlugins" />.
-      You shouldn't just add them to
+      Thunar (the Xfce file manager) is automatically enabled when Xfce
+      is enabled. To enable Thunar without enabling Xfce, use the
+      configuration option <xref linkend="opt-programs.thunar.enable" />
+      instead of simply adding <literal>pkgs.xfce.thunar</literal> to
       <xref linkend="opt-environment.systemPackages" />.
     </para>
+    <para>
+      If you'd like to add extra plugins to Thunar, add them to
+      <xref linkend="opt-programs.thunar.plugins" />. You shouldn't just
+      add them to <xref linkend="opt-environment.systemPackages" />.
+    </para>
   </section>
   <section xml:id="sec-xfce-troubleshooting">
     <title>Troubleshooting</title>
diff --git a/nixos/doc/manual/from_md/development/option-declarations.section.xml b/nixos/doc/manual/from_md/development/option-declarations.section.xml
index 381163dd7c74d..03ec48f35fd78 100644
--- a/nixos/doc/manual/from_md/development/option-declarations.section.xml
+++ b/nixos/doc/manual/from_md/development/option-declarations.section.xml
@@ -94,7 +94,17 @@ options = {
       <listitem>
         <para>
           A textual description of the option, in DocBook format, that
-          will be included in the NixOS manual.
+          will be included in the NixOS manual. During the migration
+          process from DocBook to CommonMark the description may also be
+          written in CommonMark, but has to be wrapped in
+          <literal>lib.mdDoc</literal> to differentiate it from DocBook.
+          See the nixpkgs manual for
+          <link xlink:href="https://nixos.org/nixpkgs/manual/#sec-contributing-markup">the
+          list of CommonMark extensions</link> supported by NixOS
+          documentation.
+        </para>
+        <para>
+          New documentation should preferably be written as CommonMark.
         </para>
       </listitem>
     </varlistentry>
diff --git a/nixos/doc/manual/from_md/development/option-types.section.xml b/nixos/doc/manual/from_md/development/option-types.section.xml
index c67e183581c2c..929d5302ed417 100644
--- a/nixos/doc/manual/from_md/development/option-types.section.xml
+++ b/nixos/doc/manual/from_md/development/option-types.section.xml
@@ -427,6 +427,43 @@
           </itemizedlist>
         </listitem>
       </varlistentry>
+      <varlistentry>
+        <term>
+          <literal>types.deferredModule</literal>
+        </term>
+        <listitem>
+          <para>
+            Whereas <literal>submodule</literal> represents an option
+            tree, <literal>deferredModule</literal> represents a module
+            value, such as a module file or a configuration.
+          </para>
+          <para>
+            It can be set multiple times.
+          </para>
+          <para>
+            Module authors can use its value in
+            <literal>imports</literal>, in
+            <literal>submoduleWith</literal><quote>s
+            <literal>modules</literal> or in
+            <literal>evalModules</literal></quote>
+            <literal>modules</literal> parameter, among other places.
+          </para>
+          <para>
+            Note that <literal>imports</literal> must be evaluated
+            before the module fixpoint. Because of this, deferred
+            modules can only be imported into <quote>other</quote>
+            fixpoints, such as submodules.
+          </para>
+          <para>
+            One use case for this type is the type of a
+            <quote>default</quote> module that allow the user to affect
+            all submodules in an <literal>attrsOf submodule</literal> at
+            once. This is more convenient and discoverable than
+            expecting the module user to type-merge with the
+            <literal>attrsOf submodule</literal> option.
+          </para>
+        </listitem>
+      </varlistentry>
     </variablelist>
   </section>
   <section xml:id="sec-option-types-composed">
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
index 5208671e4dab0..245250e709147 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2205.section.xml
@@ -148,6 +148,14 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://gitlab.com/DarkElvenAngel/argononed">argonone</link>,
+          a replacement daemon for the Raspberry Pi Argon One power
+          button and cooler. Available at
+          <link xlink:href="options.html#opt-services.hardware.argonone.enable">services.hardware.argonone</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://github.com/JustArchiNET/ArchiSteamFarm">ArchiSteamFarm</link>,
           a C# application with primary purpose of idling Steam cards
           from multiple accounts simultaneously. Available as
@@ -2778,6 +2786,12 @@ sudo cp /var/lib/redis/dump.rdb /var/lib/redis-peertube/dump.rdb
       </listitem>
       <listitem>
         <para>
+          <literal>zfs</literal> was updated from 2.1.4 to 2.1.5,
+          enabling it to be used with Linux kernel 5.18.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <literal>stdenv.mkDerivation</literal> now supports a
           self-referencing <literal>finalAttrs:</literal> parameter
           containing the final <literal>mkDerivation</literal> arguments
diff --git a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
index 79bba37a13589..a11c2bb61ffb4 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
@@ -33,9 +33,80 @@
       </listitem>
       <listitem>
         <para>
+          The <literal>nixpkgs.hostPlatform</literal> and
+          <literal>nixpkgs.buildPlatform</literal> options have been
+          added. These cover and override the
+          <literal>nixpkgs.{system,localSystem,crossSystem}</literal>
+          options.
+        </para>
+        <itemizedlist spacing="compact">
+          <listitem>
+            <para>
+              <literal>hostPlatform</literal> is the platform or
+              <quote><literal>system</literal></quote> string of the
+              NixOS system described by the configuration.
+            </para>
+          </listitem>
+          <listitem>
+            <para>
+              <literal>buildPlatform</literal> is the platform that is
+              responsible for building the NixOS configuration. It
+              defaults to the <literal>hostPlatform</literal>, for a
+              non-cross build configuration. To cross compile, set
+              <literal>buildPlatform</literal> to a different value.
+            </para>
+          </listitem>
+        </itemizedlist>
+        <para>
+          The new options convey the same information, but with fewer
+          options, and following the Nixpkgs terminology.
+        </para>
+        <para>
+          The existing options
+          <literal>nixpkgs.{system,localSystem,crossSystem}</literal>
+          have not been formally deprecated, to allow for evaluation of
+          the change and to allow for a transition period so that in
+          time the ecosystem can switch without breaking compatibility
+          with any supported NixOS release.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>nixos-generate-config</literal> now generates
+          configurations that can be built in pure mode. This is
+          achieved by setting the new
+          <literal>nixpkgs.hostPlatform</literal> option.
+        </para>
+        <para>
+          You may have to unset the <literal>system</literal> parameter
+          in <literal>lib.nixosSystem</literal>, or similarly remove
+          definitions of the
+          <literal>nixpkgs.{system,localSystem,crossSystem}</literal>
+          options.
+        </para>
+        <para>
+          Alternatively, you can remove the
+          <literal>hostPlatform</literal> line and use NixOS like you
+          would in NixOS 22.05 and earlier.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           PHP now defaults to PHP 8.1, updated from 8.0.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <literal>hardware.nvidia</literal> has a new option
+          <literal>open</literal> that can be used to opt in the
+          opensource version of NVIDIA kernel driver. Note that the
+          driver’s support for GeForce and Workstation GPUs is still
+          alpha quality, see
+          <link xlink:href="https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/">NVIDIA
+          Releases Open-Source GPU Kernel Modules</link> for the
+          official announcement.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.11-new-services">
@@ -73,6 +144,13 @@
       </listitem>
       <listitem>
         <para>
+          <link xlink:href="https://schleuder.org/">schleuder</link>, a
+          mailing list manager with PGP support. Enable using
+          <link linkend="opt-services.schleuder.enable">services.schleuder</link>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           <link xlink:href="https://www.expressvpn.com">expressvpn</link>,
           the CLI client for ExpressVPN. Available as
           <link linkend="opt-services.expressvpn.enable">services.expressvpn</link>.
@@ -102,6 +180,29 @@
       </listitem>
       <listitem>
         <para>
+          <literal>ngrok</literal> has been upgraded from 2.3.40 to
+          3.0.4. Please see
+          <link xlink:href="https://ngrok.com/docs/guides/upgrade-v2-v3">the
+          upgrade guide</link> and
+          <link xlink:href="https://ngrok.com/docs/ngrok-agent/changelog">changelog</link>.
+          Notably, breaking changes are that the config file format has
+          changed and support for single hypen arguments was dropped.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          <literal>i18n.supportedLocales</literal> is now by default
+          only generated with the locales set in
+          <literal>i18n.defaultLocale</literal> and
+          <literal>i18n.extraLocaleSettings</literal>. This got
+          partially copied over from the minimal profile and reduces the
+          final system size by up to 200MB. If you require all locales
+          installed set the option to
+          <literal>[ &quot;all&quot; ]</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           The <literal>isPowerPC</literal> predicate, found on
           <literal>platform</literal> attrsets
           (<literal>hostPlatform</literal>,
@@ -117,18 +218,52 @@
       </listitem>
       <listitem>
         <para>
+          <literal>bsp-layout</literal> no longer uses the command
+          <literal>cycle</literal> to switch to other window layouts, as
+          it got replaced by the commands <literal>previous</literal>
+          and <literal>next</literal>.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
+          The Barco ClickShare driver/client package
+          <literal>pkgs.clickshare-csc1</literal> and the option
+          <literal>programs.clickshare-csc1.enable</literal> have been
+          removed, as it requires <literal>qt4</literal>, which reached
+          its end-of-life 2015 and will no longer be supported by
+          nixpkgs.
+          <link xlink:href="https://www.barco.com/de/support/knowledge-base/4380-can-i-use-linux-os-with-clickshare-base-units">According
+          to Barco</link> many of their base unit models can be used
+          with Google Chrome and the Google Cast extension.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           PHP 7.4 is no longer supported due to upstream not supporting
           this version for the entire lifecycle of the 22.11 release.
         </para>
       </listitem>
       <listitem>
         <para>
+          riak package removed along with
+          <literal>services.riak</literal> module, due to lack of
+          maintainer to update the package.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           (Neo)Vim can not be configured with
           <literal>configure.pathogen</literal> anymore to reduce
           maintainance burden. Use <literal>configure.packages</literal>
           instead.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          <literal>k3s</literal> no longer supports docker as runtime
+          due to upstream dropping support.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
   <section xml:id="sec-release-22.11-notable-changes">
@@ -136,6 +271,14 @@
     <itemizedlist>
       <listitem>
         <para>
+          The <literal>xplr</literal> package has been updated from
+          0.18.0 to 0.19.0, which brings some breaking changes. See the
+          <link xlink:href="https://github.com/sayanarijit/xplr/releases/tag/v0.19.0">upstream
+          release notes</link> for more details.
+        </para>
+      </listitem>
+      <listitem>
+        <para>
           A new module was added for the Saleae Logic device family,
           providing the options
           <literal>hardware.saleae-logic.enable</literal> and
@@ -160,6 +303,18 @@
           as coreboot’s fork is no longer available.
         </para>
       </listitem>
+      <listitem>
+        <para>
+          There is a new module for the <literal>thunar</literal>
+          program (the Xfce file manager), which depends on the
+          <literal>xfconf</literal> dbus service, and also has a dbus
+          service and a systemd unit. The option
+          <literal>services.xserver.desktopManager.xfce.thunarPlugins</literal>
+          has been renamed to
+          <literal>programs.thunar.plugins</literal>, and in a future
+          release it may be removed.
+        </para>
+      </listitem>
     </itemizedlist>
   </section>
 </section>
diff --git a/nixos/doc/manual/release-notes/rl-2205.section.md b/nixos/doc/manual/release-notes/rl-2205.section.md
index faf941f569966..e83a7cd43b876 100644
--- a/nixos/doc/manual/release-notes/rl-2205.section.md
+++ b/nixos/doc/manual/release-notes/rl-2205.section.md
@@ -61,6 +61,8 @@ In addition to numerous new and upgraded packages, this release has the followin
 
 - [apfs](https://github.com/linux-apfs/linux-apfs-rw), a kernel module for mounting the Apple File System (APFS).
 
+- [argonone](https://gitlab.com/DarkElvenAngel/argononed), a replacement daemon for the Raspberry Pi Argon One power button and cooler. Available at [services.hardware.argonone](options.html#opt-services.hardware.argonone.enable).
+
 - [ArchiSteamFarm](https://github.com/JustArchiNET/ArchiSteamFarm), a C# application with primary purpose of idling Steam cards from multiple accounts simultaneously. Available as [services.archisteamfarm](#opt-services.archisteamfarm.enable).
 
 - [BaGet](https://loic-sharma.github.io/BaGet/), a lightweight NuGet and symbol server. Available at [services.baget](#opt-services.baget.enable).
@@ -971,7 +973,9 @@ In addition to numerous new and upgraded packages, this release has the followin
   was changed.
   
 - The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
-  
+
+- `zfs` was updated from 2.1.4 to 2.1.5, enabling it to be used with Linux kernel 5.18.
+
 - `stdenv.mkDerivation` now supports a self-referencing `finalAttrs:` parameter
   containing the final `mkDerivation` arguments including overrides.
   `drv.overrideAttrs` now supports two parameters `finalAttrs: previousAttrs:`.
diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md
index 50bf15ca197d8..275c522a54f1a 100644
--- a/nixos/doc/manual/release-notes/rl-2211.section.md
+++ b/nixos/doc/manual/release-notes/rl-2211.section.md
@@ -17,8 +17,37 @@ In addition to numerous new and upgraded packages, this release has the followin
   built for `stdenv.hostPlatform` (i.e. produced by `stdenv.cc`) by evaluating
   `stdenv.buildPlatform.canExecute stdenv.hostPlatform`.
 
+- The `nixpkgs.hostPlatform` and `nixpkgs.buildPlatform` options have been added.
+  These cover and override the `nixpkgs.{system,localSystem,crossSystem}` options.
+
+   - `hostPlatform` is the platform or "`system`" string of the NixOS system
+     described by the configuration.
+   - `buildPlatform` is the platform that is responsible for building the NixOS
+     configuration. It defaults to the `hostPlatform`, for a non-cross
+     build configuration. To cross compile, set `buildPlatform` to a different
+     value.
+
+  The new options convey the same information, but with fewer options, and
+  following the Nixpkgs terminology.
+
+  The existing options `nixpkgs.{system,localSystem,crossSystem}` have not
+  been formally deprecated, to allow for evaluation of the change and to allow
+  for a transition period so that in time the ecosystem can switch without
+  breaking compatibility with any supported NixOS release.
+
+- `nixos-generate-config` now generates configurations that can be built in pure
+  mode. This is achieved by setting the new `nixpkgs.hostPlatform` option.
+
+  You may have to unset the `system` parameter in `lib.nixosSystem`, or similarly
+  remove definitions of the `nixpkgs.{system,localSystem,crossSystem}` options.
+
+  Alternatively, you can remove the `hostPlatform` line and use NixOS like you
+  would in NixOS 22.05 and earlier.
+
 - PHP now defaults to PHP 8.1, updated from 8.0.
 
+- `hardware.nvidia` has a new option `open` that can be used to opt in the opensource version of NVIDIA kernel driver. Note that the driver's support for GeForce and Workstation GPUs is still alpha quality, see [NVIDIA Releases Open-Source GPU Kernel Modules](https://developer.nvidia.com/blog/nvidia-releases-open-source-gpu-kernel-modules/) for the official announcement.
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
 ## New Services {#sec-release-22.11-new-services}
@@ -31,6 +60,8 @@ In addition to numerous new and upgraded packages, this release has the followin
   Available as [services.infnoise](options.html#opt-services.infnoise.enable).
 - [persistent-evdev](https://github.com/aiberia/persistent-evdev), a daemon to add virtual proxy devices that mirror a physical input device but persist even if the underlying hardware is hot-plugged. Available as [services.persistent-evdev](#opt-services.persistent-evdev.enable).
 
+- [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable).
+
 - [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable).
 
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
@@ -45,22 +76,44 @@ In addition to numerous new and upgraded packages, this release has the followin
   `lib.systems.parse.isCompatible` still exists, but has changed semantically:
   Architectures with differing endianness modes are *no longer considered compatible*.
 
+- `ngrok` has been upgraded from 2.3.40 to 3.0.4. Please see [the upgrade guide](https://ngrok.com/docs/guides/upgrade-v2-v3)
+  and [changelog](https://ngrok.com/docs/ngrok-agent/changelog). Notably, breaking changes are that the config file format has
+  changed and support for single hypen arguments was dropped.
+
+- `i18n.supportedLocales` is now by default only generated with the locales set in `i18n.defaultLocale` and `i18n.extraLocaleSettings`.
+  This got partially copied over from the minimal profile and reduces the final system size by up to 200MB.
+  If you require all locales installed set the option to ``[ "all" ]``.
+
 - The `isPowerPC` predicate, found on `platform` attrsets (`hostPlatform`, `buildPlatform`, `targetPlatform`, etc) has been removed in order to reduce confusion.  The predicate was was defined such that it matches only the 32-bit big-endian members of the POWER/PowerPC family, despite having a name which would imply a broader set of systems.  If you were using this predicate, you can replace `foo.isPowerPC` with `(with foo; isPower && is32bit && isBigEndian)`.
 
+- `bsp-layout` no longer uses the command `cycle` to switch to other window layouts, as it got replaced by the commands `previous` and `next`.
+
+- The Barco ClickShare driver/client package `pkgs.clickshare-csc1` and the option `programs.clickshare-csc1.enable` have been removed,
+  as it requires `qt4`, which reached its end-of-life 2015 and will no longer be supported by nixpkgs.
+  [According to Barco](https://www.barco.com/de/support/knowledge-base/4380-can-i-use-linux-os-with-clickshare-base-units) many of their base unit models can be used with Google Chrome and the Google Cast extension.
+
 - PHP 7.4 is no longer supported due to upstream not supporting this
   version for the entire lifecycle of the 22.11 release.
 
+- riak package removed along with `services.riak` module, due to lack of maintainer to update the package.
+
 - (Neo)Vim can not be configured with `configure.pathogen` anymore to reduce maintainance burden.
 Use `configure.packages` instead.
 
+- `k3s` no longer supports docker as runtime due to upstream dropping support.
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
 
 ## Other Notable Changes {#sec-release-22.11-notable-changes}
 
+- The `xplr` package has been updated from 0.18.0 to 0.19.0, which brings some breaking changes. See the [upstream release notes](https://github.com/sayanarijit/xplr/releases/tag/v0.19.0) for more details.
+
 - A new module was added for the Saleae Logic device family, providing the options `hardware.saleae-logic.enable` and `hardware.saleae-logic.package`.
 
 - Matrix Synapse now requires entries in the `state_group_edges` table to be unique, in order to prevent accidentally introducing duplicate information (for example, because a database backup was restored multiple times). If your Synapse database already has duplicate rows in this table, this could fail with an error and require manual remediation.
 
 - memtest86+ was updated from 5.00-coreboot-002 to 6.00-beta2. It is now the upstream version from https://www.memtest.org/, as coreboot's fork is no longer available.
 
+- There is a new module for the `thunar` program (the Xfce file manager), which depends on the `xfconf` dbus service, and also has a dbus service and a systemd unit. The option `services.xserver.desktopManager.xfce.thunarPlugins` has been renamed to `programs.thunar.plugins`, and in a future release it may be removed.
+
 <!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
diff --git a/nixos/lib/make-ext4-fs.nix b/nixos/lib/make-ext4-fs.nix
index 416beeb32f2fa..b8e1b8d24c48b 100644
--- a/nixos/lib/make-ext4-fs.nix
+++ b/nixos/lib/make-ext4-fs.nix
@@ -78,6 +78,15 @@ pkgs.stdenv.mkDerivation {
       # get rid of the unnecessary slack here--but see
       # https://github.com/NixOS/nixpkgs/issues/125121 for caveats.
 
+      # shrink to fit
+      resize2fs -M $img
+
+      # Add 16 MebiByte to the current_size
+      new_size=$(dumpe2fs -h $img | awk -F: \
+        '/Block count/{count=$2} /Block size/{size=$2} END{print (count*size+16*2**20)/size}')
+
+      resize2fs $img $new_size
+
       if [ ${builtins.toString compressImage} ]; then
         echo "Compressing image"
         zstd -v --no-progress ./$img -o $out
diff --git a/nixos/lib/make-options-doc/default.nix b/nixos/lib/make-options-doc/default.nix
index 3324ef7fcd6f0..282b3e7397c43 100644
--- a/nixos/lib/make-options-doc/default.nix
+++ b/nixos/lib/make-options-doc/default.nix
@@ -112,7 +112,15 @@ in rec {
 
   optionsJSON = pkgs.runCommand "options.json"
     { meta.description = "List of NixOS options in JSON format";
-      buildInputs = [ pkgs.brotli ];
+      buildInputs = [
+        pkgs.brotli
+        (let
+          self = (pkgs.python3Minimal.override {
+            inherit self;
+            includeSiteCustomize = true;
+           });
+         in self.withPackages (p: [ p.mistune_2_0 ]))
+      ];
       options = builtins.toFile "options.json"
         (builtins.unsafeDiscardStringContext (builtins.toJSON optionsNix));
     }
@@ -123,9 +131,13 @@ in rec {
 
       ${
         if baseOptionsJSON == null
-          then "cp $options $dst/options.json"
+          then ''
+            # `cp $options $dst/options.json`, but with temporary
+            # markdown processing
+            python ${./mergeJSON.py} $options <(echo '{}') > $dst/options.json
+          ''
           else ''
-            ${pkgs.python3Minimal}/bin/python ${./mergeJSON.py} \
+            python ${./mergeJSON.py} \
               ${lib.optionalString warningsAreErrors "--warnings-are-errors"} \
               ${baseOptionsJSON} $options \
               > $dst/options.json
diff --git a/nixos/lib/make-options-doc/mergeJSON.py b/nixos/lib/make-options-doc/mergeJSON.py
index 44a188a08c999..9510b1e59a20c 100644
--- a/nixos/lib/make-options-doc/mergeJSON.py
+++ b/nixos/lib/make-options-doc/mergeJSON.py
@@ -41,6 +41,150 @@ def unpivot(options: Dict[Key, Option]) -> Dict[str, JSON]:
         result[opt.name] = opt.value
     return result
 
+# converts in-place!
+def convertMD(options: Dict[str, Any]) -> str:
+    import mistune
+    import re
+    from xml.sax.saxutils import escape, quoteattr
+
+    admonitions = {
+        '.warning': 'warning',
+        '.important': 'important',
+        '.note': 'note'
+    }
+    class Renderer(mistune.renderers.BaseRenderer):
+        def _get_method(self, name):
+            try:
+                return super(Renderer, self)._get_method(name)
+            except AttributeError:
+                def not_supported(children, **kwargs):
+                    raise NotImplementedError("md node not supported yet", name, children, **kwargs)
+                return not_supported
+
+        def text(self, text):
+            return escape(text)
+        def paragraph(self, text):
+            return text + "\n\n"
+        def codespan(self, text):
+            return f"<literal>{text}</literal>"
+        def block_code(self, text, info=None):
+            info = f" language={quoteattr(info)}" if info is not None else ""
+            return f"<programlisting{info}>\n{text}</programlisting>"
+        def link(self, link, text=None, title=None):
+            if link[0:1] == '#':
+                attr = "linkend"
+                link = quoteattr(link[1:])
+            else:
+                # try to faithfully reproduce links that were of the form <link href="..."/>
+                # in docbook format
+                if text == link:
+                    text = ""
+                attr = "xlink:href"
+                link = quoteattr(link)
+            return f"<link {attr}={link}>{text}</link>"
+        def list(self, text, ordered, level, start=None):
+            if ordered:
+                raise NotImplementedError("ordered lists not supported yet")
+            return f"<itemizedlist>\n{text}\n</itemizedlist>"
+        def list_item(self, text, level):
+            return f"<listitem><para>{text}</para></listitem>\n"
+        def block_text(self, text):
+            return text
+        def emphasis(self, text):
+            return f"<emphasis>{text}</emphasis>"
+        def strong(self, text):
+            return f"<emphasis role=\"strong\">{text}</emphasis>"
+        def admonition(self, text, kind):
+            if kind not in admonitions:
+                raise NotImplementedError(f"admonition {kind} not supported yet")
+            tag = admonitions[kind]
+            # we don't keep whitespace here because usually we'll contain only
+            # a single paragraph and the original docbook string is no longer
+            # available to restore the trailer.
+            return f"<{tag}><para>{text.rstrip()}</para></{tag}>"
+        def command(self, text):
+            return f"<command>{escape(text)}</command>"
+        def option(self, text):
+            return f"<option>{escape(text)}</option>"
+        def file(self, text):
+            return f"<filename>{escape(text)}</filename>"
+        def manpage(self, page, section):
+            title = f"<refentrytitle>{escape(page)}</refentrytitle>"
+            vol = f"<manvolnum>{escape(section)}</manvolnum>"
+            return f"<citerefentry>{title}{vol}</citerefentry>"
+
+        def finalize(self, data):
+            return "".join(data)
+
+    plugins = []
+
+    COMMAND_PATTERN = r'\{command\}`(.*?)`'
+    def command(md):
+        def parse(self, m, state):
+            return ('command', m.group(1))
+        md.inline.register_rule('command', COMMAND_PATTERN, parse)
+        md.inline.rules.append('command')
+    plugins.append(command)
+
+    FILE_PATTERN = r'\{file\}`(.*?)`'
+    def file(md):
+        def parse(self, m, state):
+            return ('file', m.group(1))
+        md.inline.register_rule('file', FILE_PATTERN, parse)
+        md.inline.rules.append('file')
+    plugins.append(file)
+
+    OPTION_PATTERN = r'\{option\}`(.*?)`'
+    def option(md):
+        def parse(self, m, state):
+            return ('option', m.group(1))
+        md.inline.register_rule('option', OPTION_PATTERN, parse)
+        md.inline.rules.append('option')
+    plugins.append(option)
+
+    MANPAGE_PATTERN = r'\{manpage\}`(.*?)\((.+?)\)`'
+    def manpage(md):
+        def parse(self, m, state):
+            return ('manpage', m.group(1), m.group(2))
+        md.inline.register_rule('manpage', MANPAGE_PATTERN, parse)
+        md.inline.rules.append('manpage')
+    plugins.append(manpage)
+
+    ADMONITION_PATTERN = re.compile(r'^::: \{([^\n]*?)\}\n(.*?)^:::\n', flags=re.MULTILINE|re.DOTALL)
+    def admonition(md):
+        def parse(self, m, state):
+            return {
+                'type': 'admonition',
+                'children': self.parse(m.group(2), state),
+                'params': [ m.group(1) ],
+            }
+        md.block.register_rule('admonition', ADMONITION_PATTERN, parse)
+        md.block.rules.append('admonition')
+    plugins.append(admonition)
+
+    def convertString(text: str) -> str:
+        rendered = mistune.markdown(text, renderer=Renderer(), plugins=plugins)
+        # keep trailing spaces so we can diff the generated XML to check for conversion bugs.
+        return rendered.rstrip() + text[len(text.rstrip()):]
+
+    def optionIs(option: Dict[str, Any], key: str, typ: str) -> bool:
+        if key not in option: return False
+        if type(option[key]) != dict: return False
+        if '_type' not in option[key]: return False
+        return option[key]['_type'] == typ
+
+    for (name, option) in options.items():
+        if optionIs(option, 'description', 'mdDoc'):
+            option['description'] = convertString(option['description']['text'])
+        if optionIs(option, 'example', 'literalMD'):
+            docbook = convertString(option['example']['text'])
+            option['example'] = { '_type': 'literalDocBook', 'text': docbook }
+        if optionIs(option, 'default', 'literalMD'):
+            docbook = convertString(option['default']['text'])
+            option['default'] = { '_type': 'literalDocBook', 'text': docbook }
+
+    return options
+
 warningsAreErrors = sys.argv[1] == "--warnings-are-errors"
 optOffset = 1 if warningsAreErrors else 0
 options = pivot(json.load(open(sys.argv[1 + optOffset], 'r')))
@@ -92,4 +236,4 @@ if hasWarnings and warningsAreErrors:
         file=sys.stderr)
     sys.exit(1)
 
-json.dump(unpivot(options), fp=sys.stdout)
+json.dump(convertMD(unpivot(options)), fp=sys.stdout)
diff --git a/nixos/lib/make-options-doc/options-to-docbook.xsl b/nixos/lib/make-options-doc/options-to-docbook.xsl
index 03e14365cda93..07d69649523f6 100644
--- a/nixos/lib/make-options-doc/options-to-docbook.xsl
+++ b/nixos/lib/make-options-doc/options-to-docbook.xsl
@@ -213,6 +213,23 @@
 
   <xsl:template match="attr[@name = 'declarations' or @name = 'definitions']">
     <simplelist>
+      <!--
+        Example:
+          opt.declarations = [ { name = "foo/bar.nix"; url = "https://github.com/....."; } ];
+      -->
+      <xsl:for-each select="list/attrs[attr[@name = 'name']]">
+        <member><filename>
+          <xsl:if test="attr[@name = 'url']">
+            <xsl:attribute name="xlink:href"><xsl:value-of select="attr[@name = 'url']/string/@value"/></xsl:attribute>
+          </xsl:if>
+          <xsl:value-of select="attr[@name = 'name']/string/@value"/>
+        </filename></member>
+      </xsl:for-each>
+
+      <!--
+        When the declarations/definitions are raw strings,
+        fall back to hardcoded location logic, specific to Nixpkgs.
+      -->
       <xsl:for-each select="list/string">
         <member><filename>
           <!-- Hyperlink the filename either to the NixOS Subversion
diff --git a/nixos/lib/systemd-unit-options.nix b/nixos/lib/systemd-unit-options.nix
index 02e91fdf1e624..cae82433d856b 100644
--- a/nixos/lib/systemd-unit-options.nix
+++ b/nixos/lib/systemd-unit-options.nix
@@ -20,10 +20,15 @@ in rec {
     merge = loc: defs:
       let
         defs' = filterOverrides defs;
-        defs'' = getValues defs';
       in
-        if isList (head defs'')
-        then concatLists defs''
+        if isList (head defs').value
+        then concatMap (def:
+          if builtins.typeOf def.value == "list"
+          then def.value
+          else
+            throw "The definitions for systemd unit options should be either all lists, representing repeatable options, or all non-lists, but for the option ${showOption loc}, the definitions are a mix of list and non-list ${lib.options.showDefs defs'}"
+        ) defs'
+
         else mergeEqualOption loc defs';
   };
 
diff --git a/nixos/lib/test-driver/setup.py b/nixos/lib/test-driver/setup.py
index 476c7b2dab2a4..1719b988db689 100644
--- a/nixos/lib/test-driver/setup.py
+++ b/nixos/lib/test-driver/setup.py
@@ -4,6 +4,7 @@ setup(
   name="nixos-test-driver",
   version='1.1',
   packages=find_packages(),
+  package_data={"test_driver": ["py.typed"]},
   entry_points={
     "console_scripts": [
       "nixos-test-driver=test_driver:main",
diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix
index a6868a708aaf3..4bb1689ffd789 100644
--- a/nixos/lib/testing-python.nix
+++ b/nixos/lib/testing-python.nix
@@ -119,6 +119,7 @@ rec {
       {
         inherit testName;
         nativeBuildInputs = [ makeWrapper mypy ];
+        buildInputs = [ testDriver ];
         testScript = testScript';
         preferLocalBuild = true;
         passthru = passthru // {
@@ -138,13 +139,10 @@ rec {
           echo "${builtins.toString vlanNames}" >> testScriptWithTypes
           echo -n "$testScript" >> testScriptWithTypes
 
-          # set pythonpath so mypy knows where to find the imports. this requires the py.typed file.
-          export PYTHONPATH='${./test-driver}'
           mypy  --no-implicit-optional \
                 --pretty \
                 --no-color-output \
                 testScriptWithTypes
-          unset PYTHONPATH
         ''}
 
         echo -n "$testScript" >> $out/test-script
diff --git a/nixos/modules/config/console.nix b/nixos/modules/config/console.nix
index b60fc55851daf..97e6405db91e1 100644
--- a/nixos/modules/config/console.nix
+++ b/nixos/modules/config/console.nix
@@ -46,9 +46,9 @@ in
       type = with types; either str path;
       default = "Lat2-Terminus16";
       example = "LatArCyrHeb-16";
-      description = ''
+      description = mdDoc ''
         The font used for the virtual consoles.  Leave empty to use
-        whatever the <command>setfont</command> program considers the
+        whatever the {command}`setfont` program considers the
         default font.
         Can be either a font name or a path to a PSF font file.
       '';
diff --git a/nixos/modules/config/debug-info.nix b/nixos/modules/config/debug-info.nix
index 2942ae5905d10..78de26fda4403 100644
--- a/nixos/modules/config/debug-info.nix
+++ b/nixos/modules/config/debug-info.nix
@@ -9,21 +9,20 @@ with lib;
     environment.enableDebugInfo = mkOption {
       type = types.bool;
       default = false;
-      description = ''
+      description = mdDoc ''
         Some NixOS packages provide debug symbols. However, these are
         not included in the system closure by default to save disk
         space. Enabling this option causes the debug symbols to appear
-        in <filename>/run/current-system/sw/lib/debug/.build-id</filename>,
-        where tools such as <command>gdb</command> can find them.
+        in {file}`/run/current-system/sw/lib/debug/.build-id`,
+        where tools such as {command}`gdb` can find them.
         If you need debug symbols for a package that doesn't
         provide them by default, you can enable them as follows:
-        <programlisting>
-        nixpkgs.config.packageOverrides = pkgs: {
-          hello = pkgs.hello.overrideAttrs (oldAttrs: {
-            separateDebugInfo = true;
-          });
-        };
-        </programlisting>
+
+            nixpkgs.config.packageOverrides = pkgs: {
+              hello = pkgs.hello.overrideAttrs (oldAttrs: {
+                separateDebugInfo = true;
+              });
+            };
       '';
     };
 
diff --git a/nixos/modules/config/fonts/fontconfig.nix b/nixos/modules/config/fonts/fontconfig.nix
index 1e68fef7ce74c..a10a8c6428a10 100644
--- a/nixos/modules/config/fonts/fontconfig.nix
+++ b/nixos/modules/config/fonts/fontconfig.nix
@@ -65,7 +65,7 @@ let
           ${fcBool cfg.hinting.autohint}
         </edit>
         <edit mode="append" name="hintstyle">
-          <const>hintslight</const>
+          <const>${cfg.hinting.style}</const>
         </edit>
         <edit mode="append" name="antialias">
           ${fcBool cfg.antialias}
@@ -226,7 +226,6 @@ in
     (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "useEmbeddedBitmaps" ] [ "fonts" "fontconfig" "useEmbeddedBitmaps" ])
     (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "forceAutohint" ] [ "fonts" "fontconfig" "forceAutohint" ])
     (mkRenamedOptionModule [ "fonts" "fontconfig" "ultimate" "renderMonoTTFAsBitmap" ] [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ])
-    (mkRemovedOptionModule [ "fonts" "fontconfig" "hinting" "style" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "forceAutohint" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "renderMonoTTFAsBitmap" ] "")
     (mkRemovedOptionModule [ "fonts" "fontconfig" "dpi" ] "Use display server-specific options")
@@ -349,6 +348,20 @@ in
               fonts, but better than unhinted fonts.
             '';
           };
+
+          style = mkOption {
+            type = types.enum [ "hintnone" "hintslight" "hintmedium" "hintfull" ];
+            default = "hintslight";
+            description = ''
+              Hintstyle is the amount of font reshaping done to line up
+              to the grid.
+
+              hintslight will make the font more fuzzy to line up to the grid
+              but will be better in retaining font shape, while hintfull will
+              be a crisp font that aligns well to the pixel grid but will lose
+              a greater amount of font shape.
+            '';
+          };
         };
 
         includeUserConf = mkOption {
diff --git a/nixos/modules/config/i18n.nix b/nixos/modules/config/i18n.nix
index 5b8d5b214496b..c55726d09c608 100644
--- a/nixos/modules/config/i18n.nix
+++ b/nixos/modules/config/i18n.nix
@@ -53,7 +53,18 @@ with lib;
 
       supportedLocales = mkOption {
         type = types.listOf types.str;
-        default = ["all"];
+        default = builtins.map (l: l + "/UTF-8")
+          (unique (
+            [ config.i18n.defaultLocale ] ++
+            (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
+          ));
+        defaultText = literalExpression ''
+          builtins.map (l: l + "/UTF-8")
+            (unique (
+              [ config.i18n.defaultLocale ] ++
+              (attrValues (filterAttrs (n: v: n != "LANGUAGE") config.i18n.extraLocaleSettings))
+            ))
+        '';
         example = ["en_US.UTF-8/UTF-8" "nl_NL.UTF-8/UTF-8" "nl_NL/ISO-8859-1"];
         description = ''
           List of locales that the system should support.  The value
diff --git a/nixos/modules/hardware/device-tree.nix b/nixos/modules/hardware/device-tree.nix
index be67116ad507d..5a8a8e27bee1b 100644
--- a/nixos/modules/hardware/device-tree.nix
+++ b/nixos/modules/hardware/device-tree.nix
@@ -36,14 +36,11 @@ let
           /plugin/;
           / {
                   compatible = "raspberrypi";
-                  fragment@0 {
-                          target-path = "/soc";
-                          __overlay__ {
-                                  pps {
-                                          compatible = "pps-gpio";
-                                          status = "okay";
-                                  };
-                          };
+          };
+          &{/soc} {
+                  pps {
+                          compatible = "pps-gpio";
+                          status = "okay";
                   };
           };
         '';
@@ -88,13 +85,14 @@ let
 
   # Compile single Device Tree overlay source
   # file (.dts) into its compiled variant (.dtbo)
-  compileDTS = name: f: pkgs.callPackage({ dtc }: pkgs.stdenv.mkDerivation {
+  compileDTS = name: f: pkgs.callPackage({ stdenv, dtc }: stdenv.mkDerivation {
     name = "${name}-dtbo";
 
     nativeBuildInputs = [ dtc ];
 
     buildCommand = ''
-      dtc -I dts ${f} -O dtb -@ -o $out
+      $CC -E -nostdinc -I${getDev cfg.kernelPackage}/lib/modules/${cfg.kernelPackage.modDirVersion}/source/scripts/dtc/include-prefixes -undef -D__DTS__ -x assembler-with-cpp ${f} | \
+        dtc -I dts -O dtb -@ -o $out
     '';
   }) {};
 
diff --git a/nixos/modules/hardware/video/nvidia.nix b/nixos/modules/hardware/video/nvidia.nix
index a9b04bcc85959..b4717719661aa 100644
--- a/nixos/modules/hardware/video/nvidia.nix
+++ b/nixos/modules/hardware/video/nvidia.nix
@@ -183,6 +183,14 @@ in
       '';
       example = literalExpression "config.boot.kernelPackages.nvidiaPackages.legacy_340";
     };
+
+    hardware.nvidia.open = lib.mkOption {
+      type = lib.types.bool;
+      default = false;
+      description = ''
+        Whether to use the open source kernel module
+      '';
+    };
   };
 
   config = let
@@ -231,6 +239,11 @@ in
         );
         message = "Required files for driver based power management don't exist.";
       }
+
+      {
+        assertion = cfg.open -> (cfg.package ? open && cfg.package ? firmware);
+        message = "This version of NVIDIA driver does not provide a corresponding opensource kernel driver";
+      }
     ];
 
     # If Optimus/PRIME is enabled, we:
@@ -364,7 +377,8 @@ in
       ++ optional (nvidia_x11.persistenced != null && config.virtualisation.docker.enableNvidia)
         "L+ /run/nvidia-docker/extras/bin/nvidia-persistenced - - - - ${nvidia_x11.persistenced}/origBin/nvidia-persistenced";
 
-    boot.extraModulePackages = [ nvidia_x11.bin ];
+    boot.extraModulePackages = if cfg.open then [ nvidia_x11.open ] else [ nvidia_x11.bin ];
+    hardware.firmware = lib.optional cfg.open nvidia_x11.firmware;
 
     # nvidia-uvm is required by CUDA applications.
     boot.kernelModules = [ "nvidia-uvm" ] ++
@@ -372,7 +386,8 @@ in
 
     # If requested enable modesetting via kernel parameter.
     boot.kernelParams = optional (offloadCfg.enable || cfg.modesetting.enable) "nvidia-drm.modeset=1"
-      ++ optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1";
+      ++ optional cfg.powerManagement.enable "nvidia.NVreg_PreserveVideoMemoryAllocations=1"
+      ++ optional cfg.open "nvidia.NVreg_OpenRmEnableUnsupportedGpus=1";
 
     services.udev.extraRules =
       ''
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
index 95aeca1a928a6..d015e10c11d81 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares-gnome.nix
@@ -18,7 +18,8 @@
     extraGSettingsOverrides = ''
       [org.gnome.shell]
       welcome-dialog-last-shown-version='9999999999'
-
+      [org.gnome.desktop.session]
+      idle-delay=0
       [org.gnome.settings-daemon.plugins.power]
       sleep-inactive-ac-type='nothing'
       sleep-inactive-battery-type='nothing'
diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix
index 7560c682517aa..c0335ea487592 100644
--- a/nixos/modules/installer/sd-card/sd-image.nix
+++ b/nixos/modules/installer/sd-card/sd-image.nix
@@ -18,7 +18,7 @@ with lib;
 let
   rootfsImage = pkgs.callPackage ../../../lib/make-ext4-fs.nix ({
     inherit (config.sdImage) storePaths;
-    compressImage = true;
+    compressImage = config.sdImage.compressImage;
     populateImageCommands = config.sdImage.populateRootCommands;
     volumeLabel = "NIXOS_SD";
   } // optionalAttrs (config.sdImage.rootPartitionUUID != null) {
@@ -174,7 +174,8 @@ in
     mtools, libfaketime, util-linux, zstd }: stdenv.mkDerivation {
       name = config.sdImage.imageName;
 
-      nativeBuildInputs = [ dosfstools e2fsprogs mtools libfaketime util-linux zstd ];
+      nativeBuildInputs = [ dosfstools e2fsprogs libfaketime mtools util-linux ]
+      ++ lib.optional config.sdImage.compressImage zstd;
 
       inherit (config.sdImage) imageName compressImage;
 
@@ -189,14 +190,18 @@ in
           echo "file sd-image $img" >> $out/nix-support/hydra-build-products
         fi
 
+        root_fs=${rootfsImage}
+        ${lib.optionalString config.sdImage.compressImage ''
+        root_fs=./root-fs.img
         echo "Decompressing rootfs image"
-        zstd -d --no-progress "${rootfsImage}" -o ./root-fs.img
+        zstd -d --no-progress "${rootfsImage}" -o $root_fs
+        ''}
 
         # Gap in front of the first partition, in MiB
         gap=${toString config.sdImage.firmwarePartitionOffset}
 
         # Create the image file sized to fit /boot/firmware and /, plus slack for the gap.
-        rootSizeBlocks=$(du -B 512 --apparent-size ./root-fs.img | awk '{ print $1 }')
+        rootSizeBlocks=$(du -B 512 --apparent-size $root_fs | awk '{ print $1 }')
         firmwareSizeBlocks=$((${toString config.sdImage.firmwareSize} * 1024 * 1024 / 512))
         imageSize=$((rootSizeBlocks * 512 + firmwareSizeBlocks * 512 + gap * 1024 * 1024))
         truncate -s $imageSize $img
@@ -214,7 +219,7 @@ in
 
         # Copy the rootfs into the SD image
         eval $(partx $img -o START,SECTORS --nr 2 --pairs)
-        dd conv=notrunc if=./root-fs.img of=$img seek=$START count=$SECTORS
+        dd conv=notrunc if=$root_fs of=$img seek=$START count=$SECTORS
 
         # Create a FAT32 /boot/firmware partition of suitable size into firmware_part.img
         eval $(partx $img -o START,SECTORS --nr 1 --pairs)
diff --git a/nixos/modules/installer/tools/get-version-suffix b/nixos/modules/installer/tools/get-version-suffix
index b8972cd57d22b..8d72905cdcb47 100644
--- a/nixos/modules/installer/tools/get-version-suffix
+++ b/nixos/modules/installer/tools/get-version-suffix
@@ -1,14 +1,15 @@
 getVersion() {
     local dir="$1"
     rev=
-    if [ -e "$dir/.git" ]; then
+    gitDir="$dir/.git"
+    if [ -e "$gitDir" ]; then
         if [ -z "$(type -P git)" ]; then
             echo "warning: Git not found; cannot figure out revision of $dir" >&2
             return
         fi
         cd "$dir"
-        rev=$(git rev-parse --short HEAD)
-        if git describe --always --dirty | grep -q dirty; then
+        rev=$(git --git-dir="$gitDir" rev-parse --short HEAD)
+        if git --git-dir="$gitDir" describe --always --dirty | grep -q dirty; then
             rev+=M
         fi
     fi
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index b74ec838df42f..1935d8252607c 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -84,6 +84,15 @@ sub debug {
 }
 
 
+# nixpkgs.system
+my ($status, @systemLines) = runCommand("nix-instantiate --impure --eval --expr builtins.currentSystem");
+if ($status != 0 || join("", @systemLines) =~ /error/) {
+    die "Failed to retrieve current system type from nix.\n";
+}
+chomp(my $system = @systemLines[0]);
+push @attrs, "nixpkgs.hostPlatform = lib.mkDefault $system;";
+
+
 my $cpuinfo = read_file "/proc/cpuinfo";
 
 
diff --git a/nixos/modules/misc/documentation.nix b/nixos/modules/misc/documentation.nix
index 8e28d3336fa42..b031ff2f2be29 100644
--- a/nixos/modules/misc/documentation.nix
+++ b/nixos/modules/misc/documentation.nix
@@ -178,19 +178,12 @@ in
       man.generateCaches = mkOption {
         type = types.bool;
         default = false;
-        description = ''
+        description = mdDoc ''
           Whether to generate the manual page index caches.
           This allows searching for a page or
-          keyword using utilities like
-          <citerefentry>
-            <refentrytitle>apropos</refentrytitle>
-            <manvolnum>1</manvolnum>
-          </citerefentry>
-          and the <literal>-k</literal> option of
-          <citerefentry>
-            <refentrytitle>man</refentrytitle>
-            <manvolnum>1</manvolnum>
-          </citerefentry>.
+          keyword using utilities like {manpage}`apropos(1)`
+          and the `-k` option of
+          {manpage}`man(1)`.
         '';
       };
 
@@ -216,16 +209,14 @@ in
       dev.enable = mkOption {
         type = types.bool;
         default = false;
-        description = ''
+        description = mdDoc ''
           Whether to install documentation targeted at developers.
-          <itemizedlist>
-          <listitem><para>This includes man pages targeted at developers if <option>documentation.man.enable</option> is
-                    set (this also includes "devman" outputs).</para></listitem>
-          <listitem><para>This includes info pages targeted at developers if <option>documentation.info.enable</option>
-                    is set (this also includes "devinfo" outputs).</para></listitem>
-          <listitem><para>This includes other pages targeted at developers if <option>documentation.doc.enable</option>
-                    is set (this also includes "devdoc" outputs).</para></listitem>
-          </itemizedlist>
+          * This includes man pages targeted at developers if {option}`documentation.man.enable` is
+            set (this also includes "devman" outputs).
+          * This includes info pages targeted at developers if {option}`documentation.info.enable`
+            is set (this also includes "devinfo" outputs).
+          * This includes other pages targeted at developers if {option}`documentation.doc.enable`
+            is set (this also includes "devdoc" outputs).
         '';
       };
 
diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix
index 7d1faa50f4bfa..05d483af3c2e4 100644
--- a/nixos/modules/misc/ids.nix
+++ b/nixos/modules/misc/ids.nix
@@ -236,7 +236,7 @@ in
       gitit = 202;
       riemanntools = 203;
       subsonic = 204;
-      riak = 205;
+      # riak = 205; # unused, remove 2022-07-22
       #shout = 206; # dynamically allocated as of 2021-09-18
       gateone = 207;
       namecoin = 208;
@@ -553,7 +553,7 @@ in
       gitit = 202;
       riemanntools = 203;
       subsonic = 204;
-      riak = 205;
+      # riak = 205;#unused, removed 2022-06-22
       #shout = 206; #unused
       gateone = 207;
       namecoin = 208;
diff --git a/nixos/modules/misc/man-db.nix b/nixos/modules/misc/man-db.nix
index 8bd329bc4e0c3..7aeb02d883ac8 100644
--- a/nixos/modules/misc/man-db.nix
+++ b/nixos/modules/misc/man-db.nix
@@ -23,11 +23,11 @@ in
             ++ lib.optionals config.documentation.dev.enable [ "devman" ];
           ignoreCollisions = true;
         };
-        defaultText = lib.literalDocBook "all man pages in <option>config.environment.systemPackages</option>";
-        description = ''
-          The manual pages to generate caches for if <option>documentation.man.generateCaches</option>
+        defaultText = lib.literalMD "all man pages in {option}`config.environment.systemPackages`";
+        description = lib.mdDoc ''
+          The manual pages to generate caches for if {option}`documentation.man.generateCaches`
           is enabled. Must be a path to a directory with man pages under
-          <literal>/share/man</literal>; see the source for an example.
+          `/share/man`; see the source for an example.
           Advanced users can make this a content-addressed derivation to save a few rebuilds.
         '';
       };
diff --git a/nixos/modules/misc/nixpkgs.nix b/nixos/modules/misc/nixpkgs.nix
index 866bb35160091..ad017aff816c7 100644
--- a/nixos/modules/misc/nixpkgs.nix
+++ b/nixos/modules/misc/nixpkgs.nix
@@ -55,9 +55,46 @@ let
     check = builtins.isAttrs;
   };
 
-  defaultPkgs = import ../../.. {
-    inherit (cfg) config overlays localSystem crossSystem;
-  };
+  hasBuildPlatform = opt.buildPlatform.highestPrio < (mkOptionDefault {}).priority;
+  hasHostPlatform = opt.hostPlatform.isDefined;
+  hasPlatform = hasHostPlatform || hasBuildPlatform;
+
+  # Context for messages
+  hostPlatformLine = optionalString hasHostPlatform "${showOptionWithDefLocs opt.hostPlatform}";
+  buildPlatformLine = optionalString hasBuildPlatform "${showOptionWithDefLocs opt.buildPlatform}";
+  platformLines = optionalString hasPlatform ''
+    Your system configuration configures nixpkgs with platform parameters:
+    ${hostPlatformLine
+    }${buildPlatformLine
+    }'';
+
+  legacyOptionsDefined =
+    optional (opt.localSystem.highestPrio < (mkDefault {}).priority) opt.system
+    ++ optional (opt.localSystem.highestPrio < (mkOptionDefault {}).priority) opt.localSystem
+    ++ optional (opt.crossSystem.highestPrio < (mkOptionDefault {}).priority) opt.crossSystem
+    ;
+
+  defaultPkgs =
+    if opt.hostPlatform.isDefined
+    then
+      let isCross = cfg.buildPlatform != cfg.hostPlatform;
+          systemArgs =
+            if isCross
+            then {
+              localSystem = cfg.buildPlatform;
+              crossSystem = cfg.hostPlatform;
+            }
+            else {
+              localSystem = cfg.hostPlatform;
+            };
+      in
+      import ../../.. ({
+        inherit (cfg) config overlays;
+      } // systemArgs)
+    else
+      import ../../.. {
+        inherit (cfg) config overlays localSystem crossSystem;
+      };
 
   finalPkgs = if opt.pkgs.isDefined then cfg.pkgs.appendOverlays cfg.overlays else defaultPkgs;
 
@@ -157,6 +194,46 @@ in
       '';
     };
 
+    hostPlatform = mkOption {
+      type = types.either types.str types.attrs; # TODO utilize lib.systems.parsedPlatform
+      example = { system = "aarch64-linux"; config = "aarch64-unknown-linux-gnu"; };
+      # Make sure that the final value has all fields for sake of other modules
+      # referring to this. TODO make `lib.systems` itself use the module system.
+      apply = lib.systems.elaborate;
+      defaultText = literalExpression
+        ''(import "''${nixos}/../lib").lib.systems.examples.aarch64-multiplatform'';
+      description = ''
+        Specifies the platform where the NixOS configuration will run.
+
+        To cross-compile, set also <code>nixpkgs.buildPlatform</code>.
+
+        Ignored when <code>nixpkgs.pkgs</code> is set.
+      '';
+    };
+
+    buildPlatform = mkOption {
+      type = types.either types.str types.attrs; # TODO utilize lib.systems.parsedPlatform
+      default = cfg.hostPlatform;
+      example = { system = "x86_64-linux"; config = "x86_64-unknown-linux-gnu"; };
+      # Make sure that the final value has all fields for sake of other modules
+      # referring to this.
+      apply = lib.systems.elaborate;
+      defaultText = literalExpression
+        ''config.nixpkgs.hostPlatform'';
+      description = ''
+        Specifies the platform on which NixOS should be built.
+        By default, NixOS is built on the system where it runs, but you can
+        change where it's built. Setting this option will cause NixOS to be
+        cross-compiled.
+
+        For instance, if you're doing distributed multi-platform deployment,
+        or if you're building machines, you can set this to match your
+        development system and/or build farm.
+
+        Ignored when <code>nixpkgs.pkgs</code> is set.
+      '';
+    };
+
     localSystem = mkOption {
       type = types.attrs; # TODO utilize lib.systems.parsedPlatform
       default = { inherit (cfg) system; };
@@ -176,10 +253,13 @@ in
         deployment, or when building virtual machines. See its
         description in the Nixpkgs manual for more details.
 
-        Ignored when <code>nixpkgs.pkgs</code> is set.
+        Ignored when <code>nixpkgs.pkgs</code> or <code>hostPlatform</code> is set.
       '';
     };
 
+    # TODO deprecate. "crossSystem" is a nonsense identifier, because "cross"
+    #      is a relation between at least 2 systems in the context of a
+    #      specific build step, not a single system.
     crossSystem = mkOption {
       type = types.nullOr types.attrs; # TODO utilize lib.systems.parsedPlatform
       default = null;
@@ -193,7 +273,7 @@ in
         should be set as null, the default. See its description in the
         Nixpkgs manual for more details.
 
-        Ignored when <code>nixpkgs.pkgs</code> is set.
+        Ignored when <code>nixpkgs.pkgs</code> or <code>hostPlatform</code> is set.
       '';
     };
 
@@ -216,8 +296,7 @@ in
         </programlisting>
         See <code>nixpkgs.localSystem</code> for more information.
 
-        Ignored when <code>nixpkgs.localSystem</code> is set.
-        Ignored when <code>nixpkgs.pkgs</code> is set.
+        Ignored when <code>nixpkgs.pkgs</code>, <code>nixpkgs.localSystem</code> or <code>nixpkgs.hostPlatform</code> is set.
       '';
     };
   };
@@ -240,10 +319,23 @@ in
             else "nixpkgs.localSystem";
           pkgsSystem = finalPkgs.stdenv.targetPlatform.system;
         in {
-          assertion = nixosExpectedSystem == pkgsSystem;
+          assertion = !hasPlatform -> nixosExpectedSystem == pkgsSystem;
           message = "The NixOS nixpkgs.pkgs option was set to a Nixpkgs invocation that compiles to target system ${pkgsSystem} but NixOS was configured for system ${nixosExpectedSystem} via NixOS option ${nixosOption}. The NixOS system settings must match the Nixpkgs target system.";
         }
       )
+      {
+        assertion = hasPlatform -> legacyOptionsDefined == [];
+        message = ''
+          Your system configures nixpkgs with the platform parameter${optionalString hasBuildPlatform "s"}:
+          ${hostPlatformLine
+          }${buildPlatformLine
+          }
+          However, it also defines the legacy options:
+          ${concatMapStrings showOptionWithDefLocs legacyOptionsDefined}
+          For a future proof system configuration, we recommend to remove
+          the legacy definitions.
+        '';
+      }
     ];
   };
 
diff --git a/nixos/modules/misc/nixpkgs/test.nix b/nixos/modules/misc/nixpkgs/test.nix
index ec5fab9fb4a5e..9e8851707f8fc 100644
--- a/nixos/modules/misc/nixpkgs/test.nix
+++ b/nixos/modules/misc/nixpkgs/test.nix
@@ -1,8 +1,63 @@
 { evalMinimalConfig, pkgs, lib, stdenv }:
+let
+  eval = mod: evalMinimalConfig {
+    imports = [ ../nixpkgs.nix mod ];
+  };
+  withHost = eval {
+    nixpkgs.hostPlatform = "aarch64-linux";
+  };
+  withHostAndBuild = eval {
+    nixpkgs.hostPlatform = "aarch64-linux";
+    nixpkgs.buildPlatform = "aarch64-darwin";
+  };
+  ambiguous = {
+    _file = "ambiguous.nix";
+    nixpkgs.hostPlatform = "aarch64-linux";
+    nixpkgs.buildPlatform = "aarch64-darwin";
+    nixpkgs.system = "x86_64-linux";
+    nixpkgs.localSystem.system = "x86_64-darwin";
+    nixpkgs.crossSystem.system = "i686-linux";
+    imports = [
+      { _file = "repeat.nix";
+        nixpkgs.hostPlatform = "aarch64-linux";
+      }
+    ];
+  };
+  getErrors = module:
+    let
+      uncheckedEval = lib.evalModules { modules = [ ../nixpkgs.nix module ]; };
+    in map (ass: ass.message) (lib.filter (ass: !ass.assertion) uncheckedEval.config.assertions);
+in
 lib.recurseIntoAttrs {
   invokeNixpkgsSimple =
-    (evalMinimalConfig ({ config, modulesPath, ... }: {
-      imports = [ (modulesPath + "/misc/nixpkgs.nix") ];
+    (eval {
       nixpkgs.system = stdenv.hostPlatform.system;
-    }))._module.args.pkgs.hello;
+    })._module.args.pkgs.hello;
+  assertions =
+    assert withHost._module.args.pkgs.stdenv.hostPlatform.system == "aarch64-linux";
+    assert withHost._module.args.pkgs.stdenv.buildPlatform.system == "aarch64-linux";
+    assert withHostAndBuild._module.args.pkgs.stdenv.hostPlatform.system == "aarch64-linux";
+    assert withHostAndBuild._module.args.pkgs.stdenv.buildPlatform.system == "aarch64-darwin";
+    assert builtins.trace (lib.head (getErrors ambiguous))
+      getErrors ambiguous ==
+        [''
+          Your system configures nixpkgs with the platform parameters:
+          nixpkgs.hostPlatform, with values defined in:
+            - repeat.nix
+            - ambiguous.nix
+          nixpkgs.buildPlatform, with values defined in:
+            - ambiguous.nix
+
+          However, it also defines the legacy options:
+          nixpkgs.system, with values defined in:
+            - ambiguous.nix
+          nixpkgs.localSystem, with values defined in:
+            - ambiguous.nix
+          nixpkgs.crossSystem, with values defined in:
+            - ambiguous.nix
+
+          For a future proof system configuration, we recommend to remove
+          the legacy definitions.
+        ''];
+    pkgs.emptyFile;
 }
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 43ae28ac02c5f..b757e05edce3a 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -141,7 +141,6 @@
   ./programs/cdemu.nix
   ./programs/cfs-zen-tweaks.nix
   ./programs/chromium.nix
-  ./programs/clickshare.nix
   ./programs/cnping.nix
   ./programs/command-not-found/command-not-found.nix
   ./programs/criu.nix
@@ -218,6 +217,7 @@
   ./programs/sway.nix
   ./programs/system-config-printer.nix
   ./programs/thefuck.nix
+  ./programs/thunar.nix
   ./programs/tmux.nix
   ./programs/traceroute.nix
   ./programs/tsm-client.nix
@@ -366,7 +366,6 @@
   ./services/databases/pgmanage.nix
   ./services/databases/postgresql.nix
   ./services/databases/redis.nix
-  ./services/databases/riak.nix
   ./services/databases/victoriametrics.nix
   ./services/desktops/accountsservice.nix
   ./services/desktops/bamf.nix
@@ -431,6 +430,7 @@
   ./services/games/terraria.nix
   ./services/hardware/acpid.nix
   ./services/hardware/actkbd.nix
+  ./services/hardware/argonone.nix
   ./services/hardware/auto-cpufreq.nix
   ./services/hardware/bluetooth.nix
   ./services/hardware/bolt.nix
@@ -516,6 +516,7 @@
   ./services/mail/rspamd.nix
   ./services/mail/rss2email.nix
   ./services/mail/roundcube.nix
+  ./services/mail/schleuder.nix
   ./services/mail/sympa.nix
   ./services/mail/nullmailer.nix
   ./services/matrix/appservice-discord.nix
@@ -660,6 +661,7 @@
   ./services/monitoring/do-agent.nix
   ./services/monitoring/fusion-inventory.nix
   ./services/monitoring/grafana.nix
+  ./services/monitoring/grafana-agent.nix
   ./services/monitoring/grafana-image-renderer.nix
   ./services/monitoring/grafana-reporter.nix
   ./services/monitoring/graphite.nix
@@ -893,6 +895,7 @@
   ./services/networking/redsocks.nix
   ./services/networking/resilio.nix
   ./services/networking/robustirc-bridge.nix
+  ./services/networking/routedns.nix
   ./services/networking/rpcbind.nix
   ./services/networking/rxe.nix
   ./services/networking/sabnzbd.nix
diff --git a/nixos/modules/profiles/minimal.nix b/nixos/modules/profiles/minimal.nix
index e79b927238419..0e65989214a18 100644
--- a/nixos/modules/profiles/minimal.nix
+++ b/nixos/modules/profiles/minimal.nix
@@ -8,9 +8,6 @@ with lib;
 {
   environment.noXlibs = mkDefault true;
 
-  # This isn't perfect, but let's expect the user specifies an UTF-8 defaultLocale
-  i18n.supportedLocales = [ (config.i18n.defaultLocale + "/UTF-8") ];
-
   documentation.enable = mkDefault false;
 
   documentation.nixos.enable = mkDefault false;
diff --git a/nixos/modules/programs/clickshare.nix b/nixos/modules/programs/clickshare.nix
deleted file mode 100644
index 9980a7daf5254..0000000000000
--- a/nixos/modules/programs/clickshare.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-{
-
-  options.programs.clickshare-csc1.enable =
-    lib.options.mkEnableOption ''
-      Barco ClickShare CSC-1 driver/client.
-      This allows users in the <literal>clickshare</literal>
-      group to access and use a ClickShare USB dongle
-      that is connected to the machine
-    '';
-
-  config = lib.modules.mkIf config.programs.clickshare-csc1.enable {
-    environment.systemPackages = [ pkgs.clickshare-csc1 ];
-    services.udev.packages = [ pkgs.clickshare-csc1 ];
-    users.groups.clickshare = {};
-  };
-
-  meta.maintainers = [ lib.maintainers.yarny ];
-
-}
diff --git a/nixos/modules/programs/thunar.nix b/nixos/modules/programs/thunar.nix
new file mode 100644
index 0000000000000..343f84698672a
--- /dev/null
+++ b/nixos/modules/programs/thunar.nix
@@ -0,0 +1,44 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let cfg = config.programs.thunar;
+
+in {
+  meta = {
+    maintainers = teams.xfce.members;
+  };
+
+  options = {
+    programs.thunar = {
+      enable = mkEnableOption "Thunar, the Xfce file manager";
+
+      plugins = mkOption {
+        default = [];
+        type = types.listOf types.package;
+        description = "List of thunar plugins to install.";
+        example = literalExpression "with pkgs.xfce; [ thunar-archive-plugin thunar-volman ]";
+      };
+
+    };
+  };
+
+  config = mkIf cfg.enable (
+    let package = pkgs.xfce.thunar.override { thunarPlugins = cfg.plugins; };
+
+    in {
+      environment.systemPackages = [
+        package
+      ];
+
+      services.dbus.packages = [
+        package
+        pkgs.xfce.xfconf
+      ];
+
+      systemd.packages = [
+        package
+      ];
+    }
+  );
+}
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index 1d22627649304..7a6a6b5ed30bb 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -97,6 +97,7 @@ with lib;
     (mkRemovedOptionModule [ "services" "gogoclient" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "virtuoso" ] "The corresponding package was removed from nixpkgs.")
     (mkRemovedOptionModule [ "services" "openfire" ] "The corresponding package was removed from nixpkgs.")
+    (mkRemovedOptionModule [ "services" "riak" ] "The corresponding package was removed from nixpkgs.")
 
     # Do NOT add any option renames here, see top of the file
   ];
diff --git a/nixos/modules/security/systemd-confinement.nix b/nixos/modules/security/systemd-confinement.nix
index f3a2de3bf87a0..07b725effb7d1 100644
--- a/nixos/modules/security/systemd-confinement.nix
+++ b/nixos/modules/security/systemd-confinement.nix
@@ -22,16 +22,17 @@ in {
       options.confinement.fullUnit = lib.mkOption {
         type = types.bool;
         default = false;
-        description = ''
+        description = lib.mdDoc ''
           Whether to include the full closure of the systemd unit file into the
           chroot, instead of just the dependencies for the executables.
 
-          <warning><para>While it may be tempting to just enable this option to
+          ::: {.warning}
+          While it may be tempting to just enable this option to
           make things work quickly, please be aware that this might add paths
           to the closure of the chroot that you didn't anticipate. It's better
-          to use <option>confinement.packages</option> to <emphasis
-          role="strong">explicitly</emphasis> add additional store paths to the
-          chroot.</para></warning>
+          to use {option}`confinement.packages` to **explicitly** add additional store paths to the
+          chroot.
+          :::
         '';
       };
 
diff --git a/nixos/modules/services/audio/navidrome.nix b/nixos/modules/services/audio/navidrome.nix
index 3660e05310be1..319212c020777 100644
--- a/nixos/modules/services/audio/navidrome.nix
+++ b/nixos/modules/services/audio/navidrome.nix
@@ -45,7 +45,10 @@ in {
         RootDirectory = "/run/navidrome";
         ReadWritePaths = "";
         BindReadOnlyPaths = [
+          # navidrome uses online services to download additional album metadata / covers
+          "${config.environment.etc."ssl/certs/ca-certificates.crt".source}:/etc/ssl/certs/ca-certificates.crt"
           builtins.storeDir
+          "/etc"
         ] ++ lib.optional (cfg.settings ? MusicFolder) cfg.settings.MusicFolder;
         CapabilityBoundingSet = "";
         RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ];
diff --git a/nixos/modules/services/cluster/k3s/default.nix b/nixos/modules/services/cluster/k3s/default.nix
index 3a36cfa3f37b8..421aa0aac60ed 100644
--- a/nixos/modules/services/cluster/k3s/default.nix
+++ b/nixos/modules/services/cluster/k3s/default.nix
@@ -3,8 +3,14 @@
 with lib;
 let
   cfg = config.services.k3s;
+  removeOption = config: instruction:
+    lib.mkRemovedOptionModule ([ "services" "k3s" ] ++ config) instruction;
 in
 {
+  imports = [
+    (removeOption [ "docker" ] "k3s docker option is no longer supported.")
+  ];
+
   # interface
   options.services.k3s = {
     enable = mkEnableOption "k3s";
@@ -48,12 +54,6 @@ in
       default = null;
     };
 
-    docker = mkOption {
-      type = types.bool;
-      default = false;
-      description = "Use docker to run containers rather than the built-in containerd.";
-    };
-
     extraFlags = mkOption {
       description = "Extra flags to pass to the k3s command.";
       type = types.str;
@@ -88,14 +88,11 @@ in
       }
     ];
 
-    virtualisation.docker = mkIf cfg.docker {
-      enable = mkDefault true;
-    };
     environment.systemPackages = [ config.services.k3s.package ];
 
     systemd.services.k3s = {
       description = "k3s service";
-      after = [ "network.service" "firewall.service" ] ++ (optional cfg.docker "docker.service");
+      after = [ "network.service" "firewall.service" ];
       wants = [ "network.service" "firewall.service" ];
       wantedBy = [ "multi-user.target" ];
       path = optional config.boot.zfs.enabled config.boot.zfs.package;
@@ -113,8 +110,8 @@ in
         ExecStart = concatStringsSep " \\\n " (
           [
             "${cfg.package}/bin/k3s ${cfg.role}"
-          ] ++ (optional cfg.docker "--docker")
-          ++ (optional (cfg.docker && config.systemd.enableUnifiedCgroupHierarchy) "--kubelet-arg=cgroup-driver=systemd")
+          ]
+          ++ (optional (config.systemd.enableUnifiedCgroupHierarchy) "--kubelet-arg=cgroup-driver=systemd")
           ++ (optional cfg.disableAgent "--disable-agent")
           ++ (optional (cfg.serverAddr != "") "--server ${cfg.serverAddr}")
           ++ (optional (cfg.token != "") "--token ${cfg.token}")
diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix
index b36cac35e7c29..b457e69babaad 100644
--- a/nixos/modules/services/databases/cassandra.nix
+++ b/nixos/modules/services/databases/cassandra.nix
@@ -4,11 +4,12 @@ let
   inherit (lib)
     concatStringsSep
     flip
-    literalDocBook
+    literalMD
     literalExpression
     optionalAttrs
     optionals
     recursiveUpdate
+    mdDoc
     mkEnableOption
     mkIf
     mkOption
@@ -107,7 +108,7 @@ in
     clusterName = mkOption {
       type = types.str;
       default = "Test Cluster";
-      description = ''
+      description = mdDoc ''
         The name of the cluster.
         This setting prevents nodes in one logical cluster from joining
         another. All nodes in a cluster must have the same value.
@@ -117,19 +118,19 @@ in
     user = mkOption {
       type = types.str;
       default = defaultUser;
-      description = "Run Apache Cassandra under this user.";
+      description = mdDoc "Run Apache Cassandra under this user.";
     };
 
     group = mkOption {
       type = types.str;
       default = defaultUser;
-      description = "Run Apache Cassandra under this group.";
+      description = mdDoc "Run Apache Cassandra under this group.";
     };
 
     homeDir = mkOption {
       type = types.path;
       default = "/var/lib/cassandra";
-      description = ''
+      description = mdDoc ''
         Home directory for Apache Cassandra.
       '';
     };
@@ -139,7 +140,7 @@ in
       default = pkgs.cassandra;
       defaultText = literalExpression "pkgs.cassandra";
       example = literalExpression "pkgs.cassandra_3_11";
-      description = ''
+      description = mdDoc ''
         The Apache Cassandra package to use.
       '';
     };
@@ -147,8 +148,8 @@ in
     jvmOpts = mkOption {
       type = types.listOf types.str;
       default = [ ];
-      description = ''
-        Populate the JVM_OPT environment variable.
+      description = mdDoc ''
+        Populate the `JVM_OPT` environment variable.
       '';
     };
 
@@ -156,20 +157,20 @@ in
       type = types.nullOr types.str;
       default = "127.0.0.1";
       example = null;
-      description = ''
+      description = mdDoc ''
         Address or interface to bind to and tell other Cassandra nodes
         to connect to. You _must_ change this if you want multiple
         nodes to be able to communicate!
 
-        Set listenAddress OR listenInterface, not both.
+        Set {option}`listenAddress` OR {option}`listenInterface`, not both.
 
         Leaving it blank leaves it up to
-        InetAddress.getLocalHost(). This will always do the Right
-        Thing _if_ the node is properly configured (hostname, name
+        `InetAddress.getLocalHost()`. This will always do the "Right
+        Thing" _if_ the node is properly configured (hostname, name
         resolution, etc), and the Right Thing is to use the address
         associated with the hostname (it might not be).
 
-        Setting listen_address to 0.0.0.0 is always wrong.
+        Setting {option}`listenAddress` to `0.0.0.0` is always wrong.
       '';
     };
 
@@ -177,8 +178,8 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "eth1";
-      description = ''
-        Set listenAddress OR listenInterface, not both. Interfaces
+      description = mdDoc ''
+        Set `listenAddress` OR `listenInterface`, not both. Interfaces
         must correspond to a single address, IP aliasing is not
         supported.
       '';
@@ -188,18 +189,18 @@ in
       type = types.nullOr types.str;
       default = "127.0.0.1";
       example = null;
-      description = ''
+      description = mdDoc ''
         The address or interface to bind the native transport server to.
 
-        Set rpcAddress OR rpcInterface, not both.
+        Set {option}`rpcAddress` OR {option}`rpcInterface`, not both.
 
-        Leaving rpcAddress blank has the same effect as on
-        listenAddress (i.e. it will be based on the configured hostname
+        Leaving {option}`rpcAddress` blank has the same effect as on
+        {option}`listenAddress` (i.e. it will be based on the configured hostname
         of the node).
 
-        Note that unlike listenAddress, you can specify 0.0.0.0, but you
-        must also set extraConfig.broadcast_rpc_address to a value other
-        than 0.0.0.0.
+        Note that unlike {option}`listenAddress`, you can specify `"0.0.0.0"`, but you
+        must also set `extraConfig.broadcast_rpc_address` to a value other
+        than `"0.0.0.0"`.
 
         For security reasons, you should not expose this port to the
         internet. Firewall it if needed.
@@ -210,8 +211,8 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "eth1";
-      description = ''
-        Set rpcAddress OR rpcInterface, not both. Interfaces must
+      description = mdDoc ''
+        Set {option}`rpcAddress` OR {option}`rpcInterface`, not both. Interfaces must
         correspond to a single address, IP aliasing is not supported.
       '';
     };
@@ -233,7 +234,7 @@ in
           <logger name="com.thinkaurelius.thrift" level="ERROR"/>
         </configuration>
       '';
-      description = ''
+      description = mdDoc ''
         XML logback configuration for cassandra
       '';
     };
@@ -241,24 +242,24 @@ in
     seedAddresses = mkOption {
       type = types.listOf types.str;
       default = [ "127.0.0.1" ];
-      description = ''
+      description = mdDoc ''
         The addresses of hosts designated as contact points in the cluster. A
         joining node contacts one of the nodes in the seeds list to learn the
         topology of the ring.
-        Set to 127.0.0.1 for a single node cluster.
+        Set to `[ "127.0.0.1" ]` for a single node cluster.
       '';
     };
 
     allowClients = mkOption {
       type = types.bool;
       default = true;
-      description = ''
+      description = mdDoc ''
         Enables or disables the native transport server (CQL binary protocol).
-        This server uses the same address as the <literal>rpcAddress</literal>,
-        but the port it uses is not <literal>rpc_port</literal> but
-        <literal>native_transport_port</literal>. See the official Cassandra
+        This server uses the same address as the {option}`rpcAddress`,
+        but the port it uses is not `rpc_port` but
+        `native_transport_port`. See the official Cassandra
         docs for more information on these variables and set them using
-        <literal>extraConfig</literal>.
+        {option}`extraConfig`.
       '';
     };
 
@@ -269,8 +270,8 @@ in
         {
           commitlog_sync_batch_window_in_ms = 3;
         };
-      description = ''
-        Extra options to be merged into cassandra.yaml as nix attribute set.
+      description = mdDoc ''
+        Extra options to be merged into {file}`cassandra.yaml` as nix attribute set.
       '';
     };
 
@@ -278,8 +279,8 @@ in
       type = types.lines;
       default = "";
       example = literalExpression ''"CLASSPATH=$CLASSPATH:''${extraJar}"'';
-      description = ''
-        Extra shell lines to be appended onto cassandra-env.sh.
+      description = mdDoc ''
+        Extra shell lines to be appended onto {file}`cassandra-env.sh`.
       '';
     };
 
@@ -287,13 +288,13 @@ in
       type = types.nullOr types.str;
       default = "3w";
       example = null;
-      description = ''
+      description = mdDoc ''
         Set the interval how often full repairs are run, i.e.
-        <literal>nodetool repair --full</literal> is executed. See
-        https://cassandra.apache.org/doc/latest/operating/repair.html
+        {command}`nodetool repair --full` is executed. See
+        <https://cassandra.apache.org/doc/latest/operating/repair.html>
         for more information.
 
-        Set to <literal>null</literal> to disable full repairs.
+        Set to `null` to disable full repairs.
       '';
     };
 
@@ -301,7 +302,7 @@ in
       type = types.listOf types.str;
       default = [ ];
       example = [ "--partitioner-range" ];
-      description = ''
+      description = mdDoc ''
         Options passed through to the full repair command.
       '';
     };
@@ -310,13 +311,13 @@ in
       type = types.nullOr types.str;
       default = "3d";
       example = null;
-      description = ''
+      description = mdDoc ''
         Set the interval how often incremental repairs are run, i.e.
-        <literal>nodetool repair</literal> is executed. See
-        https://cassandra.apache.org/doc/latest/operating/repair.html
+        {command}`nodetool repair` is executed. See
+        <https://cassandra.apache.org/doc/latest/operating/repair.html>
         for more information.
 
-        Set to <literal>null</literal> to disable incremental repairs.
+        Set to `null` to disable incremental repairs.
       '';
     };
 
@@ -324,7 +325,7 @@ in
       type = types.listOf types.str;
       default = [ ];
       example = [ "--partitioner-range" ];
-      description = ''
+      description = mdDoc ''
         Options passed through to the incremental repair command.
       '';
     };
@@ -333,15 +334,15 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "4G";
-      description = ''
-        Must be left blank or set together with heapNewSize.
+      description = mdDoc ''
+        Must be left blank or set together with {option}`heapNewSize`.
         If left blank a sensible value for the available amount of RAM and CPU
         cores is calculated.
 
         Override to set the amount of memory to allocate to the JVM at
         start-up. For production use you may wish to adjust this for your
-        environment. MAX_HEAP_SIZE is the total amount of memory dedicated
-        to the Java heap. HEAP_NEWSIZE refers to the size of the young
+        environment. `MAX_HEAP_SIZE` is the total amount of memory dedicated
+        to the Java heap. `HEAP_NEWSIZE` refers to the size of the young
         generation.
 
         The main trade-off for the young generation is that the larger it
@@ -354,21 +355,21 @@ in
       type = types.nullOr types.str;
       default = null;
       example = "800M";
-      description = ''
-        Must be left blank or set together with heapNewSize.
+      description = mdDoc ''
+        Must be left blank or set together with {option}`heapNewSize`.
         If left blank a sensible value for the available amount of RAM and CPU
         cores is calculated.
 
         Override to set the amount of memory to allocate to the JVM at
         start-up. For production use you may wish to adjust this for your
-        environment. HEAP_NEWSIZE refers to the size of the young
+        environment. `HEAP_NEWSIZE` refers to the size of the young
         generation.
 
         The main trade-off for the young generation is that the larger it
         is, the longer GC pause times will be. The shorter it is, the more
         expensive GC will be (usually).
 
-        The example HEAP_NEWSIZE assumes a modern 8-core+ machine for decent pause
+        The example `HEAP_NEWSIZE` assumes a modern 8-core+ machine for decent pause
         times. If in doubt, and if you do not particularly want to tweak, go with
         100 MB per physical CPU core.
       '';
@@ -378,7 +379,7 @@ in
       type = types.nullOr types.int;
       default = null;
       example = 4;
-      description = ''
+      description = mdDoc ''
         Set this to control the amount of arenas per-thread in glibc.
       '';
     };
@@ -386,19 +387,19 @@ in
     remoteJmx = mkOption {
       type = types.bool;
       default = false;
-      description = ''
+      description = mdDoc ''
         Cassandra ships with JMX accessible *only* from localhost.
         To enable remote JMX connections set to true.
 
         Be sure to also enable authentication and/or TLS.
-        See: https://wiki.apache.org/cassandra/JmxSecurity
+        See: <https://wiki.apache.org/cassandra/JmxSecurity>
       '';
     };
 
     jmxPort = mkOption {
       type = types.int;
       default = 7199;
-      description = ''
+      description = mdDoc ''
         Specifies the default port over which Cassandra will be available for
         JMX connections.
         For security reasons, you should not expose this port to the internet.
@@ -408,11 +409,11 @@ in
 
     jmxRoles = mkOption {
       default = [ ];
-      description = ''
-        Roles that are allowed to access the JMX (e.g. nodetool)
-        BEWARE: The passwords will be stored world readable in the nix-store.
+      description = mdDoc ''
+        Roles that are allowed to access the JMX (e.g. {command}`nodetool`)
+        BEWARE: The passwords will be stored world readable in the nix store.
                 It's recommended to use your own protected file using
-                <literal>jmxRolesFile</literal>
+                {option}`jmxRolesFile`
 
         Doesn't work in versions older than 3.11 because they don't like that
         it's world readable.
@@ -437,7 +438,7 @@ in
         if versionAtLeast cfg.package.version "3.11"
         then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile
         else null;
-      defaultText = literalDocBook ''generated configuration file if version is at least 3.11, otherwise <literal>null</literal>'';
+      defaultText = literalMD ''generated configuration file if version is at least 3.11, otherwise `null`'';
       example = "/var/lib/cassandra/jmx.password";
       description = ''
         Specify your own jmx roles file.
diff --git a/nixos/modules/services/databases/riak.nix b/nixos/modules/services/databases/riak.nix
deleted file mode 100644
index cc4237d038cdb..0000000000000
--- a/nixos/modules/services/databases/riak.nix
+++ /dev/null
@@ -1,162 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
-
-  cfg = config.services.riak;
-
-in
-
-{
-
-  ###### interface
-
-  options = {
-
-    services.riak = {
-
-      enable = mkEnableOption "riak";
-
-      package = mkOption {
-        type = types.package;
-        default = pkgs.riak;
-        defaultText = literalExpression "pkgs.riak";
-        description = ''
-          Riak package to use.
-        '';
-      };
-
-      nodeName = mkOption {
-        type = types.str;
-        default = "riak@127.0.0.1";
-        description = ''
-          Name of the Erlang node.
-        '';
-      };
-
-      distributedCookie = mkOption {
-        type = types.str;
-        default = "riak";
-        description = ''
-          Cookie for distributed node communication.  All nodes in the
-          same cluster should use the same cookie or they will not be able to
-          communicate.
-        '';
-      };
-
-      dataDir = mkOption {
-        type = types.path;
-        default = "/var/db/riak";
-        description = ''
-          Data directory for Riak.
-        '';
-      };
-
-      logDir = mkOption {
-        type = types.path;
-        default = "/var/log/riak";
-        description = ''
-          Log directory for Riak.
-        '';
-      };
-
-      extraConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = ''
-          Additional text to be appended to <filename>riak.conf</filename>.
-        '';
-      };
-
-      extraAdvancedConfig = mkOption {
-        type = types.lines;
-        default = "";
-        description = ''
-          Additional text to be appended to <filename>advanced.config</filename>.
-        '';
-      };
-
-    };
-
-  };
-
-  ###### implementation
-
-  config = mkIf cfg.enable {
-
-    environment.systemPackages = [ cfg.package ];
-    environment.etc."riak/riak.conf".text = ''
-      nodename = ${cfg.nodeName}
-      distributed_cookie = ${cfg.distributedCookie}
-
-      platform_log_dir = ${cfg.logDir}
-      platform_etc_dir = /etc/riak
-      platform_data_dir = ${cfg.dataDir}
-
-      ${cfg.extraConfig}
-    '';
-
-    environment.etc."riak/advanced.config".text = ''
-      ${cfg.extraAdvancedConfig}
-    '';
-
-    users.users.riak = {
-      name = "riak";
-      uid = config.ids.uids.riak;
-      group = "riak";
-      description = "Riak server user";
-    };
-
-    users.groups.riak.gid = config.ids.gids.riak;
-
-    systemd.services.riak = {
-      description = "Riak Server";
-
-      wantedBy = [ "multi-user.target" ];
-      after = [ "network.target" ];
-
-      path = [
-        pkgs.util-linux # for `logger`
-        pkgs.bash
-      ];
-
-      environment.HOME = "${cfg.dataDir}";
-      environment.RIAK_DATA_DIR = "${cfg.dataDir}";
-      environment.RIAK_LOG_DIR = "${cfg.logDir}";
-      environment.RIAK_ETC_DIR = "/etc/riak";
-
-      preStart = ''
-        if ! test -e ${cfg.logDir}; then
-          mkdir -m 0755 -p ${cfg.logDir}
-          chown -R riak ${cfg.logDir}
-        fi
-
-        if ! test -e ${cfg.dataDir}; then
-          mkdir -m 0700 -p ${cfg.dataDir}
-          chown -R riak ${cfg.dataDir}
-        fi
-      '';
-
-      serviceConfig = {
-        ExecStart = "${cfg.package}/bin/riak console";
-        ExecStop = "${cfg.package}/bin/riak stop";
-        StandardInput = "tty";
-        User = "riak";
-        Group = "riak";
-        PermissionsStartOnly = true;
-        # Give Riak a decent amount of time to clean up.
-        TimeoutStopSec = 120;
-        LimitNOFILE = 65536;
-      };
-
-      unitConfig.RequiresMountsFor = [
-        "${cfg.dataDir}"
-        "${cfg.logDir}"
-        "/etc/riak"
-      ];
-    };
-
-  };
-
-}
diff --git a/nixos/modules/services/desktops/pipewire/pipewire.nix b/nixos/modules/services/desktops/pipewire/pipewire.nix
index 07b5dd12ffc54..dd1f5e3a018db 100644
--- a/nixos/modules/services/desktops/pipewire/pipewire.nix
+++ b/nixos/modules/services/desktops/pipewire/pipewire.nix
@@ -234,7 +234,7 @@ in {
     environment.etc."pipewire/pipewire.conf" = {
       source = json.generate "pipewire.conf" configs.pipewire;
     };
-    environment.etc."pipewire/pipewire-pulse.conf" = {
+    environment.etc."pipewire/pipewire-pulse.conf" = mkIf cfg.pulse.enable {
       source = json.generate "pipewire-pulse.conf" configs.pipewire-pulse;
     };
 
@@ -260,5 +260,8 @@ in {
     # https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/464#note_723554
     systemd.services.pipewire.environment."PIPEWIRE_LINK_PASSIVE" = "1";
     systemd.user.services.pipewire.environment."PIPEWIRE_LINK_PASSIVE" = "1";
+
+    # pipewire-pulse default config expects pactl to be in PATH
+    systemd.user.services.pipewire-pulse.path = lib.mkIf cfg.pulse.enable [ pkgs.pulseaudio ];
   };
 }
diff --git a/nixos/modules/services/desktops/pipewire/wireplumber.nix b/nixos/modules/services/desktops/pipewire/wireplumber.nix
index 1dbdd842c4a1e..439a3ae68daa1 100644
--- a/nixos/modules/services/desktops/pipewire/wireplumber.nix
+++ b/nixos/modules/services/desktops/pipewire/wireplumber.nix
@@ -37,11 +37,19 @@ in
     environment.systemPackages = [ cfg.package ];
 
     environment.etc."wireplumber/main.lua.d/80-nixos.lua" = lib.mkIf (!pwUsedForAudio) {
-     text = ''
+      text = ''
         -- Pipewire is not used for audio, so prevent it from grabbing audio devices
         alsa_monitor.enable = function() end
       '';
     };
+    environment.etc."wireplumber/main.lua.d/80-systemwide.lua" = lib.mkIf config.services.pipewire.systemWide {
+      text = ''
+        -- When running system-wide, these settings need to be disabled (they
+        -- use functions that aren't available on the system dbus).
+        alsa_monitor.properties["alsa.reserve"] = false
+        default_access.properties["enable-flatpak-portal"] = false
+      '';
+    };
 
     systemd.packages = [ cfg.package ];
 
@@ -50,5 +58,10 @@ in
 
     systemd.services.wireplumber.wantedBy = [ "pipewire.service" ];
     systemd.user.services.wireplumber.wantedBy = [ "pipewire.service" ];
+
+    systemd.services.wireplumber.environment = lib.mkIf config.services.pipewire.systemWide {
+      # Force wireplumber to use system dbus.
+      DBUS_SESSION_BUS_ADDRESS = "unix:path=/run/dbus/system_bus_socket";
+    };
   };
 }
diff --git a/nixos/modules/services/hardware/argonone.nix b/nixos/modules/services/hardware/argonone.nix
new file mode 100644
index 0000000000000..638181b1b12e2
--- /dev/null
+++ b/nixos/modules/services/hardware/argonone.nix
@@ -0,0 +1,58 @@
+{ config, lib, pkgs, ... }:
+
+let
+  cfg = config.services.hardware.argonone;
+in
+{
+  options.services.hardware.argonone = {
+    enable = lib.mkEnableOption "the driver for Argon One Raspberry Pi case fan and power button";
+    package = lib.mkOption {
+      type = lib.types.package;
+      default = pkgs.argononed;
+      defaultText = "pkgs.argononed";
+      description = ''
+        The package implementing the Argon One driver
+      '';
+    };
+  };
+
+  config = lib.mkIf cfg.enable {
+    hardware.i2c.enable = true;
+    hardware.deviceTree.overlays = [
+      {
+        name = "argononed";
+        dtboFile = "${cfg.package}/boot/overlays/argonone.dtbo";
+      }
+      {
+        name = "i2c1-okay-overlay";
+        dtsText = ''
+          /dts-v1/;
+          /plugin/;
+          / {
+            compatible = "brcm,bcm2711";
+            fragment@0 {
+              target = <&i2c1>;
+              __overlay__ {
+                status = "okay";
+              };
+            };
+          };
+        '';
+      }
+    ];
+    environment.systemPackages = [ cfg.package ];
+    systemd.services.argononed = {
+      description = "Argon One Raspberry Pi case Daemon Service";
+      wantedBy = [ "multi-user.target" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = "${cfg.package}/bin/argononed";
+        PIDFile = "/run/argononed.pid";
+        Restart = "on-failure";
+      };
+    };
+  };
+
+  meta.maintainers = with lib.maintainers; [ misterio77 ];
+
+}
diff --git a/nixos/modules/services/home-automation/home-assistant.nix b/nixos/modules/services/home-automation/home-assistant.nix
index e255e5d22188b..2aacc5e55c6e2 100644
--- a/nixos/modules/services/home-automation/home-assistant.nix
+++ b/nixos/modules/services/home-automation/home-assistant.nix
@@ -369,6 +369,17 @@ in {
 
     networking.firewall.allowedTCPPorts = mkIf cfg.openFirewall [ cfg.config.http.server_port ];
 
+    # symlink the configuration to /etc/home-assistant
+    environment.etc = lib.mkMerge [
+      (lib.mkIf (cfg.config != null && !cfg.configWritable) {
+        "home-assistant/configuration.yaml".source = configFile;
+      })
+
+      (lib.mkIf (cfg.lovelaceConfig != null && !cfg.lovelaceConfigWritable) {
+        "home-assistant/ui-lovelace.yaml".source = lovelaceConfigFile;
+      })
+    ];
+
     systemd.services.home-assistant = {
       description = "Home Assistant";
       after = [
@@ -378,18 +389,22 @@ in {
         "mysql.service"
         "postgresql.service"
       ];
+      reloadTriggers = [
+        configFile
+        lovelaceConfigFile
+      ];
       preStart = let
         copyConfig = if cfg.configWritable then ''
           cp --no-preserve=mode ${configFile} "${cfg.configDir}/configuration.yaml"
         '' else ''
           rm -f "${cfg.configDir}/configuration.yaml"
-          ln -s ${configFile} "${cfg.configDir}/configuration.yaml"
+          ln -s /etc/home-assistant/configuration.yaml "${cfg.configDir}/configuration.yaml"
         '';
         copyLovelaceConfig = if cfg.lovelaceConfigWritable then ''
           cp --no-preserve=mode ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
         '' else ''
           rm -f "${cfg.configDir}/ui-lovelace.yaml"
-          ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml"
+          ln -s /etc/home-assistant/ui-lovelace.yaml "${cfg.configDir}/ui-lovelace.yaml"
         '';
       in
         (optionalString (cfg.config != null) copyConfig) +
diff --git a/nixos/modules/services/logging/logrotate.nix b/nixos/modules/services/logging/logrotate.nix
index e6eb0552c9e95..dfc58d7d539c4 100644
--- a/nixos/modules/services/logging/logrotate.nix
+++ b/nixos/modules/services/logging/logrotate.nix
@@ -193,7 +193,7 @@ let
   };
 
   mailOption =
-    if foldr (n: a: a || n ? mail) false (attrValues cfg.settings)
+    if foldr (n: a: a || (n.mail or false) != false) false (attrValues cfg.settings)
     then "--mail=${pkgs.mailutils}/bin/mail"
     else "";
 in
diff --git a/nixos/modules/services/mail/schleuder.nix b/nixos/modules/services/mail/schleuder.nix
new file mode 100644
index 0000000000000..7ba15f1070bde
--- /dev/null
+++ b/nixos/modules/services/mail/schleuder.nix
@@ -0,0 +1,162 @@
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.services.schleuder;
+  settingsFormat = pkgs.formats.yaml { };
+  postfixMap = entries: lib.concatStringsSep "\n" (lib.mapAttrsToList (name: value: "${name} ${value}") entries);
+  writePostfixMap = name: entries: pkgs.writeText name (postfixMap entries);
+  configScript = pkgs.writeScript "schleuder-cfg" ''
+    #!${pkgs.runtimeShell}
+    set -exuo pipefail
+    umask 0077
+    ${pkgs.yq}/bin/yq \
+      --slurpfile overrides <(${pkgs.yq}/bin/yq . <${lib.escapeShellArg cfg.extraSettingsFile}) \
+      < ${settingsFormat.generate "schleuder.yml" cfg.settings} \
+      '. * $overrides[0]' \
+      > /etc/schleuder/schleuder.yml
+    chown schleuder: /etc/schleuder/schleuder.yml
+  '';
+in
+{
+  options.services.schleuder = {
+    enable = lib.mkEnableOption "Schleuder secure remailer";
+    enablePostfix = lib.mkEnableOption "automatic postfix integration" // { default = true; };
+    lists = lib.mkOption {
+      description = ''
+        List of list addresses that should be handled by Schleuder.
+
+        Note that this is only handled by the postfix integration, and
+        the setup of the lists, their members and their keys has to be
+        performed separately via schleuder's API, using a tool such as
+        schleuder-cli.
+      '';
+      type = lib.types.listOf lib.types.str;
+      default = [ ];
+      example = [ "widget-team@example.com" "security@example.com" ];
+    };
+    /* maybe one day....
+      domains = lib.mkOption {
+      description = "Domains for which all mail should be handled by Schleuder.";
+      type = lib.types.listOf lib.types.str;
+      default = [];
+      example = ["securelists.example.com"];
+      };
+    */
+    settings = lib.mkOption {
+      description = ''
+        Settings for schleuder.yml.
+
+        Check the <link xlink:href="https://0xacab.org/schleuder/schleuder/blob/master/etc/schleuder.yml">example configuration</link> for possible values.
+      '';
+      type = lib.types.submodule {
+        freeformType = settingsFormat.type;
+        options.keyserver = lib.mkOption {
+          type = lib.types.str;
+          description = ''
+            Key server from which to fetch and update keys.
+
+            Note that NixOS uses a different default from upstream, since the upstream default sks-keyservers.net is deprecated.
+          '';
+          default = "keys.openpgp.org";
+        };
+      };
+      default = { };
+    };
+    extraSettingsFile = lib.mkOption {
+      description = "YAML file to merge into the schleuder config at runtime. This can be used for secrets such as API keys.";
+      type = lib.types.nullOr lib.types.path;
+      default = null;
+    };
+    listDefaults = lib.mkOption {
+      description = ''
+        Default settings for lists (list-defaults.yml).
+
+        Check the <link xlink:href="https://0xacab.org/schleuder/schleuder/-/blob/master/etc/list-defaults.yml">example configuration</link> for possible values.
+      '';
+      type = settingsFormat.type;
+      default = { };
+    };
+  };
+  config = lib.mkIf cfg.enable {
+    assertions = [
+      {
+        assertion = !(cfg.settings.api ? valid_api_keys);
+        message = ''
+          services.schleuder.settings.api.valid_api_keys is set. Defining API keys via NixOS config results in them being copied to the world-readable Nix store. Please use the extraSettingsFile option to store API keys in a non-public location.
+        '';
+      }
+      {
+        assertion = !(lib.any (db: db ? password) (lib.attrValues cfg.settings.database or {}));
+        message = ''
+          A password is defined for at least one database in services.schleuder.settings.database. Defining passwords via NixOS config results in them being copied to the world-readable Nix store. Please use the extraSettingsFile option to store database passwords in a non-public location.
+        '';
+      }
+    ];
+    users.users.schleuder.isSystemUser = true;
+    users.users.schleuder.group = "schleuder";
+    users.groups.schleuder = {};
+    environment.systemPackages = [
+      pkgs.schleuder-cli
+    ];
+    services.postfix = lib.mkIf cfg.enablePostfix {
+      extraMasterConf = ''
+        schleuder  unix  -       n       n       -       -       pipe
+          flags=DRhu user=schleuder argv=/${pkgs.schleuder}/bin/schleuder work ''${recipient}
+      '';
+      transport = lib.mkIf (cfg.lists != [ ]) (postfixMap (lib.genAttrs cfg.lists (_: "schleuder:")));
+      extraConfig = ''
+        schleuder_destination_recipient_limit = 1
+      '';
+      # review: does this make sense?
+      localRecipients = lib.mkIf (cfg.lists != [ ]) cfg.lists;
+    };
+    systemd.services = let commonServiceConfig = {
+      # We would have liked to use DynamicUser, but since the default
+      # database is SQLite and lives in StateDirectory, and that same
+      # database needs to be readable from the postfix service, this
+      # isn't trivial to do.
+      User = "schleuder";
+      StateDirectory = "schleuder";
+      StateDirectoryMode = "0700";
+    }; in
+      {
+        schleuder-init = {
+          serviceConfig = commonServiceConfig // {
+            ExecStartPre = lib.mkIf (cfg.extraSettingsFile != null) [
+              "+${configScript}"
+            ];
+            ExecStart = [ "${pkgs.schleuder}/bin/schleuder install" ];
+            Type = "oneshot";
+          };
+        };
+        schleuder-api-daemon = {
+          after = [ "local-fs.target" "network.target" "schleuder-init.service" ];
+          wantedBy = [ "multi-user.target" ];
+          requires = [ "schleuder-init.service" ];
+          serviceConfig = commonServiceConfig // {
+            ExecStart = [ "${pkgs.schleuder}/bin/schleuder-api-daemon" ];
+          };
+        };
+        schleuder-weekly-key-maintenance = {
+          after = [ "local-fs.target" "network.target" ];
+          startAt = "weekly";
+          serviceConfig = commonServiceConfig // {
+            ExecStart = [
+              "${pkgs.schleuder}/bin/schleuder refresh_keys"
+              "${pkgs.schleuder}/bin/schleuder check_keys"
+            ];
+          };
+        };
+      };
+
+    environment.etc."schleuder/schleuder.yml" = lib.mkIf (cfg.extraSettingsFile == null) {
+      source = settingsFormat.generate "schleuder.yml" cfg.settings;
+    };
+    environment.etc."schleuder/list-defaults.yml".source = settingsFormat.generate "list-defaults.yml" cfg.listDefaults;
+
+    services.schleuder = {
+      #lists_dir = "/var/lib/schleuder.lists";
+      settings.filters_dir = lib.mkDefault "/var/lib/schleuder/filters";
+      settings.keyword_handlers_dir = lib.mkDefault "/var/lib/schleuder/keyword_handlers";
+    };
+  };
+}
diff --git a/nixos/modules/services/matrix/appservice-irc.nix b/nixos/modules/services/matrix/appservice-irc.nix
index b041c9c82c56e..ff938527ed58a 100644
--- a/nixos/modules/services/matrix/appservice-irc.nix
+++ b/nixos/modules/services/matrix/appservice-irc.nix
@@ -153,6 +153,9 @@ in {
     systemd.services.matrix-appservice-irc = {
       description = "Matrix-IRC bridge";
       before = [ "matrix-synapse.service" ]; # So the registration can be used by Synapse
+      after = lib.optionals (cfg.settings.database.engine == "postgres") [
+        "postgresql.service"
+      ];
       wantedBy = [ "multi-user.target" ];
 
       preStart = ''
diff --git a/nixos/modules/services/matrix/synapse.nix b/nixos/modules/services/matrix/synapse.nix
index b3108484fae12..3d5d10cdf070b 100644
--- a/nixos/modules/services/matrix/synapse.nix
+++ b/nixos/modules/services/matrix/synapse.nix
@@ -191,12 +191,12 @@ in {
 
       settings = mkOption {
         default = {};
-        description = ''
+        description = mdDoc ''
           The primary synapse configuration. See the
-          <link xlink:href="https://github.com/matrix-org/synapse/blob/v${cfg.package.version}/docs/sample_config.yaml">sample configuration</link>
+          [sample configuration](https://github.com/matrix-org/synapse/blob/v${cfg.package.version}/docs/sample_config.yaml)
           for possible values.
 
-          Secrets should be passed in by using the <literal>extraConfigFiles</literal> option.
+          Secrets should be passed in by using the `extraConfigFiles` option.
         '';
         type = with types; submodule {
           freeformType = format.type;
@@ -230,23 +230,23 @@ in {
             registration_shared_secret = mkOption {
               type = types.nullOr types.str;
               default = null;
-              description = ''
+              description = mdDoc ''
                 If set, allows registration by anyone who also has the shared
                 secret, even if registration is otherwise disabled.
 
-                Secrets should be passed in via <literal>extraConfigFiles</literal>!
+                Secrets should be passed in via `extraConfigFiles`!
               '';
             };
 
             macaroon_secret_key = mkOption {
               type = types.nullOr types.str;
               default = null;
-              description = ''
+              description = mdDoc ''
                 Secret key for authentication tokens. If none is specified,
                 the registration_shared_secret is used, if one is given; otherwise,
                 a secret key is derived from the signing key.
 
-                Secrets should be passed in via <literal>extraConfigFiles</literal>!
+                Secrets should be passed in via `extraConfigFiles`!
               '';
             };
 
@@ -620,10 +620,10 @@ in {
               example = literalExpression ''
                 config.services.coturn.static-auth-secret
               '';
-              description = ''
+              description = mdDoc ''
                 The shared secret used to compute passwords for the TURN server.
 
-                Secrets should be passed in via <literal>extraConfigFiles</literal>!
+                Secrets should be passed in via `extraConfigFiles`!
               '';
             };
 
diff --git a/nixos/modules/services/misc/geoipupdate.nix b/nixos/modules/services/misc/geoipupdate.nix
index 3211d4d88e4d9..db643c3d84795 100644
--- a/nixos/modules/services/misc/geoipupdate.nix
+++ b/nixos/modules/services/misc/geoipupdate.nix
@@ -2,6 +2,7 @@
 
 let
   cfg = config.services.geoipupdate;
+  inherit (builtins) isAttrs isString isInt isList typeOf hashString;
 in
 {
   imports = [
@@ -27,11 +28,30 @@ in
       };
 
       settings = lib.mkOption {
+        example = lib.literalExpression ''
+          {
+            AccountID = 200001;
+            DatabaseDirectory = "/var/lib/GeoIP";
+            LicenseKey = { _secret = "/run/keys/maxmind_license_key"; };
+            Proxy = "10.0.0.10:8888";
+            ProxyUserPassword = { _secret = "/run/keys/proxy_pass"; };
+          }
+        '';
         description = ''
           <productname>geoipupdate</productname> configuration
           options. See
           <link xlink:href="https://github.com/maxmind/geoipupdate/blob/main/doc/GeoIP.conf.md" />
           for a full list of available options.
+
+          Settings containing secret data should be set to an
+          attribute set containing the attribute
+          <literal>_secret</literal> - a string pointing to a file
+          containing the value the option should be set to. See the
+          example to get a better picture of this: in the resulting
+          <filename>GeoIP.conf</filename> file, the
+          <literal>ProxyUserPassword</literal> key will be set to the
+          contents of the
+          <filename>/run/keys/proxy_pass</filename> file.
         '';
         type = lib.types.submodule {
           freeformType =
@@ -65,11 +85,18 @@ in
             };
 
             LicenseKey = lib.mkOption {
-              type = lib.types.path;
+              type = with lib.types; either path (attrsOf path);
               description = ''
-                A file containing the <productname>MaxMind</productname>
-                license key.
+                A file containing the
+                <productname>MaxMind</productname> license key.
+
+                Always handled as a secret whether the value is
+                wrapped in a <literal>{ _secret = ...; }</literal>
+                attrset or not (refer to <xref
+                linkend="opt-services.geoipupdate.settings" /> for
+                details).
               '';
+              apply = x: if isAttrs x then x else { _secret = x; };
             };
 
             DatabaseDirectory = lib.mkOption {
@@ -102,6 +129,9 @@ in
     systemd.services.geoipupdate-create-db-dir = {
       serviceConfig.Type = "oneshot";
       script = ''
+        set -o errexit -o pipefail -o nounset -o errtrace
+        shopt -s inherit_errexit
+
         mkdir -p ${cfg.settings.DatabaseDirectory}
         chmod 0755 ${cfg.settings.DatabaseDirectory}
       '';
@@ -115,32 +145,41 @@ in
         "network-online.target"
         "nss-lookup.target"
       ];
+      path = [ pkgs.replace-secret ];
       wants = [ "network-online.target" ];
       startAt = cfg.interval;
       serviceConfig = {
         ExecStartPre =
           let
+            isSecret = v: isAttrs v && v ? _secret && isString v._secret;
             geoipupdateKeyValue = lib.generators.toKeyValue {
               mkKeyValue = lib.flip lib.generators.mkKeyValueDefault " " rec {
-                mkValueString = v: with builtins;
+                mkValueString = v:
                   if isInt           v then toString v
                   else if isString   v then v
                   else if true  ==   v then "1"
                   else if false ==   v then "0"
                   else if isList     v then lib.concatMapStringsSep " " mkValueString v
+                  else if isSecret   v then hashString "sha256" v._secret
                   else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
               };
             };
+            secretPaths = lib.catAttrs "_secret" (lib.collect isSecret cfg.settings);
+            mkSecretReplacement = file: ''
+              replace-secret ${lib.escapeShellArgs [ (hashString "sha256" file) file "/run/geoipupdate/GeoIP.conf" ]}
+            '';
+            secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
 
             geoipupdateConf = pkgs.writeText "geoipupdate.conf" (geoipupdateKeyValue cfg.settings);
 
             script = ''
+              set -o errexit -o pipefail -o nounset -o errtrace
+              shopt -s inherit_errexit
+
               chown geoip "${cfg.settings.DatabaseDirectory}"
 
               cp ${geoipupdateConf} /run/geoipupdate/GeoIP.conf
-              ${pkgs.replace-secret}/bin/replace-secret '${cfg.settings.LicenseKey}' \
-                                                        '${cfg.settings.LicenseKey}' \
-                                                        /run/geoipupdate/GeoIP.conf
+              ${secretReplacements}
             '';
           in
             "+${pkgs.writeShellScript "start-pre-full-privileges" script}";
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index 24eefb7bf302c..0b8bd08a22bc5 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -13,6 +13,22 @@ let
                       else
                         pkgs.postgresql_12;
 
+  # Git 2.36.1 seemingly contains a commit-graph related bug which is
+  # easily triggered through GitLab, so we downgrade it to 2.35.x
+  # until this issue is solved. See
+  # https://gitlab.com/gitlab-org/gitlab/-/issues/360783#note_992870101.
+  gitPackage =
+    let
+      version = "2.35.3";
+    in
+      pkgs.git.overrideAttrs (oldAttrs: rec {
+        inherit version;
+        src = pkgs.fetchurl {
+          url = "https://www.kernel.org/pub/software/scm/git/git-${version}.tar.xz";
+          sha256 = "sha256-FenbT5vy7Z//MMtioAxcfAkBAV9asEjNtOiwTd7gD6I=";
+        };
+      });
+
   gitlabSocket = "${cfg.statePath}/tmp/sockets/gitlab.socket";
   gitalySocket = "${cfg.statePath}/tmp/sockets/gitaly.socket";
   pathUrlQuote = url: replaceStrings ["/"] ["%2F"] url;
@@ -41,7 +57,7 @@ let
     prometheus_listen_addr = "localhost:9236"
 
     [git]
-    bin_path = "${pkgs.git}/bin/git"
+    bin_path = "${gitPackage}/bin/git"
 
     [gitaly-ruby]
     dir = "${cfg.packages.gitaly.ruby}"
@@ -137,7 +153,7 @@ let
       };
       workhorse.secret_file = "${cfg.statePath}/.gitlab_workhorse_secret";
       gitlab_kas.secret_file = "${cfg.statePath}/.gitlab_kas_secret";
-      git.bin_path = "git";
+      git.bin_path = "${gitPackage}/bin/git";
       monitoring = {
         ip_whitelist = [ "127.0.0.0/8" "::1/128" ];
         sidekiq_exporter = {
@@ -1275,7 +1291,7 @@ in {
       });
       path = with pkgs; [
         postgresqlPackage
-        git
+        gitPackage
         ruby
         openssh
         nodejs
@@ -1306,7 +1322,7 @@ in {
       path = with pkgs; [
         openssh
         procps  # See https://gitlab.com/gitlab-org/gitaly/issues/1562
-        git
+        gitPackage
         cfg.packages.gitaly.rubyEnv
         cfg.packages.gitaly.rubyEnv.wrappedRuby
         gzip
@@ -1351,7 +1367,7 @@ in {
       partOf = [ "gitlab.target" ];
       path = with pkgs; [
         exiftool
-        git
+        gitPackage
         gnutar
         gzip
         openssh
@@ -1412,7 +1428,7 @@ in {
       environment = gitlabEnv;
       path = with pkgs; [
         postgresqlPackage
-        git
+        gitPackage
         openssh
         nodejs
         procps
diff --git a/nixos/modules/services/misc/gollum.nix b/nixos/modules/services/misc/gollum.nix
index 354278fad226b..5a5f488dc565b 100644
--- a/nixos/modules/services/misc/gollum.nix
+++ b/nixos/modules/services/misc/gollum.nix
@@ -47,7 +47,7 @@ in
     user-icons = mkOption {
       type = types.nullOr (types.enum [ "gravatar" "identicon" ]);
       default = null;
-      description = "User icons for history view";
+      description = "Enable specific user icons for history view";
     };
 
     emoji = mkOption {
@@ -68,6 +68,12 @@ in
       description = "Disable editing pages";
     };
 
+    local-time = mkOption {
+      type = types.bool;
+      default = false;
+      description = "Use the browser's local timezone instead of the server's for displaying dates.";
+    };
+
     branch = mkOption {
       type = types.str;
       default = "master";
@@ -123,6 +129,7 @@ in
             ${optionalString cfg.emoji "--emoji"} \
             ${optionalString cfg.h1-title "--h1-title"} \
             ${optionalString cfg.no-edit "--no-edit"} \
+            ${optionalString cfg.local-time "--local-time"} \
             ${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
             ${optionalString (cfg.user-icons != null) "--user-icons ${cfg.user-icons}"} \
             ${cfg.stateDir}
diff --git a/nixos/modules/services/misc/paperless.nix b/nixos/modules/services/misc/paperless.nix
index bfaf842fb464f..17cd555d7e1bd 100644
--- a/nixos/modules/services/misc/paperless.nix
+++ b/nixos/modules/services/misc/paperless.nix
@@ -83,7 +83,7 @@ let
   };
 in
 {
-  meta.maintainers = with maintainers; [ earvstedt Flakebi ];
+  meta.maintainers = with maintainers; [ erikarvstedt Flakebi ];
 
   imports = [
     (mkRenamedOptionModule [ "services" "paperless-ng" ] [ "services" "paperless" ])
diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/radarr.nix
index 74444e24043f9..826d59da0af14 100644
--- a/nixos/modules/services/misc/radarr.nix
+++ b/nixos/modules/services/misc/radarr.nix
@@ -11,6 +11,14 @@ in
     services.radarr = {
       enable = mkEnableOption "Radarr";
 
+      package = mkOption {
+        description = "Radarr package to use";
+        default = pkgs.radarr;
+        defaultText = literalExpression "pkgs.radarr";
+        example = literalExpression "pkgs.radarr";
+        type = types.package;
+      };
+
       dataDir = mkOption {
         type = types.str;
         default = "/var/lib/radarr/.config/Radarr";
@@ -51,7 +59,7 @@ in
         Type = "simple";
         User = cfg.user;
         Group = cfg.group;
-        ExecStart = "${pkgs.radarr}/bin/Radarr -nobrowser -data='${cfg.dataDir}'";
+        ExecStart = "${cfg.package}/bin/Radarr -nobrowser -data='${cfg.dataDir}'";
         Restart = "on-failure";
       };
     };
diff --git a/nixos/modules/services/monitoring/grafana-agent.nix b/nixos/modules/services/monitoring/grafana-agent.nix
new file mode 100644
index 0000000000000..bbeda18464707
--- /dev/null
+++ b/nixos/modules/services/monitoring/grafana-agent.nix
@@ -0,0 +1,143 @@
+{ lib, pkgs, config, generators, ... }:
+with lib;
+let
+  cfg = config.services.grafana-agent;
+  settingsFormat = pkgs.formats.yaml { };
+  configFile = settingsFormat.generate "grafana-agent.yaml" cfg.settings;
+in
+{
+  meta = {
+    maintainers = with maintainers; [ flokli zimbatm ];
+  };
+
+  options.services.grafana-agent = {
+    enable = mkEnableOption "grafana-agent";
+
+    package = mkOption {
+      type = types.package;
+      default = pkgs.grafana-agent;
+      defaultText = "pkgs.grafana-agent";
+      description = "The grafana-agent package to use.";
+    };
+
+    credentials = mkOption {
+      description = ''
+        Credentials to load at service startup. Keys that are UPPER_SNAKE will be loaded as env vars. Values are absolute paths to the credentials.
+      '';
+      type = types.attrsOf types.str;
+      default = { };
+
+      example = {
+        logs_remote_write_password = "/run/keys/grafana_agent_logs_remote_write_password";
+        LOGS_REMOTE_WRITE_URL = "/run/keys/grafana_agent_logs_remote_write_url";
+        LOGS_REMOTE_WRITE_USERNAME = "/run/keys/grafana_agent_logs_remote_write_username";
+        metrics_remote_write_password = "/run/keys/grafana_agent_metrics_remote_write_password";
+        METRICS_REMOTE_WRITE_URL = "/run/keys/grafana_agent_metrics_remote_write_url";
+        METRICS_REMOTE_WRITE_USERNAME = "/run/keys/grafana_agent_metrics_remote_write_username";
+      };
+    };
+
+    settings = mkOption {
+      description = ''
+        Configuration for <package>grafana-agent</package>.
+
+        See https://grafana.com/docs/agent/latest/configuration/
+      '';
+
+      type = types.submodule {
+        freeformType = settingsFormat.type;
+      };
+
+      default = {
+        metrics = {
+          wal_directory = "\${STATE_DIRECTORY}";
+          global.scrape_interval = "5s";
+        };
+        integrations = {
+          agent.enabled = true;
+          agent.scrape_integration = true;
+          node_exporter.enabled = true;
+          replace_instance_label = true;
+        };
+      };
+
+      example = {
+        metrics.global.remote_write = [{
+          url = "\${METRICS_REMOTE_WRITE_URL}";
+          basic_auth.username = "\${METRICS_REMOTE_WRITE_USERNAME}";
+          basic_auth.password_file = "\${CREDENTIALS_DIRECTORY}/metrics_remote_write_password";
+        }];
+        logs.configs = [{
+          name = "default";
+          scrape_configs = [
+            {
+              job_name = "journal";
+              journal = {
+                max_age = "12h";
+                labels.job = "systemd-journal";
+              };
+              relabel_configs = [
+                {
+                  source_labels = [ "__journal__systemd_unit" ];
+                  target_label = "systemd_unit";
+                }
+                {
+                  source_labels = [ "__journal__hostname" ];
+                  target_label = "nodename";
+                }
+                {
+                  source_labels = [ "__journal_syslog_identifier" ];
+                  target_label = "syslog_identifier";
+                }
+              ];
+            }
+          ];
+          positions.filename = "\${STATE_DIRECTORY}/loki_positions.yaml";
+          clients = [{
+            url = "\${LOGS_REMOTE_WRITE_URL}";
+            basic_auth.username = "\${LOGS_REMOTE_WRITE_USERNAME}";
+            basic_auth.password_file = "\${CREDENTIALS_DIRECTORY}/logs_remote_write_password";
+          }];
+        }];
+      };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.grafana-agent = {
+      wantedBy = [ "multi-user.target" ];
+      script = ''
+        set -euo pipefail
+        shopt -u nullglob
+
+        # Load all credentials into env if they are in UPPER_SNAKE form.
+        if [[ -n "''${CREDENTIALS_DIRECTORY:-}" ]]; then
+          for file in "$CREDENTIALS_DIRECTORY"/*; do
+            key=$(basename "$file")
+            if [[ $key =~ ^[A-Z0-9_]+$ ]]; then
+              echo "Environ $key"
+              export "$key=$(< "$file")"
+            fi
+          done
+        fi
+
+        # We can't use Environment=HOSTNAME=%H, as it doesn't include the domain part.
+        export HOSTNAME=$(< /proc/sys/kernel/hostname)
+
+        exec ${cfg.package}/bin/agent -config.expand-env -config.file ${configFile}
+      '';
+      serviceConfig = {
+        Restart = "always";
+        DynamicUser = true;
+        RestartSec = 2;
+        SupplementaryGroups = [
+          # allow to read the systemd journal for loki log forwarding
+          "systemd-journal"
+        ];
+        StateDirectory = "grafana-agent";
+        LoadCredential = lib.mapAttrsToList (key: value: "${key}:${value}") cfg.credentials;
+        Type = "simple";
+      };
+    };
+  };
+}
diff --git a/nixos/modules/services/monitoring/parsedmarc.nix b/nixos/modules/services/monitoring/parsedmarc.nix
index ec71365ba3c1c..efc7f69be7d64 100644
--- a/nixos/modules/services/monitoring/parsedmarc.nix
+++ b/nixos/modules/services/monitoring/parsedmarc.nix
@@ -3,7 +3,19 @@
 let
   cfg = config.services.parsedmarc;
   opt = options.services.parsedmarc;
-  ini = pkgs.formats.ini {};
+  isSecret = v: isAttrs v && v ? _secret && isString v._secret;
+  ini = pkgs.formats.ini {
+    mkKeyValue = lib.flip lib.generators.mkKeyValueDefault "=" rec {
+      mkValueString = v:
+        if isInt           v then toString v
+        else if isString   v then v
+        else if true  ==   v then "True"
+        else if false ==   v then "False"
+        else if isSecret   v then hashString "sha256" v._secret
+        else throw "unsupported type ${typeOf v}: ${(lib.generators.toPretty {}) v}";
+    };
+  };
+  inherit (builtins) elem isAttrs isString isInt isList typeOf hashString;
 in
 {
   options.services.parsedmarc = {
@@ -107,11 +119,35 @@ in
     };
 
     settings = lib.mkOption {
+      example = lib.literalExpression ''
+        {
+          imap = {
+            host = "imap.example.com";
+            user = "alice@example.com";
+            password = { _secret = "/run/keys/imap_password" };
+            watch = true;
+          };
+          splunk_hec = {
+            url = "https://splunkhec.example.com";
+            token = { _secret = "/run/keys/splunk_token" };
+            index = "email";
+          };
+        }
+      '';
       description = ''
         Configuration parameters to set in
         <filename>parsedmarc.ini</filename>. For a full list of
         available parameters, see
         <link xlink:href="https://domainaware.github.io/parsedmarc/#configuration-file" />.
+
+        Settings containing secret data should be set to an attribute
+        set containing the attribute <literal>_secret</literal> - a
+        string pointing to a file containing the value the option
+        should be set to. See the example to get a better picture of
+        this: in the resulting <filename>parsedmarc.ini</filename>
+        file, the <literal>splunk_hec.token</literal> key will be set
+        to the contents of the
+        <filename>/run/keys/splunk_token</filename> file.
       '';
 
       type = lib.types.submodule {
@@ -170,11 +206,18 @@ in
             };
 
             password = lib.mkOption {
-              type = with lib.types; nullOr path;
+              type = with lib.types; nullOr (either path (attrsOf path));
               default = null;
               description = ''
-                The path to a file containing the IMAP server password.
+                The IMAP server password.
+
+                Always handled as a secret whether the value is
+                wrapped in a <literal>{ _secret = ...; }</literal>
+                attrset or not (refer to <xref
+                linkend="opt-services.parsedmarc.settings" /> for
+                details).
               '';
+              apply = x: if isAttrs x || x == null then x else { _secret = x; };
             };
 
             watch = lib.mkOption {
@@ -228,11 +271,18 @@ in
             };
 
             password = lib.mkOption {
-              type = with lib.types; nullOr path;
+              type = with lib.types; nullOr (either path (attrsOf path));
               default = null;
               description = ''
-                The path to a file containing the SMTP server password.
+                The SMTP server password.
+
+                Always handled as a secret whether the value is
+                wrapped in a <literal>{ _secret = ...; }</literal>
+                attrset or not (refer to <xref
+                linkend="opt-services.parsedmarc.settings" /> for
+                details).
               '';
+              apply = x: if isAttrs x || x == null then x else { _secret = x; };
             };
 
             from = lib.mkOption {
@@ -274,12 +324,19 @@ in
             };
 
             password = lib.mkOption {
-              type = with lib.types; nullOr path;
+              type = with lib.types; nullOr (either path (attrsOf path));
               default = null;
               description = ''
-                The path to a file containing the password to use when
-                connecting to Elasticsearch, if required.
+                The password to use when connecting to Elasticsearch,
+                if required.
+
+                Always handled as a secret whether the value is
+                wrapped in a <literal>{ _secret = ...; }</literal>
+                attrset or not (refer to <xref
+                linkend="opt-services.parsedmarc.settings" /> for
+                details).
               '';
+              apply = x: if isAttrs x || x == null then x else { _secret = x; };
             };
 
             ssl = lib.mkOption {
@@ -299,63 +356,6 @@ in
               '';
             };
           };
-
-          kafka = {
-            hosts = lib.mkOption {
-              default = [];
-              type = with lib.types; listOf str;
-              apply = x: if x == [] then null else lib.concatStringsSep "," x;
-              description = ''
-                A list of Apache Kafka hosts to publish parsed reports
-                to.
-              '';
-            };
-
-            user = lib.mkOption {
-              type = with lib.types; nullOr str;
-              default = null;
-              description = ''
-                Username to use when connecting to Kafka, if
-                required.
-              '';
-            };
-
-            password = lib.mkOption {
-              type = with lib.types; nullOr path;
-              default = null;
-              description = ''
-                The path to a file containing the password to use when
-                connecting to Kafka, if required.
-              '';
-            };
-
-            ssl = lib.mkOption {
-              type = with lib.types; nullOr bool;
-              default = null;
-              description = ''
-                Whether to use an encrypted SSL/TLS connection.
-              '';
-            };
-
-            aggregate_topic = lib.mkOption {
-              type = with lib.types; nullOr str;
-              default = null;
-              example = "aggregate";
-              description = ''
-                The Kafka topic to publish aggregate reports on.
-              '';
-            };
-
-            forensic_topic = lib.mkOption {
-              type = with lib.types; nullOr str;
-              default = null;
-              example = "forensic";
-              description = ''
-                The Kafka topic to publish forensic reports on.
-              '';
-            };
-          };
-
         };
 
       };
@@ -404,21 +404,14 @@ in
         enable = cfg.provision.grafana.datasource || cfg.provision.grafana.dashboard;
         datasources =
           let
-            pkgVer = lib.getVersion config.services.elasticsearch.package;
-            esVersion =
-              if lib.versionOlder pkgVer "7" then
-                "60"
-              else if lib.versionOlder pkgVer "8" then
-                "70"
-              else
-                throw "When provisioning parsedmarc grafana datasources: unknown Elasticsearch version.";
+            esVersion = lib.getVersion config.services.elasticsearch.package;
           in
             lib.mkIf cfg.provision.grafana.datasource [
               {
                 name = "dmarc-ag";
                 type = "elasticsearch";
                 access = "proxy";
-                url = "localhost:9200";
+                url = "http://localhost:9200";
                 jsonData = {
                   timeField = "date_range";
                   inherit esVersion;
@@ -428,7 +421,7 @@ in
                 name = "dmarc-fo";
                 type = "elasticsearch";
                 access = "proxy";
-                url = "localhost:9200";
+                url = "http://localhost:9200";
                 jsonData = {
                   timeField = "date_range";
                   inherit esVersion;
@@ -467,12 +460,17 @@ in
         # lists, empty attrsets and null. This makes it possible to
         # list interesting options in `settings` without them always
         # ending up in the resulting config.
-        filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! builtins.elem v [ null [] {} ])) cfg.settings;
+        filteredConfig = lib.converge (lib.filterAttrsRecursive (_: v: ! elem v [ null [] {} ])) cfg.settings;
+
+        # Extract secrets (attributes set to an attrset with a
+        # "_secret" key) from the settings and generate the commands
+        # to run to perform the secret replacements.
+        secretPaths = lib.catAttrs "_secret" (lib.collect isSecret filteredConfig);
         parsedmarcConfig = ini.generate "parsedmarc.ini" filteredConfig;
-        mkSecretReplacement = file:
-          lib.optionalString (file != null) ''
-            replace-secret '${file}' '${file}' /run/parsedmarc/parsedmarc.ini
-          '';
+        mkSecretReplacement = file: ''
+          replace-secret ${lib.escapeShellArgs [ (hashString "sha256" file) file "/run/parsedmarc/parsedmarc.ini" ]}
+        '';
+        secretReplacements = lib.concatMapStrings mkSecretReplacement secretPaths;
       in
         {
           wantedBy = [ "multi-user.target" ];
@@ -487,10 +485,7 @@ in
                 umask u=rwx,g=,o=
                 cp ${parsedmarcConfig} /run/parsedmarc/parsedmarc.ini
                 chown parsedmarc:parsedmarc /run/parsedmarc/parsedmarc.ini
-                ${mkSecretReplacement cfg.settings.smtp.password}
-                ${mkSecretReplacement cfg.settings.imap.password}
-                ${mkSecretReplacement cfg.settings.elasticsearch.password}
-                ${mkSecretReplacement cfg.settings.kafka.password}
+                ${secretReplacements}
               '' + lib.optionalString cfg.provision.localMail.enable ''
                 openssl rand -hex 64 >/run/parsedmarc/dmarc_user_passwd
                 replace-secret '@imap-password@' '/run/parsedmarc/dmarc_user_passwd' /run/parsedmarc/parsedmarc.ini
diff --git a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
index 4d3c1fa267e5f..53509b7a385b4 100644
--- a/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
+++ b/nixos/modules/services/monitoring/prometheus/exporters/postfix.nix
@@ -74,11 +74,13 @@ in
     };
   };
   serviceOpts = {
+    after = mkIf cfg.systemd.enable [ cfg.systemd.unit ];
     serviceConfig = {
       DynamicUser = false;
       # By default, each prometheus exporter only gets AF_INET & AF_INET6,
       # but AF_UNIX is needed to read from the `showq`-socket.
       RestrictAddressFamilies = [ "AF_UNIX" ];
+      SupplementaryGroups = mkIf cfg.systemd.enable [ "systemd-journal" ];
       ExecStart = ''
         ${pkgs.prometheus-postfix-exporter}/bin/postfix_exporter \
           --web.listen-address ${cfg.listenAddress}:${toString cfg.port} \
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index 395b9788855ff..a5f8f55a682c9 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -257,7 +257,7 @@ in
       '' + optionalString cfg.autoMigrate ''
         ${pkgs.ipfs-migrator}/bin/fs-repo-migrations -to '${cfg.package.repoVersion}' -y
       '' + ''
-          ipfs --offline config profile apply ${profile}
+          ipfs --offline config profile apply ${profile} >/dev/null
         fi
       '' + optionalString cfg.autoMount ''
         ipfs --offline config Mounts.FuseAllowOther --json true
diff --git a/nixos/modules/services/networking/bitlbee.nix b/nixos/modules/services/networking/bitlbee.nix
index 8bf04e3a1a23c..f76cffc79bfa4 100644
--- a/nixos/modules/services/networking/bitlbee.nix
+++ b/nixos/modules/services/networking/bitlbee.nix
@@ -174,6 +174,7 @@ in
         serviceConfig = {
           DynamicUser = true;
           StateDirectory = "bitlbee";
+          ReadWritePaths = [ cfg.configDir ];
           ExecStart = "${bitlbeePkg}/sbin/bitlbee -F -n -c ${bitlbeeConfig}";
         };
       };
diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix
index 256d9457d3960..70c6725d1035c 100644
--- a/nixos/modules/services/networking/mosquitto.nix
+++ b/nixos/modules/services/networking/mosquitto.nix
@@ -54,10 +54,10 @@ let
       hashedPassword = mkOption {
         type = uniq (nullOr str);
         default = null;
-        description = ''
+        description = mdDoc ''
           Specifies the hashed password for the MQTT User.
-          To generate hashed password install <literal>mosquitto</literal>
-          package and use <literal>mosquitto_passwd</literal>.
+          To generate hashed password install `mosquitto`
+          package and use `mosquitto_passwd`.
         '';
       };
 
@@ -65,11 +65,11 @@ let
         type = uniq (nullOr types.path);
         example = "/path/to/file";
         default = null;
-        description = ''
+        description = mdDoc ''
           Specifies the path to a file containing the
           hashed password for the MQTT user.
-          To generate hashed password install <literal>mosquitto</literal>
-          package and use <literal>mosquitto_passwd</literal>.
+          To generate hashed password install `mosquitto`
+          package and use `mosquitto_passwd`.
         '';
       };
 
@@ -155,24 +155,24 @@ let
     options = {
       plugin = mkOption {
         type = path;
-        description = ''
-          Plugin path to load, should be a <literal>.so</literal> file.
+        description = mdDoc ''
+          Plugin path to load, should be a `.so` file.
         '';
       };
 
       denySpecialChars = mkOption {
         type = bool;
-        description = ''
-          Automatically disallow all clients using <literal>#</literal>
-          or <literal>+</literal> in their name/id.
+        description = mdDoc ''
+          Automatically disallow all clients using `#`
+          or `+` in their name/id.
         '';
         default = true;
       };
 
       options = mkOption {
         type = attrsOf optionType;
-        description = ''
-          Options for the auth plugin. Each key turns into a <literal>auth_opt_*</literal>
+        description = mdDoc ''
+          Options for the auth plugin. Each key turns into a `auth_opt_*`
            line in the config.
         '';
         default = {};
@@ -239,8 +239,8 @@ let
 
       address = mkOption {
         type = nullOr str;
-        description = ''
-          Address to listen on. Listen on <literal>0.0.0.0</literal>/<literal>::</literal>
+        description = mdDoc ''
+          Address to listen on. Listen on `0.0.0.0`/`::`
           when unset.
         '';
         default = null;
@@ -248,10 +248,10 @@ let
 
       authPlugins = mkOption {
         type = listOf authPluginOptions;
-        description = ''
+        description = mdDoc ''
           Authentication plugin to attach to this listener.
-          Refer to the <link xlink:href="https://mosquitto.org/man/mosquitto-conf-5.html">
-          mosquitto.conf documentation</link> for details on authentication plugins.
+          Refer to the [mosquitto.conf documentation](https://mosquitto.org/man/mosquitto-conf-5.html)
+          for details on authentication plugins.
         '';
         default = [];
       };
@@ -472,10 +472,10 @@ let
 
     includeDirs = mkOption {
       type = listOf path;
-      description = ''
+      description = mdDoc ''
         Directories to be scanned for further config files to include.
         Directories will processed in the order given,
-        <literal>*.conf</literal> files in the directory will be
+        `*.conf` files in the directory will be
         read in case-sensistive alphabetical order.
       '';
       default = [];
diff --git a/nixos/modules/services/networking/prosody.nix b/nixos/modules/services/networking/prosody.nix
index 7920e4b263457..9e8db04e62241 100644
--- a/nixos/modules/services/networking/prosody.nix
+++ b/nixos/modules/services/networking/prosody.nix
@@ -511,8 +511,13 @@ in
 
       dataDir = mkOption {
         type = types.path;
-        description = "Directory where Prosody stores its data";
         default = "/var/lib/prosody";
+        description = ''
+          The prosody home directory used to store all data. If left as the default value
+          this directory will automatically be created before the prosody server starts, otherwise
+          you are responsible for ensuring the directory exists with appropriate ownership
+          and permissions.
+        '';
       };
 
       disco_items = mkOption {
@@ -524,13 +529,29 @@ in
       user = mkOption {
         type = types.str;
         default = "prosody";
-        description = "User account under which prosody runs.";
+        description = ''
+          User account under which prosody runs.
+
+          <note><para>
+          If left as the default value this user will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the user exists before the prosody service starts.
+          </para></note>
+        '';
       };
 
       group = mkOption {
         type = types.str;
         default = "prosody";
-        description = "Group account under which prosody runs.";
+        description = ''
+          Group account under which prosody runs.
+
+          <note><para>
+          If left as the default value this group will automatically be created
+          on system activation, otherwise you are responsible for
+          ensuring the group exists before the prosody service starts.
+          </para></note>
+        '';
       };
 
       allowRegistration = mkOption {
@@ -839,9 +860,8 @@ in
     users.users.prosody = mkIf (cfg.user == "prosody") {
       uid = config.ids.uids.prosody;
       description = "Prosody user";
-      createHome = true;
       inherit (cfg) group;
-      home = "${cfg.dataDir}";
+      home = cfg.dataDir;
     };
 
     users.groups.prosody = mkIf (cfg.group == "prosody") {
@@ -854,28 +874,33 @@ in
       wants = [ "network-online.target" ];
       wantedBy = [ "multi-user.target" ];
       restartTriggers = [ config.environment.etc."prosody/prosody.cfg.lua".source ];
-      serviceConfig = {
-        User = cfg.user;
-        Group = cfg.group;
-        Type = "forking";
-        RuntimeDirectory = [ "prosody" ];
-        PIDFile = "/run/prosody/prosody.pid";
-        ExecStart = "${cfg.package}/bin/prosodyctl start";
-        ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
-
-        MemoryDenyWriteExecute = true;
-        PrivateDevices = true;
-        PrivateMounts = true;
-        PrivateTmp = true;
-        ProtectControlGroups = true;
-        ProtectHome = true;
-        ProtectHostname = true;
-        ProtectKernelModules = true;
-        ProtectKernelTunables = true;
-        RestrictNamespaces = true;
-        RestrictRealtime = true;
-        RestrictSUIDSGID = true;
-      };
+      serviceConfig = mkMerge [
+        {
+          User = cfg.user;
+          Group = cfg.group;
+          Type = "forking";
+          RuntimeDirectory = [ "prosody" ];
+          PIDFile = "/run/prosody/prosody.pid";
+          ExecStart = "${cfg.package}/bin/prosodyctl start";
+          ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
+
+          MemoryDenyWriteExecute = true;
+          PrivateDevices = true;
+          PrivateMounts = true;
+          PrivateTmp = true;
+          ProtectControlGroups = true;
+          ProtectHome = true;
+          ProtectHostname = true;
+          ProtectKernelModules = true;
+          ProtectKernelTunables = true;
+          RestrictNamespaces = true;
+          RestrictRealtime = true;
+          RestrictSUIDSGID = true;
+        }
+        (mkIf (cfg.dataDir == "/var/lib/prosody") {
+          StateDirectory = "prosody";
+        })
+      ];
     };
 
   };
diff --git a/nixos/modules/services/networking/routedns.nix b/nixos/modules/services/networking/routedns.nix
new file mode 100644
index 0000000000000..e0f5eedd2c8e5
--- /dev/null
+++ b/nixos/modules/services/networking/routedns.nix
@@ -0,0 +1,84 @@
+{ config
+, lib
+, pkgs
+, ...
+}:
+
+with lib;
+
+let
+  cfg = config.services.routedns;
+  settingsFormat = pkgs.formats.toml { };
+in
+{
+  options.services.routedns = {
+    enable = mkEnableOption "RouteDNS - DNS stub resolver, proxy and router";
+
+    settings = mkOption {
+      type = settingsFormat.type;
+      example = literalExpression ''
+        {
+          resolvers.cloudflare-dot = {
+            address = "1.1.1.1:853";
+            protocol = "dot";
+          };
+          groups.cloudflare-cached = {
+            type = "cache";
+            resolvers = ["cloudflare-dot"];
+          };
+          listeners.local-udp = {
+            address = "127.0.0.1:53";
+            protocol = "udp";
+            resolver = "cloudflare-cached";
+          };
+          listeners.local-tcp = {
+            address = "127.0.0.1:53";
+            protocol = "tcp";
+            resolver = "cloudflare-cached";
+          };
+        }
+      '';
+      description = ''
+        Configuration for RouteDNS, see <link xlink:href="https://github.com/folbricht/routedns/blob/master/doc/configuration.md"/>
+        for more information.
+      '';
+    };
+
+    configFile = mkOption {
+      default = settingsFormat.generate "routedns.toml" cfg.settings;
+      defaultText = "A RouteDNS configuration file automatically generated by values from services.routedns.*";
+      type = types.path;
+      example = literalExpression ''"''${pkgs.routedns}/cmd/routedns/example-config/use-case-1.toml"'';
+      description = "Path to RouteDNS TOML configuration file.";
+    };
+
+    package = mkOption {
+      default = pkgs.routedns;
+      defaultText = literalExpression "pkgs.routedns";
+      type = types.package;
+      description = "RouteDNS package to use.";
+    };
+  };
+
+  config = mkIf cfg.enable {
+    systemd.services.routedns = {
+      description = "RouteDNS - DNS stub resolver, proxy and router";
+      after = [ "network.target" ]; # in case a bootstrap resolver is used, this might fail a few times until the respective server is actually reachable
+      wantedBy = [ "multi-user.target" ];
+      wants = [ "network.target" ];
+      startLimitIntervalSec = 30;
+      startLimitBurst = 5;
+      serviceConfig = {
+        Restart = "on-failure";
+        RestartSec = "5s";
+        LimitNPROC = 512;
+        LimitNOFILE = 1048576;
+        DynamicUser = true;
+        AmbientCapabilities = "CAP_NET_BIND_SERVICE";
+        NoNewPrivileges = true;
+        ExecStart = "${getBin cfg.package}/bin/routedns -l 4 ${cfg.configFile}";
+      };
+    };
+  };
+  meta.maintainers = with maintainers; [ jsimonetti ];
+}
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 3a3d4c80ecff4..6a90f28dc5f7b 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -72,39 +72,39 @@ in {
       cert = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = ''
-          Path to the <literal>cert.pem</literal> file, which will be copied into Syncthing's
-          <link linkend="opt-services.syncthing.configDir">configDir</link>.
+        description = mdDoc ''
+          Path to the `cert.pem` file, which will be copied into Syncthing's
+          [configDir](#opt-services.syncthing.configDir).
         '';
       };
 
       key = mkOption {
         type = types.nullOr types.str;
         default = null;
-        description = ''
-          Path to the <literal>key.pem</literal> file, which will be copied into Syncthing's
-          <link linkend="opt-services.syncthing.configDir">configDir</link>.
+        description = mdDoc ''
+          Path to the `key.pem` file, which will be copied into Syncthing's
+          [configDir](#opt-services.syncthing.configDir).
         '';
       };
 
       overrideDevices = mkOption {
         type = types.bool;
         default = true;
-        description = ''
+        description = mdDoc ''
           Whether to delete the devices which are not configured via the
-          <link linkend="opt-services.syncthing.devices">devices</link> option.
-          If set to <literal>false</literal>, devices added via the web
+          [devices](#opt-services.syncthing.devices) option.
+          If set to `false`, devices added via the web
           interface will persist and will have to be deleted manually.
         '';
       };
 
       devices = mkOption {
         default = {};
-        description = ''
+        description = mdDoc ''
           Peers/devices which Syncthing should communicate with.
 
           Note that you can still add devices manually, but those changes
-          will be reverted on restart if <link linkend="opt-services.syncthing.overrideDevices">overrideDevices</link>
+          will be reverted on restart if [overrideDevices](#opt-services.syncthing.overrideDevices)
           is enabled.
         '';
         example = {
@@ -135,27 +135,27 @@ in {
 
             id = mkOption {
               type = types.str;
-              description = ''
-                The device ID. See <link xlink:href="https://docs.syncthing.net/dev/device-ids.html"/>.
+              description = mdDoc ''
+                The device ID. See <https://docs.syncthing.net/dev/device-ids.html>.
               '';
             };
 
             introducer = mkOption {
               type = types.bool;
               default = false;
-              description = ''
+              description = mdDoc ''
                 Whether the device should act as an introducer and be allowed
                 to add folders on this computer.
-                See <link xlink:href="https://docs.syncthing.net/users/introducer.html"/>.
+                See <https://docs.syncthing.net/users/introducer.html>.
               '';
             };
 
             autoAcceptFolders = mkOption {
               type = types.bool;
               default = false;
-              description = ''
+              description = mdDoc ''
                 Automatically create or share folders that this device advertises at the default path.
-                See <link xlink:href="https://docs.syncthing.net/users/config.html?highlight=autoaccept#config-file-format"/>.
+                See <https://docs.syncthing.net/users/config.html?highlight=autoaccept#config-file-format>.
               '';
             };
 
@@ -166,21 +166,21 @@ in {
       overrideFolders = mkOption {
         type = types.bool;
         default = true;
-        description = ''
+        description = mdDoc ''
           Whether to delete the folders which are not configured via the
-          <link linkend="opt-services.syncthing.folders">folders</link> option.
-          If set to <literal>false</literal>, folders added via the web
+          [folders](#opt-services.syncthing.folders) option.
+          If set to `false`, folders added via the web
           interface will persist and will have to be deleted manually.
         '';
       };
 
       folders = mkOption {
         default = {};
-        description = ''
+        description = mdDoc ''
           Folders which should be shared by Syncthing.
 
           Note that you can still add devices manually, but those changes
-          will be reverted on restart if <link linkend="opt-services.syncthing.overrideDevices">overrideDevices</link>
+          will be reverted on restart if [overrideDevices](#opt-services.syncthing.overrideDevices)
           is enabled.
         '';
         example = literalExpression ''
@@ -231,18 +231,18 @@ in {
             devices = mkOption {
               type = types.listOf types.str;
               default = [];
-              description = ''
+              description = mdDoc ''
                 The devices this folder should be shared with. Each device must
-                be defined in the <link linkend="opt-services.syncthing.devices">devices</link> option.
+                be defined in the [devices](#opt-services.syncthing.devices) option.
               '';
             };
 
             versioning = mkOption {
               default = null;
-              description = ''
+              description = mdDoc ''
                 How to keep changed/deleted files with Syncthing.
                 There are 4 different types of versioning with different parameters.
-                See <link xlink:href="https://docs.syncthing.net/users/versioning.html"/>.
+                See <https://docs.syncthing.net/users/versioning.html>.
               '';
               example = literalExpression ''
                 [
@@ -284,17 +284,17 @@ in {
                 options = {
                   type = mkOption {
                     type = enum [ "external" "simple" "staggered" "trashcan" ];
-                    description = ''
+                    description = mdDoc ''
                       The type of versioning.
-                      See <link xlink:href="https://docs.syncthing.net/users/versioning.html"/>.
+                      See <https://docs.syncthing.net/users/versioning.html>.
                     '';
                   };
                   params = mkOption {
                     type = attrsOf (either str path);
-                    description = ''
+                    description = mdDoc ''
                       The parameters for versioning. Structure depends on
-                      <link linkend="opt-services.syncthing.folders._name_.versioning.type">versioning.type</link>.
-                      See <link xlink:href="https://docs.syncthing.net/users/versioning.html"/>.
+                      [versioning.type](#opt-services.syncthing.folders._name_.versioning.type).
+                      See <https://docs.syncthing.net/users/versioning.html>.
                     '';
                   };
                 };
@@ -345,9 +345,9 @@ in {
             ignoreDelete = mkOption {
               type = types.bool;
               default = false;
-              description = ''
+              description = mdDoc ''
                 Whether to skip deleting files that are deleted by peers.
-                See <link xlink:href="https://docs.syncthing.net/advanced/folder-ignoredelete.html"/>.
+                See <https://docs.syncthing.net/advanced/folder-ignoredelete.html>.
               '';
             };
           };
@@ -357,9 +357,9 @@ in {
       extraOptions = mkOption {
         type = types.addCheck (pkgs.formats.json {}).type isAttrs;
         default = {};
-        description = ''
+        description = mdDoc ''
           Extra configuration options for Syncthing.
-          See <link xlink:href="https://docs.syncthing.net/users/config.html"/>.
+          See <https://docs.syncthing.net/users/config.html>.
         '';
         example = {
           options.localAnnounceEnabled = false;
@@ -387,9 +387,9 @@ in {
         type = types.str;
         default = defaultUser;
         example = "yourUser";
-        description = ''
+        description = mdDoc ''
           The user to run Syncthing as.
-          By default, a user named <literal>${defaultUser}</literal> will be created.
+          By default, a user named `${defaultUser}` will be created.
         '';
       };
 
@@ -397,9 +397,9 @@ in {
         type = types.str;
         default = defaultGroup;
         example = "yourGroup";
-        description = ''
+        description = mdDoc ''
           The group to run Syncthing under.
-          By default, a group named <literal>${defaultGroup}</literal> will be created.
+          By default, a group named `${defaultGroup}` will be created.
         '';
       };
 
@@ -407,11 +407,11 @@ in {
         type = with types; nullOr str;
         default = null;
         example = "socks5://address.com:1234";
-        description = ''
+        description = mdDoc ''
           Overwrites the all_proxy environment variable for the Syncthing process to
           the given value. This is normally used to let Syncthing connect
           through a SOCKS5 proxy server.
-          See <link xlink:href="https://docs.syncthing.net/users/proxying.html"/>.
+          See <https://docs.syncthing.net/users/proxying.html>.
         '';
       };
 
@@ -432,25 +432,13 @@ in {
           The path where the settings and keys will exist.
         '';
         default = cfg.dataDir + optionalString cond "/.config/syncthing";
-        defaultText = literalDocBook ''
-          <variablelist>
-            <varlistentry>
-              <term><literal>stateVersion >= 19.03</literal></term>
-              <listitem>
-                <programlisting>
-                  config.${opt.dataDir} + "/.config/syncthing"
-                </programlisting>
-              </listitem>
-            </varlistentry>
-            <varlistentry>
-              <term>otherwise</term>
-              <listitem>
-                <programlisting>
-                  config.${opt.dataDir}
-                </programlisting>
-              </listitem>
-            </varlistentry>
-          </variablelist>
+        defaultText = literalMD ''
+          * if `stateVersion >= 19.03`:
+
+                config.${opt.dataDir} + "/.config/syncthing"
+          * otherwise:
+
+                config.${opt.dataDir}
         '';
       };
 
diff --git a/nixos/modules/services/networking/tailscale.nix b/nixos/modules/services/networking/tailscale.nix
index 0133874d0e0d0..f84252289abff 100644
--- a/nixos/modules/services/networking/tailscale.nix
+++ b/nixos/modules/services/networking/tailscale.nix
@@ -6,6 +6,7 @@ let
   cfg = config.services.tailscale;
   firewallOn = config.networking.firewall.enable;
   rpfMode = config.networking.firewall.checkReversePath;
+  isNetworkd = config.networking.useNetworkd;
   rpfIsStrict = rpfMode == true || rpfMode == "strict";
 in {
   meta.maintainers = with maintainers; [ danderson mbaillie twitchyliquid64 ];
@@ -69,5 +70,17 @@ in {
       # linux distros.
       stopIfChanged = false;
     };
+
+    networking.dhcpcd.denyInterfaces = [ cfg.interfaceName ];
+
+    systemd.network.networks."50-tailscale" = mkIf isNetworkd {
+      matchConfig = {
+        Name = cfg.interfaceName;
+      };
+      linkConfig = {
+        Unmanaged = true;
+        ActivationPolicy = "manual";
+      };
+    };
   };
 }
diff --git a/nixos/modules/services/networking/trickster.nix b/nixos/modules/services/networking/trickster.nix
index e48bba8fa587f..ac260a14d9a2d 100644
--- a/nixos/modules/services/networking/trickster.nix
+++ b/nixos/modules/services/networking/trickster.nix
@@ -6,6 +6,9 @@ let
   cfg = config.services.trickster;
 in
 {
+  imports = [
+    (mkRenamedOptionModule [ "services" "trickster" "origin" ] [ "services" "trickster" "origin-url" ])
+  ];
 
   options = {
     services.trickster = {
@@ -58,11 +61,19 @@ in
         '';
       };
 
-      origin = mkOption {
+      origin-type = mkOption {
+        type = types.enum [ "prometheus" "influxdb" ];
+        default = "prometheus";
+        description = ''
+          Type of origin (prometheus, influxdb)
+        '';
+      };
+
+      origin-url = mkOption {
         type = types.str;
         default = "http://prometheus:9090";
         description = ''
-          URL to the Prometheus Origin. Enter it like you would in grafana, e.g., http://prometheus:9090 (default http://prometheus:9090).
+          URL to the Origin. Enter it like you would in grafana, e.g., http://prometheus:9090 (default http://prometheus:9090).
         '';
       };
 
@@ -87,7 +98,7 @@ in
 
   config = mkIf cfg.enable {
     systemd.services.trickster = {
-      description = "Dashboard Accelerator for Prometheus";
+      description = "Reverse proxy cache and time series dashboard accelerator";
       after = [ "network.target" ];
       wantedBy = [ "multi-user.target" ];
       serviceConfig = {
@@ -96,7 +107,8 @@ in
           ${cfg.package}/bin/trickster \
           -log-level ${cfg.log-level} \
           -metrics-port ${toString cfg.metrics-port} \
-          -origin ${cfg.origin} \
+          -origin-type ${cfg.origin-type} \
+          -origin-url ${cfg.origin-url} \
           -proxy-port ${toString cfg.proxy-port} \
           ${optionalString (cfg.configFile != null) "-config ${cfg.configFile}"} \
           ${optionalString (cfg.profiler-port != null) "-profiler-port ${cfg.profiler-port}"} \
diff --git a/nixos/modules/services/security/vaultwarden/default.nix b/nixos/modules/services/security/vaultwarden/default.nix
index 8277f493639c2..756e0ee93b219 100644
--- a/nixos/modules/services/security/vaultwarden/default.nix
+++ b/nixos/modules/services/security/vaultwarden/default.nix
@@ -62,20 +62,52 @@ in {
       default = {};
       example = literalExpression ''
         {
-          domain = "https://bw.domain.tld:8443";
-          signupsAllowed = true;
-          rocketPort = 8222;
-          rocketLog = "critical";
+          DOMAIN = "https://bitwarden.example.com";
+          SIGNUPS_ALLOWED = false;
+
+          # Vaultwarden currently recommends running behind a reverse proxy
+          # (nginx or similar) for TLS termination, see
+          # https://github.com/dani-garcia/vaultwarden/wiki/Hardening-Guide#reverse-proxying
+          # > you should avoid enabling HTTPS via vaultwarden's built-in Rocket TLS support,
+          # > especially if your instance is publicly accessible.
+          #
+          # A suitable NixOS nginx reverse proxy example config might be:
+          #
+          #     services.nginx.virtualHosts."bitwarden.example.com" = {
+          #       enableACME = true;
+          #       forceSSL = true;
+          #       locations."/" = {
+          #         proxyPass = "http://127.0.0.1:''${toString config.services.vaultwarden.config.ROCKET_PORT}";
+          #       };
+          #     };
+          ROCKET_ADDRESS = "127.0.0.1";
+          ROCKET_PORT = 8222;
+
+          ROCKET_LOG = "critical";
+
+          # This example assumes a mailserver running on localhost,
+          # thus without transport encryption.
+          # If you use an external mail server, follow:
+          #   https://github.com/dani-garcia/vaultwarden/wiki/SMTP-configuration
+          SMTP_HOST = "127.0.0.1";
+          SMTP_PORT = 25;
+          SMTP_SSL = false;
+
+          SMTP_FROM = "admin@bitwarden.example.com";
+          SMTP_FROM_NAME = "example.com Bitwarden server";
         }
       '';
       description = ''
         The configuration of vaultwarden is done through environment variables,
-        therefore the names are converted from camel case (e.g. disable2FARemember)
-        to upper case snake case (e.g. DISABLE_2FA_REMEMBER).
+        therefore it is recommended to use upper snake case (e.g. <envar>DISABLE_2FA_REMEMBER</envar>).
+
+        However, camel case (e.g. <literal>disable2FARemember</literal>) is also supported:
+        The NixOS module will convert it automatically to
+        upper case snake case (e.g. <envar>DISABLE_2FA_REMEMBER</envar>).
         In this conversion digits (0-9) are handled just like upper case characters,
-        so foo2 would be converted to FOO_2.
-        Names already in this format remain unchanged, so FOO2 remains FOO2 if passed as such,
-        even though foo2 would have been converted to FOO_2.
+        so <literal>foo2</literal> would be converted to <envar>FOO_2</envar>.
+        Names already in this format remain unchanged, so <literal>FOO2</literal> remains <literal>FOO2</literal> if passed as such,
+        even though <literal>foo2</literal> would have been converted to <envar>FOO_2</envar>.
         This allows working around any potential future conflicting naming conventions.
 
         Based on the attributes passed to this config option an environment file will be generated
@@ -83,13 +115,16 @@ in {
 
         The available configuration options can be found in
         <link xlink:href="https://github.com/dani-garcia/vaultwarden/blob/${vaultwarden.version}/.env.template">the environment template file</link>.
+
+        See <xref linkend="opt-services.vaultwarden.environmentFile" /> for how
+        to set up access to the Admin UI to invite initial users.
       '';
     };
 
     environmentFile = mkOption {
       type = with types; nullOr path;
       default = null;
-      example = "/root/vaultwarden.env";
+      example = "/var/lib/vaultwarden.env";
       description = ''
         Additional environment file as defined in <citerefentry>
         <refentrytitle>systemd.exec</refentrytitle><manvolnum>5</manvolnum>
@@ -100,6 +135,23 @@ in {
 
         Note that this file needs to be available on the host on which
         <literal>vaultwarden</literal> is running.
+
+        As a concrete example, to make the Admin UI available
+        (from which new users can be invited initially),
+        the secret <envar>ADMIN_TOKEN</envar> needs to be defined as described
+        <link xlink:href="https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page">here</link>.
+        Setting <literal>environmentFile</literal> to <literal>/var/lib/vaultwarden.env</literal>
+        and ensuring permissions with e.g.
+        <literal>chown vaultwarden:vaultwarden /var/lib/vaultwarden.env</literal>
+        (the <literal>vaultwarden</literal> user will only exist after activating with
+        <literal>enable = true;</literal> before this), we can set the contents of the file to have
+        contents such as:
+
+<programlisting>
+# Admin secret token, see
+# https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page
+ADMIN_TOKEN=...copy-paste a unique generated secret token here...
+</programlisting>
       '';
     };
 
diff --git a/nixos/modules/services/web-apps/nextcloud.nix b/nixos/modules/services/web-apps/nextcloud.nix
index e0aaafd463331..2130ec252d92c 100644
--- a/nixos/modules/services/web-apps/nextcloud.nix
+++ b/nixos/modules/services/web-apps/nextcloud.nix
@@ -89,7 +89,8 @@ in {
     };
     datadir = mkOption {
       type = types.str;
-      defaultText = "config.services.nextcloud.home";
+      default = config.services.nextcloud.home;
+      defaultText = literalExpression "config.services.nextcloud.home";
       description = ''
         Data storage path of nextcloud.  Will be <xref linkend="opt-services.nextcloud.home" /> by default.
         This folder will be populated with a config.php and data folder which contains the state of the instance (excl the database).";
@@ -629,8 +630,6 @@ in {
           else nextcloud24
         );
 
-      services.nextcloud.datadir = mkOptionDefault config.services.nextcloud.home;
-
       services.nextcloud.phpPackage =
         if versionOlder cfg.package.version "24" then pkgs.php80
         # FIXME: Use PHP 8.1 with Nextcloud 24 and higher, once issues like this one are fixed:
@@ -650,6 +649,7 @@ in {
 
     { systemd.timers.nextcloud-cron = {
         wantedBy = [ "timers.target" ];
+        after = [ "nextcloud-setup.service" ];
         timerConfig.OnBootSec = "5m";
         timerConfig.OnUnitActiveSec = "5m";
         timerConfig.Unit = "nextcloud-cron.service";
@@ -840,12 +840,14 @@ in {
           serviceConfig.User = "nextcloud";
         };
         nextcloud-cron = {
+          after = [ "nextcloud-setup.service" ];
           environment.NEXTCLOUD_CONFIG_DIR = "${datadir}/config";
           serviceConfig.Type = "oneshot";
           serviceConfig.User = "nextcloud";
           serviceConfig.ExecStart = "${phpPackage}/bin/php -f ${cfg.package}/cron.php";
         };
         nextcloud-update-plugins = mkIf cfg.autoUpdateApps.enable {
+          after = [ "nextcloud-setup.service" ];
           serviceConfig.Type = "oneshot";
           serviceConfig.ExecStart = "${occ}/bin/nextcloud-occ app:update --all";
           serviceConfig.User = "nextcloud";
@@ -914,7 +916,6 @@ in {
             priority = 100;
             extraConfig = ''
               allow all;
-              log_not_found off;
               access_log off;
             '';
           };
diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix
index 9aa38ab25c9a3..c441a2a7764e2 100644
--- a/nixos/modules/services/web-apps/tt-rss.nix
+++ b/nixos/modules/services/web-apps/tt-rss.nix
@@ -534,6 +534,7 @@ let
     services.phpfpm.pools = mkIf (cfg.pool == "${poolName}") {
       ${poolName} = {
         inherit (cfg) user;
+        phpPackage = pkgs.php80;
         settings = mapAttrs (name: mkDefault) {
           "listen.owner" = "nginx";
           "listen.group" = "nginx";
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index 160d76597c889..5ccbaf77481b7 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -360,7 +360,7 @@ let
       ${optionalString (config.alias != null) "alias ${config.alias};"}
       ${optionalString (config.return != null) "return ${config.return};"}
       ${config.extraConfig}
-      ${optionalString (config.proxyPass != null && cfg.recommendedProxySettings) "include ${recommendedProxyConfig};"}
+      ${optionalString (config.proxyPass != null && config.recommendedProxySettings) "include ${recommendedProxyConfig};"}
       ${mkBasicAuth "sublocation" config}
     }
   '') (sortProperties (mapAttrsToList (k: v: v // { location = k; }) locations)));
@@ -423,7 +423,7 @@ in
         default = false;
         type = types.bool;
         description = "
-          Enable recommended proxy settings.
+          Whether to enable recommended proxy settings if a vhost does not specify the option manually.
         ";
       };
 
diff --git a/nixos/modules/services/web-servers/nginx/location-options.nix b/nixos/modules/services/web-servers/nginx/location-options.nix
index 6fd00b3869745..49dd8893015af 100644
--- a/nixos/modules/services/web-servers/nginx/location-options.nix
+++ b/nixos/modules/services/web-servers/nginx/location-options.nix
@@ -3,7 +3,7 @@
 # has additional options that affect the web server as a whole, like
 # the user/group to run under.)
 
-{ lib }:
+{ lib, config }:
 
 with lib;
 
@@ -128,5 +128,14 @@ with lib;
         a greater priority.
       '';
     };
+
+    recommendedProxySettings = mkOption {
+      type = types.bool;
+      default = config.services.nginx.recommendedProxySettings;
+      defaultText = literalExpression "config.services.nginx.recommendedProxySettings";
+      description = ''
+        Enable recommended proxy settings.
+      '';
+    };
   };
 }
diff --git a/nixos/modules/services/web-servers/nginx/vhost-options.nix b/nixos/modules/services/web-servers/nginx/vhost-options.nix
index 2c77d6ee81622..a9929297a2480 100644
--- a/nixos/modules/services/web-servers/nginx/vhost-options.nix
+++ b/nixos/modules/services/web-servers/nginx/vhost-options.nix
@@ -281,7 +281,7 @@ with lib;
 
     locations = mkOption {
       type = types.attrsOf (types.submodule (import ./location-options.nix {
-        inherit lib;
+        inherit lib config;
       }));
       default = {};
       example = literalExpression ''
diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix
index 083b12193dab0..d04e565f7d310 100644
--- a/nixos/modules/services/x11/desktop-managers/pantheon.nix
+++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix
@@ -50,10 +50,6 @@ in
 
           Note that this should be a last resort; patching the package is preferred (see GPaste).
         '';
-        apply = list: list ++
-        [
-          pkgs.pantheon.pantheon-agent-geoclue2
-        ];
       };
 
       extraWingpanelIndicators = mkOption {
@@ -96,6 +92,9 @@ in
 
   config = mkMerge [
     (mkIf cfg.enable {
+      services.xserver.desktopManager.pantheon.sessionPath = utils.removePackagesByName [
+        pkgs.pantheon.pantheon-agent-geoclue2
+      ] config.environment.pantheon.excludePackages;
 
       services.xserver.displayManager.sessionPackages = [ pkgs.pantheon.elementary-session-settings ];
 
@@ -177,19 +176,28 @@ in
       networking.networkmanager.enable = mkDefault true;
 
       # Global environment
-      environment.systemPackages = with pkgs; [
+      environment.systemPackages = (with pkgs.pantheon; [
+        elementary-session-settings
+        elementary-settings-daemon
+        gala
+        gnome-settings-daemon
+        (switchboard-with-plugs.override {
+          plugs = cfg.extraSwitchboardPlugs;
+        })
+        (wingpanel-with-indicators.override {
+          indicators = cfg.extraWingpanelIndicators;
+        })
+      ]) ++ utils.removePackagesByName ((with pkgs; [
         desktop-file-utils
-        glib
+        glib # for gsettings program
         gnome-menus
         gnome.adwaita-icon-theme
-        gtk3.out
-        hicolor-icon-theme
+        gtk3.out # for gtk-launch program
         onboard
         qgnomeplatform
-        shared-mime-info
         sound-theme-freedesktop
-        xdg-user-dirs
-      ] ++ (with pkgs.pantheon; [
+        xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/
+      ]) ++ (with pkgs.pantheon; [
         # Artwork
         elementary-gtk-theme
         elementary-icon-theme
@@ -199,31 +207,21 @@ in
         # Desktop
         elementary-default-settings
         elementary-dock
-        elementary-session-settings
         elementary-shortcut-overlay
-        gala
-        (switchboard-with-plugs.override {
-          plugs = cfg.extraSwitchboardPlugs;
-        })
-        (wingpanel-with-indicators.override {
-          indicators = cfg.extraWingpanelIndicators;
-        })
 
         # Services
         elementary-capnet-assist
         elementary-notifications
-        elementary-settings-daemon
-        gnome-settings-daemon
         pantheon-agent-geoclue2
         pantheon-agent-polkit
-      ]);
-
-      programs.evince.enable = mkDefault true;
-      programs.file-roller.enable = mkDefault true;
+      ])) config.environment.pantheon.excludePackages;
 
       # Settings from elementary-default-settings
       environment.etc."gtk-3.0/settings.ini".source = "${pkgs.pantheon.elementary-default-settings}/etc/gtk-3.0/settings.ini";
 
+      xdg.mime.enable = true;
+      xdg.icons.enable = true;
+
       xdg.portal.enable = true;
       xdg.portal.extraPortals = with pkgs.pantheon; [
         elementary-files
@@ -271,6 +269,9 @@ in
     })
 
     (mkIf serviceCfg.apps.enable {
+      programs.evince.enable = mkDefault true;
+      programs.file-roller.enable = mkDefault true;
+
       environment.systemPackages = utils.removePackagesByName ([
         pkgs.gnome.gnome-font-viewer
       ] ++ (with pkgs.pantheon; [
diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix
index 3ca044ad5bc85..144cb00e480ef 100644
--- a/nixos/modules/services/x11/desktop-managers/plasma5.nix
+++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix
@@ -234,11 +234,11 @@ in
     (mkIf (cfg.enable || cfg.mobile.enable) {
 
       security.wrappers = {
-        kcheckpass = {
+        kscreenlocker_greet = {
           setuid = true;
           owner = "root";
           group = "root";
-          source = "${getBin libsForQt5.kscreenlocker}/libexec/kcheckpass";
+          source = "${getBin libsForQt5.kscreenlocker}/libexec/kscreenlocker_greet";
         };
         start_kdeinit = {
           setuid = true;
diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix
index 88b21e59aaa6b..3c2dac386f5db 100644
--- a/nixos/modules/services/x11/desktop-managers/xfce.nix
+++ b/nixos/modules/services/x11/desktop-managers/xfce.nix
@@ -36,6 +36,12 @@ in
       [ "services" "xserver" "desktopManager" "xfce" "extraSessionCommands" ]
       [ "services" "xserver" "displayManager" "sessionCommands" ])
     (mkRemovedOptionModule [ "services" "xserver" "desktopManager" "xfce" "screenLock" ] "")
+
+    # added 2022-06-26
+    # thunar has its own module
+    (mkRenamedOptionModule
+      [ "services" "xserver" "desktopManager" "xfce" "thunarPlugins" ]
+      [ "programs" "thunar" "plugins" ])
   ];
 
   options = {
@@ -46,15 +52,6 @@ in
         description = "Enable the Xfce desktop environment.";
       };
 
-      thunarPlugins = mkOption {
-        default = [];
-        type = types.listOf types.package;
-        example = literalExpression "[ pkgs.xfce.thunar-archive-plugin ]";
-        description = ''
-          A list of plugin that should be installed with Thunar.
-        '';
-      };
-
       noDesktop = mkOption {
         type = types.bool;
         default = false;
@@ -110,8 +107,6 @@ in
       xfce4-settings
       xfce4-taskmanager
       xfce4-terminal
-
-      (thunar.override { thunarPlugins = cfg.thunarPlugins; })
     ] # TODO: NetworkManager doesn't belong here
       ++ optional config.networking.networkmanager.enable networkmanagerapplet
       ++ optional config.powerManagement.enable xfce4-power-manager
@@ -130,6 +125,8 @@ in
         xfdesktop
       ] ++ optional cfg.enableScreensaver xfce4-screensaver;
 
+    programs.thunar.enable = true;
+
     environment.pathsToLink = [
       "/share/xfce4"
       "/lib/xfce4"
@@ -170,7 +167,6 @@ in
 
     # Systemd services
     systemd.packages = with pkgs.xfce; [
-      (thunar.override { thunarPlugins = cfg.thunarPlugins; })
       xfce4-notifyd
     ];
 
diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix
index c23e479140f09..1566e38da0839 100644
--- a/nixos/modules/services/x11/display-managers/xpra.nix
+++ b/nixos/modules/services/x11/display-managers/xpra.nix
@@ -26,6 +26,13 @@ in
         description = "Bind xpra to TCP";
       };
 
+      desktop = mkOption {
+        type = types.nullOr types.str;
+        default = null;
+        example = "gnome-shell";
+        description = "Start a desktop environment instead of seamless mode";
+      };
+
       auth = mkOption {
         type = types.str;
         default = "pam";
@@ -222,7 +229,7 @@ in
     services.xserver.displayManager.job.execCmd = ''
       ${optionalString (cfg.pulseaudio)
         "export PULSE_COOKIE=/run/pulse/.config/pulse/cookie"}
-      exec ${pkgs.xpra}/bin/xpra start \
+      exec ${pkgs.xpra}/bin/xpra ${if cfg.desktop == null then "start" else "start-desktop --start=${cfg.desktop}"} \
         --daemon=off \
         --log-dir=/var/log \
         --log-file=xpra.log \
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 66fdc61d28357..dce72b36fc501 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -90,7 +90,7 @@ let
           bindsTo = [ "network-setup.service" ];
         };
 
-        networkSetup =
+        networkSetup = lib.mkIf (config.networking.resolvconf.enable || cfg.defaultGateway != null || cfg.defaultGateway6 != null)
           { description = "Networking Setup";
 
             after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ];
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 80808e0c08fa5..1657fabcd9b1c 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -59,15 +59,14 @@ in
         genericNetwork = override:
           let gateway = optional (cfg.defaultGateway != null && (cfg.defaultGateway.address or "") != "") cfg.defaultGateway.address
             ++ optional (cfg.defaultGateway6 != null && (cfg.defaultGateway6.address or "") != "") cfg.defaultGateway6.address;
-          in optionalAttrs (gateway != [ ]) {
-            routes = override [
-              {
+              makeGateway = gateway: {
                 routeConfig = {
                   Gateway = gateway;
                   GatewayOnLink = false;
                 };
-              }
-            ];
+              };
+          in optionalAttrs (gateway != [ ]) {
+            routes = override (map makeGateway gateway);
           } // optionalAttrs (domains != [ ]) {
             domains = override domains;
           };
@@ -89,20 +88,22 @@ in
           # more likely to result in interfaces being configured to
           # use DHCP when they shouldn't.
 
-          # We set RequiredForOnline to false, because it's fairly
-          # common for such devices to have multiple interfaces and
-          # only one of them to be connected (e.g. a laptop with
-          # ethernet and WiFi interfaces). Maybe one day networkd will
-          # support "any"-style RequiredForOnline...
+          # When wait-online.anyInterface is enabled, RequiredForOnline really
+          # means "sufficient for online", so we can enable it.
+          # Otherwise, don't block the network coming online because of default networks.
           matchConfig.Name = ["en*" "eth*"];
           DHCP = "yes";
-          linkConfig.RequiredForOnline = lib.mkDefault false;
+          linkConfig.RequiredForOnline =
+            lib.mkDefault config.systemd.network.wait-online.anyInterface;
+          networkConfig.IPv6PrivacyExtensions = "kernel";
         };
         networks."99-wireless-client-dhcp" = lib.mkIf cfg.useDHCP {
           # Like above, but this is much more likely to be correct.
           matchConfig.WLANInterfaceType = "station";
           DHCP = "yes";
-          linkConfig.RequiredForOnline = lib.mkDefault false;
+          linkConfig.RequiredForOnline =
+            lib.mkDefault config.systemd.network.wait-online.anyInterface;
+          networkConfig.IPv6PrivacyExtensions = "kernel";
           # We also set the route metric to one more than the default
           # of 1024, so that Ethernet is preferred if both are
           # available.
diff --git a/nixos/modules/virtualisation/lxc-container.nix b/nixos/modules/virtualisation/lxc-container.nix
index 9816cc2332fbd..d3a2e0ed151d3 100644
--- a/nixos/modules/virtualisation/lxc-container.nix
+++ b/nixos/modules/virtualisation/lxc-container.nix
@@ -63,18 +63,18 @@ in
         default = {};
         example = literalExpression ''
           {
-            # create /etc/hostname on container creation
+            # create /etc/hostname on container creation. also requires networking.hostName = "" to be set
             "hostname" = {
               enable = true;
               target = "/etc/hostname";
-              template = builtins.writeFile "hostname.tpl" "{{ container.name }}";
+              template = builtins.toFile "hostname.tpl" "{{ container.name }}";
               when = [ "create" ];
             };
             # create /etc/nixos/hostname.nix with a configuration for keeping the hostname applied
             "hostname-nix" = {
               enable = true;
               target = "/etc/nixos/hostname.nix";
-              template = builtins.writeFile "hostname-nix.tpl" "{ ... }: { networking.hostName = "{{ container.name }}"; }";
+              template = builtins.toFile "hostname-nix.tpl" "{ ... }: { networking.hostName = \"{{ container.name }}\"; }";
               # copy keeps the file updated when the container is changed
               when = [ "create" "copy" ];
             };
@@ -82,7 +82,7 @@ in
             "configuration-nix" = {
               enable = true;
               target = "/etc/nixos/configuration.nix";
-              template = builtins.writeFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
+              template = builtins.toFile "configuration-nix" "{{ config_get(\"user.user-data\", properties.default) }}";
               when = [ "create" ];
             };
           };
diff --git a/nixos/modules/virtualisation/xen-dom0.nix b/nixos/modules/virtualisation/xen-dom0.nix
index 975eed10cd267..a999efcb44e64 100644
--- a/nixos/modules/virtualisation/xen-dom0.nix
+++ b/nixos/modules/virtualisation/xen-dom0.nix
@@ -23,12 +23,12 @@ in
         default = false;
         type = types.bool;
         description =
-          ''
+          mdDoc ''
             Setting this option enables the Xen hypervisor, a
             virtualisation technology that allows multiple virtual
-            machines, known as <emphasis>domains</emphasis>, to run
+            machines, known as *domains*, to run
             concurrently on the physical machine.  NixOS runs as the
-            privileged <emphasis>Domain 0</emphasis>.  This option
+            privileged *Domain 0*.  This option
             requires a reboot to take effect.
           '';
       };
diff --git a/nixos/tests/acme.nix b/nixos/tests/acme.nix
index 2dd06a50f40ba..c07f99c5db3a2 100644
--- a/nixos/tests/acme.nix
+++ b/nixos/tests/acme.nix
@@ -578,7 +578,7 @@ in {
               webserver.wait_for_unit(f"acme-finished-{test_domain}.target")
               wait_for_server()
               check_connection(client, test_domain)
-              rc, _ = client.execute(
+              rc, _s = client.execute(
                   f"openssl s_client -CAfile /tmp/ca.crt -connect {test_alias}:443"
                   " </dev/null 2>/dev/null | openssl x509 -noout -text"
                   f" | grep DNS: | grep {test_alias}"
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 38c320886d1a4..e625fa7f2c284 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -189,6 +189,7 @@ in {
   google-oslogin = handleTest ./google-oslogin {};
   gotify-server = handleTest ./gotify-server.nix {};
   grafana = handleTest ./grafana.nix {};
+  grafana-agent = handleTest ./grafana-agent.nix {};
   graphite = handleTest ./graphite.nix {};
   graylog = handleTest ./graylog.nix {};
   grocy = handleTest ./grocy.nix {};
@@ -253,7 +254,6 @@ in {
   jirafeau = handleTest ./jirafeau.nix {};
   jitsi-meet = handleTest ./jitsi-meet.nix {};
   k3s-single-node = handleTest ./k3s-single-node.nix {};
-  k3s-single-node-docker = handleTest ./k3s-single-node-docker.nix {};
   kafka = handleTest ./kafka.nix {};
   kanidm = handleTest ./kanidm.nix {};
   kbd-setfont-decompress = handleTest ./kbd-setfont-decompress.nix {};
@@ -458,6 +458,7 @@ in {
   proxy = handleTest ./proxy.nix {};
   prowlarr = handleTest ./prowlarr.nix {};
   pt2-clone = handleTest ./pt2-clone.nix {};
+  pykms = handleTest ./pykms.nix {};
   public-inbox = handleTest ./public-inbox.nix {};
   pulseaudio = discoverTests (import ./pulseaudio.nix);
   qboot = handleTestOn ["x86_64-linux" "i686-linux"] ./qboot.nix {};
@@ -472,7 +473,6 @@ in {
   restartByActivationScript = handleTest ./restart-by-activation-script.nix {};
   restic = handleTest ./restic.nix {};
   retroarch = handleTest ./retroarch.nix {};
-  riak = handleTest ./riak.nix {};
   robustirc-bridge = handleTest ./robustirc-bridge.nix {};
   roundcube = handleTest ./roundcube.nix {};
   rspamd = handleTest ./rspamd.nix {};
@@ -485,6 +485,7 @@ in {
   samba = handleTest ./samba.nix {};
   samba-wsdd = handleTest ./samba-wsdd.nix {};
   sanoid = handleTest ./sanoid.nix {};
+  schleuder = handleTest ./schleuder.nix {};
   sddm = handleTest ./sddm.nix {};
   seafile = handleTest ./seafile.nix {};
   searx = handleTest ./searx.nix {};
@@ -613,6 +614,7 @@ in {
   yabar = handleTest ./yabar.nix {};
   yggdrasil = handleTest ./yggdrasil.nix {};
   zammad = handleTest ./zammad.nix {};
+  zeronet-conservancy = handleTest ./zeronet-conservancy.nix {};
   zfs = handleTest ./zfs.nix {};
   zigbee2mqtt = handleTest ./zigbee2mqtt.nix {};
   zoneminder = handleTest ./zoneminder.nix {};
diff --git a/nixos/tests/containers-custom-pkgs.nix b/nixos/tests/containers-custom-pkgs.nix
index 9894e6643762e..e8740ac631345 100644
--- a/nixos/tests/containers-custom-pkgs.nix
+++ b/nixos/tests/containers-custom-pkgs.nix
@@ -9,7 +9,7 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: let
 in {
   name = "containers-custom-pkgs";
   meta = {
-    maintainers = with lib.maintainers; [ adisbladis earvstedt ];
+    maintainers = with lib.maintainers; [ adisbladis erikarvstedt ];
   };
 
   nodes.machine = { config, ... }: {
diff --git a/nixos/tests/convos.nix b/nixos/tests/convos.nix
index 72275ab390d99..cc0c2e75893c1 100644
--- a/nixos/tests/convos.nix
+++ b/nixos/tests/convos.nix
@@ -23,7 +23,7 @@ in
 
   testScript = ''
     machine.wait_for_unit("convos")
-    machine.wait_for_open_port(port)
+    machine.wait_for_open_port(${toString port})
     machine.succeed("journalctl -u convos | grep -q 'Listening at.*${toString port}'")
     machine.succeed("curl -f http://localhost:${toString port}/")
   '';
diff --git a/nixos/tests/docker-tools.nix b/nixos/tests/docker-tools.nix
index 80859ac7a96ec..99a968f17af2f 100644
--- a/nixos/tests/docker-tools.nix
+++ b/nixos/tests/docker-tools.nix
@@ -419,5 +419,10 @@ import ./make-test-python.nix ({ pkgs, ... }: {
             "docker rmi layered-image-with-path",
         )
 
+    with subtest("etc"):
+        docker.succeed("${examples.etc} | docker load")
+        docker.succeed("docker run --rm etc | grep localhost")
+        docker.succeed("docker image rm etc:latest")
+
   '';
 })
diff --git a/nixos/tests/fcitx/default.nix b/nixos/tests/fcitx/default.nix
index 78b322d351d3b..c132249fcb249 100644
--- a/nixos/tests/fcitx/default.nix
+++ b/nixos/tests/fcitx/default.nix
@@ -5,6 +5,7 @@ import ../make-test-python.nix (
     # copy_from_host works only for store paths
     rec {
         name = "fcitx";
+        meta.broken = true; # takes hours to time out since October 2021
         nodes.machine =
         {
           pkgs,
diff --git a/nixos/tests/grafana-agent.nix b/nixos/tests/grafana-agent.nix
new file mode 100644
index 0000000000000..a9f34d8cea31a
--- /dev/null
+++ b/nixos/tests/grafana-agent.nix
@@ -0,0 +1,32 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }:
+
+  let
+    nodes = {
+      machine = {
+        services.grafana-agent = {
+          enable = true;
+        };
+      };
+    };
+  in
+  {
+    name = "grafana-agent";
+
+    meta = with lib.maintainers; {
+      maintainers = [ zimbatm ];
+    };
+
+    inherit nodes;
+
+    testScript = ''
+      start_all()
+
+      with subtest("Grafana-agent is running"):
+          machine.wait_for_unit("grafana-agent.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/home-assistant.nix b/nixos/tests/home-assistant.nix
index f7b9d283e4572..59b82593abcd6 100644
--- a/nixos/tests/home-assistant.nix
+++ b/nixos/tests/home-assistant.nix
@@ -98,9 +98,26 @@ in {
       };
       lovelaceConfigWritable = true;
     };
+
+    # Cause a configuration change inside `configuration.yml` and verify that the process is being reloaded.
+    specialisation.differentName = {
+      inheritParentConfig = true;
+      configuration.services.home-assistant.config.homeassistant.name = lib.mkForce "Test Home";
+    };
+
+    # Cause a configuration change that requires a service restart as we added a new runtime dependency
+    specialisation.newFeature = {
+      inheritParentConfig = true;
+      configuration.services.home-assistant.config.device_tracker = [
+        { platform = "bluetooth_tracker"; }
+      ];
+    };
   };
 
-  testScript = ''
+  testScript = { nodes, ... }: let
+    system = nodes.hass.config.system.build.toplevel;
+  in
+  ''
     import re
 
     start_all()
@@ -142,12 +159,21 @@ in {
     with subtest("Check extra components are considered in systemd unit hardening"):
         hass.succeed("systemctl show -p DeviceAllow home-assistant.service | grep -q char-ttyUSB")
 
-    with subtest("Print log to ease debugging"):
-        output_log = hass.succeed("cat ${configDir}/home-assistant.log")
-        print("\n### home-assistant.log ###\n")
-        print(output_log + "\n")
+    with subtest("Check service reloads when configuration changes"):
+      # store the old pid of the process
+      pid = hass.succeed("systemctl show --property=MainPID home-assistant.service")
+      hass.succeed("${system}/specialisation/differentName/bin/switch-to-configuration test")
+      new_pid = hass.succeed("systemctl show --property=MainPID home-assistant.service")
+      assert pid == new_pid, "The PID of the process should not change between process reloads"
+
+    with subtest("check service restarts when package changes"):
+      pid = new_pid
+      hass.succeed("${system}/specialisation/newFeature/bin/switch-to-configuration test")
+      new_pid = hass.succeed("systemctl show --property=MainPID home-assistant.service")
+      assert pid != new_pid, "The PID of the process shoudl change when the HA binary changes"
 
     with subtest("Check that no errors were logged"):
+        output_log = hass.succeed("cat ${configDir}/home-assistant.log")
         assert "ERROR" not in output_log
 
     with subtest("Check systemd unit hardening"):
diff --git a/nixos/tests/k3s-single-node-docker.nix b/nixos/tests/k3s-single-node-docker.nix
deleted file mode 100644
index 735aa5ac2975d..0000000000000
--- a/nixos/tests/k3s-single-node-docker.nix
+++ /dev/null
@@ -1,84 +0,0 @@
-import ./make-test-python.nix ({ pkgs, ... }:
-
-  let
-    imageEnv = pkgs.buildEnv {
-      name = "k3s-pause-image-env";
-      paths = with pkgs; [ tini (hiPrio coreutils) busybox ];
-    };
-    pauseImage = pkgs.dockerTools.streamLayeredImage {
-      name = "test.local/pause";
-      tag = "local";
-      contents = imageEnv;
-      config.Entrypoint = [ "/bin/tini" "--" "/bin/sleep" "inf" ];
-    };
-    # Don't use the default service account because there's a race where it may
-    # not be created yet; make our own instead.
-    testPodYaml = pkgs.writeText "test.yml" ''
-      apiVersion: v1
-      kind: ServiceAccount
-      metadata:
-        name: test
-      ---
-      apiVersion: v1
-      kind: Pod
-      metadata:
-        name: test
-      spec:
-        serviceAccountName: test
-        containers:
-        - name: test
-          image: test.local/pause:local
-          imagePullPolicy: Never
-          command: ["sh", "-c", "sleep inf"]
-    '';
-  in
-  {
-    name = "k3s";
-    meta = with pkgs.lib.maintainers; {
-      maintainers = [ euank ];
-    };
-
-    nodes.machine = { pkgs, ... }: {
-      environment.systemPackages = with pkgs; [ k3s gzip ];
-
-      # k3s uses enough resources the default vm fails.
-      virtualisation.memorySize = 1536;
-      virtualisation.diskSize = 4096;
-
-      services.k3s = {
-        enable = true;
-        role = "server";
-        docker = true;
-        # Slightly reduce resource usage
-        extraFlags = "--no-deploy coredns,servicelb,traefik,local-storage,metrics-server --pause-image test.local/pause:local";
-      };
-
-      users.users = {
-        noprivs = {
-          isNormalUser = true;
-          description = "Can't access k3s by default";
-          password = "*";
-        };
-      };
-    };
-
-    testScript = ''
-      start_all()
-
-      machine.wait_for_unit("k3s")
-      machine.succeed("k3s kubectl cluster-info")
-      machine.fail("sudo -u noprivs k3s kubectl cluster-info")
-      # FIXME: this fails with the current nixos kernel config; once it passes, we should uncomment it
-      # machine.succeed("k3s check-config")
-
-      machine.succeed(
-          "${pauseImage} | docker load"
-      )
-
-      machine.succeed("k3s kubectl apply -f ${testPodYaml}")
-      machine.succeed("k3s kubectl wait --for 'condition=Ready' pod/test")
-      machine.succeed("k3s kubectl delete -f ${testPodYaml}")
-
-      machine.shutdown()
-    '';
-  })
diff --git a/nixos/tests/kernel-generic.nix b/nixos/tests/kernel-generic.nix
index 5e6682d1045d6..04d52cf82e42b 100644
--- a/nixos/tests/kernel-generic.nix
+++ b/nixos/tests/kernel-generic.nix
@@ -30,7 +30,6 @@ let
       linux_5_4_hardened
       linux_5_10_hardened
       linux_5_15_hardened
-      linux_5_17_hardened
       linux_5_18_hardened
 
       linux_testing;
diff --git a/nixos/tests/matrix/appservice-irc.nix b/nixos/tests/matrix/appservice-irc.nix
index 7dd44da8305e0..78c53024ca6c4 100644
--- a/nixos/tests/matrix/appservice-irc.nix
+++ b/nixos/tests/matrix/appservice-irc.nix
@@ -193,6 +193,7 @@ import ../make-test-python.nix ({ pkgs, ... }:
 
     testScript = ''
       import pathlib
+      import os
 
       start_all()
 
@@ -206,7 +207,7 @@ import ../make-test-python.nix ({ pkgs, ... }:
       with subtest("copy the registration file"):
           appservice.copy_from_vm("/var/lib/matrix-appservice-irc/registration.yml")
           homeserver.copy_from_host(
-              pathlib.Path(os.environ.get("out", os.getcwd())) / "registration.yml", "/"
+              str(pathlib.Path(os.environ.get("out", os.getcwd())) / "registration.yml"), "/"
           )
           homeserver.succeed("chmod 444 /registration.yml")
 
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 1fe1229f24a4a..a00ff165d42f0 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -98,6 +98,7 @@ let
           useNetworkd = networkd;
           useDHCP = false;
           defaultGateway = "192.168.1.1";
+          defaultGateway6 = "fd00:1234:5678:1::1";
           interfaces.eth1.ipv4.addresses = mkOverride 0 [
             { address = "192.168.1.2"; prefixLength = 24; }
             { address = "192.168.1.3"; prefixLength = 32; }
@@ -139,6 +140,8 @@ let
           with subtest("Test default gateway"):
               router.wait_until_succeeds("ping -c 1 192.168.3.1")
               client.wait_until_succeeds("ping -c 1 192.168.3.1")
+              router.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
+              client.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1")
         '';
     };
     routeType = {
diff --git a/nixos/tests/paperless.nix b/nixos/tests/paperless.nix
index 51fe7c2078514..12883cd62c60c 100644
--- a/nixos/tests/paperless.nix
+++ b/nixos/tests/paperless.nix
@@ -1,6 +1,6 @@
 import ./make-test-python.nix ({ lib, ... }: {
   name = "paperless";
-  meta.maintainers = with lib.maintainers; [ earvstedt Flakebi ];
+  meta.maintainers = with lib.maintainers; [ erikarvstedt Flakebi ];
 
   nodes.machine = { pkgs, ... }: {
     environment.systemPackages = with pkgs; [ imagemagick jq ];
diff --git a/nixos/tests/pykms.nix b/nixos/tests/pykms.nix
new file mode 100644
index 0000000000000..14d776a2f113e
--- /dev/null
+++ b/nixos/tests/pykms.nix
@@ -0,0 +1,14 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+  {
+    name = "pykms-test";
+    meta.maintainers = with pkgs.lib.maintainers; [ zopieux ];
+
+    nodes.machine = { config, lib, pkgs, ... }: {
+      services.pykms.enable = true;
+    };
+
+    testScript = ''
+      machine.wait_for_unit("pykms.service")
+      machine.succeed("${pkgs.pykms}/bin/client")
+    '';
+  })
diff --git a/nixos/tests/riak.nix b/nixos/tests/riak.nix
deleted file mode 100644
index e75d40fa25695..0000000000000
--- a/nixos/tests/riak.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-import ./make-test-python.nix ({ lib, pkgs, ... }: {
-  name = "riak";
-  meta = with lib.maintainers; {
-    maintainers = [ Br1ght0ne ];
-  };
-
-  nodes.machine = {
-    services.riak.enable = true;
-    services.riak.package = pkgs.riak;
-  };
-
-  testScript = ''
-    machine.start()
-
-    machine.wait_for_unit("riak")
-    machine.wait_until_succeeds("riak ping 2>&1")
-  '';
-})
diff --git a/nixos/tests/schleuder.nix b/nixos/tests/schleuder.nix
new file mode 100644
index 0000000000000..a9e4cc325bc76
--- /dev/null
+++ b/nixos/tests/schleuder.nix
@@ -0,0 +1,128 @@
+let
+  certs = import ./common/acme/server/snakeoil-certs.nix;
+  domain = certs.domain;
+in
+import ./make-test-python.nix {
+  name = "schleuder";
+  nodes.machine = { pkgs, ... }: {
+    imports = [ ./common/user-account.nix ];
+    services.postfix = {
+      enable = true;
+      enableSubmission = true;
+      tlsTrustedAuthorities = "${certs.ca.cert}";
+      sslCert = "${certs.${domain}.cert}";
+      sslKey = "${certs.${domain}.key}";
+      inherit domain;
+      destination = [ domain ];
+      localRecipients = [ "root" "alice" "bob" ];
+    };
+    services.schleuder = {
+      enable = true;
+      # Don't do it like this in production! The point of this setting
+      # is to allow loading secrets from _outside_ the world-readable
+      # Nix store.
+      extraSettingsFile = pkgs.writeText "schleuder-api-keys.yml" ''
+        api:
+          valid_api_keys:
+            - fnord
+      '';
+      lists = [ "security@${domain}" ];
+      settings.api = {
+        tls_cert_file = "${certs.${domain}.cert}";
+        tls_key_file = "${certs.${domain}.key}";
+      };
+    };
+
+    environment.systemPackages = [
+      pkgs.gnupg
+      pkgs.msmtp
+      (pkgs.writeScriptBin "do-test" ''
+        #!${pkgs.runtimeShell}
+        set -exuo pipefail
+
+        # Generate a GPG key with no passphrase and export it
+        sudo -u alice gpg --passphrase-fd 0 --batch --yes --quick-generate-key 'alice@${domain}' rsa4096 sign,encr < <(echo)
+        sudo -u alice gpg --armor --export alice@${domain} > alice.asc
+        # Create a new mailing list with alice as the owner, and alice's key
+        schleuder-cli list new security@${domain} alice@${domain} alice.asc
+
+        # Send an email from a non-member of the list. Use --auto-from so we don't have to specify who it's from twice.
+        msmtp --auto-from security@${domain} --host=${domain} --port=25 --tls --tls-starttls <<EOF
+          Subject: really big security issue!!
+          From: root@${domain}
+
+          I found a big security problem!
+        EOF
+
+        # Wait for delivery
+        (set +o pipefail; journalctl -f -n 1000 -u postfix | grep -m 1 'delivered to maildir')
+
+        # There should be exactly one email
+        mail=(/var/spool/mail/alice/new/*)
+        [[ "''${#mail[@]}" = 1 ]]
+
+        # Find the fingerprint of the mailing list key
+        read list_key_fp address < <(schleuder-cli keys list security@${domain} | grep security@)
+        schleuder-cli keys export security@${domain} $list_key_fp > list.asc
+
+        # Import the key into alice's keyring, so we can verify it as well as decrypting
+        sudo -u alice gpg --import <list.asc
+        # And perform the decryption.
+        sudo -u alice gpg -d $mail >decrypted
+        # And check that the text matches.
+        grep "big security problem" decrypted
+      '')
+
+      # For debugging:
+      # pkgs.vim pkgs.openssl pkgs.sqliteinteractive
+    ];
+
+    security.pki.certificateFiles = [ certs.ca.cert ];
+
+    # Since we don't have internet here, use dnsmasq to provide MX records from /etc/hosts
+    services.dnsmasq = {
+      enable = true;
+      extraConfig = ''
+        selfmx
+      '';
+    };
+
+    networking.extraHosts = ''
+      127.0.0.1 ${domain}
+    '';
+
+    # schleuder-cli's config is not quite optimal in several ways:
+    # - A fingerprint _must_ be pinned, it doesn't even have an option
+    #   to trust the PKI
+    # - It compares certificate fingerprints rather than key
+    #   fingerprints, so renewals break the pin (though that's not
+    #   relevant for this test)
+    # - It compares them as strings, which means we need to match the
+    #   expected format exactly. This means removing the :s and
+    #   lowercasing it.
+    # Refs:
+    # https://0xacab.org/schleuder/schleuder-cli/-/issues/16
+    # https://0xacab.org/schleuder/schleuder-cli/-/blob/f8895b9f47083d8c7b99a2797c93f170f3c6a3c0/lib/schleuder-cli/helper.rb#L230-238
+    systemd.tmpfiles.rules = let cliconfig = pkgs.runCommand "schleuder-cli.yml"
+      {
+        nativeBuildInputs = [ pkgs.jq pkgs.openssl ];
+      } ''
+      fp=$(openssl x509 -in ${certs.${domain}.cert} -noout -fingerprint -sha256 | cut -d = -f 2 | tr -d : | tr 'A-Z' 'a-z')
+      cat > $out <<EOF
+      host: localhost
+      port: 4443
+      tls_fingerprint: "$fp"
+      api_key: fnord
+      EOF
+    ''; in
+      [
+        "L+ /root/.schleuder-cli/schleuder-cli.yml - - - - ${cliconfig}"
+      ];
+  };
+
+  testScript = ''
+    machine.wait_for_unit("multi-user.target")
+    machine.wait_until_succeeds("nc -z localhost 4443")
+    machine.succeed("do-test")
+  '';
+}
diff --git a/nixos/tests/systemd-networkd-vrf.nix b/nixos/tests/systemd-networkd-vrf.nix
index 8a1580fc2ada7..3c18f788e927d 100644
--- a/nixos/tests/systemd-networkd-vrf.nix
+++ b/nixos/tests/systemd-networkd-vrf.nix
@@ -138,18 +138,18 @@ in {
   };
 
   testScript = ''
-    def compare_tables(expected, actual):
-        assert (
-            expected == actual
-        ), """
-        Routing tables don't match!
-        Expected:
-          {}
-        Actual:
-          {}
-        """.format(
-            expected, actual
-        )
+    import json
+
+    def compare(raw_json, to_compare):
+        data = json.loads(raw_json)
+        assert len(raw_json) >= len(to_compare)
+        for i, row in enumerate(to_compare):
+            actual = data[i]
+            assert len(row.keys()) > 0
+            for key, value in row.items():
+                assert value == actual[key], f"""
+                  In entry {i}, value {key}: got: {actual[key]}, expected {value}
+                """
 
 
     start_all()
@@ -159,23 +159,18 @@ in {
     node2.wait_for_unit("network.target")
     node3.wait_for_unit("network.target")
 
-    # NOTE: please keep in mind that the trailing whitespaces in the following strings
-    # are intentional as the output is compared against the raw `iproute2`-output.
-    # editorconfig-checker-disable
     client_ipv4_table = """
-    192.168.1.2 dev vrf1 proto static metric 100 
+    192.168.1.2 dev vrf1 proto static metric 100\x20
     192.168.2.3 dev vrf2 proto static metric 100
     """.strip()
     vrf1_table = """
-    broadcast 192.168.1.0 dev eth1 proto kernel scope link src 192.168.1.1 
-    192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1 
-    local 192.168.1.1 dev eth1 proto kernel scope host src 192.168.1.1 
+    192.168.1.0/24 dev eth1 proto kernel scope link src 192.168.1.1\x20
+    local 192.168.1.1 dev eth1 proto kernel scope host src 192.168.1.1\x20
     broadcast 192.168.1.255 dev eth1 proto kernel scope link src 192.168.1.1
     """.strip()
     vrf2_table = """
-    broadcast 192.168.2.0 dev eth2 proto kernel scope link src 192.168.2.1 
-    192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1 
-    local 192.168.2.1 dev eth2 proto kernel scope host src 192.168.2.1 
+    192.168.2.0/24 dev eth2 proto kernel scope link src 192.168.2.1\x20
+    local 192.168.2.1 dev eth2 proto kernel scope host src 192.168.2.1\x20
     broadcast 192.168.2.255 dev eth2 proto kernel scope link src 192.168.2.1
     """.strip()
     # editorconfig-checker-enable
@@ -183,14 +178,28 @@ in {
     # Check that networkd properly configures the main routing table
     # and the routing tables for the VRF.
     with subtest("check vrf routing tables"):
-        compare_tables(
-            client_ipv4_table, client.succeed("ip -4 route list | head -n2").strip()
+        compare(
+            client.succeed("ip --json -4 route list"),
+            [
+                {"dst": "192.168.1.2", "dev": "vrf1", "metric": 100},
+                {"dst": "192.168.2.3", "dev": "vrf2", "metric": 100}
+            ]
         )
-        compare_tables(
-            vrf1_table, client.succeed("ip -4 route list table 23 | head -n4").strip()
+        compare(
+            client.succeed("ip --json -4 route list table 23"),
+            [
+                {"dst": "192.168.1.0/24", "dev": "eth1", "prefsrc": "192.168.1.1"},
+                {"type": "local", "dst": "192.168.1.1", "dev": "eth1", "prefsrc": "192.168.1.1"},
+                {"type": "broadcast", "dev": "eth1", "prefsrc": "192.168.1.1", "dst": "192.168.1.255"}
+            ]
         )
-        compare_tables(
-            vrf2_table, client.succeed("ip -4 route list table 42 | head -n4").strip()
+        compare(
+            client.succeed("ip --json -4 route list table 42"),
+            [
+                {"dst": "192.168.2.0/24", "dev": "eth2", "prefsrc": "192.168.2.1"},
+                {"type": "local", "dst": "192.168.2.1", "dev": "eth2", "prefsrc": "192.168.2.1"},
+                {"type": "broadcast", "dev": "eth2", "prefsrc": "192.168.2.1", "dst": "192.168.2.255"}
+            ]
         )
 
     # Ensure that other nodes are reachable via ICMP through the VRF.
diff --git a/nixos/tests/traefik.nix b/nixos/tests/traefik.nix
index 1d6c0a479ef62..989ec390c0603 100644
--- a/nixos/tests/traefik.nix
+++ b/nixos/tests/traefik.nix
@@ -11,14 +11,20 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       environment.systemPackages = [ pkgs.curl ];
     };
     traefik = { config, pkgs, ... }: {
-      virtualisation.oci-containers.containers.nginx = {
-        extraOptions = [
-          "-l" "traefik.enable=true"
-          "-l" "traefik.http.routers.nginx.entrypoints=web"
-          "-l" "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)"
-        ];
-        image = "nginx-container";
-        imageFile = pkgs.dockerTools.examples.nginx;
+      virtualisation.oci-containers = {
+        backend = "docker";
+        containers.nginx = {
+          extraOptions = [
+            "-l"
+            "traefik.enable=true"
+            "-l"
+            "traefik.http.routers.nginx.entrypoints=web"
+            "-l"
+            "traefik.http.routers.nginx.rule=Host(`nginx.traefik.test`)"
+          ];
+          image = "nginx-container";
+          imageFile = pkgs.dockerTools.examples.nginx;
+        };
       };
 
       networking.firewall.allowedTCPPorts = [ 80 ];
diff --git a/nixos/tests/vengi-tools.nix b/nixos/tests/vengi-tools.nix
index 8b80a13384e5a..5bc8d72c77237 100644
--- a/nixos/tests/vengi-tools.nix
+++ b/nixos/tests/vengi-tools.nix
@@ -23,7 +23,7 @@ import ./make-test-python.nix ({ pkgs, ... }: {
       # OCR on voxedit's window is very expensive, so we avoid wasting a try
       # by letting the window load fully first
       machine.sleep(15)
-      machine.wait_for_text("Palette")
+      machine.wait_for_text("Solid")
       machine.screenshot("screen")
     '';
 })
diff --git a/nixos/tests/virtualbox.nix b/nixos/tests/virtualbox.nix
index 4eb402a7d36ef..1c1b0dac7f37c 100644
--- a/nixos/tests/virtualbox.nix
+++ b/nixos/tests/virtualbox.nix
@@ -3,18 +3,9 @@
   pkgs ? import ../.. { inherit system config; },
   debug ? false,
   enableUnfree ? false,
-  # Nested KVM virtualization (https://www.linux-kvm.org/page/Nested_Guests)
-  # requires a modprobe flag on the build machine: (kvm-amd for AMD CPUs)
-  #   boot.extraModprobeConfig = "options kvm-intel nested=Y";
-  # Without this VirtualBox will use SW virtualization and will only be able
-  # to run 32-bit guests.
-  useKvmNestedVirt ? false,
-  # Whether to run 64-bit guests instead of 32-bit. Requires nested KVM.
-  use64bitGuest ? false
+  use64bitGuest ? true
 }:
 
-assert use64bitGuest -> useKvmNestedVirt;
-
 with import ../lib/testing-python.nix { inherit system pkgs; };
 with pkgs.lib;
 
@@ -26,7 +17,8 @@ let
       #!${pkgs.runtimeShell} -xe
       export PATH="${lib.makeBinPath [ pkgs.coreutils pkgs.util-linux ]}"
 
-      mkdir -p /run/dbus
+      mkdir -p /run/dbus /var
+      ln -s /run /var
       cat > /etc/passwd <<EOF
       root:x:0:0::/root:/bin/false
       messagebus:x:1:1::/run/dbus:/bin/false
@@ -200,6 +192,7 @@ let
       systemd.services."vboxtestlog-${name}@" = {
         description = "VirtualBox Test Machine Log For ${name}";
         serviceConfig.StandardInput = "socket";
+        serviceConfig.StandardOutput = "journal";
         serviceConfig.SyslogIdentifier = "GUEST-${name}";
         serviceConfig.ExecStart = "${pkgs.coreutils}/bin/cat";
       };
@@ -226,6 +219,7 @@ let
 
 
       def create_vm_${name}():
+          cleanup_${name}()
           vbm("createvm --name ${name} ${createFlags}")
           vbm("modifyvm ${name} ${vmFlags}")
           vbm("setextradata ${name} VBoxInternal/PDM/HaltOnReset 1")
@@ -233,7 +227,6 @@ let
           vbm("storageattach ${name} ${diskFlags}")
           vbm("sharedfolder add ${name} ${sharedFlags}")
           vbm("sharedfolder add ${name} ${nixstoreFlags}")
-          cleanup_${name}()
 
           ${mkLog "$HOME/VirtualBox VMs/${name}/Logs/VBox.log" "HOST-${name}"}
 
@@ -317,10 +310,7 @@ let
   ];
 
   dhcpScript = pkgs: ''
-    ${pkgs.dhcp}/bin/dhclient \
-      -lf /run/dhcp.leases \
-      -pf /run/dhclient.pid \
-      -v eth0 eth1
+    ${pkgs.dhcpcd}/bin/dhcpcd eth0 eth1
 
     otherIP="$(${pkgs.netcat}/bin/nc -l 1234 || :)"
     ${pkgs.iputils}/bin/ping -I eth1 -c1 "$otherIP"
@@ -359,8 +349,7 @@ let
         vmConfigs = mapAttrsToList mkVMConf vms;
       in [ ./common/user-account.nix ./common/x11.nix ] ++ vmConfigs;
       virtualisation.memorySize = 2048;
-      virtualisation.qemu.options =
-        if useKvmNestedVirt then ["-cpu" "kvm64,vmx=on"] else [];
+      virtualisation.qemu.options = ["-cpu" "kvm64,svm=on,vmx=on"];
       virtualisation.virtualbox.host.enable = true;
       test-support.displayManager.auto.user = "alice";
       users.users.alice.extraGroups = let
@@ -468,7 +457,7 @@ in mapAttrs (mkVBoxTest false vboxVMs) {
 
   headless = ''
     create_vm_headless()
-    machine.succeed(ru("VBoxHeadless --startvm headless & disown %1"))
+    machine.succeed(ru("VBoxHeadless --startvm headless >&2 & disown %1"))
     wait_for_startup_headless()
     wait_for_vm_boot_headless()
     shutdown_vm_headless()
@@ -476,6 +465,8 @@ in mapAttrs (mkVBoxTest false vboxVMs) {
   '';
 
   host-usb-permissions = ''
+    import sys
+
     user_usb = remove_uuids(vbm("list usbhost"))
     print(user_usb, file=sys.stderr)
     root_usb = remove_uuids(machine.succeed("VBoxManage list usbhost"))
diff --git a/nixos/tests/vscodium.nix b/nixos/tests/vscodium.nix
index 688ddfe07e3e1..3bdb99947a40b 100644
--- a/nixos/tests/vscodium.nix
+++ b/nixos/tests/vscodium.nix
@@ -32,6 +32,14 @@ let
         maintainers = [ synthetica turion ];
       };
       enableOCR = true;
+
+      # testScriptWithTypes:55: error: Item "function" of
+      # "Union[Callable[[Callable[..., Any]], ContextManager[Any]], ContextManager[Any]]"
+      # has no attribute "__enter__"
+      #     with codium_running:
+      #          ^
+      skipTypeCheck = true;
+
       testScript = ''
         @polling_condition
         def codium_running():
diff --git a/nixos/tests/zeronet-conservancy.nix b/nixos/tests/zeronet-conservancy.nix
new file mode 100644
index 0000000000000..8cb649cbdaabc
--- /dev/null
+++ b/nixos/tests/zeronet-conservancy.nix
@@ -0,0 +1,25 @@
+let
+  port = 43110;
+in
+import ./make-test-python.nix ({ pkgs, ... }: {
+  name = "zeronet-conservancy";
+  meta = with pkgs.lib.maintainers; {
+    maintainers = [ fgaz ];
+  };
+
+  nodes.machine = { config, pkgs, ... }: {
+    services.zeronet = {
+      enable = true;
+      package = pkgs.zeronet-conservancy;
+      inherit port;
+    };
+  };
+
+  testScript = ''
+    machine.wait_for_unit("zeronet.service")
+
+    machine.wait_for_open_port(${toString port})
+
+    machine.succeed("curl --fail -H 'Accept: text/html, application/xml, */*' localhost:${toString port}/Stats")
+  '';
+})
diff --git a/pkgs/applications/audio/amberol/default.nix b/pkgs/applications/audio/amberol/default.nix
index 11b940066bd7e..73eff299d0214 100644
--- a/pkgs/applications/audio/amberol/default.nix
+++ b/pkgs/applications/audio/amberol/default.nix
@@ -19,20 +19,20 @@
 
 stdenv.mkDerivation rec {
   pname = "amberol";
-  version = "0.7.0";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = pname;
     rev = version;
-    hash = "sha256-cBHFyPqhgcFOeYqMhF1aX3XCGAtqEZpI7Mj7b78Etmo=";
+    hash = "sha256-spVZOFqnY4cNbIY1ED3Zki6yPMoFDNG5BtuD456hPs4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-GaMJsIrTbhI1tmahEMlI1v5hmjw+tFEv9Wdne/kiYIA=";
+    hash = "sha256-8PEAyQ8JW45d/Lut3hUSKCzV7JjFTpvKGra5dj3byo4=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/audio/baudline/default.nix b/pkgs/applications/audio/baudline/default.nix
index b2a74e23dc5ea..6e5c53091d7c6 100644
--- a/pkgs/applications/audio/baudline/default.nix
+++ b/pkgs/applications/audio/baudline/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
     # See http://www.baudline.com/faq.html#licensing_terms.
     # (Do NOT (re)distribute on hydra.)
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.bjornfor ];
   };
diff --git a/pkgs/applications/audio/easyeffects/default.nix b/pkgs/applications/audio/easyeffects/default.nix
index ff7cce36712de..46b801bba331d 100644
--- a/pkgs/applications/audio/easyeffects/default.nix
+++ b/pkgs/applications/audio/easyeffects/default.nix
@@ -35,13 +35,13 @@
 
 stdenv.mkDerivation rec {
   pname = "easyeffects";
-  version = "6.2.5";
+  version = "6.2.6";
 
   src = fetchFromGitHub {
     owner = "wwmm";
     repo = "easyeffects";
     rev = "v${version}";
-    sha256 = "sha256-LvTvNBo3aUGUD4vA04YtINFBjTplhmkxj3FlbTZDTA0=";
+    sha256 = "sha256-1kXYh2Qk0Wj0LgHTcRVAKro7LAPV/UM5i9VmHjmxTx0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/flacon/default.nix b/pkgs/applications/audio/flacon/default.nix
index 83d9c5da83819..1b1a9e7dd1192 100644
--- a/pkgs/applications/audio/flacon/default.nix
+++ b/pkgs/applications/audio/flacon/default.nix
@@ -1,20 +1,20 @@
 { stdenv, lib, fetchFromGitHub, cmake, libuchardet, pkg-config, shntool, flac
-, opusTools, vorbis-tools, mp3gain, lame, wavpack, vorbisgain, gtk3, qtbase
+, opusTools, vorbis-tools, mp3gain, lame, taglib, wavpack, vorbisgain, gtk3, qtbase
 , qttools, wrapQtAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "flacon";
-  version = "7.0.1";
+  version = "9.0.0";
 
   src = fetchFromGitHub {
     owner = "flacon";
     repo = "flacon";
     rev = "v${version}";
-    sha256 = "sha256-35tARJkyhC8EisIyDCwuT/UUruzLjJRUuZysuqeNssM=";
+    sha256 = "sha256-x27tp8NnAae8y8n9Z1JMobFrgPVRADVZj2cRyul7+cM=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
-  buildInputs = [ qtbase qttools libuchardet ];
+  buildInputs = [ qtbase qttools libuchardet taglib ];
 
   bin_path = lib.makeBinPath [
     shntool
diff --git a/pkgs/applications/audio/ft2-clone/default.nix b/pkgs/applications/audio/ft2-clone/default.nix
index 03c8e8d6ce699..addc9313527a3 100644
--- a/pkgs/applications/audio/ft2-clone/default.nix
+++ b/pkgs/applications/audio/ft2-clone/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ft2-clone";
-  version = "1.54";
+  version = "1.55";
 
   src = fetchFromGitHub {
     owner = "8bitbubsy";
     repo = "ft2-clone";
     rev = "v${version}";
-    sha256 = "sha256-lNiQ0X2vvPGubb4Pde+eh0Z6ClCQgigIUM+PddaiVUg=";
+    sha256 = "sha256-qk6SHL9K4+9Em1jjrPOm14msOoqRiAahlRoiRiAMLC0=";
   };
 
   # Adapt the linux-only CMakeLists to darwin (more reliable than make-macos.sh)
diff --git a/pkgs/applications/audio/geonkick/default.nix b/pkgs/applications/audio/geonkick/default.nix
index 9739a88586ae0..0a99edd7b069c 100644
--- a/pkgs/applications/audio/geonkick/default.nix
+++ b/pkgs/applications/audio/geonkick/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "geonkick";
-  version = "2.9.0";
+  version = "2.9.1";
 
   src = fetchFromGitLab {
     owner = "iurie-sw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/BDK1PyRw4xOt+rzC9yX29aRQb1aDnDBIenSz+859OY=";
+    sha256 = "sha256-XSqcj8+X6QMBnIusPB9VNrgcbdiWhNMOYeFyKklGmO8=";
   };
 
   nativeBuildInputs = [ cmake pkg-config ];
diff --git a/pkgs/applications/audio/google-play-music-desktop-player/default.nix b/pkgs/applications/audio/google-play-music-desktop-player/default.nix
deleted file mode 100644
index 74286073b9048..0000000000000
--- a/pkgs/applications/audio/google-play-music-desktop-player/default.nix
+++ /dev/null
@@ -1,82 +0,0 @@
-{ lib, stdenv, alsa-lib, atk, at-spi2-atk, cairo, cups, dbus, dpkg, expat, fontconfig, freetype
-, fetchurl, GConf, gdk-pixbuf, glib, gtk2, gtk3, libpulseaudio, makeWrapper, nspr
-, nss, pango, udev, xorg
-}:
-
-let
-  version = "4.7.1";
-
-  deps = [
-    alsa-lib
-    atk
-    at-spi2-atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    GConf
-    gdk-pixbuf
-    glib
-    gtk2
-    gtk3
-    libpulseaudio
-    nspr
-    nss
-    pango
-    stdenv.cc.cc
-    udev
-    xorg.libX11
-    xorg.libxcb
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXScrnSaver
-    xorg.libXtst
-  ];
-
-in
-
-stdenv.mkDerivation {
-  pname = "google-play-music-desktop-player";
-  inherit version;
-
-  src = fetchurl {
-    url = "https://github.com/MarshallOfSound/Google-Play-Music-Desktop-Player-UNOFFICIAL-/releases/download/v${version}/google-play-music-desktop-player_${version}_amd64.deb";
-    sha256 = "1ljm9c5sv6wa7pa483yq03wq9j1h1jdh8363z5m2imz407yzgm5r";
-  };
-
-  dontBuild = true;
-  nativeBuildInputs = [ dpkg makeWrapper ];
-
-  unpackPhase = ''
-    dpkg -x $src .
-  '';
-
-  installPhase = ''
-    mkdir -p $out
-    cp -r ./usr/share $out
-    cp -r ./usr/bin $out
-
-    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-             "$out/share/google-play-music-desktop-player/Google Play Music Desktop Player"
-
-    wrapProgram $out/bin/google-play-music-desktop-player \
-      --prefix LD_LIBRARY_PATH : "$out/share/google-play-music-desktop-player" \
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath deps}"
-  '';
-
-  meta = {
-    homepage = "https://www.googleplaymusicdesktopplayer.com/";
-    description = "A beautiful cross platform Desktop Player for Google Play Music and YouTube Music";
-    license = lib.licenses.mit;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with lib.maintainers; [ anna328p SuprDewd ];
-  };
-}
diff --git a/pkgs/applications/audio/hqplayer-desktop/default.nix b/pkgs/applications/audio/hqplayer-desktop/default.nix
index 5cfd9c7cbe898..17c8f936efd11 100644
--- a/pkgs/applications/audio/hqplayer-desktop/default.nix
+++ b/pkgs/applications/audio/hqplayer-desktop/default.nix
@@ -86,6 +86,7 @@ mkDerivation rec {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software HD-audio player";
     license = licenses.unfree;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
   };
diff --git a/pkgs/applications/audio/klystrack/default.nix b/pkgs/applications/audio/klystrack/default.nix
index 5d26397efdb72..362c76a0d4dec 100644
--- a/pkgs/applications/audio/klystrack/default.nix
+++ b/pkgs/applications/audio/klystrack/default.nix
@@ -27,6 +27,12 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: libengine_gui.a(gui_menu.o):(.bss+0x0): multiple definition of
+  #     `menu_t'; objs.release/action.o:(.bss+0x20): first defined here
+  # TODO: remove it for 1.7.7+ release as it was fixed upstream.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   buildFlags = [ "PREFIX=${placeholder "out"}" "CFG=release" ];
 
   installPhase = ''
diff --git a/pkgs/applications/audio/losslessaudiochecker/default.nix b/pkgs/applications/audio/losslessaudiochecker/default.nix
index 9fecf7b9ba924..b7150d6b67713 100644
--- a/pkgs/applications/audio/losslessaudiochecker/default.nix
+++ b/pkgs/applications/audio/losslessaudiochecker/default.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Utility to check whether audio is truly lossless or not";
     homepage = "https://losslessaudiochecker.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ p-h ];
diff --git a/pkgs/applications/audio/midas/generic.nix b/pkgs/applications/audio/midas/generic.nix
index b58bd0b275726..8c34318191bcf 100644
--- a/pkgs/applications/audio/midas/generic.nix
+++ b/pkgs/applications/audio/midas/generic.nix
@@ -35,6 +35,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     inherit homepage;
     description = "Editor for the ${brand} ${type} digital mixer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = [ maintainers.magnetophon ];
diff --git a/pkgs/applications/audio/ncpamixer/default.nix b/pkgs/applications/audio/ncpamixer/default.nix
index aca96ef5da351..7663d1745d2fb 100644
--- a/pkgs/applications/audio/ncpamixer/default.nix
+++ b/pkgs/applications/audio/ncpamixer/default.nix
@@ -24,6 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/fulhax/ncpamixer";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ StijnDW SuperSandro2000 ];
+    maintainers = with maintainers; [ StijnDW ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/applications/audio/noisetorch/default.nix b/pkgs/applications/audio/noisetorch/default.nix
index 1015829709ebd..9fcd35a9de324 100644
--- a/pkgs/applications/audio/noisetorch/default.nix
+++ b/pkgs/applications/audio/noisetorch/default.nix
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   doCheck = false;
 
-  ldflags = [ "-X main.version=${version}" "-X main.distribution=nix" ];
+  ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.distribution=nix" ];
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix
index 8fe6beebc4b8d..1bbbe3583f90a 100644
--- a/pkgs/applications/audio/ocenaudio/default.nix
+++ b/pkgs/applications/audio/ocenaudio/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Cross-platform, easy to use, fast and functional audio editor";
     homepage = "https://www.ocenaudio.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/applications/audio/pocket-casts/default.nix b/pkgs/applications/audio/pocket-casts/default.nix
index 46625253d0f6a..7b7bf50a2f83f 100644
--- a/pkgs/applications/audio/pocket-casts/default.nix
+++ b/pkgs/applications/audio/pocket-casts/default.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Pocket Casts webapp, packaged for the Linux Desktop";
     homepage = "https://github.com/felicianotech/pocket-casts-desktop-app";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix
index 6c8ad8225f0b7..49b320703d13c 100644
--- a/pkgs/applications/audio/quodlibet/default.nix
+++ b/pkgs/applications/audio/quodlibet/default.nix
@@ -9,11 +9,11 @@
 let optionals = lib.optionals; in
 python3.pkgs.buildPythonApplication rec {
   pname = "quodlibet${tag}";
-  version = "4.4.0";
+  version = "4.5.0";
 
   src = fetchurl {
     url = "https://github.com/quodlibet/quodlibet/releases/download/release-${version}/quodlibet-${version}.tar.gz";
-    sha256 = "sha256-oDMY0nZ+SVlVF2PQqH+tl3OHr3EmCP5XJxQXaiS782c=";
+    sha256 = "sha256-MBYVgp9lLLr+2zVTkjcWKli8HucaVn0kn3eJ2SaCRbw=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook gettext ];
diff --git a/pkgs/applications/audio/reaper/default.nix b/pkgs/applications/audio/reaper/default.nix
index 820475be0c65b..6f94b0f531cb3 100644
--- a/pkgs/applications/audio/reaper/default.nix
+++ b/pkgs/applications/audio/reaper/default.nix
@@ -17,13 +17,13 @@
 
 stdenv.mkDerivation rec {
   pname = "reaper";
-  version = "6.47";
+  version = "6.61";
 
   src = fetchurl {
     url = "https://www.reaper.fm/files/${lib.versions.major version}.x/reaper${builtins.replaceStrings ["."] [""] version}_linux_${stdenv.hostPlatform.qemuArch}.tar.xz";
     hash = {
-      x86_64-linux = "sha256-31HmIx/ohbrzu5uj8KOOZiHNCmXwng9h+fIGaJfYyqA=";
-      aarch64-linux = "sha256-CMmcBpaZ6BEZJ1144aQhOJ/o2NrGD7/8aq+ObLVMXYE=";
+      x86_64-linux = "sha256-Lp2EVky1+ruc86LdMmvhZIisoYl0OxdkVnN3h/u09IQ=";
+      aarch64-linux = "sha256-sPLCMA//xAdWXjY7++R6eLWS56Zi0u+9ju7JlICGvVc=";
     }.${stdenv.hostPlatform.system};
   };
 
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Digital audio workstation";
     homepage = "https://www.reaper.fm/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ jfrankenau ilian orivej uniquepointer ];
diff --git a/pkgs/applications/audio/redux/default.nix b/pkgs/applications/audio/redux/default.nix
index 45ee78917ace3..41254cc9e50ee 100644
--- a/pkgs/applications/audio/redux/default.nix
+++ b/pkgs/applications/audio/redux/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Sample-based instrument, with a powerful phrase sequencer";
     homepage = "https://www.renoise.com/products/redux";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mihnea-s ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/renoise/default.nix b/pkgs/applications/audio/renoise/default.nix
index acd1d80c86d57..1be3f53dce5f9 100644
--- a/pkgs/applications/audio/renoise/default.nix
+++ b/pkgs/applications/audio/renoise/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Modern tracker-based DAW";
     homepage = "https://www.renoise.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/rymcast/default.nix b/pkgs/applications/audio/rymcast/default.nix
index 92d3151c835c0..06e711941a637 100644
--- a/pkgs/applications/audio/rymcast/default.nix
+++ b/pkgs/applications/audio/rymcast/default.nix
@@ -25,6 +25,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Player for Mega Drive/Genesis VGM files";
     homepage = "https://www.inphonik.com/products/rymcast-genesis-vgm-player/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ astsmtl ];
diff --git a/pkgs/applications/audio/soundwireserver/default.nix b/pkgs/applications/audio/soundwireserver/default.nix
index db8d28989b27a..b296ebdad602a 100755
--- a/pkgs/applications/audio/soundwireserver/default.nix
+++ b/pkgs/applications/audio/soundwireserver/default.nix
@@ -35,6 +35,7 @@ qt5.mkDerivation {
     homepage = "https://georgielabs.net/";
     maintainers = with maintainers; [ mkg20001 ];
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix
index 14caa6db9c45f..ecbdaec7f28af 100644
--- a/pkgs/applications/audio/spotify/default.nix
+++ b/pkgs/applications/audio/spotify/default.nix
@@ -167,6 +167,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://www.spotify.com/";
     description = "Play music from the Spotify music service";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ eelco ftrvxmtrx sheenobu mudri timokau ma27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/sunvox/default.nix b/pkgs/applications/audio/sunvox/default.nix
index 503079b9ed4b8..1bde46cdc944c 100644
--- a/pkgs/applications/audio/sunvox/default.nix
+++ b/pkgs/applications/audio/sunvox/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Small, fast and powerful modular synthesizer with pattern-based sequencer";
     license = licenses.unfreeRedistributable;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     homepage = "http://www.warmplace.ru/soft/sunvox/";
     maintainers = with maintainers; [ puffnfresh ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tidal-hifi/default.nix b/pkgs/applications/audio/tidal-hifi/default.nix
new file mode 100644
index 0000000000000..09b5c3f410c10
--- /dev/null
+++ b/pkgs/applications/audio/tidal-hifi/default.nix
@@ -0,0 +1,119 @@
+{ lib
+, stdenv
+, fetchurl
+, autoPatchelfHook
+, dpkg
+, makeWrapper
+, alsa-lib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, dbus
+, expat
+, ffmpeg
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gtk3
+, libappindicator-gtk3
+, libdbusmenu
+, libdrm
+, libnotify
+, libpulseaudio
+, libsecret
+, libuuid
+, libxkbcommon
+, mesa
+, nss
+, pango
+, systemd
+, xdg-utils
+, xorg
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tidal-hifi";
+  version = "4.0.1";
+
+  src = fetchurl {
+    url = "https://github.com/Mastermindzh/tidal-hifi/releases/download/${version}/tidal-hifi_${version}_amd64.deb";
+    sha256 = "1azxdr2m84ci6ppzy0j17wmza7prlnw055fks6s4i77sjw45rhlq";
+  };
+
+  nativeBuildInputs = [ autoPatchelfHook dpkg makeWrapper ];
+
+  buildInputs = [
+    alsa-lib
+    at-spi2-atk
+    at-spi2-core
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    ffmpeg
+    fontconfig
+    freetype
+    gdk-pixbuf
+    glib
+    gtk3
+    pango
+    systemd
+    mesa # for libgbm
+    nss
+    libuuid
+    libdrm
+    libnotify
+    libsecret
+    libpulseaudio
+    libxkbcommon
+    libappindicator-gtk3
+    xorg.libX11
+    xorg.libxcb
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXScrnSaver
+    xorg.libxshmfence
+    xorg.libXtst
+  ];
+
+  runtimeDependencies =
+    [ (lib.getLib systemd) libnotify libdbusmenu xdg-utils ];
+
+  unpackPhase = "dpkg-deb -x $src .";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p "$out/bin"
+    cp -R "opt" "$out"
+    cp -R "usr/share" "$out/share"
+    chmod -R g-w "$out"
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper $out/opt/tidal-hifi/tidal-hifi $out/bin/tidal-hifi \
+      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath buildInputs}" \
+      "''${gappsWrapperArgs[@]}"
+  '';
+
+  meta = with lib; {
+    description = "The web version of Tidal running in electron with hifi support thanks to widevine";
+    homepage = "https://github.com/Mastermindzh/tidal-hifi";
+    changelog = "https://github.com/Mastermindzh/tidal-hifi/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ alternateved ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/audio/tonelib-gfx/default.nix b/pkgs/applications/audio/tonelib-gfx/default.nix
index a0b3cf2879e6b..682627c0e8218 100644
--- a/pkgs/applications/audio/tonelib-gfx/default.nix
+++ b/pkgs/applications/audio/tonelib-gfx/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     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;
     maintainers = with maintainers; [ dan4ik605743 orivej ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-jam/default.nix b/pkgs/applications/audio/tonelib-jam/default.nix
index 17b3b1197f458..9229cba4839a2 100644
--- a/pkgs/applications/audio/tonelib-jam/default.nix
+++ b/pkgs/applications/audio/tonelib-jam/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Jam – the learning and practice software for guitar players";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-metal/default.nix b/pkgs/applications/audio/tonelib-metal/default.nix
index 9acb6982c6a72..29c5cb6a3f24e 100644
--- a/pkgs/applications/audio/tonelib-metal/default.nix
+++ b/pkgs/applications/audio/tonelib-metal/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Metal – Guitar amp simulator targeted at metal players";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/tonelib-zoom/default.nix b/pkgs/applications/audio/tonelib-zoom/default.nix
index 41539503e0203..74fe8645acf3c 100644
--- a/pkgs/applications/audio/tonelib-zoom/default.nix
+++ b/pkgs/applications/audio/tonelib-zoom/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ToneLib Zoom – change and save all the settings in your Zoom(r) guitar pedal";
     homepage = "https://tonelib.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/audio/transcribe/default.nix b/pkgs/applications/audio/transcribe/default.nix
index d10a0d8794180..06f0d47d8a2cd 100644
--- a/pkgs/applications/audio/transcribe/default.nix
+++ b/pkgs/applications/audio/transcribe/default.nix
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
       conventional music players.
     '';
     homepage = "https://www.seventhstring.com/xscribe/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/audio/vcv-rack/default.nix b/pkgs/applications/audio/vcv-rack/default.nix
index 789b97507a180..71174d599976a 100644
--- a/pkgs/applications/audio/vcv-rack/default.nix
+++ b/pkgs/applications/audio/vcv-rack/default.nix
@@ -1,50 +1,107 @@
-{ lib, stdenv, makeWrapper, fetchzip, fetchFromGitHub, pkg-config
-, alsa-lib, curl, glew, glfw, gtk2-x11, jansson, libjack2, libXext, libXi
-, libzip, rtaudio, rtmidi, speex, libsamplerate }:
+{ alsa-lib
+, copyDesktopItems
+, curl
+, fetchFromBitbucket
+, fetchFromGitHub
+, fetchzip
+, ghc_filesystem
+, glew
+, glfw
+, gnome
+, gtk3-x11
+, imagemagick
+, jansson
+, jq
+, lib
+, libarchive
+, libicns
+, libjack2
+, libpulseaudio
+, libsamplerate
+, libXext
+, libXi
+, makeDesktopItem
+, makeWrapper
+, pkg-config
+, rtaudio
+, rtmidi
+, speex
+, stdenv
+, wrapGAppsHook
+, zstd
+}:
 
 let
   # The package repo vendors some of the package dependencies as submodules.
-  # Others are downloaded with `make deps`. Due to previous issues with the
-  # `glfw` submodule (see above) and because we can not access the network when
-  # building in a sandbox, we fetch the dependency source manually.
-  pfft-source = fetchzip {
-    url = "https://vcvrack.com/downloads/dep/pffft.zip";
-    sha256 = "084csgqa6f1a270bhybjayrh3mpyi2jimc87qkdgsqcp8ycsx1l1";
+  # Unfortunately, they are not pinned, so we have no guarantee that they
+  # will be stable, and therefore, we can't use them directly. Instead
+  # we'll have to fetch them separately ourselves.
+  pffft-source = fetchFromBitbucket {
+    owner = "jpommier";
+    repo = "pffft";
+    rev = "988259a41d1522047a9420e6265a6ba8289c1654";
+    sha256 = "Oq5N02UNXsbhcPUfjMtD0cgqAZsGx9ke9A+ArrenzGE=";
+  };
+  fuzzysearchdatabase-source = fetchFromBitbucket {
+    owner = "j_norberg";
+    repo = "fuzzysearchdatabase";
+    rev = "fe62479811e503ef3c091f5a859d27bfcf0a44da";
+    sha256 = "zgeUzuuInHPeveBIjlivRGIz+NSb7cW/9hMndxm6qOA=";
   };
   nanovg-source = fetchFromGitHub {
-    owner = "memononen";
+    owner = "VCVRack";
     repo = "nanovg";
-    rev = "1f9c8864fc556a1be4d4bf1d6bfe20cde25734b4";
-    sha256 = "08r15zrr6p1kxigxzxrg5rgya7wwbdx7d078r362qbkmws83wk27";
+    rev = "0bebdb314aff9cfa28fde4744bcb037a2b3fd756";
+    sha256 = "HmQhCE/zIKc3f+Zld229s5i5MWzRrBMF9gYrn8JVQzg=";
   };
   nanosvg-source = fetchFromGitHub {
     owner = "memononen";
     repo = "nanosvg";
-    rev = "25241c5a8f8451d41ab1b02ab2d865b01600d949";
-    sha256 = "114qgfmazsdl53rm4pgqif3gv8msdmfwi91lyc2jfadgzfd83xkg";
+    rev = "ccdb1995134d340a93fb20e3a3d323ccb3838dd0";
+    sha256 = "ymziU0NgGqxPOKHwGm0QyEdK/8jL/QYk5UdIQ3Tn8jw=";
   };
   osdialog-source = fetchFromGitHub {
     owner = "AndrewBelt";
     repo = "osdialog";
-    rev = "e5db5de6444f4b2c4e1390c67b3efd718080c3da";
-    sha256 = "0iqxn1md053nl19hbjk8rqsdcmjwa5l5z0ci4fara77q43rc323i";
+    rev = "21b9dcc2a1bbdacb9b46da477ffd82a4ce9204b9";
+    sha256 = "+4VCBuQvfiuEUdjFu3IB2FwbHFrDJXTb4vcVg6ZFwSM=";
   };
   oui-blendish-source = fetchFromGitHub {
     owner = "AndrewBelt";
     repo = "oui-blendish";
-    rev = "79ec59e6bc7201017fc13a20c6e33380adca1660";
-    sha256 = "17kd0lh2x3x12bxkyhq6z8sg6vxln8m9qirf0basvcsmylr6rb64";
+    rev = "2fc6405883f8451944ed080547d073c8f9f31898";
+    sha256 = "/QZFZuI5kSsEvSfMJlcqB1HiZ9Vcf3vqLqWIMEgxQK8=";
+  };
+  fundamental-source = fetchFromGitHub {
+    owner = "VCVRack";
+    repo = "Fundamental";
+    rev = "533397cdcad5c6401ebd3937d6c1663de2473627"; # tip of branch v2
+    sha256 = "QnwOgrYxiCa/7t/u6F63Ks8C9E8k6T+hia4JZFhp1LI=";
   };
 in
-with lib; stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "VCV-Rack";
-  version = "1.1.6";
+  version = "2.0.6";
+
+  desktopItems = [
+    (makeDesktopItem {
+      type = "Application";
+      name = pname;
+      desktopName = "VCV Rack";
+      genericName = "Eurorack simulator";
+      comment = "Create music by patching together virtual synthesizer modules";
+      exec = "Rack";
+      icon = "Rack";
+      categories = [ "AudioVideo" "AudioVideoEditing" "Audio" ];
+      keywords = [ "music" ];
+    })
+  ];
 
   src = fetchFromGitHub {
     owner = "VCVRack";
     repo = "Rack";
     rev = "v${version}";
-    sha256 = "0ji64prr74qzxf5bx1sw022kbslx9nzll16lmk5in78hbl137b3i";
+    sha256 = "vvGx8tnE7gMiboVUTywIzBB1q/IfiJ8TPnSHvmfHUQg=";
   };
 
   patches = [
@@ -56,46 +113,101 @@ with lib; stdenv.mkDerivation rec {
     # above), we do it here manually
     mkdir -p dep/include
 
-    cp -r ${pfft-source} dep/jpommier-pffft-source
+    cp -r ${pffft-source}/* dep/pffft
+    cp -r ${fuzzysearchdatabase-source}/* dep/fuzzysearchdatabase
     cp -r ${nanovg-source}/* dep/nanovg
     cp -r ${nanosvg-source}/* dep/nanosvg
     cp -r ${osdialog-source}/* dep/osdialog
     cp -r ${oui-blendish-source}/* dep/oui-blendish
 
-    cp dep/jpommier-pffft-source/*.h dep/include
+    cp dep/pffft/*.h dep/include
+    cp dep/fuzzysearchdatabase/src/*.hpp dep/include
     cp dep/nanosvg/**/*.h dep/include
     cp dep/nanovg/src/*.h dep/include
     cp dep/osdialog/*.h dep/include
     cp dep/oui-blendish/*.h dep/include
 
-    substituteInPlace include/audio.hpp --replace "<RtAudio.h>" "<rtaudio/RtAudio.h>"
-    substituteInPlace compile.mk --replace "-march=nocona" ""
+    # Build and dist the Fundamental plugins
+    cp -r ${fundamental-source} plugins/Fundamental/
+    chmod -R +rw plugins/Fundamental # will be used as build dir
+    substituteInPlace plugin.mk --replace ":= all" ":= dist"
+
+    # Fix reference to zenity
+    substituteInPlace dep/osdialog/osdialog_zenity.c \
+      --replace 'zenityBin[] = "zenity"' 'zenityBin[] = "${gnome.zenity}/bin/zenity"'
   '';
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [ makeWrapper pkg-config ];
-  buildInputs = [ alsa-lib curl glew glfw gtk2-x11 jansson libjack2 libsamplerate libzip rtaudio rtmidi speex ];
+  nativeBuildInputs = [
+    copyDesktopItems
+    imagemagick
+    jq
+    libicns
+    makeWrapper
+    pkg-config
+    wrapGAppsHook
+  ];
+  buildInputs = [
+    alsa-lib
+    curl
+    ghc_filesystem
+    glew
+    glfw
+    gnome.zenity
+    gtk3-x11
+    jansson
+    libarchive
+    libjack2
+    libpulseaudio
+    libsamplerate
+    rtaudio
+    rtmidi
+    speex
+    zstd
+  ];
 
-  buildFlags = [ "Rack" ];
+  makeFlags = [ "all" "plugins" ];
 
   installPhase = ''
+    runHook preInstall
+
     install -D -m755 -t $out/bin Rack
+    install -D -m755 -t $out/lib libRack.so
 
     mkdir -p $out/share/vcv-rack
-    cp -r res Core.json template.vcv LICENSE* cacert.pem $out/share/vcv-rack
+    cp -r res cacert.pem Core.json template.vcv LICENSE-GPLv3.txt $out/share/vcv-rack
+    cp -r plugins/Fundamental/dist/Fundamental-*.vcvplugin $out/share/vcv-rack/Fundamental.vcvplugin
+
+    # Extract pngs from the Apple icon image and create
+    # the missing ones from the 1024x1024 image.
+    icns2png --extract icon.icns
+    for size in 16 24 32 48 64 128 256 512 1024; do
+      mkdir -pv $out/share/icons/hicolor/"$size"x"$size"/apps
+      if [ ! -e icon_"$size"x"$size"x32.png ] ; then
+        convert -resize "$size"x"$size" icon_1024x1024x32.png icon_"$size"x"$size"x32.png
+      fi
+      install -Dm644 icon_"$size"x"$size"x32.png $out/share/icons/hicolor/"$size"x"$size"/apps/Rack.png
+    done;
+
+    runHook postInstall
+  '';
 
-    # Override the default global resource file directory
-    wrapProgram $out/bin/Rack --add-flags "-s $out/share/vcv-rack"
+  dontWrapGApps = true;
+  postFixup = ''
+    # Wrap gApp and override the default global resource file directory
+    wrapProgram $out/bin/Rack \
+        "''${gappsWrapperArgs[@]}" \
+        --add-flags "-s $out/share/vcv-rack"
   '';
 
   meta = with lib; {
     description = "Open-source virtual modular synthesizer";
     homepage = "https://vcvrack.com/";
-    # The source is BSD-3 licensed, some of the art is CC-BY-NC 4.0 or under a
+    # The source is GPL3+ licensed, some of the art is CC-BY-NC 4.0 or under a
     # no-derivatives clause
-    license = with licenses; [ bsd3 cc-by-nc-40 unfreeRedistributable ];
-    maintainers = with maintainers; [ moredread nathyong ];
+    license = with licenses; [ gpl3Plus cc-by-nc-40 unfreeRedistributable ];
+    maintainers = with maintainers; [ nathyong jpotier ddelabru ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch b/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
index d310d57835e42..506ab6053053b 100644
--- a/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
+++ b/pkgs/applications/audio/vcv-rack/rack-minimize-vendoring.patch
@@ -1,13 +1,12 @@
 diff -ru a/Makefile b/Makefile
---- a/Makefile	1970-01-01 01:00:01.000000000 +0100
-+++ b/Makefile	1970-01-01 01:00:01.000000000 +0100
-@@ -21,8 +21,8 @@
- build/dep/osdialog/osdialog_gtk2.c.o: FLAGS += $(shell pkg-config --cflags gtk+-2.0)
+--- a/Makefile 1970-01-01 01:00:01.000000000 +0100
++++ b/Makefile 1970-01-01 01:00:01.000000000 +0100
+@@ -36,7 +36,7 @@ build/dep/osdialog/osdialog_gtk3.c.o: FLAGS += $(shell pkg-config --cflags gtk+-
  
- 	LDFLAGS += -rdynamic \
--		dep/lib/libGLEW.a dep/lib/libglfw3.a dep/lib/libjansson.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a dep/lib/libzip.a dep/lib/libz.a dep/lib/libspeexdsp.a dep/lib/libsamplerate.a dep/lib/librtmidi.a dep/lib/librtaudio.a \
-+		-lGLEW -lglfw -ljansson -lcurl -lssl -lcrypto -lzip -lz -lspeexdsp -lsamplerate -lrtmidi -lrtaudio \
-		-lpthread -lGL -ldl -lX11 -lasound -ljack \
- 		$(shell pkg-config --libs gtk+-2.0)
- 	TARGET := Rack
- endif
+ 	LDFLAGS += -Wl,--whole-archive
+ 	LDFLAGS += -static-libstdc++ -static-libgcc
+-	LDFLAGS += dep/lib/libGLEW.a dep/lib/libglfw3.a dep/lib/libjansson.a dep/lib/libcurl.a dep/lib/libssl.a dep/lib/libcrypto.a dep/lib/libarchive.a dep/lib/libzstd.a dep/lib/libspeexdsp.a dep/lib/libsamplerate.a dep/lib/librtmidi.a dep/lib/librtaudio.a
++	LDFLAGS += -lGLEW -lglfw -ljansson -lcurl -lssl -lcrypto -larchive -lz -lspeexdsp -lsamplerate -lrtmidi -lrtaudio
+ 	LDFLAGS += -Wl,--no-whole-archive
+ 	LDFLAGS += -lpthread -lGL -ldl -lX11 -lasound -ljack -lpulse -lpulse-simple
+ 	LDFLAGS += $(shell pkg-config --libs gtk+-3.0)
diff --git a/pkgs/applications/audio/virtual-ans/default.nix b/pkgs/applications/audio/virtual-ans/default.nix
index c1e41e41284d3..07f006aa0cc1a 100644
--- a/pkgs/applications/audio/virtual-ans/default.nix
+++ b/pkgs/applications/audio/virtual-ans/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
       + supported sound systems: ASIO, DirectSound, MME, ALSA, OSS, JACK, Audiobus, IAA.
       '';
     homepage = "https://warmplace.ru/soft/ans/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
     # I cannot test the Darwin version, so I'll leave it disabled
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/backup/vorta/default.nix b/pkgs/applications/backup/vorta/default.nix
index 235827eb83356..32d989e7a253a 100644
--- a/pkgs/applications/backup/vorta/default.nix
+++ b/pkgs/applications/backup/vorta/default.nix
@@ -8,13 +8,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "vorta";
-  version = "0.8.6";
+  version = "0.8.7";
 
   src = fetchFromGitHub {
     owner = "borgbase";
     repo = "vorta";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-J/Cl+et4AS44PPG2SmOHosKVw0XtOyNL0qJk68OHwQc=";
+    sha256 = "sha256-9SfHZbNM+lRtwLO/0dE9C4cHb3pSPkxBUITYNEdPMQw=";
   };
 
   nativeBuildInputs = [ wrapQtAppsHook ];
diff --git a/pkgs/applications/blockchains/btcpayserver/default.nix b/pkgs/applications/blockchains/btcpayserver/default.nix
index f93a8f329ef61..59879df61677c 100644
--- a/pkgs/applications/blockchains/btcpayserver/default.nix
+++ b/pkgs/applications/blockchains/btcpayserver/default.nix
@@ -26,7 +26,7 @@ buildDotnetModule rec {
   meta = with lib; {
     description = "Self-hosted, open-source cryptocurrency payment processor";
     homepage = "https://btcpayserver.org";
-    maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+    maintainers = with maintainers; [ kcalvinalvin erikarvstedt ];
     license = licenses.mit;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/blockchains/clightning/default.nix b/pkgs/applications/blockchains/clightning/default.nix
index 2cf31ae3c95fb..27e2fea2845ec 100644
--- a/pkgs/applications/blockchains/clightning/default.nix
+++ b/pkgs/applications/blockchains/clightning/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "clightning";
-  version = "0.11.1";
+  version = "0.11.2";
 
   src = fetchurl {
     url = "https://github.com/ElementsProject/lightning/releases/download/v${version}/clightning-v${version}.zip";
-    sha256 = "0vsh6gpv3458pfc5cggay9pw7bxjzyxpcniks9b2s3y1rxwk15xi";
+    sha256 = "09qqfnj809dpwar9ijm3ic5cv4019hsnvh2h6sfpdqp1smf9igxs";
   };
 
   # when building on darwin we need dawin.cctools to provide the correct libtool
diff --git a/pkgs/applications/blockchains/exodus/default.nix b/pkgs/applications/blockchains/exodus/default.nix
index d13278b7deecd..654da25261d3f 100644
--- a/pkgs/applications/blockchains/exodus/default.nix
+++ b/pkgs/applications/blockchains/exodus/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.exodus.io/";
     description = "Top-rated cryptocurrency wallet with Trezor integration and built-in Exchange";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mmahut rople380 ];
diff --git a/pkgs/applications/blockchains/go-ethereum/default.nix b/pkgs/applications/blockchains/go-ethereum/default.nix
index 661a25c8314b4..ef79e514638af 100644
--- a/pkgs/applications/blockchains/go-ethereum/default.nix
+++ b/pkgs/applications/blockchains/go-ethereum/default.nix
@@ -9,16 +9,16 @@ let
 
 in buildGoModule rec {
   pname = "go-ethereum";
-  version = "1.10.17";
+  version = "1.10.18";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-GBlrg4wOiqEQTZC3CtfAZbIvS16/pSjEedEDrPGNUtY=";
+    sha256 = "1jfyhzklznjrdki6m8wjgqzp63b6n6vy7ws3l0al58zkaybnpikw";
   };
 
-  vendorSha256 = "sha256-D4odWuGFipSvbKbNlA6PkTo3rWGTCptJcn/7V7ZA7qs=";
+  vendorSha256 = "10xpxz8ybgwqizqy9d3phza8mlxxpsbk4qsf271r7ls4qr5q1wxz";
 
   doCheck = false;
 
diff --git a/pkgs/applications/blockchains/ledger-live-desktop/default.nix b/pkgs/applications/blockchains/ledger-live-desktop/default.nix
index c1b5c04e1fb02..adf2119f3ebf7 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.42.0";
+  version = "2.43.1";
 
   src = fetchurl {
-    url = "https://github.com/LedgerHQ/${pname}/releases/download/v${version}/${pname}-${version}-linux-x86_64.AppImage";
-    hash = "sha256-LhpZ2aTPT3XJWeWsl7MCbFsgwSqTHfpdRJD9SveIqQg=";
+    url = "https://download.live.ledger.com/${pname}-${version}-linux-x86_64.AppImage";
+    hash = "sha256-qjlTYIe7Ep3maS3+3vjrtrD2T9plELOTddZfaaL2SXI=";
   };
 
   appimageContents = appimageTools.extractType2 {
diff --git a/pkgs/applications/blockchains/lightning-loop/default.nix b/pkgs/applications/blockchains/lightning-loop/default.nix
index 6e99e8fe4122c..7efba6de079d9 100644
--- a/pkgs/applications/blockchains/lightning-loop/default.nix
+++ b/pkgs/applications/blockchains/lightning-loop/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "lightning-loop";
-  version = "0.18.0-beta";
+  version = "0.19.1-beta";
 
   src = fetchFromGitHub {
     owner = "lightninglabs";
     repo = "loop";
     rev = "v${version}";
-    sha256 = "1kg5nlvb4lb3cjn84wcylhq0l73d2n6rg4n1srnxmgs96v41y78f";
+    sha256 = "08jn1ybh9l9qy4j9b3psvgk7b869aaabpxh73v81980qflb9snnc";
   };
 
-  vendorSha256 = "0q3wbjfaqdj29sjlhx6fhc0p4d12aa31s6ia36jalcvf659ybb0l";
+  vendorSha256 = "0wirlf43jl888bh2qxis1ihsr1g2lp2rx7p100dsb3imqbm25q3b";
 
   subPackages = [ "cmd/loop" "cmd/loopd" ];
 
diff --git a/pkgs/applications/blockchains/lndconnect/default.nix b/pkgs/applications/blockchains/lndconnect/default.nix
index f1745655a56e3..9a3aa137453b4 100644
--- a/pkgs/applications/blockchains/lndconnect/default.nix
+++ b/pkgs/applications/blockchains/lndconnect/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, testVersion, lndconnect }:
+{ lib, buildGoModule, fetchFromGitHub, lndconnect }:
 buildGoModule rec {
   pname = "lndconnect";
   version = "0.2.1";
diff --git a/pkgs/applications/blockchains/nbxplorer/default.nix b/pkgs/applications/blockchains/nbxplorer/default.nix
index 4d684f6a93505..3810d6f2251ce 100644
--- a/pkgs/applications/blockchains/nbxplorer/default.nix
+++ b/pkgs/applications/blockchains/nbxplorer/default.nix
@@ -22,7 +22,7 @@ buildDotnetModule rec {
 
   meta = with lib; {
     description = "Minimalist UTXO tracker for HD Cryptocurrency Wallets";
-    maintainers = with maintainers; [ kcalvinalvin earvstedt ];
+    maintainers = with maintainers; [ kcalvinalvin erikarvstedt ];
     license = licenses.mit;
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/blockchains/nearcore/default.nix b/pkgs/applications/blockchains/nearcore/default.nix
index 515108ab90bda..2c5f97c9c78ed 100644
--- a/pkgs/applications/blockchains/nearcore/default.nix
+++ b/pkgs/applications/blockchains/nearcore/default.nix
@@ -4,7 +4,7 @@
 }:
 rustPlatform.buildRustPackage rec {
   pname = "nearcore";
-  version = "1.26.1";
+  version = "1.27.0";
 
   # https://github.com/near/nearcore/tags
   src = fetchFromGitHub {
@@ -12,10 +12,10 @@ rustPlatform.buildRustPackage rec {
     repo = "nearcore";
     # there is also a branch for this version number, so we need to be explicit
     rev = "refs/tags/${version}";
-    sha256 = "sha256-WoQtDdbFcvl6Wp5uv2tr/W/YYH8dyezF+LzSJ5oJcYY=";
+    sha256 = "sha256-B9HqUa0mBSvsCPzxPt4NqpV99rV4lmQ9Q/z9lxob9oM=";
   };
 
-  cargoSha256 = "sha256-7h14XzhhPmkPoTx0kkJl7I7CPqbRAtxa1zpplYxg4p4=";
+  cargoSha256 = "sha256-6GIt3J6y/O8XaHQJKRSPRgK2XbghMLif4e2Btdww9Ng=";
 
   postPatch = ''
     substituteInPlace neard/build.rs \
diff --git a/pkgs/applications/blockchains/sparrow/default.nix b/pkgs/applications/blockchains/sparrow/default.nix
index bf43bac96958a..e3b54a7465634 100644
--- a/pkgs/applications/blockchains/sparrow/default.nix
+++ b/pkgs/applications/blockchains/sparrow/default.nix
@@ -225,6 +225,10 @@ stdenv.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.";
     homepage = "https://sparrowwallet.com";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ emmanuelrosa _1000101 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/blockchains/wasabibackend/default.nix b/pkgs/applications/blockchains/wasabibackend/default.nix
index df30302bc6c50..e4e97cae21a0d 100644
--- a/pkgs/applications/blockchains/wasabibackend/default.nix
+++ b/pkgs/applications/blockchains/wasabibackend/default.nix
@@ -43,6 +43,7 @@ buildDotnetModule rec {
   meta = with lib; {
     description = "Backend for the Wasabi Wallet";
     homepage = "https://wasabiwallet.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/blockchains/wasabibackend/deps.nix b/pkgs/applications/blockchains/wasabibackend/deps.nix
index 782f183da07ed..273f2a5eafd78 100644
--- a/pkgs/applications/blockchains/wasabibackend/deps.nix
+++ b/pkgs/applications/blockchains/wasabibackend/deps.nix
@@ -1,8 +1,7 @@
 { fetchNuGet }: [
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "0rib2121wri6wj6h4f6w4yqw9qp2xsad3ind63fmp1sr649jifyh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0z29rrhc87g0bi273lcqd608f7ngd16nv85v8549231yvf99n60x"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "0pbm6hpibsvq5w8hyvvllz4qns287x3l8bc07krffv23yfbv8zwy"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "3.1.1"; sha256 = "0c0aaz9rlh9chc53dnv5jryp0x0415hipaizrmih3kzwd3fmqpml"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "3.1.1"; sha256 = "1c2lrlp64kkacnjgdyygr6fqdawk10l8j4qgppii6rq61yjwhcig"; })
   (fetchNuGet { pname = "Microsoft.Build"; version = "15.3.409"; sha256 = "0vzq6csp2yys9s96c7i37bjml439rdi47g8f5rzqdr7xf5a1jk81"; })
@@ -19,13 +18,11 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "1.0.0"; sha256 = "1sh9bidmhy32gkz6fkli79mxv06546ybrzppfw5v2aq0bda1ghka"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App"; version = "2.0.5"; sha256 = "0qb7k624w7l0zhapdp519ymqg84a67r8zyd8cpj42hywsgb0dqv6"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.21"; sha256 = "01kbhi29lhv6mg1zfsyakz3z8hfbxnc0kxy0fczl8xqviik9svx7"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.26"; sha256 = "1vk4dr2z72nmjg2skqvy2m2h5brqp21v51pnd7ldpm7asgr5ck8n"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.26"; sha256 = "0l5yfnpbd36n38rjlmhsnq4bniq1fcssv4qh8kb9h3qigz40qxj9"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "1h9b8fwgwbycvn1ngxnpdz3s1zh59wi2iy8n4y2nfkmz2rbldrrm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0y06qz4pgflwia222mljg19nlfmhcg0qs1a8wm3zwj602wzy3nll"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "1half7rywhxb1x19gzddvjqbll4whx9wmwdlk57iy68djas95lmy"; })
   (fetchNuGet { pname = "Microsoft.NETCore.DotNetAppHost"; version = "2.0.5"; sha256 = "00bsxdg9c8msjxyffvfi8siqk8v2m7ca8fqy1npv7b2pzg3byjws"; })
   (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostPolicy"; version = "2.0.5"; sha256 = "0v5csskiwpk8kz8wclqad8kcjmxr7ik4w99wl05740qvaag3qysk"; })
   (fetchNuGet { pname = "Microsoft.NETCore.DotNetHostResolver"; version = "2.0.5"; sha256 = "1sz2fdp8fdwz21x3lr2m1zhhrbix6iz699fjkwiryqdjl4ygd3hw"; })
@@ -69,9 +66,9 @@
   (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "05ndbai4vpqrry0ghbfgqc8xblmplwjgndxmdn1zklqimczwjg2d"; })
   (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.0.1"; sha256 = "0ic5dgc45jkhcr1g9xmmzjm7ffiw4cymm0fprczlx4fnww4783nm"; })
   (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0x1cwd7cvifzmn5x1wafvj75zdxlk3mxy860igh3x1wx0s8167y4"; })
-  (fetchNuGet { pname = "runtime.win7.System.Private.Uri"; version = "4.0.1"; sha256 = "1ibrwabavdpqapnplm5kh6nz9vgcwv0wn61w1p60v262kif6sglp"; })
   (fetchNuGet { pname = "runtime.win.System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "1ylkj4v7aq00svij7aq82d86afpwqgrqf2kpikabxl26p19ry9wm"; })
   (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.1.0"; sha256 = "1zmx2msa04ka8mgh8viahi4pqpp86vdhzij2rg1jg131bwlv59yw"; })
+  (fetchNuGet { pname = "runtime.win7.System.Private.Uri"; version = "4.0.1"; sha256 = "1ibrwabavdpqapnplm5kh6nz9vgcwv0wn61w1p60v262kif6sglp"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore"; version = "5.0.0"; sha256 = "0rn2awmzrsrppk97xbbwk4kq1mys9bygb5xhl6mphbk0hchrvh09"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.Swagger"; version = "5.0.0"; sha256 = "1341nv8nmh6avs3y7w2szzir5qd0bndxwrkdmvvj3hcxj1126w2f"; })
   (fetchNuGet { pname = "Swashbuckle.AspNetCore.SwaggerGen"; version = "5.0.0"; sha256 = "00swg2avqnb38q2bsxljd34n8rpknp74h9vbn0fdnfds3a32cqr4"; })
diff --git a/pkgs/applications/blockchains/wasabiwallet/default.nix b/pkgs/applications/blockchains/wasabiwallet/default.nix
index e3cea78629f41..71ee383282390 100644
--- a/pkgs/applications/blockchains/wasabiwallet/default.nix
+++ b/pkgs/applications/blockchains/wasabiwallet/default.nix
@@ -60,6 +60,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Privacy focused Bitcoin wallet";
     homepage = "https://wasabiwallet.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ mmahut ];
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index 84704e71cea8a..29c4bb6c884c9 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -3,14 +3,14 @@
 let
   versions = {
     atom = {
-      version = "1.58.0";
-      sha256 = "sha256-QxDhr4gwlS9O/lk0nfqsw5sFiPckSTFL15XtRpQh0tU=";
+      version = "1.60.0";
+      sha256 = "sha256-XHwCWQYrnUkR0lN7/Or/Uxb53hEWmIQKkNfNSX34kaY=";
     };
 
     atom-beta = {
-      version = "1.59.0";
+      version = "1.61.0";
       beta = 0;
-      sha256 = "sha256-s1XHR2e4JPywdLiIcjTqMRILARDthHxBeTQOCIkhmXE=";
+      sha256 = "sha256-viY/is7Nh3tlIkHhUBWtgMAjD6HDiC0pyJpUjsP5pRY=";
       broken = true;
     };
   };
@@ -86,6 +86,7 @@ let
     meta = with lib; {
       description = "A hackable text editor for the 21st Century";
       homepage = "https://atom.io/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.mit;
       maintainers = with maintainers; [ offline ysndr ];
       platforms = platforms.x86_64;
diff --git a/pkgs/applications/editors/cudatext/default.nix b/pkgs/applications/editors/cudatext/default.nix
index 7f6c54858836e..1a5c82c344fa1 100644
--- a/pkgs/applications/editors/cudatext/default.nix
+++ b/pkgs/applications/editors/cudatext/default.nix
@@ -38,13 +38,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "cudatext";
-  version = "1.165.2";
+  version = "1.166.2";
 
   src = fetchFromGitHub {
     owner = "Alexey-T";
     repo = "CudaText";
     rev = version;
-    sha256 = "sha256-eNpU7PpzyL2KHPL6cPmxZw/49VALjCWUdavV6Ex1IQI=";
+    sha256 = "sha256-kJ1UpVff6FS/gk3Ecz+GEDFYeu2CmXG5ehFEawk+/yg=";
   };
 
   postPatch = ''
@@ -66,7 +66,7 @@ stdenv.mkDerivation rec {
   NIX_LDFLAGS = "--as-needed -rpath ${lib.makeLibraryPath buildInputs}";
 
   buildPhase = lib.concatStringsSep "\n" (lib.mapAttrsToList (name: dep: ''
-    cp -r --no-preserve=mode ${dep} ${name}
+    ln -s ${dep} ${name}
   '') deps) + ''
     lazbuild --lazarusdir=${lazarus}/share/lazarus --pcp=./lazarus --ws=${widgetset} \
       bgrabitmap/bgrabitmap/bgrabitmappack.lpk \
@@ -83,7 +83,7 @@ stdenv.mkDerivation rec {
   '';
 
   installPhase = ''
-    install -Dm755 app/cudatext $out/bin/cudatext
+    install -Dm755 app/cudatext -t $out/bin
 
     install -dm755 $out/share/cudatext
     cp -r app/{data,py,settings_default} $out/share/cudatext
diff --git a/pkgs/applications/editors/cudatext/deps.json b/pkgs/applications/editors/cudatext/deps.json
index f2c4fc6539a15..840d39c66c2d9 100644
--- a/pkgs/applications/editors/cudatext/deps.json
+++ b/pkgs/applications/editors/cudatext/deps.json
@@ -1,23 +1,23 @@
 {
   "EncConv": {
     "owner": "Alexey-T",
-    "rev": "2022.04.18",
-    "sha256": "sha256-UV07a9qNzd0JQWCq/eD0K9fA7kxAKj5OP7dOpECo8xw="
+    "rev": "2022.06.19",
+    "sha256": "sha256-M00rHH3dG6Vx6MEALxRNlnLLfX/rRI+rdTS7riOhgeg="
   },
   "ATBinHex-Lazarus": {
     "owner": "Alexey-T",
-    "rev": "2022.04.16",
-    "sha256": "sha256-7ye73KSpoPvvxBNwBC3uloufFE+448RDyNScumk1ViE="
+    "rev": "2022.06.14",
+    "sha256": "sha256-3QhARraYURW5uCf2f4MZfUbxdbsg9h7BlXUxKcz4jwA="
   },
   "ATFlatControls": {
     "owner": "Alexey-T",
-    "rev": "2022.05.06",
-    "sha256": "sha256-mYZ3mgtUpQ8sry5WmdluHca/CR7RqR9GRrxIoeZFLes="
+    "rev": "2022.06.19",
+    "sha256": "sha256-4pkwgg2U6NAGv+fVFKIli2Qe3fyDMiliFLJSgsh1hsQ="
   },
   "ATSynEdit": {
     "owner": "Alexey-T",
-    "rev": "2022.06.01",
-    "sha256": "sha256-dilFwvtD8OLLq7QOPWSG3FeBM12Yy4ztM+CedJQAAaU="
+    "rev": "2022.06.14",
+    "sha256": "sha256-rS4hO4jm9k6raspPzX7z7HF8cdTqcwcD2DDRvQFQjLk="
   },
   "ATSynEdit_Cmp": {
     "owner": "Alexey-T",
@@ -26,13 +26,13 @@
   },
   "EControl": {
     "owner": "Alexey-T",
-    "rev": "2022.05.06",
-    "sha256": "sha256-ppm8Wuxhi5N3Er0f0h9d+v2spwEMr7ksf9tz4vI42+M="
+    "rev": "2022.06.14",
+    "sha256": "sha256-P21Tb/hhQvXvT3LhM3lw4B0joQ2cFxsOXjljKaut6OM="
   },
   "ATSynEdit_Ex": {
     "owner": "Alexey-T",
-    "rev": "2022.05.23",
-    "sha256": "sha256-/PqEx2Z1TVjnxfeWR9qBZUNzdqDBttuLmSBzIEPe1MY="
+    "rev": "2022.06.14",
+    "sha256": "sha256-Kcl3y5SN9DKUDL3ozjMrlsObsMVtGuU5iWrpLoMbPz4="
   },
   "Python-for-Lazarus": {
     "owner": "Alexey-T",
@@ -51,7 +51,7 @@
   },
   "bgrabitmap": {
     "owner": "bgrabitmap",
-    "rev": "v11.4",
-    "sha256": "sha256-jZL8lzjua033E76IL0HIk/fihC73ifCb4LqMni7vvb0="
+    "rev": "v11.5",
+    "sha256": "sha256-Pevh+yhtN3oSSvbQfnO7SM6UHBVe0sSpbK8ss98XqcU="
   }
 }
diff --git a/pkgs/applications/editors/cudatext/update.sh b/pkgs/applications/editors/cudatext/update.sh
index f7aae6ff8b494..5cee9d709a0ba 100755
--- a/pkgs/applications/editors/cudatext/update.sh
+++ b/pkgs/applications/editors/cudatext/update.sh
@@ -4,7 +4,17 @@
 set -euo pipefail
 cd "$(dirname "$0")"
 
+nixpkgs="$(git rev-parse --show-toplevel)"
+
+oldVersion=$(nix-instantiate --eval -E "(import \"$nixpkgs\" { config = {}; overlays = []; }).cudatext.version" | tr -d '"')
 version=$(curl -s https://api.github.com/repos/Alexey-T/CudaText/releases/latest | jq -r '.tag_name')
+
+if [[ $version == $oldVersion ]]; then
+  echo "Already at latest version $version"
+  exit 0
+fi
+echo "New version: $version"
+
 url="https://github.com/Alexey-T/CudaText/archive/refs/tags/${version}.tar.gz"
 hash=$(nix-prefetch-url --quiet --unpack --type sha256 $url)
 sriHash=$(nix hash to-sri --type sha256 $hash)
diff --git a/pkgs/applications/editors/eclipse/build-eclipse.nix b/pkgs/applications/editors/eclipse/build-eclipse.nix
index 39b94664f0475..19a2e378f30a7 100644
--- a/pkgs/applications/editors/eclipse/build-eclipse.nix
+++ b/pkgs/applications/editors/eclipse/build-eclipse.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.eclipse.org/";
     inherit description;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
   };
 
diff --git a/pkgs/applications/editors/eclipse/plugins.nix b/pkgs/applications/editors/eclipse/plugins.nix
index f81d439a3d25b..2571f4e0b4950 100644
--- a/pkgs/applications/editors/eclipse/plugins.nix
+++ b/pkgs/applications/editors/eclipse/plugins.nix
@@ -185,20 +185,20 @@ rec {
 
   anyedittools = buildEclipsePlugin rec {
     name = "anyedit-${version}";
-    version = "2.7.1.201709201439";
+    version = "2.7.2.202006062100";
 
     srcFeature = fetchurl {
-      url = "http://andrei.gmxhome.de/eclipse/features/AnyEditTools_${version}.jar";
-      sha256 = "1wqzl7wq85m9gil8rnvly45ps0a2m0svw613pg6djs5i7amhnayh";
+      url = "https://github.com/iloveeclipse/plugins/blob/latest/features/AnyEditTools_${version}.jar";
+      sha256 = "0dwwwvz8by10f5gnws1ahmg02g6v4xbaqcwc0cydvv1h52cyb40g";
     };
 
     srcPlugin = fetchurl {
-      url = "https://github.com/iloveeclipse/anyedittools/releases/download/2.7.1/de.loskutov.anyedit.AnyEditTools_${version}.jar";
-      sha256 = "03iyb6j2srq74iigmg7dk098c2svyv0ygdfql5jqr44a32n07k8q";
+      url = "https://github.com/iloveeclipse/plugins/blob/latest/plugins/de.loskutov.anyedit.AnyEditTools_${version}.jar";
+      sha256 = "1ip8dk92ka7bczw1bkbs3zkclmwr28ds5q1wrzh525wb70x8v6fi";
     };
 
     meta = with lib; {
-      homepage = "http://andrei.gmxhome.de/anyedit/";
+      homepage = "https://github.com/iloveeclipse/plugins";
       description = "Adds new tools to the context menu of text-based editors";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.epl10;
@@ -231,20 +231,20 @@ rec {
 
   bytecode-outline = buildEclipsePlugin rec {
     name = "bytecode-outline-${version}";
-    version = "2.5.0.201711011753-5a57fdf";
+    version = "1.0.1.202006062100";
 
     srcFeature = fetchurl {
-      url = "http://andrei.gmxhome.de/eclipse/features/de.loskutov.BytecodeOutline.feature_${version}.jar";
-      sha256 = "0yciqhcq0n5i326mwy57r4ywmkz2c2jky7r4pcmznmhvks3z65ps";
+      url = "https://github.com/iloveeclipse/plugins/blob/latest/features/org.eclipse.jdt.bcoview.feature_${version}.jar";
+      sha256 = "0zbcph72lgv8cb5n4phcl3qsybc5q5yviwbv8yjv4v12m4l15wpk";
     };
 
     srcPlugin = fetchurl {
-      url = "http://dl.bintray.com/iloveeclipse/plugins/de.loskutov.BytecodeOutline_${version}.jar";
-      sha256 = "1vmsqv32jfl7anvdkw0vir342miv5sr9df7vd1w44lf1yf97vxlw";
+      url = "https://github.com/iloveeclipse/plugins/blob/latest/plugins/org.eclipse.jdt.bcoview_${version}.jar";
+      sha256 = "1bx860k4haqcnhy8825kn4df0pyzd680qbnvjmxfrlxrqhr66fbb";
     };
 
     meta = with lib; {
-      homepage = "http://andrei.gmxhome.de/bytecode/";
+      homepage = "https://github.com/iloveeclipse/plugins";
       description = "Shows disassembled bytecode of current java editor or class file";
       sourceProvenance = with sourceTypes; [ binaryBytecode ];
       license = licenses.bsd2;
diff --git a/pkgs/applications/editors/featherpad/default.nix b/pkgs/applications/editors/featherpad/default.nix
index f722f8c3db820..e2d4e6a47b229 100644
--- a/pkgs/applications/editors/featherpad/default.nix
+++ b/pkgs/applications/editors/featherpad/default.nix
@@ -3,13 +3,13 @@
 
 mkDerivation rec {
   pname = "featherpad";
-  version = "1.1.1";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "tsujan";
     repo = "FeatherPad";
     rev = "V${version}";
-    sha256 = "sha256-qDhubKk6FLZmVxp4SkGm1B7zIg6rPtPRoFGCcBYUDFA=";
+    sha256 = "sha256-KKk3acjzqtNhetus/TZFSv2SUSYMzWrYYQ+Uj/XLSKc=";
   };
 
   nativeBuildInputs = [ cmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/ghostwriter/default.nix b/pkgs/applications/editors/ghostwriter/default.nix
index b97025d103c85..e4b6393b67e9b 100644
--- a/pkgs/applications/editors/ghostwriter/default.nix
+++ b/pkgs/applications/editors/ghostwriter/default.nix
@@ -14,13 +14,13 @@
 
 mkDerivation rec {
   pname = "ghostwriter";
-  version = "2.1.3";
+  version = "2.1.4";
 
   src = fetchFromGitHub {
     owner = "wereturtle";
     repo = pname;
     rev = version;
-    hash = "sha256-U6evyaC7fLFyKzeDNAI3U3/IcCk8DTY8pb3e3xqSfwk=";
+    hash = "sha256-Vr1w9bAtjQK1ZevFDWQ7xNsUrdv5qrP+JHe1Cuc2CvE=";
   };
 
   nativeBuildInputs = [ qmake pkg-config qttools ];
diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix
index 41c92a6d24e8c..b06cb4d862458 100644
--- a/pkgs/applications/editors/jetbrains/default.nix
+++ b/pkgs/applications/editors/jetbrains/default.nix
@@ -162,7 +162,7 @@ let
           with on-the-fly code analysis, error prevention and
           automated refactorings for PHP and JavaScript code.
         '';
-        maintainers = with maintainers; [ schristo ma27 ];
+        maintainers = with maintainers; [ schristo ];
       };
     });
 
diff --git a/pkgs/applications/editors/ldtk/default.nix b/pkgs/applications/editors/ldtk/default.nix
new file mode 100644
index 0000000000000..175026440daaa
--- /dev/null
+++ b/pkgs/applications/editors/ldtk/default.nix
@@ -0,0 +1,58 @@
+{ lib, stdenv, fetchurl, makeWrapper, makeDesktopItem, copyDesktopItems, unzip
+, appimage-run }:
+
+stdenv.mkDerivation rec {
+  pname = "ldtk";
+  version = "1.1.3";
+
+  src = fetchurl {
+    url = "https://github.com/deepnight/ldtk/releases/download/v${version}/ubuntu-distribution.zip";
+    sha256 = "sha256-qw7+4k4IH2+9DX4ny8EBbSlyXBrk/y91W04+zWPGupk=";
+  };
+
+  nativeBuildInputs = [ unzip makeWrapper copyDesktopItems appimage-run ];
+
+  buildInputs = [ appimage-run ];
+
+  unpackPhase = ''
+    runHook preUnpack
+
+    unzip $src
+    appimage-run -x src 'LDtk ${version} installer.AppImage'
+
+    runHook postUnpack
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm644 'LDtk ${version} installer.AppImage' $out/share/ldtk.AppImage
+    makeWrapper ${appimage-run}/bin/appimage-run $out/bin/ldtk \
+      --add-flags $out/share/ldtk.AppImage
+    install -Dm644 src/ldtk.png $out/share/icons/hicolor/1024x1024/apps/ldtk.png
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "ldtk";
+      exec = "ldtk";
+      icon = "ldtk";
+      terminal = false;
+      desktopName = "LDtk";
+      comment = "2D level editor";
+      categories = [ "Utility" ];
+      mimeTypes = [ "application/json" ];
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "https://ldtk.io/";
+    description = "Modern, lightweight and efficient 2D level editor";
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ felschr ];
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+  };
+}
diff --git a/pkgs/applications/editors/lighttable/default.nix b/pkgs/applications/editors/lighttable/default.nix
deleted file mode 100644
index e2e08a84c884a..0000000000000
--- a/pkgs/applications/editors/lighttable/default.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-{ stdenv, lib, fetchurl, zlib, glib, alsa-lib, makeDesktopItem
-, dbus, gtk2, atk, pango, freetype, fontconfig, libgnome-keyring3, gdk-pixbuf
-, cairo, cups, expat, libgpg-error, nspr, gnome2, nss, xorg, systemd, libnotify
-}:
-
-let
-  libPath = lib.makeLibraryPath [
-      stdenv.cc.cc zlib glib dbus gtk2 atk pango freetype libgnome-keyring3 nss
-      fontconfig gdk-pixbuf cairo cups expat libgpg-error alsa-lib nspr gnome2.GConf
-      xorg.libXrender xorg.libX11 xorg.libXext xorg.libXdamage xorg.libXtst
-      xorg.libXcomposite xorg.libXi xorg.libXfixes libnotify xorg.libXrandr
-      xorg.libXcursor
-  ];
-  desktopItem = makeDesktopItem {
-    name = "LightTable";
-    exec = "light";
-    comment = "LightTable";
-    desktopName = "LightTable";
-    genericName = "the next generation code editor";
-  };
-in
-
-stdenv.mkDerivation rec {
-  pname = "lighttable";
-  version = "0.8.1";
-
-  src =
-      fetchurl {
-        name = "LightTableLinux64.tar.gz";
-        url = "https://github.com/LightTable/LightTable/releases/download/${version}/${pname}-${version}-linux.tar.gz";
-        sha256 = "06fj725xfhf3fwrf7dya7ijmxq3v76kfmd4lr2067a92zhlwr5pv";
-      };
-
-  dontConfigure = true;
-
-  installPhase = ''
-    tar xf ${src}
-    mkdir -p $out/{bin,share/LightTable}
-    mv ./${pname}-${version}-linux/* $out/share/LightTable
-
-    patchelf \
-      --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath ${libPath}:${libPath}/lib64:$out/share/LightTable \
-      $out/share/LightTable/LightTable
-
-    mv $out/share/LightTable/light $out/bin/light
-
-    ln -sf ${lib.getLib systemd}/lib/libudev.so.1 $out/share/LightTable/libudev.so.0
-    substituteInPlace $out/bin/light \
-        --replace "/usr/lib/x86_64-linux-gnu" "${lib.getLib systemd}/lib" \
-        --replace "/lib/x86_64-linux-gnu" "$out/share/LightTable" \
-        --replace 'HERE=`dirname $(readlink -f $0)`' "HERE=$out/share/LightTable"
-
-    mkdir -p "$out"/share/applications
-    cp "${desktopItem}/share/applications/LightTable.desktop" "$out"/share/applications/
-  '';
-
-  meta = with lib; {
-    description = "The next generation code editor";
-    homepage = "http://www.lighttable.com/";
-    license = licenses.gpl3;
-    maintainers = [ maintainers.matejc ];
-    platforms = [ "x86_64-linux" ];
-  };
-}
diff --git a/pkgs/applications/editors/neovim/build-neovim-plugin.nix b/pkgs/applications/editors/neovim/build-neovim-plugin.nix
new file mode 100644
index 0000000000000..cb69b5ecacdba
--- /dev/null
+++ b/pkgs/applications/editors/neovim/build-neovim-plugin.nix
@@ -0,0 +1,35 @@
+{ lib
+, stdenv
+, buildVimPluginFrom2Nix
+, buildLuarocksPackage
+, lua51Packages
+, toVimPlugin
+}:
+let
+  # sanitizeDerivationName
+  normalizeName = lib.replaceStrings [ "." ] [ "-" ];
+in
+
+  # function to create vim plugin from lua packages that are already packaged in
+  # luaPackages
+  {
+    # the lua attribute name that matches this vim plugin. Both should be equal
+    # in the majority of cases but we make it possible to have different attribute names
+    luaAttr ? (normalizeName attrs.pname)
+    , ...
+  }@attrs:
+    let
+      originalLuaDrv = lua51Packages.${luaAttr};
+      luaDrv = lua51Packages.lib.overrideLuarocks originalLuaDrv (drv: {
+        extraConfig = ''
+          -- to create a flat hierarchy
+          lua_modules_path = "lua"
+        '';
+      });
+      finalDrv = toVimPlugin (luaDrv.overrideAttrs(oa: {
+          nativeBuildInputs = oa.nativeBuildInputs or [] ++ [
+            lua51Packages.luarocksMoveDataFolder
+          ];
+        }));
+    in
+      finalDrv
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index cd046b1871fa0..022916c388dca 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -133,7 +133,7 @@ in
       # those contributions were copied from Vim (identified in the commit logs
       # by the vim-patch token). See LICENSE for details."
       license = with licenses; [ asl20 vim ];
-      maintainers = with maintainers; [ manveru rvolosatovs ma27 ];
+      maintainers = with maintainers; [ manveru rvolosatovs ];
       platforms   = platforms.unix;
     };
   }
diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix
index ee0abb5828914..16b19f63d2d35 100644
--- a/pkgs/applications/editors/neovim/utils.nix
+++ b/pkgs/applications/editors/neovim/utils.nix
@@ -1,4 +1,6 @@
 { lib
+, buildLuarocksPackage
+, callPackage
 , vimUtils
 , nodejs
 , neovim-unwrapped
@@ -184,4 +186,9 @@ in
 {
   inherit makeNeovimConfig;
   inherit legacyWrapper;
+
+  buildNeovimPluginFrom2Nix = callPackage ./build-neovim-plugin.nix {
+    inherit (vimUtils) buildVimPluginFrom2Nix toVimPlugin;
+    inherit buildLuarocksPackage;
+  };
 }
diff --git a/pkgs/applications/editors/netbeans/default.nix b/pkgs/applications/editors/netbeans/default.nix
index 2282e583683db..1fd1e2cbf5653 100644
--- a/pkgs/applications/editors/netbeans/default.nix
+++ b/pkgs/applications/editors/netbeans/default.nix
@@ -3,7 +3,7 @@
 }:
 
 let
-  version = "13";
+  version = "14";
   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 = "sha512-Xnh2OhnHOo++gGPx1o/WmcTHV7KNVeeT6ut9xH2Zo0EFtt43GFi2+HLOXm3u/IcjAzWlbGvIp9+TVUnwDusDoA==";
+    hash = "sha512-AEuUOiVCvZh4SjghQR2j8LBIubEBzEaZqWsb93icZU9K1sc6ddUanLD0NsQhzjK6oK1EDv5GG9PmqOXo6Sf1xg==";
   };
 
   buildCommand = ''
diff --git a/pkgs/applications/editors/pinegrow/default.nix b/pkgs/applications/editors/pinegrow/default.nix
index 65604926b8fda..1149117e67b24 100644
--- a/pkgs/applications/editors/pinegrow/default.nix
+++ b/pkgs/applications/editors/pinegrow/default.nix
@@ -74,6 +74,7 @@ stdenv.mkDerivation rec {
     homepage = "https://pinegrow.com";
     description = "UI Web Editor";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ unfreeRedistributable ];
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/applications/editors/pixelorama/default.nix b/pkgs/applications/editors/pixelorama/default.nix
new file mode 100644
index 0000000000000..9846d10491c1f
--- /dev/null
+++ b/pkgs/applications/editors/pixelorama/default.nix
@@ -0,0 +1,57 @@
+{ lib, stdenv, fetchFromGitHub, godot-headless, godot-export-templates }:
+
+let
+  preset =
+    if stdenv.isLinux then
+      if stdenv.is64bit then "Linux/X11 64-bit"
+      else "Linux/X11 32-bit"
+    else if stdenv.isDarwin then "Mac OSX"
+    else throw "unsupported platform";
+in stdenv.mkDerivation rec {
+  pname = "pixelorama";
+  version = "0.10.1";
+
+  src = fetchFromGitHub {
+    owner = "Orama-Interactive";
+    repo = "Pixelorama";
+    rev = "v${version}";
+    sha256 = "sha256-+Sfhv66skHawe6jzfzQyFxejN5TvTdmWunzl0/7yy4M=";
+  };
+
+  nativeBuildInputs = [
+    godot-headless
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    export HOME=$(mktemp -d)
+    mkdir -p $HOME/.local/share/godot/
+    ln -s "${godot-export-templates}/share/godot/templates" "$HOME/.local/share/godot/templates"
+    mkdir -p build
+    godot-headless -v --export "${preset}" ./build/pixelorama
+    godot-headless -v --export-pack "${preset}" ./build/pixelorama.pck
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install -D -m 755 -t $out/libexec ./build/pixelorama
+    install -D -m 644 -t $out/libexec ./build/pixelorama.pck
+    install -D -m 644 -t $out/share/applications ./Misc/Linux/com.orama_interactive.Pixelorama.desktop
+    install -d -m 755 $out/bin
+    ln -s $out/libexec/pixelorama $out/bin/pixelorama
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://orama-interactive.itch.io/pixelorama";
+    description = "A free & open-source 2D sprite editor, made with the Godot Engine!";
+    license = licenses.mit;
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    maintainers = with maintainers; [ felschr ];
+  };
+}
diff --git a/pkgs/applications/editors/quartus-prime/quartus.nix b/pkgs/applications/editors/quartus-prime/quartus.nix
index 9475f44170314..4b56698602382 100644
--- a/pkgs/applications/editors/quartus-prime/quartus.nix
+++ b/pkgs/applications/editors/quartus-prime/quartus.nix
@@ -89,6 +89,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit homepage;
     description = "FPGA design and simulation software";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     hydraPlatforms = [ ]; # requireFile srcs cannot be fetched by hydra, ignore
diff --git a/pkgs/applications/editors/rehex/default.nix b/pkgs/applications/editors/rehex/default.nix
index 3b169bf4e5331..52134d15da823 100644
--- a/pkgs/applications/editors/rehex/default.nix
+++ b/pkgs/applications/editors/rehex/default.nix
@@ -53,7 +53,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/solemnwarning/rehex";
     changelog = "https://github.com/solemnwarning/rehex/raw/${version}/CHANGES.txt";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ markus1189 SuperSandro2000 ];
+    maintainers = with maintainers; [ markus1189 ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 665a7ebcbfbf0..9a362fec65be3 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -39,16 +39,17 @@
 
 let
   pname = "RStudio";
-  version = "1.4.1717";
-  RSTUDIO_VERSION_MAJOR = lib.versions.major version;
-  RSTUDIO_VERSION_MINOR = lib.versions.minor version;
-  RSTUDIO_VERSION_PATCH = lib.versions.patch version;
+  version = "2022.02.3+492";
+  RSTUDIO_VERSION_MAJOR  = "2022";
+  RSTUDIO_VERSION_MINOR  = "02";
+  RSTUDIO_VERSION_PATCH  = "3";
+  RSTUDIO_VERSION_SUFFIX = "+492";
 
   src = fetchFromGitHub {
     owner = "rstudio";
     repo = "rstudio";
     rev = "v${version}";
-    sha256 = "sha256-9c1bNsf8kJjpcZ2cMV/pPNtXQkFOntX29a1cdnXpllE=";
+    sha256 = "1pgbk5rpy47h9ihdrplbfhfc49hrc6242j9099bclq7rqif049wi";
   };
 
   mathJaxSrc = fetchurl {
@@ -59,7 +60,7 @@ let
   rsconnectSrc = fetchFromGitHub {
     owner = "rstudio";
     repo = "rsconnect";
-    rev = "f5854bb71464f6e3017da9855f058fe3d5b32efd";
+    rev = "e287b586e7da03105de3faa8774c63f08984eb3c";
     sha256 = "sha256-ULyWdSgGPSAwMt0t4QPuzeUE6Bo6IJh+5BMgW1bFN+Y=";
   };
 
@@ -74,7 +75,7 @@ let
 in
 (if server then stdenv.mkDerivation else mkDerivation)
   (rec {
-    inherit pname version src RSTUDIO_VERSION_MAJOR RSTUDIO_VERSION_MINOR RSTUDIO_VERSION_PATCH;
+    inherit pname version src RSTUDIO_VERSION_MAJOR RSTUDIO_VERSION_MINOR RSTUDIO_VERSION_PATCH RSTUDIO_VERSION_SUFFIX;
 
     nativeBuildInputs = [
       cmake
@@ -114,6 +115,7 @@ in
       "-DRSTUDIO_USE_SYSTEM_SOCI=ON"
       "-DRSTUDIO_USE_SYSTEM_BOOST=ON"
       "-DRSTUDIO_USE_SYSTEM_YAML_CPP=ON"
+      "-DQUARTO_ENABLED=FALSE"
       "-DPANDOC_VERSION=${pandoc.version}"
       "-DCMAKE_INSTALL_PREFIX=${placeholder "out"}/lib/rstudio"
     ] ++ lib.optional (!server) [
@@ -124,14 +126,9 @@ in
     patches = [
       ./r-location.patch
       ./clang-location.patch
-      # postFetch doesn't work with this | error: unexpected end-of-file
-      # replacing /usr/bin/node is done in postPatch
-      # https://src.fedoraproject.org/rpms/rstudio/tree/rawhide
-      (fetchpatch {
-        name = "system-node.patch";
-        url = "https://src.fedoraproject.org/rpms/rstudio/raw/5bda2e290c9e72305582f2011040938d3e356906/f/0004-use-system-node.patch";
-        sha256 = "sha256-P1Y07RB/ceFNa749nyBUWSE41eiiZgt43zVcmahvfZM=";
-      })
+      ./use-system-node.patch
+      ./fix-resources-path.patch
+      ./pandoc-nix-path.patch
     ];
 
     postPatch = ''
@@ -141,14 +138,14 @@ in
         --replace 'SOCI_LIBRARY_DIR "/usr/lib"' 'SOCI_LIBRARY_DIR "${soci}/lib"'
 
       substituteInPlace src/gwt/build.xml \
-        --replace '/usr/bin/node' '${nodejs}/bin/node'
+        --replace '@node@' ${nodejs}
 
       substituteInPlace src/cpp/core/libclang/LibClang.cpp \
         --replace '@libclang@' ${llvmPackages.libclang.lib} \
         --replace '@libclang.so@' ${llvmPackages.libclang.lib}/lib/libclang.so
 
-        substituteInPlace src/cpp/session/include/session/SessionConstants.hpp \
-          --replace "bin/pandoc" "${pandoc}/bin/pandoc"
+      substituteInPlace src/cpp/session/include/session/SessionConstants.hpp \
+        --replace '@pandoc@' ${pandoc}/bin/pandoc
     '';
 
     hunspellDictionaries = with lib; filter isDerivation (unique (attrValues hunspellDicts));
@@ -197,6 +194,7 @@ in
       for f in .gitignore .Rbuildignore LICENSE README; do
         find . -name $f -delete
       done
+
       rm -r $out/lib/rstudio/{INSTALL,COPYING,NOTICE,README.md,SOURCE,VERSION}
       rm -r $out/lib/rstudio/bin/{pandoc/pandoc,pandoc}
     '';
diff --git a/pkgs/applications/editors/rstudio/fix-resources-path.patch b/pkgs/applications/editors/rstudio/fix-resources-path.patch
new file mode 100644
index 0000000000000..24f8b3cb51b9d
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/fix-resources-path.patch
@@ -0,0 +1,19 @@
+--- a/src/cpp/desktop/DesktopOptions.cpp
++++ b/src/cpp/desktop/DesktopOptions.cpp
+@@ -499,15 +499,9 @@
+ {
+    if (resourcesPath_.isEmpty())
+    {
+-#ifdef RSTUDIO_PACKAGE_BUILD
+       // release configuration: the 'resources' folder is
+       // part of the supporting files folder
+-      resourcesPath_ = supportingFilePath().completePath("resources");
+-#else
+-      // developer configuration: the 'resources' folder is
+-      // a sibling of the RStudio executable
+-      resourcesPath_ = scriptsPath().completePath("resources");
+-#endif
++      resourcesPath_ = supportingFilePath().completePath("resources");
+    }
+
+    return resourcesPath_;
diff --git a/pkgs/applications/editors/rstudio/package.json b/pkgs/applications/editors/rstudio/package.json
index 31943987a522c..6677ca9e06de8 100644
--- a/pkgs/applications/editors/rstudio/package.json
+++ b/pkgs/applications/editors/rstudio/package.json
@@ -5,57 +5,59 @@
   "license": "agpl-3.0",
   "dependencies": {
     "@types/ace": "^0.0.43",
-    "@types/clipboard": "^2.0.1",
+    "@types/clipboard": "^2.0.7",
     "@types/diff-match-patch": "^1.0.32",
-    "@types/js-yaml": "^3.12.3",
+    "@types/js-yaml": "^4.0.3",
     "@types/lodash.debounce": "^4.0.6",
+    "@types/lodash.orderby": "^4.6.6",
     "@types/lodash.uniqby": "^4.7.6",
     "@types/orderedmap": "^1.0.0",
-    "@types/prosemirror-commands": "^1.0.3",
-    "@types/prosemirror-dev-tools": "^2.1.0",
-    "@types/prosemirror-dropcursor": "^1.0.0",
-    "@types/prosemirror-gapcursor": "^1.0.1",
-    "@types/prosemirror-history": "^1.0.1",
-    "@types/prosemirror-inputrules": "^1.0.3",
-    "@types/prosemirror-keymap": "^1.0.3",
-    "@types/prosemirror-model": "^1.7.2",
-    "@types/prosemirror-schema-list": "^1.0.1",
-    "@types/prosemirror-state": "^1.2.5",
+    "@types/pinyin": "^2.10.0",
+    "@types/prosemirror-commands": "^1.0.4",
+    "@types/prosemirror-dropcursor": "^1.0.3",
+    "@types/prosemirror-gapcursor": "^1.0.4",
+    "@types/prosemirror-history": "^1.0.3",
+    "@types/prosemirror-inputrules": "^1.0.4",
+    "@types/prosemirror-keymap": "^1.0.4",
+    "@types/prosemirror-schema-list": "^1.0.3",
     "@types/prosemirror-tables": "^0.9.1",
-    "@types/prosemirror-transform": "^1.1.1",
-    "@types/react": "^16.9.32",
-    "@types/react-dom": "^16.9.6",
-    "@types/react-window": "^1.8.2",
-    "@types/zenscroll": "^4.0.0",
-    "biblatex-csl-converter": "^1.9.1",
-    "clipboard": "^2.0.6",
-    "diff-match-patch": "^1.0.4",
-    "fuse.js": "^6.0.4",
-    "js-yaml": "^3.13.1",
+    "@types/react": "^17.0.20",
+    "@types/react-dom": "^17.0.9",
+    "@types/react-window": "^1.8.5",
+    "@types/transliteration": "^1.6.6",
+    "@types/zenscroll": "^4.0.1",
+    "biblatex-csl-converter": "^2.0.2",
+    "clipboard": "^2.0.8",
+    "diff-match-patch": "^1.0.5",
+    "fuse.js": "^6.4.6",
+    "js-yaml": "^4.1.0",
     "lodash.debounce": "^4.0.8",
+    "lodash.orderby": "^4.6.0",
     "lodash.uniqby": "^4.7.0",
     "orderedmap": "^1.0.0",
+    "pinyin": "^2.10.2",
     "prosemirror-changeset": "^2.1.2",
-    "prosemirror-commands": "^1.1.4",
+    "prosemirror-commands": "^1.1.10",
     "prosemirror-dev-tools": "^2.1.1",
-    "prosemirror-dropcursor": "^1.3.2",
+    "prosemirror-dropcursor": "^1.3.5",
     "prosemirror-gapcursor": "^1.1.5",
-    "prosemirror-history": "^1.1.3",
-    "prosemirror-inputrules": "^1.1.2",
+    "prosemirror-history": "^1.2.0",
+    "prosemirror-inputrules": "^1.1.3",
     "prosemirror-keymap": "^1.1.4",
-    "prosemirror-model": "^1.11.0",
-    "prosemirror-schema-list": "^1.1.4",
-    "prosemirror-state": "^1.3.3",
+    "prosemirror-model": "^1.14.3",
+    "prosemirror-schema-list": "^1.1.5",
+    "prosemirror-state": "^1.3.4",
     "prosemirror-tables": "^1.1.1",
-    "prosemirror-transform": "^1.2.8",
+    "prosemirror-transform": "^1.3.2",
     "prosemirror-utils": "^0.9.6",
-    "prosemirror-view": "^1.15.6",
-    "react": "^16.13.1",
-    "react-dom": "^16.13.1",
-    "react-window": "^1.8.5",
-    "sentence-splitter": "^3.2.0",
+    "prosemirror-view": "^1.20.1",
+    "react": "^17.0.2",
+    "react-dom": "^17.0.2",
+    "react-window": "^1.8.6",
+    "sentence-splitter": "^3.2.2",
     "thenby": "^1.3.3",
     "tlite": "^0.1.9",
+    "transliteration": "^2.2.0",
     "typescript": "3.8.3",
     "zenscroll": "^4.0.2"
   },
diff --git a/pkgs/applications/editors/rstudio/pandoc-nix-path.patch b/pkgs/applications/editors/rstudio/pandoc-nix-path.patch
new file mode 100644
index 0000000000000..a2b9bbd9f02bb
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/pandoc-nix-path.patch
@@ -0,0 +1,11 @@
+--- a/src/cpp/session/include/session/SessionConstants.hpp
++++ b/src/cpp/session/include/session/SessionConstants.hpp
+@@ -140,7 +140,7 @@
+ #ifdef QUARTO_ENABLED
+ # define kDefaultPandocPath        "bin/quarto/bin"
+ #else
+-# define kDefaultPandocPath        "bin/pandoc"
++# define kDefaultPandocPath        "@pandoc@"
+ #endif
+ 
+ #define kDefaultQuartoPath         "bin/quarto"
diff --git a/pkgs/applications/editors/rstudio/use-system-node.patch b/pkgs/applications/editors/rstudio/use-system-node.patch
new file mode 100644
index 0000000000000..b78adbaee263c
--- /dev/null
+++ b/pkgs/applications/editors/rstudio/use-system-node.patch
@@ -0,0 +1,28 @@
+--- a/src/gwt/build.xml
++++ b/src/gwt/build.xml
+@@ -84,23 +84,7 @@
+    </target>
+
+    <!-- panmirror typescript library -->
+-   <!-- ensure version matches RSTUDIO_NODE_VERSION -->
+-   <property name="node.version" value="14.17.5"/>
+-   <property name="node.dir" value="../../dependencies/common/node/${node.version}"/>
+-   <condition property="node.bin" value="../../../${node.dir}/bin/node">
+-     <not>
+-        <os family="windows" />
+-     </not>
+-   </condition>
+-   <condition property="node.bin" value="${node.dir}/node.exe">
+-     <os family="windows" />
+-   </condition>
+-
+-   <!-- use node from /opt/rstudio-tools if installed (typical for Docker) -->
+-   <available
+-      property="node.bin"
+-      value="/opt/rstudio-tools/dependencies/common/node/${node.version}/bin/node"
+-      file="/opt/rstudio-tools/dependencies/common/node/${node.version}/bin/node"/>
++   <property name="node.bin" value="@node@/bin/node"/>
+
+    <property name="panmirror.dir" value="./panmirror/src/editor"/>
+    <property name="panmirror.build.dir" value="./www/js/panmirror"/>
+
diff --git a/pkgs/applications/editors/rstudio/yarn.lock b/pkgs/applications/editors/rstudio/yarn.lock
index d1717012db47e..ce02ab6748b87 100644
--- a/pkgs/applications/editors/rstudio/yarn.lock
+++ b/pkgs/applications/editors/rstudio/yarn.lock
@@ -10,11 +10,16 @@
     "@babel/highlight" "^7.8.3"
 
 "@babel/helper-module-imports@^7.0.0":
-  version "7.8.3"
-  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498"
-  integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==
+  version "7.15.4"
+  resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f"
+  integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==
   dependencies:
-    "@babel/types" "^7.8.3"
+    "@babel/types" "^7.15.4"
+
+"@babel/helper-validator-identifier@^7.14.9":
+  version "7.14.9"
+  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48"
+  integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==
 
 "@babel/highlight@^7.8.3":
   version "7.8.3"
@@ -39,13 +44,12 @@
   dependencies:
     regenerator-runtime "^0.13.2"
 
-"@babel/types@^7.8.3":
-  version "7.8.6"
-  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz#629ecc33c2557fcde7126e58053127afdb3e6d01"
-  integrity sha512-wqz7pgWMIrht3gquyEFPVXeXCti72Rm8ep9b5tQKz9Yg9LzJA3HxosF1SB3Kc81KD1A3XBkkVYtJvCKS2Z/QrA==
+"@babel/types@^7.15.4":
+  version "7.15.6"
+  resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz#99abdc48218b2881c058dd0a7ab05b99c9be758f"
+  integrity sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==
   dependencies:
-    esutils "^2.0.2"
-    lodash "^4.17.13"
+    "@babel/helper-validator-identifier" "^7.14.9"
     to-fast-properties "^2.0.0"
 
 "@emotion/babel-utils@^0.6.4":
@@ -102,30 +106,47 @@
   resolved "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.2.tgz#576ff7fb1230185b619a75d258cbc98f0867a8dc"
   integrity sha512-rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==
 
-"@textlint/ast-node-types@^4.2.5":
-  version "4.3.4"
-  resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz#f6596c45c32c85dc06915c3077bb7686033efd32"
-  integrity sha512-Grq+vJuNH7HCa278eFeiqJvowrD+onMCoG2ctLyoN+fXYIQGIr1/8fo8AcIg+VM16Kga+N6Y1UWNOWPd8j1nFg==
+"@mapbox/node-pre-gyp@^1.0.4":
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz#2a0b32fcb416fb3f2250fd24cb2a81421a4f5950"
+  integrity sha512-4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==
+  dependencies:
+    detect-libc "^1.0.3"
+    https-proxy-agent "^5.0.0"
+    make-dir "^3.1.0"
+    node-fetch "^2.6.1"
+    nopt "^5.0.0"
+    npmlog "^4.1.2"
+    rimraf "^3.0.2"
+    semver "^7.3.4"
+    tar "^6.1.0"
+
+"@textlint/ast-node-types@^4.4.2":
+  version "4.4.3"
+  resolved "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.4.3.tgz#fdba16e8126cddc50f45433ce7f6c55e7829566c"
+  integrity sha512-qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==
 
 "@types/ace@^0.0.43":
   version "0.0.43"
   resolved "https://registry.yarnpkg.com/@types/ace/-/ace-0.0.43.tgz#9f0916174b6060dabbccd36ba4868ea769a1c633"
   integrity sha512-eQdX8AQ7CfSHym07MZMBQ8FKUj9AZ2Wcc26W5Ct8J4KOMjFY6SFUaf2YA8YHBut0Fwl//2kZ+0GLZNp+NQNRIA==
 
-"@types/clipboard@^2.0.1":
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.1.tgz#75a74086c293d75b12bc93ff13bc7797fef05a40"
-  integrity sha512-gJJX9Jjdt3bIAePQRRjYWG20dIhAgEqonguyHxXuqALxsoDsDLimihqrSg8fXgVTJ4KZCzkfglKtwsh/8dLfbA==
+"@types/clipboard@^2.0.7":
+  version "2.0.7"
+  resolved "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.7.tgz#db578ceec578947be2d603b003667ebdd5f274e1"
+  integrity sha512-VwVFUHlneOsWfv/GaaY7Kwk4XasDqkAlyFQtsHxnOw0yyBYWTrlEXtmb9RtC+VFBCdtuOeIXECmELNd5RrKp/g==
+  dependencies:
+    clipboard "*"
 
 "@types/diff-match-patch@^1.0.32":
   version "1.0.32"
   resolved "https://registry.yarnpkg.com/@types/diff-match-patch/-/diff-match-patch-1.0.32.tgz#d9c3b8c914aa8229485351db4865328337a3d09f"
   integrity sha512-bPYT5ECFiblzsVzyURaNhljBH2Gh1t9LowgUwciMrNAhFewLkHT2H0Mto07Y4/3KCOGZHRQll3CTtQZ0X11D/A==
 
-"@types/js-yaml@^3.12.3":
-  version "3.12.3"
-  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz#abf383c5b639d0aa8b8c4a420d6a85f703357d6c"
-  integrity sha512-otRe77JNNWzoVGLKw8TCspKswRoQToys4tuL6XYVBFxjgeM0RUrx7m3jkaTdxILxeGry3zM8mGYkGXMeQ02guA==
+"@types/js-yaml@^4.0.3":
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz#9f33cd6fbf0d5ec575dc8c8fc69c7fec1b4eb200"
+  integrity sha512-5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==
 
 "@types/lodash.debounce@^4.0.6":
   version "4.0.6"
@@ -134,6 +155,13 @@
   dependencies:
     "@types/lodash" "*"
 
+"@types/lodash.orderby@^4.6.6":
+  version "4.6.6"
+  resolved "https://registry.yarnpkg.com/@types/lodash.orderby/-/lodash.orderby-4.6.6.tgz#126543bb597477dc9b27d748b5822244f577915c"
+  integrity sha512-wQzu6xK+bSwhu45OeMI7fjywiIZiiaBzJB8W3fwnF1SJXHoOXRLutrSnVmq4yHPOM036qsy8lx9wHQcAbXNjJw==
+  dependencies:
+    "@types/lodash" "*"
+
 "@types/lodash.uniqby@^4.7.6":
   version "4.7.6"
   resolved "https://registry.yarnpkg.com/@types/lodash.uniqby/-/lodash.uniqby-4.7.6.tgz#672827a701403f07904fe37f0721ae92abfa80e8"
@@ -161,12 +189,17 @@
   resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
   integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
 
+"@types/pinyin@^2.10.0":
+  version "2.10.0"
+  resolved "https://registry.yarnpkg.com/@types/pinyin/-/pinyin-2.10.0.tgz#074964ec2f777d632e221f927a975bb7d51ded9a"
+  integrity sha512-YLty6FPYiBgxNbQNaTRJquvflRdG026jjOpjNXR7HdGEJPGtmPBp1x9LkWePCNA/ClaTT0hYem080TbRCMLbew==
+
 "@types/prop-types@*":
   version "15.7.3"
   resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7"
   integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==
 
-"@types/prosemirror-commands@*", "@types/prosemirror-commands@^1.0.3":
+"@types/prosemirror-commands@*":
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.3.tgz#e9fa5653cffd1c75c260594cf3ec5244c9004dbf"
   integrity sha512-AjFCJqBvAhQ4gOzXPgUcnEZwu4jd7se7ani3dYAv8p4L+cWEPD6Pshrpp5uJDI5/pzvNXLWQ/4c2Qk4h9IML1w==
@@ -175,65 +208,67 @@
     "@types/prosemirror-state" "*"
     "@types/prosemirror-view" "*"
 
-"@types/prosemirror-dev-tools@^2.1.0":
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.0.tgz#91e2ef4f36129f5155f924296e306de187e86bdb"
-  integrity sha512-OhnSaC4yrrEMLPRUkEWcHAIPVqgKlLkE4kISqL3cHeAYxASouSPvPMLqhBIbWkGwaozy43DjjVC1OXkxTo+y5Q==
+"@types/prosemirror-commands@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz#d08551415127d93ae62e7239d30db0b5e7208e22"
+  integrity sha512-utDNYB3EXLjAfYIcRWJe6pn3kcQ5kG4RijbT/0Y/TFOm6yhvYS/D9eJVnijdg9LDjykapcezchxGRqFD5LcyaQ==
   dependencies:
+    "@types/prosemirror-model" "*"
     "@types/prosemirror-state" "*"
     "@types/prosemirror-view" "*"
 
-"@types/prosemirror-dropcursor@^1.0.0":
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.0.tgz#2df872bc6431a9f06bc1a4a0eac7c2dc527e7f12"
-  integrity sha512-S2ndHt94M64avSqjBcgIblaF3YeC3RfcmpY9/WIdfqU7aoJxuOh4RJk5emdmQPHZT1wbczMHFmFSsRqgErK0EQ==
+"@types/prosemirror-dropcursor@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz#49250849b8a0b86e8c29eb1ba70a463e53e46947"
+  integrity sha512-b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==
   dependencies:
     "@types/prosemirror-state" "*"
 
-"@types/prosemirror-gapcursor@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.1.tgz#56a6274ef39f62c339adcc64305294b800211a5e"
-  integrity sha512-ruA7FK9NJv+bn5s55SZYFf9SwaN3wk/MkBvqRmhIqIHvowTTa7nzIGWbUdWZMga1DDTk+GrwdcQaEHunAFjFsQ==
+"@types/prosemirror-gapcursor@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.4.tgz#7df7d373edb33ea8da12084bfd462cf84cd69761"
+  integrity sha512-9xKjFIG5947dzerFvkLWp6F53JwrUYoYwh3SgcTFEp8SbSfNNrez/PFYVZKPnoqPoaK5WtTdQTaMwpCV9rXQIg==
   dependencies:
+    "@types/prosemirror-model" "*"
     "@types/prosemirror-state" "*"
 
-"@types/prosemirror-history@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.1.tgz#b8d7595f73788b63fc9f2b57a763ba8375abfe87"
-  integrity sha512-BYyPJlWDo3VEnWS5X2DCHXrrAKEjdbCe1DUjGL6R/8hmwMFe3iMJGYdBkOXU1FfkTpw7Z+PlwY/pMyeelVydmg==
+"@types/prosemirror-history@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.3.tgz#f1110efbe758129b5475e466ff077f0a8d9b964f"
+  integrity sha512-5TloMDRavgLjOAKXp1Li8u0xcsspzbT1Cm9F2pwHOkgvQOz1jWQb2VIXO7RVNsFjLBZdIXlyfSLivro3DuMWXg==
   dependencies:
     "@types/prosemirror-model" "*"
     "@types/prosemirror-state" "*"
 
-"@types/prosemirror-inputrules@^1.0.3":
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.3.tgz#3f8f07921f692b6c7e4781fa426aee3e76b9018c"
-  integrity sha512-cxMkCcu/di8//68jWc/NrRpvpCbizgq9vqv4rCRsAiuSiJ8L5hf4aFlCBUYCffuQnrY98uOfJ8YAUY3dbtaF9A==
+"@types/prosemirror-inputrules@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz#4cb75054d954aa0f6f42099be05eb6c0e6958bae"
+  integrity sha512-lJIMpOjO47SYozQybUkpV6QmfuQt7GZKHtVrvS+mR5UekA8NMC5HRIVMyaIauJLWhKU6oaNjpVaXdw41kh165g==
   dependencies:
     "@types/prosemirror-model" "*"
     "@types/prosemirror-state" "*"
 
-"@types/prosemirror-keymap@^1.0.3":
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.3.tgz#09cc469a69222a4c8a3d415d02eeb459bb74269c"
-  integrity sha512-iCYUtt0u8y6qeDZVsidEWJGbw2Kas+jtHD1QY374W/N2jASYp+8auucFLXe0UvoOy9jiWcGcqcecec1R+vkzgw==
+"@types/prosemirror-keymap@^1.0.4":
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz#f73c79810e8d0e0a20d153d84f998f02e5afbc0c"
+  integrity sha512-ycevwkqUh+jEQtPwqO7sWGcm+Sybmhu8MpBsM8DlO3+YTKnXbKA6SDz/+q14q1wK3UA8lHJyfR+v+GPxfUSemg==
   dependencies:
     "@types/prosemirror-commands" "*"
     "@types/prosemirror-model" "*"
     "@types/prosemirror-state" "*"
     "@types/prosemirror-view" "*"
 
-"@types/prosemirror-model@*", "@types/prosemirror-model@^1.7.2":
+"@types/prosemirror-model@*":
   version "1.7.2"
   resolved "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.7.2.tgz#9c7aff2fd62f0f56eb76e2e0eb27bf6996e6c28a"
   integrity sha512-2l+yXvidg3AUHN07mO4Jd8Q84fo6ksFsy7LHUurLYrZ74uTahBp2fzcO49AKZMzww2EulXJ40Kl/OFaQ/7A1fw==
   dependencies:
     "@types/orderedmap" "*"
 
-"@types/prosemirror-schema-list@^1.0.1":
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz#7f53e3c0326b1359755f3971b8c448d98b722f21"
-  integrity sha512-+iUYq+pj2wVHSThj0MjNDzkkGwq8aDQ6j0UJK8a0cNCL8v44Ftcx1noGPtBIEUJgitH960VnfBNoTWfQoQZfRA==
+"@types/prosemirror-schema-list@^1.0.3":
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz#bdf1893a7915fbdc5c49b3cac9368e96213d70de"
+  integrity sha512-uWybOf+M2Ea7rlbs0yLsS4YJYNGXYtn4N+w8HCw3Vvfl6wBAROzlMt0gV/D/VW/7J/LlAjwMezuGe8xi24HzXA==
   dependencies:
     "@types/orderedmap" "*"
     "@types/prosemirror-model" "*"
@@ -248,15 +283,6 @@
     "@types/prosemirror-transform" "*"
     "@types/prosemirror-view" "*"
 
-"@types/prosemirror-state@^1.2.5":
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.5.tgz#a91304e9aab6e71f868e23b3a1ae514a75033f8f"
-  integrity sha512-a5DxAifiF6vmdSJ5jsDMkpykUgUJUy+T5Q5hCjFOKJ4cfd3m3q1lsFKr7Bc4r91Qb7rfqyiKCMDnASS8LIHrKw==
-  dependencies:
-    "@types/prosemirror-model" "*"
-    "@types/prosemirror-transform" "*"
-    "@types/prosemirror-view" "*"
-
 "@types/prosemirror-tables@^0.9.1":
   version "0.9.1"
   resolved "https://registry.yarnpkg.com/@types/prosemirror-tables/-/prosemirror-tables-0.9.1.tgz#d2203330f0fa1161c04152bf02c39e152082d408"
@@ -264,7 +290,7 @@
   dependencies:
     prosemirror-tables "*"
 
-"@types/prosemirror-transform@*", "@types/prosemirror-transform@^1.1.1":
+"@types/prosemirror-transform@*":
   version "1.1.1"
   resolved "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.1.tgz#5a0de16e8e0123b4c3d9559235e19f39cee85e5c"
   integrity sha512-yYCYSoiRH+Wcbl8GJc0PFCzeyMzNQ1vL2xrHHSXZuNcIlH75VoiKrZFeZ6BS9cl8mYXjZrlmdBe8YOxYvyKM6A==
@@ -280,21 +306,21 @@
     "@types/prosemirror-state" "*"
     "@types/prosemirror-transform" "*"
 
-"@types/react-dom@^16.9.6":
-  version "16.9.6"
-  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz#9e7f83d90566521cc2083be2277c6712dcaf754c"
-  integrity sha512-S6ihtlPMDotrlCJE9ST1fRmYrQNNwfgL61UB4I1W7M6kPulUKx9fXAleW5zpdIjUQ4fTaaog8uERezjsGUj9HQ==
+"@types/react-dom@^17.0.9":
+  version "17.0.9"
+  resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz#441a981da9d7be117042e1a6fd3dac4b30f55add"
+  integrity sha512-wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg==
   dependencies:
     "@types/react" "*"
 
-"@types/react-window@^1.8.2":
-  version "1.8.2"
-  resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.2.tgz#a5a6b2762ce73ffaab7911ee1397cf645f2459fe"
-  integrity sha512-gP1xam68Wc4ZTAee++zx6pTdDAH08rAkQrWm4B4F/y6hhmlT9Mgx2q8lTCXnrPHXsr15XjRN9+K2DLKcz44qEQ==
+"@types/react-window@^1.8.5":
+  version "1.8.5"
+  resolved "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.5.tgz#285fcc5cea703eef78d90f499e1457e9b5c02fc1"
+  integrity sha512-V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==
   dependencies:
     "@types/react" "*"
 
-"@types/react@*", "@types/react@^16.9.32":
+"@types/react@*":
   version "16.9.32"
   resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz#f6368625b224604148d1ddf5920e4fefbd98d383"
   integrity sha512-fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ==
@@ -302,6 +328,27 @@
     "@types/prop-types" "*"
     csstype "^2.2.0"
 
+"@types/react@^17.0.20":
+  version "17.0.20"
+  resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.20.tgz#a4284b184d47975c71658cd69e759b6bd37c3b8c"
+  integrity sha512-wWZrPlihslrPpcKyCSlmIlruakxr57/buQN1RjlIeaaTWDLtJkTtRW429MoQJergvVKc4IWBpRhWw7YNh/7GVA==
+  dependencies:
+    "@types/prop-types" "*"
+    "@types/scheduler" "*"
+    csstype "^3.0.2"
+
+"@types/scheduler@*":
+  version "0.16.2"
+  resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz#1a62f89525723dde24ba1b01b092bf5df8ad4d39"
+  integrity sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==
+
+"@types/transliteration@^1.6.6":
+  version "1.6.6"
+  resolved "https://registry.yarnpkg.com/@types/transliteration/-/transliteration-1.6.6.tgz#72b4f1742280d9341fbbe19c7efa5c2bc20a4726"
+  integrity sha512-drgWFeHgZt16bXKhsu4cP6TlunW3Pu9MS1l9w7Qnm+bcsqf4/pnjnO6/uMAziCV8rnmuU3iCSk7J2zio1nR1+A==
+  dependencies:
+    transliteration "*"
+
 "@types/unzip@^0.1.1":
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/@types/unzip/-/unzip-0.1.1.tgz#96e80dc5e2917a769c8be01aa49c4fe660e7bab3"
@@ -309,10 +356,10 @@
   dependencies:
     "@types/node" "*"
 
-"@types/zenscroll@^4.0.0":
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.0.tgz#9acc7df6c87cc9e064f5a6230df499835dee1972"
-  integrity sha512-n9np/qsr3HBH3VBVfviHhQPmGP1+D01+VI/40QFq/7LyJqDoIlcaaABu/qPAVats/oNuUJ/dhrjrOjVaqos+4A==
+"@types/zenscroll@^4.0.1":
+  version "4.0.1"
+  resolved "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.1.tgz#881e92d5cc44ef900d2919ca0295a0b8d9011858"
+  integrity sha512-r1h1/SPJQn8kL4rzyJvf4HJvqv20YrTV++qRGiPuA1mYbCSkMBaUOsCXLN780gI6BZfRzDbmjU0/sWq9yi1WgQ==
 
 abbrev@1:
   version "1.1.1"
@@ -339,6 +386,13 @@ acorn@^5.0.3, acorn@^5.7.3:
   resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279"
   integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==
 
+agent-base@6:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77"
+  integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==
+  dependencies:
+    debug "4"
+
 ajax-request@^1.2.0:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/ajax-request/-/ajax-request-1.2.3.tgz#99fcbec1d6d2792f85fa949535332bd14f5f3790"
@@ -362,11 +416,21 @@ ansi-escapes@^3.0.0:
   resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
   integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
 
+ansi-regex@^2.0.0:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
+  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+
 ansi-regex@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
   integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
 
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
+
 ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
@@ -374,6 +438,13 @@ ansi-styles@^3.2.1:
   dependencies:
     color-convert "^1.9.0"
 
+ansi-styles@^4.0.0:
+  version "4.3.0"
+  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
+  integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==
+  dependencies:
+    color-convert "^2.0.1"
+
 ansi@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
@@ -397,6 +468,19 @@ app-root-path@^2.0.1:
   resolved "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz#d0df4a682ee408273583d43f6f79e9892624bc9a"
   integrity sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==
 
+aproba@^1.0.3:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
+  integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
+
+are-we-there-yet@~1.1.2:
+  version "1.1.7"
+  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146"
+  integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==
+  dependencies:
+    delegates "^1.0.0"
+    readable-stream "^2.0.6"
+
 arg@^4.1.0:
   version "4.1.3"
   resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
@@ -409,6 +493,11 @@ argparse@^1.0.7:
   dependencies:
     sprintf-js "~1.0.2"
 
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
+
 arr-diff@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf"
@@ -571,10 +660,10 @@ bcrypt-pbkdf@^1.0.0:
   dependencies:
     tweetnacl "^0.14.3"
 
-biblatex-csl-converter@^1.9.1:
-  version "1.9.1"
-  resolved "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-1.9.1.tgz#50aacfef172997f1c98d72837ffdd3b19c62f8c4"
-  integrity sha512-M7HkWas8NbiFoNdS/lZOfup5A83Scw4iWFoPn9r84zh9DzaG/gHU86qH1QHMgUc2dSaquuIBQZRHC9wCs7k92g==
+biblatex-csl-converter@^2.0.2:
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-2.0.2.tgz#bfddc2cfb013296affb98c9f432634e3d5b90b53"
+  integrity sha512-od1JdAkQYh2T1Pzpq11eYtuNb3nNXQ0w+17CAnYqRsX+QFtoiK0XcvBE7N6rpDJyUo0acoaB6Of7EDhFQOcblA==
 
 binary-extensions@^1.0.0:
   version "1.13.1"
@@ -747,6 +836,11 @@ chokidar@^1.6.1:
   optionalDependencies:
     fsevents "^1.0.0"
 
+chownr@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece"
+  integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==
+
 class-utils@^0.3.5:
   version "0.3.6"
   resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463"
@@ -776,15 +870,29 @@ cli-width@^2.0.0:
   resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz#ff19ede8a9a5e579324147b0c11f0fbcbabed639"
   integrity sha1-/xnt6Kml5XkyQUewwR8PvLq+1jk=
 
-clipboard@^2.0.6:
-  version "2.0.6"
-  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376"
-  integrity sha512-g5zbiixBRk/wyKakSwCKd7vQXDjFnAMGHoEyBogG/bw9kTD9GvdAvaoRR1ALcEzt3pVKxZR0pViekPMIS0QyGg==
+clipboard@*, clipboard@^2.0.8:
+  version "2.0.8"
+  resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba"
+  integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==
   dependencies:
     good-listener "^1.2.2"
     select "^1.1.2"
     tiny-emitter "^2.0.0"
 
+cliui@^7.0.2:
+  version "7.0.4"
+  resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f"
+  integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==
+  dependencies:
+    string-width "^4.2.0"
+    strip-ansi "^6.0.0"
+    wrap-ansi "^7.0.0"
+
+code-point-at@^1.0.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
+  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
+
 collection-visit@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0"
@@ -800,11 +908,23 @@ color-convert@^1.9.0:
   dependencies:
     color-name "1.1.3"
 
+color-convert@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3"
+  integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==
+  dependencies:
+    color-name "~1.1.4"
+
 color-name@1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
   integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
 
+color-name@~1.1.4:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
+  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
+
 combined-stream@^1.0.6, combined-stream@~1.0.6:
   version "1.0.8"
   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@@ -817,6 +937,13 @@ commander@^2.12.1, commander@^2.20.0, commander@~2.20.3:
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
+commander@~1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-1.1.1.tgz#50d1651868ae60eccff0a2d9f34595376bc6b041"
+  integrity sha1-UNFlGGiuYOzP8KLZ80WVN2vGsEE=
+  dependencies:
+    keypress "0.1.x"
+
 component-emitter@^1.2.1:
   version "1.3.0"
   resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -847,6 +974,11 @@ concat-stream@^2.0.0:
     readable-stream "^3.0.2"
     typedarray "^0.0.6"
 
+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"
+  integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=
+
 content-disposition@0.5.3:
   version "0.5.3"
   resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
@@ -859,13 +991,20 @@ content-type@~1.0.4:
   resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
   integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
 
-convert-source-map@^1.5.0, convert-source-map@^1.5.1:
+convert-source-map@^1.5.0:
   version "1.7.0"
   resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442"
   integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==
   dependencies:
     safe-buffer "~5.1.1"
 
+convert-source-map@^1.5.1:
+  version "1.8.0"
+  resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369"
+  integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==
+  dependencies:
+    safe-buffer "~5.1.1"
+
 cookie-signature@1.0.6:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -933,9 +1072,14 @@ csstype@^2.2.0:
   integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==
 
 csstype@^2.5.2:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz#05141d0cd557a56b8891394c1911c40c8a98d098"
-  integrity sha512-xz39Sb4+OaTsULgUERcCk+TJj8ylkL4aSVDQiX/ksxbELSqwkgt4d4RD7fovIdgJGSuNYqwZEiVjYY5l0ask+Q==
+  version "2.6.18"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz#980a8b53085f34af313410af064f2bd241784218"
+  integrity sha512-RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==
+
+csstype@^3.0.2:
+  version "3.0.9"
+  resolved "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz#6410af31b26bd0520933d02cbc64fce9ce3fbf0b"
+  integrity sha512-rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==
 
 dashdash@^1.12.0:
   version "1.14.1"
@@ -951,6 +1095,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3:
   dependencies:
     ms "2.0.0"
 
+debug@4:
+  version "4.3.2"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
+  integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
+  dependencies:
+    ms "2.1.2"
+
 decode-uri-component@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
@@ -961,13 +1112,6 @@ deep-is@~0.1.3:
   resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
   integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
 
-define-properties@^1.1.2, define-properties@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1"
-  integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==
-  dependencies:
-    object-keys "^1.0.12"
-
 define-property@^0.2.5:
   version "0.2.5"
   resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
@@ -1000,6 +1144,11 @@ delegate@^3.1.2:
   resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166"
   integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==
 
+delegates@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
+  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+
 depd@~1.1.2:
   version "1.1.2"
   resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
@@ -1010,11 +1159,21 @@ destroy@~1.0.4:
   resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
   integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=
 
-diff-match-patch@^1.0.0, diff-match-patch@^1.0.4:
+detect-libc@^1.0.3:
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
+  integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=
+
+diff-match-patch@^1.0.0:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz#6ac4b55237463761c4daf0dc603eb869124744b1"
   integrity sha512-Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==
 
+diff-match-patch@^1.0.5:
+  version "1.0.5"
+  resolved "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz#abb584d5f10cd1196dfc55aa03701592ae3f7b37"
+  integrity sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==
+
 diff@^4.0.1:
   version "4.0.2"
   resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
@@ -1033,6 +1192,11 @@ ee-first@1.1.1:
   resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
   integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
 
+emoji-regex@^8.0.0:
+  version "8.0.0"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
+  integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
+
 emotion@^9.2.5:
   version "9.2.12"
   resolved "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz#53925aaa005614e65c6e43db8243c843574d1ea9"
@@ -1053,37 +1217,16 @@ error-ex@^1.3.1:
   dependencies:
     is-arrayish "^0.2.1"
 
-es-abstract@^1.17.0-next.1, es-abstract@^1.17.5:
-  version "1.17.6"
-  resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a"
-  integrity sha512-Fr89bON3WFyUi5EvAeI48QTWX0AyekGgLA8H+c+7fbfCkJwRWRMLd8CQedNEyJuoYYhmtEqY92pgte1FAhBlhw==
-  dependencies:
-    es-to-primitive "^1.2.1"
-    function-bind "^1.1.1"
-    has "^1.0.3"
-    has-symbols "^1.0.1"
-    is-callable "^1.2.0"
-    is-regex "^1.1.0"
-    object-inspect "^1.7.0"
-    object-keys "^1.1.1"
-    object.assign "^4.1.0"
-    string.prototype.trimend "^1.0.1"
-    string.prototype.trimstart "^1.0.1"
-
-es-to-primitive@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a"
-  integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==
-  dependencies:
-    is-callable "^1.1.4"
-    is-date-object "^1.0.1"
-    is-symbol "^1.0.2"
-
 es6-object-assign@^1.1.0:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c"
   integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=
 
+escalade@^3.1.1:
+  version "3.1.1"
+  resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"
+  integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==
+
 escape-html@~1.0.3:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
@@ -1406,6 +1549,13 @@ fs-extra@^7.0.0:
     jsonfile "^4.0.0"
     universalify "^0.1.0"
 
+fs-minipass@^2.0.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
+  integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==
+  dependencies:
+    minipass "^3.0.0"
+
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
@@ -1429,11 +1579,6 @@ fsevents@^1.0.0:
     mkdirp "0.5"
     rimraf "2"
 
-function-bind@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
-  integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
-
 fuse-box@^3.7.1:
   version "3.7.1"
   resolved "https://registry.yarnpkg.com/fuse-box/-/fuse-box-3.7.1.tgz#d32879ceee4c8bcec9bbd8fcfe5b29e7142371cd"
@@ -1480,16 +1625,35 @@ fuse-concat-with-sourcemaps@^1.0.5:
   dependencies:
     source-map "^0.6.1"
 
-fuse.js@^6.0.4:
-  version "6.0.4"
-  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.0.4.tgz#9f5af976f836247ad5d2c338090d6ce13cf9a4d2"
-  integrity sha512-XAeQaT+DV8dxqohN911+Qzkb4iMzTzae04mdb9/XSQbMjbsFasQxe0+UwM+3UWP+8vO7svz1Rj0KuQw6xJ45Ww==
+fuse.js@^6.4.6:
+  version "6.4.6"
+  resolved "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.4.6.tgz#62f216c110e5aa22486aff20be7896d19a059b79"
+  integrity sha512-/gYxR/0VpXmWSfZOIPS3rWwU8SHgsRTwWuXhyb2O6s7aRuVtHtxCkR33bNYu3wyLyNx/Wpv0vU7FZy8Vj53VNw==
+
+gauge@~2.7.3:
+  version "2.7.4"
+  resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7"
+  integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=
+  dependencies:
+    aproba "^1.0.3"
+    console-control-strings "^1.0.0"
+    has-unicode "^2.0.0"
+    object-assign "^4.1.0"
+    signal-exit "^3.0.0"
+    string-width "^1.0.1"
+    strip-ansi "^3.0.1"
+    wide-align "^1.1.0"
 
 get-caller-file@^1.0.2:
   version "1.0.3"
   resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
   integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==
 
+get-caller-file@^2.0.5:
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
+  integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
+
 get-value@^2.0.3, get-value@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28"
@@ -1571,10 +1735,10 @@ has-flag@^3.0.0:
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
   integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
 
-has-symbols@^1.0.0, has-symbols@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8"
-  integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==
+has-unicode@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
+  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
 
 has-value@^0.3.1:
   version "0.3.1"
@@ -1607,13 +1771,6 @@ has-values@^1.0.0:
     is-number "^3.0.0"
     kind-of "^4.0.0"
 
-has@^1.0.3:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
-  integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
-  dependencies:
-    function-bind "^1.1.1"
-
 html@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz#a544fa9ea5492bfb3a2cca8210a10be7b5af1f61"
@@ -1652,6 +1809,14 @@ http-signature@~1.2.0:
     jsprim "^1.2.2"
     sshpk "^1.7.0"
 
+https-proxy-agent@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2"
+  integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==
+  dependencies:
+    agent-base "6"
+    debug "4"
+
 iconv-lite@0.4.24, iconv-lite@^0.4.17:
   version "0.4.24"
   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -1751,11 +1916,6 @@ is-buffer@^1.1.5:
   resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be"
   integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==
 
-is-callable@^1.1.4, is-callable@^1.2.0:
-  version "1.2.0"
-  resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb"
-  integrity sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==
-
 is-data-descriptor@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56"
@@ -1770,11 +1930,6 @@ is-data-descriptor@^1.0.0:
   dependencies:
     kind-of "^6.0.0"
 
-is-date-object@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e"
-  integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==
-
 is-descriptor@^0.1.0:
   version "0.1.6"
   resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca"
@@ -1822,11 +1977,23 @@ is-extglob@^1.0.0:
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0"
   integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=
 
+is-fullwidth-code-point@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
+  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
+  dependencies:
+    number-is-nan "^1.0.0"
+
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
   integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
 
+is-fullwidth-code-point@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
+  integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
+
 is-glob@^2.0.0, is-glob@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863"
@@ -1875,20 +2042,6 @@ is-promise@^2.1.0:
   resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa"
   integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=
 
-is-regex@^1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff"
-  integrity sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==
-  dependencies:
-    has-symbols "^1.0.1"
-
-is-symbol@^1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937"
-  integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==
-  dependencies:
-    has-symbols "^1.0.1"
-
 is-typedarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a"
@@ -1939,6 +2092,13 @@ js-yaml@^3.13.1:
     argparse "^1.0.7"
     esprima "^4.0.0"
 
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
+  dependencies:
+    argparse "^2.0.1"
+
 jsbn@~0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513"
@@ -1994,6 +2154,11 @@ jsprim@^1.2.2:
     json-schema "0.2.3"
     verror "1.10.0"
 
+keypress@0.1.x:
+  version "0.1.0"
+  resolved "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz#4a3188d4291b66b4f65edb99f806aa9ae293592a"
+  integrity sha1-SjGI1CkbZrT2XtuZ+AaqmuKTWSo=
+
 kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
   version "3.2.2"
   resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
@@ -2065,12 +2230,17 @@ lodash.flow@^3.3.0:
   resolved "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz#87bf40292b8cf83e4e8ce1a3ae4209e20071675a"
   integrity sha1-h79AKSuM+D5OjOGjrkIJ4gBxZ1o=
 
+lodash.orderby@^4.6.0:
+  version "4.6.0"
+  resolved "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz#e697f04ce5d78522f54d9338b32b81a3393e4eb3"
+  integrity sha1-5pfwTOXXhSL1TZM4syuBozk+TrM=
+
 lodash.uniqby@^4.7.0:
   version "4.7.0"
   resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302"
   integrity sha1-2ZwHpmnp5tJOE2Lf4mbGdhavEwI=
 
-lodash@^4.17.13, lodash@^4.3.0:
+lodash@^4.3.0:
   version "4.17.15"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
   integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
@@ -2082,6 +2252,20 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
   dependencies:
     js-tokens "^3.0.0 || ^4.0.0"
 
+lru-cache@^6.0.0:
+  version "6.0.0"
+  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
+  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
+  dependencies:
+    yallist "^4.0.0"
+
+make-dir@^3.1.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f"
+  integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==
+  dependencies:
+    semver "^6.0.0"
+
 make-error@^1.1.1:
   version "1.3.6"
   resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
@@ -2219,6 +2403,21 @@ minimist@^1.2.5:
   resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
   integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
 
+minipass@^3.0.0:
+  version "3.1.5"
+  resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz#71f6251b0a33a49c01b3cf97ff77eda030dff732"
+  integrity sha512-+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==
+  dependencies:
+    yallist "^4.0.0"
+
+minizlib@^2.1.1:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931"
+  integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==
+  dependencies:
+    minipass "^3.0.0"
+    yallist "^4.0.0"
+
 mixin-deep@^1.2.0:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566"
@@ -2241,6 +2440,11 @@ mkdirp@^0.5.1:
   dependencies:
     minimist "0.0.8"
 
+mkdirp@^1.0.3:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
+  integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
+
 mock-require@^3.0.3:
   version "3.0.3"
   resolved "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz#ccd544d9eae81dd576b3f219f69ec867318a1946"
@@ -2259,6 +2463,11 @@ ms@2.1.1:
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
   integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
 
+ms@2.1.2:
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
+  integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
+
 mustache@^2.3.0:
   version "2.3.2"
   resolved "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz#a6d4d9c3f91d13359ab889a812954f9230a3d0c5"
@@ -2306,6 +2515,33 @@ negotiator@0.6.2:
   resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
   integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
 
+node-addon-api@^3.0.2:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161"
+  integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==
+
+node-fetch@^2.6.1:
+  version "2.6.5"
+  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd"
+  integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==
+  dependencies:
+    whatwg-url "^5.0.0"
+
+nodejieba@^2.2.1:
+  version "2.5.2"
+  resolved "https://registry.yarnpkg.com/nodejieba/-/nodejieba-2.5.2.tgz#fc929ee29f93c28c639696bac0319bac116a296a"
+  integrity sha512-ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==
+  dependencies:
+    "@mapbox/node-pre-gyp" "^1.0.4"
+    node-addon-api "^3.0.2"
+
+nopt@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88"
+  integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==
+  dependencies:
+    abbrev "1"
+
 nopt@~1.0.10:
   version "1.0.10"
   resolved "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz#6ddd21bd2a31417b92727dd585f8a6f37608ebee"
@@ -2320,12 +2556,27 @@ normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1:
   dependencies:
     remove-trailing-separator "^1.0.1"
 
+npmlog@^4.1.2:
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b"
+  integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==
+  dependencies:
+    are-we-there-yet "~1.1.2"
+    console-control-strings "~1.1.0"
+    gauge "~2.7.3"
+    set-blocking "~2.0.0"
+
+number-is-nan@^1.0.0:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
+  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
+
 oauth-sign@~0.9.0:
   version "0.9.0"
   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455"
   integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==
 
-object-assign@^4.1.1:
+object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
   version "4.1.1"
   resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
   integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -2339,16 +2590,6 @@ object-copy@^0.1.0:
     define-property "^0.2.5"
     kind-of "^3.0.3"
 
-object-inspect@^1.7.0:
-  version "1.8.0"
-  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0"
-  integrity sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==
-
-object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
-  integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==
-
 object-visit@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb"
@@ -2356,16 +2597,6 @@ object-visit@^1.0.0:
   dependencies:
     isobject "^3.0.0"
 
-object.assign@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da"
-  integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==
-  dependencies:
-    define-properties "^1.1.2"
-    function-bind "^1.1.1"
-    has-symbols "^1.0.0"
-    object-keys "^1.0.11"
-
 object.omit@^2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa"
@@ -2381,15 +2612,10 @@ object.pick@^1.3.0:
   dependencies:
     isobject "^3.0.1"
 
-object.values@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e"
-  integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.0-next.1"
-    function-bind "^1.1.1"
-    has "^1.0.3"
+object_values@^0.1.2:
+  version "0.1.2"
+  resolved "https://registry.yarnpkg.com/object_values/-/object_values-0.1.2.tgz#f8fbc31d2e537170a4cbcfb28dd61501b3207334"
+  integrity sha512-tZgUiKLraVH+4OAedBYrr4/K6KmAQw2RPNd1AuNdhLsuz5WP3VB7WuiKBWbOcjeqqAjus2ChIIWC8dSfmg7ReA==
 
 on-finished@~2.3.0:
   version "2.3.0"
@@ -2506,6 +2732,16 @@ performance-now@^2.1.0:
   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b"
   integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=
 
+pinyin@^2.10.2:
+  version "2.10.2"
+  resolved "https://registry.yarnpkg.com/pinyin/-/pinyin-2.10.2.tgz#93e3b3cb4430009925163bad10c741778c85b013"
+  integrity sha512-qAcp7+2vnjm6sAd0B9pp5JpyvHbYoQO1v9zCeJQMEgyw2VeRi02l0gR22ZBgfjjvZ1c2EGoVjJHJ1h0rwr34Ug==
+  dependencies:
+    commander "~1.1.1"
+    object-assign "^4.0.1"
+  optionalDependencies:
+    nodejieba "^2.2.1"
+
 posix-character-classes@^0.1.0:
   version "0.1.1"
   resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
@@ -2569,10 +2805,10 @@ prosemirror-changeset@^2.1.2:
   dependencies:
     prosemirror-transform "^1.0.0"
 
-prosemirror-commands@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.4.tgz#991563e67623acab4f8c510fad1570f8b4693780"
-  integrity sha512-kj4Qi+8h3EpJtZuuEDwZ9h2/QNGWDsIX/CzjmClxi9GhxWyBUMVUvIFk0mgdqHyX20lLeGmOpc0TLA5aPzgpWg==
+prosemirror-commands@^1.1.10:
+  version "1.1.10"
+  resolved "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.10.tgz#406a6589966e6cd80809cea2d801fb998639b37d"
+  integrity sha512-IWyBBXNAd44RM6NnBPljwq+/CM2oYCQJkF+YhKEAZNwzW0uFdGf4qComhjbKZzqFdu6Iub2ZhNsXgwPibA0lCQ==
   dependencies:
     prosemirror-model "^1.0.0"
     prosemirror-state "^1.0.0"
@@ -2596,10 +2832,10 @@ prosemirror-dev-tools@^2.1.1:
     react-json-tree "^0.11.0"
     unstated "^2.1.1"
 
-prosemirror-dropcursor@^1.3.2:
-  version "1.3.2"
-  resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz#28738c4ed7102e814d7a8a26d70018523fc7cd6d"
-  integrity sha512-4c94OUGyobGnwcQI70OXyMhE/9T4aTgjU+CHxkd5c7D+jH/J0mKM/lk+jneFVKt7+E4/M0D9HzRPifu8U28Thw==
+prosemirror-dropcursor@^1.3.5:
+  version "1.3.5"
+  resolved "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.5.tgz#d2808c17089df0e441ad66016aecc2b6457c8a1f"
+  integrity sha512-tNUwcF2lPAkwKBZPZRtbxpwljnODRNZ3eiYloN1DSUqDjMT1nBZm0nejaEMS1TvNQ+3amibUSAiV4hX+jpASFA==
   dependencies:
     prosemirror-state "^1.0.0"
     prosemirror-transform "^1.1.0"
@@ -2615,19 +2851,19 @@ prosemirror-gapcursor@^1.1.5:
     prosemirror-state "^1.0.0"
     prosemirror-view "^1.0.0"
 
-prosemirror-history@^1.1.3:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz#4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489"
-  integrity sha512-zGDotijea+vnfnyyUGyiy1wfOQhf0B/b6zYcCouBV8yo6JmrE9X23M5q7Nf/nATywEZbgRLG70R4DmfSTC+gfg==
+prosemirror-history@^1.2.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.2.0.tgz#04cc4df8d2f7b2a46651a2780de191ada6d465ea"
+  integrity sha512-B9v9xtf4fYbKxQwIr+3wtTDNLDZcmMMmGiI3TAPShnUzvo+Rmv1GiUrsQChY1meetHl7rhML2cppF3FTs7f7UQ==
   dependencies:
     prosemirror-state "^1.2.2"
     prosemirror-transform "^1.0.0"
     rope-sequence "^1.3.0"
 
-prosemirror-inputrules@^1.1.2:
-  version "1.1.2"
-  resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz#487e46c763e1212a4577397aba7706139084f012"
-  integrity sha512-Ja5Z3BWestlHYGvtSGqyvxMeB8QEuBjlHM8YnKtLGUXMDp965qdDV4goV8lJb17kIWHk7e7JNj6Catuoa3302g==
+prosemirror-inputrules@^1.1.3:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz#93f9199ca02473259c30d7e352e4c14022d54638"
+  integrity sha512-ZaHCLyBtvbyIHv0f5p6boQTIJjlD6o2NPZiEaZWT2DA+j591zS29QQEMT4lBqwcLW3qRSf7ZvoKNbf05YrsStw==
   dependencies:
     prosemirror-state "^1.0.0"
     prosemirror-transform "^1.0.0"
@@ -2655,17 +2891,17 @@ prosemirror-model@>=1.0.0, prosemirror-model@^1.0.0, prosemirror-model@^1.1.0, p
   dependencies:
     orderedmap "^1.1.0"
 
-prosemirror-model@^1.11.0:
-  version "1.11.0"
-  resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.11.0.tgz#dc36cdb3ad6442b9f6325c7d89170c624f9dc520"
-  integrity sha512-GqoAz/mIYjdv8gVYJ8mWFKpHoTxn/lXq4tXJ6bTVxs+rem2LzMYXrNVXfucGtfsgqsJlRIgng/ByG9j7Q8XDrg==
+prosemirror-model@^1.14.3:
+  version "1.14.3"
+  resolved "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.3.tgz#a9c250d3c4023ddf10ecb41a0a7a130e9741d37e"
+  integrity sha512-yzZlBaSxfUPIIP6U5Edh5zKxJPZ5f7bwZRhiCuH3UYkWhj+P3d8swHsbuAMOu/iDatDc5J/Qs5Mb3++mZf+CvQ==
   dependencies:
     orderedmap "^1.1.0"
 
-prosemirror-schema-list@^1.1.4:
-  version "1.1.4"
-  resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz#471f9caf2d2bed93641d2e490434c0d2d4330df1"
-  integrity sha512-pNTuZflacFOBlxrTcWSdWhjoB8BaucwfJVp/gJNxztOwaN3wQiC65axclXyplf6TKgXD/EkWfS/QAov3/Znadw==
+prosemirror-schema-list@^1.1.5:
+  version "1.1.5"
+  resolved "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.5.tgz#e7ad9e337ea3d77da6d6a4250f3d7bd51ae980a4"
+  integrity sha512-9gadhga/wySVfb/iZ2vOpndbG0XroeLw0HkkZN5demNbOea6U5oQtJmvyYWC7ZVf3WkhmVdVsOXrllM9JcC20A==
   dependencies:
     prosemirror-model "^1.0.0"
     prosemirror-transform "^1.0.0"
@@ -2678,10 +2914,10 @@ prosemirror-state@>=1.0.0, prosemirror-state@^1.0.0, prosemirror-state@^1.2.2, p
     prosemirror-model "^1.0.0"
     prosemirror-transform "^1.0.0"
 
-prosemirror-state@^1.3.3:
-  version "1.3.3"
-  resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz#b2862866b14dec2b3ae1ab18229f2bd337651a2c"
-  integrity sha512-PLXh2VJsIgvlgSTH6I2Yg6vk1CzPDp21DFreVpQtDMY2S6WaMmrQgDTLRcsrD8X38v8Yc873H7+ogdGzyIPn+w==
+prosemirror-state@^1.3.4:
+  version "1.3.4"
+  resolved "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz#4c6b52628216e753fc901c6d2bfd84ce109e8952"
+  integrity sha512-Xkkrpd1y/TQ6HKzN3agsQIGRcLckUMA9u3j207L04mt8ToRgpGeyhbVv0HI7omDORIBHjR29b7AwlATFFf2GLA==
   dependencies:
     prosemirror-model "^1.0.0"
     prosemirror-transform "^1.0.0"
@@ -2715,10 +2951,10 @@ prosemirror-transform@^1.0.0, prosemirror-transform@^1.1.0, prosemirror-transfor
   dependencies:
     prosemirror-model "^1.0.0"
 
-prosemirror-transform@^1.2.8:
-  version "1.2.8"
-  resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.8.tgz#4b86544fa43637fe381549fb7b019f4fb71fe65c"
-  integrity sha512-hKqceqv9ZmMQXNQkhFjr0KFGPvkhygaWND+uIM0GxRpALrKfxP97SsgHTBs3OpJhDmh5N+mB4D/CksB291Eavg==
+prosemirror-transform@^1.3.2:
+  version "1.3.2"
+  resolved "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.3.2.tgz#5620ebe7379e6fae4f34ecc881886cb22ce96579"
+  integrity sha512-/G6d/u9Mf6Bv3H1XR8VxhpjmUO75LYmnvj+s3ZfZpakU1hnQbsvCEybml1B3f2IWUAAQRFkbO1PnsbFhLZsYsw==
   dependencies:
     prosemirror-model "^1.0.0"
 
@@ -2736,12 +2972,12 @@ prosemirror-view@^1.0.0, prosemirror-view@^1.1.0, prosemirror-view@^1.13.3:
     prosemirror-state "^1.0.0"
     prosemirror-transform "^1.1.0"
 
-prosemirror-view@^1.15.6:
-  version "1.15.6"
-  resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.15.6.tgz#446bf7662235300c5f47362af2db805c6df3ad24"
-  integrity sha512-9FBFB+rK5pvvzHsHOacy0T/Jf+OxZSzY8tSlQiur3SZwAVaNVQm+fl23V/6gU2dHBnreGxjYx9jK+F3XPsPCGw==
+prosemirror-view@^1.20.1:
+  version "1.20.1"
+  resolved "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.20.1.tgz#174ba8ca358c73cc05e9a92a3d252bcf181ea337"
+  integrity sha512-djWORhy3a706mUH4A2dgEEV0IPZqQd1tFyz/ZVHJNoqhSgq82FwG6dq7uqHeUB2KdVSNfI2yc3rwfqlC/ll2pA==
   dependencies:
-    prosemirror-model "^1.1.0"
+    prosemirror-model "^1.14.3"
     prosemirror-state "^1.0.0"
     prosemirror-transform "^1.1.0"
 
@@ -2830,15 +3066,14 @@ react-dock@^0.2.4:
     lodash.debounce "^3.1.1"
     prop-types "^15.5.8"
 
-react-dom@^16.13.1:
-  version "16.13.1"
-  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz#c1bd37331a0486c078ee54c4740720993b2e0e7f"
-  integrity sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==
+react-dom@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz#ecffb6845e3ad8dbfcdc498f0d0a939736502c23"
+  integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==
   dependencies:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
-    prop-types "^15.6.2"
-    scheduler "^0.19.1"
+    scheduler "^0.20.2"
 
 react-emotion@^9.2.5:
   version "9.2.12"
@@ -2862,24 +3097,23 @@ react-json-tree@^0.11.0:
     prop-types "^15.5.8"
     react-base16-styling "^0.5.1"
 
-react-window@^1.8.5:
-  version "1.8.5"
-  resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz#a56b39307e79979721021f5d06a67742ecca52d1"
-  integrity sha512-HeTwlNa37AFa8MDZFZOKcNEkuF2YflA0hpGPiTT9vR7OawEt+GZbfM6wqkBahD3D3pUjIabQYzsnY/BSJbgq6Q==
+react-window@^1.8.6:
+  version "1.8.6"
+  resolved "https://registry.yarnpkg.com/react-window/-/react-window-1.8.6.tgz#d011950ac643a994118632665aad0c6382e2a112"
+  integrity sha512-8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==
   dependencies:
     "@babel/runtime" "^7.0.0"
     memoize-one ">=3.1.1 <6"
 
-react@^16.13.1:
-  version "16.13.1"
-  resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e"
-  integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==
+react@^17.0.2:
+  version "17.0.2"
+  resolved "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz#d0b5cc516d29eb3eee383f75b62864cfb6800037"
+  integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==
   dependencies:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
-    prop-types "^15.6.2"
 
-readable-stream@^2.0.2, readable-stream@^2.2.2:
+readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.2.2:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -3035,6 +3269,11 @@ request@^2.79.0:
     tunnel-agent "^0.6.0"
     uuid "^3.3.2"
 
+require-directory@^2.1.1:
+  version "2.1.1"
+  resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
+  integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
+
 resolve-from@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
@@ -3072,6 +3311,13 @@ rimraf@2:
   dependencies:
     glob "^7.1.3"
 
+rimraf@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
+  integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
+  dependencies:
+    glob "^7.1.3"
+
 rope-sequence@^1.3.0:
   version "1.3.2"
   resolved "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz#a19e02d72991ca71feb6b5f8a91154e48e3c098b"
@@ -3123,10 +3369,10 @@ safe-regex@^1.1.0:
   resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
   integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
-scheduler@^0.19.1:
-  version "0.19.1"
-  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz#4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196"
-  integrity sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==
+scheduler@^0.20.2:
+  version "0.20.2"
+  resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz#4baee39436e34aa93b4874bddcbf0fe8b8b50e91"
+  integrity sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==
   dependencies:
     loose-envify "^1.1.0"
     object-assign "^4.1.1"
@@ -3141,6 +3387,18 @@ semver@^5.3.0:
   resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
   integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
 
+semver@^6.0.0:
+  version "6.3.0"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
+  integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
+
+semver@^7.3.4:
+  version "7.3.5"
+  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
+  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
+  dependencies:
+    lru-cache "^6.0.0"
+
 send@0.17.1:
   version "0.17.1"
   resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
@@ -3160,14 +3418,14 @@ send@0.17.1:
     range-parser "~1.2.1"
     statuses "~1.5.0"
 
-sentence-splitter@^3.2.0:
-  version "3.2.0"
-  resolved "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.0.tgz#fb2cd2f61f40006643ba83d9acf4609233c1c68c"
-  integrity sha512-lKX2tZ1rsA9Tu0gW8vRmMDmIEJoZ1d7cKpzcbFZdUrSpCR6gy/7OPPh7jjT/6Oc6Z79ToUmC2l8tyTEGanVmiA==
+sentence-splitter@^3.2.2:
+  version "3.2.2"
+  resolved "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.2.tgz#b02a28c08bbad4bd3b6ec6f619d50e3fd3596d07"
+  integrity sha512-hMvaodgK9Fay928uiQoTMEWjXpCERdKD2uKo7BbSyP+uWTo+wHiRjN+ZShyI99rW0VuoV4Cuw8FUmaRcnpN7Ug==
   dependencies:
-    "@textlint/ast-node-types" "^4.2.5"
+    "@textlint/ast-node-types" "^4.4.2"
     concat-stream "^2.0.0"
-    object.values "^1.1.0"
+    object_values "^0.1.2"
     structured-source "^3.0.2"
 
 serve-static@1.14.1:
@@ -3180,6 +3438,11 @@ serve-static@1.14.1:
     parseurl "~1.3.3"
     send "0.17.1"
 
+set-blocking@~2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
+  integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc=
+
 set-value@^2.0.0, set-value@^2.0.1:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b"
@@ -3205,6 +3468,11 @@ shorthash@0.0.2:
   resolved "https://registry.yarnpkg.com/shorthash/-/shorthash-0.0.2.tgz#59b268eecbde59038b30da202bcfbddeb2c4a4eb"
   integrity sha1-WbJo7sveWQOLMNogK8+93rLEpOs=
 
+signal-exit@^3.0.0:
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz#9e3e8cc0c75a99472b44321033a7702e7738252f"
+  integrity sha512-KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==
+
 signal-exit@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d"
@@ -3349,7 +3617,16 @@ stream-browserify@^2.0.1:
     inherits "~2.0.1"
     readable-stream "^2.0.2"
 
-string-width@^2.1.0:
+string-width@^1.0.1:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
+  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
+  dependencies:
+    code-point-at "^1.0.0"
+    is-fullwidth-code-point "^1.0.0"
+    strip-ansi "^3.0.0"
+
+"string-width@^1.0.2 || 2", string-width@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -3357,21 +3634,14 @@ string-width@^2.1.0:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string.prototype.trimend@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913"
-  integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g==
-  dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.5"
-
-string.prototype.trimstart@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54"
-  integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw==
+string-width@^4.1.0, string-width@^4.2.0:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
-    define-properties "^1.1.3"
-    es-abstract "^1.17.5"
+    emoji-regex "^8.0.0"
+    is-fullwidth-code-point "^3.0.0"
+    strip-ansi "^6.0.1"
 
 string_decoder@^1.1.1:
   version "1.3.0"
@@ -3392,6 +3662,13 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
+strip-ansi@^3.0.0, strip-ansi@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
+  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
+  dependencies:
+    ansi-regex "^2.0.0"
+
 strip-ansi@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
@@ -3399,6 +3676,13 @@ strip-ansi@^4.0.0:
   dependencies:
     ansi-regex "^3.0.0"
 
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
+
 structured-source@^3.0.2:
   version "3.0.2"
   resolved "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz#dd802425e0f53dc4a6e7aca3752901a1ccda7af5"
@@ -3423,6 +3707,18 @@ supports-color@^5.3.0, supports-color@^5.4.0:
   dependencies:
     has-flag "^3.0.0"
 
+tar@^6.1.0:
+  version "6.1.11"
+  resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
+  integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
+  dependencies:
+    chownr "^2.0.0"
+    fs-minipass "^2.0.0"
+    minipass "^3.0.0"
+    minizlib "^2.1.1"
+    mkdirp "^1.0.3"
+    yallist "^4.0.0"
+
 terser@^4.6.2:
   version "4.6.4"
   resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz#40a0b37afbe5b57e494536815efa68326840fc00"
@@ -3509,6 +3805,18 @@ tough-cookie@~2.5.0:
     psl "^1.1.28"
     punycode "^2.1.1"
 
+tr46@~0.0.3:
+  version "0.0.3"
+  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
+  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
+
+transliteration@*, transliteration@^2.2.0:
+  version "2.2.0"
+  resolved "https://registry.yarnpkg.com/transliteration/-/transliteration-2.2.0.tgz#e6333cc74b25ef4465bc27086ed8465c9a19211d"
+  integrity sha512-o29GDWtecNoK4TNfnJQesGluFPiza+U8NoiKrErU8eTNlVgma6w1LV/tTiGo+waFLkhtL9WxrW0lXhZKmm7msQ==
+  dependencies:
+    yargs "^16.1.0"
+
 "traverse@>=0.3.0 <0.4":
   version "0.3.9"
   resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz#717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9"
@@ -3799,11 +4107,40 @@ watch@^1.0.1:
     exec-sh "^0.2.0"
     minimist "^1.2.0"
 
+webidl-conversions@^3.0.0:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
+  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+
+whatwg-url@^5.0.0:
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
+  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
+  dependencies:
+    tr46 "~0.0.3"
+    webidl-conversions "^3.0.0"
+
+wide-align@^1.1.0:
+  version "1.1.3"
+  resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457"
+  integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==
+  dependencies:
+    string-width "^1.0.2 || 2"
+
 word-wrap@~1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
+wrap-ansi@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
+  integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
@@ -3817,6 +4154,16 @@ ws@^1.1.1:
     options ">=0.0.5"
     ultron "1.0.x"
 
+y18n@^5.0.5:
+  version "5.0.8"
+  resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55"
+  integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==
+
+yallist@^4.0.0:
+  version "4.0.0"
+  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
+  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+
 yaml@^1.7.2:
   version "1.7.2"
   resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2"
@@ -3824,6 +4171,24 @@ yaml@^1.7.2:
   dependencies:
     "@babel/runtime" "^7.6.3"
 
+yargs-parser@^20.2.2:
+  version "20.2.9"
+  resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee"
+  integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==
+
+yargs@^16.1.0:
+  version "16.2.0"
+  resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66"
+  integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==
+  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"
+
 yn@3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
diff --git a/pkgs/applications/editors/rstudio/yarndeps.nix b/pkgs/applications/editors/rstudio/yarndeps.nix
index be4480a67c667..21d267f841cd2 100644
--- a/pkgs/applications/editors/rstudio/yarndeps.nix
+++ b/pkgs/applications/editors/rstudio/yarndeps.nix
@@ -6,15 +6,23 @@
       path = fetchurl {
         name = "_babel_code_frame___code_frame_7.8.3.tgz";
         url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz";
-        sha1 = "33e25903d7481181534e12ec0a25f16b6fcf419e";
+        sha512 = "a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==";
       };
     }
     {
-      name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
+      name = "_babel_helper_module_imports___helper_module_imports_7.15.4.tgz";
       path = fetchurl {
-        name = "_babel_helper_module_imports___helper_module_imports_7.8.3.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz";
-        sha1 = "7fe39589b39c016331b6b8c3f441e8f0b1419498";
+        name = "_babel_helper_module_imports___helper_module_imports_7.15.4.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz";
+        sha512 = "jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA==";
+      };
+    }
+    {
+      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
+      path = fetchurl {
+        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.9.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz";
+        sha512 = "pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g==";
       };
     }
     {
@@ -22,7 +30,7 @@
       path = fetchurl {
         name = "_babel_highlight___highlight_7.8.3.tgz";
         url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.8.3.tgz";
-        sha1 = "28f173d04223eaaa59bc1d439a3836e6d1265797";
+        sha512 = "PX4y5xQUvy0fnEVHrYOarRPXVWafSjTW9T0Hab8gVIawpl2Sj0ORyrygANq+KjcNlSSTw0YCLSNA8OyZ1I4yEg==";
       };
     }
     {
@@ -30,7 +38,7 @@
       path = fetchurl {
         name = "_babel_runtime___runtime_7.9.6.tgz";
         url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.6.tgz";
-        sha1 = "a9102eb5cadedf3f31d08a9ecf294af7827ea29f";
+        sha512 = "64AF1xY3OAkFHqOb9s4jpgk1Mm5vDZ4L3acHvAml+53nO1XbXLuDodsVpO4OIUsmemlUHMxNdYMNJmsvOwLrvQ==";
       };
     }
     {
@@ -38,15 +46,15 @@
       path = fetchurl {
         name = "_babel_runtime___runtime_7.8.4.tgz";
         url  = "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.8.4.tgz";
-        sha1 = "d79f5a2040f7caa24d53e563aad49cbc05581308";
+        sha512 = "neAp3zt80trRVBI1x0azq6c57aNBqYZH8KhMm3TaB7wEI5Q4A2SHfBHE8w9gOhI/lrqxtEbXZgQIrHP+wvSGwQ==";
       };
     }
     {
-      name = "_babel_types___types_7.8.6.tgz";
+      name = "_babel_types___types_7.15.6.tgz";
       path = fetchurl {
-        name = "_babel_types___types_7.8.6.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.8.6.tgz";
-        sha1 = "629ecc33c2557fcde7126e58053127afdb3e6d01";
+        name = "_babel_types___types_7.15.6.tgz";
+        url  = "https://registry.yarnpkg.com/@babel/types/-/types-7.15.6.tgz";
+        sha512 = "BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==";
       };
     }
     {
@@ -54,7 +62,7 @@
       path = fetchurl {
         name = "_emotion_babel_utils___babel_utils_0.6.10.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/babel-utils/-/babel-utils-0.6.10.tgz";
-        sha1 = "83dbf3dfa933fae9fc566e54fbb45f14674c6ccc";
+        sha512 = "/fnkM/LTEp3jKe++T0KyTszVGWNKPNOUJfjNKLO17BzQ6QPxgbg3whayom1Qr2oLFH3V92tDymU+dT5q676uow==";
       };
     }
     {
@@ -62,7 +70,7 @@
       path = fetchurl {
         name = "_emotion_hash___hash_0.6.6.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/hash/-/hash-0.6.6.tgz";
-        sha1 = "62266c5f0eac6941fece302abad69f2ee7e25e44";
+        sha512 = "ojhgxzUHZ7am3D2jHkMzPpsBAiB005GF5YU4ea+8DNPybMk01JJUM9V9YRlF/GE95tcOm8DxQvWA2jq19bGalQ==";
       };
     }
     {
@@ -70,7 +78,7 @@
       path = fetchurl {
         name = "_emotion_is_prop_valid___is_prop_valid_0.6.8.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/is-prop-valid/-/is-prop-valid-0.6.8.tgz";
-        sha1 = "68ad02831da41213a2089d2cab4e8ac8b30cbd85";
+        sha512 = "IMSL7ekYhmFlILXcouA6ket3vV7u9BqStlXzbKOF9HBtpUPMMlHU+bBxrLOa2NvleVwNIxeq/zL8LafLbeUXcA==";
       };
     }
     {
@@ -78,7 +86,7 @@
       path = fetchurl {
         name = "_emotion_memoize___memoize_0.6.6.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/memoize/-/memoize-0.6.6.tgz";
-        sha1 = "004b98298d04c7ca3b4f50ca2035d4f60d2eed1b";
+        sha512 = "h4t4jFjtm1YV7UirAFuSuFGyLa+NNxjdkq6DpFLANNQY5rHueFZHVY+8Cu1HYVP6DrheB0kv4m5xPjo7eKT7yQ==";
       };
     }
     {
@@ -86,7 +94,7 @@
       path = fetchurl {
         name = "_emotion_serialize___serialize_0.9.1.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/serialize/-/serialize-0.9.1.tgz";
-        sha1 = "a494982a6920730dba6303eb018220a2b629c145";
+        sha512 = "zTuAFtyPvCctHBEL8KZ5lJuwBanGSutFEncqLn/m9T1a6a93smBStK+bZzcNPgj4QS8Rkw9VTwJGhRIUVO8zsQ==";
       };
     }
     {
@@ -94,7 +102,7 @@
       path = fetchurl {
         name = "_emotion_stylis___stylis_0.7.1.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/stylis/-/stylis-0.7.1.tgz";
-        sha1 = "50f63225e712d99e2b2b39c19c70fff023793ca5";
+        sha512 = "/SLmSIkN13M//53TtNxgxo57mcJk/UJIDFRKwOiLIBEyBHEcipgR6hNMQ/59Sl4VjCJ0Z/3zeAZyvnSLPG/1HQ==";
       };
     }
     {
@@ -102,7 +110,7 @@
       path = fetchurl {
         name = "_emotion_unitless___unitless_0.6.7.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/unitless/-/unitless-0.6.7.tgz";
-        sha1 = "53e9f1892f725b194d5e6a1684a7b394df592397";
+        sha512 = "Arj1hncvEVqQ2p7Ega08uHLr1JuRYBuO5cIvcA+WWEQ5+VmkOE3ZXzl04NbQxeQpWX78G7u6MqxKuNX3wvYZxg==";
       };
     }
     {
@@ -110,15 +118,23 @@
       path = fetchurl {
         name = "_emotion_utils___utils_0.8.2.tgz";
         url  = "https://registry.yarnpkg.com/@emotion/utils/-/utils-0.8.2.tgz";
-        sha1 = "576ff7fb1230185b619a75d258cbc98f0867a8dc";
+        sha512 = "rLu3wcBWH4P5q1CGoSSH/i9hrXs7SlbRLkoq9IGuoPYNGQvDJ3pt/wmOM+XgYjIDRMVIdkUWt0RsfzF50JfnCw==";
       };
     }
     {
-      name = "_textlint_ast_node_types___ast_node_types_4.3.4.tgz";
+      name = "_mapbox_node_pre_gyp___node_pre_gyp_1.0.5.tgz";
       path = fetchurl {
-        name = "_textlint_ast_node_types___ast_node_types_4.3.4.tgz";
-        url  = "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.3.4.tgz";
-        sha1 = "f6596c45c32c85dc06915c3077bb7686033efd32";
+        name = "_mapbox_node_pre_gyp___node_pre_gyp_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.5.tgz";
+        sha512 = "4srsKPXWlIxp5Vbqz5uLfBN+du2fJChBoYn/f2h991WLdk7jUvcSk/McVLSv/X+xQIPI8eGD5GjrnygdyHnhPA==";
+      };
+    }
+    {
+      name = "_textlint_ast_node_types___ast_node_types_4.4.3.tgz";
+      path = fetchurl {
+        name = "_textlint_ast_node_types___ast_node_types_4.4.3.tgz";
+        url  = "https://registry.yarnpkg.com/@textlint/ast-node-types/-/ast-node-types-4.4.3.tgz";
+        sha512 = "qi2jjgO6Tn3KNPGnm6B7p6QTEPvY95NFsIAaJuwbulur8iJUEenp1OnoUfiDaC/g2WPPEFkcfXpmnu8XEMFo2A==";
       };
     }
     {
@@ -126,15 +142,15 @@
       path = fetchurl {
         name = "_types_ace___ace_0.0.43.tgz";
         url  = "https://registry.yarnpkg.com/@types/ace/-/ace-0.0.43.tgz";
-        sha1 = "9f0916174b6060dabbccd36ba4868ea769a1c633";
+        sha512 = "eQdX8AQ7CfSHym07MZMBQ8FKUj9AZ2Wcc26W5Ct8J4KOMjFY6SFUaf2YA8YHBut0Fwl//2kZ+0GLZNp+NQNRIA==";
       };
     }
     {
-      name = "_types_clipboard___clipboard_2.0.1.tgz";
+      name = "_types_clipboard___clipboard_2.0.7.tgz";
       path = fetchurl {
-        name = "_types_clipboard___clipboard_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.1.tgz";
-        sha1 = "75a74086c293d75b12bc93ff13bc7797fef05a40";
+        name = "_types_clipboard___clipboard_2.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@types/clipboard/-/clipboard-2.0.7.tgz";
+        sha512 = "VwVFUHlneOsWfv/GaaY7Kwk4XasDqkAlyFQtsHxnOw0yyBYWTrlEXtmb9RtC+VFBCdtuOeIXECmELNd5RrKp/g==";
       };
     }
     {
@@ -142,15 +158,15 @@
       path = fetchurl {
         name = "_types_diff_match_patch___diff_match_patch_1.0.32.tgz";
         url  = "https://registry.yarnpkg.com/@types/diff-match-patch/-/diff-match-patch-1.0.32.tgz";
-        sha1 = "d9c3b8c914aa8229485351db4865328337a3d09f";
+        sha512 = "bPYT5ECFiblzsVzyURaNhljBH2Gh1t9LowgUwciMrNAhFewLkHT2H0Mto07Y4/3KCOGZHRQll3CTtQZ0X11D/A==";
       };
     }
     {
-      name = "_types_js_yaml___js_yaml_3.12.3.tgz";
+      name = "_types_js_yaml___js_yaml_4.0.3.tgz";
       path = fetchurl {
-        name = "_types_js_yaml___js_yaml_3.12.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-3.12.3.tgz";
-        sha1 = "abf383c5b639d0aa8b8c4a420d6a85f703357d6c";
+        name = "_types_js_yaml___js_yaml_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.3.tgz";
+        sha512 = "5t9BhoORasuF5uCPr+d5/hdB++zRFUTMIZOzbNkr+jZh3yQht4HYbRDyj9fY8n2TZT30iW9huzav73x4NikqWg==";
       };
     }
     {
@@ -158,7 +174,15 @@
       path = fetchurl {
         name = "_types_lodash.debounce___lodash.debounce_4.0.6.tgz";
         url  = "https://registry.yarnpkg.com/@types/lodash.debounce/-/lodash.debounce-4.0.6.tgz";
-        sha1 = "c5a2326cd3efc46566c47e4c0aa248dc0ee57d60";
+        sha512 = "4WTmnnhCfDvvuLMaF3KV4Qfki93KebocUF45msxhYyjMttZDQYzHkO639ohhk8+oco2cluAFL3t5+Jn4mleylQ==";
+      };
+    }
+    {
+      name = "_types_lodash.orderby___lodash.orderby_4.6.6.tgz";
+      path = fetchurl {
+        name = "_types_lodash.orderby___lodash.orderby_4.6.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/lodash.orderby/-/lodash.orderby-4.6.6.tgz";
+        sha512 = "wQzu6xK+bSwhu45OeMI7fjywiIZiiaBzJB8W3fwnF1SJXHoOXRLutrSnVmq4yHPOM036qsy8lx9wHQcAbXNjJw==";
       };
     }
     {
@@ -166,7 +190,7 @@
       path = fetchurl {
         name = "_types_lodash.uniqby___lodash.uniqby_4.7.6.tgz";
         url  = "https://registry.yarnpkg.com/@types/lodash.uniqby/-/lodash.uniqby-4.7.6.tgz";
-        sha1 = "672827a701403f07904fe37f0721ae92abfa80e8";
+        sha512 = "9wBhrm1y6asW50Joj6tsySCNUgzK2tCqL7vtKIej0E9RyeBFdcte7fxUosmFuMoOU0eHqOMK76kCCrK99jxHgg==";
       };
     }
     {
@@ -174,7 +198,7 @@
       path = fetchurl {
         name = "_types_lodash___lodash_4.14.154.tgz";
         url  = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.154.tgz";
-        sha1 = "069e3c703fdb264e67be9e03b20a640bc0198ecc";
+        sha512 = "VoDZIJmg3P8vPEnTldLvgA+q7RkIbVkbYX4k0cAVFzGAOQwUehVgRHgIr2/wepwivDst/rVRqaiBSjCXRnoWwQ==";
       };
     }
     {
@@ -182,7 +206,7 @@
       path = fetchurl {
         name = "_types_node___node_14.0.4.tgz";
         url  = "https://registry.yarnpkg.com/@types/node/-/node-14.0.4.tgz";
-        sha1 = "43a63fc5edce226bed106b31b875165256271107";
+        sha512 = "k3NqigXWRzQZVBDS5D1U70A5E8Qk4Kh+Ha/x4M8Bt9pF0X05eggfnC9+63Usc9Q928hRUIpIhTQaXsZwZBl4Ew==";
       };
     }
     {
@@ -190,7 +214,7 @@
       path = fetchurl {
         name = "_types_orderedmap___orderedmap_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/@types/orderedmap/-/orderedmap-1.0.0.tgz";
-        sha1 = "807455a192bba52cbbb4517044bc82bdbfa8c596";
+        sha512 = "dxKo80TqYx3YtBipHwA/SdFmMMyLCnP+5mkEqN0eMjcTBzHkiiX0ES118DsjDBjvD+zeSsSU9jULTZ+frog+Gw==";
       };
     }
     {
@@ -198,7 +222,15 @@
       path = fetchurl {
         name = "_types_parse_json___parse_json_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz";
-        sha1 = "2f8bb441434d163b35fb8ffdccd7138927ffb8c0";
+        sha512 = "//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==";
+      };
+    }
+    {
+      name = "_types_pinyin___pinyin_2.10.0.tgz";
+      path = fetchurl {
+        name = "_types_pinyin___pinyin_2.10.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/pinyin/-/pinyin-2.10.0.tgz";
+        sha512 = "YLty6FPYiBgxNbQNaTRJquvflRdG026jjOpjNXR7HdGEJPGtmPBp1x9LkWePCNA/ClaTT0hYem080TbRCMLbew==";
       };
     }
     {
@@ -206,7 +238,7 @@
       path = fetchurl {
         name = "_types_prop_types___prop_types_15.7.3.tgz";
         url  = "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz";
-        sha1 = "2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7";
+        sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw==";
       };
     }
     {
@@ -214,55 +246,55 @@
       path = fetchurl {
         name = "_types_prosemirror_commands___prosemirror_commands_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.3.tgz";
-        sha1 = "e9fa5653cffd1c75c260594cf3ec5244c9004dbf";
+        sha512 = "AjFCJqBvAhQ4gOzXPgUcnEZwu4jd7se7ani3dYAv8p4L+cWEPD6Pshrpp5uJDI5/pzvNXLWQ/4c2Qk4h9IML1w==";
       };
     }
     {
-      name = "_types_prosemirror_dev_tools___prosemirror_dev_tools_2.1.0.tgz";
+      name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_dev_tools___prosemirror_dev_tools_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.0.tgz";
-        sha1 = "91e2ef4f36129f5155f924296e306de187e86bdb";
+        name = "_types_prosemirror_commands___prosemirror_commands_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-commands/-/prosemirror-commands-1.0.4.tgz";
+        sha512 = "utDNYB3EXLjAfYIcRWJe6pn3kcQ5kG4RijbT/0Y/TFOm6yhvYS/D9eJVnijdg9LDjykapcezchxGRqFD5LcyaQ==";
       };
     }
     {
-      name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.0.tgz";
+      name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.3.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.0.tgz";
-        sha1 = "2df872bc6431a9f06bc1a4a0eac7c2dc527e7f12";
+        name = "_types_prosemirror_dropcursor___prosemirror_dropcursor_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-dropcursor/-/prosemirror-dropcursor-1.0.3.tgz";
+        sha512 = "b0/8njnJ4lwyHKcGuCMf3x7r1KjxyugB1R/c2iMCjplsJHSC7UY9+OysqgJR5uUXRekUSGniiLgBtac/lvH6wg==";
       };
     }
     {
-      name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.1.tgz";
+      name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.4.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.1.tgz";
-        sha1 = "56a6274ef39f62c339adcc64305294b800211a5e";
+        name = "_types_prosemirror_gapcursor___prosemirror_gapcursor_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-gapcursor/-/prosemirror-gapcursor-1.0.4.tgz";
+        sha512 = "9xKjFIG5947dzerFvkLWp6F53JwrUYoYwh3SgcTFEp8SbSfNNrez/PFYVZKPnoqPoaK5WtTdQTaMwpCV9rXQIg==";
       };
     }
     {
-      name = "_types_prosemirror_history___prosemirror_history_1.0.1.tgz";
+      name = "_types_prosemirror_history___prosemirror_history_1.0.3.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_history___prosemirror_history_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.1.tgz";
-        sha1 = "b8d7595f73788b63fc9f2b57a763ba8375abfe87";
+        name = "_types_prosemirror_history___prosemirror_history_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-history/-/prosemirror-history-1.0.3.tgz";
+        sha512 = "5TloMDRavgLjOAKXp1Li8u0xcsspzbT1Cm9F2pwHOkgvQOz1jWQb2VIXO7RVNsFjLBZdIXlyfSLivro3DuMWXg==";
       };
     }
     {
-      name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.3.tgz";
+      name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.3.tgz";
-        sha1 = "3f8f07921f692b6c7e4781fa426aee3e76b9018c";
+        name = "_types_prosemirror_inputrules___prosemirror_inputrules_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-inputrules/-/prosemirror-inputrules-1.0.4.tgz";
+        sha512 = "lJIMpOjO47SYozQybUkpV6QmfuQt7GZKHtVrvS+mR5UekA8NMC5HRIVMyaIauJLWhKU6oaNjpVaXdw41kh165g==";
       };
     }
     {
-      name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.3.tgz";
+      name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.3.tgz";
-        sha1 = "09cc469a69222a4c8a3d415d02eeb459bb74269c";
+        name = "_types_prosemirror_keymap___prosemirror_keymap_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-keymap/-/prosemirror-keymap-1.0.4.tgz";
+        sha512 = "ycevwkqUh+jEQtPwqO7sWGcm+Sybmhu8MpBsM8DlO3+YTKnXbKA6SDz/+q14q1wK3UA8lHJyfR+v+GPxfUSemg==";
       };
     }
     {
@@ -270,15 +302,15 @@
       path = fetchurl {
         name = "_types_prosemirror_model___prosemirror_model_1.7.2.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-model/-/prosemirror-model-1.7.2.tgz";
-        sha1 = "9c7aff2fd62f0f56eb76e2e0eb27bf6996e6c28a";
+        sha512 = "2l+yXvidg3AUHN07mO4Jd8Q84fo6ksFsy7LHUurLYrZ74uTahBp2fzcO49AKZMzww2EulXJ40Kl/OFaQ/7A1fw==";
       };
     }
     {
-      name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
+      name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
       path = fetchurl {
-        name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.1.tgz";
-        sha1 = "7f53e3c0326b1359755f3971b8c448d98b722f21";
+        name = "_types_prosemirror_schema_list___prosemirror_schema_list_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/prosemirror-schema-list/-/prosemirror-schema-list-1.0.3.tgz";
+        sha512 = "uWybOf+M2Ea7rlbs0yLsS4YJYNGXYtn4N+w8HCw3Vvfl6wBAROzlMt0gV/D/VW/7J/LlAjwMezuGe8xi24HzXA==";
       };
     }
     {
@@ -286,15 +318,7 @@
       path = fetchurl {
         name = "_types_prosemirror_state___prosemirror_state_1.2.3.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.3.tgz";
-        sha1 = "7f5f871acf7b8c22e1862ff0068f9bf7e9682c0e";
-      };
-    }
-    {
-      name = "_types_prosemirror_state___prosemirror_state_1.2.5.tgz";
-      path = fetchurl {
-        name = "_types_prosemirror_state___prosemirror_state_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/@types/prosemirror-state/-/prosemirror-state-1.2.5.tgz";
-        sha1 = "a91304e9aab6e71f868e23b3a1ae514a75033f8f";
+        sha512 = "6m433Hubix9bx+JgcLW7zzyiZuzwjq5mBdSMYY4Yi5c5ZpV2RiVmg7Cy6f9Thtts8vuztilw+PczJAgDm1Frfw==";
       };
     }
     {
@@ -302,7 +326,7 @@
       path = fetchurl {
         name = "_types_prosemirror_tables___prosemirror_tables_0.9.1.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-tables/-/prosemirror-tables-0.9.1.tgz";
-        sha1 = "d2203330f0fa1161c04152bf02c39e152082d408";
+        sha512 = "zoY1qcAC6kG4UjnaQQXuoyYQdDJMQmY9uzRKdyUppP8rWRR5/kXBHOd84CD9ZvrYUBo3uDmS20qQnc3knr2j9A==";
       };
     }
     {
@@ -310,7 +334,7 @@
       path = fetchurl {
         name = "_types_prosemirror_transform___prosemirror_transform_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-transform/-/prosemirror-transform-1.1.1.tgz";
-        sha1 = "5a0de16e8e0123b4c3d9559235e19f39cee85e5c";
+        sha512 = "yYCYSoiRH+Wcbl8GJc0PFCzeyMzNQ1vL2xrHHSXZuNcIlH75VoiKrZFeZ6BS9cl8mYXjZrlmdBe8YOxYvyKM6A==";
       };
     }
     {
@@ -318,23 +342,23 @@
       path = fetchurl {
         name = "_types_prosemirror_view___prosemirror_view_1.11.2.tgz";
         url  = "https://registry.yarnpkg.com/@types/prosemirror-view/-/prosemirror-view-1.11.2.tgz";
-        sha1 = "58af5dcb7de20b7de874de99147552d5627209a1";
+        sha512 = "EKcQmR4KdkFZU13wS5pWrkSojRCPGqz/l/uzpZFfW5cgdr7fQsftf2/ttvIjpk1a94ISifEY4UZwflVJ+uL4Rg==";
       };
     }
     {
-      name = "_types_react_dom___react_dom_16.9.6.tgz";
+      name = "_types_react_dom___react_dom_17.0.9.tgz";
       path = fetchurl {
-        name = "_types_react_dom___react_dom_16.9.6.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-16.9.6.tgz";
-        sha1 = "9e7f83d90566521cc2083be2277c6712dcaf754c";
+        name = "_types_react_dom___react_dom_17.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-17.0.9.tgz";
+        sha512 = "wIvGxLfgpVDSAMH5utdL9Ngm5Owu0VsGmldro3ORLXV8CShrL8awVj06NuEXFQ5xyaYfdca7Sgbk/50Ri1GdPg==";
       };
     }
     {
-      name = "_types_react_window___react_window_1.8.2.tgz";
+      name = "_types_react_window___react_window_1.8.5.tgz";
       path = fetchurl {
-        name = "_types_react_window___react_window_1.8.2.tgz";
-        url  = "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.2.tgz";
-        sha1 = "a5a6b2762ce73ffaab7911ee1397cf645f2459fe";
+        name = "_types_react_window___react_window_1.8.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react-window/-/react-window-1.8.5.tgz";
+        sha512 = "V9q3CvhC9Jk9bWBOysPGaWy/Z0lxYcTXLtLipkt2cnRj1JOSFNF7wqGpkScSXMgBwC+fnVRg/7shwgddBG5ICw==";
       };
     }
     {
@@ -342,7 +366,31 @@
       path = fetchurl {
         name = "_types_react___react_16.9.32.tgz";
         url  = "https://registry.yarnpkg.com/@types/react/-/react-16.9.32.tgz";
-        sha1 = "f6368625b224604148d1ddf5920e4fefbd98d383";
+        sha512 = "fmejdp0CTH00mOJmxUPPbWCEBWPvRIL4m8r0qD+BSDUqmutPyGQCHifzMpMzdvZwROdEdL78IuZItntFWgPXHQ==";
+      };
+    }
+    {
+      name = "_types_react___react_17.0.20.tgz";
+      path = fetchurl {
+        name = "_types_react___react_17.0.20.tgz";
+        url  = "https://registry.yarnpkg.com/@types/react/-/react-17.0.20.tgz";
+        sha512 = "wWZrPlihslrPpcKyCSlmIlruakxr57/buQN1RjlIeaaTWDLtJkTtRW429MoQJergvVKc4IWBpRhWw7YNh/7GVA==";
+      };
+    }
+    {
+      name = "_types_scheduler___scheduler_0.16.2.tgz";
+      path = fetchurl {
+        name = "_types_scheduler___scheduler_0.16.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.2.tgz";
+        sha512 = "hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==";
+      };
+    }
+    {
+      name = "_types_transliteration___transliteration_1.6.6.tgz";
+      path = fetchurl {
+        name = "_types_transliteration___transliteration_1.6.6.tgz";
+        url  = "https://registry.yarnpkg.com/@types/transliteration/-/transliteration-1.6.6.tgz";
+        sha512 = "drgWFeHgZt16bXKhsu4cP6TlunW3Pu9MS1l9w7Qnm+bcsqf4/pnjnO6/uMAziCV8rnmuU3iCSk7J2zio1nR1+A==";
       };
     }
     {
@@ -350,15 +398,15 @@
       path = fetchurl {
         name = "_types_unzip___unzip_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/@types/unzip/-/unzip-0.1.1.tgz";
-        sha1 = "96e80dc5e2917a769c8be01aa49c4fe660e7bab3";
+        sha512 = "skD6Um7Pk2l7y+tVOKSgOA9vXViyhk/qJYmr17Ek4Uw3Zgo/DWPScphTPztPbApTIngyYSJnkEW87xrHzRYaew==";
       };
     }
     {
-      name = "_types_zenscroll___zenscroll_4.0.0.tgz";
+      name = "_types_zenscroll___zenscroll_4.0.1.tgz";
       path = fetchurl {
-        name = "_types_zenscroll___zenscroll_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.0.tgz";
-        sha1 = "9acc7df6c87cc9e064f5a6230df499835dee1972";
+        name = "_types_zenscroll___zenscroll_4.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/@types/zenscroll/-/zenscroll-4.0.1.tgz";
+        sha512 = "r1h1/SPJQn8kL4rzyJvf4HJvqv20YrTV++qRGiPuA1mYbCSkMBaUOsCXLN780gI6BZfRzDbmjU0/sWq9yi1WgQ==";
       };
     }
     {
@@ -366,7 +414,7 @@
       path = fetchurl {
         name = "abbrev___abbrev_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz";
-        sha1 = "f8f2c887ad10bf67f634f005b6987fed3179aac8";
+        sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==";
       };
     }
     {
@@ -374,7 +422,7 @@
       path = fetchurl {
         name = "accepts___accepts_1.3.7.tgz";
         url  = "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz";
-        sha1 = "531bc726517a3b2b41f850021c6cc15eaab507cd";
+        sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==";
       };
     }
     {
@@ -382,7 +430,7 @@
       path = fetchurl {
         name = "acorn_jsx___acorn_jsx_4.1.1.tgz";
         url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-4.1.1.tgz";
-        sha1 = "e8e41e48ea2fe0c896740610ab6a4ffd8add225e";
+        sha512 = "JY+iV6r+cO21KtntVvFkD+iqjtdpRUpGqKWgfkCdZq1R+kbreEl8EcdcJR4SmiIgsIQT33s6QzheQ9a275Q8xw==";
       };
     }
     {
@@ -390,7 +438,15 @@
       path = fetchurl {
         name = "acorn___acorn_5.7.3.tgz";
         url  = "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz";
-        sha1 = "67aa231bf8812974b85235a96771eb6bd07ea279";
+        sha512 = "T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==";
+      };
+    }
+    {
+      name = "agent_base___agent_base_6.0.2.tgz";
+      path = fetchurl {
+        name = "agent_base___agent_base_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz";
+        sha512 = "RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==";
       };
     }
     {
@@ -398,7 +454,7 @@
       path = fetchurl {
         name = "ajax_request___ajax_request_1.2.3.tgz";
         url  = "https://registry.yarnpkg.com/ajax-request/-/ajax-request-1.2.3.tgz";
-        sha1 = "99fcbec1d6d2792f85fa949535332bd14f5f3790";
+        sha1 = "mfy+wdbSeS+F+pSVNTMr0U9fN5A=";
       };
     }
     {
@@ -406,7 +462,7 @@
       path = fetchurl {
         name = "ajv___ajv_6.12.0.tgz";
         url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz";
-        sha1 = "06d60b96d87b8454a5adaba86e7854da629db4b7";
+        sha512 = "D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==";
       };
     }
     {
@@ -414,7 +470,15 @@
       path = fetchurl {
         name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
         url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
-        sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_2.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
+        sha1 = "w7M6te42DYbg5ijwRorn7yfWVN8=";
       };
     }
     {
@@ -422,7 +486,15 @@
       path = fetchurl {
         name = "ansi_regex___ansi_regex_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
-        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+        sha1 = "7QMXwyIGT3lGbAKWa922Bas32Zg=";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_5.0.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     }
     {
@@ -430,7 +502,15 @@
       path = fetchurl {
         name = "ansi_styles___ansi_styles_3.2.1.tgz";
         url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
       };
     }
     {
@@ -438,7 +518,7 @@
       path = fetchurl {
         name = "ansi___ansi_0.3.1.tgz";
         url  = "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz";
-        sha1 = "0c42d4fb17160d5a9af1e484bace1c66922c1b21";
+        sha1 = "DELU+xcWDVqa8eSEus4cZpIsGyE=";
       };
     }
     {
@@ -446,7 +526,7 @@
       path = fetchurl {
         name = "anymatch___anymatch_1.3.2.tgz";
         url  = "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz";
-        sha1 = "553dcb8f91e3c889845dfdba34c77721b90b9d7a";
+        sha512 = "0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==";
       };
     }
     {
@@ -454,7 +534,7 @@
       path = fetchurl {
         name = "app_root_path___app_root_path_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/app-root-path/-/app-root-path-1.4.0.tgz";
-        sha1 = "6335d865c9640d0fad99004e5a79232238e92dfa";
+        sha1 = "YzXYZclkDQ+tmQBOWnkjIjjpLfo=";
       };
     }
     {
@@ -462,7 +542,23 @@
       path = fetchurl {
         name = "app_root_path___app_root_path_2.2.1.tgz";
         url  = "https://registry.yarnpkg.com/app-root-path/-/app-root-path-2.2.1.tgz";
-        sha1 = "d0df4a682ee408273583d43f6f79e9892624bc9a";
+        sha512 = "91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==";
+      };
+    }
+    {
+      name = "aproba___aproba_1.2.0.tgz";
+      path = fetchurl {
+        name = "aproba___aproba_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz";
+        sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==";
+      };
+    }
+    {
+      name = "are_we_there_yet___are_we_there_yet_1.1.7.tgz";
+      path = fetchurl {
+        name = "are_we_there_yet___are_we_there_yet_1.1.7.tgz";
+        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz";
+        sha512 = "nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==";
       };
     }
     {
@@ -470,7 +566,7 @@
       path = fetchurl {
         name = "arg___arg_4.1.3.tgz";
         url  = "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz";
-        sha1 = "269fc7ad5b8e42cb63c896d5666017261c144089";
+        sha512 = "58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==";
       };
     }
     {
@@ -478,7 +574,15 @@
       path = fetchurl {
         name = "argparse___argparse_1.0.10.tgz";
         url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
-        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+        sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==";
+      };
+    }
+    {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
       };
     }
     {
@@ -486,7 +590,7 @@
       path = fetchurl {
         name = "arr_diff___arr_diff_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz";
-        sha1 = "8f3b827f955a8bd669697e4a4256ac3ceae356cf";
+        sha1 = "jzuCf5Vai9ZpaX5KQlasPOrjVs8=";
       };
     }
     {
@@ -494,7 +598,7 @@
       path = fetchurl {
         name = "arr_diff___arr_diff_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz";
-        sha1 = "d6461074febfec71e7e15235761a329a5dc7c520";
+        sha1 = "1kYQdP6/7HHn4VI1dhoyml3HxSA=";
       };
     }
     {
@@ -502,7 +606,7 @@
       path = fetchurl {
         name = "arr_flatten___arr_flatten_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz";
-        sha1 = "36048bbff4e7b47e136644316c99669ea5ae91f1";
+        sha512 = "L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==";
       };
     }
     {
@@ -510,7 +614,7 @@
       path = fetchurl {
         name = "arr_union___arr_union_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz";
-        sha1 = "e39b09aea9def866a8f206e288af63919bae39c4";
+        sha1 = "45sJrqne+Gao8gbiiK9jkZuuOcQ=";
       };
     }
     {
@@ -518,7 +622,7 @@
       path = fetchurl {
         name = "array_flatten___array_flatten_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz";
-        sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2";
+        sha1 = "ml9pkFGx5wczKPKgCJaLZOopVdI=";
       };
     }
     {
@@ -526,7 +630,7 @@
       path = fetchurl {
         name = "array_unique___array_unique_0.2.1.tgz";
         url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz";
-        sha1 = "a1d97ccafcbc2625cc70fadceb36a50c58b01a53";
+        sha1 = "odl8yvy8JiXMcPrc6zalDFiwGlM=";
       };
     }
     {
@@ -534,7 +638,7 @@
       path = fetchurl {
         name = "array_unique___array_unique_0.3.2.tgz";
         url  = "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz";
-        sha1 = "a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428";
+        sha1 = "qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=";
       };
     }
     {
@@ -542,7 +646,7 @@
       path = fetchurl {
         name = "asn1___asn1_0.2.4.tgz";
         url  = "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz";
-        sha1 = "8d2475dfab553bb33e77b54e59e880bb8ce23136";
+        sha512 = "jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==";
       };
     }
     {
@@ -550,7 +654,7 @@
       path = fetchurl {
         name = "assert_plus___assert_plus_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz";
-        sha1 = "f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525";
+        sha1 = "8S4PPF13sLHN2RRpQuTpbB5N1SU=";
       };
     }
     {
@@ -558,7 +662,7 @@
       path = fetchurl {
         name = "assign_symbols___assign_symbols_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz";
-        sha1 = "59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367";
+        sha1 = "WWZ/QfrdTyDMvCu5a41Pf3jsA2c=";
       };
     }
     {
@@ -566,7 +670,7 @@
       path = fetchurl {
         name = "async_each___async_each_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz";
-        sha1 = "b727dbf87d7651602f06f4d4ac387f47d91b0cbf";
+        sha512 = "z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==";
       };
     }
     {
@@ -574,7 +678,7 @@
       path = fetchurl {
         name = "asynckit___asynckit_0.4.0.tgz";
         url  = "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz";
-        sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79";
+        sha1 = "x57Zf380y48robyXkLzDZkdLS3k=";
       };
     }
     {
@@ -582,7 +686,7 @@
       path = fetchurl {
         name = "atob___atob_2.1.2.tgz";
         url  = "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz";
-        sha1 = "6d9517eb9e030d2436666651e86bd9f6f13533c9";
+        sha512 = "Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==";
       };
     }
     {
@@ -590,7 +694,7 @@
       path = fetchurl {
         name = "aws_sign2___aws_sign2_0.7.0.tgz";
         url  = "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz";
-        sha1 = "b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8";
+        sha1 = "tG6JCTSpWR8tL2+G1+ap8bP+dqg=";
       };
     }
     {
@@ -598,7 +702,7 @@
       path = fetchurl {
         name = "aws4___aws4_1.9.1.tgz";
         url  = "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz";
-        sha1 = "7e33d8f7d449b3f673cd72deb9abdc552dbe528e";
+        sha512 = "wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug==";
       };
     }
     {
@@ -606,7 +710,7 @@
       path = fetchurl {
         name = "babel_plugin_emotion___babel_plugin_emotion_9.2.11.tgz";
         url  = "https://registry.yarnpkg.com/babel-plugin-emotion/-/babel-plugin-emotion-9.2.11.tgz";
-        sha1 = "319c005a9ee1d15bb447f59fe504c35fd5807728";
+        sha512 = "dgCImifnOPPSeXod2znAmgc64NhaaOjGEHROR/M+lmStb3841yK1sgaDYAYMnlvWNz8GnpwIPN0VmNpbWYZ+VQ==";
       };
     }
     {
@@ -614,7 +718,7 @@
       path = fetchurl {
         name = "babel_plugin_macros___babel_plugin_macros_2.8.0.tgz";
         url  = "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz";
-        sha1 = "0f958a7cc6556b1e65344465d99111a1e5e10138";
+        sha512 = "SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==";
       };
     }
     {
@@ -622,7 +726,7 @@
       path = fetchurl {
         name = "babel_plugin_syntax_jsx___babel_plugin_syntax_jsx_6.18.0.tgz";
         url  = "https://registry.yarnpkg.com/babel-plugin-syntax-jsx/-/babel-plugin-syntax-jsx-6.18.0.tgz";
-        sha1 = "0af32a9a6e13ca7a3fd5069e62d7b0f58d0d8946";
+        sha1 = "CvMqmm4Tyno/1QaeYtew9Y0NiUY=";
       };
     }
     {
@@ -630,7 +734,7 @@
       path = fetchurl {
         name = "babel_runtime___babel_runtime_6.26.0.tgz";
         url  = "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz";
-        sha1 = "965c7058668e82b55d7bfe04ff2337bc8b5647fe";
+        sha1 = "llxwWGaOgrVde/4E/yM3vItWR/4=";
       };
     }
     {
@@ -638,7 +742,7 @@
       path = fetchurl {
         name = "balanced_match___balanced_match_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz";
-        sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767";
+        sha1 = "ibTRmasr7kneFk6gK4nORi1xt2c=";
       };
     }
     {
@@ -646,7 +750,7 @@
       path = fetchurl {
         name = "base16___base16_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/base16/-/base16-1.0.0.tgz";
-        sha1 = "e297f60d7ec1014a7a971a39ebc8a98c0b681e70";
+        sha1 = "4pf2DX7BAUp6lxo568ipjAtoHnA=";
       };
     }
     {
@@ -654,7 +758,7 @@
       path = fetchurl {
         name = "base64_img___base64_img_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/base64-img/-/base64-img-1.0.4.tgz";
-        sha1 = "3e22d55d6c74a24553d840d2b1bc12a7db078d35";
+        sha1 = "PiLVXWx0okVT2EDSsbwSp9sHjTU=";
       };
     }
     {
@@ -662,7 +766,7 @@
       path = fetchurl {
         name = "base64_js___base64_js_1.3.1.tgz";
         url  = "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz";
-        sha1 = "58ece8cb75dd07e71ed08c736abc5fac4dbf8df1";
+        sha512 = "mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==";
       };
     }
     {
@@ -670,7 +774,7 @@
       path = fetchurl {
         name = "base___base_0.11.2.tgz";
         url  = "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz";
-        sha1 = "7bde5ced145b6d551a90db87f83c558b4eb48a8f";
+        sha512 = "5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==";
       };
     }
     {
@@ -678,15 +782,15 @@
       path = fetchurl {
         name = "bcrypt_pbkdf___bcrypt_pbkdf_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz";
-        sha1 = "a4301d389b6a43f9b67ff3ca11a3f6637e360e9e";
+        sha1 = "pDAdOJtqQ/m2f/PKEaP2Y342Dp4=";
       };
     }
     {
-      name = "biblatex_csl_converter___biblatex_csl_converter_1.9.1.tgz";
+      name = "biblatex_csl_converter___biblatex_csl_converter_2.0.2.tgz";
       path = fetchurl {
-        name = "biblatex_csl_converter___biblatex_csl_converter_1.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-1.9.1.tgz";
-        sha1 = "50aacfef172997f1c98d72837ffdd3b19c62f8c4";
+        name = "biblatex_csl_converter___biblatex_csl_converter_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/biblatex-csl-converter/-/biblatex-csl-converter-2.0.2.tgz";
+        sha512 = "od1JdAkQYh2T1Pzpq11eYtuNb3nNXQ0w+17CAnYqRsX+QFtoiK0XcvBE7N6rpDJyUo0acoaB6Of7EDhFQOcblA==";
       };
     }
     {
@@ -694,7 +798,7 @@
       path = fetchurl {
         name = "binary_extensions___binary_extensions_1.13.1.tgz";
         url  = "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz";
-        sha1 = "598afe54755b2868a5330d2aff9d4ebb53209b65";
+        sha512 = "Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==";
       };
     }
     {
@@ -702,7 +806,7 @@
       path = fetchurl {
         name = "binary___binary_0.3.0.tgz";
         url  = "https://registry.yarnpkg.com/binary/-/binary-0.3.0.tgz";
-        sha1 = "9f60553bc5ce8c3386f3b553cff47462adecaa79";
+        sha1 = "n2BVO8XOjDOG87VTz/R0Yq3sqnk=";
       };
     }
     {
@@ -710,7 +814,7 @@
       path = fetchurl {
         name = "bindings___bindings_1.5.0.tgz";
         url  = "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz";
-        sha1 = "10353c9e945334bc0511a6d90b38fbc7c9c504df";
+        sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==";
       };
     }
     {
@@ -718,7 +822,7 @@
       path = fetchurl {
         name = "body_parser___body_parser_1.19.0.tgz";
         url  = "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz";
-        sha1 = "96b2709e57c9c4e09a6fd66a8fd979844f69f08a";
+        sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==";
       };
     }
     {
@@ -726,7 +830,7 @@
       path = fetchurl {
         name = "boundary___boundary_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/boundary/-/boundary-1.0.1.tgz";
-        sha1 = "4d67dc2602c0cc16dd9bce7ebf87e948290f5812";
+        sha1 = "TWfcJgLAzBbdm85+v4fpSCkPWBI=";
       };
     }
     {
@@ -734,7 +838,7 @@
       path = fetchurl {
         name = "bowser___bowser_2.9.0.tgz";
         url  = "https://registry.yarnpkg.com/bowser/-/bowser-2.9.0.tgz";
-        sha1 = "3bed854233b419b9a7422d9ee3e85504373821c9";
+        sha512 = "2ld76tuLBNFekRgmJfT2+3j5MIrP6bFict8WAIT3beq+srz1gcKNAdNKMqHqauQt63NmAa88HfP1/Ypa9Er3HA==";
       };
     }
     {
@@ -742,7 +846,7 @@
       path = fetchurl {
         name = "brace_expansion___brace_expansion_1.1.11.tgz";
         url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
       };
     }
     {
@@ -750,7 +854,7 @@
       path = fetchurl {
         name = "braces___braces_1.8.5.tgz";
         url  = "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz";
-        sha1 = "ba77962e12dff969d6b76711e914b737857bf6a7";
+        sha1 = "uneWLhLf+WnWt2cR6RS3N4V79qc=";
       };
     }
     {
@@ -758,7 +862,7 @@
       path = fetchurl {
         name = "braces___braces_2.3.2.tgz";
         url  = "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz";
-        sha1 = "5979fd3f14cd531565e5fa2df1abfff1dfaee729";
+        sha512 = "aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==";
       };
     }
     {
@@ -766,7 +870,7 @@
       path = fetchurl {
         name = "buffer_from___buffer_from_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+        sha512 = "MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==";
       };
     }
     {
@@ -774,7 +878,7 @@
       path = fetchurl {
         name = "buffers___buffers_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/buffers/-/buffers-0.1.1.tgz";
-        sha1 = "b24579c3bed4d6d396aeee6d9a8ae7f5482ab7bb";
+        sha1 = "skV5w77U1tOWru5tmorn9Ugqt7s=";
       };
     }
     {
@@ -782,7 +886,7 @@
       path = fetchurl {
         name = "builtin_modules___builtin_modules_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz";
-        sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f";
+        sha1 = "Jw8HbFpywC9bZaR9+Uxf46J4iS8=";
       };
     }
     {
@@ -790,7 +894,7 @@
       path = fetchurl {
         name = "bytes___bytes_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz";
-        sha1 = "f6cf7933a360e0588fa9fde85651cdc7f805d1f6";
+        sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==";
       };
     }
     {
@@ -798,7 +902,7 @@
       path = fetchurl {
         name = "cache_base___cache_base_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz";
-        sha1 = "0a7f46416831c8b662ee36fe4e7c59d76f666ab2";
+        sha512 = "AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==";
       };
     }
     {
@@ -806,7 +910,7 @@
       path = fetchurl {
         name = "callsites___callsites_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
-        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
       };
     }
     {
@@ -814,7 +918,7 @@
       path = fetchurl {
         name = "caseless___caseless_0.12.0.tgz";
         url  = "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz";
-        sha1 = "1b681c21ff84033c826543090689420d187151dc";
+        sha1 = "G2gcIf+EAzyCZUMJBolCDRhxUdw=";
       };
     }
     {
@@ -822,7 +926,7 @@
       path = fetchurl {
         name = "chain_able___chain_able_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/chain-able/-/chain-able-1.0.1.tgz";
-        sha1 = "b48ac9bdc18f2192ec730abc66609f90aab5605f";
+        sha1 = "tIrJvcGPIZLscwq8ZmCfkKq1YF8=";
       };
     }
     {
@@ -830,7 +934,7 @@
       path = fetchurl {
         name = "chain_able___chain_able_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/chain-able/-/chain-able-3.0.0.tgz";
-        sha1 = "dcffe8b04f3da210941a23843bc1332bb288ca9f";
+        sha512 = "26MoELhta86n7gCsE2T1hGRyncZvPjFXTkB/DEp4+i/EJVSxXQNwXMDZZb2+SWcbPuow18wQtztaW7GXOel9DA==";
       };
     }
     {
@@ -838,7 +942,7 @@
       path = fetchurl {
         name = "chainsaw___chainsaw_0.1.0.tgz";
         url  = "https://registry.yarnpkg.com/chainsaw/-/chainsaw-0.1.0.tgz";
-        sha1 = "5eab50b28afe58074d0d58291388828b5e5fbc98";
+        sha1 = "XqtQsor+WAdNDVgpE4iCi15fvJg=";
       };
     }
     {
@@ -846,7 +950,7 @@
       path = fetchurl {
         name = "chalk___chalk_2.4.2.tgz";
         url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
-        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     }
     {
@@ -854,7 +958,7 @@
       path = fetchurl {
         name = "chardet___chardet_0.4.2.tgz";
         url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz";
-        sha1 = "b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2";
+        sha1 = "tUc7M9yXxCTl2Y3IfVXU2KKci/I=";
       };
     }
     {
@@ -862,7 +966,15 @@
       path = fetchurl {
         name = "chokidar___chokidar_1.7.0.tgz";
         url  = "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz";
-        sha1 = "798e689778151c8076b4b360e5edd28cda2bb468";
+        sha1 = "eY5ol3gVHIB2tLNg5e3SjNortGg=";
+      };
+    }
+    {
+      name = "chownr___chownr_2.0.0.tgz";
+      path = fetchurl {
+        name = "chownr___chownr_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz";
+        sha512 = "bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==";
       };
     }
     {
@@ -870,7 +982,7 @@
       path = fetchurl {
         name = "class_utils___class_utils_0.3.6.tgz";
         url  = "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz";
-        sha1 = "f93369ae8b9a7ce02fd41faad0ca83033190c463";
+        sha512 = "qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==";
       };
     }
     {
@@ -878,7 +990,7 @@
       path = fetchurl {
         name = "clean_css___clean_css_4.2.3.tgz";
         url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz";
-        sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78";
+        sha512 = "VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==";
       };
     }
     {
@@ -886,7 +998,7 @@
       path = fetchurl {
         name = "cli_cursor___cli_cursor_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
-        sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+        sha1 = "s12sN2R5+sw+lHR9QdDQ9SOP/LU=";
       };
     }
     {
@@ -894,15 +1006,31 @@
       path = fetchurl {
         name = "cli_width___cli_width_2.2.0.tgz";
         url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
-        sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+        sha1 = "/xnt6Kml5XkyQUewwR8PvLq+1jk=";
+      };
+    }
+    {
+      name = "clipboard___clipboard_2.0.8.tgz";
+      path = fetchurl {
+        name = "clipboard___clipboard_2.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz";
+        sha512 = "Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ==";
       };
     }
     {
-      name = "clipboard___clipboard_2.0.6.tgz";
+      name = "cliui___cliui_7.0.4.tgz";
       path = fetchurl {
-        name = "clipboard___clipboard_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.6.tgz";
-        sha1 = "52921296eec0fdf77ead1749421b21c968647376";
+        name = "cliui___cliui_7.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz";
+        sha512 = "OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==";
+      };
+    }
+    {
+      name = "code_point_at___code_point_at_1.1.0.tgz";
+      path = fetchurl {
+        name = "code_point_at___code_point_at_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
+        sha1 = "DQcLTQQ6W+ozovGkDi7bPZpMz3c=";
       };
     }
     {
@@ -910,7 +1038,7 @@
       path = fetchurl {
         name = "collection_visit___collection_visit_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz";
-        sha1 = "4bc0373c164bc3291b4d368c829cf1a80a59dca0";
+        sha1 = "S8A3PBZLwykbTTaMgpzxqApZ3KA=";
       };
     }
     {
@@ -918,7 +1046,15 @@
       path = fetchurl {
         name = "color_convert___color_convert_1.9.3.tgz";
         url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
-        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
+      };
+    }
+    {
+      name = "color_convert___color_convert_2.0.1.tgz";
+      path = fetchurl {
+        name = "color_convert___color_convert_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
       };
     }
     {
@@ -926,7 +1062,15 @@
       path = fetchurl {
         name = "color_name___color_name_1.1.3.tgz";
         url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+        sha1 = "p9BVi9icQveV3UIyj3QIMcpTvCU=";
+      };
+    }
+    {
+      name = "color_name___color_name_1.1.4.tgz";
+      path = fetchurl {
+        name = "color_name___color_name_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     }
     {
@@ -934,7 +1078,7 @@
       path = fetchurl {
         name = "combined_stream___combined_stream_1.0.8.tgz";
         url  = "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz";
-        sha1 = "c3d45a8b34fd730631a110a8a2520682b31d5a7f";
+        sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==";
       };
     }
     {
@@ -942,7 +1086,15 @@
       path = fetchurl {
         name = "commander___commander_2.20.3.tgz";
         url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
-        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
+      };
+    }
+    {
+      name = "commander___commander_1.1.1.tgz";
+      path = fetchurl {
+        name = "commander___commander_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-1.1.1.tgz";
+        sha1 = "UNFlGGiuYOzP8KLZ80WVN2vGsEE=";
       };
     }
     {
@@ -950,7 +1102,7 @@
       path = fetchurl {
         name = "component_emitter___component_emitter_1.3.0.tgz";
         url  = "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz";
-        sha1 = "16e4070fba8ae29b679f2215853ee181ab2eabc0";
+        sha512 = "Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==";
       };
     }
     {
@@ -958,7 +1110,7 @@
       path = fetchurl {
         name = "concat_map___concat_map_0.0.1.tgz";
         url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
+        sha1 = "2Klr13/Wjfd5OnMDajug1UBdR3s=";
       };
     }
     {
@@ -966,7 +1118,7 @@
       path = fetchurl {
         name = "concat_stream___concat_stream_1.6.2.tgz";
         url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+        sha512 = "27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==";
       };
     }
     {
@@ -974,7 +1126,15 @@
       path = fetchurl {
         name = "concat_stream___concat_stream_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-2.0.0.tgz";
-        sha1 = "414cf5af790a48c60ab9be4527d56d5e41133cb1";
+        sha512 = "MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==";
+      };
+    }
+    {
+      name = "console_control_strings___console_control_strings_1.1.0.tgz";
+      path = fetchurl {
+        name = "console_control_strings___console_control_strings_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz";
+        sha1 = "PXz0Rk22RG6mRL9LOVB/mFEAjo4=";
       };
     }
     {
@@ -982,7 +1142,7 @@
       path = fetchurl {
         name = "content_disposition___content_disposition_0.5.3.tgz";
         url  = "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz";
-        sha1 = "e130caf7e7279087c5616c2007d0485698984fbd";
+        sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==";
       };
     }
     {
@@ -990,7 +1150,7 @@
       path = fetchurl {
         name = "content_type___content_type_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz";
-        sha1 = "e138cc75e040c727b1966fe5e5f8c9aee256fe3b";
+        sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==";
       };
     }
     {
@@ -998,7 +1158,15 @@
       path = fetchurl {
         name = "convert_source_map___convert_source_map_1.7.0.tgz";
         url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz";
-        sha1 = "17a2cb882d7f77d3490585e2ce6c524424a3a442";
+        sha512 = "4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==";
+      };
+    }
+    {
+      name = "convert_source_map___convert_source_map_1.8.0.tgz";
+      path = fetchurl {
+        name = "convert_source_map___convert_source_map_1.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz";
+        sha512 = "+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==";
       };
     }
     {
@@ -1006,7 +1174,7 @@
       path = fetchurl {
         name = "cookie_signature___cookie_signature_1.0.6.tgz";
         url  = "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz";
-        sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c";
+        sha1 = "4wOogrNCzD7oylE6eZmXNNqzriw=";
       };
     }
     {
@@ -1014,7 +1182,7 @@
       path = fetchurl {
         name = "cookie___cookie_0.4.0.tgz";
         url  = "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz";
-        sha1 = "beb437e7022b3b6d49019d088665303ebe9c14ba";
+        sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==";
       };
     }
     {
@@ -1022,7 +1190,7 @@
       path = fetchurl {
         name = "copy_descriptor___copy_descriptor_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz";
-        sha1 = "676f6eb3c39997c2ee1ac3a924fd6124748f578d";
+        sha1 = "Z29us8OZl8LuGsOpJP1hJHSPV40=";
       };
     }
     {
@@ -1030,7 +1198,7 @@
       path = fetchurl {
         name = "core_js___core_js_2.6.11.tgz";
         url  = "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz";
-        sha1 = "38831469f9922bded8ee21c9dc46985e0399308c";
+        sha512 = "5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==";
       };
     }
     {
@@ -1038,7 +1206,7 @@
       path = fetchurl {
         name = "core_util_is___core_util_is_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        sha1 = "tf1UIgqivFq1eqtxQMlAdUUDwac=";
       };
     }
     {
@@ -1046,7 +1214,7 @@
       path = fetchurl {
         name = "cosmiconfig___cosmiconfig_6.0.0.tgz";
         url  = "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz";
-        sha1 = "da4fee853c52f6b1e6935f41c1a2fc50bd4a9982";
+        sha512 = "xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==";
       };
     }
     {
@@ -1054,7 +1222,7 @@
       path = fetchurl {
         name = "create_emotion_styled___create_emotion_styled_9.2.8.tgz";
         url  = "https://registry.yarnpkg.com/create-emotion-styled/-/create-emotion-styled-9.2.8.tgz";
-        sha1 = "c0050e768ba439609bec108600467adf2de67cc3";
+        sha512 = "2LrNM5MREWzI5hZK+LyiBHglwE18WE3AEbBQgpHQ1+zmyLSm/dJsUZBeFAwuIMb+TjNZP0KsMZlV776ufOtFdg==";
       };
     }
     {
@@ -1062,7 +1230,7 @@
       path = fetchurl {
         name = "create_emotion___create_emotion_9.2.12.tgz";
         url  = "https://registry.yarnpkg.com/create-emotion/-/create-emotion-9.2.12.tgz";
-        sha1 = "0fc8e7f92c4f8bb924b0fef6781f66b1d07cb26f";
+        sha512 = "P57uOF9NL2y98Xrbl2OuiDQUZ30GVmASsv5fbsjF4Hlraip2kyAvMm+2PoYUvFFw03Fhgtxk3RqZSm2/qHL9hA==";
       };
     }
     {
@@ -1070,7 +1238,7 @@
       path = fetchurl {
         name = "create_react_context___create_react_context_0.1.6.tgz";
         url  = "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.1.6.tgz";
-        sha1 = "0f425931d907741127acc6e31acb4f9015dd9fdc";
+        sha512 = "eCnYYEUEc5i32LHwpE/W7NlddOB9oHwsPaWtWzYtflNkkwa3IfindIcoXdVWs12zCbwaMCavKNu84EXogVIWHw==";
       };
     }
     {
@@ -1078,15 +1246,23 @@
       path = fetchurl {
         name = "csstype___csstype_2.6.10.tgz";
         url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz";
-        sha1 = "e63af50e66d7c266edb6b32909cfd0aabe03928b";
+        sha512 = "D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w==";
       };
     }
     {
-      name = "csstype___csstype_2.6.9.tgz";
+      name = "csstype___csstype_2.6.18.tgz";
       path = fetchurl {
-        name = "csstype___csstype_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.9.tgz";
-        sha1 = "05141d0cd557a56b8891394c1911c40c8a98d098";
+        name = "csstype___csstype_2.6.18.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-2.6.18.tgz";
+        sha512 = "RSU6Hyeg14am3Ah4VZEmeX8H7kLwEEirXe6aU2IPfKNvhXwTflK5HQRDNI0ypQXoqmm+QPyG2IaPuQE5zMwSIQ==";
+      };
+    }
+    {
+      name = "csstype___csstype_3.0.9.tgz";
+      path = fetchurl {
+        name = "csstype___csstype_3.0.9.tgz";
+        url  = "https://registry.yarnpkg.com/csstype/-/csstype-3.0.9.tgz";
+        sha512 = "rpw6JPxK6Rfg1zLOYCSwle2GFOOsnjmDYDaBwEcwoOg4qlsIVCN789VkBZDJAGi4T07gI4YSutR43t9Zz4Lzuw==";
       };
     }
     {
@@ -1094,7 +1270,7 @@
       path = fetchurl {
         name = "dashdash___dashdash_1.14.1.tgz";
         url  = "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz";
-        sha1 = "853cfa0f7cbe2fed5de20326b8dd581035f6e2f0";
+        sha1 = "hTz6D3y+L+1d4gMmuN1YEDX24vA=";
       };
     }
     {
@@ -1102,7 +1278,15 @@
       path = fetchurl {
         name = "debug___debug_2.6.9.tgz";
         url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+        sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==";
+      };
+    }
+    {
+      name = "debug___debug_4.3.2.tgz";
+      path = fetchurl {
+        name = "debug___debug_4.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz";
+        sha512 = "mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==";
       };
     }
     {
@@ -1110,7 +1294,7 @@
       path = fetchurl {
         name = "decode_uri_component___decode_uri_component_0.2.0.tgz";
         url  = "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz";
-        sha1 = "eb3913333458775cb84cd1a1fae062106bb87545";
+        sha1 = "6zkTMzRYd1y4TNGh+uBiEGu4dUU=";
       };
     }
     {
@@ -1118,15 +1302,7 @@
       path = fetchurl {
         name = "deep_is___deep_is_0.1.3.tgz";
         url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
-      };
-    }
-    {
-      name = "define_properties___define_properties_1.1.3.tgz";
-      path = fetchurl {
-        name = "define_properties___define_properties_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz";
-        sha1 = "cf88da6cbee26fe6db7094f61d870cbd84cee9f1";
+        sha1 = "s2nW+128E+7PUk+RsHD+7cNXzzQ=";
       };
     }
     {
@@ -1134,7 +1310,7 @@
       path = fetchurl {
         name = "define_property___define_property_0.2.5.tgz";
         url  = "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz";
-        sha1 = "c35b1ef918ec3c990f9a5bc57be04aacec5c8116";
+        sha1 = "w1se+RjsPJkPmlvFe+BKrOxcgRY=";
       };
     }
     {
@@ -1142,7 +1318,7 @@
       path = fetchurl {
         name = "define_property___define_property_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz";
-        sha1 = "769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6";
+        sha1 = "dp66rz9KY6rTr56NMEybvnm/sOY=";
       };
     }
     {
@@ -1150,7 +1326,7 @@
       path = fetchurl {
         name = "define_property___define_property_2.0.2.tgz";
         url  = "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz";
-        sha1 = "d459689e8d654ba77e02a817f8710d702cb16e9d";
+        sha512 = "jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==";
       };
     }
     {
@@ -1158,7 +1334,7 @@
       path = fetchurl {
         name = "delayed_stream___delayed_stream_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz";
-        sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619";
+        sha1 = "3zrhmayt+31ECqrgsp4icrJOxhk=";
       };
     }
     {
@@ -1166,7 +1342,15 @@
       path = fetchurl {
         name = "delegate___delegate_3.2.0.tgz";
         url  = "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz";
-        sha1 = "b66b71c3158522e8ab5744f720d8ca0c2af59166";
+        sha512 = "IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==";
+      };
+    }
+    {
+      name = "delegates___delegates_1.0.0.tgz";
+      path = fetchurl {
+        name = "delegates___delegates_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
+        sha1 = "hMbhWbgZBP3KWaDvRM2HDTElD5o=";
       };
     }
     {
@@ -1174,7 +1358,7 @@
       path = fetchurl {
         name = "depd___depd_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz";
-        sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9";
+        sha1 = "m81S4UwJd2PnSbJ0xDRu0uVgtak=";
       };
     }
     {
@@ -1182,7 +1366,15 @@
       path = fetchurl {
         name = "destroy___destroy_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz";
-        sha1 = "978857442c44749e4206613e37946205826abd80";
+        sha1 = "l4hXRCxEdJ5CBmE+N5RiBYJqvYA=";
+      };
+    }
+    {
+      name = "detect_libc___detect_libc_1.0.3.tgz";
+      path = fetchurl {
+        name = "detect_libc___detect_libc_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz";
+        sha1 = "+hN8S9aY7fVc1c0CrFWfkaTEups=";
       };
     }
     {
@@ -1190,7 +1382,15 @@
       path = fetchurl {
         name = "diff_match_patch___diff_match_patch_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.4.tgz";
-        sha1 = "6ac4b55237463761c4daf0dc603eb869124744b1";
+        sha512 = "Uv3SW8bmH9nAtHKaKSanOQmj2DnlH65fUpcrMdfdaOxUG02QQ4YGZ8AE7kKOMisF7UqvOlGKVYWRvezdncW9lg==";
+      };
+    }
+    {
+      name = "diff_match_patch___diff_match_patch_1.0.5.tgz";
+      path = fetchurl {
+        name = "diff_match_patch___diff_match_patch_1.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz";
+        sha512 = "IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==";
       };
     }
     {
@@ -1198,7 +1398,7 @@
       path = fetchurl {
         name = "diff___diff_4.0.2.tgz";
         url  = "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz";
-        sha1 = "60f3aecb89d5fae520c11aa19efc2bb982aade7d";
+        sha512 = "58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==";
       };
     }
     {
@@ -1206,7 +1406,7 @@
       path = fetchurl {
         name = "ecc_jsbn___ecc_jsbn_0.1.2.tgz";
         url  = "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz";
-        sha1 = "3a83a904e54353287874c564b7549386849a98c9";
+        sha1 = "OoOpBOVDUyh4dMVkt1SThoSamMk=";
       };
     }
     {
@@ -1214,7 +1414,15 @@
       path = fetchurl {
         name = "ee_first___ee_first_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz";
-        sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d";
+        sha1 = "WQxhFWsK4vTwJVcyoViyZrxWsh0=";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_8.0.0.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_8.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
       };
     }
     {
@@ -1222,7 +1430,7 @@
       path = fetchurl {
         name = "emotion___emotion_9.2.12.tgz";
         url  = "https://registry.yarnpkg.com/emotion/-/emotion-9.2.12.tgz";
-        sha1 = "53925aaa005614e65c6e43db8243c843574d1ea9";
+        sha512 = "hcx7jppaI8VoXxIWEhxpDW7I+B4kq9RNzQLmsrF6LY8BGKqe2N+gFAQr0EfuFucFlPs2A9HM4+xNj4NeqEWIOQ==";
       };
     }
     {
@@ -1230,7 +1438,7 @@
       path = fetchurl {
         name = "encodeurl___encodeurl_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz";
-        sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59";
+        sha1 = "rT/0yG7C0CkyL1oCw6mmBslbP1k=";
       };
     }
     {
@@ -1238,31 +1446,23 @@
       path = fetchurl {
         name = "error_ex___error_ex_1.3.2.tgz";
         url  = "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz";
-        sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
-      };
-    }
-    {
-      name = "es_abstract___es_abstract_1.17.6.tgz";
-      path = fetchurl {
-        name = "es_abstract___es_abstract_1.17.6.tgz";
-        url  = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
-        sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+        sha512 = "7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==";
       };
     }
     {
-      name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
+      name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
       path = fetchurl {
-        name = "es_to_primitive___es_to_primitive_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz";
-        sha1 = "e55cd4c9cdc188bcefb03b366c736323fc5c898a";
+        name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz";
+        sha1 = "wsNYJlYkfDnqEHyx5mUrb58kUjw=";
       };
     }
     {
-      name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
+      name = "escalade___escalade_3.1.1.tgz";
       path = fetchurl {
-        name = "es6_object_assign___es6_object_assign_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz";
-        sha1 = "c2c3582656247c39ea107cb1e6652b6f9f24523c";
+        name = "escalade___escalade_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz";
+        sha512 = "k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==";
       };
     }
     {
@@ -1270,7 +1470,7 @@
       path = fetchurl {
         name = "escape_html___escape_html_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz";
-        sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988";
+        sha1 = "Aljq5NPQwJdN4cFpGI7wBR0dGYg=";
       };
     }
     {
@@ -1278,7 +1478,7 @@
       path = fetchurl {
         name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+        sha1 = "G2HAViGQqN/2rjuyzwIAyhMLhtQ=";
       };
     }
     {
@@ -1286,7 +1486,7 @@
       path = fetchurl {
         name = "escodegen___escodegen_1.14.1.tgz";
         url  = "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz";
-        sha1 = "ba01d0c8278b5e95a9a45350142026659027a457";
+        sha512 = "Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==";
       };
     }
     {
@@ -1294,7 +1494,7 @@
       path = fetchurl {
         name = "esprima___esprima_4.0.1.tgz";
         url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
-        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+        sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==";
       };
     }
     {
@@ -1302,7 +1502,7 @@
       path = fetchurl {
         name = "estraverse___estraverse_4.3.0.tgz";
         url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
-        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+        sha512 = "39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==";
       };
     }
     {
@@ -1310,7 +1510,7 @@
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
         url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
-        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     }
     {
@@ -1318,7 +1518,7 @@
       path = fetchurl {
         name = "etag___etag_1.8.1.tgz";
         url  = "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz";
-        sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887";
+        sha1 = "Qa4u62XvpiJorr/qg6x9eSmbCIc=";
       };
     }
     {
@@ -1326,7 +1526,7 @@
       path = fetchurl {
         name = "exec_sh___exec_sh_0.2.2.tgz";
         url  = "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.2.2.tgz";
-        sha1 = "2a5e7ffcbd7d0ba2755bdecb16e5a427dfbdec36";
+        sha512 = "FIUCJz1RbuS0FKTdaAafAByGS0CPvU3R0MeHxgtl+djzCc//F8HakL8GzmVNZanasTbTAY/3DRFA0KpVqj/eAw==";
       };
     }
     {
@@ -1334,7 +1534,7 @@
       path = fetchurl {
         name = "expand_brackets___expand_brackets_0.1.5.tgz";
         url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz";
-        sha1 = "df07284e342a807cd733ac5af72411e581d1177b";
+        sha1 = "3wcoTjQqgHzXM6xa9yQR5YHRF3s=";
       };
     }
     {
@@ -1342,7 +1542,7 @@
       path = fetchurl {
         name = "expand_brackets___expand_brackets_2.1.4.tgz";
         url  = "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz";
-        sha1 = "b77735e315ce30f6b6eff0f83b04151a22449622";
+        sha1 = "t3c14xXOMPa27/D4OwQVGiJEliI=";
       };
     }
     {
@@ -1350,7 +1550,7 @@
       path = fetchurl {
         name = "expand_range___expand_range_1.8.2.tgz";
         url  = "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz";
-        sha1 = "a299effd335fe2721ebae8e257ec79644fc85337";
+        sha1 = "opnv/TNf4nIeuujiV+x5ZE/IUzc=";
       };
     }
     {
@@ -1358,7 +1558,7 @@
       path = fetchurl {
         name = "express___express_4.17.1.tgz";
         url  = "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz";
-        sha1 = "4491fc38605cf51f8629d39c2b5d026f98a4c134";
+        sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==";
       };
     }
     {
@@ -1366,7 +1566,7 @@
       path = fetchurl {
         name = "extend_shallow___extend_shallow_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz";
-        sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f";
+        sha1 = "Ua99YUrZqfYQ6huvu5idaxxWiQ8=";
       };
     }
     {
@@ -1374,7 +1574,7 @@
       path = fetchurl {
         name = "extend_shallow___extend_shallow_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz";
-        sha1 = "26a71aaf073b39fb2127172746131c2704028db8";
+        sha1 = "Jqcarwc7OfshJxcnRhMcJwQCjbg=";
       };
     }
     {
@@ -1382,7 +1582,7 @@
       path = fetchurl {
         name = "extend___extend_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+        sha512 = "fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==";
       };
     }
     {
@@ -1390,7 +1590,7 @@
       path = fetchurl {
         name = "external_editor___external_editor_2.2.0.tgz";
         url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz";
-        sha1 = "045511cfd8d133f3846673d1047c154e214ad3d5";
+        sha512 = "bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A==";
       };
     }
     {
@@ -1398,7 +1598,7 @@
       path = fetchurl {
         name = "extglob___extglob_0.3.2.tgz";
         url  = "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz";
-        sha1 = "2e18ff3d2f49ab2765cec9023f011daa8d8349a1";
+        sha1 = "Lhj/PS9JqydlzskCPwEdqo2DSaE=";
       };
     }
     {
@@ -1406,7 +1606,7 @@
       path = fetchurl {
         name = "extglob___extglob_2.0.4.tgz";
         url  = "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz";
-        sha1 = "ad00fe4dc612a9232e8718711dc5cb5ab0285543";
+        sha512 = "Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==";
       };
     }
     {
@@ -1414,7 +1614,7 @@
       path = fetchurl {
         name = "extsprintf___extsprintf_1.3.0.tgz";
         url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz";
-        sha1 = "96918440e3041a7a414f8c52e3c574eb3c3e1e05";
+        sha1 = "lpGEQOMEGnpBT4xS48V06zw+HgU=";
       };
     }
     {
@@ -1422,7 +1622,7 @@
       path = fetchurl {
         name = "extsprintf___extsprintf_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz";
-        sha1 = "e2689f8f356fad62cca65a3a91c5df5f9551692f";
+        sha1 = "4mifjzVvrWLMplo6kcXfX5VRaS8=";
       };
     }
     {
@@ -1430,7 +1630,7 @@
       path = fetchurl {
         name = "fast_deep_equal___fast_deep_equal_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz";
-        sha1 = "545145077c501491e33b15ec408c294376e94ae4";
+        sha512 = "8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA==";
       };
     }
     {
@@ -1438,7 +1638,7 @@
       path = fetchurl {
         name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     }
     {
@@ -1446,7 +1646,7 @@
       path = fetchurl {
         name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
         url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
-        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+        sha1 = "PYpcZog6FqMMqGQ+hR8Zuqd5eRc=";
       };
     }
     {
@@ -1454,7 +1654,7 @@
       path = fetchurl {
         name = "fast_xml_parser___fast_xml_parser_3.17.1.tgz";
         url  = "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-3.17.1.tgz";
-        sha1 = "579fa64346cc891ce240d378268c6216e74aab10";
+        sha512 = "jZ0EVn1iBuZtx/sbQnfvhSaaUltz+0+yfR+6QRyzrlt5yMiU+8ZfGj9i3/hoXJxm+aFri7dycBWbncox7frCAQ==";
       };
     }
     {
@@ -1462,7 +1662,7 @@
       path = fetchurl {
         name = "figures___figures_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
-        sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+        sha1 = "OrGi0qYsi/tDGgyUy3l6L84nyWI=";
       };
     }
     {
@@ -1470,7 +1670,7 @@
       path = fetchurl {
         name = "file_match___file_match_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/file-match/-/file-match-1.0.2.tgz";
-        sha1 = "c9cad265d2c8adf3a81475b0df475859069faef7";
+        sha1 = "ycrSZdLIrfOoFHWw30dYWQafrvc=";
       };
     }
     {
@@ -1478,7 +1678,7 @@
       path = fetchurl {
         name = "file_system___file_system_2.2.2.tgz";
         url  = "https://registry.yarnpkg.com/file-system/-/file-system-2.2.2.tgz";
-        sha1 = "7d65833e3a2347dcd956a813c677153ed3edd987";
+        sha1 = "fWWDPjojR9zZVqgTxncVPtPt2Yc=";
       };
     }
     {
@@ -1486,7 +1686,7 @@
       path = fetchurl {
         name = "file_uri_to_path___file_uri_to_path_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz";
-        sha1 = "553a7b8446ff6f684359c445f1e37a05dacc33dd";
+        sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==";
       };
     }
     {
@@ -1494,7 +1694,7 @@
       path = fetchurl {
         name = "filename_regex___filename_regex_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz";
-        sha1 = "c1c4b9bee3e09725ddb106b75c1e301fe2f18b26";
+        sha1 = "wcS5vuPglyXdsQa3XB4wH+LxiyY=";
       };
     }
     {
@@ -1502,7 +1702,7 @@
       path = fetchurl {
         name = "fill_range___fill_range_2.2.4.tgz";
         url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.4.tgz";
-        sha1 = "eb1e773abb056dcd8df2bfdf6af59b8b3a936565";
+        sha512 = "cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==";
       };
     }
     {
@@ -1510,7 +1710,7 @@
       path = fetchurl {
         name = "fill_range___fill_range_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz";
-        sha1 = "d544811d428f98eb06a63dc402d2403c328c38f7";
+        sha1 = "1USBHUKPmOsGpj3EAtJAPDKMOPc=";
       };
     }
     {
@@ -1518,7 +1718,7 @@
       path = fetchurl {
         name = "finalhandler___finalhandler_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz";
-        sha1 = "b7e7d000ffd11938d0fdb053506f6ebabe9f587d";
+        sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==";
       };
     }
     {
@@ -1526,7 +1726,7 @@
       path = fetchurl {
         name = "find_root___find_root_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz";
-        sha1 = "abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4";
+        sha512 = "NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==";
       };
     }
     {
@@ -1534,7 +1734,7 @@
       path = fetchurl {
         name = "fliplog___fliplog_0.3.13.tgz";
         url  = "https://registry.yarnpkg.com/fliplog/-/fliplog-0.3.13.tgz";
-        sha1 = "dd0d786e821822aae272e0ddc84012596a96154c";
+        sha512 = "R504CdX+mdhMYpmyrdiQ9PW6ncAyZnxyeA85fS1/P/Y9qmbMiQsqt6QzsYhq5kbqMb84PibVOcS1oz98GJl6EQ==";
       };
     }
     {
@@ -1542,7 +1742,7 @@
       path = fetchurl {
         name = "for_in___for_in_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz";
-        sha1 = "81068d295a8142ec0ac726c6e2200c30fb6d5e80";
+        sha1 = "gQaNKVqBQuwKxybG4iAMMPttXoA=";
       };
     }
     {
@@ -1550,7 +1750,7 @@
       path = fetchurl {
         name = "for_own___for_own_0.1.5.tgz";
         url  = "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz";
-        sha1 = "5265c681a4f294dabbf17c9509b6763aa84510ce";
+        sha1 = "UmXGgaTylNq78XyVCbZ2OqhFEM4=";
       };
     }
     {
@@ -1558,7 +1758,7 @@
       path = fetchurl {
         name = "forever_agent___forever_agent_0.6.1.tgz";
         url  = "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz";
-        sha1 = "fbc71f0c41adeb37f96c577ad1ed42d8fdacca91";
+        sha1 = "+8cfDEGt6zf5bFd60e1C2P2sypE=";
       };
     }
     {
@@ -1566,7 +1766,7 @@
       path = fetchurl {
         name = "form_data___form_data_2.3.3.tgz";
         url  = "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz";
-        sha1 = "dcce52c05f644f298c6a7ab936bd724ceffbf3a6";
+        sha512 = "1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==";
       };
     }
     {
@@ -1574,7 +1774,7 @@
       path = fetchurl {
         name = "forwarded___forwarded_0.1.2.tgz";
         url  = "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz";
-        sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84";
+        sha1 = "mMI9qxF1ZXuMBXPozszZGw/xjIQ=";
       };
     }
     {
@@ -1582,7 +1782,7 @@
       path = fetchurl {
         name = "fragment_cache___fragment_cache_0.2.1.tgz";
         url  = "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz";
-        sha1 = "4290fad27f13e89be7f33799c6bc5a0abfff0d19";
+        sha1 = "QpD60n8T6Jvn8zeZxrxaCr//DRk=";
       };
     }
     {
@@ -1590,7 +1790,7 @@
       path = fetchurl {
         name = "fresh___fresh_0.5.2.tgz";
         url  = "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz";
-        sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7";
+        sha1 = "PYyt2Q2XZWn6g1qx+OSyOhBWBac=";
       };
     }
     {
@@ -1598,7 +1798,15 @@
       path = fetchurl {
         name = "fs_extra___fs_extra_7.0.1.tgz";
         url  = "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz";
-        sha1 = "4f189c44aa123b895f722804f55ea23eadc348e9";
+        sha512 = "YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==";
+      };
+    }
+    {
+      name = "fs_minipass___fs_minipass_2.1.0.tgz";
+      path = fetchurl {
+        name = "fs_minipass___fs_minipass_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz";
+        sha512 = "V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==";
       };
     }
     {
@@ -1606,7 +1814,7 @@
       path = fetchurl {
         name = "fs.realpath___fs.realpath_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+        sha1 = "FQStJSMVjKpA20onh8sBQRmU6k8=";
       };
     }
     {
@@ -1614,7 +1822,7 @@
       path = fetchurl {
         name = "fsevents___fsevents_1.2.11.tgz";
         url  = "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.11.tgz";
-        sha1 = "67bf57f4758f02ede88fb2a1712fef4d15358be3";
+        sha512 = "+ux3lx6peh0BpvY0JebGyZoiR4D+oYzdPZMKJwkZ+sFkNJzpL7tXc/wehS49gUAxg3tmMHPHZkA8JU2rhhgDHw==";
       };
     }
     {
@@ -1622,15 +1830,7 @@
       path = fetchurl {
         name = "fstream___fstream_0.1.31.tgz";
         url  = "https://registry.yarnpkg.com/fstream/-/fstream-0.1.31.tgz";
-        sha1 = "7337f058fbbbbefa8c9f561a28cab0849202c988";
-      };
-    }
-    {
-      name = "function_bind___function_bind_1.1.1.tgz";
-      path = fetchurl {
-        name = "function_bind___function_bind_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz";
-        sha1 = "a56899d3ea3c9bab874bb9773b7c5ede92f4895d";
+        sha1 = "czfwWPu7vvqMn1YaKMqwhJICyYg=";
       };
     }
     {
@@ -1638,7 +1838,7 @@
       path = fetchurl {
         name = "fuse_box___fuse_box_3.7.1.tgz";
         url  = "https://registry.yarnpkg.com/fuse-box/-/fuse-box-3.7.1.tgz";
-        sha1 = "d32879ceee4c8bcec9bbd8fcfe5b29e7142371cd";
+        sha512 = "aM7t9bUcRpNNQu9M+YjXXzx9JSJQVPWeY+8iTyv7OhvJNWHrqqEWPzbn9OfcyFa2AfPwAUyC/uzWexBbjtTvsA==";
       };
     }
     {
@@ -1646,15 +1846,23 @@
       path = fetchurl {
         name = "fuse_concat_with_sourcemaps___fuse_concat_with_sourcemaps_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/fuse-concat-with-sourcemaps/-/fuse-concat-with-sourcemaps-1.0.5.tgz";
-        sha1 = "9c6a521f675cff5cdbb48db1ca9c181ae49a7b97";
+        sha512 = "tKsRJIxn9tU3IH8JHMwFhGbObqkDKXhNKOvcM+QyflAlYb2EgOvIQe8D6WB/cocA3puldHatsp9SN5SKryasrw==";
+      };
+    }
+    {
+      name = "fuse.js___fuse.js_6.4.6.tgz";
+      path = fetchurl {
+        name = "fuse.js___fuse.js_6.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.4.6.tgz";
+        sha512 = "/gYxR/0VpXmWSfZOIPS3rWwU8SHgsRTwWuXhyb2O6s7aRuVtHtxCkR33bNYu3wyLyNx/Wpv0vU7FZy8Vj53VNw==";
       };
     }
     {
-      name = "fuse.js___fuse.js_6.0.4.tgz";
+      name = "gauge___gauge_2.7.4.tgz";
       path = fetchurl {
-        name = "fuse.js___fuse.js_6.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/fuse.js/-/fuse.js-6.0.4.tgz";
-        sha1 = "9f5af976f836247ad5d2c338090d6ce13cf9a4d2";
+        name = "gauge___gauge_2.7.4.tgz";
+        url  = "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz";
+        sha1 = "LANAXHU4w51+s3sxcCLjJfsBi/c=";
       };
     }
     {
@@ -1662,7 +1870,15 @@
       path = fetchurl {
         name = "get_caller_file___get_caller_file_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz";
-        sha1 = "f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a";
+        sha512 = "3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==";
+      };
+    }
+    {
+      name = "get_caller_file___get_caller_file_2.0.5.tgz";
+      path = fetchurl {
+        name = "get_caller_file___get_caller_file_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz";
+        sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     }
     {
@@ -1670,7 +1886,7 @@
       path = fetchurl {
         name = "get_value___get_value_2.0.6.tgz";
         url  = "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz";
-        sha1 = "dc15ca1c672387ca76bd37ac0a395ba2042a2c28";
+        sha1 = "3BXKHGcjh8p2vTesCjlbogQqLCg=";
       };
     }
     {
@@ -1678,7 +1894,7 @@
       path = fetchurl {
         name = "getopts___getopts_2.2.5.tgz";
         url  = "https://registry.yarnpkg.com/getopts/-/getopts-2.2.5.tgz";
-        sha1 = "67a0fe471cacb9c687d817cab6450b96dde8313b";
+        sha512 = "9jb7AW5p3in+IiJWhQiZmmwkpLaR/ccTWdWQCtZM66HJcHHLegowh4q4tSD7gouUyeNvFWRavfK9GXosQHDpFA==";
       };
     }
     {
@@ -1686,7 +1902,7 @@
       path = fetchurl {
         name = "getpass___getpass_0.1.7.tgz";
         url  = "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz";
-        sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
+        sha1 = "Xv+OPmhNVprkyysSgmBOi6YhSfo=";
       };
     }
     {
@@ -1694,7 +1910,7 @@
       path = fetchurl {
         name = "glob_base___glob_base_0.3.0.tgz";
         url  = "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz";
-        sha1 = "dbb164f6221b1c0b1ccf82aea328b497df0ea3c4";
+        sha1 = "27Fk9iIbHAscz4Kuoyi0l98Oo8Q=";
       };
     }
     {
@@ -1702,7 +1918,7 @@
       path = fetchurl {
         name = "glob_parent___glob_parent_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz";
-        sha1 = "81383d72db054fcccf5336daa902f182f6edbb28";
+        sha1 = "gTg9ctsFT8zPUzbaqQLxgvbtuyg=";
       };
     }
     {
@@ -1710,7 +1926,7 @@
       path = fetchurl {
         name = "glob___glob_7.1.6.tgz";
         url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz";
-        sha1 = "141f33b81a7c2492e125594307480c46679278a6";
+        sha512 = "LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==";
       };
     }
     {
@@ -1718,7 +1934,7 @@
       path = fetchurl {
         name = "good_listener___good_listener_1.2.2.tgz";
         url  = "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz";
-        sha1 = "d53b30cdf9313dffb7dc9a0d477096aa6d145c50";
+        sha1 = "1TswzfkxPf+33JoNR3CWqm0UXFA=";
       };
     }
     {
@@ -1726,7 +1942,7 @@
       path = fetchurl {
         name = "graceful_fs___graceful_fs_4.2.3.tgz";
         url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz";
-        sha1 = "4a12ff1b60376ef09862c2093edd908328be8423";
+        sha512 = "a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ==";
       };
     }
     {
@@ -1734,7 +1950,7 @@
       path = fetchurl {
         name = "graceful_fs___graceful_fs_3.0.12.tgz";
         url  = "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-3.0.12.tgz";
-        sha1 = "0034947ce9ed695ec8ab0b854bc919e82b1ffaef";
+        sha512 = "J55gaCS4iTTJfTXIxSVw3EMQckcqkpdRv3IR7gu6sq0+tbC363Zx6KH/SEwXASK9JRbhyZmVjJEVJIOxYsB3Qg==";
       };
     }
     {
@@ -1742,7 +1958,7 @@
       path = fetchurl {
         name = "har_schema___har_schema_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz";
-        sha1 = "a94c2224ebcac04782a0d9035521f24735b7ec92";
+        sha1 = "qUwiJOvKwEeCoNkDVSHyRzW37JI=";
       };
     }
     {
@@ -1750,7 +1966,7 @@
       path = fetchurl {
         name = "har_validator___har_validator_5.1.3.tgz";
         url  = "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz";
-        sha1 = "1ef89ebd3e4996557675eed9893110dc350fa080";
+        sha512 = "sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==";
       };
     }
     {
@@ -1758,15 +1974,15 @@
       path = fetchurl {
         name = "has_flag___has_flag_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+        sha1 = "tdRU3CGZriJWmfNGfloH87lVuv0=";
       };
     }
     {
-      name = "has_symbols___has_symbols_1.0.1.tgz";
+      name = "has_unicode___has_unicode_2.0.1.tgz";
       path = fetchurl {
-        name = "has_symbols___has_symbols_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz";
-        sha1 = "9f5214758a44196c406d9bd76cebf81ec2dd31e8";
+        name = "has_unicode___has_unicode_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
+        sha1 = "4Ob+aijPUROIVeCG0Wkedx3iqLk=";
       };
     }
     {
@@ -1774,7 +1990,7 @@
       path = fetchurl {
         name = "has_value___has_value_0.3.1.tgz";
         url  = "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz";
-        sha1 = "7b1f58bada62ca827ec0a2078025654845995e1f";
+        sha1 = "ex9YutpiyoJ+wKIHgCVlSEWZXh8=";
       };
     }
     {
@@ -1782,7 +1998,7 @@
       path = fetchurl {
         name = "has_value___has_value_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz";
-        sha1 = "18b281da585b1c5c51def24c930ed29a0be6b177";
+        sha1 = "GLKB2lhbHFxR3vJMkw7SmgvmsXc=";
       };
     }
     {
@@ -1790,7 +2006,7 @@
       path = fetchurl {
         name = "has_values___has_values_0.1.4.tgz";
         url  = "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz";
-        sha1 = "6d61de95d91dfca9b9a02089ad384bff8f62b771";
+        sha1 = "bWHeldkd/Km5oCCJrThL/49it3E=";
       };
     }
     {
@@ -1798,15 +2014,7 @@
       path = fetchurl {
         name = "has_values___has_values_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz";
-        sha1 = "95b0b63fec2146619a6fe57fe75628d5a39efe4f";
-      };
-    }
-    {
-      name = "has___has_1.0.3.tgz";
-      path = fetchurl {
-        name = "has___has_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz";
-        sha1 = "722d7cbfc1f6aa8241f16dd814e011e1f41e8796";
+        sha1 = "lbC2P+whRmGab+V/51Yo1aOe/k8=";
       };
     }
     {
@@ -1814,7 +2022,7 @@
       path = fetchurl {
         name = "html___html_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/html/-/html-1.0.0.tgz";
-        sha1 = "a544fa9ea5492bfb3a2cca8210a10be7b5af1f61";
+        sha1 = "pUT6nqVJK/s6LMqCEKEL57WvH2E=";
       };
     }
     {
@@ -1822,7 +2030,7 @@
       path = fetchurl {
         name = "http_errors___http_errors_1.7.2.tgz";
         url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz";
-        sha1 = "4f5029cf13239f31036e5b2e55292bcfbcc85c8f";
+        sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==";
       };
     }
     {
@@ -1830,7 +2038,7 @@
       path = fetchurl {
         name = "http_errors___http_errors_1.7.3.tgz";
         url  = "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz";
-        sha1 = "6c619e4f9c60308c38519498c14fbb10aacebb06";
+        sha512 = "ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw==";
       };
     }
     {
@@ -1838,7 +2046,15 @@
       path = fetchurl {
         name = "http_signature___http_signature_1.2.0.tgz";
         url  = "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz";
-        sha1 = "9aecd925114772f3d95b65a60abb8f7c18fbace1";
+        sha1 = "muzZJRFHcvPZW2WmCruPfBj7rOE=";
+      };
+    }
+    {
+      name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
+      path = fetchurl {
+        name = "https_proxy_agent___https_proxy_agent_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz";
+        sha512 = "EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==";
       };
     }
     {
@@ -1846,7 +2062,7 @@
       path = fetchurl {
         name = "iconv_lite___iconv_lite_0.4.24.tgz";
         url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
-        sha1 = "2022b4b25fbddc21d2f524974a474aafe733908b";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     }
     {
@@ -1854,7 +2070,7 @@
       path = fetchurl {
         name = "ie_array_find_polyfill___ie_array_find_polyfill_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/ie-array-find-polyfill/-/ie-array-find-polyfill-1.1.0.tgz";
-        sha1 = "5078e533f026831da22bd7476513d9460d65a142";
+        sha1 = "UHjlM/Amgx2iK9dHZRPZRg1loUI=";
       };
     }
     {
@@ -1862,7 +2078,7 @@
       path = fetchurl {
         name = "ieee754___ieee754_1.1.13.tgz";
         url  = "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz";
-        sha1 = "ec168558e95aa181fd87d37f55c32bbcb6708b84";
+        sha512 = "4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==";
       };
     }
     {
@@ -1870,7 +2086,7 @@
       path = fetchurl {
         name = "import_fresh___import_fresh_3.2.1.tgz";
         url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz";
-        sha1 = "633ff618506e793af5ac91bf48b72677e15cbe66";
+        sha512 = "6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==";
       };
     }
     {
@@ -1878,7 +2094,7 @@
       path = fetchurl {
         name = "inflight___inflight_1.0.6.tgz";
         url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+        sha1 = "Sb1jMdfQLQwJvJEKEHW6gWW1bfk=";
       };
     }
     {
@@ -1886,7 +2102,7 @@
       path = fetchurl {
         name = "inherits___inherits_2.0.4.tgz";
         url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     }
     {
@@ -1894,7 +2110,7 @@
       path = fetchurl {
         name = "inherits___inherits_2.0.3.tgz";
         url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz";
-        sha1 = "633c2c83e3da42a502f52466022480f4208261de";
+        sha1 = "Yzwsg+PaQqUC9SRmAiSA9CCCYd4=";
       };
     }
     {
@@ -1902,7 +2118,7 @@
       path = fetchurl {
         name = "inquirer___inquirer_3.3.0.tgz";
         url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz";
-        sha1 = "9dd2f2ad765dcab1ff0443b491442a20ba227dc9";
+        sha512 = "h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ==";
       };
     }
     {
@@ -1910,7 +2126,7 @@
       path = fetchurl {
         name = "ipaddr.js___ipaddr.js_1.9.1.tgz";
         url  = "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz";
-        sha1 = "bff38543eeb8984825079ff3a2a8e6cbd46781b3";
+        sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==";
       };
     }
     {
@@ -1918,7 +2134,7 @@
       path = fetchurl {
         name = "is_accessor_descriptor___is_accessor_descriptor_0.1.6.tgz";
         url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz";
-        sha1 = "a9e12cb3ae8d876727eeef3843f8a0897b5c98d6";
+        sha1 = "qeEss66Nh2cn7u84Q/igiXtcmNY=";
       };
     }
     {
@@ -1926,7 +2142,7 @@
       path = fetchurl {
         name = "is_accessor_descriptor___is_accessor_descriptor_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz";
-        sha1 = "169c2f6d3df1f992618072365c9b0ea1f6878656";
+        sha512 = "m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==";
       };
     }
     {
@@ -1934,7 +2150,7 @@
       path = fetchurl {
         name = "is_arrayish___is_arrayish_0.2.1.tgz";
         url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz";
-        sha1 = "77c99840527aa8ecb1a8ba697b80645a7a926a9d";
+        sha1 = "d8mYQFJ6qOyxqLppe4BkWnqSap0=";
       };
     }
     {
@@ -1942,7 +2158,7 @@
       path = fetchurl {
         name = "is_binary_path___is_binary_path_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz";
-        sha1 = "75f16642b480f187a711c814161fd3a4a7655898";
+        sha1 = "dfFmQrSA8YenEcgUFh/TpKdlWJg=";
       };
     }
     {
@@ -1950,15 +2166,7 @@
       path = fetchurl {
         name = "is_buffer___is_buffer_1.1.6.tgz";
         url  = "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz";
-        sha1 = "efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be";
-      };
-    }
-    {
-      name = "is_callable___is_callable_1.2.0.tgz";
-      path = fetchurl {
-        name = "is_callable___is_callable_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
-        sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+        sha512 = "NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==";
       };
     }
     {
@@ -1966,7 +2174,7 @@
       path = fetchurl {
         name = "is_data_descriptor___is_data_descriptor_0.1.4.tgz";
         url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz";
-        sha1 = "0b5ee648388e2c860282e793f1856fec3f301b56";
+        sha1 = "C17mSDiOLIYCgueT8YVv7D8wG1Y=";
       };
     }
     {
@@ -1974,15 +2182,7 @@
       path = fetchurl {
         name = "is_data_descriptor___is_data_descriptor_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz";
-        sha1 = "d84876321d0e7add03990406abbbbd36ba9268c7";
-      };
-    }
-    {
-      name = "is_date_object___is_date_object_1.0.2.tgz";
-      path = fetchurl {
-        name = "is_date_object___is_date_object_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz";
-        sha1 = "bda736f2cd8fd06d32844e7743bfa7494c3bfd7e";
+        sha512 = "jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==";
       };
     }
     {
@@ -1990,7 +2190,7 @@
       path = fetchurl {
         name = "is_descriptor___is_descriptor_0.1.6.tgz";
         url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz";
-        sha1 = "366d8240dde487ca51823b1ab9f07a10a78251ca";
+        sha512 = "avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==";
       };
     }
     {
@@ -1998,7 +2198,7 @@
       path = fetchurl {
         name = "is_descriptor___is_descriptor_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz";
-        sha1 = "3b159746a66604b04f8c81524ba365c5f14d86ec";
+        sha512 = "2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==";
       };
     }
     {
@@ -2006,7 +2206,7 @@
       path = fetchurl {
         name = "is_dotfile___is_dotfile_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz";
-        sha1 = "a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1";
+        sha1 = "pqLzL/0t+wT1yiXs0Pa4PPeYoeE=";
       };
     }
     {
@@ -2014,7 +2214,7 @@
       path = fetchurl {
         name = "is_equal_shallow___is_equal_shallow_0.1.3.tgz";
         url  = "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz";
-        sha1 = "2238098fc221de0bcfa5d9eac4c45d638aa1c534";
+        sha1 = "IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=";
       };
     }
     {
@@ -2022,7 +2222,7 @@
       path = fetchurl {
         name = "is_extendable___is_extendable_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz";
-        sha1 = "62b110e289a471418e3ec36a617d472e301dfc89";
+        sha1 = "YrEQ4omkcUGOPsNqYX1HLjAd/Ik=";
       };
     }
     {
@@ -2030,7 +2230,7 @@
       path = fetchurl {
         name = "is_extendable___is_extendable_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz";
-        sha1 = "a7470f9e426733d81bd81e1155264e3a3507cab4";
+        sha512 = "arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==";
       };
     }
     {
@@ -2038,7 +2238,15 @@
       path = fetchurl {
         name = "is_extglob___is_extglob_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz";
-        sha1 = "ac468177c4943405a092fc8f29760c6ffc6206c0";
+        sha1 = "rEaBd8SUNAWgkvyPKXYMb/xiBsA=";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
+        sha1 = "754xOG8DGn8NZDr4L95QxFfvAMs=";
       };
     }
     {
@@ -2046,7 +2254,15 @@
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
-        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+        sha1 = "o7MKXE8ZkYMWeqq5O+764937ZU8=";
+      };
+    }
+    {
+      name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+      path = fetchurl {
+        name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     }
     {
@@ -2054,7 +2270,7 @@
       path = fetchurl {
         name = "is_glob___is_glob_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz";
-        sha1 = "d096f926a3ded5600f3fdfd91198cb0888c2d863";
+        sha1 = "0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=";
       };
     }
     {
@@ -2062,7 +2278,7 @@
       path = fetchurl {
         name = "is_number___is_number_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz";
-        sha1 = "01fcbbb393463a548f2f466cce16dece49db908f";
+        sha1 = "Afy7s5NGOlSPL0ZszhbezknbkI8=";
       };
     }
     {
@@ -2070,7 +2286,7 @@
       path = fetchurl {
         name = "is_number___is_number_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz";
-        sha1 = "24fd6201a4782cf50561c810276afc7d12d71195";
+        sha1 = "JP1iAaR4LPUFYcgQJ2r8fRLXEZU=";
       };
     }
     {
@@ -2078,7 +2294,7 @@
       path = fetchurl {
         name = "is_number___is_number_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz";
-        sha1 = "0026e37f5454d73e356dfe6564699867c6a7f0ff";
+        sha512 = "rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==";
       };
     }
     {
@@ -2086,7 +2302,7 @@
       path = fetchurl {
         name = "is_plain_object___is_plain_object_2.0.4.tgz";
         url  = "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz";
-        sha1 = "2c163b3fafb1b606d9d17928f05c2a1c38e07677";
+        sha512 = "h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==";
       };
     }
     {
@@ -2094,7 +2310,7 @@
       path = fetchurl {
         name = "is_posix_bracket___is_posix_bracket_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz";
-        sha1 = "3334dc79774368e92f016e6fbc0a88f5cd6e6bc4";
+        sha1 = "MzTceXdDaOkvAW5vvAqI9c1ua8Q=";
       };
     }
     {
@@ -2102,7 +2318,7 @@
       path = fetchurl {
         name = "is_primitive___is_primitive_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz";
-        sha1 = "207bab91638499c07b2adf240a41a87210034575";
+        sha1 = "IHurkWOEmcB7Kt8kCkGochADRXU=";
       };
     }
     {
@@ -2110,23 +2326,7 @@
       path = fetchurl {
         name = "is_promise___is_promise_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
-        sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
-      };
-    }
-    {
-      name = "is_regex___is_regex_1.1.0.tgz";
-      path = fetchurl {
-        name = "is_regex___is_regex_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
-        sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
-      };
-    }
-    {
-      name = "is_symbol___is_symbol_1.0.3.tgz";
-      path = fetchurl {
-        name = "is_symbol___is_symbol_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz";
-        sha1 = "38e1014b9e6329be0de9d24a414fd7441ec61937";
+        sha1 = "eaKp7OfwlugPNtKy87wWwf9L8/o=";
       };
     }
     {
@@ -2134,7 +2334,7 @@
       path = fetchurl {
         name = "is_typedarray___is_typedarray_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz";
-        sha1 = "e479c80858df0c1b11ddda6940f96011fcda4a9a";
+        sha1 = "5HnICFjfDBsR3dppQPlgEfzaSpo=";
       };
     }
     {
@@ -2142,7 +2342,7 @@
       path = fetchurl {
         name = "is_windows___is_windows_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz";
-        sha1 = "d1850eb9791ecd18e6182ce12a30f396634bb19d";
+        sha512 = "eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==";
       };
     }
     {
@@ -2150,7 +2350,7 @@
       path = fetchurl {
         name = "isarray___isarray_0.0.1.tgz";
         url  = "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz";
-        sha1 = "8a18acfca9a8f4177e09abfc6038939b05d1eedf";
+        sha1 = "ihis/Kmo9Bd+Cav8YDiTmwXR7t8=";
       };
     }
     {
@@ -2158,7 +2358,7 @@
       path = fetchurl {
         name = "isarray___isarray_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+        sha1 = "u5NdSFgsuhaMBoNJV6VKPgcSTxE=";
       };
     }
     {
@@ -2166,7 +2366,7 @@
       path = fetchurl {
         name = "isobject___isobject_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz";
-        sha1 = "f065561096a3f1da2ef46272f815c840d87e0c89";
+        sha1 = "8GVWEJaj8dou9GJy+BXIQNh+DIk=";
       };
     }
     {
@@ -2174,7 +2374,7 @@
       path = fetchurl {
         name = "isobject___isobject_3.0.1.tgz";
         url  = "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz";
-        sha1 = "4e431e92b11a9731636aa1f9c8d1ccbcfdab78df";
+        sha1 = "TkMekrEalzFjaqH5yNHMvP2reN8=";
       };
     }
     {
@@ -2182,7 +2382,7 @@
       path = fetchurl {
         name = "isstream___isstream_0.1.2.tgz";
         url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+        sha1 = "R+Y/evVa+m+S4VAOaQ64uFKcCZo=";
       };
     }
     {
@@ -2190,7 +2390,7 @@
       path = fetchurl {
         name = "js_tokens___js_tokens_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+        sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==";
       };
     }
     {
@@ -2198,7 +2398,15 @@
       path = fetchurl {
         name = "js_yaml___js_yaml_3.13.1.tgz";
         url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz";
-        sha1 = "aff151b30bfdfa8e49e05da22e7415e9dfa37847";
+        sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==";
+      };
+    }
+    {
+      name = "js_yaml___js_yaml_4.1.0.tgz";
+      path = fetchurl {
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
       };
     }
     {
@@ -2206,7 +2414,7 @@
       path = fetchurl {
         name = "jsbn___jsbn_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz";
-        sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
+        sha1 = "peZUwuWi3rXyAdls77yoDA7y9RM=";
       };
     }
     {
@@ -2214,7 +2422,7 @@
       path = fetchurl {
         name = "jsesc___jsesc_0.5.0.tgz";
         url  = "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz";
-        sha1 = "e7dee66e35d6fc16f710fe91d5cf69f70f08911d";
+        sha1 = "597mbjXW/Bb3EP6R1c9p9w8IkR0=";
       };
     }
     {
@@ -2222,7 +2430,7 @@
       path = fetchurl {
         name = "json_parse_better_errors___json_parse_better_errors_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz";
-        sha1 = "bb867cfb3450e69107c131d1c514bab3dc8bcaa9";
+        sha512 = "mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==";
       };
     }
     {
@@ -2230,7 +2438,7 @@
       path = fetchurl {
         name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
         url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     }
     {
@@ -2238,7 +2446,7 @@
       path = fetchurl {
         name = "json_schema___json_schema_0.2.3.tgz";
         url  = "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz";
-        sha1 = "b480c892e59a2f05954ce727bd3f2a4e882f9e13";
+        sha1 = "tIDIkuWaLwWVTOcnvT8qTogvnhM=";
       };
     }
     {
@@ -2246,7 +2454,7 @@
       path = fetchurl {
         name = "json_stringify_safe___json_stringify_safe_5.0.1.tgz";
         url  = "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz";
-        sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
+        sha1 = "Epai1Y/UXxmg9s4B1lcB4sc1tus=";
       };
     }
     {
@@ -2254,7 +2462,7 @@
       path = fetchurl {
         name = "jsondiffpatch___jsondiffpatch_0.3.11.tgz";
         url  = "https://registry.yarnpkg.com/jsondiffpatch/-/jsondiffpatch-0.3.11.tgz";
-        sha1 = "43f9443a0d081b5f79d413fe20f302079e493201";
+        sha512 = "Xi3Iygdt/BGhml6bdUFhgDki1TgOsp3hG3iiH3KtzP+CahtGcdPfKRLlnZbSw+3b1umZkhmKrqXUgUcKenyhtA==";
       };
     }
     {
@@ -2262,7 +2470,7 @@
       path = fetchurl {
         name = "jsonfile___jsonfile_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz";
-        sha1 = "8771aae0799b64076b76640fca058f9c10e33ecb";
+        sha1 = "h3Gq4HmbZAdrdmQPygWPnBDjPss=";
       };
     }
     {
@@ -2270,7 +2478,15 @@
       path = fetchurl {
         name = "jsprim___jsprim_1.4.1.tgz";
         url  = "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz";
-        sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
+        sha1 = "MT5mvB5cwG5Di8G3SZwuXFastqI=";
+      };
+    }
+    {
+      name = "keypress___keypress_0.1.0.tgz";
+      path = fetchurl {
+        name = "keypress___keypress_0.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/keypress/-/keypress-0.1.0.tgz";
+        sha1 = "SjGI1CkbZrT2XtuZ+AaqmuKTWSo=";
       };
     }
     {
@@ -2278,7 +2494,7 @@
       path = fetchurl {
         name = "kind_of___kind_of_3.2.2.tgz";
         url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz";
-        sha1 = "31ea21a734bab9bbb0f32466d893aea51e4a3c64";
+        sha1 = "MeohpzS6ubuw8yRm2JOupR5KPGQ=";
       };
     }
     {
@@ -2286,7 +2502,7 @@
       path = fetchurl {
         name = "kind_of___kind_of_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz";
-        sha1 = "20813df3d712928b207378691a45066fae72dd57";
+        sha1 = "IIE989cSkosgc3hpGkUGb65y3Vc=";
       };
     }
     {
@@ -2294,7 +2510,7 @@
       path = fetchurl {
         name = "kind_of___kind_of_5.1.0.tgz";
         url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz";
-        sha1 = "729c91e2d857b7a419a1f9aa65685c4c33f5845d";
+        sha512 = "NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==";
       };
     }
     {
@@ -2302,7 +2518,7 @@
       path = fetchurl {
         name = "kind_of___kind_of_6.0.3.tgz";
         url  = "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz";
-        sha1 = "07c05034a6c349fa06e24fa35aa76db4580ce4dd";
+        sha512 = "dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==";
       };
     }
     {
@@ -2310,7 +2526,7 @@
       path = fetchurl {
         name = "lego_api___lego_api_1.0.8.tgz";
         url  = "https://registry.yarnpkg.com/lego-api/-/lego-api-1.0.8.tgz";
-        sha1 = "5e26be726c5e11d540f89e7c6b1abf8c5834bd01";
+        sha512 = "pZD0mf32+RL1bUMJztRcXiNBB1gE8gd/h4MDLWdZp7vaMZyjPiYK/zNpNNGoJvmoa7D/wf9dll+5z7pDObdLFg==";
       };
     }
     {
@@ -2318,7 +2534,7 @@
       path = fetchurl {
         name = "levn___levn_0.3.0.tgz";
         url  = "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz";
-        sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
+        sha1 = "OwmSTt+fCDwEkP3UwLxEIeBHZO4=";
       };
     }
     {
@@ -2326,7 +2542,7 @@
       path = fetchurl {
         name = "lines_and_columns___lines_and_columns_1.1.6.tgz";
         url  = "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz";
-        sha1 = "1c00c743b433cd0a4e80758f7b64a57440d9ff00";
+        sha1 = "HADHQ7QzzQpOgHWPe2SldEDZ/wA=";
       };
     }
     {
@@ -2334,7 +2550,7 @@
       path = fetchurl {
         name = "lodash._getnative___lodash._getnative_3.9.1.tgz";
         url  = "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz";
-        sha1 = "570bc7dede46d61cdcde687d65d3eecbaa3aaff5";
+        sha1 = "VwvH3t5G1hzc3mh9ZdPuy6o6r/U=";
       };
     }
     {
@@ -2342,7 +2558,7 @@
       path = fetchurl {
         name = "lodash.curry___lodash.curry_4.1.1.tgz";
         url  = "https://registry.yarnpkg.com/lodash.curry/-/lodash.curry-4.1.1.tgz";
-        sha1 = "248e36072ede906501d75966200a86dab8b23170";
+        sha1 = "JI42By7ekGUB11lmIAqG2riyMXA=";
       };
     }
     {
@@ -2350,7 +2566,7 @@
       path = fetchurl {
         name = "lodash.debounce___lodash.debounce_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-3.1.1.tgz";
-        sha1 = "812211c378a94cc29d5aa4e3346cf0bfce3a7df5";
+        sha1 = "gSIRw3ipTMKdWqTjNGzwv846ffU=";
       };
     }
     {
@@ -2358,7 +2574,7 @@
       path = fetchurl {
         name = "lodash.debounce___lodash.debounce_4.0.8.tgz";
         url  = "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz";
-        sha1 = "82d79bff30a67c4005ffd5e2515300ad9ca4d7af";
+        sha1 = "gteb/zCmfEAF/9XiUVMArZyk168=";
       };
     }
     {
@@ -2366,7 +2582,15 @@
       path = fetchurl {
         name = "lodash.flow___lodash.flow_3.5.0.tgz";
         url  = "https://registry.yarnpkg.com/lodash.flow/-/lodash.flow-3.5.0.tgz";
-        sha1 = "87bf40292b8cf83e4e8ce1a3ae4209e20071675a";
+        sha1 = "h79AKSuM+D5OjOGjrkIJ4gBxZ1o=";
+      };
+    }
+    {
+      name = "lodash.orderby___lodash.orderby_4.6.0.tgz";
+      path = fetchurl {
+        name = "lodash.orderby___lodash.orderby_4.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/lodash.orderby/-/lodash.orderby-4.6.0.tgz";
+        sha1 = "5pfwTOXXhSL1TZM4syuBozk+TrM=";
       };
     }
     {
@@ -2374,7 +2598,7 @@
       path = fetchurl {
         name = "lodash.uniqby___lodash.uniqby_4.7.0.tgz";
         url  = "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz";
-        sha1 = "d99c07a669e9e6d24e1362dfe266c67616af1302";
+        sha1 = "2ZwHpmnp5tJOE2Lf4mbGdhavEwI=";
       };
     }
     {
@@ -2382,7 +2606,7 @@
       path = fetchurl {
         name = "lodash___lodash_4.17.15.tgz";
         url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
-        sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     }
     {
@@ -2390,7 +2614,23 @@
       path = fetchurl {
         name = "loose_envify___loose_envify_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
-        sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+        sha512 = "lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==";
+      };
+    }
+    {
+      name = "lru_cache___lru_cache_6.0.0.tgz";
+      path = fetchurl {
+        name = "lru_cache___lru_cache_6.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
+        sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==";
+      };
+    }
+    {
+      name = "make_dir___make_dir_3.1.0.tgz";
+      path = fetchurl {
+        name = "make_dir___make_dir_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz";
+        sha512 = "g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==";
       };
     }
     {
@@ -2398,7 +2638,7 @@
       path = fetchurl {
         name = "make_error___make_error_1.3.6.tgz";
         url  = "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz";
-        sha1 = "2eb2e37ea9b67c4891f684a1394799af484cf7a2";
+        sha512 = "s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==";
       };
     }
     {
@@ -2406,7 +2646,7 @@
       path = fetchurl {
         name = "map_cache___map_cache_0.2.2.tgz";
         url  = "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz";
-        sha1 = "c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf";
+        sha1 = "wyq9C9ZSXZsFFkW7TyasXcmKDb8=";
       };
     }
     {
@@ -2414,7 +2654,7 @@
       path = fetchurl {
         name = "map_visit___map_visit_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz";
-        sha1 = "ecdca8f13144e660f1b5bd41f12f3479d98dfb8f";
+        sha1 = "7Nyo8TFE5mDxtb1B8S80edmN+48=";
       };
     }
     {
@@ -2422,7 +2662,7 @@
       path = fetchurl {
         name = "match_stream___match_stream_0.0.2.tgz";
         url  = "https://registry.yarnpkg.com/match-stream/-/match-stream-0.0.2.tgz";
-        sha1 = "99eb050093b34dffade421b9ac0b410a9cfa17cf";
+        sha1 = "mesFAJOzTf+t5CG5rAtBCpz6F88=";
       };
     }
     {
@@ -2430,7 +2670,7 @@
       path = fetchurl {
         name = "math_random___math_random_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/math-random/-/math-random-1.0.4.tgz";
-        sha1 = "5dd6943c938548267016d4e34f057583080c514c";
+        sha512 = "rUxjysqif/BZQH2yhd5Aaq7vXMSx9NdEsQcyA07uEzIvxgI7zIr33gGsh+RU0/XjmQpCW7RsVof1vlkvQVCK5A==";
       };
     }
     {
@@ -2438,7 +2678,7 @@
       path = fetchurl {
         name = "media_typer___media_typer_0.3.0.tgz";
         url  = "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz";
-        sha1 = "8710d7af0aa626f8fffa1ce00168545263255748";
+        sha1 = "hxDXrwqmJvj/+hzgAWhUUmMlV0g=";
       };
     }
     {
@@ -2446,7 +2686,7 @@
       path = fetchurl {
         name = "memoize_one___memoize_one_5.1.1.tgz";
         url  = "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz";
-        sha1 = "047b6e3199b508eaec03504de71229b8eb1d75c0";
+        sha512 = "HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==";
       };
     }
     {
@@ -2454,7 +2694,7 @@
       path = fetchurl {
         name = "merge_descriptors___merge_descriptors_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz";
-        sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61";
+        sha1 = "sAqqVW3YtEVoFQ7J0blT8/kMu2E=";
       };
     }
     {
@@ -2462,7 +2702,7 @@
       path = fetchurl {
         name = "merge___merge_1.2.1.tgz";
         url  = "https://registry.yarnpkg.com/merge/-/merge-1.2.1.tgz";
-        sha1 = "38bebf80c3220a8a487b6fcfb3941bb11720c145";
+        sha512 = "VjFo4P5Whtj4vsLzsYBu5ayHhoHJ0UqNm7ibvShmbmoz7tGi0vXaoJbGdB+GmDMLUdg8DpQXEIeVDAe8MaABvQ==";
       };
     }
     {
@@ -2470,7 +2710,7 @@
       path = fetchurl {
         name = "methods___methods_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz";
-        sha1 = "5529a4d67654134edcc5266656835b0f851afcee";
+        sha1 = "VSmk1nZUE07cxSZmVoNbD4Ua/O4=";
       };
     }
     {
@@ -2478,7 +2718,7 @@
       path = fetchurl {
         name = "micromatch___micromatch_2.3.11.tgz";
         url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz";
-        sha1 = "86677c97d1720b363431d04d0d15293bd38c1565";
+        sha1 = "hmd8l9FyCzY0MdBNDRUpO9OMFWU=";
       };
     }
     {
@@ -2486,7 +2726,7 @@
       path = fetchurl {
         name = "micromatch___micromatch_3.1.10.tgz";
         url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz";
-        sha1 = "70859bc95c9840952f359a068a3fc49f9ecfac23";
+        sha512 = "MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==";
       };
     }
     {
@@ -2494,7 +2734,7 @@
       path = fetchurl {
         name = "mime_db___mime_db_1.43.0.tgz";
         url  = "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz";
-        sha1 = "0a12e0502650e473d735535050e7c8f4eb4fae58";
+        sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ==";
       };
     }
     {
@@ -2502,7 +2742,7 @@
       path = fetchurl {
         name = "mime_types___mime_types_2.1.26.tgz";
         url  = "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz";
-        sha1 = "9c921fc09b7e149a65dfdc0da4d20997200b0a06";
+        sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==";
       };
     }
     {
@@ -2510,7 +2750,7 @@
       path = fetchurl {
         name = "mime___mime_1.6.0.tgz";
         url  = "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz";
-        sha1 = "32cd9e5c64553bd58d19a568af452acff04981b1";
+        sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==";
       };
     }
     {
@@ -2518,7 +2758,7 @@
       path = fetchurl {
         name = "mimic_fn___mimic_fn_1.2.0.tgz";
         url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
-        sha1 = "820c86a39334640e99516928bd03fca88057d022";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
       };
     }
     {
@@ -2526,7 +2766,7 @@
       path = fetchurl {
         name = "minimatch___minimatch_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+        sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==";
       };
     }
     {
@@ -2534,7 +2774,7 @@
       path = fetchurl {
         name = "minimist___minimist_0.0.8.tgz";
         url  = "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz";
-        sha1 = "857fcabfc3397d2625b8228262e86aa7a011b05d";
+        sha1 = "hX/Kv8M5fSYluCKCYuhqp6ARsF0=";
       };
     }
     {
@@ -2542,7 +2782,7 @@
       path = fetchurl {
         name = "minimist___minimist_1.2.0.tgz";
         url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz";
-        sha1 = "a35008b20f41383eec1fb914f4cd5df79a264284";
+        sha1 = "o1AIsg9BOD7sH7kU9M1d95omQoQ=";
       };
     }
     {
@@ -2550,7 +2790,23 @@
       path = fetchurl {
         name = "minimist___minimist_1.2.5.tgz";
         url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
-        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+        sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==";
+      };
+    }
+    {
+      name = "minipass___minipass_3.1.5.tgz";
+      path = fetchurl {
+        name = "minipass___minipass_3.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/minipass/-/minipass-3.1.5.tgz";
+        sha512 = "+8NzxD82XQoNKNrl1d/FSi+X8wAEWR+sbYAfIvub4Nz0d22plFG72CEVVaufV8PNf4qSslFTD8VMOxNVhHCjTw==";
+      };
+    }
+    {
+      name = "minizlib___minizlib_2.1.2.tgz";
+      path = fetchurl {
+        name = "minizlib___minizlib_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz";
+        sha512 = "bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==";
       };
     }
     {
@@ -2558,7 +2814,7 @@
       path = fetchurl {
         name = "mixin_deep___mixin_deep_1.3.2.tgz";
         url  = "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz";
-        sha1 = "1120b43dc359a785dce65b55b82e257ccf479566";
+        sha512 = "WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==";
       };
     }
     {
@@ -2566,7 +2822,7 @@
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.5.tgz";
         url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+        sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==";
       };
     }
     {
@@ -2574,7 +2830,15 @@
       path = fetchurl {
         name = "mkdirp___mkdirp_0.5.1.tgz";
         url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz";
-        sha1 = "30057438eac6cf7f8c4767f38648d6697d75c903";
+        sha1 = "MAV0OOrGz3+MR2fzhkjWaX11yQM=";
+      };
+    }
+    {
+      name = "mkdirp___mkdirp_1.0.4.tgz";
+      path = fetchurl {
+        name = "mkdirp___mkdirp_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz";
+        sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==";
       };
     }
     {
@@ -2582,7 +2846,7 @@
       path = fetchurl {
         name = "mock_require___mock_require_3.0.3.tgz";
         url  = "https://registry.yarnpkg.com/mock-require/-/mock-require-3.0.3.tgz";
-        sha1 = "ccd544d9eae81dd576b3f219f69ec867318a1946";
+        sha512 = "lLzfLHcyc10MKQnNUCv7dMcoY/2Qxd6wJfbqCcVk3LDb8An4hF6ohk5AztrvgKhJCqj36uyzi/p5se+tvyD+Wg==";
       };
     }
     {
@@ -2590,7 +2854,7 @@
       path = fetchurl {
         name = "ms___ms_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+        sha1 = "VgiurfwAvmwpAd9fmGF4jeDVl8g=";
       };
     }
     {
@@ -2598,7 +2862,15 @@
       path = fetchurl {
         name = "ms___ms_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz";
-        sha1 = "30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a";
+        sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==";
+      };
+    }
+    {
+      name = "ms___ms_2.1.2.tgz";
+      path = fetchurl {
+        name = "ms___ms_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     }
     {
@@ -2606,7 +2878,7 @@
       path = fetchurl {
         name = "mustache___mustache_2.3.2.tgz";
         url  = "https://registry.yarnpkg.com/mustache/-/mustache-2.3.2.tgz";
-        sha1 = "a6d4d9c3f91d13359ab889a812954f9230a3d0c5";
+        sha512 = "KpMNwdQsYz3O/SBS1qJ/o3sqUJ5wSb8gb0pul8CO0S56b9Y2ALm8zCfsjPXsqGFfoNBkDwZuZIAjhsZI03gYVQ==";
       };
     }
     {
@@ -2614,7 +2886,7 @@
       path = fetchurl {
         name = "mute_stream___mute_stream_0.0.7.tgz";
         url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
-        sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
+        sha1 = "MHXOk7whuPq0PhvE2n6BFe0ee6s=";
       };
     }
     {
@@ -2622,7 +2894,7 @@
       path = fetchurl {
         name = "nan___nan_2.14.0.tgz";
         url  = "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz";
-        sha1 = "7818f722027b2459a86f0295d434d1fc2336c52c";
+        sha512 = "INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==";
       };
     }
     {
@@ -2630,7 +2902,7 @@
       path = fetchurl {
         name = "nanomatch___nanomatch_1.2.13.tgz";
         url  = "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz";
-        sha1 = "b87a8aa4fc0de8fe6be88895b38983ff265bd119";
+        sha512 = "fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==";
       };
     }
     {
@@ -2638,7 +2910,7 @@
       path = fetchurl {
         name = "nanoseconds___nanoseconds_0.1.0.tgz";
         url  = "https://registry.yarnpkg.com/nanoseconds/-/nanoseconds-0.1.0.tgz";
-        sha1 = "69ec39fcd00e77ab3a72de0a43342824cd79233a";
+        sha1 = "aew5/NAOd6s6ct4KQzQoJM15Izo=";
       };
     }
     {
@@ -2646,7 +2918,7 @@
       path = fetchurl {
         name = "natives___natives_1.1.6.tgz";
         url  = "https://registry.yarnpkg.com/natives/-/natives-1.1.6.tgz";
-        sha1 = "a603b4a498ab77173612b9ea1acdec4d980f00bb";
+        sha512 = "6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==";
       };
     }
     {
@@ -2654,7 +2926,39 @@
       path = fetchurl {
         name = "negotiator___negotiator_0.6.2.tgz";
         url  = "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz";
-        sha1 = "feacf7ccf525a77ae9634436a64883ffeca346fb";
+        sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==";
+      };
+    }
+    {
+      name = "node_addon_api___node_addon_api_3.2.1.tgz";
+      path = fetchurl {
+        name = "node_addon_api___node_addon_api_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz";
+        sha512 = "mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==";
+      };
+    }
+    {
+      name = "node_fetch___node_fetch_2.6.5.tgz";
+      path = fetchurl {
+        name = "node_fetch___node_fetch_2.6.5.tgz";
+        url  = "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz";
+        sha512 = "mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ==";
+      };
+    }
+    {
+      name = "nodejieba___nodejieba_2.5.2.tgz";
+      path = fetchurl {
+        name = "nodejieba___nodejieba_2.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/nodejieba/-/nodejieba-2.5.2.tgz";
+        sha512 = "ByskJvaBrQ2eV+5M0OeD80S5NKoGaHc9zi3Z/PTKl/95eac2YF8RmWduq9AknLpkQLrLAIcqurrtC6BzjpKwwg==";
+      };
+    }
+    {
+      name = "nopt___nopt_5.0.0.tgz";
+      path = fetchurl {
+        name = "nopt___nopt_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz";
+        sha512 = "Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==";
       };
     }
     {
@@ -2662,7 +2966,7 @@
       path = fetchurl {
         name = "nopt___nopt_1.0.10.tgz";
         url  = "https://registry.yarnpkg.com/nopt/-/nopt-1.0.10.tgz";
-        sha1 = "6ddd21bd2a31417b92727dd585f8a6f37608ebee";
+        sha1 = "bd0hvSoxQXuScn3Vhfim83YI6+4=";
       };
     }
     {
@@ -2670,7 +2974,23 @@
       path = fetchurl {
         name = "normalize_path___normalize_path_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz";
-        sha1 = "1ab28b556e198363a8c1a6f7e6fa20137fe6aed9";
+        sha1 = "GrKLVW4Zg2Oowab35vogE3/mrtk=";
+      };
+    }
+    {
+      name = "npmlog___npmlog_4.1.2.tgz";
+      path = fetchurl {
+        name = "npmlog___npmlog_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz";
+        sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==";
+      };
+    }
+    {
+      name = "number_is_nan___number_is_nan_1.0.1.tgz";
+      path = fetchurl {
+        name = "number_is_nan___number_is_nan_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
+        sha1 = "CXtgK1NCKlIsGvuHkDGDNpQaAR0=";
       };
     }
     {
@@ -2678,7 +2998,7 @@
       path = fetchurl {
         name = "oauth_sign___oauth_sign_0.9.0.tgz";
         url  = "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz";
-        sha1 = "47a7b016baa68b5fa0ecf3dee08a85c679ac6455";
+        sha512 = "fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==";
       };
     }
     {
@@ -2686,7 +3006,7 @@
       path = fetchurl {
         name = "object_assign___object_assign_4.1.1.tgz";
         url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+        sha1 = "IQmtx5ZYh8/AXLvUQsrIv7s2CGM=";
       };
     }
     {
@@ -2694,23 +3014,7 @@
       path = fetchurl {
         name = "object_copy___object_copy_0.1.0.tgz";
         url  = "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz";
-        sha1 = "7e7d858b781bd7c991a41ba975ed3812754e998c";
-      };
-    }
-    {
-      name = "object_inspect___object_inspect_1.8.0.tgz";
-      path = fetchurl {
-        name = "object_inspect___object_inspect_1.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.8.0.tgz";
-        sha1 = "df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0";
-      };
-    }
-    {
-      name = "object_keys___object_keys_1.1.1.tgz";
-      path = fetchurl {
-        name = "object_keys___object_keys_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz";
-        sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
+        sha1 = "fn2Fi3gb18mRpBupde04EnVOmYw=";
       };
     }
     {
@@ -2718,15 +3022,7 @@
       path = fetchurl {
         name = "object_visit___object_visit_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz";
-        sha1 = "f79c4493af0c5377b59fe39d395e41042dd045bb";
-      };
-    }
-    {
-      name = "object.assign___object.assign_4.1.0.tgz";
-      path = fetchurl {
-        name = "object.assign___object.assign_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
-        sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+        sha1 = "95xEk68MU3e1n+OdOV5BBC3QRbs=";
       };
     }
     {
@@ -2734,7 +3030,7 @@
       path = fetchurl {
         name = "object.omit___object.omit_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz";
-        sha1 = "1a9c744829f39dbb858c76ca3579ae2a54ebd1fa";
+        sha1 = "Gpx0SCnznbuFjHbKNXmuKlTr0fo=";
       };
     }
     {
@@ -2742,15 +3038,15 @@
       path = fetchurl {
         name = "object.pick___object.pick_1.3.0.tgz";
         url  = "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz";
-        sha1 = "87a10ac4c1694bd2e1cbf53591a66141fb5dd747";
+        sha1 = "h6EKxMFpS9Lhy/U1kaZhQftd10c=";
       };
     }
     {
-      name = "object.values___object.values_1.1.1.tgz";
+      name = "object_values___object_values_0.1.2.tgz";
       path = fetchurl {
-        name = "object.values___object.values_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
-        sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+        name = "object_values___object_values_0.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/object_values/-/object_values-0.1.2.tgz";
+        sha512 = "tZgUiKLraVH+4OAedBYrr4/K6KmAQw2RPNd1AuNdhLsuz5WP3VB7WuiKBWbOcjeqqAjus2ChIIWC8dSfmg7ReA==";
       };
     }
     {
@@ -2758,7 +3054,7 @@
       path = fetchurl {
         name = "on_finished___on_finished_2.3.0.tgz";
         url  = "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz";
-        sha1 = "20f1336481b083cd75337992a16971aa2d906947";
+        sha1 = "IPEzZIGwg811M3mSoWlxqi2QaUc=";
       };
     }
     {
@@ -2766,7 +3062,7 @@
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+        sha1 = "WDsap3WWHUsROsF9nFC6753Xa9E=";
       };
     }
     {
@@ -2774,7 +3070,7 @@
       path = fetchurl {
         name = "onetime___onetime_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
-        sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+        sha1 = "BnQoIw/WdEOyeUsiu6UotoZ5YtQ=";
       };
     }
     {
@@ -2782,7 +3078,7 @@
       path = fetchurl {
         name = "optionator___optionator_0.8.3.tgz";
         url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz";
-        sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
+        sha512 = "+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==";
       };
     }
     {
@@ -2790,7 +3086,7 @@
       path = fetchurl {
         name = "options___options_0.0.6.tgz";
         url  = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
-        sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
+        sha1 = "7CLTEoBrtT5zF3Pnza788cZDEo8=";
       };
     }
     {
@@ -2798,7 +3094,7 @@
       path = fetchurl {
         name = "orderedmap___orderedmap_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/orderedmap/-/orderedmap-1.1.1.tgz";
-        sha1 = "c618e77611b3b21d0fe3edc92586265e0059c789";
+        sha512 = "3Ux8um0zXbVacKUkcytc0u3HgC0b0bBLT+I60r2J/En72cI0nZffqrA7Xtf2Hqs27j1g82llR5Mhbd0Z1XW4AQ==";
       };
     }
     {
@@ -2806,7 +3102,7 @@
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+        sha1 = "u+Z0BseaqFxc/sdm/lc0VV36EnQ=";
       };
     }
     {
@@ -2814,7 +3110,7 @@
       path = fetchurl {
         name = "over___over_0.0.5.tgz";
         url  = "https://registry.yarnpkg.com/over/-/over-0.0.5.tgz";
-        sha1 = "f29852e70fd7e25f360e013a8ec44c82aedb5708";
+        sha1 = "8phS5w/X4l82DgE6jsRMgq7bVwg=";
       };
     }
     {
@@ -2822,7 +3118,7 @@
       path = fetchurl {
         name = "parent_module___parent_module_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
-        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
       };
     }
     {
@@ -2830,7 +3126,7 @@
       path = fetchurl {
         name = "parse_glob___parse_glob_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz";
-        sha1 = "b2c376cfb11f35513badd173ef0bb6e3a388391c";
+        sha1 = "ssN2z7EfNVE7rdFz7wu246OIORw=";
       };
     }
     {
@@ -2838,7 +3134,7 @@
       path = fetchurl {
         name = "parse_json___parse_json_5.0.0.tgz";
         url  = "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz";
-        sha1 = "73e5114c986d143efa3712d4ea24db9a4266f60f";
+        sha512 = "OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==";
       };
     }
     {
@@ -2846,7 +3142,7 @@
       path = fetchurl {
         name = "parseurl___parseurl_1.3.3.tgz";
         url  = "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz";
-        sha1 = "9da19e7bee8d12dff0513ed5b76957793bc2e8d4";
+        sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==";
       };
     }
     {
@@ -2854,7 +3150,7 @@
       path = fetchurl {
         name = "pascalcase___pascalcase_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz";
-        sha1 = "b363e55e8006ca6fe21784d2db22bd15d7917f14";
+        sha1 = "s2PlXoAGym/iF4TS2yK9FdeRfxQ=";
       };
     }
     {
@@ -2862,7 +3158,7 @@
       path = fetchurl {
         name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+        sha1 = "F0uSaHNVNP+8es5r9TpanhtcX18=";
       };
     }
     {
@@ -2870,7 +3166,7 @@
       path = fetchurl {
         name = "path_parse___path_parse_1.0.6.tgz";
         url  = "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz";
-        sha1 = "d62dbb5679405d72c4737ec58600e9ddcf06d24c";
+        sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==";
       };
     }
     {
@@ -2878,7 +3174,7 @@
       path = fetchurl {
         name = "path_to_regexp___path_to_regexp_0.1.7.tgz";
         url  = "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz";
-        sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c";
+        sha1 = "32BBeABfUi8V60SQ5yR6G/qmf4w=";
       };
     }
     {
@@ -2886,7 +3182,7 @@
       path = fetchurl {
         name = "path_type___path_type_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz";
-        sha1 = "84ed01c0a7ba380afe09d90a8c180dcd9d03043b";
+        sha512 = "gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==";
       };
     }
     {
@@ -2894,7 +3190,15 @@
       path = fetchurl {
         name = "performance_now___performance_now_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz";
-        sha1 = "6309f4e0e5fa913ec1c69307ae364b4b377c9e7b";
+        sha1 = "Ywn04OX6kT7BxpMHrjZLSzd8nns=";
+      };
+    }
+    {
+      name = "pinyin___pinyin_2.10.2.tgz";
+      path = fetchurl {
+        name = "pinyin___pinyin_2.10.2.tgz";
+        url  = "https://registry.yarnpkg.com/pinyin/-/pinyin-2.10.2.tgz";
+        sha512 = "qAcp7+2vnjm6sAd0B9pp5JpyvHbYoQO1v9zCeJQMEgyw2VeRi02l0gR22ZBgfjjvZ1c2EGoVjJHJ1h0rwr34Ug==";
       };
     }
     {
@@ -2902,7 +3206,7 @@
       path = fetchurl {
         name = "posix_character_classes___posix_character_classes_0.1.1.tgz";
         url  = "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz";
-        sha1 = "01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab";
+        sha1 = "AerA/jta9xoqbAL+q7jB/vfgDqs=";
       };
     }
     {
@@ -2910,7 +3214,7 @@
       path = fetchurl {
         name = "postcss___postcss_6.0.23.tgz";
         url  = "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz";
-        sha1 = "61c82cc328ac60e677645f979054eb98bc0e3324";
+        sha512 = "soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag==";
       };
     }
     {
@@ -2918,7 +3222,7 @@
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz";
-        sha1 = "21932a549f5e52ffd9a827f570e04be62a97da54";
+        sha1 = "IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=";
       };
     }
     {
@@ -2926,7 +3230,7 @@
       path = fetchurl {
         name = "preserve___preserve_0.2.0.tgz";
         url  = "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz";
-        sha1 = "815ed1f6ebc65926f865b310c0713bcb3315ce4b";
+        sha1 = "gV7R9uvGWSb4ZbMQwHE7yzMVzks=";
       };
     }
     {
@@ -2934,7 +3238,7 @@
       path = fetchurl {
         name = "prettier___prettier_1.19.1.tgz";
         url  = "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz";
-        sha1 = "f7d7f5ff8a9cd872a7be4ca142095956a60797cb";
+        sha512 = "s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==";
       };
     }
     {
@@ -2942,7 +3246,7 @@
       path = fetchurl {
         name = "pretty_time___pretty_time_0.2.0.tgz";
         url  = "https://registry.yarnpkg.com/pretty-time/-/pretty-time-0.2.0.tgz";
-        sha1 = "7a3bdec4049c620cd7c42b7f342b74d56e73d74e";
+        sha1 = "ejvexAScYgzXxCt/NCt01W5z104=";
       };
     }
     {
@@ -2950,7 +3254,7 @@
       path = fetchurl {
         name = "prettysize___prettysize_0.0.3.tgz";
         url  = "https://registry.yarnpkg.com/prettysize/-/prettysize-0.0.3.tgz";
-        sha1 = "14afff6a645e591a4ddf1c72919c23b4146181a1";
+        sha1 = "FK//amReWRpN3xxykZwjtBRhgaE=";
       };
     }
     {
@@ -2958,7 +3262,7 @@
       path = fetchurl {
         name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     }
     {
@@ -2966,7 +3270,7 @@
       path = fetchurl {
         name = "prop_types___prop_types_15.7.2.tgz";
         url  = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
-        sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+        sha512 = "8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==";
       };
     }
     {
@@ -2974,15 +3278,15 @@
       path = fetchurl {
         name = "prosemirror_changeset___prosemirror_changeset_2.1.2.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-changeset/-/prosemirror-changeset-2.1.2.tgz";
-        sha1 = "91dee900eb4618b21ed0c38c8d41dc7539303864";
+        sha512 = "/eeAM2XeOFmtiPsFVfVkM3Iq4xfNlFuDB6MlC8Hqch/ibq3YlH3YxDi8fqg78fT8fkrfvN6zRu9EE0HkSmH8PA==";
       };
     }
     {
-      name = "prosemirror_commands___prosemirror_commands_1.1.4.tgz";
+      name = "prosemirror_commands___prosemirror_commands_1.1.10.tgz";
       path = fetchurl {
-        name = "prosemirror_commands___prosemirror_commands_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.4.tgz";
-        sha1 = "991563e67623acab4f8c510fad1570f8b4693780";
+        name = "prosemirror_commands___prosemirror_commands_1.1.10.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-commands/-/prosemirror-commands-1.1.10.tgz";
+        sha512 = "IWyBBXNAd44RM6NnBPljwq+/CM2oYCQJkF+YhKEAZNwzW0uFdGf4qComhjbKZzqFdu6Iub2ZhNsXgwPibA0lCQ==";
       };
     }
     {
@@ -2990,15 +3294,15 @@
       path = fetchurl {
         name = "prosemirror_dev_tools___prosemirror_dev_tools_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-dev-tools/-/prosemirror-dev-tools-2.1.1.tgz";
-        sha1 = "0c4304b05b437608b3666b72fdb4b21e24fa29fc";
+        sha512 = "d9MG4PF82meg5Ru64ox6WCKPkQNsiZEaG5xR5a+l88RJ0VRButMZq5JzPh28vUlTBq+TXnpdTJRlPQIgTOtpqg==";
       };
     }
     {
-      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.2.tgz";
+      name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.5.tgz";
       path = fetchurl {
-        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.2.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.2.tgz";
-        sha1 = "28738c4ed7102e814d7a8a26d70018523fc7cd6d";
+        name = "prosemirror_dropcursor___prosemirror_dropcursor_1.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-dropcursor/-/prosemirror-dropcursor-1.3.5.tgz";
+        sha512 = "tNUwcF2lPAkwKBZPZRtbxpwljnODRNZ3eiYloN1DSUqDjMT1nBZm0nejaEMS1TvNQ+3amibUSAiV4hX+jpASFA==";
       };
     }
     {
@@ -3006,23 +3310,23 @@
       path = fetchurl {
         name = "prosemirror_gapcursor___prosemirror_gapcursor_1.1.5.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-gapcursor/-/prosemirror-gapcursor-1.1.5.tgz";
-        sha1 = "0c37fd6cbb1d7c46358c2e7397f8da9a8b5c6246";
+        sha512 = "SjbUZq5pgsBDuV3hu8GqgIpZR5eZvGLM+gPQTqjVVYSMUCfKW3EGXTEYaLHEl1bGduwqNC95O3bZflgtAb4L6w==";
       };
     }
     {
-      name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
+      name = "prosemirror_history___prosemirror_history_1.2.0.tgz";
       path = fetchurl {
-        name = "prosemirror_history___prosemirror_history_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.1.3.tgz";
-        sha1 = "4f76a1e71db4ef7cdf0e13dec6d8da2aeaecd489";
+        name = "prosemirror_history___prosemirror_history_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-history/-/prosemirror-history-1.2.0.tgz";
+        sha512 = "B9v9xtf4fYbKxQwIr+3wtTDNLDZcmMMmGiI3TAPShnUzvo+Rmv1GiUrsQChY1meetHl7rhML2cppF3FTs7f7UQ==";
       };
     }
     {
-      name = "prosemirror_inputrules___prosemirror_inputrules_1.1.2.tgz";
+      name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
       path = fetchurl {
-        name = "prosemirror_inputrules___prosemirror_inputrules_1.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.2.tgz";
-        sha1 = "487e46c763e1212a4577397aba7706139084f012";
+        name = "prosemirror_inputrules___prosemirror_inputrules_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-inputrules/-/prosemirror-inputrules-1.1.3.tgz";
+        sha512 = "ZaHCLyBtvbyIHv0f5p6boQTIJjlD6o2NPZiEaZWT2DA+j591zS29QQEMT4lBqwcLW3qRSf7ZvoKNbf05YrsStw==";
       };
     }
     {
@@ -3030,7 +3334,7 @@
       path = fetchurl {
         name = "prosemirror_keymap___prosemirror_keymap_1.1.3.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.3.tgz";
-        sha1 = "be22d6108df2521608e9216a87b1a810f0ed361e";
+        sha512 = "PRA4NzkUMzV/NFf5pyQ6tmlIHiW/qjQ1kGWUlV2rF/dvlOxtpGpTEjIMhWgLuMf+HiDEFnUEP7uhYXu+t+491g==";
       };
     }
     {
@@ -3038,7 +3342,7 @@
       path = fetchurl {
         name = "prosemirror_keymap___prosemirror_keymap_1.1.4.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-keymap/-/prosemirror-keymap-1.1.4.tgz";
-        sha1 = "8b481bf8389a5ac40d38dbd67ec3da2c7eac6a6d";
+        sha512 = "Al8cVUOnDFL4gcI5IDlG6xbZ0aOD/i3B17VT+1JbHWDguCgt/lBHVTHUBcKvvbSg6+q/W4Nj1Fu6bwZSca3xjg==";
       };
     }
     {
@@ -3046,23 +3350,23 @@
       path = fetchurl {
         name = "prosemirror_model___prosemirror_model_1.9.1.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.9.1.tgz";
-        sha1 = "8c08cf556f593c5f015548d2c1a6825661df087f";
+        sha512 = "Qblh8pm1c7Ll64sYLauwwzjimo/tFg1zW3Q3IWhKRhvfOEgRKqa6dC5pRrAa+XHOIjBFEYrqbi52J5bqA2dV8Q==";
       };
     }
     {
-      name = "prosemirror_model___prosemirror_model_1.11.0.tgz";
+      name = "prosemirror_model___prosemirror_model_1.14.3.tgz";
       path = fetchurl {
-        name = "prosemirror_model___prosemirror_model_1.11.0.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.11.0.tgz";
-        sha1 = "dc36cdb3ad6442b9f6325c7d89170c624f9dc520";
+        name = "prosemirror_model___prosemirror_model_1.14.3.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-model/-/prosemirror-model-1.14.3.tgz";
+        sha512 = "yzZlBaSxfUPIIP6U5Edh5zKxJPZ5f7bwZRhiCuH3UYkWhj+P3d8swHsbuAMOu/iDatDc5J/Qs5Mb3++mZf+CvQ==";
       };
     }
     {
-      name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
+      name = "prosemirror_schema_list___prosemirror_schema_list_1.1.5.tgz";
       path = fetchurl {
-        name = "prosemirror_schema_list___prosemirror_schema_list_1.1.4.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.4.tgz";
-        sha1 = "471f9caf2d2bed93641d2e490434c0d2d4330df1";
+        name = "prosemirror_schema_list___prosemirror_schema_list_1.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-schema-list/-/prosemirror-schema-list-1.1.5.tgz";
+        sha512 = "9gadhga/wySVfb/iZ2vOpndbG0XroeLw0HkkZN5demNbOea6U5oQtJmvyYWC7ZVf3WkhmVdVsOXrllM9JcC20A==";
       };
     }
     {
@@ -3070,15 +3374,15 @@
       path = fetchurl {
         name = "prosemirror_state___prosemirror_state_1.3.2.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.2.tgz";
-        sha1 = "1b910b0dc01c1f00926bb9ba1589f7b7ac0d658b";
+        sha512 = "t/JqE3aR0SV9QrzFVkAXsQwsgrQBNs/BDbcFH20RssW0xauqNNdjTXxy/J/kM7F+0zYi6+BRmz7cMMQQFU3mwQ==";
       };
     }
     {
-      name = "prosemirror_state___prosemirror_state_1.3.3.tgz";
+      name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
       path = fetchurl {
-        name = "prosemirror_state___prosemirror_state_1.3.3.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.3.tgz";
-        sha1 = "b2862866b14dec2b3ae1ab18229f2bd337651a2c";
+        name = "prosemirror_state___prosemirror_state_1.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-state/-/prosemirror-state-1.3.4.tgz";
+        sha512 = "Xkkrpd1y/TQ6HKzN3agsQIGRcLckUMA9u3j207L04mt8ToRgpGeyhbVv0HI7omDORIBHjR29b7AwlATFFf2GLA==";
       };
     }
     {
@@ -3086,7 +3390,7 @@
       path = fetchurl {
         name = "prosemirror_tables___prosemirror_tables_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.0.0.tgz";
-        sha1 = "ec3d0b11e638c6a92dd14ae816d0a2efd1719b70";
+        sha512 = "zFw5Us4G5Vdq0yIj8GiqZOGA6ud5UKpMKElux9O0HrfmhkuGa1jf1PCpz2R5pmIQJv+tIM24H1mox/ODBAX37Q==";
       };
     }
     {
@@ -3094,7 +3398,7 @@
       path = fetchurl {
         name = "prosemirror_tables___prosemirror_tables_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-tables/-/prosemirror-tables-1.1.1.tgz";
-        sha1 = "ad66300cc49500455cf1243bb129c9e7d883321e";
+        sha512 = "LmCz4jrlqQZRsYRDzCRYf/pQ5CUcSOyqZlAj5kv67ZWBH1SVLP2U9WJEvQfimWgeRlIz0y0PQVqO1arRm1+woA==";
       };
     }
     {
@@ -3102,15 +3406,15 @@
       path = fetchurl {
         name = "prosemirror_transform___prosemirror_transform_1.2.3.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.3.tgz";
-        sha1 = "239d17591af24d39ef3f1999daa09e1f1c76b06a";
+        sha512 = "PUfayeskQfuUBXktvL6207ZWRwHBFNPNPiek4fR+LgCPnBofuEb2+L0FfbNtrAwffHVs6M3DaFvJB1W2VQdV0A==";
       };
     }
     {
-      name = "prosemirror_transform___prosemirror_transform_1.2.8.tgz";
+      name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
       path = fetchurl {
-        name = "prosemirror_transform___prosemirror_transform_1.2.8.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.2.8.tgz";
-        sha1 = "4b86544fa43637fe381549fb7b019f4fb71fe65c";
+        name = "prosemirror_transform___prosemirror_transform_1.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-transform/-/prosemirror-transform-1.3.2.tgz";
+        sha512 = "/G6d/u9Mf6Bv3H1XR8VxhpjmUO75LYmnvj+s3ZfZpakU1hnQbsvCEybml1B3f2IWUAAQRFkbO1PnsbFhLZsYsw==";
       };
     }
     {
@@ -3118,7 +3422,7 @@
       path = fetchurl {
         name = "prosemirror_utils___prosemirror_utils_0.9.6.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-utils/-/prosemirror-utils-0.9.6.tgz";
-        sha1 = "3d97bd85897e3b535555867dc95a51399116a973";
+        sha512 = "UC+j9hQQ1POYfMc5p7UFxBTptRiGPR7Kkmbl3jVvU8VgQbkI89tR/GK+3QYC8n+VvBZrtAoCrJItNhWSxX3slA==";
       };
     }
     {
@@ -3126,15 +3430,15 @@
       path = fetchurl {
         name = "prosemirror_view___prosemirror_view_1.14.2.tgz";
         url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.14.2.tgz";
-        sha1 = "23eb89f6101e9671b5e0c19d82ee0ad9de5608de";
+        sha512 = "9yPVH6OLyaEraHjWHbSk2DB0R/1TsEE6AA1LI+vmCypXXA+zTzNrktUFzBhSJHehXDoEJcQfnl1Wdp5GPSh2+g==";
       };
     }
     {
-      name = "prosemirror_view___prosemirror_view_1.15.6.tgz";
+      name = "prosemirror_view___prosemirror_view_1.20.1.tgz";
       path = fetchurl {
-        name = "prosemirror_view___prosemirror_view_1.15.6.tgz";
-        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.15.6.tgz";
-        sha1 = "446bf7662235300c5f47362af2db805c6df3ad24";
+        name = "prosemirror_view___prosemirror_view_1.20.1.tgz";
+        url  = "https://registry.yarnpkg.com/prosemirror-view/-/prosemirror-view-1.20.1.tgz";
+        sha512 = "djWORhy3a706mUH4A2dgEEV0IPZqQd1tFyz/ZVHJNoqhSgq82FwG6dq7uqHeUB2KdVSNfI2yc3rwfqlC/ll2pA==";
       };
     }
     {
@@ -3142,7 +3446,7 @@
       path = fetchurl {
         name = "proxy_addr___proxy_addr_2.0.6.tgz";
         url  = "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz";
-        sha1 = "fdc2336505447d3f2f2c638ed272caf614bbb2bf";
+        sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==";
       };
     }
     {
@@ -3150,7 +3454,7 @@
       path = fetchurl {
         name = "psl___psl_1.7.0.tgz";
         url  = "https://registry.yarnpkg.com/psl/-/psl-1.7.0.tgz";
-        sha1 = "f1c4c47a8ef97167dea5d6bbf4816d736e884a3c";
+        sha512 = "5NsSEDv8zY70ScRnOTn7bK7eanl2MvFrOrS/R6x+dBt5g1ghnj9Zv90kO8GwT8gxcu2ANyFprnFYB85IogIJOQ==";
       };
     }
     {
@@ -3158,7 +3462,7 @@
       path = fetchurl {
         name = "pullstream___pullstream_0.4.1.tgz";
         url  = "https://registry.yarnpkg.com/pullstream/-/pullstream-0.4.1.tgz";
-        sha1 = "d6fb3bf5aed697e831150eb1002c25a3f8ae1314";
+        sha1 = "1vs79a7Wl+gxFQ6xACwlo/iuExQ=";
       };
     }
     {
@@ -3166,7 +3470,7 @@
       path = fetchurl {
         name = "punycode___punycode_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     }
     {
@@ -3174,7 +3478,7 @@
       path = fetchurl {
         name = "pure_color___pure_color_1.3.0.tgz";
         url  = "https://registry.yarnpkg.com/pure-color/-/pure-color-1.3.0.tgz";
-        sha1 = "1fe064fb0ac851f0de61320a8bf796836422f33e";
+        sha1 = "H+Bk+wrIUfDeYTIKi/eWg2Qi8z4=";
       };
     }
     {
@@ -3182,7 +3486,7 @@
       path = fetchurl {
         name = "qs___qs_6.7.0.tgz";
         url  = "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz";
-        sha1 = "41dc1a015e3d581f1621776be31afb2876a9b1bc";
+        sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     }
     {
@@ -3190,7 +3494,7 @@
       path = fetchurl {
         name = "qs___qs_6.5.2.tgz";
         url  = "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz";
-        sha1 = "cb3ae806e8740444584ef154ce8ee98d403f3e36";
+        sha512 = "N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==";
       };
     }
     {
@@ -3198,7 +3502,7 @@
       path = fetchurl {
         name = "randomatic___randomatic_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz";
-        sha1 = "b776efc59375984e36c537b2f51a1f0aff0da1ed";
+        sha512 = "TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==";
       };
     }
     {
@@ -3206,7 +3510,7 @@
       path = fetchurl {
         name = "range_parser___range_parser_1.2.1.tgz";
         url  = "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz";
-        sha1 = "3cf37023d199e1c24d1a55b84800c2f3e6468031";
+        sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==";
       };
     }
     {
@@ -3214,7 +3518,7 @@
       path = fetchurl {
         name = "raw_body___raw_body_2.4.0.tgz";
         url  = "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz";
-        sha1 = "a1ce6fb9c9bc356ca52e89256ab59059e13d0332";
+        sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==";
       };
     }
     {
@@ -3222,7 +3526,7 @@
       path = fetchurl {
         name = "react_base16_styling___react_base16_styling_0.5.3.tgz";
         url  = "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.5.3.tgz";
-        sha1 = "3858f24e9c4dd8cbd3f702f3f74d581ca2917269";
+        sha1 = "OFjyTpxN2MvT9wLz901YHKKRcmk=";
       };
     }
     {
@@ -3230,15 +3534,15 @@
       path = fetchurl {
         name = "react_dock___react_dock_0.2.4.tgz";
         url  = "https://registry.yarnpkg.com/react-dock/-/react-dock-0.2.4.tgz";
-        sha1 = "e727dc7550b3b73116635dcb9c0e04d0b7afe17c";
+        sha1 = "5yfcdVCztzEWY13LnA4E0Lev4Xw=";
       };
     }
     {
-      name = "react_dom___react_dom_16.13.1.tgz";
+      name = "react_dom___react_dom_17.0.2.tgz";
       path = fetchurl {
-        name = "react_dom___react_dom_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-16.13.1.tgz";
-        sha1 = "c1bd37331a0486c078ee54c4740720993b2e0e7f";
+        name = "react_dom___react_dom_17.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/react-dom/-/react-dom-17.0.2.tgz";
+        sha512 = "s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==";
       };
     }
     {
@@ -3246,7 +3550,7 @@
       path = fetchurl {
         name = "react_emotion___react_emotion_9.2.12.tgz";
         url  = "https://registry.yarnpkg.com/react-emotion/-/react-emotion-9.2.12.tgz";
-        sha1 = "74d1494f89e22d0b9442e92a33ca052461955c83";
+        sha512 = "qt7XbxnEKX5sZ73rERJ92JMbEOoyOwG3BuCRFRkXrsJhEe+rFBRTljRw7yOLHZUCQC4GBObZhjXIduQ8S0ZpYw==";
       };
     }
     {
@@ -3254,7 +3558,7 @@
       path = fetchurl {
         name = "react_is___react_is_16.13.0.tgz";
         url  = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.0.tgz";
-        sha1 = "0f37c3613c34fe6b37cd7f763a0d6293ab15c527";
+        sha512 = "GFMtL0vHkiBv9HluwNZTggSn/sCyEt9n02aM0dSAjGGyqyNlAyftYm4phPxdvCigG15JreC5biwxCgTAJZ7yAA==";
       };
     }
     {
@@ -3262,23 +3566,23 @@
       path = fetchurl {
         name = "react_json_tree___react_json_tree_0.11.2.tgz";
         url  = "https://registry.yarnpkg.com/react-json-tree/-/react-json-tree-0.11.2.tgz";
-        sha1 = "af70199fcbc265699ade2aec492465c51608f95e";
+        sha512 = "aYhUPj1y5jR3ZQ+G3N7aL8FbTyO03iLwnVvvEikLcNFqNTyabdljo9xDftZndUBFyyyL0aK3qGO9+8EilILHUw==";
       };
     }
     {
-      name = "react_window___react_window_1.8.5.tgz";
+      name = "react_window___react_window_1.8.6.tgz";
       path = fetchurl {
-        name = "react_window___react_window_1.8.5.tgz";
-        url  = "https://registry.yarnpkg.com/react-window/-/react-window-1.8.5.tgz";
-        sha1 = "a56b39307e79979721021f5d06a67742ecca52d1";
+        name = "react_window___react_window_1.8.6.tgz";
+        url  = "https://registry.yarnpkg.com/react-window/-/react-window-1.8.6.tgz";
+        sha512 = "8VwEEYyjz6DCnGBsd+MgkD0KJ2/OXFULyDtorIiTz+QzwoP94tBoA7CnbtyXMm+cCeAUER5KJcPtWl9cpKbOBg==";
       };
     }
     {
-      name = "react___react_16.13.1.tgz";
+      name = "react___react_17.0.2.tgz";
       path = fetchurl {
-        name = "react___react_16.13.1.tgz";
-        url  = "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz";
-        sha1 = "2e818822f1a9743122c063d6410d85c1e3afe48e";
+        name = "react___react_17.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/react/-/react-17.0.2.tgz";
+        sha512 = "gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==";
       };
     }
     {
@@ -3286,7 +3590,7 @@
       path = fetchurl {
         name = "readable_stream___readable_stream_2.3.7.tgz";
         url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
       };
     }
     {
@@ -3294,7 +3598,7 @@
       path = fetchurl {
         name = "readable_stream___readable_stream_3.6.0.tgz";
         url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
-        sha1 = "337bbda3adc0706bd3e024426a286d4b4b2c9198";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     }
     {
@@ -3302,7 +3606,7 @@
       path = fetchurl {
         name = "readable_stream___readable_stream_1.0.34.tgz";
         url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz";
-        sha1 = "125820e34bc842d2f2aaafafe4c2916ee32c157c";
+        sha1 = "Elgg40vIQtLyqq+v5MKRbuMsFXw=";
       };
     }
     {
@@ -3310,7 +3614,7 @@
       path = fetchurl {
         name = "readdirp___readdirp_2.2.1.tgz";
         url  = "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz";
-        sha1 = "0e87622a3325aa33e892285caf8b4e846529a525";
+        sha512 = "1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==";
       };
     }
     {
@@ -3318,7 +3622,7 @@
       path = fetchurl {
         name = "realm_utils___realm_utils_1.0.9.tgz";
         url  = "https://registry.yarnpkg.com/realm-utils/-/realm-utils-1.0.9.tgz";
-        sha1 = "5c76a5ff39e4816af2c133a161f4221d6628eff4";
+        sha1 = "XHal/znkgWrywTOhYfQiHWYo7/Q=";
       };
     }
     {
@@ -3326,7 +3630,7 @@
       path = fetchurl {
         name = "regenerate_unicode_properties___regenerate_unicode_properties_8.1.0.tgz";
         url  = "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz";
-        sha1 = "ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e";
+        sha512 = "LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA==";
       };
     }
     {
@@ -3334,7 +3638,7 @@
       path = fetchurl {
         name = "regenerate___regenerate_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz";
-        sha1 = "4a856ec4b56e4077c557589cae85e7a4c8869a11";
+        sha512 = "1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==";
       };
     }
     {
@@ -3342,7 +3646,7 @@
       path = fetchurl {
         name = "regenerator_runtime___regenerator_runtime_0.11.1.tgz";
         url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz";
-        sha1 = "be05ad7f9bf7d22e056f9726cee5017fbf19e2e9";
+        sha512 = "MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==";
       };
     }
     {
@@ -3350,7 +3654,7 @@
       path = fetchurl {
         name = "regenerator_runtime___regenerator_runtime_0.13.3.tgz";
         url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz";
-        sha1 = "7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5";
+        sha512 = "naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==";
       };
     }
     {
@@ -3358,7 +3662,7 @@
       path = fetchurl {
         name = "regenerator_runtime___regenerator_runtime_0.13.5.tgz";
         url  = "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz";
-        sha1 = "d878a1d094b4306d10b9096484b33ebd55e26697";
+        sha512 = "ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA==";
       };
     }
     {
@@ -3366,7 +3670,7 @@
       path = fetchurl {
         name = "regex_cache___regex_cache_0.4.4.tgz";
         url  = "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz";
-        sha1 = "75bdc58a2a1496cec48a12835bc54c8d562336dd";
+        sha512 = "nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==";
       };
     }
     {
@@ -3374,7 +3678,7 @@
       path = fetchurl {
         name = "regex_not___regex_not_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz";
-        sha1 = "1f4ece27e00b0b65e0247a6810e6a85d83a5752c";
+        sha512 = "J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==";
       };
     }
     {
@@ -3382,7 +3686,7 @@
       path = fetchurl {
         name = "regexpu_core___regexpu_core_4.6.0.tgz";
         url  = "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz";
-        sha1 = "2037c18b327cfce8a6fea2a4ec441f2432afb8b6";
+        sha512 = "YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg==";
       };
     }
     {
@@ -3390,7 +3694,7 @@
       path = fetchurl {
         name = "regjsgen___regjsgen_0.5.1.tgz";
         url  = "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz";
-        sha1 = "48f0bf1a5ea205196929c0d9798b42d1ed98443c";
+        sha512 = "5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg==";
       };
     }
     {
@@ -3398,7 +3702,7 @@
       path = fetchurl {
         name = "regjsparser___regjsparser_0.6.3.tgz";
         url  = "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.3.tgz";
-        sha1 = "74192c5805d35e9f5ebe3c1fb5b40d40a8a38460";
+        sha512 = "8uZvYbnfAtEm9Ab8NTb3hdLwL4g/LQzEYP7Xs27T96abJCCE2d6r3cPZPQEsLKy0vRSGVNG+/zVGtLr86HQduA==";
       };
     }
     {
@@ -3406,7 +3710,7 @@
       path = fetchurl {
         name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+        sha1 = "wkvOKig62tW8P1jg1IJJuSN52O8=";
       };
     }
     {
@@ -3414,7 +3718,7 @@
       path = fetchurl {
         name = "repeat_element___repeat_element_1.1.3.tgz";
         url  = "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz";
-        sha1 = "782e0d825c0c5a3bb39731f84efee6b742e6b1ce";
+        sha512 = "ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==";
       };
     }
     {
@@ -3422,7 +3726,7 @@
       path = fetchurl {
         name = "repeat_string___repeat_string_1.6.1.tgz";
         url  = "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz";
-        sha1 = "8dcae470e1c88abc2d600fff4a776286da75e637";
+        sha1 = "jcrkcOHIirwtYA//Sndihtp15jc=";
       };
     }
     {
@@ -3430,7 +3734,15 @@
       path = fetchurl {
         name = "request___request_2.88.2.tgz";
         url  = "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz";
-        sha1 = "d73c918731cb5a87da047e207234146f664d12b3";
+        sha512 = "MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==";
+      };
+    }
+    {
+      name = "require_directory___require_directory_2.1.1.tgz";
+      path = fetchurl {
+        name = "require_directory___require_directory_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz";
+        sha1 = "jGStX9MNqxyXbiNE/+f3kqam30I=";
       };
     }
     {
@@ -3438,7 +3750,7 @@
       path = fetchurl {
         name = "resolve_from___resolve_from_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
-        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
       };
     }
     {
@@ -3446,7 +3758,7 @@
       path = fetchurl {
         name = "resolve_url___resolve_url_0.2.1.tgz";
         url  = "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz";
-        sha1 = "2c637fe77c893afd2a663fe21aa9080068e2052a";
+        sha1 = "LGN/53yJOv0qZj/iGqkIAGjiBSo=";
       };
     }
     {
@@ -3454,7 +3766,7 @@
       path = fetchurl {
         name = "resolve___resolve_1.15.1.tgz";
         url  = "https://registry.yarnpkg.com/resolve/-/resolve-1.15.1.tgz";
-        sha1 = "27bdcdeffeaf2d6244b95bb0f9f4b4653451f3e8";
+        sha512 = "84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==";
       };
     }
     {
@@ -3462,7 +3774,7 @@
       path = fetchurl {
         name = "restore_cursor___restore_cursor_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
-        sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+        sha1 = "n37ih/gv0ybU/RYpI9YhKe7g368=";
       };
     }
     {
@@ -3470,7 +3782,7 @@
       path = fetchurl {
         name = "ret___ret_0.1.15.tgz";
         url  = "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz";
-        sha1 = "b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc";
+        sha512 = "TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==";
       };
     }
     {
@@ -3478,7 +3790,15 @@
       path = fetchurl {
         name = "rimraf___rimraf_2.7.1.tgz";
         url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz";
-        sha1 = "35797f13a7fdadc566142c29d4f07ccad483e3ec";
+        sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==";
+      };
+    }
+    {
+      name = "rimraf___rimraf_3.0.2.tgz";
+      path = fetchurl {
+        name = "rimraf___rimraf_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     }
     {
@@ -3486,7 +3806,7 @@
       path = fetchurl {
         name = "rope_sequence___rope_sequence_1.3.2.tgz";
         url  = "https://registry.yarnpkg.com/rope-sequence/-/rope-sequence-1.3.2.tgz";
-        sha1 = "a19e02d72991ca71feb6b5f8a91154e48e3c098b";
+        sha512 = "ku6MFrwEVSVmXLvy3dYph3LAMNS0890K7fabn+0YIRQ2T96T9F4gkFf0vf0WW0JUraNWwGRtInEpH7yO4tbQZg==";
       };
     }
     {
@@ -3494,7 +3814,7 @@
       path = fetchurl {
         name = "run_async___run_async_2.4.0.tgz";
         url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz";
-        sha1 = "e59054a5b86876cfae07f431d18cbaddc594f1e8";
+        sha512 = "xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==";
       };
     }
     {
@@ -3502,7 +3822,7 @@
       path = fetchurl {
         name = "rx_lite_aggregates___rx_lite_aggregates_4.0.8.tgz";
         url  = "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz";
-        sha1 = "753b87a89a11c95467c4ac1626c4efc4e05c67be";
+        sha1 = "dTuHqJoRyVRnxKwWJsTvxOBcZ74=";
       };
     }
     {
@@ -3510,7 +3830,7 @@
       path = fetchurl {
         name = "rx_lite___rx_lite_4.0.8.tgz";
         url  = "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz";
-        sha1 = "0b1e11af8bc44836f04a6407e92da42467b79444";
+        sha1 = "Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=";
       };
     }
     {
@@ -3518,7 +3838,7 @@
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.1.2.tgz";
         url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
       };
     }
     {
@@ -3526,7 +3846,7 @@
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.2.0.tgz";
         url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz";
-        sha1 = "b74daec49b1148f88c64b68d49b1e815c1f2f519";
+        sha512 = "fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg==";
       };
     }
     {
@@ -3534,7 +3854,7 @@
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.2.1.tgz";
         url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
-        sha1 = "1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     }
     {
@@ -3542,7 +3862,7 @@
       path = fetchurl {
         name = "safe_regex___safe_regex_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz";
-        sha1 = "40a3669f3b077d1e943d44629e157dd48023bf2e";
+        sha1 = "QKNmnzsHfR6UPURinhV91IAjvy4=";
       };
     }
     {
@@ -3550,15 +3870,15 @@
       path = fetchurl {
         name = "safer_buffer___safer_buffer_2.1.2.tgz";
         url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
-        sha1 = "44fa161b0187b9549dd84bb91802f9bd8385cd6a";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     }
     {
-      name = "scheduler___scheduler_0.19.1.tgz";
+      name = "scheduler___scheduler_0.20.2.tgz";
       path = fetchurl {
-        name = "scheduler___scheduler_0.19.1.tgz";
-        url  = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.19.1.tgz";
-        sha1 = "4f3e2ed2c1a7d65681f4c854fa8c5a1ccb40f196";
+        name = "scheduler___scheduler_0.20.2.tgz";
+        url  = "https://registry.yarnpkg.com/scheduler/-/scheduler-0.20.2.tgz";
+        sha512 = "2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==";
       };
     }
     {
@@ -3566,7 +3886,7 @@
       path = fetchurl {
         name = "select___select_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz";
-        sha1 = "0e7350acdec80b1108528786ec1d4418d11b396d";
+        sha1 = "DnNQrN7ICxEIUoeG7B1EGNEbOW0=";
       };
     }
     {
@@ -3574,7 +3894,23 @@
       path = fetchurl {
         name = "semver___semver_5.7.1.tgz";
         url  = "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz";
-        sha1 = "a954f931aeba508d307bbf069eff0c01c96116f7";
+        sha512 = "sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==";
+      };
+    }
+    {
+      name = "semver___semver_6.3.0.tgz";
+      path = fetchurl {
+        name = "semver___semver_6.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz";
+        sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==";
+      };
+    }
+    {
+      name = "semver___semver_7.3.5.tgz";
+      path = fetchurl {
+        name = "semver___semver_7.3.5.tgz";
+        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
+        sha512 = "PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==";
       };
     }
     {
@@ -3582,15 +3918,15 @@
       path = fetchurl {
         name = "send___send_0.17.1.tgz";
         url  = "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz";
-        sha1 = "c1d8b059f7900f7466dd4938bdc44e11ddb376c8";
+        sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==";
       };
     }
     {
-      name = "sentence_splitter___sentence_splitter_3.2.0.tgz";
+      name = "sentence_splitter___sentence_splitter_3.2.2.tgz";
       path = fetchurl {
-        name = "sentence_splitter___sentence_splitter_3.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.0.tgz";
-        sha1 = "fb2cd2f61f40006643ba83d9acf4609233c1c68c";
+        name = "sentence_splitter___sentence_splitter_3.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/sentence-splitter/-/sentence-splitter-3.2.2.tgz";
+        sha512 = "hMvaodgK9Fay928uiQoTMEWjXpCERdKD2uKo7BbSyP+uWTo+wHiRjN+ZShyI99rW0VuoV4Cuw8FUmaRcnpN7Ug==";
       };
     }
     {
@@ -3598,7 +3934,15 @@
       path = fetchurl {
         name = "serve_static___serve_static_1.14.1.tgz";
         url  = "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz";
-        sha1 = "666e636dc4f010f7ef29970a88a674320898b2f9";
+        sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==";
+      };
+    }
+    {
+      name = "set_blocking___set_blocking_2.0.0.tgz";
+      path = fetchurl {
+        name = "set_blocking___set_blocking_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz";
+        sha1 = "BF+XgtARrppoA93TgrJDkrPYkPc=";
       };
     }
     {
@@ -3606,7 +3950,7 @@
       path = fetchurl {
         name = "set_value___set_value_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz";
-        sha1 = "a18d40530e6f07de4228c7defe4227af8cad005b";
+        sha512 = "JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==";
       };
     }
     {
@@ -3614,7 +3958,7 @@
       path = fetchurl {
         name = "setimmediate___setimmediate_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz";
-        sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285";
+        sha1 = "KQy7Iy4waULX1+qbg3Mqt4VvgoU=";
       };
     }
     {
@@ -3622,7 +3966,7 @@
       path = fetchurl {
         name = "setprototypeof___setprototypeof_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz";
-        sha1 = "7e95acb24aa92f5885e0abef5ba131330d4ae683";
+        sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==";
       };
     }
     {
@@ -3630,7 +3974,15 @@
       path = fetchurl {
         name = "shorthash___shorthash_0.0.2.tgz";
         url  = "https://registry.yarnpkg.com/shorthash/-/shorthash-0.0.2.tgz";
-        sha1 = "59b268eecbde59038b30da202bcfbddeb2c4a4eb";
+        sha1 = "WbJo7sveWQOLMNogK8+93rLEpOs=";
+      };
+    }
+    {
+      name = "signal_exit___signal_exit_3.0.5.tgz";
+      path = fetchurl {
+        name = "signal_exit___signal_exit_3.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.5.tgz";
+        sha512 = "KWcOiKeQj6ZyXx7zq4YxSMgHRlod4czeBQZrPb8OKcohcqAXShm7E20kEMle9WBt26hFcAf0qLOcp5zmY7kOqQ==";
       };
     }
     {
@@ -3638,7 +3990,7 @@
       path = fetchurl {
         name = "signal_exit___signal_exit_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz";
-        sha1 = "b5fdc08f1287ea1178628e415e25132b73646c6d";
+        sha1 = "tf3AjxKH6hF4Yo5BXiUTK3NkbG0=";
       };
     }
     {
@@ -3646,7 +3998,7 @@
       path = fetchurl {
         name = "slice_stream___slice_stream_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/slice-stream/-/slice-stream-1.0.0.tgz";
-        sha1 = "5b33bd66f013b1a7f86460b03d463dec39ad3ea0";
+        sha1 = "WzO9ZvATsaf4ZGCwPUY97DmtPqA=";
       };
     }
     {
@@ -3654,7 +4006,7 @@
       path = fetchurl {
         name = "snapdragon_node___snapdragon_node_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz";
-        sha1 = "6c175f86ff14bdb0724563e8f3c1b021a286853b";
+        sha512 = "O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==";
       };
     }
     {
@@ -3662,7 +4014,7 @@
       path = fetchurl {
         name = "snapdragon_util___snapdragon_util_3.0.1.tgz";
         url  = "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz";
-        sha1 = "f956479486f2acd79700693f6f7b805e45ab56e2";
+        sha512 = "mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==";
       };
     }
     {
@@ -3670,7 +4022,7 @@
       path = fetchurl {
         name = "snapdragon___snapdragon_0.8.2.tgz";
         url  = "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz";
-        sha1 = "64922e7c565b0e14204ba1aa7d6964278d25182d";
+        sha512 = "FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==";
       };
     }
     {
@@ -3678,7 +4030,7 @@
       path = fetchurl {
         name = "source_map_resolve___source_map_resolve_0.5.3.tgz";
         url  = "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz";
-        sha1 = "190866bece7553e1f8f267a2ee82c606b5509a1a";
+        sha512 = "Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==";
       };
     }
     {
@@ -3686,7 +4038,7 @@
       path = fetchurl {
         name = "source_map_support___source_map_support_0.5.19.tgz";
         url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+        sha512 = "Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==";
       };
     }
     {
@@ -3694,7 +4046,7 @@
       path = fetchurl {
         name = "source_map_support___source_map_support_0.5.16.tgz";
         url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz";
-        sha1 = "0ae069e7fe3ba7538c64c98515e35339eac5a042";
+        sha512 = "efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==";
       };
     }
     {
@@ -3702,7 +4054,7 @@
       path = fetchurl {
         name = "source_map_url___source_map_url_0.4.0.tgz";
         url  = "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz";
-        sha1 = "3e935d7ddd73631b97659956d55128e87b5084a3";
+        sha1 = "PpNdfd1zYxuXZZlW1VEo6HtQhKM=";
       };
     }
     {
@@ -3710,7 +4062,7 @@
       path = fetchurl {
         name = "source_map___source_map_0.5.7.tgz";
         url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
-        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+        sha1 = "igOdLRAh0i0eoUyA2OpGi6LvP8w=";
       };
     }
     {
@@ -3718,7 +4070,7 @@
       path = fetchurl {
         name = "source_map___source_map_0.6.1.tgz";
         url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
-        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     }
     {
@@ -3726,7 +4078,7 @@
       path = fetchurl {
         name = "source_map___source_map_0.7.3.tgz";
         url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
-        sha1 = "5302f8169031735226544092e64981f751750383";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     }
     {
@@ -3734,7 +4086,7 @@
       path = fetchurl {
         name = "sourcemap_blender___sourcemap_blender_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/sourcemap-blender/-/sourcemap-blender-1.0.5.tgz";
-        sha1 = "d361f3d12381c4e477178113878fdf984a91bdbc";
+        sha512 = "GPhjCmDtJ8YY6zt1L6kP6WtBg6WrdWt5hw2Wmgt9rwC3yiwLo9vEuabh/YYSZ5KmFV20hVkGdkTwpXtT2E65TA==";
       };
     }
     {
@@ -3742,7 +4094,7 @@
       path = fetchurl {
         name = "split_string___split_string_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz";
-        sha1 = "7cb09dda3a86585705c64b39a6466038682e8fe2";
+        sha512 = "NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==";
       };
     }
     {
@@ -3750,7 +4102,7 @@
       path = fetchurl {
         name = "sprintf_js___sprintf_js_1.0.3.tgz";
         url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+        sha1 = "BOaSb2YolTVPPdAVIDYzuFcpfiw=";
       };
     }
     {
@@ -3758,7 +4110,7 @@
       path = fetchurl {
         name = "sshpk___sshpk_1.16.1.tgz";
         url  = "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz";
-        sha1 = "fb661c0bef29b39db40769ee39fa70093d6f6877";
+        sha512 = "HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==";
       };
     }
     {
@@ -3766,7 +4118,7 @@
       path = fetchurl {
         name = "static_extend___static_extend_0.1.2.tgz";
         url  = "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz";
-        sha1 = "60809c39cbff55337226fd5e0b520f341f1fb5c6";
+        sha1 = "YICcOcv/VTNyJv1eC1IPNB8ftcY=";
       };
     }
     {
@@ -3774,7 +4126,7 @@
       path = fetchurl {
         name = "statuses___statuses_1.5.0.tgz";
         url  = "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz";
-        sha1 = "161c7dac177659fd9811f43771fa99381478628c";
+        sha1 = "Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=";
       };
     }
     {
@@ -3782,31 +4134,31 @@
       path = fetchurl {
         name = "stream_browserify___stream_browserify_2.0.2.tgz";
         url  = "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz";
-        sha1 = "87521d38a44aa7ee91ce1cd2a47df0cb49dd660b";
+        sha512 = "nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==";
       };
     }
     {
-      name = "string_width___string_width_2.1.1.tgz";
+      name = "string_width___string_width_1.0.2.tgz";
       path = fetchurl {
-        name = "string_width___string_width_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+        name = "string_width___string_width_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
+        sha1 = "EYvfW4zcUaKn5w0hHgfisLmxB9M=";
       };
     }
     {
-      name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+      name = "string_width___string_width_2.1.1.tgz";
       path = fetchurl {
-        name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
-        sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+        name = "string_width___string_width_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     }
     {
-      name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+      name = "string_width___string_width_4.2.3.tgz";
       path = fetchurl {
-        name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
-        sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+        name = "string_width___string_width_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
       };
     }
     {
@@ -3814,7 +4166,7 @@
       path = fetchurl {
         name = "string_decoder___string_decoder_1.3.0.tgz";
         url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
-        sha1 = "42f114594a46cf1a8e30b0a84f56c78c3edac21e";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     }
     {
@@ -3822,7 +4174,7 @@
       path = fetchurl {
         name = "string_decoder___string_decoder_0.10.31.tgz";
         url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz";
-        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+        sha1 = "YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=";
       };
     }
     {
@@ -3830,7 +4182,15 @@
       path = fetchurl {
         name = "string_decoder___string_decoder_1.1.1.tgz";
         url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_3.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
+        sha1 = "ajhfuIU9lS1f8F0Oiq+UJ43GPc8=";
       };
     }
     {
@@ -3838,7 +4198,15 @@
       path = fetchurl {
         name = "strip_ansi___strip_ansi_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+        sha1 = "qEeQIusaw2iocTibY1JixQXuNo8=";
+      };
+    }
+    {
+      name = "strip_ansi___strip_ansi_6.0.1.tgz";
+      path = fetchurl {
+        name = "strip_ansi___strip_ansi_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     }
     {
@@ -3846,7 +4214,7 @@
       path = fetchurl {
         name = "structured_source___structured_source_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/structured-source/-/structured-source-3.0.2.tgz";
-        sha1 = "dd802425e0f53dc4a6e7aca3752901a1ccda7af5";
+        sha1 = "3YAkJeD1PcSm56yjdSkBoczaevU=";
       };
     }
     {
@@ -3854,7 +4222,7 @@
       path = fetchurl {
         name = "stylis_rule_sheet___stylis_rule_sheet_0.0.10.tgz";
         url  = "https://registry.yarnpkg.com/stylis-rule-sheet/-/stylis-rule-sheet-0.0.10.tgz";
-        sha1 = "44e64a2b076643f4b52e5ff71efc04d8c3c4a430";
+        sha512 = "nTbZoaqoBnmK+ptANthb10ZRZOGC+EmTLLUxeYIuHNkEKcmKgXX1XWKkUBT2Ac4es3NybooPe0SmvKdhKJZAuw==";
       };
     }
     {
@@ -3862,7 +4230,7 @@
       path = fetchurl {
         name = "stylis___stylis_3.5.4.tgz";
         url  = "https://registry.yarnpkg.com/stylis/-/stylis-3.5.4.tgz";
-        sha1 = "f665f25f5e299cf3d64654ab949a57c768b73fbe";
+        sha512 = "8/3pSmthWM7lsPBKv7NXkzn2Uc9W7NotcwGNpJaa3k7WMM1XDCA4MgT5k/8BIexd5ydZdboXtU90XH9Ec4Bv/Q==";
       };
     }
     {
@@ -3870,7 +4238,15 @@
       path = fetchurl {
         name = "supports_color___supports_color_5.5.0.tgz";
         url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
-        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
+      };
+    }
+    {
+      name = "tar___tar_6.1.11.tgz";
+      path = fetchurl {
+        name = "tar___tar_6.1.11.tgz";
+        url  = "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz";
+        sha512 = "an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==";
       };
     }
     {
@@ -3878,7 +4254,7 @@
       path = fetchurl {
         name = "terser___terser_4.6.4.tgz";
         url  = "https://registry.yarnpkg.com/terser/-/terser-4.6.4.tgz";
-        sha1 = "40a0b37afbe5b57e494536815efa68326840fc00";
+        sha512 = "5fqgBPLgVHZ/fVvqRhhUp9YUiGXhFJ9ZkrZWD9vQtFBR4QIGTnbsb+/kKqSqfgp3WnBwGWAFnedGTtmX1YTn0w==";
       };
     }
     {
@@ -3886,7 +4262,7 @@
       path = fetchurl {
         name = "thenby___thenby_1.3.3.tgz";
         url  = "https://registry.yarnpkg.com/thenby/-/thenby-1.3.3.tgz";
-        sha1 = "016c3427772a284bbfef982d978f7574fd15ee9d";
+        sha512 = "vCzp0TxrQ+2bfRJoWNhMwk6RNfboOUN2S+nbEfhJfj7RwJHD6PlgtXH/hXiSmv6UJs35IQDtVqiI45J+cAgLqg==";
       };
     }
     {
@@ -3894,7 +4270,7 @@
       path = fetchurl {
         name = "through___through_2.3.8.tgz";
         url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        sha1 = "DdTJ/6q8NXlgsbckEV1+Doai4fU=";
       };
     }
     {
@@ -3902,7 +4278,7 @@
       path = fetchurl {
         name = "tiny_emitter___tiny_emitter_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz";
-        sha1 = "1d1a56edfc51c43e863cbb5382a72330e3555423";
+        sha512 = "NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==";
       };
     }
     {
@@ -3910,7 +4286,7 @@
       path = fetchurl {
         name = "tlite___tlite_0.1.9.tgz";
         url  = "https://registry.yarnpkg.com/tlite/-/tlite-0.1.9.tgz";
-        sha1 = "e886e4a305b7522242e2453b7ca4fb84f2d9de0f";
+        sha512 = "5QOBAvDxZZwW1i+2YXMgF6/PuV/KhA0LyE9PyVi8Ywr3bfIPziZcQD+RpdJaQurCU8zIGtBo/XuPCEHdvyeFuQ==";
       };
     }
     {
@@ -3918,7 +4294,7 @@
       path = fetchurl {
         name = "tmp___tmp_0.0.33.tgz";
         url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
-        sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
+        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
       };
     }
     {
@@ -3926,7 +4302,7 @@
       path = fetchurl {
         name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
-        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+        sha1 = "3F5pjL0HkmW8c+A3doGk5Og/YW4=";
       };
     }
     {
@@ -3934,7 +4310,7 @@
       path = fetchurl {
         name = "to_object_path___to_object_path_0.3.0.tgz";
         url  = "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+        sha1 = "KXWIt7Dn4KwI4E5nL4XB9JmeF68=";
       };
     }
     {
@@ -3942,7 +4318,7 @@
       path = fetchurl {
         name = "to_regex_range___to_regex_range_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+        sha1 = "fIDBe53+vlmeJzZ+DU3VWQFB2zg=";
       };
     }
     {
@@ -3950,7 +4326,7 @@
       path = fetchurl {
         name = "to_regex___to_regex_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz";
-        sha1 = "13cfdd9b336552f30b51f33a8ae1b42a7a7599ce";
+        sha512 = "FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==";
       };
     }
     {
@@ -3958,7 +4334,7 @@
       path = fetchurl {
         name = "toidentifier___toidentifier_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz";
-        sha1 = "7e1be3470f1e77948bc43d94a3c8f4d7752ba553";
+        sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==";
       };
     }
     {
@@ -3966,7 +4342,7 @@
       path = fetchurl {
         name = "touch___touch_2.0.2.tgz";
         url  = "https://registry.yarnpkg.com/touch/-/touch-2.0.2.tgz";
-        sha1 = "ca0b2a3ae3211246a61b16ba9e6cbf1596287164";
+        sha512 = "qjNtvsFXTRq7IuMLweVgFxmEuQ6gLbRs2jQxL80TtZ31dEKWYIxRXquij6w6VimyDek5hD3PytljHmEtAs2u0A==";
       };
     }
     {
@@ -3974,7 +4350,23 @@
       path = fetchurl {
         name = "tough_cookie___tough_cookie_2.5.0.tgz";
         url  = "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz";
-        sha1 = "cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2";
+        sha512 = "nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==";
+      };
+    }
+    {
+      name = "tr46___tr46_0.0.3.tgz";
+      path = fetchurl {
+        name = "tr46___tr46_0.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz";
+        sha1 = "gYT9NH2snNwYWZLzpmIuFLnZq2o=";
+      };
+    }
+    {
+      name = "transliteration___transliteration_2.2.0.tgz";
+      path = fetchurl {
+        name = "transliteration___transliteration_2.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/transliteration/-/transliteration-2.2.0.tgz";
+        sha512 = "o29GDWtecNoK4TNfnJQesGluFPiza+U8NoiKrErU8eTNlVgma6w1LV/tTiGo+waFLkhtL9WxrW0lXhZKmm7msQ==";
       };
     }
     {
@@ -3982,7 +4374,7 @@
       path = fetchurl {
         name = "traverse___traverse_0.3.9.tgz";
         url  = "https://registry.yarnpkg.com/traverse/-/traverse-0.3.9.tgz";
-        sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
+        sha1 = "cXuPIgzAu3tE5AUUwisui7xw2Lk=";
       };
     }
     {
@@ -3990,7 +4382,7 @@
       path = fetchurl {
         name = "ts_node___ts_node_8.10.2.tgz";
         url  = "https://registry.yarnpkg.com/ts-node/-/ts-node-8.10.2.tgz";
-        sha1 = "eee03764633b1234ddd37f8db9ec10b75ec7fb8d";
+        sha512 = "ISJJGgkIpDdBhWVu3jufsWpK3Rzo7bdiIXJjQc0ynKxVOVcg2oIrf2H2cejminGrptVc6q6/uynAHNCuWGbpVA==";
       };
     }
     {
@@ -3998,7 +4390,7 @@
       path = fetchurl {
         name = "tslib___tslib_1.11.1.tgz";
         url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz";
-        sha1 = "eb15d128827fbee2841549e171f45ed338ac7e35";
+        sha512 = "aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA==";
       };
     }
     {
@@ -4006,7 +4398,7 @@
       path = fetchurl {
         name = "tslint_config_prettier___tslint_config_prettier_1.18.0.tgz";
         url  = "https://registry.yarnpkg.com/tslint-config-prettier/-/tslint-config-prettier-1.18.0.tgz";
-        sha1 = "75f140bde947d35d8f0d238e0ebf809d64592c37";
+        sha512 = "xPw9PgNPLG3iKRxmK7DWr+Ea/SzrvfHtjFt5LBl61gk2UBG/DB9kCXRjv+xyIU1rUtnayLeMUVJBcMX8Z17nDg==";
       };
     }
     {
@@ -4014,7 +4406,7 @@
       path = fetchurl {
         name = "tslint_react___tslint_react_5.0.0.tgz";
         url  = "https://registry.yarnpkg.com/tslint-react/-/tslint-react-5.0.0.tgz";
-        sha1 = "d0ae644e8163bdd3e134012e9353094904e8dd44";
+        sha512 = "/IbcSmoBPlFic8kQaRfQ4knTY4mivwo5LVzvozvX6Dyu2ynEnrh1dIcR2ujjyp/IodXqY/H5GbxFxSMo/Kf2Hg==";
       };
     }
     {
@@ -4022,7 +4414,7 @@
       path = fetchurl {
         name = "tslint___tslint_5.20.1.tgz";
         url  = "https://registry.yarnpkg.com/tslint/-/tslint-5.20.1.tgz";
-        sha1 = "e401e8aeda0152bc44dd07e614034f3f80c67b7d";
+        sha512 = "EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==";
       };
     }
     {
@@ -4030,7 +4422,7 @@
       path = fetchurl {
         name = "tsutils___tsutils_2.29.0.tgz";
         url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-2.29.0.tgz";
-        sha1 = "32b488501467acbedd4b85498673a0812aca0b99";
+        sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==";
       };
     }
     {
@@ -4038,7 +4430,7 @@
       path = fetchurl {
         name = "tsutils___tsutils_3.17.1.tgz";
         url  = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
-        sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+        sha512 = "kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==";
       };
     }
     {
@@ -4046,7 +4438,7 @@
       path = fetchurl {
         name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
         url  = "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+        sha1 = "J6XeoGs2sEoKmWZ3SykIaPD8QP0=";
       };
     }
     {
@@ -4054,7 +4446,7 @@
       path = fetchurl {
         name = "tweetnacl___tweetnacl_0.14.5.tgz";
         url  = "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+        sha1 = "WuaBd/GS1EViadEIr6k/+HQ/T2Q=";
       };
     }
     {
@@ -4062,7 +4454,7 @@
       path = fetchurl {
         name = "type_check___type_check_0.3.2.tgz";
         url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+        sha1 = "WITKtRLPHTVeP7eE8wgEsrUg23I=";
       };
     }
     {
@@ -4070,7 +4462,7 @@
       path = fetchurl {
         name = "type_is___type_is_1.6.18.tgz";
         url  = "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz";
-        sha1 = "4e552cd05df09467dcbc4ef739de89f2cf37c131";
+        sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==";
       };
     }
     {
@@ -4078,7 +4470,7 @@
       path = fetchurl {
         name = "typedarray___typedarray_0.0.6.tgz";
         url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+        sha1 = "hnrHTjhkGHsdPUfZlqeOxciDB3c=";
       };
     }
     {
@@ -4086,7 +4478,7 @@
       path = fetchurl {
         name = "typescript_tslint_plugin___typescript_tslint_plugin_0.5.5.tgz";
         url  = "https://registry.yarnpkg.com/typescript-tslint-plugin/-/typescript-tslint-plugin-0.5.5.tgz";
-        sha1 = "673875c43640251f1ab3d63745d7d49726ff961c";
+        sha512 = "tR5igNQP+6FhxaPJYRlUBVsEl0n5cSuXRbg7L1y80mL4B1jUHb8uiIcbQBJ9zWyypJEdFYFUccpXxvMwZR8+AA==";
       };
     }
     {
@@ -4094,7 +4486,7 @@
       path = fetchurl {
         name = "typescript___typescript_3.8.3.tgz";
         url  = "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz";
-        sha1 = "409eb8544ea0335711205869ec458ab109ee1061";
+        sha512 = "MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==";
       };
     }
     {
@@ -4102,7 +4494,7 @@
       path = fetchurl {
         name = "uglify_js___uglify_js_3.8.0.tgz";
         url  = "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.8.0.tgz";
-        sha1 = "f3541ae97b2f048d7e7e3aa4f39fd8a1f5d7a805";
+        sha512 = "ugNSTT8ierCsDHso2jkBHXYrU8Y5/fY2ZUprfrJUiD7YpuFvV4jODLFmb3h4btQjqr5Nh4TX4XtgDfCU1WdioQ==";
       };
     }
     {
@@ -4110,7 +4502,7 @@
       path = fetchurl {
         name = "ultron___ultron_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz";
-        sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+        sha1 = "rOEWq1V80Zc4ak6I9GhTeMiy5Po=";
       };
     }
     {
@@ -4118,7 +4510,7 @@
       path = fetchurl {
         name = "unicode_canonical_property_names_ecmascript___unicode_canonical_property_names_ecmascript_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz";
-        sha1 = "2619800c4c825800efdd8343af7dd9933cbe2818";
+        sha512 = "jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==";
       };
     }
     {
@@ -4126,7 +4518,7 @@
       path = fetchurl {
         name = "unicode_match_property_ecmascript___unicode_match_property_ecmascript_1.0.4.tgz";
         url  = "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz";
-        sha1 = "8ed2a32569961bce9227d09cd3ffbb8fed5f020c";
+        sha512 = "L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==";
       };
     }
     {
@@ -4134,7 +4526,7 @@
       path = fetchurl {
         name = "unicode_match_property_value_ecmascript___unicode_match_property_value_ecmascript_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz";
-        sha1 = "5b4b426e08d13a80365e0d657ac7a6c1ec46a277";
+        sha512 = "hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g==";
       };
     }
     {
@@ -4142,7 +4534,7 @@
       path = fetchurl {
         name = "unicode_property_aliases_ecmascript___unicode_property_aliases_ecmascript_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz";
-        sha1 = "a9cc6cc7ce63a0a3023fc99e341b94431d405a57";
+        sha512 = "L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw==";
       };
     }
     {
@@ -4150,7 +4542,7 @@
       path = fetchurl {
         name = "union_value___union_value_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz";
-        sha1 = "0b6fe7b835aecda61c6ea4d4f02c14221e109847";
+        sha512 = "tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==";
       };
     }
     {
@@ -4158,7 +4550,7 @@
       path = fetchurl {
         name = "universalify___universalify_0.1.2.tgz";
         url  = "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz";
-        sha1 = "b646f69be3942dabcecc9d6639c80dc105efaa66";
+        sha512 = "rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==";
       };
     }
     {
@@ -4166,7 +4558,7 @@
       path = fetchurl {
         name = "unpipe___unpipe_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+        sha1 = "sr9O6FFKrmFltIF4KdIbLvSZBOw=";
       };
     }
     {
@@ -4174,7 +4566,7 @@
       path = fetchurl {
         name = "unset_value___unset_value_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+        sha1 = "g3aHP30jNRef+x5vw6jtDfyKtVk=";
       };
     }
     {
@@ -4182,7 +4574,7 @@
       path = fetchurl {
         name = "unstated___unstated_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/unstated/-/unstated-2.1.1.tgz";
-        sha1 = "36b124dfb2e7a12d39d0bb9c46dfb6e51276e3a2";
+        sha512 = "fORlTWMZxq7NuMJDxyIrrYIZKN7wEWYQ9SiaJfIRcSpsowr6Ph/JIfK2tgtXLW614JfPG/t5q9eEIhXRCf55xg==";
       };
     }
     {
@@ -4190,7 +4582,7 @@
       path = fetchurl {
         name = "unzip___unzip_0.1.11.tgz";
         url  = "https://registry.yarnpkg.com/unzip/-/unzip-0.1.11.tgz";
-        sha1 = "89749c63b058d7d90d619f86b98aa1535d3b97f0";
+        sha1 = "iXScY7BY19kNYZ+GuYqhU107l/A=";
       };
     }
     {
@@ -4198,7 +4590,7 @@
       path = fetchurl {
         name = "uri_js___uri_js_4.2.2.tgz";
         url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz";
-        sha1 = "94c540e1ff772956e2299507c010aea6c8838eb0";
+        sha512 = "KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==";
       };
     }
     {
@@ -4206,7 +4598,7 @@
       path = fetchurl {
         name = "urix___urix_0.1.0.tgz";
         url  = "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+        sha1 = "2pN/emLiH+wf0Y1Js1wpNQZ6bHI=";
       };
     }
     {
@@ -4214,7 +4606,7 @@
       path = fetchurl {
         name = "use___use_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz";
-        sha1 = "d50c8cac79a19fbc20f2911f56eb973f4e10070f";
+        sha512 = "cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==";
       };
     }
     {
@@ -4222,7 +4614,7 @@
       path = fetchurl {
         name = "util_deprecate___util_deprecate_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+        sha1 = "RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=";
       };
     }
     {
@@ -4230,7 +4622,7 @@
       path = fetchurl {
         name = "utils_extend___utils_extend_1.0.8.tgz";
         url  = "https://registry.yarnpkg.com/utils-extend/-/utils-extend-1.0.8.tgz";
-        sha1 = "ccfd7b64540f8e90ee21eec57769d0651cab8a5f";
+        sha1 = "zP17ZFQPjpDuIe7Fd2nQZRyril8=";
       };
     }
     {
@@ -4238,7 +4630,7 @@
       path = fetchurl {
         name = "utils_merge___utils_merge_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+        sha1 = "n5VxD1CiZ5R7LMwSR0HBAoQn5xM=";
       };
     }
     {
@@ -4246,7 +4638,7 @@
       path = fetchurl {
         name = "uuid___uuid_3.4.0.tgz";
         url  = "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz";
-        sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
+        sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==";
       };
     }
     {
@@ -4254,7 +4646,7 @@
       path = fetchurl {
         name = "vary___vary_1.1.2.tgz";
         url  = "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+        sha1 = "IpnwLG3tMNSllhsLn3RSShj2NPw=";
       };
     }
     {
@@ -4262,7 +4654,7 @@
       path = fetchurl {
         name = "verror___verror_1.10.0.tgz";
         url  = "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        sha1 = "OhBcoXBTr1XW4nDB+CiGguGNpAA=";
       };
     }
     {
@@ -4270,7 +4662,7 @@
       path = fetchurl {
         name = "vscode_jsonrpc___vscode_jsonrpc_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/vscode-jsonrpc/-/vscode-jsonrpc-4.0.0.tgz";
-        sha1 = "a7bf74ef3254d0a0c272fab15c82128e378b3be9";
+        sha512 = "perEnXQdQOJMTDFNv+UF3h1Y0z4iSiaN9jIlb0OqIYgosPCZGYh/MCUlkFtV2668PL69lRDO32hmvL2yiidUYg==";
       };
     }
     {
@@ -4278,7 +4670,7 @@
       path = fetchurl {
         name = "vscode_languageserver_protocol___vscode_languageserver_protocol_3.14.1.tgz";
         url  = "https://registry.yarnpkg.com/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.14.1.tgz";
-        sha1 = "b8aab6afae2849c84a8983d39a1cf742417afe2f";
+        sha512 = "IL66BLb2g20uIKog5Y2dQ0IiigW0XKrvmWiOvc0yXw80z3tMEzEnHjaGAb3ENuU7MnQqgnYJ1Cl2l9RvNgDi4g==";
       };
     }
     {
@@ -4286,7 +4678,7 @@
       path = fetchurl {
         name = "vscode_languageserver_types___vscode_languageserver_types_3.14.0.tgz";
         url  = "https://registry.yarnpkg.com/vscode-languageserver-types/-/vscode-languageserver-types-3.14.0.tgz";
-        sha1 = "d3b5952246d30e5241592b6dde8280e03942e743";
+        sha512 = "lTmS6AlAlMHOvPQemVwo3CezxBp0sNB95KNPkqp3Nxd5VFEnuG1ByM0zlRWos0zjO3ZWtkvhal0COgiV1xIA4A==";
       };
     }
     {
@@ -4294,7 +4686,7 @@
       path = fetchurl {
         name = "vscode_languageserver___vscode_languageserver_5.2.1.tgz";
         url  = "https://registry.yarnpkg.com/vscode-languageserver/-/vscode-languageserver-5.2.1.tgz";
-        sha1 = "0d2feddd33f92aadf5da32450df498d52f6f14eb";
+        sha512 = "GuayqdKZqAwwaCUjDvMTAVRPJOp/SLON3mJ07eGsx/Iq9HjRymhKWztX41rISqDKhHVVyFM+IywICyZDla6U3A==";
       };
     }
     {
@@ -4302,7 +4694,7 @@
       path = fetchurl {
         name = "vscode_uri___vscode_uri_1.0.8.tgz";
         url  = "https://registry.yarnpkg.com/vscode-uri/-/vscode-uri-1.0.8.tgz";
-        sha1 = "9769aaececae4026fb6e22359cb38946580ded59";
+        sha512 = "obtSWTlbJ+a+TFRYGaUumtVwb+InIUVI0Lu0VBUAPmj2cU5JutEXg3xUE0c2J5Tcy7h2DEKVJBFi+Y9ZSFzzPQ==";
       };
     }
     {
@@ -4310,7 +4702,7 @@
       path = fetchurl {
         name = "w3c_keyname___w3c_keyname_2.2.2.tgz";
         url  = "https://registry.yarnpkg.com/w3c-keyname/-/w3c-keyname-2.2.2.tgz";
-        sha1 = "7ea63170454bb19f1a3c6b628fc3dc8889276e91";
+        sha512 = "8Vs/aVwcy0IJACaPm4tyzh1fzehZE70bGSjEl3dDms5UXtWnaBElrSHC8lDDeak0Gk5jxKOFstL64/65o7Ge2A==";
       };
     }
     {
@@ -4318,7 +4710,31 @@
       path = fetchurl {
         name = "watch___watch_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/watch/-/watch-1.0.2.tgz";
-        sha1 = "340a717bde765726fa0aa07d721e0147a551df0c";
+        sha1 = "NApxe952Vyb6CqB9ch4BR6VR3ww=";
+      };
+    }
+    {
+      name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+      path = fetchurl {
+        name = "webidl_conversions___webidl_conversions_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
+        sha1 = "JFNCdeKnvGvnvIZhHMFq4KVlSHE=";
+      };
+    }
+    {
+      name = "whatwg_url___whatwg_url_5.0.0.tgz";
+      path = fetchurl {
+        name = "whatwg_url___whatwg_url_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz";
+        sha1 = "lmRU6HZUYuN2RNNib2dCzotwll0=";
+      };
+    }
+    {
+      name = "wide_align___wide_align_1.1.3.tgz";
+      path = fetchurl {
+        name = "wide_align___wide_align_1.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz";
+        sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==";
       };
     }
     {
@@ -4326,7 +4742,15 @@
       path = fetchurl {
         name = "word_wrap___word_wrap_1.2.3.tgz";
         url  = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
-        sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
+      };
+    }
+    {
+      name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+      path = fetchurl {
+        name = "wrap_ansi___wrap_ansi_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz";
+        sha512 = "YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==";
       };
     }
     {
@@ -4334,7 +4758,7 @@
       path = fetchurl {
         name = "wrappy___wrappy_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+        sha1 = "tSQ9jz7BqjXxNkYFvA0QNuMKtp8=";
       };
     }
     {
@@ -4342,7 +4766,23 @@
       path = fetchurl {
         name = "ws___ws_1.1.5.tgz";
         url  = "https://registry.yarnpkg.com/ws/-/ws-1.1.5.tgz";
-        sha1 = "cbd9e6e75e09fc5d2c90015f21f0c40875e0dd51";
+        sha512 = "o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==";
+      };
+    }
+    {
+      name = "y18n___y18n_5.0.8.tgz";
+      path = fetchurl {
+        name = "y18n___y18n_5.0.8.tgz";
+        url  = "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz";
+        sha512 = "0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==";
+      };
+    }
+    {
+      name = "yallist___yallist_4.0.0.tgz";
+      path = fetchurl {
+        name = "yallist___yallist_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
+        sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==";
       };
     }
     {
@@ -4350,7 +4790,23 @@
       path = fetchurl {
         name = "yaml___yaml_1.7.2.tgz";
         url  = "https://registry.yarnpkg.com/yaml/-/yaml-1.7.2.tgz";
-        sha1 = "f26aabf738590ab61efaca502358e48dc9f348b2";
+        sha512 = "qXROVp90sb83XtAoqE8bP9RwAkTTZbugRUTm5YeFCBfNRPEp2YzTeqWiz7m5OORHzEvrA/qcGS8hp/E+MMROYw==";
+      };
+    }
+    {
+      name = "yargs_parser___yargs_parser_20.2.9.tgz";
+      path = fetchurl {
+        name = "yargs_parser___yargs_parser_20.2.9.tgz";
+        url  = "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz";
+        sha512 = "y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==";
+      };
+    }
+    {
+      name = "yargs___yargs_16.2.0.tgz";
+      path = fetchurl {
+        name = "yargs___yargs_16.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz";
+        sha512 = "D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==";
       };
     }
     {
@@ -4358,7 +4814,7 @@
       path = fetchurl {
         name = "yn___yn_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz";
-        sha1 = "1e87401a09d767c1d5eab26a6e4c185182d2eb50";
+        sha512 = "Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==";
       };
     }
     {
@@ -4366,7 +4822,7 @@
       path = fetchurl {
         name = "zenscroll___zenscroll_4.0.2.tgz";
         url  = "https://registry.yarnpkg.com/zenscroll/-/zenscroll-4.0.2.tgz";
-        sha1 = "e8d5774d1c0738a47bcfa8729f3712e2deddeb25";
+        sha1 = "6NV3TRwHOKR7z6hynzcS4t7d6yU=";
       };
     }
   ];
diff --git a/pkgs/applications/editors/sublime/2/default.nix b/pkgs/applications/editors/sublime/2/default.nix
index 074584e3360e5..6c9a43779f763 100644
--- a/pkgs/applications/editors/sublime/2/default.nix
+++ b/pkgs/applications/editors/sublime/2/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Sophisticated text editor for code, markup and prose";
     license = lib.licenses.unfree;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
 }
diff --git a/pkgs/applications/editors/sublime/3/common.nix b/pkgs/applications/editors/sublime/3/common.nix
index a5cf2d560c015..e1d5b3d4d36e3 100644
--- a/pkgs/applications/editors/sublime/3/common.nix
+++ b/pkgs/applications/editors/sublime/3/common.nix
@@ -131,6 +131,7 @@ in stdenv.mkDerivation (rec {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = "https://www.sublimetext.com/";
     maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
   };
diff --git a/pkgs/applications/editors/sublime/4/common.nix b/pkgs/applications/editors/sublime/4/common.nix
index 81eaa442425bc..de9bf276aa5bf 100644
--- a/pkgs/applications/editors/sublime/4/common.nix
+++ b/pkgs/applications/editors/sublime/4/common.nix
@@ -142,6 +142,7 @@ in stdenv.mkDerivation (rec {
     description = "Sophisticated text editor for code, markup and prose";
     homepage = "https://www.sublimetext.com/";
     maintainers = with maintainers; [ jtojnar wmertens demin-dmitriy zimbatm ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "aarch64-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/editors/vim/default.nix b/pkgs/applications/editors/vim/default.nix
index d8167f6098791..42a1b730fe15f 100644
--- a/pkgs/applications/editors/vim/default.nix
+++ b/pkgs/applications/editors/vim/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, callPackage, ncurses, gettext, pkg-config
+{ lib, stdenv, fetchurl, callPackage, ncurses, bash, gawk, gettext, pkg-config
 # default vimrc
 , vimrc ? fetchurl {
     name = "default-vimrc";
@@ -18,9 +18,11 @@ stdenv.mkDerivation {
   inherit (common) version src postPatch hardeningDisable enableParallelBuilding meta;
 
   nativeBuildInputs = [ gettext pkg-config ];
-  buildInputs = [ ncurses ]
+  buildInputs = [ ncurses bash gawk ]
     ++ lib.optionals stdenv.hostPlatform.isDarwin [ Carbon Cocoa ];
 
+  strictDeps = true;
+
   configureFlags = [
     "--enable-multibyte"
     "--enable-nls"
@@ -36,6 +38,13 @@ stdenv.mkDerivation {
     "vim_cv_memmove_handles_overlap=yes"
   ];
 
+  # which.sh is used to for vim's own shebang patching, so make it find
+  # binaries for the host platform.
+  preConfigure = ''
+    export HOST_PATH
+    substituteInPlace src/which.sh --replace '$PATH' '$HOST_PATH'
+  '';
+
   postInstall = ''
     ln -s $out/bin/vim $out/bin/vi
     mkdir -p $out/share/vim
diff --git a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix
index 6b4cf674ac5a5..9e7bb1be2d5c8 100644
--- a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix
+++ b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix
@@ -4,6 +4,7 @@
 , vimCommandCheckHook
 , vimGenDocHook
 , neovimRequireCheckHook
+, toVimPlugin
 }:
 
 rec {
@@ -23,11 +24,6 @@ rec {
     let drv = stdenv.mkDerivation (attrs // {
       name = namePrefix + name;
 
-      # dont move the doc folder since vim expects it
-      forceShare= [ "man" "info" ];
-
-      nativeBuildInputs = attrs.nativeBuildInputs or []
-      ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ vimCommandCheckHook vimGenDocHook ];
       inherit unpackPhase configurePhase buildPhase addonInfo preInstall postInstall;
 
       installPhase = ''
@@ -40,9 +36,9 @@ rec {
         runHook postInstall
       '';
     });
-    in  drv.overrideAttrs(oa: {
+    in toVimPlugin(drv.overrideAttrs(oa: {
       rtp = "${drv}";
-    });
+    }));
 
   buildVimPluginFrom2Nix = attrs: buildVimPlugin ({
     # vim plugins may override this
diff --git a/pkgs/applications/editors/vim/plugins/default.nix b/pkgs/applications/editors/vim/plugins/default.nix
index c6ef409d637b8..17e03b7dd76d3 100644
--- a/pkgs/applications/editors/vim/plugins/default.nix
+++ b/pkgs/applications/editors/vim/plugins/default.nix
@@ -1,5 +1,8 @@
 # TODO check that no license information gets lost
-{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages, luaPackages }:
+{ callPackage, config, lib, vimUtils, vim, darwin, llvmPackages
+, neovimUtils
+, luaPackages
+}:
 
 let
 
@@ -8,24 +11,11 @@ let
 
   inherit (lib) extends;
 
-  initialPackages = self: {
-    # Convert derivation to a vim plugin.
-    toVimPlugin = drv:
-      drv.overrideAttrs(oldAttrs: {
-
-        nativeBuildInputs = oldAttrs.nativeBuildInputs or [] ++ [
-          vimGenDocHook
-          vimCommandCheckHook
-        ];
-        passthru = (oldAttrs.passthru or {}) // {
-          vimPlugin = true;
-        };
-      });
-  };
+  initialPackages = self: { };
 
   plugins = callPackage ./generated.nix {
     inherit buildVimPluginFrom2Nix;
-    inherit (vimUtils) buildNeovimPluginFrom2Nix;
+    inherit (neovimUtils) buildNeovimPluginFrom2Nix;
   };
 
   # TL;DR
diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix
index f2699445dbb19..f96dba825a6c5 100644
--- a/pkgs/applications/editors/vim/plugins/generated.nix
+++ b/pkgs/applications/editors/vim/plugins/generated.nix
@@ -281,12 +281,12 @@ final: prev:
 
   SchemaStore-nvim = buildVimPluginFrom2Nix {
     pname = "SchemaStore.nvim";
-    version = "2022-06-08";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "b0o";
       repo = "SchemaStore.nvim";
-      rev = "005a0377c95fe521a65a90af26aadb46085871c8";
-      sha256 = "1yn541cn5m0jmwwhiygqlds9hvxsm9w6x70r24ig3nj2p9q41px3";
+      rev = "7561d31e5e668333d7e453c063ded5a2805f0e41";
+      sha256 = "0850akn3ik044dnz53d2ikdgw8b7yk6vhy58a346ac9cq1damz7r";
     };
     meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
   };
@@ -341,12 +341,12 @@ final: prev:
 
   SpaceVim = buildVimPluginFrom2Nix {
     pname = "SpaceVim";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "SpaceVim";
       repo = "SpaceVim";
-      rev = "d66173b58abe941966e0e4666e54963c7a2d7dc9";
-      sha256 = "1cfz9xj5498n3mpw2f4fk0gxdp92d697dp7mm5vnz78h17p4px6y";
+      rev = "b7e45f2b1db2bb7b1ec8d9713607c3579f43207c";
+      sha256 = "12wkzf821fglinwacs2va28my5s8bf0xs9xzxifvcvbf5kp7k55x";
     };
     meta.homepage = "https://github.com/SpaceVim/SpaceVim/";
   };
@@ -449,12 +449,12 @@ final: prev:
 
   YouCompleteMe = buildVimPluginFrom2Nix {
     pname = "YouCompleteMe";
-    version = "2022-04-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "ycm-core";
       repo = "YouCompleteMe";
-      rev = "3ededaed2f9923d50bf3860ba8dace0f7d2724cd";
-      sha256 = "1n2h5wsp9vclsvzr40m1ffb6kjmcg0mccfj790giw77qa2i9s1rl";
+      rev = "4237c4647ec30215223d597f6172c8c46b8b239e";
+      sha256 = "17krclvg5y645g9vk43bpmhg1pzf4m8dlif5ar5h92qvbih8sw7i";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/ycm-core/YouCompleteMe/";
@@ -498,12 +498,12 @@ final: prev:
 
   aerial-nvim = buildVimPluginFrom2Nix {
     pname = "aerial.nvim";
-    version = "2022-06-05";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "stevearc";
       repo = "aerial.nvim";
-      rev = "2084c3ce26aba0aea0a450b35c5971b48f277574";
-      sha256 = "0p9rsgk6ynikhic8r9iy5i5rklg4dmri0yrm4gslmrp2bdmn111k";
+      rev = "dd35fd75c480da0e0239d69a607aac1347c395c6";
+      sha256 = "02mqp20vc5jjrf8d1padldnp3fdks0wjanwd22zr56y8zphcaxvc";
     };
     meta.homepage = "https://github.com/stevearc/aerial.nvim/";
   };
@@ -546,12 +546,12 @@ final: prev:
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2022-06-08";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "dense-analysis";
       repo = "ale";
-      rev = "f10349b48b173d50b523ce009934bb4bfba04f7f";
-      sha256 = "1s6ba5h0cv8y80x2nv9m98q724xv242nqzgxxh7bniakzp3jm4j4";
+      rev = "91e8422d6d67f1b1139b57b8707945ea2531443e";
+      sha256 = "1fwvxs7ifshdpvzkfqld66cdlhvbrp76bpm603w1qaskm88fj2pf";
     };
     meta.homepage = "https://github.com/dense-analysis/ale/";
   };
@@ -570,12 +570,12 @@ final: prev:
 
   alpha-nvim = buildVimPluginFrom2Nix {
     pname = "alpha-nvim";
-    version = "2022-04-22";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "goolord";
       repo = "alpha-nvim";
-      rev = "4781fcfea5ddc1a92d41b32dc325132ed6fce7a8";
-      sha256 = "03i75403lskpgaqv7xp5hk4v6kqb0sv15ciil9jyj735ylhry3qq";
+      rev = "ef27a59e5b4d7b1c2fe1950da3fe5b1c5f3b4c94";
+      sha256 = "0w4864v6lgyzjckrsim8si9d6g7w979n81y96hx2h840xgcj22iw";
     };
     meta.homepage = "https://github.com/goolord/alpha-nvim/";
   };
@@ -678,12 +678,12 @@ final: prev:
 
   asyncrun-vim = buildVimPluginFrom2Nix {
     pname = "asyncrun.vim";
-    version = "2022-03-08";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "skywind3000";
       repo = "asyncrun.vim";
-      rev = "9f8e50033cb724d8856907a5fbf4685eb3efda24";
-      sha256 = "00j0fp57lqcn3qvkb392shj1mqfv9vmn5wjcsibf0y6vbcq17xxh";
+      rev = "aa8a99e87e64276d52556f4d9d4f4a19afd37556";
+      sha256 = "0r79iq6fl4rcpadwvwma70gxk57lri15bqb5p12xad67fxd40320";
     };
     meta.homepage = "https://github.com/skywind3000/asyncrun.vim/";
   };
@@ -714,12 +714,12 @@ final: prev:
 
   aurora = buildVimPluginFrom2Nix {
     pname = "aurora";
-    version = "2022-06-09";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "aurora";
-      rev = "0b16a5f1f0da15c4808fafbad5a1024140a598c7";
-      sha256 = "0gfkvfpj97ijw9rbhy80hq3ly10c4zah4l5zzsw4xpnjwcx9gnxg";
+      rev = "b19bbfe041c67f3f1144e4c88a1d88a7314bfa5b";
+      sha256 = "0ha9b3612i42ldjkq4ip00pbwr7za5bfjrph745c4xdy5dhbx2m5";
     };
     meta.homepage = "https://github.com/ray-x/aurora/";
   };
@@ -750,12 +750,12 @@ final: prev:
 
   auto-session = buildVimPluginFrom2Nix {
     pname = "auto-session";
-    version = "2022-05-06";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "rmagatti";
       repo = "auto-session";
-      rev = "7c9477614fb95b103c277a98bf3f588e337cd7ac";
-      sha256 = "1d502bfkr6qxrqr0jxwngj22cz4bh7v36kakpb9g4qbxdd3h1r30";
+      rev = "2c0103eb26b41cf4b58c3063d7549746d0f5fa73";
+      sha256 = "0m93a89as399bj29mw8nnx0s9bn3kmy74bys97hv4r1n5nc720fy";
     };
     meta.homepage = "https://github.com/rmagatti/auto-session/";
   };
@@ -798,12 +798,12 @@ final: prev:
 
   barbar-nvim = buildVimPluginFrom2Nix {
     pname = "barbar.nvim";
-    version = "2022-06-05";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "romgrk";
       repo = "barbar.nvim";
-      rev = "a6a6209d1f2f599553741bbb02ce940fe8a5661b";
-      sha256 = "17851pqs1hr6vv86n2c7jz08xq0zm0iw9kbs393mfid2839clck9";
+      rev = "d7123f0368aa7fdd10f587176ad60aedcdfa44de";
+      sha256 = "1mqhhfaqd07ck0m6izqrf97a1vlkjcwvmjz5c5z2xssjlmcrx8pg";
     };
     meta.homepage = "https://github.com/romgrk/barbar.nvim/";
   };
@@ -930,12 +930,12 @@ final: prev:
 
   bufferline-nvim = buildVimPluginFrom2Nix {
     pname = "bufferline.nvim";
-    version = "2022-06-05";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "bufferline.nvim";
-      rev = "c78b3ecf9539a719828bca82fc7ddb9b3ba0c353";
-      sha256 = "03sf49s26nb9aqr16f776p58vs3dx9kyyach2jj4k1lp318w6ikp";
+      rev = "88c742f4af988c98aee5ac1c92f056905c636aae";
+      sha256 = "1nlxsg2nzkpxwj5jiwksg1hqp25g6hzj075zjvxbix72xdiv98lq";
     };
     meta.homepage = "https://github.com/akinsho/bufferline.nvim/";
   };
@@ -1098,12 +1098,12 @@ final: prev:
 
   cmp-buffer = buildVimPluginFrom2Nix {
     pname = "cmp-buffer";
-    version = "2022-05-09";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "cmp-buffer";
-      rev = "12463cfcd9b14052f9effccbf1d84caa7a2d57f0";
-      sha256 = "11fbxw8rrhypazd256qwjvf8gg0laqb9b4h9yqdgvwj810y6n6wg";
+      rev = "62fc67a2b0205136bc3e312664624ba2ab4a9323";
+      sha256 = "0wcys2z1yw6raxr9x5nm19ac04q8gfri4pw9mfsh18smv4rnl8zs";
     };
     meta.homepage = "https://github.com/hrsh7th/cmp-buffer/";
   };
@@ -1120,6 +1120,18 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-calc/";
   };
 
+  cmp-clippy = buildVimPluginFrom2Nix {
+    pname = "cmp-clippy";
+    version = "2021-10-24";
+    src = fetchFromGitHub {
+      owner = "vappolinario";
+      repo = "cmp-clippy";
+      rev = "9f8dd021f7b9326407a439105b0c646983191a49";
+      sha256 = "02k0zwjbd98f76f3v46lvd8wfm8wibkh703g8vxr26yv1fwghs4n";
+    };
+    meta.homepage = "https://github.com/vappolinario/cmp-clippy/";
+  };
+
   cmp-cmdline = buildVimPluginFrom2Nix {
     pname = "cmp-cmdline";
     version = "2022-05-02";
@@ -1132,6 +1144,18 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-cmdline/";
   };
 
+  cmp-cmdline-history = buildVimPluginFrom2Nix {
+    pname = "cmp-cmdline-history";
+    version = "2022-05-04";
+    src = fetchFromGitHub {
+      owner = "dmitmel";
+      repo = "cmp-cmdline-history";
+      rev = "003573b72d4635ce636234a826fa8c4ba2895ffe";
+      sha256 = "1v2xyspm7k9jmnzbfg0js15c6sha7ravf4lddsk85icdw16fxji1";
+    };
+    meta.homepage = "https://github.com/dmitmel/cmp-cmdline-history/";
+  };
+
   cmp-conjure = buildVimPluginFrom2Nix {
     pname = "cmp-conjure";
     version = "2021-10-09";
@@ -1144,6 +1168,66 @@ final: prev:
     meta.homepage = "https://github.com/PaterJason/cmp-conjure/";
   };
 
+  cmp-conventionalcommits = buildVimPluginFrom2Nix {
+    pname = "cmp-conventionalcommits";
+    version = "2021-10-28";
+    src = fetchFromGitHub {
+      owner = "davidsierradz";
+      repo = "cmp-conventionalcommits";
+      rev = "5518362bc4f5dfbc9d242d9379fdec48b6278c5e";
+      sha256 = "02jvz8sjrr4xw0wg5y03gnv5sc78gqvmblmqi02y748qgsd5grb6";
+    };
+    meta.homepage = "https://github.com/davidsierradz/cmp-conventionalcommits/";
+  };
+
+  cmp-copilot = buildVimPluginFrom2Nix {
+    pname = "cmp-copilot";
+    version = "2022-04-11";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "cmp-copilot";
+      rev = "1f3f31c54bd71e41ed157430702bc2837ea582ab";
+      sha256 = "14nza4r8vr58s74f3fpzlmvrv9lcxzvfvizkz71p47f1zgddhgfs";
+    };
+    meta.homepage = "https://github.com/hrsh7th/cmp-copilot/";
+  };
+
+  cmp-dap = buildVimPluginFrom2Nix {
+    pname = "cmp-dap";
+    version = "2022-06-05";
+    src = fetchFromGitHub {
+      owner = "rcarriga";
+      repo = "cmp-dap";
+      rev = "2c4cecbb9c4d255acc87ccaca727d1ad2f2b8c90";
+      sha256 = "11wg62nf37ka40l9acwxcklzghapwiw3x549vnp397sl70r3w6b2";
+    };
+    meta.homepage = "https://github.com/rcarriga/cmp-dap/";
+  };
+
+  cmp-dictionary = buildVimPluginFrom2Nix {
+    pname = "cmp-dictionary";
+    version = "2022-05-04";
+    src = fetchFromGitHub {
+      owner = "uga-rosa";
+      repo = "cmp-dictionary";
+      rev = "0ba3df56258b48a5a6a0130d31ae3cf4908c9567";
+      sha256 = "1ny42i913w476bwyrlkwkiv14bdakvnkqx26py45f9qlzrfqj2m5";
+    };
+    meta.homepage = "https://github.com/uga-rosa/cmp-dictionary/";
+  };
+
+  cmp-digraphs = buildVimPluginFrom2Nix {
+    pname = "cmp-digraphs";
+    version = "2021-12-13";
+    src = fetchFromGitHub {
+      owner = "dmitmel";
+      repo = "cmp-digraphs";
+      rev = "5efc1f0078d7c5f3ea1c8e3aad04da3fd6e081a9";
+      sha256 = "061rf7c4lfghsryldmgk5inmwa1994imp1j0l94qgaig6s6hb0kg";
+    };
+    meta.homepage = "https://github.com/dmitmel/cmp-digraphs/";
+  };
+
   cmp-emoji = buildVimPluginFrom2Nix {
     pname = "cmp-emoji";
     version = "2021-09-28";
@@ -1156,18 +1240,114 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-emoji/";
   };
 
+  cmp-fish = buildVimPluginFrom2Nix {
+    pname = "cmp-fish";
+    version = "2022-02-17";
+    src = fetchFromGitHub {
+      owner = "mtoohey31";
+      repo = "cmp-fish";
+      rev = "2ce8febeff3e4600acac498b7cde72cc9d2dd7b1";
+      sha256 = "1clarmx43ygwsaxy73cgy86i33vjrfzr53z7ym29ynndb7zlzg6v";
+    };
+    meta.homepage = "https://github.com/mtoohey31/cmp-fish/";
+  };
+
+  cmp-fuzzy-buffer = buildVimPluginFrom2Nix {
+    pname = "cmp-fuzzy-buffer";
+    version = "2022-01-13";
+    src = fetchFromGitHub {
+      owner = "tzachar";
+      repo = "cmp-fuzzy-buffer";
+      rev = "c00e59019c5b3c00cb5590f9ae1fad4446fb855d";
+      sha256 = "0zax13arc36db2w1l0xyriqskknnvg1wxs809737san70gh74p0w";
+    };
+    meta.homepage = "https://github.com/tzachar/cmp-fuzzy-buffer/";
+  };
+
+  cmp-fuzzy-path = buildVimPluginFrom2Nix {
+    pname = "cmp-fuzzy-path";
+    version = "2022-05-08";
+    src = fetchFromGitHub {
+      owner = "tzachar";
+      repo = "cmp-fuzzy-path";
+      rev = "8c1ecaaf8bf16bc4af4eaaaac73ff5a29174406b";
+      sha256 = "0c607vljcf5zwxvfj4s1vmqridwpwql7zynwc38zx9lafv7l2djb";
+    };
+    meta.homepage = "https://github.com/tzachar/cmp-fuzzy-path/";
+  };
+
+  cmp-git = buildVimPluginFrom2Nix {
+    pname = "cmp-git";
+    version = "2022-05-11";
+    src = fetchFromGitHub {
+      owner = "petertriho";
+      repo = "cmp-git";
+      rev = "60e3de62b925ea05c7aa37883408859c72d498fb";
+      sha256 = "0qbfby0b7ix1x5ak130ja2h1ngq0p20jb9msr29bijfy68afpdw1";
+    };
+    meta.homepage = "https://github.com/petertriho/cmp-git/";
+  };
+
+  cmp-greek = buildVimPluginFrom2Nix {
+    pname = "cmp-greek";
+    version = "2022-01-10";
+    src = fetchFromGitHub {
+      owner = "max397574";
+      repo = "cmp-greek";
+      rev = "799110b976f9194055e9d506931ac38171bc6bcd";
+      sha256 = "049xi4ifla86fd5k68vqxwxxq5hg05y24z7yqg671hbw3lzpi0h9";
+    };
+    meta.homepage = "https://github.com/max397574/cmp-greek/";
+  };
+
   cmp-latex-symbols = buildVimPluginFrom2Nix {
     pname = "cmp-latex-symbols";
-    version = "2021-09-10";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "cmp-latex-symbols";
-      rev = "29dc9e53d17cd1f26605888f85500c8ba79cebff";
-      sha256 = "17qjw0yp0cmgyjy593qq6rfh7fgfwgb7mxg7a0kg1drjpncwv8gl";
+      rev = "46e7627afa8c8ff57158d1c29d721d8efebbc39f";
+      sha256 = "10354d12in7sr5hdamj0cw8hgja6pwl70i9lcxlnha5jzkx8xm03";
     };
     meta.homepage = "https://github.com/kdheepak/cmp-latex-symbols/";
   };
 
+  cmp-look = buildVimPluginFrom2Nix {
+    pname = "cmp-look";
+    version = "2022-03-21";
+    src = fetchFromGitHub {
+      owner = "octaltree";
+      repo = "cmp-look";
+      rev = "58dd22adc34d21f95b93407719aa8a894c52c235";
+      sha256 = "107nvm4xgd3bhz0sqxx4bj19xjli4c52r6jyajw50bv0my2afihq";
+    };
+    meta.homepage = "https://github.com/octaltree/cmp-look/";
+  };
+
+  cmp-neosnippet = buildVimPluginFrom2Nix {
+    pname = "cmp-neosnippet";
+    version = "2022-01-06";
+    src = fetchFromGitHub {
+      owner = "notomo";
+      repo = "cmp-neosnippet";
+      rev = "2d14526af3f02dcea738b4cea520e6ce55c09979";
+      sha256 = "0xf3nfkgbrfhac8nadkzq22pzi9gsidax4ddavqkqqivlcgllrgf";
+    };
+    meta.homepage = "https://github.com/notomo/cmp-neosnippet/";
+  };
+
+  cmp-npm = buildVimPluginFrom2Nix {
+    pname = "cmp-npm";
+    version = "2021-10-27";
+    src = fetchFromGitHub {
+      owner = "David-Kunz";
+      repo = "cmp-npm";
+      rev = "4b6166c3feeaf8dae162e33ee319dc5880e44a29";
+      sha256 = "0lkrbj5pswyb161hi424bii394qfdhm7v86x18a5fs2cmkwi0222";
+    };
+    meta.homepage = "https://github.com/David-Kunz/cmp-npm/";
+  };
+
   cmp-nvim-lsp = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-lsp";
     version = "2022-05-16";
@@ -1192,6 +1372,18 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol/";
   };
 
+  cmp-nvim-lsp-signature-help = buildVimPluginFrom2Nix {
+    pname = "cmp-nvim-lsp-signature-help";
+    version = "2022-06-20";
+    src = fetchFromGitHub {
+      owner = "hrsh7th";
+      repo = "cmp-nvim-lsp-signature-help";
+      rev = "007dd2740d9b70f2688db01a39d6d25b7169cd57";
+      sha256 = "194i2b6qbl3z4j2p2s6sig2fac8i9kglkdwdc5h3x2q7avw70yrg";
+    };
+    meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/";
+  };
+
   cmp-nvim-lua = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-lua";
     version = "2021-10-11";
@@ -1204,6 +1396,18 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lua/";
   };
 
+  cmp-nvim-tags = buildVimPluginFrom2Nix {
+    pname = "cmp-nvim-tags";
+    version = "2022-03-31";
+    src = fetchFromGitHub {
+      owner = "quangnguyen30192";
+      repo = "cmp-nvim-tags";
+      rev = "98b15fee0cd64760345be3a30f1a592b5a9abb20";
+      sha256 = "19fgzaxapazrl07q0ikximgm8k77vasz5fras3xnbax7r3bln127";
+    };
+    meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-tags/";
+  };
+
   cmp-nvim-ultisnips = buildVimPluginFrom2Nix {
     pname = "cmp-nvim-ultisnips";
     version = "2022-04-22";
@@ -1240,6 +1444,18 @@ final: prev:
     meta.homepage = "https://github.com/jc-doyle/cmp-pandoc-references/";
   };
 
+  cmp-pandoc-nvim = buildVimPluginFrom2Nix {
+    pname = "cmp-pandoc.nvim";
+    version = "2022-05-03";
+    src = fetchFromGitHub {
+      owner = "aspeddro";
+      repo = "cmp-pandoc.nvim";
+      rev = "cb2980263e14fb3c1b776edbd2c7a312b67c65ae";
+      sha256 = "0d439njzdnm1qhnig2qr9ywq3q72vpb6wqxwil9czhqzn80swrj9";
+    };
+    meta.homepage = "https://github.com/aspeddro/cmp-pandoc.nvim/";
+  };
+
   cmp-path = buildVimPluginFrom2Nix {
     pname = "cmp-path";
     version = "2022-02-02";
@@ -1252,6 +1468,30 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-path/";
   };
 
+  cmp-rg = buildVimPluginFrom2Nix {
+    pname = "cmp-rg";
+    version = "2022-01-13";
+    src = fetchFromGitHub {
+      owner = "lukas-reineke";
+      repo = "cmp-rg";
+      rev = "fd92d70ff36b30924401b0cf7d4ce7344c8235f7";
+      sha256 = "0z8knl4l5a7miw081h290s0g4icqqvn6qibr6jx4x71qwqb21w2y";
+    };
+    meta.homepage = "https://github.com/lukas-reineke/cmp-rg/";
+  };
+
+  cmp-snippy = buildVimPluginFrom2Nix {
+    pname = "cmp-snippy";
+    version = "2021-09-20";
+    src = fetchFromGitHub {
+      owner = "dcampos";
+      repo = "cmp-snippy";
+      rev = "9af1635fe40385ffa3dabf322039cb5ae1fd7d35";
+      sha256 = "1ag31kvd2q1awasdrc6pbbbsf0l3c99crz4h03337wj1kcssiixy";
+    };
+    meta.homepage = "https://github.com/dcampos/cmp-snippy/";
+  };
+
   cmp-spell = buildVimPluginFrom2Nix {
     pname = "cmp-spell";
     version = "2021-10-19";
@@ -1312,6 +1552,30 @@ final: prev:
     meta.homepage = "https://github.com/lukas-reineke/cmp-under-comparator/";
   };
 
+  cmp-vim-lsp = buildVimPluginFrom2Nix {
+    pname = "cmp-vim-lsp";
+    version = "2021-10-26";
+    src = fetchFromGitHub {
+      owner = "dmitmel";
+      repo = "cmp-vim-lsp";
+      rev = "b13312a8c1a74a8747e64117f26f17390e8abfa8";
+      sha256 = "1f43qwxr8l2qj4mq1lfk5z3c0bqs8dlgyy1yj1acpnknrgi8572p";
+    };
+    meta.homepage = "https://github.com/dmitmel/cmp-vim-lsp/";
+  };
+
+  cmp-vimwiki-tags = buildVimPluginFrom2Nix {
+    pname = "cmp-vimwiki-tags";
+    version = "2022-04-25";
+    src = fetchFromGitHub {
+      owner = "pontusk";
+      repo = "cmp-vimwiki-tags";
+      rev = "a9e631c8f4d64e009d253f741b035eb5d1bd404f";
+      sha256 = "0j75bdcxbzm24mkq3lynm1crv5rqhw966aa7l27y12dlp6rbfvn0";
+    };
+    meta.homepage = "https://github.com/pontusk/cmp-vimwiki-tags/";
+  };
+
   cmp-vsnip = buildVimPluginFrom2Nix {
     pname = "cmp-vsnip";
     version = "2021-11-10";
@@ -1324,6 +1588,18 @@ final: prev:
     meta.homepage = "https://github.com/hrsh7th/cmp-vsnip/";
   };
 
+  cmp-zsh = buildVimPluginFrom2Nix {
+    pname = "cmp-zsh";
+    version = "2022-01-18";
+    src = fetchFromGitHub {
+      owner = "tamago324";
+      repo = "cmp-zsh";
+      rev = "1d8133e5637c73b3eb392682ae9661d521738268";
+      sha256 = "0122lf44yqjp01znp7gnc682yx7fikjkzc5njp73lmys76321lz3";
+    };
+    meta.homepage = "https://github.com/tamago324/cmp-zsh/";
+  };
+
   cmp_luasnip = buildVimPluginFrom2Nix {
     pname = "cmp_luasnip";
     version = "2022-05-01";
@@ -1362,24 +1638,24 @@ final: prev:
 
   coc-fzf = buildVimPluginFrom2Nix {
     pname = "coc-fzf";
-    version = "2021-11-11";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "antoinemadec";
       repo = "coc-fzf";
-      rev = "60828294b9ba846c78893389d4772021043d2fa1";
-      sha256 = "1y7rslksa558fdh3m4m626vpvs424pvxkkk70mr57is47cminm3m";
+      rev = "44bcdc4c62a773a52f0a09cff074e61890870b59";
+      sha256 = "1d0ryxqs6jx2vm5db6ca2aciqsl0559clbskif4kjp3j7ybnz9my";
     };
     meta.homepage = "https://github.com/antoinemadec/coc-fzf/";
   };
 
   coc-lua = buildVimPluginFrom2Nix {
     pname = "coc-lua";
-    version = "2022-06-09";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "josa42";
       repo = "coc-lua";
-      rev = "aa49b7ff2c7aa75aaa538479b552297e38952b38";
-      sha256 = "0m0c8rg7lpaf6kpjaw9qxkrd4jj4n4kzxnmxksgww3s2hmnj8x5w";
+      rev = "e956ff8a94bc73f5a315f0b103b7202fccedd848";
+      sha256 = "0s7jq8xfvb8g24gpzc3s9wcy91l2fs1hl8h7kz79r4mljmqppzs8";
     };
     meta.homepage = "https://github.com/josa42/coc-lua/";
   };
@@ -1434,12 +1710,12 @@ final: prev:
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc.nvim";
-    version = "2022-06-05";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "b4d732a29b66c75e6d130cab296cc604a2d73bc4";
-      sha256 = "08k7p189xh5rwyl9fjfmcg6z3yz6xmlyfpdf3a69vcvnixqg9ww6";
+      rev = "87e5dd692ec8ed7be25b15449fd0ab15a48bfb30";
+      sha256 = "17a7vg7yb1qxzz4a4b0bwqrh3mv1y31233xd1wihw81a0jzc5jkf";
     };
     meta.homepage = "https://github.com/neoclide/coc.nvim/";
   };
@@ -1506,12 +1782,12 @@ final: prev:
 
   command-t = buildVimPluginFrom2Nix {
     pname = "command-t";
-    version = "2022-05-28";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "command-t";
-      rev = "d554468ebee92c42adbbd1c6bf380eb668bd06d3";
-      sha256 = "0npnj71jnk2vvsp56vvmh3vjfxqklxdg4fn585ikgygv53fndszq";
+      rev = "81dba1e2741686514f466701ca62ce3831d49a08";
+      sha256 = "0mmvdhxzj8nv38nw1vddzzg7xkair72x7lwk4lkd369yc3bbwv6g";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/wincent/command-t/";
@@ -1519,12 +1795,12 @@ final: prev:
 
   comment-nvim = buildVimPluginFrom2Nix {
     pname = "comment.nvim";
-    version = "2022-06-07";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "numtostr";
       repo = "comment.nvim";
-      rev = "3c69bab36569d5d0321351ec956fc43a8d409fb0";
-      sha256 = "0wfhj4i1ycwsdmpkk9jcfmq141mqlf40sl4ymqd0zqrwzb8yz5m5";
+      rev = "2c26a00f32b190390b664e56e32fd5347613b9e2";
+      sha256 = "1ii8vjmi73i7vq9w3g13b5m0g5z0sivivkr4mav831yq7qbxvgm2";
     };
     meta.homepage = "https://github.com/numtostr/comment.nvim/";
   };
@@ -1687,36 +1963,36 @@ final: prev:
 
   copilot-vim = buildVimPluginFrom2Nix {
     pname = "copilot.vim";
-    version = "2022-06-07";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "github";
       repo = "copilot.vim";
-      rev = "aa9e451dda857c6615f531f8d4e4f201e43d7a03";
-      sha256 = "1i272gzvm4psqynw7pqyb00zlmx9q0r8z9l5iswy6kjwgvzz9298";
+      rev = "c2e75a3a7519c126c6fdb35984976df9ae13f564";
+      sha256 = "0m65y0pvc7sdj2xc3r97nb5md1i0iqcyri6h83hvs88skrmwnpap";
     };
     meta.homepage = "https://github.com/github/copilot.vim/";
   };
 
   coq-artifacts = buildVimPluginFrom2Nix {
     pname = "coq.artifacts";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.artifacts";
-      rev = "8303d9265567a10a57ee88ab674de77ca6661075";
-      sha256 = "06jmbqrszb5n3lsjfk2q0fz7gyx9g3zb7ivrj4wprdnnws7nyl0a";
+      rev = "78d1c7e607ee8aa417c989f1c811ac73ee5dab9c";
+      sha256 = "128ajrr8zj3mpimvapn0i1g34sp42wammh83gkhvf8xrfrwbd1l1";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.artifacts/";
   };
 
   coq-thirdparty = buildVimPluginFrom2Nix {
     pname = "coq.thirdparty";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq.thirdparty";
-      rev = "7920ea2527f12620701c08c48e1f668e2ccd37b7";
-      sha256 = "1xb590xs4n9gkrslb9v9apw7h3x3w48s6c6kkzphdabys2i9sdd4";
+      rev = "3c17b7a8806e809e1707774cf56a459dc914e309";
+      sha256 = "136lizq5hvvq99n23gjsjnhv8q3kkjx70axasva49abpjnbpaxms";
     };
     meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/";
   };
@@ -1735,12 +2011,12 @@ final: prev:
 
   coq_nvim = buildVimPluginFrom2Nix {
     pname = "coq_nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "coq_nvim";
-      rev = "fc168d99aeade7c3529b8883c12fdec17aad0f7c";
-      sha256 = "02p72z384xk08a2hw8byasnxvl865wxngj08s7zp07cv2vzf3hw0";
+      rev = "83a03e23da4bc52b8cf2fa13bcace18c192a32f8";
+      sha256 = "0dz24pk9dr4wmm58iyvhr3iwcbv6pvwc04s3gmp26hzds37phws2";
     };
     meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
   };
@@ -1879,12 +2155,12 @@ final: prev:
 
   dashboard-nvim = buildVimPluginFrom2Nix {
     pname = "dashboard-nvim";
-    version = "2022-05-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "glepnir";
       repo = "dashboard-nvim";
-      rev = "a36b3232c98616149784f2ca2654e77caea7a522";
-      sha256 = "0106jhw9fg2zmk0fqnr126f9gnh5bw7sjrxldn06ajj15ll15p9p";
+      rev = "6f5cb262141f41d4c603cc987cdb64bf1ea3b216";
+      sha256 = "12lv8kwlb6bmk4bbp6vnym4w6ivasp3k9xgyhcm752wbf56zgzqy";
     };
     meta.homepage = "https://github.com/glepnir/dashboard-nvim/";
   };
@@ -2251,14 +2527,14 @@ final: prev:
     meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/";
   };
 
-  diffview-nvim = buildNeovimPluginFrom2Nix {
+  diffview-nvim = buildVimPluginFrom2Nix {
     pname = "diffview.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "diffview.nvim";
-      rev = "ca297a7e526b42b1ea0e4bd6eebb36f2654125a7";
-      sha256 = "1vr7yx7i863brmpbayxc7k9z14ai0naa030ck43cknib1bdilpkp";
+      rev = "2e77bedfe11f52621fad1d8c20ffbddd8e36d137";
+      sha256 = "0661163vkaqnsy49ha0vgx0wjy71zwi14j80q58mfgvmacc31zj9";
     };
     meta.homepage = "https://github.com/sindrets/diffview.nvim/";
   };
@@ -2313,24 +2589,24 @@ final: prev:
 
   edge = buildVimPluginFrom2Nix {
     pname = "edge";
-    version = "2022-06-04";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "edge";
-      rev = "2c7c3a1bfbd7ce1a62ef61e6cfdcdb9e8c04d1f0";
-      sha256 = "0g3az80iisdbk5w6yqhpw8ws5jh82hzqwq8y6808n3f0ki1b5mz9";
+      rev = "91ce1f39311ad74c1e3bcad1e78efcd4fa3bceaa";
+      sha256 = "0gjqyvp8xfndgh6yljgm1cfvkgcayjxh07ljq14yijhmg86q00x2";
     };
     meta.homepage = "https://github.com/sainnhe/edge/";
   };
 
   editorconfig-vim = buildVimPluginFrom2Nix {
     pname = "editorconfig-vim";
-    version = "2022-01-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "editorconfig";
       repo = "editorconfig-vim";
-      rev = "a8e3e66deefb6122f476c27cee505aaae93f7109";
-      sha256 = "19k6nii3p6a4vfyf7xxrkhj7wfamjivdp22bn1mhx4zcw8h01lkn";
+      rev = "d354117b72b3b43b75a29b8e816c0f91af10efe9";
+      sha256 = "12qvximadgb9z2i0hgvj4p4nxaqk0aqbnaqpafpma73xyb23hx5v";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/editorconfig/editorconfig-vim/";
@@ -2399,12 +2675,12 @@ final: prev:
 
   everforest = buildVimPluginFrom2Nix {
     pname = "everforest";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "everforest";
-      rev = "eca7c8c196215f687319295c81e6ba1d4e2f53a4";
-      sha256 = "10jfag6ngarq2gnwlz4w7b0ckm9j899lppznz4sbrhisv35l4mjf";
+      rev = "65ea4a8325d5d4f09bb76ddec7f2148314067eee";
+      sha256 = "1ma7iq103k4gij070wi0wa2s9c92vxrg0nkmslryvc2l8rwqc4id";
     };
     meta.homepage = "https://github.com/sainnhe/everforest/";
   };
@@ -2483,36 +2759,36 @@ final: prev:
 
   fern-vim = buildVimPluginFrom2Nix {
     pname = "fern.vim";
-    version = "2022-06-05";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "lambdalisue";
       repo = "fern.vim";
-      rev = "7ba49dd915c32ede51a6f6db3c4367748707a156";
-      sha256 = "042kdnki0k6fyp951r054wlwdfm3a2wm4m4q6as9x8dikb80yn00";
+      rev = "951a05d3f6ebc785db728ccfdf1759a2cf7c15ff";
+      sha256 = "1d0g3cylci2ph7crmw888jjjpindbmab5h4z9y7qsvl5633aclk4";
     };
     meta.homepage = "https://github.com/lambdalisue/fern.vim/";
   };
 
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
-    version = "2022-04-17";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "ferret";
-      rev = "35757c7c9364d940efd8a46877acde04193819c2";
-      sha256 = "0b8y7qailjg2366dw03pbfsr7lq9js8jzfcpw8ljyfim94fcj650";
+      rev = "3d064304876941e4197db6b4264db6b72bd9f83d";
+      sha256 = "1lkznmavw2f4ckh3yjjvdhja313ia0aayn5pkf6ygjny1089gcih";
     };
     meta.homepage = "https://github.com/wincent/ferret/";
   };
 
   fidget-nvim = buildVimPluginFrom2Nix {
     pname = "fidget.nvim";
-    version = "2022-05-20";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "j-hui";
       repo = "fidget.nvim";
-      rev = "37d536bbbee47222ddfeca0e8186e8ee6884f9a2";
-      sha256 = "1y0b1x2kl7dmc6kzg1pi1rb16kx8ggi5ybfli1y38hw398h9z7fi";
+      rev = "46d1110435f1f023c22fa95bb10b3906aecd7bde";
+      sha256 = "0v0jnzj288swbp0w8xa7287sbql1rfgziqdk1gbcgvzs7zlvczbr";
     };
     meta.homepage = "https://github.com/j-hui/fidget.nvim/";
   };
@@ -2580,12 +2856,12 @@ final: prev:
 
   flutter-tools-nvim = buildVimPluginFrom2Nix {
     pname = "flutter-tools.nvim";
-    version = "2022-06-08";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "flutter-tools.nvim";
-      rev = "bd6cd6744528425cead90d796ad7a96ae4d58b33";
-      sha256 = "0b3fzsppilpjc33ql4b7rbxvh2ip5kbyhjvqmfmg0kvyvx8d2m3w";
+      rev = "b17546f502c23447f462340ee126b1ce0023e943";
+      sha256 = "1y8xgdflp0gpq97an6ichf5sl8w75hq363x697z3fdryfsa1ldfq";
     };
     meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/";
   };
@@ -2662,6 +2938,18 @@ final: prev:
     meta.homepage = "https://github.com/BeneCollyridam/futhark-vim/";
   };
 
+  fuzzy-nvim = buildVimPluginFrom2Nix {
+    pname = "fuzzy.nvim";
+    version = "2022-02-20";
+    src = fetchFromGitHub {
+      owner = "tzachar";
+      repo = "fuzzy.nvim";
+      rev = "d5fee69b54ef400f0ccedf37917c4782e8929424";
+      sha256 = "1xnmwmbrjsfj3v4vk57gcf4l3wl9n8jks50ds8gaawz5bpy54yff";
+    };
+    meta.homepage = "https://github.com/tzachar/fuzzy.nvim/";
+  };
+
   fwatch-nvim = buildVimPluginFrom2Nix {
     pname = "fwatch.nvim";
     version = "2021-07-25";
@@ -2700,24 +2988,24 @@ final: prev:
 
   fzf-lsp-nvim = buildVimPluginFrom2Nix {
     pname = "fzf-lsp.nvim";
-    version = "2022-05-16";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "gfanto";
       repo = "fzf-lsp.nvim";
-      rev = "0694c278f081958e48f3a6e136c130d15cf8576e";
-      sha256 = "03bg2ld2sh08zarjn5h4c4ypnr51k03qxpj8rk13vm6f6zfg9dnj";
+      rev = "f19d6902dfdecb3150a9dbe153599524ae080dd8";
+      sha256 = "0rii15z51gz97vc688w5si0jb9vdnzq8vvz3yx52rghm535yv46y";
     };
     meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/";
   };
 
   fzf-lua = buildVimPluginFrom2Nix {
     pname = "fzf-lua";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "ibhagwan";
       repo = "fzf-lua";
-      rev = "343322108d2458994f64af3396efccd4875326b5";
-      sha256 = "0lq9dk2iglphjn8n8ai70spyz63cin987mnjn8415g258nyfis8x";
+      rev = "6a4392564b818061731c6a39fcc116ff9fc97dd0";
+      sha256 = "02pidn8w9gkglmsmjqy8lp8wq0s91rxpj96bgpwq6f09hci8mazg";
     };
     meta.homepage = "https://github.com/ibhagwan/fzf-lua/";
   };
@@ -2808,12 +3096,12 @@ final: prev:
 
   git-blame-nvim = buildVimPluginFrom2Nix {
     pname = "git-blame.nvim";
-    version = "2022-05-17";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "f-person";
       repo = "git-blame.nvim";
-      rev = "801570e3903b0aea86c7fcba44f680cc62dad077";
-      sha256 = "09xxzs7bixli5jmbxnigsbwafvz83k63v56drm7lpvvfhl39lbwf";
+      rev = "1bb73289929107309d2d90f7582ece5e9436bfd8";
+      sha256 = "02ybfv5pm7m8mbciccz0j9k21bjhf6kjpp527y6m4r2mdc4q808r";
     };
     meta.homepage = "https://github.com/f-person/git-blame.nvim/";
   };
@@ -2868,12 +3156,12 @@ final: prev:
 
   gitsigns-nvim = buildNeovimPluginFrom2Nix {
     pname = "gitsigns.nvim";
-    version = "2022-05-26";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "gitsigns.nvim";
-      rev = "27aeb2e715c32cbb99aa0b326b31739464b61644";
-      sha256 = "04m1767cndrx46xsa6frf77xv64hmr6w21dk2wh4s0sqjvqqm1r6";
+      rev = "3543443eb3856fbe4a9d70f3fe8dc73e007199a1";
+      sha256 = "00mrf5qwbzgh280lq2lc7xgqmgh8g18j2f46796lbwpcb4ciawh4";
     };
     meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
   };
@@ -2904,12 +3192,12 @@ final: prev:
 
   glow-nvim = buildVimPluginFrom2Nix {
     pname = "glow.nvim";
-    version = "2022-06-06";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "glow.nvim";
-      rev = "ef86fff7371974fd69aab1fd926bafb76893bb1b";
-      sha256 = "03i21lrcqi53swbjwfmh21fbwxw3nxb9rcislzys5078j86wicvn";
+      rev = "900042f7dda528cb980b7f1056ed7c21d4402826";
+      sha256 = "05dhbxclnn5fz9wapa6gvf7p9qk88ir6ix72sahv0vpjcccr6gk6";
     };
     meta.homepage = "https://github.com/ellisonleao/glow.nvim/";
   };
@@ -3012,24 +3300,24 @@ final: prev:
 
   gruvbox-material = buildVimPluginFrom2Nix {
     pname = "gruvbox-material";
-    version = "2022-06-02";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "gruvbox-material";
-      rev = "8aba3586fdefbdad3f758e24799245b799ae5a6f";
-      sha256 = "03hkgzirnjahi44xwbzmpcbzpj4lgydq07wva32cyyrv3h8qplar";
+      rev = "5d2cec690bfa56b863a7b9d482152d873da7ba7a";
+      sha256 = "0rhhxmpjml0w9rmvph1wn70yrybnai4w71x35gn8ig6dn446q4wb";
     };
     meta.homepage = "https://github.com/sainnhe/gruvbox-material/";
   };
 
   gruvbox-nvim = buildVimPluginFrom2Nix {
     pname = "gruvbox.nvim";
-    version = "2022-06-06";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "ellisonleao";
       repo = "gruvbox.nvim";
-      rev = "8135da3a90b257a2c902614e71d9cbbef8308cad";
-      sha256 = "1mcyamqxnbhqdg2skkyz6g229qa08a8c0ssbcjsbcy92d4qyx852";
+      rev = "3352c12c083d0ab6285a9738b7679e24e7602411";
+      sha256 = "044dvp03yw5r745qbs6kp2lni1psfn63807dsd6fw8k2z6m6sbx3";
     };
     meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/";
   };
@@ -3048,12 +3336,12 @@ final: prev:
 
   gv-vim = buildVimPluginFrom2Nix {
     pname = "gv.vim";
-    version = "2021-10-19";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "gv.vim";
-      rev = "386d770e916dd680d1d622e715b9eb3a77f21bd1";
-      sha256 = "184kvydzz9nyg0sv3crn38v04s24km0ma8vfg4i3agmffb1riibk";
+      rev = "1507838ee67f9b298def89cbfc404a0fee4a4b8c";
+      sha256 = "0fkwhyywjhh2r6c8534kvfn3shv3rjvcc53wm2pz3yqk73b6r2c9";
     };
     meta.homepage = "https://github.com/junegunn/gv.vim/";
   };
@@ -3120,11 +3408,11 @@ final: prev:
 
   hologram-nvim = buildVimPluginFrom2Nix {
     pname = "hologram.nvim";
-    version = "2022-03-13";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "edluffy";
       repo = "hologram.nvim";
-      rev = "7bd3ffb073dde94c8d86c1b49c47ef9d2f2bc605";
+      rev = "d6d3ebe931529681c99aff18bc4d4c2487867e06";
       sha256 = "0hld4cr09bd0y4k9yz1lls5dqdak605zf5rnv75zi5scbgwly19c";
     };
     meta.homepage = "https://github.com/edluffy/hologram.nvim/";
@@ -3144,24 +3432,24 @@ final: prev:
 
   hop-nvim = buildVimPluginFrom2Nix {
     pname = "hop.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "phaazon";
       repo = "hop.nvim";
-      rev = "03675eba34d416dd22ad49b2d0e52b6113b434ad";
-      sha256 = "1aaniq2qd59n126v6j11gsl39c9h7nq0x2hidwpdz81yhas97ix2";
+      rev = "a3cf6684bcb9fc974609ae81424f285f05280d90";
+      sha256 = "0inrri38bkxsi936z2xa8n9lvzm9b7vl2wajyp8i6wr4byhprml3";
     };
     meta.homepage = "https://github.com/phaazon/hop.nvim/";
   };
 
   hotpot-nvim = buildVimPluginFrom2Nix {
     pname = "hotpot.nvim";
-    version = "2022-05-31";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "hotpot.nvim";
-      rev = "21258d4194a606d8d53bf68d06cc25457b2e8449";
-      sha256 = "0ily343jzx9ra2mxp1flmshsl5bara0wx10fgyrrps1cfag383jm";
+      rev = "104aa65f9155d34629c9623d5dac39b5b2ad555c";
+      sha256 = "0m0w69mmy471c2axr8n15c8spd7w8zdb0ri2cnf571kpmb68szxr";
     };
     meta.homepage = "https://github.com/rktjmp/hotpot.nvim/";
   };
@@ -3216,12 +3504,12 @@ final: prev:
 
   impatient-nvim = buildVimPluginFrom2Nix {
     pname = "impatient.nvim";
-    version = "2022-06-09";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "impatient.nvim";
-      rev = "7821524b7fefb02af8b8e4c4745532b039ebc8de";
-      sha256 = "1nvx2b4qr55dxr9nf641flp7adcad3zp3dlwrb1zc7ay9m5ylg2w";
+      rev = "969f2c5c90457612c09cf2a13fee1adaa986d350";
+      sha256 = "10nlz4hq1bqjsnj9pkadi3xjj74wn36f2vr66hqp7wm2z7i5zbq3";
     };
     meta.homepage = "https://github.com/lewis6991/impatient.nvim/";
   };
@@ -3445,12 +3733,12 @@ final: prev:
 
   kanagawa-nvim = buildVimPluginFrom2Nix {
     pname = "kanagawa.nvim";
-    version = "2022-05-19";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "rebelot";
       repo = "kanagawa.nvim";
-      rev = "a6db77965a27ca893ea693d69cc3c152c000a627";
-      sha256 = "1asq6a2mia695gmwa81ix4ijna8p9z8mifnqksnlk1kslz68bmdp";
+      rev = "76df2251e813fdec244b2b593be62accea930119";
+      sha256 = "0cnrnf44gm51jpmkf8kx9zfk6qxcg7725aav31n2w81zm1rr8d2s";
     };
     meta.homepage = "https://github.com/rebelot/kanagawa.nvim/";
   };
@@ -3517,24 +3805,24 @@ final: prev:
 
   lazygit-nvim = buildVimPluginFrom2Nix {
     pname = "lazygit.nvim";
-    version = "2022-05-10";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "lazygit.nvim";
-      rev = "1f9f372b9fc137b8123d12a78c22a26c0fa78f0a";
-      sha256 = "1s4bpi7i86246p28pjk99rv1qj1gp7l7zwfch0f23nwnggm8s6pm";
+      rev = "9c73fd69a4c1cb3b3fc35b741ac968e331642600";
+      sha256 = "0mij8mrh7fmynhz7d3i11bbsvykf2pdp3ldk8w0sbi15cgfp8fr4";
     };
     meta.homepage = "https://github.com/kdheepak/lazygit.nvim/";
   };
 
   lean-nvim = buildVimPluginFrom2Nix {
     pname = "lean.nvim";
-    version = "2022-05-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "Julian";
       repo = "lean.nvim";
-      rev = "2be99e3fa33ab24beb035ed46c51b353fc373cd5";
-      sha256 = "0235cc6wcir4qgv9yksrj3ycd3w44w2gkb1zn0yljd5ygi3xp2mz";
+      rev = "9abfeae95ae8f51a21e384b97e006f139aeb4333";
+      sha256 = "0lcxjr3n5g55i5brw0skvy9m1kp64wggah5j97mcl0r9x4h508lv";
     };
     meta.homepage = "https://github.com/Julian/lean.nvim/";
   };
@@ -3577,12 +3865,12 @@ final: prev:
 
   lexima-vim = buildVimPluginFrom2Nix {
     pname = "lexima.vim";
-    version = "2022-06-09";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "cohama";
       repo = "lexima.vim";
-      rev = "905c14e9b701cea1f05db755398ef0060f2c1fcc";
-      sha256 = "0bv7fnbb4505ckfbd37h9gl1ss2jgargcf14b6kcx620xcw2adnn";
+      rev = "f06d2fa627c66689ec0ef68fe95765f0af0ded88";
+      sha256 = "00d27f9h4s83c1bsqskv48fhcyd2yf1fn7bpzqgqipbdsj7n04hn";
     };
     meta.homepage = "https://github.com/cohama/lexima.vim/";
   };
@@ -3685,12 +3973,12 @@ final: prev:
 
   lightspeed-nvim = buildVimPluginFrom2Nix {
     pname = "lightspeed.nvim";
-    version = "2022-05-13";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "ggandor";
       repo = "lightspeed.nvim";
-      rev = "c5b93fc1d76a708cb698417326e04f4786a38d90";
-      sha256 = "0lgk9i240mgzf7f3j3z93dkj00fi3rypn79zc60wqdyzhpg4r4lm";
+      rev = "8fb5ebb2c18db13bc17556376526068dce0803b5";
+      sha256 = "1mrj4x0bd68qp2g4hsmxnqr1dfv5d7c2kajkir8q78pq2csdci8j";
     };
     meta.homepage = "https://github.com/ggandor/lightspeed.nvim/";
   };
@@ -3757,12 +4045,12 @@ final: prev:
 
   litee-filetree-nvim = buildVimPluginFrom2Nix {
     pname = "litee-filetree.nvim";
-    version = "2022-05-21";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "ldelossa";
       repo = "litee-filetree.nvim";
-      rev = "92aa9f0f1fcda8cf1bca9f5ea296c4af74ba3928";
-      sha256 = "1j9sgsia0w8cmkhd1qm59f0d2abh7rxwkl0nlsqcg9b1k0naqiay";
+      rev = "3d3447816beea47ba93753afa7b717f5deb8a26c";
+      sha256 = "0p4wp53lpm9awkbf6cwzxzxjbvqf5r272hlygbiwhv048lbz26xk";
     };
     meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/";
   };
@@ -3852,24 +4140,24 @@ final: prev:
 
   lsp_signature-nvim = buildVimPluginFrom2Nix {
     pname = "lsp_signature.nvim";
-    version = "2022-05-26";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ray-x";
       repo = "lsp_signature.nvim";
-      rev = "9ccee20602a10843e3ea3ebc2536dfdcc6cee9a3";
-      sha256 = "1l5naxm1mx8l3xwiqrm60w0avsbhhpxnbr4sgqpnmigb9p2150ip";
+      rev = "49837977e210959c552bf357dc40ce18fadca501";
+      sha256 = "07rywxx31wqxnw8i4irl2mq8di5dwj12bv0vqwi80vxhpvjqn1jk";
     };
     meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/";
   };
 
   lspcontainers-nvim = buildVimPluginFrom2Nix {
     pname = "lspcontainers.nvim";
-    version = "2022-05-30";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "lspcontainers";
       repo = "lspcontainers.nvim";
-      rev = "3c9d2156a447eb111ec60f4358768eb7510c5d0d";
-      sha256 = "043ylgpzl1ahcf62s6m0y65ddwlxcw79qksqr2304c4vhzv5sv8w";
+      rev = "ed5ee65f7c71a7963b18cfd1644134f1a65b3d4b";
+      sha256 = "01sh8jawp8k73l17zvs374pmciyjqqgll89bb228jls9vhqvwkdr";
     };
     meta.homepage = "https://github.com/lspcontainers/lspcontainers.nvim/";
   };
@@ -3888,12 +4176,12 @@ final: prev:
 
   lspsaga-nvim = buildVimPluginFrom2Nix {
     pname = "lspsaga.nvim";
-    version = "2022-06-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "lspsaga.nvim";
-      rev = "e4beaeff66ae4f70d0b67fe045b70d78780bb947";
-      sha256 = "1in3yhbr535xrzgnm6n8623xgqm73djphv2xnd1q84psr1lrkzb7";
+      rev = "b4f345998fba6c894d5de3aa42cb71a71e6c6ee9";
+      sha256 = "0bxkrjmf56axdhzdnw58dv1i7yqsp57yj675lmmp2agnfifmfvm9";
     };
     meta.homepage = "https://github.com/tami5/lspsaga.nvim/";
   };
@@ -3924,24 +4212,24 @@ final: prev:
 
   lualine-nvim = buildVimPluginFrom2Nix {
     pname = "lualine.nvim";
-    version = "2022-05-30";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "nvim-lualine";
       repo = "lualine.nvim";
-      rev = "3362b28f917acc37538b1047f187ff1b5645ecdd";
-      sha256 = "0pfkh7zhnwhbfdcild5vayymw4vqzcfb31nq1y33pk1zlvpwxksv";
+      rev = "5113cdb32f9d9588a2b56de6d1df6e33b06a554a";
+      sha256 = "07npk6x4ljq7f3wfcs3liaxpn23x4gdxr5jq8vglhd1xj3l99mh5";
     };
     meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/";
   };
 
   luasnip = buildVimPluginFrom2Nix {
     pname = "luasnip";
-    version = "2022-05-28";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "l3mon4d3";
       repo = "luasnip";
-      rev = "52f4aed58db32a3a03211d31d2b12c0495c45580";
-      sha256 = "0drc847m55xwiha1wa2ykd5cwynmvd5ik2sys9v727fb4fbqmpa0";
+      rev = "a12441e0598e93e67235eba67c8e6fbffc896f06";
+      sha256 = "055y9bm8npn8n1xysk83l7ghf0760f8037jm32zf9fc8zk1ki98d";
     };
     meta.homepage = "https://github.com/l3mon4d3/luasnip/";
   };
@@ -3960,12 +4248,12 @@ final: prev:
 
   lush-nvim = buildVimPluginFrom2Nix {
     pname = "lush.nvim";
-    version = "2022-05-30";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "rktjmp";
       repo = "lush.nvim";
-      rev = "aa4eea49179852376fb9e5716aa5d03d4707373b";
-      sha256 = "1xb6pc96jq9haa02h6zmp5gaqq95yxlqnniz5f31554vrhab51kd";
+      rev = "6923ccef17c5276bc5d3cca907082e19ee165d55";
+      sha256 = "0jyq8dszbncrqfbsajbwb3j59jj8gyngi2nmz0hg902kaif4cjib";
     };
     meta.homepage = "https://github.com/rktjmp/lush.nvim/";
   };
@@ -3994,7 +4282,7 @@ final: prev:
     meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/";
   };
 
-  marks-nvim = buildNeovimPluginFrom2Nix {
+  marks-nvim = buildVimPluginFrom2Nix {
     pname = "marks.nvim";
     version = "2022-05-13";
     src = fetchFromGitHub {
@@ -4020,12 +4308,12 @@ final: prev:
 
   material-nvim = buildVimPluginFrom2Nix {
     pname = "material.nvim";
-    version = "2022-05-26";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "marko-cerovac";
       repo = "material.nvim";
-      rev = "f24cc6cf1dcd34350769b9cb28254b3f28973cf7";
-      sha256 = "1sgpips6s2rxb2vnm6zbqmggra8qbb63nws1y1c60rqw249dw513";
+      rev = "33d764439816ad80ded0f60b4bd8c038c9f96f43";
+      sha256 = "154hhvh44408m8n7vy9js7xakqv62qh0m8ffnvb65w63k1fjmwhs";
     };
     meta.homepage = "https://github.com/marko-cerovac/material.nvim/";
   };
@@ -4044,24 +4332,24 @@ final: prev:
 
   mini-nvim = buildVimPluginFrom2Nix {
     pname = "mini.nvim";
-    version = "2022-06-02";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "echasnovski";
       repo = "mini.nvim";
-      rev = "6adaf4c42455c093f00d0df3882ab48838423a57";
-      sha256 = "0198f7818m58h2bxgdnfnx5nm7vxi2psssx105dn6ndg55yf2qsx";
+      rev = "cc8fb168b95620ec1611916a6d2a74e6a5cdcbdb";
+      sha256 = "1v7j8s19r20ljlyha9d10vpaarxlqsfn6ns4qc2p3z2ihbcaapq5";
     };
     meta.homepage = "https://github.com/echasnovski/mini.nvim/";
   };
 
   minimap-vim = buildVimPluginFrom2Nix {
     pname = "minimap.vim";
-    version = "2022-05-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "wfxr";
       repo = "minimap.vim";
-      rev = "5d44fe7a3a5f7041c4220a71e8fe83d8c8498042";
-      sha256 = "04rqv8c5g1fs8pymlf2fcbm09k64bvpiqmjilf59m843vkvgk1xf";
+      rev = "a9f47afe1032d119a1ceff2714d47e4055564d07";
+      sha256 = "1ihx2vhrwyj3zmhnzwdcq54kygm5zic14ccyld995s7vjc4d15ig";
     };
     meta.homepage = "https://github.com/wfxr/minimap.vim/";
   };
@@ -4404,12 +4692,12 @@ final: prev:
 
   neogit = buildVimPluginFrom2Nix {
     pname = "neogit";
-    version = "2022-06-01";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "TimUntersberger";
       repo = "neogit";
-      rev = "441c23d355b77f4067a1ad018c5dba64efd7ff7f";
-      sha256 = "0yay92x3jmvpgqhx0hv0w19fjisakmmdzd286m656v5g26hmfxj1";
+      rev = "2b33d2edba011799c496a2dc7c77ebbe1b3c5b76";
+      sha256 = "10si9k7ybf1spw5jf8iizisx5xivzljk12ixarjrx359d9nzbi46";
     };
     meta.homepage = "https://github.com/TimUntersberger/neogit/";
   };
@@ -4464,23 +4752,23 @@ final: prev:
 
   neorg = buildVimPluginFrom2Nix {
     pname = "neorg";
-    version = "2022-06-07";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-neorg";
       repo = "neorg";
-      rev = "c0ebefa516aa9e93431f0a55e033db0dec072857";
-      sha256 = "0x9qpybjj7h6b6l10bkfmwf3qn54fcbbb5spx8n1hkny40npvnn5";
+      rev = "efc10f915ec53bbc8179ae591397b61aecf8f393";
+      sha256 = "0cdrpmlx9riz1gkpgfnnk1hry19l2iggdkmf6c1zsdmbjs56c45s";
     };
     meta.homepage = "https://github.com/nvim-neorg/neorg/";
   };
 
   neoscroll-nvim = buildVimPluginFrom2Nix {
     pname = "neoscroll.nvim";
-    version = "2022-01-13";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "karb94";
       repo = "neoscroll.nvim";
-      rev = "07242b9c29eed0367cb305d41851b2e04de9052e";
+      rev = "71c8fadd60362383e5e817e95f64776f5e2737d8";
       sha256 = "1xcj3dmrcnqrk2dzzr137n0g0crfyg3zk3220202v6b4vylairnh";
     };
     meta.homepage = "https://github.com/karb94/neoscroll.nvim/";
@@ -4524,12 +4812,12 @@ final: prev:
 
   neovim-ayu = buildVimPluginFrom2Nix {
     pname = "neovim-ayu";
-    version = "2022-06-05";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "Shatur";
       repo = "neovim-ayu";
-      rev = "621b5eeaf9b5c1b7affb327df3889f869b3c2893";
-      sha256 = "172pxda6168a3b6xx2ba8njq72y3y5bybg5a983zncxvn00qpi9a";
+      rev = "ad1e6b8cc25062ee426cd8690d28f82cfe840f58";
+      sha256 = "1khn5kvmjh42i17hsvjs03bz4523kvshdw2mwa5g4jn7292lf4z8";
     };
     meta.homepage = "https://github.com/Shatur/neovim-ayu/";
   };
@@ -4584,12 +4872,12 @@ final: prev:
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2021-10-29";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "preservim";
       repo = "nerdtree";
-      rev = "eed488b1cd1867bd25f19f90e10440c5cc7d6424";
-      sha256 = "0hlyn2l9ppjn92zaiw51i6d15li15z5083m13m0710giqx05qrak";
+      rev = "fc85a6f07c2cd694be93496ffad75be126240068";
+      sha256 = "02z32hrh4ykv4waq22y9ng8hwxxm8s5f2kxqm57pkixyy6b8zvzi";
     };
     meta.homepage = "https://github.com/preservim/nerdtree/";
   };
@@ -4740,24 +5028,24 @@ final: prev:
 
   nui-nvim = buildVimPluginFrom2Nix {
     pname = "nui.nvim";
-    version = "2022-05-06";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "MunifTanjim";
       repo = "nui.nvim";
-      rev = "abdbfab89f307151db83b1a5147cd390ef27ff99";
-      sha256 = "0z49sfnsr7hmfr4vrd82f1m6kvswfqq31n4fsdmjy9h4qmjb0w5f";
+      rev = "0f590b762416bcf2c93621f77a21aa8b8e23d7d1";
+      sha256 = "16z5fqw606ngkbvscw2cpxwm3lki5igqkslyc0hxdagnwiqm1p7p";
     };
     meta.homepage = "https://github.com/MunifTanjim/nui.nvim/";
   };
 
   null-ls-nvim = buildVimPluginFrom2Nix {
     pname = "null-ls.nvim";
-    version = "2022-06-09";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "jose-elias-alvarez";
       repo = "null-ls.nvim";
-      rev = "5d5cba15594c1b093a2177b339f34b3e3468fb46";
-      sha256 = "0pr8xxcsv6aahgcfqls3sp5k58dsq8bgvdhh8b6zsmrpaxsh3rz3";
+      rev = "ff40739e5be6581899b43385997e39eecdbf9465";
+      sha256 = "1snnh6fsn89fx7l5bjbfg1kh3cbadg2qg1rin889f4xka1yqa4x6";
     };
     meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/";
   };
@@ -4800,12 +5088,12 @@ final: prev:
 
   nvim-autopairs = buildVimPluginFrom2Nix {
     pname = "nvim-autopairs";
-    version = "2022-06-09";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "windwp";
       repo = "nvim-autopairs";
-      rev = "84cde3547e9a8b16db0bfe523e98e19b7be5148b";
-      sha256 = "0hkfa28lcldacsxfccp99wbp42qp3cxffh5rg5s2brkkr3xdp3yl";
+      rev = "4a95b3982be7397cd8e1370d1a09503f9b002dbf";
+      sha256 = "18vn3wy83nscd0znagq9gw7bzf9ljkqiny04xbk5p2l85w4xya7k";
     };
     meta.homepage = "https://github.com/windwp/nvim-autopairs/";
   };
@@ -4822,7 +5110,7 @@ final: prev:
     meta.homepage = "https://github.com/RRethy/nvim-base16/";
   };
 
-  nvim-biscuits = buildNeovimPluginFrom2Nix {
+  nvim-biscuits = buildVimPluginFrom2Nix {
     pname = "nvim-biscuits";
     version = "2022-05-31";
     src = fetchFromGitHub {
@@ -4836,12 +5124,12 @@ final: prev:
 
   nvim-bqf = buildVimPluginFrom2Nix {
     pname = "nvim-bqf";
-    version = "2022-06-06";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-bqf";
-      rev = "1a58f72ac731a3cf17708301ddf094c2033ebc4e";
-      sha256 = "0iy4kfd7a5pmsr63gjaplpxgw4nsrhsric7r3dhl3zisdzpn9kzm";
+      rev = "d4bc26ce482bd980fb90b7171fe7dece7411b01b";
+      sha256 = "05m1607rycqfwd23gr92ds5bkvcr68cjdpqxzma5wrac0cssdx6x";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/";
   };
@@ -4872,12 +5160,12 @@ final: prev:
 
   nvim-cmp = buildVimPluginFrom2Nix {
     pname = "nvim-cmp";
-    version = "2022-06-09";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "hrsh7th";
       repo = "nvim-cmp";
-      rev = "15c7bf7c0dfb7c75eb526c53f9574633c13dc22d";
-      sha256 = "0fncx8cr915p5wxjb2wqmc5l3p1mjy0vwmkik4alz422c9zh436z";
+      rev = "df6734aa018d6feb4d76ba6bda94b1aeac2b378a";
+      sha256 = "0i6icap7x0p8f6i0vgrnqz2rhwc05qgsiflwndmca5dxarmxysxx";
     };
     meta.homepage = "https://github.com/hrsh7th/nvim-cmp/";
   };
@@ -4968,24 +5256,24 @@ final: prev:
 
   nvim-dap = buildVimPluginFrom2Nix {
     pname = "nvim-dap";
-    version = "2022-06-09";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-dap";
-      rev = "8092586db723beb41312f288e38a7d8edc6459d9";
-      sha256 = "01rf6jl4b9amhkdjw8ayyx55njmklrbyb98kf4ybbcsgdjj587y7";
+      rev = "014ebd53612cfd42ac8c131e6cec7c194572f21d";
+      sha256 = "0qp15ihgwxamnly9ng6qmf051rz6yjg86p00dz39ffy02f8fvr60";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-dap/";
   };
 
   nvim-dap-ui = buildVimPluginFrom2Nix {
     pname = "nvim-dap-ui";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-dap-ui";
-      rev = "d76d6594374fb54abf2d94d6a320f3fd6e9bb2f7";
-      sha256 = "1yibykhd0kilzz67rmn392l27mmjmrcw62vmcilmyldnymxlqg85";
+      rev = "52f4840cb95e6638f18a74b71b536c3bd12e9fd8";
+      sha256 = "1vbhmz5hkgbb9z03g1552wbmzmnfgyr3x45qhrlnv50fkl2rrj8v";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
   };
@@ -5040,24 +5328,24 @@ final: prev:
 
   nvim-gdb = buildVimPluginFrom2Nix {
     pname = "nvim-gdb";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sakhnik";
       repo = "nvim-gdb";
-      rev = "713e333d3d5cecaaee20c1e4d55fb5a344b5ca2e";
-      sha256 = "19jm1i5z1y3bfyp92rwjmbxjalhp3anbmfafhrp10f7sd3mbcxhf";
+      rev = "c617a18561f710c22f521f7efd05c1374a1b8073";
+      sha256 = "1rk2z7ibrsh9gqrxisf13ybx846rxhlrx6s3piabhhr5x7m3h79n";
     };
     meta.homepage = "https://github.com/sakhnik/nvim-gdb/";
   };
 
   nvim-gps = buildVimPluginFrom2Nix {
     pname = "nvim-gps";
-    version = "2022-06-09";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "smiteshp";
       repo = "nvim-gps";
-      rev = "c1e561d2937048174916667af0349bc4b7b3d2e9";
-      sha256 = "0g2r45yx2vx2j7yx5n2gc4v36629vz0ngaz3q1hmwpcr15qxbb3v";
+      rev = "be4bb5b903af81f04b316425b8ba8142504d023f";
+      sha256 = "0n8a0lnf8jbfds29mk5xxk68cp7i4rb8xsfa1qk50i662l570knn";
     };
     meta.homepage = "https://github.com/smiteshp/nvim-gps/";
   };
@@ -5076,12 +5364,12 @@ final: prev:
 
   nvim-hlslens = buildVimPluginFrom2Nix {
     pname = "nvim-hlslens";
-    version = "2022-04-03";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "kevinhwang91";
       repo = "nvim-hlslens";
-      rev = "1944094111217db8d40aac697ffc71f16136d9ec";
-      sha256 = "0f0lqldrgzi72qrafzwqk3i71v74xvsrhgrfnidnbnvd3jc7sa0b";
+      rev = "6cd78e73b28af4618cf67a470e53e13d59899914";
+      sha256 = "0g2xvgw1bxz76hil5iiy37gpv69xjqy2s2q79lqc1pcr54c3392i";
     };
     meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/";
   };
@@ -5100,12 +5388,12 @@ final: prev:
 
   nvim-jdtls = buildVimPluginFrom2Nix {
     pname = "nvim-jdtls";
-    version = "2022-06-02";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-jdtls";
-      rev = "72a40cdcde653df645644375307b4ea0cb658281";
-      sha256 = "180v9810bmnh9xf74sq7nrgv98iva5xpka9yyhqp7n9li7c7xp93";
+      rev = "3a148dac526396678f141a033270961d0d9ccb88";
+      sha256 = "1fbxgssd9s0vfa6w00hhvqzmc48dgk271z0rchnch0b317q88vr2";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/";
   };
@@ -5160,12 +5448,12 @@ final: prev:
 
   nvim-lint = buildVimPluginFrom2Nix {
     pname = "nvim-lint";
-    version = "2022-06-08";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "mfussenegger";
       repo = "nvim-lint";
-      rev = "28a5f3e24ccc9f70026629e9b87670ab893a870f";
-      sha256 = "11dhxa18djf2rmbnrfm60z9pcmjnblha62yl6sc8d137fj87jppp";
+      rev = "14f12733599d8feb4b3c6b9fc9e945e0bede59c2";
+      sha256 = "1prhnjk78pl3cvaydv9i4jyz8j8y7za0lwkyhwax1n0qgv1m9kq6";
     };
     meta.homepage = "https://github.com/mfussenegger/nvim-lint/";
   };
@@ -5184,12 +5472,12 @@ final: prev:
 
   nvim-lspconfig = buildVimPluginFrom2Nix {
     pname = "nvim-lspconfig";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "nvim-lspconfig";
-      rev = "4eac16e87f24ad26738e632446e29766e87141ae";
-      sha256 = "0shpjy5p316yxs6d8028s93z1i7rv5fafpr8vk2zvgrhnvza6q1k";
+      rev = "c55e830aa18bd15f36f7534947ec7471f2b43af7";
+      sha256 = "0625rsaw5ba92fszk5bvkcg5misj7bacrlma9k8i09hbg81f3w28";
     };
     meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
   };
@@ -5208,24 +5496,24 @@ final: prev:
 
   nvim-luapad = buildVimPluginFrom2Nix {
     pname = "nvim-luapad";
-    version = "2022-04-10";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "rafcamlet";
       repo = "nvim-luapad";
-      rev = "3f0d7453987c7bef87d55b8051f252578853399c";
-      sha256 = "0h97hqbx7kbwkqhbq76k5l6rcr2bmdm17g0dps2g82lizmyhpfk0";
+      rev = "171e204ed65dc9308833ff80026fc6b7cec22825";
+      sha256 = "1k7zly9xpdrxf6221w2x898fdapagzwjcf8sf6agis7flqhp3j8f";
     };
     meta.homepage = "https://github.com/rafcamlet/nvim-luapad/";
   };
 
   nvim-metals = buildVimPluginFrom2Nix {
     pname = "nvim-metals";
-    version = "2022-06-02";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "scalameta";
       repo = "nvim-metals";
-      rev = "6738fe3c0e2142de01c753f8b7c18281d11488ce";
-      sha256 = "19k330fv68z9icdlbf6bjn8ckwrjkdn9k9hl4r4ss95lm7sfgzd8";
+      rev = "58ecfb61e4617139d3954138ccccc4c0befa89e0";
+      sha256 = "0qcz1ijm62ys0d7gzbgq9h537pcfyzqmnmm3gv6gxzvfbqr4mcwq";
     };
     meta.homepage = "https://github.com/scalameta/nvim-metals/";
   };
@@ -5256,12 +5544,12 @@ final: prev:
 
   nvim-notify = buildVimPluginFrom2Nix {
     pname = "nvim-notify";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "nvim-notify";
-      rev = "8252aaedfd57ad010d9fee2f620924eac063537d";
-      sha256 = "1p7hwqsxryqc25mazdxvl9q7b1w57qn1sfqg5p9ksln7zh9qs44l";
+      rev = "7caeaaef257ecbe95473ec79e5a82757b544f1fd";
+      sha256 = "1k4p358hasbcwihx4prm7arz3frvj0s17imqx865nm2bsh0gpf3j";
     };
     meta.homepage = "https://github.com/rcarriga/nvim-notify/";
   };
@@ -5290,14 +5578,26 @@ final: prev:
     meta.homepage = "https://github.com/dstein64/nvim-scrollview/";
   };
 
+  nvim-snippy = buildVimPluginFrom2Nix {
+    pname = "nvim-snippy";
+    version = "2022-05-29";
+    src = fetchFromGitHub {
+      owner = "dcampos";
+      repo = "nvim-snippy";
+      rev = "b13352f259c383cb1c921a1d5f2f98b072e53539";
+      sha256 = "0cs0ir8xhivkqij25y4gf6zddq3c4j0qcdmv81k8lr1awfbr3017";
+    };
+    meta.homepage = "https://github.com/dcampos/nvim-snippy/";
+  };
+
   nvim-solarized-lua = buildVimPluginFrom2Nix {
     pname = "nvim-solarized-lua";
-    version = "2022-05-13";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "ishan9299";
       repo = "nvim-solarized-lua";
-      rev = "a6af3a33cfe78c97f3adb2d86d3165bb25fb0ec3";
-      sha256 = "1z7wi72dqrw0fgsnm0s7zmxb72cq564dqvvpl1cqgizf4ab2a42a";
+      rev = "faba49ba6b53759b89fc34d12ed7319f8c2e27e0";
+      sha256 = "1kfbad6v7azk8lhsjpsli2ba2x5wncjac35iazjhdx6dbv0gw90l";
     };
     meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/";
   };
@@ -5328,36 +5628,36 @@ final: prev:
 
   nvim-tree-lua = buildVimPluginFrom2Nix {
     pname = "nvim-tree.lua";
-    version = "2022-06-07";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kyazdani42";
       repo = "nvim-tree.lua";
-      rev = "1caca6285427ebd2b4f0eb10f4d1ae3956ff09c0";
-      sha256 = "13m893pjn816fp5b0s423vbgk5f6fdhbiqwbbxzz2311ijg72nhh";
+      rev = "79258f1d670277016523e13c0a88daa25070879f";
+      sha256 = "1wrq3g6n82lyxzgbkfgpsi908ghwzp773fslrfyxk3mwgvdj396s";
     };
     meta.homepage = "https://github.com/kyazdani42/nvim-tree.lua/";
   };
 
   nvim-treesitter = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter";
-    version = "2022-06-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter";
-      rev = "a3cef7881ca8e2b8843a4500df44f94311bcc3df";
-      sha256 = "1yfhc1yhrnv7k0l1p38zydl2xrjfzbwixz0iawpmybw5vmnyl0vi";
+      rev = "8eccd820afb012df6ae22678aa01d4053ab84365";
+      sha256 = "0465y4c7i33rn5yq921viik1kmv22pii9fr7nm678hkmhwi2qhwx";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
   };
 
   nvim-treesitter-context = buildVimPluginFrom2Nix {
     pname = "nvim-treesitter-context";
-    version = "2022-06-09";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "nvim-treesitter";
       repo = "nvim-treesitter-context";
-      rev = "81116dc03abf35ca99c7910f9f779961042dea12";
-      sha256 = "150r80ik8i11a5dxn71j55gmgpfivlfmnvkqdxjwz6c14asi4ycj";
+      rev = "b05cd9cbb972f48b583b581615a046f814ccaca0";
+      sha256 = "07pxlms3j4kcd7ybmyjjkvjkkjxz084g3lm6kfv015pnca78wjj2";
     };
     meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/";
   };
@@ -5424,12 +5724,12 @@ final: prev:
 
   nvim-ts-rainbow = buildVimPluginFrom2Nix {
     pname = "nvim-ts-rainbow";
-    version = "2022-05-28";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "p00f";
       repo = "nvim-ts-rainbow";
-      rev = "18cb3a45e0ff843d48e8637a36b9cc6cd89d71b0";
-      sha256 = "0w8gzxps0rn20cr92ib5zk3xw6l2i8032081r0v34rry1xahdam6";
+      rev = "837167f63445821c55e6eed9dbdac1b0b29afa92";
+      sha256 = "104rvha3bqsn5rnrii0z023x7a4ph3rljlmqjgaki27crfnxx8sj";
     };
     meta.homepage = "https://github.com/p00f/nvim-ts-rainbow/";
   };
@@ -5520,12 +5820,12 @@ final: prev:
 
   octo-nvim = buildVimPluginFrom2Nix {
     pname = "octo.nvim";
-    version = "2022-06-08";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "pwntester";
       repo = "octo.nvim";
-      rev = "71d4dcfe56d4c45b7f1a1520d65ef5a86d2bc9bd";
-      sha256 = "020k4nni9kqq4sqh86rsca3vkf49b56pllxk81yriwyazn8m3y2r";
+      rev = "f56b3f81661925e6487c2483ca8350c7287c70d1";
+      sha256 = "005vxvy87hfmsvg0ksmc035md99b0qykgzlwj4nhcvv1pwpjbazx";
     };
     meta.homepage = "https://github.com/pwntester/octo.nvim/";
   };
@@ -5556,12 +5856,12 @@ final: prev:
 
   onedark-nvim = buildVimPluginFrom2Nix {
     pname = "onedark.nvim";
-    version = "2022-06-09";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "navarasu";
       repo = "onedark.nvim";
-      rev = "52b1ebd80831dd1232b396b82a77fba977fb6e2c";
-      sha256 = "173y7gwwwf7wdd07kgs95p5iznl202p022vyzzwc4zz41z50zzpa";
+      rev = "af5595a5bf2358ef8611ab98f5e3c058b321c38f";
+      sha256 = "0sd2isramda96kmb7inif3n3dn2p5qrccw0b3apj6pwxf3ridsf5";
     };
     meta.homepage = "https://github.com/navarasu/onedark.nvim/";
   };
@@ -5580,12 +5880,12 @@ final: prev:
 
   onedarkpro-nvim = buildVimPluginFrom2Nix {
     pname = "onedarkpro.nvim";
-    version = "2022-05-26";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "olimorris";
       repo = "onedarkpro.nvim";
-      rev = "06e9020c4b014a56547dbea53163cdd1c6c0c1ec";
-      sha256 = "1biylhq7n0l7kac26ibv0zqwvfynqa1g3pn3qf9yz7ndrfqfwddk";
+      rev = "5d13f02a8ba579d68be02f877a8c38bac9ff17ed";
+      sha256 = "1f9p7crgkq68ql2ri8mjfkp5r6dhq9pmsl3073pg2hzgirb08fgl";
     };
     meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/";
   };
@@ -5628,24 +5928,24 @@ final: prev:
 
   orgmode = buildVimPluginFrom2Nix {
     pname = "orgmode";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "nvim-orgmode";
       repo = "orgmode";
-      rev = "d5907359eba50a9f0017043fb220d542e17c5e1f";
-      sha256 = "0wqwxh13vh1hxcajb6zw2js36264zab8mxjnr0bkxmk821h68rwb";
+      rev = "d3b95d2036d57f67a0f78ec975c7ef10e9134908";
+      sha256 = "0yfdfpqygk77rhbyi28makmghq58rzl5aah8lpqihr604j1l54z5";
     };
     meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
   };
 
   package-info-nvim = buildVimPluginFrom2Nix {
     pname = "package-info.nvim";
-    version = "2022-02-18";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "vuki656";
       repo = "package-info.nvim";
-      rev = "10de4d0d50ec1d4d26118c4aa067a9d09e370c9c";
-      sha256 = "1mhhff6knqqq6pgmd3w6vfljcig37yyxvmrvhb205y67igy3vcr2";
+      rev = "45e409c69063a057250833a747e52e2ff00dd722";
+      sha256 = "048rzckb35d4s96kmk6yhbv756yhhcv6kl7nc3y96w18qjjh5ymy";
     };
     meta.homepage = "https://github.com/vuki656/package-info.nvim/";
   };
@@ -5772,12 +6072,12 @@ final: prev:
 
   plenary-nvim = buildNeovimPluginFrom2Nix {
     pname = "plenary.nvim";
-    version = "2022-06-08";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "nvim-lua";
       repo = "plenary.nvim";
-      rev = "9c3239bc5f99b85be1123107f7290d16a68f8e64";
-      sha256 = "1d948hq5aa8wbr1lvpi3c54mlgh8z6yk25bfn4ckbs1g1giar8ih";
+      rev = "968a4b9afec0c633bc369662e78f8c5db0eba249";
+      sha256 = "05x9hnz960ljcb2psqycxgdmh99j36y16vbb9l92wjv5szkz37x5";
     };
     meta.homepage = "https://github.com/nvim-lua/plenary.nvim/";
   };
@@ -5881,12 +6181,12 @@ final: prev:
 
   purescript-vim = buildVimPluginFrom2Nix {
     pname = "purescript-vim";
-    version = "2021-04-21";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "purescript-contrib";
       repo = "purescript-vim";
-      rev = "d493b57406d2742f6f6c6545de5a3492f2e5b888";
-      sha256 = "1qnf8lg4a6xxn335z57nqb4yp7ij62yr408nbc8m6xwnznck3wa7";
+      rev = "af5fae0b43241e9fc3e0442782272728844bec3f";
+      sha256 = "05v81i4ialja4wq3rp1fy09zjh7rvwb6pjhig7zg9pfddd015pki";
     };
     meta.homepage = "https://github.com/purescript-contrib/purescript-vim/";
   };
@@ -6050,12 +6350,12 @@ final: prev:
 
   refactoring-nvim = buildVimPluginFrom2Nix {
     pname = "refactoring.nvim";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "theprimeagen";
       repo = "refactoring.nvim";
-      rev = "21b47bda407194fbe1f603256e101c26c0dbe589";
-      sha256 = "0ggd17mmvxpym4ablhy3s46yw9a3xavn9rzvla3j83skpmqyhmmk";
+      rev = "7328413fdafeff52731e5f4961a574ad2fa0837d";
+      sha256 = "07jwjcys9h2sjnh7vlf3rjjl254b7qh0axwck66d5hk0i7xviqhm";
     };
     meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/";
   };
@@ -6218,12 +6518,12 @@ final: prev:
 
   scrollbar-nvim = buildVimPluginFrom2Nix {
     pname = "scrollbar.nvim";
-    version = "2021-11-16";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "Xuyuanp";
       repo = "scrollbar.nvim";
-      rev = "590b23af866a32277cf803aca0fd770d5b39c2e7";
-      sha256 = "1dvlmmxykf3vyhyvv5aiqbz8fd7zvpw4xq1nxnf3wyj371caawaq";
+      rev = "bc97c132e8367efecb2ecb937d385e7dc04eb5a1";
+      sha256 = "14g2q9nzdh9ffp2b8z3sdicrn4xq3ksq8mjxdi7cm44rlfyzfs04";
     };
     meta.homepage = "https://github.com/Xuyuanp/scrollbar.nvim/";
   };
@@ -6399,12 +6699,12 @@ final: prev:
 
   sonokai = buildVimPluginFrom2Nix {
     pname = "sonokai";
-    version = "2022-05-31";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "sainnhe";
       repo = "sonokai";
-      rev = "c2f8a7259e4b67fb4d0242afababbb1dda3285a3";
-      sha256 = "1ni8b2b3cqqmi8lr4dh2f5bwnxwcdwqdjfvvds4m8jq2s3kql4bh";
+      rev = "e72e59d3e2cad8af17a1e2a0f6772ea56af32e2c";
+      sha256 = "0yw98fj4b7vm5p5kvzvpgnmlgc3p54gdh1znlhpz5jkq4r59ggsa";
     };
     meta.homepage = "https://github.com/sainnhe/sonokai/";
   };
@@ -6423,12 +6723,12 @@ final: prev:
 
   space-vim = buildVimPluginFrom2Nix {
     pname = "space-vim";
-    version = "2022-05-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "space-vim";
-      rev = "79f8ddcfe1312e48595d2aed3eae8c021137db2f";
-      sha256 = "1diqpkaspjcqlnbwpawh4yhls56776mndbskkcf7x69m1kfwkzip";
+      rev = "b5bd319aa4c7bede97ec1eaf1dffaf7fbc9aa8a8";
+      sha256 = "0hbxqs548z9zjjzizcz0g7h894sg4jyw97qwg8fahy0pvi976694";
     };
     meta.homepage = "https://github.com/liuchengxu/space-vim/";
   };
@@ -6471,12 +6771,12 @@ final: prev:
 
   spellsitter-nvim = buildVimPluginFrom2Nix {
     pname = "spellsitter.nvim";
-    version = "2022-06-02";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lewis6991";
       repo = "spellsitter.nvim";
-      rev = "430a25393abbf482bddf03c224cd5b8eeb27b5e1";
-      sha256 = "1cypvpyaarn9ckin2cgf2hpsq5qj517pz64imvyckzg22x9cf6yi";
+      rev = "c1b318f8b959e015f5cc7941624d1ca0f84705dd";
+      sha256 = "17v7scc6574afmjfhhzawpxhhh31fz118xzbjg1l8qnbdnb159bh";
     };
     meta.homepage = "https://github.com/lewis6991/spellsitter.nvim/";
   };
@@ -6532,12 +6832,12 @@ final: prev:
 
   sqlite-lua = buildVimPluginFrom2Nix {
     pname = "sqlite.lua";
-    version = "2022-06-07";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "tami5";
       repo = "sqlite.lua";
-      rev = "de2cc544127d6dfd7f6ff3d4960b21dd6db4f1dd";
-      sha256 = "1mj4m1fk9y4l6418zamiqln09dg2h4cw9k9bywv55gd735gwfapp";
+      rev = "1ed8bff0f7522bbcb79428f91a5cacacb3ae0331";
+      sha256 = "0ckvl97v1jhr7wrrmvvgbi23z5bl29ng7f0l7hvrmm5m6c4cpkny";
     };
     meta.homepage = "https://github.com/tami5/sqlite.lua/";
   };
@@ -6652,12 +6952,12 @@ final: prev:
 
   sved = buildVimPluginFrom2Nix {
     pname = "sved";
-    version = "2021-10-22";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "peterbjorgensen";
       repo = "sved";
-      rev = "2f98472720d0e0c7da5a93b4ab4574f75747f693";
-      sha256 = "070fzga0b039wjhfzb7s0s422kv3as7ifv94ma6vh62ml6zm6mpl";
+      rev = "7da91cb0eacdaae5e1a41722e95800c98d4ca675";
+      sha256 = "0rp5pklym8bnl1npgglh096i9ssrdbn2r99arh42sbdca71spbiw";
     };
     meta.homepage = "https://github.com/peterbjorgensen/sved/";
   };
@@ -6725,12 +7025,12 @@ final: prev:
 
   tabline-nvim = buildVimPluginFrom2Nix {
     pname = "tabline.nvim";
-    version = "2022-04-19";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "kdheepak";
       repo = "tabline.nvim";
-      rev = "2eb56826bf7b85b9090aff73a696e0e803bf89ae";
-      sha256 = "10fqssr8la7y54q7iz2kgx1axv2rwmv0mjvnz0yvadcfz80q2ksv";
+      rev = "5d76dc8616b4b7b892229cc05cd0f4cd0200077a";
+      sha256 = "0k9yk7drxbjfwjfqmg7iam2vaz05rk3shd5lap8qakwvayvas258";
     };
     meta.homepage = "https://github.com/kdheepak/tabline.nvim/";
   };
@@ -7003,12 +7303,12 @@ final: prev:
 
   telescope-project-nvim = buildVimPluginFrom2Nix {
     pname = "telescope-project.nvim";
-    version = "2022-04-28";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope-project.nvim";
-      rev = "4658d78523a5a005af80243f1d0b4e7e2a118dae";
-      sha256 = "0fpq6jfycl5hmz7ch5ris72qjabvhvbaj6wm9gwgl7ids99982p7";
+      rev = "8cd22b696e14b353fe8ea9648a03364cb56c39d4";
+      sha256 = "1qrk2i7yvvrqg4yjma1q6c26wdlapc60yriiqx5mhfam9xh28s24";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/";
   };
@@ -7087,12 +7387,12 @@ final: prev:
 
   telescope-nvim = buildVimPluginFrom2Nix {
     pname = "telescope.nvim";
-    version = "2022-06-06";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "nvim-telescope";
       repo = "telescope.nvim";
-      rev = "e6b69b1488c598ff7b461c4d9cecad57ef708f9b";
-      sha256 = "060149lbhsbn0vfdivng5pc48lnfhpjwsdc0ppvvvl45b5in7k27";
+      rev = "d88b44ddf14670cffa9fdb1eaca7a0429a973653";
+      sha256 = "11ahi16nd21p9413d3rdw25bgzjkp3k83p6a1jwka3pk15c87nl0";
     };
     meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
   };
@@ -7195,12 +7495,12 @@ final: prev:
 
   tlib_vim = buildVimPluginFrom2Nix {
     pname = "tlib_vim";
-    version = "2021-07-17";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "tomtom";
       repo = "tlib_vim";
-      rev = "70c4e222464020edc2809c932b488daaf891eeef";
-      sha256 = "1amx220nbh1s51z35pkhvl3110pbha5qj2rdgxvg8dbqha7py9fx";
+      rev = "223c696eab4a3a59a33352531e42c74c721510e7";
+      sha256 = "1x9s9ypk934lkqpcyvycij5803y1vz5i3q8p8di6d6jv04ylvgvl";
     };
     meta.homepage = "https://github.com/tomtom/tlib_vim/";
   };
@@ -7268,12 +7568,12 @@ final: prev:
 
   toggleterm-nvim = buildVimPluginFrom2Nix {
     pname = "toggleterm.nvim";
-    version = "2022-06-07";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "akinsho";
       repo = "toggleterm.nvim";
-      rev = "50f88d316261bfe56854cb75b9d092061c38b21e";
-      sha256 = "1cf6vqjcn5nk2ymjpflpxr9ic2k0y4bnxzy24n0q8vp05dp69qv2";
+      rev = "8f2e78d0256eba4896c8514aa150e41e63f7d5b2";
+      sha256 = "0mrjha2vadxc8n0q4kqq8x8xf03b2k0yksi68j6r1lbkd1i0rwmx";
     };
     meta.homepage = "https://github.com/akinsho/toggleterm.nvim/";
   };
@@ -7508,12 +7808,12 @@ final: prev:
 
   vifm-vim = buildVimPluginFrom2Nix {
     pname = "vifm.vim";
-    version = "2022-06-04";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "vifm";
       repo = "vifm.vim";
-      rev = "d2e2a1fbed196e3bb273fe87bbd821a7e80be298";
-      sha256 = "00jvhicwa9wmf1pbd4fi4423jh02x5i7h5bgi21avfgyfxrvlaaj";
+      rev = "8f8fd1731c614a76a41fda43b5405b35ffdae3a6";
+      sha256 = "1gh5pa754mfnh5nsayq6gf6daz3ysbghd85drj35692x6jz8fpif";
     };
     meta.homepage = "https://github.com/vifm/vifm.vim/";
   };
@@ -7988,12 +8288,12 @@ final: prev:
 
   vim-autoformat = buildVimPluginFrom2Nix {
     pname = "vim-autoformat";
-    version = "2022-06-08";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "vim-autoformat";
       repo = "vim-autoformat";
-      rev = "fc8eb893db0c3c7eb204066d1954a59bc78819b9";
-      sha256 = "0c8d84pgg6rck6pxm12w46k1smsaw0d83hs899ws78zcamamp7y2";
+      rev = "00df1ac5df05247238cb2ae2a0770b62209e3aa7";
+      sha256 = "11k6s5qzwd6fcd2hjr6p3w08yqfh0mrnpl3nkyfz8lf8jpd6ps1b";
     };
     meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/";
   };
@@ -8216,12 +8516,12 @@ final: prev:
 
   vim-clap = buildVimPluginFrom2Nix {
     pname = "vim-clap";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-clap";
-      rev = "181524923fe04c554e37fc5acab51545b2a4715e";
-      sha256 = "0355hn1v5k1j86k8bw61vjb84cbgsg214ax07l5jrfk5dzh1avcl";
+      rev = "48b7b60c6743f4bc82d3edf61978c1c593276cc2";
+      sha256 = "02sr55jqly1b8cllhaw124ig9q3p5m3v7s2vprfqrfyy3w681xfm";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-clap/";
   };
@@ -8276,12 +8576,12 @@ final: prev:
 
   vim-code-dark = buildVimPluginFrom2Nix {
     pname = "vim-code-dark";
-    version = "2022-05-27";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "tomasiser";
       repo = "vim-code-dark";
-      rev = "97ef6f96bd95c3dbd725946607e7290be0266153";
-      sha256 = "03f506y3gv1hx0y66xjpg1v0nli63fh1qrvp05dwjki2vdzxmz03";
+      rev = "caf254ffa59b91c41851024a58d1eaa806a81bc9";
+      sha256 = "0ympd38yf9wlm37sgamyxi8nal0k7imd173xxfp617sj7lrnnx5q";
     };
     meta.homepage = "https://github.com/tomasiser/vim-code-dark/";
   };
@@ -8480,36 +8780,36 @@ final: prev:
 
   vim-dadbod = buildVimPluginFrom2Nix {
     pname = "vim-dadbod";
-    version = "2022-06-03";
+    version = "2022-06-13";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dadbod";
-      rev = "c2495b008f1adce6d21745b2c4c576eecc985959";
-      sha256 = "1zj1bab5ck9k9c11cmyszmlnfw3sis79kmlag2a0c0p035rzsl35";
+      rev = "136d82e1884f86b9f9bbbcc88bab6d199928a46e";
+      sha256 = "1chbvrpykswcmph3yjpv17j5j47azvb90i1a4j0pwc2mmak6gnjq";
     };
     meta.homepage = "https://github.com/tpope/vim-dadbod/";
   };
 
   vim-dadbod-completion = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-completion";
-    version = "2022-03-06";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-completion";
-      rev = "1c60988abf17f426b87a1ce2de6b6eabfd5d6b2b";
-      sha256 = "0b6mgmaak6vh2adkzdh9s5b5js362hv2hg14zwrb5846cjpbs21i";
+      rev = "22ef15e7103b78850473b57ef48233aaec8d9f64";
+      sha256 = "1ibr1db06b9bxa7jnspix6wmf1z8fl3g5rrxskgfhfpdb2blwihm";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/";
   };
 
   vim-dadbod-ui = buildVimPluginFrom2Nix {
     pname = "vim-dadbod-ui";
-    version = "2022-05-02";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "kristijanhusak";
       repo = "vim-dadbod-ui";
-      rev = "7bd114b88da4bf8115bd85d70fb531e4b6d72eb7";
-      sha256 = "0mb74z2kr85wd17kbhf8qx02iciq31aqg7y12k1isvmxkv4i0hhw";
+      rev = "50cbfc825bd58081f916f989d7ae78e5320e858b";
+      sha256 = "0y2cnafw3ahxfvjc5g39nrpiwn502hp3xarnp8c3pg85hzf13jrc";
     };
     meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/";
   };
@@ -8924,12 +9224,12 @@ final: prev:
 
   vim-floaterm = buildVimPluginFrom2Nix {
     pname = "vim-floaterm";
-    version = "2022-06-03";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "voldikss";
       repo = "vim-floaterm";
-      rev = "875c404da92bb716fdfb33d4948277651ff345a9";
-      sha256 = "0gkbd8vvyiln3v1f0hgx34ixhbqda8ggivqfgpnb7vlx5j9za706";
+      rev = "e3f2d94d722603f8b65088ea1d7e0329951985bd";
+      sha256 = "0d7r5g1wrcbq6ahd3hbwpjw54qk8k471wm704cmpdlgfjbjxdfqf";
     };
     meta.homepage = "https://github.com/voldikss/vim-floaterm/";
   };
@@ -8996,12 +9296,12 @@ final: prev:
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2022-06-07";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "92c73bb0507338441733198d630a1fe5e7fdac3a";
-      sha256 = "0skxvlxnxcwj22qwh166i1kkn7iir3jndw1ixwvh3iipq46910zq";
+      rev = "8b39d29d947618913ba1db32de605a6335875b99";
+      sha256 = "0zmn09rh17zjq0pkf6nmmpwkchfvj8ycr2559ndjc5vdw8r10x70";
     };
     meta.homepage = "https://github.com/tpope/vim-fugitive/";
   };
@@ -9068,12 +9368,12 @@ final: prev:
 
   vim-git = buildVimPluginFrom2Nix {
     pname = "vim-git";
-    version = "2022-05-18";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-git";
-      rev = "0e571394d9c17026917235fc3df8f8d9184bc4d0";
-      sha256 = "11bifrm9b5i89yg94368npw0la57icw8v9074ry7rp5f5r3jg3k8";
+      rev = "5143bea9ed17bc32163dbe3ca706344d79507b9d";
+      sha256 = "02vk8lgl6zswg6bdg1qy4qrh47bwflil601z8i33yjx5q2qrq0ra";
     };
     meta.homepage = "https://github.com/tpope/vim-git/";
   };
@@ -9754,12 +10054,12 @@ final: prev:
 
   vim-ledger = buildVimPluginFrom2Nix {
     pname = "vim-ledger";
-    version = "2022-05-25";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "ledger";
       repo = "vim-ledger";
-      rev = "ca55491ce36f30263a56b0dbd2bcb4a26be34154";
-      sha256 = "0pamfqjxiqk7rs5cn8s81197f8rilr01ka11hpbzamflz9v2lz9c";
+      rev = "78fdcae8cab810892c82d555a63bdcd20b8e1397";
+      sha256 = "0wr56azflkjx4v7xw44c960byfcak7kjgkk9a482rj19iywk9141";
     };
     meta.homepage = "https://github.com/ledger/vim-ledger/";
   };
@@ -9862,12 +10162,12 @@ final: prev:
 
   vim-lsp = buildVimPluginFrom2Nix {
     pname = "vim-lsp";
-    version = "2022-05-27";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "prabirshrestha";
       repo = "vim-lsp";
-      rev = "9458f6e2d49112958499f0c82e1d6f18baa70248";
-      sha256 = "099rlqfw45gr4szi2f1zdzayrsw504ihqpn6a7byg5h89a617kwy";
+      rev = "74e458bc9c7532ff1959b2443a1d73494e3673b6";
+      sha256 = "15m00ihfka0nlvn86q6flmxcwxf64ahykh4g7x9gb030gr6miflp";
     };
     meta.homepage = "https://github.com/prabirshrestha/vim-lsp/";
   };
@@ -9898,12 +10198,12 @@ final: prev:
 
   vim-maktaba = buildVimPluginFrom2Nix {
     pname = "vim-maktaba";
-    version = "2022-04-22";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "google";
       repo = "vim-maktaba";
-      rev = "fe631a85b0a1e1a709a55ef0947c9c0813f41edb";
-      sha256 = "166fgfxh6k4v2ypzjmn6hicr92xgcsi5bi930f74xv5fzm0gw9l8";
+      rev = "80b47c5f636c0ed0915af378b47428a83346a699";
+      sha256 = "1fmq4zcx8shrkw1p2sjhncy3g7j4zka4rvr97jplf8fv40yqql1i";
     };
     meta.homepage = "https://github.com/google/vim-maktaba/";
   };
@@ -9946,12 +10246,12 @@ final: prev:
 
   vim-markdown-composer = buildVimPluginFrom2Nix {
     pname = "vim-markdown-composer";
-    version = "2022-05-04";
+    version = "2022-06-14";
     src = fetchFromGitHub {
       owner = "euclio";
       repo = "vim-markdown-composer";
-      rev = "5b79f425ebd28216d9aa472be3ba07cda41d9b24";
-      sha256 = "0i4m2x2cw604aczp1ijnrv0wvh1b9bxg9zh0zmf8kk7b00zc1k5c";
+      rev = "e6f99bc20cfcb277c63041b1f766e6d5940bcc76";
+      sha256 = "0ljv8cvca8nk91g67mnzip81say04b1wbj9bzcgzy8m6qkz1r2h3";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/euclio/vim-markdown-composer/";
@@ -10091,12 +10391,12 @@ final: prev:
 
   vim-mundo = buildVimPluginFrom2Nix {
     pname = "vim-mundo";
-    version = "2022-01-30";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "simnalamburt";
       repo = "vim-mundo";
-      rev = "595ee332719f397c2441d85f79608113957cc78f";
-      sha256 = "0kwiw877izpjqfj4gp4km8ivj6iy2c2jxyiqgxrvjqna62kic0ap";
+      rev = "b9a6adbcfacc1ffe42ef3aa888f7c828a0b63746";
+      sha256 = "0x0xjijadzk3z3f4bs0k3rbhb760qcdczvn0c8m9gx678wfjshyd";
     };
     meta.homepage = "https://github.com/simnalamburt/vim-mundo/";
   };
@@ -10355,12 +10655,12 @@ final: prev:
 
   vim-oscyank = buildVimPluginFrom2Nix {
     pname = "vim-oscyank";
-    version = "2022-05-21";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "ojroques";
       repo = "vim-oscyank";
-      rev = "ebcb47da66329d2c654e380d87879a935576c176";
-      sha256 = "17l3ghjicf0llf7341vkhgaxs53pj2fgrsli2rpkqnm2qd041gyv";
+      rev = "360ccdc01b18cd434588c34e15e5ea382b436de8";
+      sha256 = "14phavx432h16bdm7m99a21xz2gb1s47fd5g8v2b5ig12l4yss92";
     };
     meta.homepage = "https://github.com/ojroques/vim-oscyank/";
   };
@@ -10823,12 +11123,12 @@ final: prev:
 
   vim-rhubarb = buildVimPluginFrom2Nix {
     pname = "vim-rhubarb";
-    version = "2022-05-11";
+    version = "2022-06-15";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-rhubarb";
-      rev = "ab0d42bb31b3317aa66dd1c0b506837cc6ca2835";
-      sha256 = "0qv2ppmxpy72gb8ivz5cx19b4y8si4v428d9mmlx9q7mv9q4wmhq";
+      rev = "f8b70f5ef3b315af1148ef9dcc2a9afb02bc8c79";
+      sha256 = "1cgxaaizx9l11s3gs7d1gvlq2c1l42548fmdkqgqnl8z777h065k";
     };
     meta.homepage = "https://github.com/tpope/vim-rhubarb/";
   };
@@ -10883,12 +11183,12 @@ final: prev:
 
   vim-sandwich = buildVimPluginFrom2Nix {
     pname = "vim-sandwich";
-    version = "2022-05-14";
+    version = "2022-06-12";
     src = fetchFromGitHub {
       owner = "machakann";
       repo = "vim-sandwich";
-      rev = "17266bab12c4f2ca9ce871f706176d971613487e";
-      sha256 = "1zp7zkgphlavspyfha62rwhsxn0w4fp2ciylv3vq76j54xyxkqyj";
+      rev = "e114a5e0c90aefed3d2a48ca326eff9d39bc90a9";
+      sha256 = "0kqn9kzwhh1zhymvmpnbkrccj4nn5lda3fwj1hyd4z3iaffxxk9a";
     };
     meta.homepage = "https://github.com/machakann/vim-sandwich/";
   };
@@ -11063,12 +11363,12 @@ final: prev:
 
   vim-slime = buildVimPluginFrom2Nix {
     pname = "vim-slime";
-    version = "2022-05-11";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "jpalardy";
       repo = "vim-slime";
-      rev = "6e4b81303968f37346925d6907b96ef07788cc82";
-      sha256 = "1z0nmfmn7ijj3hih4dbi1iq3dc6gpprck3fmidhmkv6vms041nx4";
+      rev = "93d202278004fbc8eb3ec9d734916214e6c7f034";
+      sha256 = "1nnv2kkq06d72wfsyliqvyrp735j5kg7y9c1r9lypjw2y7548spf";
     };
     meta.homepage = "https://github.com/jpalardy/vim-slime/";
   };
@@ -11099,12 +11399,12 @@ final: prev:
 
   vim-smoothie = buildVimPluginFrom2Nix {
     pname = "vim-smoothie";
-    version = "2022-05-28";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "psliwka";
       repo = "vim-smoothie";
-      rev = "4206594ee4d4c6689bd41f5ee8e3617642d3b295";
-      sha256 = "1fr7bvl22p021wpwaadfczpg16qh2r2apjwq9bkcwlsg5l80qfdn";
+      rev = "df1e324e9f3395c630c1c523d0555a01d2eb1b7e";
+      sha256 = "1c87zc954wk76h9klxyygv19jp729fms2f5m18gwzskars3px076";
     };
     meta.homepage = "https://github.com/psliwka/vim-smoothie/";
   };
@@ -11135,24 +11435,24 @@ final: prev:
 
   vim-snipmate = buildVimPluginFrom2Nix {
     pname = "vim-snipmate";
-    version = "2021-06-04";
+    version = "2022-06-11";
     src = fetchFromGitHub {
       owner = "garbas";
       repo = "vim-snipmate";
-      rev = "ed3c5426a20bf1c06d7980946ada34fd9f93320e";
-      sha256 = "0bxaalza02sgm045cj4vciy3qhmj7pj1rp9bdwm5837ldq8paj1h";
+      rev = "525f331320427bf7aeb07651e2536b1f8a23df03";
+      sha256 = "0qfai0x9zg52n43ikgxx5x9y1nl3x420q8564csxirnbhnbn5xgx";
     };
     meta.homepage = "https://github.com/garbas/vim-snipmate/";
   };
 
   vim-snippets = buildVimPluginFrom2Nix {
     pname = "vim-snippets";
-    version = "2022-05-29";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "honza";
       repo = "vim-snippets";
-      rev = "11c771065bfadcc0583b9711d3932c765f168bb4";
-      sha256 = "18x5y4cc1d4z5ciqhrb1554abv5ixz7jcvldjgsnlnvkx5b616s7";
+      rev = "222cf7b44bb569c9a046a9891000c898bd4c43c9";
+      sha256 = "0xksa854c8rjp9y2xvhk78z5ha9p8c3pvpzvddii2aay22cfkn8h";
     };
     meta.homepage = "https://github.com/honza/vim-snippets/";
   };
@@ -11231,12 +11531,12 @@ final: prev:
 
   vim-startuptime = buildVimPluginFrom2Nix {
     pname = "vim-startuptime";
-    version = "2022-05-30";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "dstein64";
       repo = "vim-startuptime";
-      rev = "a8ab56f30c603f8022f5fb6a436f5183beeb7b27";
-      sha256 = "1xlb8q93ff9qdlk17b76sbrz2adixj7zxf8b9ccvafki8diaqkj9";
+      rev = "82c8a5491e13fa307fb2cb47182a30560f930377";
+      sha256 = "05bj0cs5m829bdcm9zgmla2ha2nwg5cn1qs9r75haway42dza3s6";
     };
     meta.homepage = "https://github.com/dstein64/vim-startuptime/";
   };
@@ -11568,12 +11868,12 @@ final: prev:
 
   vim-tpipeline = buildVimPluginFrom2Nix {
     pname = "vim-tpipeline";
-    version = "2022-05-16";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "vimpostor";
       repo = "vim-tpipeline";
-      rev = "b83d430697d268a690240ec932630b8aed211aba";
-      sha256 = "0wy31h8f7j433h4anrwi7658g8plaja4gjsykgsdsgvm1zanq0dw";
+      rev = "7945984fd56bd69506c73f68bb300aaceae72e82";
+      sha256 = "1w6ifhkjjdfksmywf9r6hnvljbki0vdj440zj3ihbp2jpmhyb09q";
     };
     meta.homepage = "https://github.com/vimpostor/vim-tpipeline/";
   };
@@ -11628,12 +11928,12 @@ final: prev:
 
   vim-ultest = buildVimPluginFrom2Nix {
     pname = "vim-ultest";
-    version = "2022-05-05";
+    version = "2022-06-18";
     src = fetchFromGitHub {
       owner = "rcarriga";
       repo = "vim-ultest";
-      rev = "6978fd32e3ca2c1c5591884eea0d57a7ee43d212";
-      sha256 = "19dphm7xgfc0xvxrlys21zkp7ixbx62p11x6ms6xmwm8cjjh64pc";
+      rev = "c93eb128332f8245776b753407ab6c4432c4c556";
+      sha256 = "1y686xrcvkwqmc263syh84a396xanqka39axc460ibl9zav7z4nn";
     };
     meta.homepage = "https://github.com/rcarriga/vim-ultest/";
   };
@@ -11700,12 +12000,12 @@ final: prev:
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2022-05-06";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "046d0d5ac5fb2888447d1dd8b7e52fd0314f9766";
-      sha256 = "17masfjxrhjcfqmlgf1jpmmz18j8vb4n88dl34rry6c3abiraprj";
+      rev = "e23b98a8852255766e54bf7723a9d61fb5ab3143";
+      sha256 = "1zxdbcd4qsqdfrgvn76r0a187hs0krb7w4r39dr10wwgzq69d2vf";
     };
     meta.homepage = "https://github.com/mg979/vim-visual-multi/";
   };
@@ -11808,12 +12108,12 @@ final: prev:
 
   vim-which-key = buildVimPluginFrom2Nix {
     pname = "vim-which-key";
-    version = "2022-06-07";
+    version = "2022-06-19";
     src = fetchFromGitHub {
       owner = "liuchengxu";
       repo = "vim-which-key";
-      rev = "d7d451daa66154031dd9fb24c1798b4d07a820d9";
-      sha256 = "0f7rcmlnp24zag9ypfwd0i6bsikm0ndd58jnpv008qq8hl80rps1";
+      rev = "931260e7816ff8eeb26843f859f86dac09912add";
+      sha256 = "030ljq24lxqac3hphr5phw06lgcjg7jsrc6yxbgxx2m28v54isi6";
     };
     meta.homepage = "https://github.com/liuchengxu/vim-which-key/";
   };
@@ -12060,12 +12360,12 @@ final: prev:
 
   vimspector = buildVimPluginFrom2Nix {
     pname = "vimspector";
-    version = "2022-06-04";
+    version = "2022-06-17";
     src = fetchFromGitHub {
       owner = "puremourning";
       repo = "vimspector";
-      rev = "44eeaebd8cf8514de2b503e8698f2f341b5f23ad";
-      sha256 = "197l41s256z6iyb1pym6h9m4046k7m0jiwlrgfbf60yy2fxka7f3";
+      rev = "541cedd19bc22b5c00648352f0afe604113db32a";
+      sha256 = "1ra6jr5qvgclazaj3332kiwlc5kvpvi2dj9g2vfgd84140036cas";
       fetchSubmodules = true;
     };
     meta.homepage = "https://github.com/puremourning/vimspector/";
@@ -12073,12 +12373,12 @@ final: prev:
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2022-06-05";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "754bf6c97272e9bf479057b44cc968c4dad34753";
-      sha256 = "1igkd96171rhw0xdqikjhg99527jkkg7i6ri10p83v1fx9a7bk5y";
+      rev = "fcdf28ae2c7f5e0aabeead8b78bd112141ef26f8";
+      sha256 = "0d9g9cdrjhs0zwr3mc8r4dr1sf6jjhx3gywl8vfzk7xbrlyn6vcs";
     };
     meta.homepage = "https://github.com/lervag/vimtex/";
   };
@@ -12205,12 +12505,12 @@ final: prev:
 
   winshift-nvim = buildVimPluginFrom2Nix {
     pname = "winshift.nvim";
-    version = "2021-11-15";
+    version = "2022-06-20";
     src = fetchFromGitHub {
       owner = "sindrets";
       repo = "winshift.nvim";
-      rev = "aaa04b97640165eb0877bfc04943f4282887470b";
-      sha256 = "0rg7ci0m1hm9jbhjwckvjnfl0w3bl2wfr7wq67k0wdj5vnlzz6w3";
+      rev = "7014fdac39082977f11a9bed4b5486a7c04e4202";
+      sha256 = "1q21fh3rzrcl598z406nfr3gnfayy3ry3av9g41z872hx8r49kjf";
     };
     meta.homepage = "https://github.com/sindrets/winshift.nvim/";
   };
@@ -12265,12 +12565,12 @@ final: prev:
 
   xptemplate = buildVimPluginFrom2Nix {
     pname = "xptemplate";
-    version = "2020-06-29";
+    version = "2022-06-10";
     src = fetchFromGitHub {
       owner = "drmingdrmer";
       repo = "xptemplate";
-      rev = "359ffe4d426bce2e95f5866b682856b25555396f";
-      sha256 = "1rj5k58n1ybcc7qxsxlh09p2v4cps5xyzxmvjfrixy1qm2f85kd5";
+      rev = "d8500403b35d5597441773074e3976238b5e8b2c";
+      sha256 = "0dpdzx46rrwq9i2rymn0if7ci9h2b5hmdxqfw0dmdiyn1byj2wph";
     };
     meta.homepage = "https://github.com/drmingdrmer/xptemplate/";
   };
@@ -12386,24 +12686,36 @@ final: prev:
 
   catppuccin-nvim = buildVimPluginFrom2Nix {
     pname = "catppuccin-nvim";
-    version = "2022-05-30";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "catppuccin";
       repo = "nvim";
-      rev = "773d339cbd307fe218cf7b3ea04eac26b345a3b7";
-      sha256 = "005r3nmjd3s0gbf319xwrvighjg391j3qh79sfc2568z53wxj8r0";
+      rev = "d46425163dad4cc74910c0c81eeedb00cadf8a61";
+      sha256 = "1iqjlvr9d1nlf5bpafd15zz0y9r6vrfgp5mwld7kwv9ipr3gw0sd";
     };
     meta.homepage = "https://github.com/catppuccin/nvim/";
   };
 
+  catppuccin-vim = buildVimPluginFrom2Nix {
+    pname = "catppuccin-vim";
+    version = "2022-06-20";
+    src = fetchFromGitHub {
+      owner = "catppuccin";
+      repo = "vim";
+      rev = "e2fdf27b0f28f7e285beb377d2fc6936957c2122";
+      sha256 = "098blx6c2mzh6ghlvm6cv62bi8cfiys9r867msfw2h7r01gqz2hf";
+    };
+    meta.homepage = "https://github.com/catppuccin/vim/";
+  };
+
   chad = buildVimPluginFrom2Nix {
     pname = "chad";
-    version = "2022-06-09";
+    version = "2022-06-21";
     src = fetchFromGitHub {
       owner = "ms-jpq";
       repo = "chadtree";
-      rev = "9565764a38a6ad352b6daaf40aaec1ec6aae67a4";
-      sha256 = "0frcfxnf6zzsslcpslsgpcb04ylxcf50lr3yg0gcap38gwwhna6p";
+      rev = "1efa6229ab08d4620a8aa546bfd5103bd98a74e0";
+      sha256 = "0mksvj0vswg6wbxfrr9rg6miv0kr700z3q8xcrria43rf06la32l";
     };
     meta.homepage = "https://github.com/ms-jpq/chadtree/";
   };
@@ -12470,12 +12782,12 @@ final: prev:
 
   rose-pine = buildVimPluginFrom2Nix {
     pname = "rose-pine";
-    version = "2022-06-02";
+    version = "2022-06-16";
     src = fetchFromGitHub {
       owner = "rose-pine";
       repo = "neovim";
-      rev = "04fb9d3bf29755a0cd6e53373e5750ca78a8d37c";
-      sha256 = "14zdlm3rpfkkg0y94071i6qx4bk3vp2wd2f5v7503mdc3p684amq";
+      rev = "3f0a6c06da29c7b0f3fa49a313ae4d56f0dc58b8";
+      sha256 = "01r34bkfs8kvaw72852sfk5jr1ngg2qf6a3dlpsppkb8l4lwi1k3";
     };
     meta.homepage = "https://github.com/rose-pine/neovim/";
   };
diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix
index fa175badfd7bc..f7e1645d707fd 100644
--- a/pkgs/applications/editors/vim/plugins/overrides.nix
+++ b/pkgs/applications/editors/vim/plugins/overrides.nix
@@ -19,8 +19,10 @@
 , code-minimap
 , dasht
 , direnv
+, fish
 , fzf
 , gawk
+, git
 , gnome
 , himalaya
 , jq
@@ -30,12 +32,15 @@
 , meson
 , nim
 , nodePackages
+, pandoc
 , parinfer-rust
+, ripgrep
 , skim
 , sqlite
 , statix
 , stylish-haskell
 , tabnine
+, tmux
 , tup
 , vim
 , which
@@ -45,9 +50,7 @@
 , nodejs
 , xdotool
 , xorg
-
-# test dependencies
-, neovim-unwrapped
+, zsh
 
   # command-t dependencies
 , rake
@@ -100,7 +103,6 @@
 , golint
 , gomodifytags
 , gopls
-, gotags
 , gotools
 , iferr
 , impl
@@ -133,6 +135,78 @@ self: super: {
     '';
   });
 
+  cmp-clippy = super.cmp-clippy.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp plenary-nvim ];
+  });
+
+  cmp-copilot = super.cmp-copilot.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp copilot-vim ];
+  });
+
+  cmp-dap = super.cmp-dap.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp nvim-dap ];
+  });
+
+  cmp-dictionary = super.cmp-dictionary.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-digraphs = super.cmp-digraphs.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-fish = super.cmp-fish.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp fish ];
+  });
+
+  cmp-fuzzy-buffer = super.cmp-fuzzy-buffer.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp fuzzy-nvim ];
+  });
+
+  cmp-fuzzy-path = super.cmp-fuzzy-path.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp fuzzy-nvim ];
+  });
+
+  cmp-git = super.cmp-git.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp curl git ];
+  });
+
+  cmp-greek = super.cmp-greek.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-look = super.cmp-look.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-neosnippet = super.cmp-neosnippet.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp neosnippet-vim ];
+  });
+
+  cmp-npm = super.cmp-npm.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp nodejs plenary-nvim ];
+  });
+
+  cmp-nvim-lsp-signature-help = super.cmp-nvim-lsp-signature-help.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-nvim-tags = super.cmp-nvim-tags.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ];
+  });
+
+  cmp-pandoc-nvim = super.cmp-pandoc-nvim.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp pandoc plenary-nvim ];
+  });
+
+  cmp-rg = super.cmp-rg.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp ripgrep ];
+  });
+
+  cmp-snippy = super.cmp-snippy.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp nvim-snippy ];
+  });
+
   cmp-tabnine = super.cmp-tabnine.overrideAttrs (old: {
     buildInputs = [ tabnine ];
 
@@ -142,6 +216,28 @@ self: super: {
     '';
   });
 
+  cmp-tmux = super.cmp-tmux.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp tmux ];
+  });
+
+  cmp-vim-lsp = super.cmp-vim-lsp.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp vim-lsp ];
+  });
+
+  cmp-vimwiki-tags = super.cmp-vimwiki-tags.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp vimwiki ];
+  });
+
+  cmp-zsh = super.cmp-zsh.overrideAttrs (old: {
+    dependencies = with self; [ nvim-cmp zsh ];
+  });
+
+  coc-nginx = buildVimPluginFrom2Nix {
+    pname = "coc-nginx";
+    inherit (nodePackages."@yaegassy/coc-nginx") version meta;
+    src = "${nodePackages."@yaegassy/coc-nginx"}/lib/node_modules/@yaegassy/coc-nginx";
+  };
+
   command-t = super.command-t.overrideAttrs (old: {
     buildInputs = [ ruby rake ];
     buildPhase = ''
@@ -232,15 +328,15 @@ self: super: {
     };
   });
 
-  diffview-nvim = super.diffview-nvim.overrideAttrs (oa: {
+  diffview-nvim = super.diffview-nvim.overrideAttrs (old: {
     dependencies = with self; [ plenary-nvim ];
 
     doInstallCheck = true;
     nvimRequireCheck = "diffview";
   });
 
-  direnv-vim = super.direnv-vim.overrideAttrs (oa: {
-    preFixup = oa.preFixup or "" + ''
+  direnv-vim = super.direnv-vim.overrideAttrs (old: {
+    preFixup = old.preFixup or "" + ''
       substituteInPlace $out/autoload/direnv.vim \
         --replace "let s:direnv_cmd = get(g:, 'direnv_cmd', 'direnv')" \
           "let s:direnv_cmd = get(g:, 'direnv_cmd', '${lib.getBin direnv}/bin/direnv')"
@@ -280,7 +376,7 @@ self: super: {
       patches = [
         (substituteAll {
           src = ./patches/fruzzy/get_version.patch;
-          version = old.version;
+          inherit (old) version;
         })
       ];
       configurePhase = ''
@@ -294,6 +390,10 @@ self: super: {
       '';
     });
 
+  fuzzy-nvim = super.fuzzy-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-fzy-native-nvim ];
+  });
+
   fzf-checkout-vim = super.fzf-checkout-vim.overrideAttrs (old: {
     # The plugin has a makefile which tries to run tests in a docker container.
     # This prevents it.
@@ -345,31 +445,10 @@ self: super: {
     dependencies = with self; [ plenary-nvim ];
   });
 
-  # plenary-nvim = super.toVimPlugin(luaPackages.plenary-nvim);
-
-  plenary-nvim = super.plenary-nvim.overrideAttrs (old: {
-    postPatch = ''
-      sed -Ei lua/plenary/curl.lua \
-          -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
-    '';
-
-    doInstallCheck = true;
-    nvimRequireCheck = "plenary";
-  });
-
   gruvbox-nvim = super.gruvbox-nvim.overrideAttrs (old: {
     dependencies = with self; [ lush-nvim ];
   });
 
-  jedi-vim = super.jedi-vim.overrideAttrs (old: {
-    # checking for python3 support in vim would be neat, too, but nobody else seems to care
-    buildInputs = [ python3.pkgs.jedi ];
-    meta = {
-      description = "code-completion for python using python-jedi";
-      license = lib.licenses.mit;
-    };
-  });
-
   himalaya-vim = buildVimPluginFrom2Nix {
     pname = "himalaya-vim";
     inherit (himalaya) src version;
@@ -385,6 +464,15 @@ self: super: {
     '';
   };
 
+  jedi-vim = super.jedi-vim.overrideAttrs (old: {
+    # checking for python3 support in vim would be neat, too, but nobody else seems to care
+    buildInputs = [ python3.pkgs.jedi ];
+    meta = {
+      description = "code-completion for python using python-jedi";
+      license = lib.licenses.mit;
+    };
+  });
+
   LanguageClient-neovim =
     let
       version = "0.1.161";
@@ -559,7 +647,19 @@ self: super: {
     configurePhase = "cd vim";
   });
 
-  parinfer-rust = parinfer-rust;
+  inherit parinfer-rust;
+
+  # plenary-nvim = super.toVimPlugin(luaPackages.plenary-nvim);
+
+  plenary-nvim = super.plenary-nvim.overrideAttrs (old: {
+    postPatch = ''
+      sed -Ei lua/plenary/curl.lua \
+          -e 's@(command\s*=\s*")curl(")@\1${curl}/bin/curl\2@'
+    '';
+
+    doInstallCheck = true;
+    nvimRequireCheck = "plenary";
+  });
 
   range-highlight-nvim = super.range-highlight-nvim.overrideAttrs (old: {
     dependencies = with self; [ cmd-parser-nvim ];
@@ -576,7 +676,7 @@ self: super: {
 
   skim = buildVimPluginFrom2Nix {
     pname = "skim";
-    version = skim.version;
+    inherit (skim) version;
     src = skim.vim;
   };
 
@@ -689,16 +789,16 @@ self: super: {
     dependencies = with self; [ sqlite-lua telescope-nvim ];
   });
 
-  telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs (old: {
-    dependencies = with self; [ telescope-nvim ];
-  });
-
   telescope-fzf-native-nvim = super.telescope-fzf-native-nvim.overrideAttrs (old: {
     dependencies = with self; [ telescope-nvim ];
     buildPhase = "make";
     meta.platforms = lib.platforms.all;
   });
 
+  telescope-fzf-writer-nvim = super.telescope-fzf-writer-nvim.overrideAttrs (old: {
+    dependencies = with self; [ telescope-nvim ];
+  });
+
   telescope-fzy-native-nvim = super.telescope-fzy-native-nvim.overrideAttrs (old: {
     dependencies = with self; [ telescope-nvim ];
     preFixup =
@@ -874,7 +974,7 @@ self: super: {
             libiconv
           ];
 
-          cargoSha256 = "sha256-XmQTRmOO/tyA0F6FQQRxZPcVXCYZkEAiNIzU/ismjc0=";
+          cargoSha256 = "sha256-9Vr1gpggfAQlMgM/s8j6FTTYFppHql2PQ7cPtg1wNmo=";
         };
       in
       ''
@@ -926,11 +1026,12 @@ self: super: {
   vim-go = super.vim-go.overrideAttrs (old:
     let
       binPath = lib.makeBinPath [
+        # TODO: package commented packages
         asmfmt
         delve
         errcheck
         go-motion
-        go-tools
+        go-tools # contains staticcheck
         gocode
         gocode-gomod
         godef
@@ -939,18 +1040,20 @@ self: super: {
         golangci-lint
         gomodifytags
         gopls
-        gotags
+        # gorename
+        # gotags
         gotools
+        # guru
         iferr
         impl
+        # keyify
         reftools
+        # revive
       ];
     in
     {
       postPatch = ''
-        ${gnused}/bin/sed \
-          -Ee 's@"go_bin_path", ""@"go_bin_path", "${binPath}"@g' \
-          -i autoload/go/config.vim
+        sed -i autoload/go/config.vim -Ee 's@"go_bin_path", ""@"go_bin_path", "${binPath}"@g'
       '';
     });
 
@@ -1000,13 +1103,13 @@ self: super: {
 
   vim-markdown-composer =
     let
-      vim-markdown-composer-bin = rustPlatform.buildRustPackage rec {
+      vim-markdown-composer-bin = rustPlatform.buildRustPackage {
         pname = "vim-markdown-composer-bin";
         inherit (super.vim-markdown-composer) src version;
-        cargoSha256 = "0q0i6kyihswrjrfdj4p3z54b779sdg2wz38z943ypj6dqphhcklx";
+        cargoSha256 = "sha256-Vie8vLTplhaVU4E9IohvxERfz3eBpd62m8/1Ukzk8e4=";
       };
     in
-    super.vim-markdown-composer.overrideAttrs (oldAttrs: rec {
+    super.vim-markdown-composer.overrideAttrs (old: {
       preFixup = ''
         substituteInPlace "$out"/after/ftplugin/markdown/composer.vim \
           --replace "s:plugin_root . '/target/release/markdown-composer'" \
@@ -1156,6 +1259,7 @@ self: super: {
       "coc-cmake"
       "coc-css"
       "coc-diagnostic"
+      "coc-docker"
       "coc-emmet"
       "coc-eslint"
       "coc-explorer"
@@ -1179,12 +1283,16 @@ self: super: {
       "coc-r-lsp"
       "coc-rls"
       "coc-rust-analyzer"
+      "coc-sh"
       "coc-smartf"
       "coc-snippets"
       "coc-solargraph"
+      "coc-sqlfluff"
       "coc-stylelint"
+      "coc-sumneko-lua"
       "coc-tabnine"
       "coc-texlab"
+      "coc-toml"
       "coc-tslint"
       "coc-tslint-plugin"
       "coc-tsserver"
diff --git a/pkgs/applications/editors/vim/plugins/update.py b/pkgs/applications/editors/vim/plugins/update.py
index f63bd867f3682..1214e36372a62 100755
--- a/pkgs/applications/editors/vim/plugins/update.py
+++ b/pkgs/applications/editors/vim/plugins/update.py
@@ -116,13 +116,7 @@ class VimEditor(pluginupdate.Editor):
 def main():
 
     global luaPlugins
-
-    # whitelist
-    luaPlugins = run_nix_expr(GET_PLUGINS_LUA) + [
-        "diffview-nvim",
-        "marks-nvim",
-        "nvim-biscuits"
-    ]
+    luaPlugins = run_nix_expr(GET_PLUGINS_LUA)
 
     editor = VimEditor("vim", ROOT, GET_PLUGINS)
     parser = editor.create_parser()
diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names
index f79b420714e7b..b540180d123d3 100644
--- a/pkgs/applications/editors/vim/plugins/vim-plugin-names
+++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names
@@ -94,23 +94,46 @@ https://github.com/bbchung/clighter8/,,
 https://github.com/winston0410/cmd-parser.nvim/,,
 https://github.com/hrsh7th/cmp-buffer/,,
 https://github.com/hrsh7th/cmp-calc/,,
+https://github.com/vappolinario/cmp-clippy/,HEAD,
 https://github.com/hrsh7th/cmp-cmdline/,,
+https://github.com/dmitmel/cmp-cmdline-history/,HEAD,
 https://github.com/PaterJason/cmp-conjure/,,
+https://github.com/davidsierradz/cmp-conventionalcommits/,HEAD,
+https://github.com/hrsh7th/cmp-copilot/,HEAD,
+https://github.com/rcarriga/cmp-dap/,HEAD,
+https://github.com/uga-rosa/cmp-dictionary/,HEAD,
+https://github.com/dmitmel/cmp-digraphs/,HEAD,
 https://github.com/hrsh7th/cmp-emoji/,,
+https://github.com/mtoohey31/cmp-fish/,HEAD,
+https://github.com/tzachar/cmp-fuzzy-buffer/,HEAD,
+https://github.com/tzachar/cmp-fuzzy-path/,HEAD,
+https://github.com/petertriho/cmp-git/,HEAD,
+https://github.com/max397574/cmp-greek/,HEAD,
 https://github.com/kdheepak/cmp-latex-symbols/,,
+https://github.com/octaltree/cmp-look/,HEAD,
+https://github.com/notomo/cmp-neosnippet/,HEAD,
+https://github.com/David-Kunz/cmp-npm/,HEAD,
 https://github.com/hrsh7th/cmp-nvim-lsp/,,
 https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol/,,
+https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/,HEAD,
 https://github.com/hrsh7th/cmp-nvim-lua/,,
+https://github.com/quangnguyen30192/cmp-nvim-tags/,HEAD,
 https://github.com/quangnguyen30192/cmp-nvim-ultisnips/,,
 https://github.com/hrsh7th/cmp-omni/,,
 https://github.com/jc-doyle/cmp-pandoc-references/,,
+https://github.com/aspeddro/cmp-pandoc.nvim/,HEAD,
 https://github.com/hrsh7th/cmp-path/,,
+https://github.com/lukas-reineke/cmp-rg/,HEAD,
+https://github.com/dcampos/cmp-snippy/,HEAD,
 https://github.com/f3fora/cmp-spell/,,
 https://github.com/tzachar/cmp-tabnine/,,
 https://github.com/andersevenrud/cmp-tmux/,,
 https://github.com/ray-x/cmp-treesitter/,,
 https://github.com/lukas-reineke/cmp-under-comparator/,,
+https://github.com/dmitmel/cmp-vim-lsp/,HEAD,
+https://github.com/pontusk/cmp-vimwiki-tags/,HEAD,
 https://github.com/hrsh7th/cmp-vsnip/,,
+https://github.com/tamago324/cmp-zsh/,HEAD,
 https://github.com/saadparwaiz1/cmp_luasnip/,,
 https://github.com/vn-ki/coc-clap/,,
 https://github.com/neoclide/coc-denite/,,
@@ -222,6 +245,7 @@ https://github.com/rafamadriz/friendly-snippets/,,
 https://github.com/raghur/fruzzy/,,
 https://github.com/shumphrey/fugitive-gitlab.vim/,,
 https://github.com/BeneCollyridam/futhark-vim/,,
+https://github.com/tzachar/fuzzy.nvim/,HEAD,
 https://github.com/rktjmp/fwatch.nvim/,,
 https://github.com/stsewd/fzf-checkout.vim/,,
 https://github.com/monkoose/fzf-hoogle.vim/,HEAD,
@@ -445,6 +469,7 @@ https://github.com/yamatsum/nvim-nonicons/,,
 https://github.com/rcarriga/nvim-notify/,,
 https://github.com/gennaro-tedesco/nvim-peekup/,,
 https://github.com/dstein64/nvim-scrollview/,,
+https://github.com/dcampos/nvim-snippy/,HEAD,
 https://github.com/ishan9299/nvim-solarized-lua/,,
 https://github.com/nvim-pack/nvim-spectre/,,
 https://github.com/norcalli/nvim-terminal.lua/,,
@@ -632,6 +657,7 @@ https://github.com/vhda/verilog_systemverilog.vim/,,
 https://github.com/vifm/vifm.vim/,,
 https://github.com/dracula/vim/,,dracula-vim
 https://github.com/embark-theme/vim/,,embark-vim
+https://github.com/catppuccin/vim/,HEAD,catppuccin-vim
 https://github.com/Konfekt/vim-CtrlXA/,,
 https://github.com/konfekt/vim-DetectSpellLang/,,
 https://github.com/dpelle/vim-LanguageTool/,,
diff --git a/pkgs/applications/editors/vim/plugins/vim-utils.nix b/pkgs/applications/editors/vim/plugins/vim-utils.nix
index 1170771c62a18..4c6bb5d0da0f9 100644
--- a/pkgs/applications/editors/vim/plugins/vim-utils.nix
+++ b/pkgs/applications/editors/vim/plugins/vim-utils.nix
@@ -205,9 +205,6 @@ let
       ln -sf ${plugin}/${rtpPath} $out/pack/${packageName}/${dir}/${lib.getName plugin}
     '';
 
-    link = pluginPath: if hasLuaModule pluginPath
-      then linkLuaPlugin pluginPath
-      else linkVimlPlugin pluginPath;
 
     packageLinks = packageName: {start ? [], opt ? []}:
     let
@@ -225,9 +222,9 @@ let
       [ "mkdir -p $out/pack/${packageName}/start" ]
       # To avoid confusion, even dependencies of optional plugins are added
       # to `start` (except if they are explicitly listed as optional plugins).
-      ++ (builtins.map (x: link x packageName "start") allPlugins)
+      ++ (builtins.map (x: linkVimlPlugin x packageName "start") allPlugins)
       ++ ["mkdir -p $out/pack/${packageName}/opt"]
-      ++ (builtins.map (x: link x packageName "opt") opt)
+      ++ (builtins.map (x: linkVimlPlugin x packageName "opt") opt)
       # Assemble all python3 dependencies into a single `site-packages` to avoid doing recursive dependency collection
       # for each plugin.
       # This directory is only for python import search path, and will not slow down the startup time.
@@ -290,14 +287,14 @@ let
       /* vim-plug is an extremely popular vim plugin manager.
       */
       plugImpl =
-      (''
+      ''
         source ${vimPlugins.vim-plug.rtp}/plug.vim
         silent! call plug#begin('/dev/null')
 
         '' + (lib.concatMapStringsSep "\n" (pkg: "Plug '${pkg.rtp}'") plug.plugins) + ''
 
         call plug#end()
-      '');
+      '';
 
       /*
        vim-addon-manager = VAM
@@ -533,16 +530,11 @@ rec {
     } ./neovim-require-check-hook.sh) {};
 
   inherit (import ./build-vim-plugin.nix {
-    inherit lib stdenv rtpPath vim vimGenDocHook vimCommandCheckHook neovimRequireCheckHook;
+    inherit lib stdenv rtpPath vim vimGenDocHook
+      toVimPlugin vimCommandCheckHook neovimRequireCheckHook;
   }) buildVimPlugin buildVimPluginFrom2Nix;
 
 
-  # TODO placeholder to ease working on automatic plugin detection
-  # this should be a luarocks "flat" install with appropriate vim hooks
-  buildNeovimPluginFrom2Nix = attrs: let drv = (buildVimPluginFrom2Nix attrs); in drv.overrideAttrs(oa: {
-    nativeBuildInputs = oa.nativeBuildInputs ++ [ neovimRequireCheckHook ];
-  });
-
   # used to figure out which python dependencies etc. neovim needs
   requiredPlugins = {
     packages ? {},
@@ -566,4 +558,21 @@ rec {
       nativePlugins = lib.concatMap ({start?[], opt?[], knownPlugins?vimPlugins}: start++opt) nativePluginsConfigs;
     in
       nativePlugins ++ nonNativePlugins;
+
+  toVimPlugin = drv:
+    drv.overrideAttrs(oldAttrs: {
+      # dont move the "doc" folder since vim expects it
+      forceShare = [ "man" "info" ];
+
+      nativeBuildInputs = oldAttrs.nativeBuildInputs or []
+      ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
+        vimCommandCheckHook vimGenDocHook
+        # many neovim plugins keep using buildVimPlugin
+        neovimRequireCheckHook
+      ];
+
+      passthru = (oldAttrs.passthru or {}) // {
+        vimPlugin = true;
+      };
+    });
 }
diff --git a/pkgs/applications/editors/vscode/extensions/default.nix b/pkgs/applications/editors/vscode/extensions/default.nix
index aae268df3f540..d4a542bb99e4e 100644
--- a/pkgs/applications/editors/vscode/extensions/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/default.nix
@@ -1041,6 +1041,22 @@ let
         };
       };
 
+      grapecity.gc-excelviewer = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "gc-excelviewer";
+          publisher = "grapecity";
+          version = "4.2.55";
+          sha256 = "sha256-yHl6ZTGIKOEsqmyeYtgDUhNAN9uRpoFApA7FKkPWW3E=";
+        };
+        meta = with lib; {
+          description = "Edit Excel spreadsheets and CSV files in Visual Studio Code and VS Code for the Web";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=grapecity.gc-excelviewer";
+          homepage = "https://github.com/jjuback/gc-excelviewer";
+          license = licenses.mit;
+          maintainers = with maintainers; [ kamadorueda ];
+        };
+      };
+
       humao.rest-client = buildVscodeMarketplaceExtension {
         mktplcRef = {
           publisher = "humao";
@@ -1286,8 +1302,8 @@ let
         mktplcRef = {
           name = "latex-workshop";
           publisher = "James-Yu";
-          version = "8.23.0";
-          sha256 = "sha256-IHLsAuTi+GBZViL2KozudebNY745RiOYNATzabQfnOY=";
+          version = "8.27.2";
+          sha256 = "sha256-scvT6cjlMrfG4yrhWlUwGM7ozu1E0xAryPRpV7FGCas=";
         };
         meta = with lib; {
           changelog = "https://marketplace.visualstudio.com/items/James-Yu.latex-workshop/changelog";
@@ -1495,6 +1511,23 @@ let
         };
       };
 
+      mattn.lisp = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "lisp";
+          publisher = "mattn";
+          version = "0.1.12";
+          sha256 = "sha256-x6aFrcX0YElEFEr0qA669/LPlab15npmXd5Q585pIEw=";
+        };
+        meta = with lib; {
+          description = "Lisp syntax for vscode";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=mattn.lisp";
+          homepage = "https://github.com/mattn/vscode-lisp";
+          changelog = "https://marketplace.visualstudio.com/items/mattn.lisp/changelog";
+          license = licenses.mit;
+          maintainers = with maintainers; [ kamadorueda ];
+        };
+      };
+
       mhutchie.git-graph = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "git-graph";
@@ -1703,6 +1736,23 @@ let
         };
       };
 
+      njpwerner.autodocstring = buildVscodeMarketplaceExtension {
+        mktplcRef = {
+          name = "autodocstring";
+          publisher = "njpwerner";
+          version = "0.6.1";
+          sha256 = "sha256-NI0cbjsZPW8n6qRTRKoqznSDhLZRUguP7Sa/d0feeoc=";
+        };
+        meta = with lib; {
+          changelog = "https://marketplace.visualstudio.com/items/njpwerner.autodocstring/changelog";
+          description = "Generates python docstrings automatically";
+          downloadPage = "https://marketplace.visualstudio.com/items?itemName=njpwerner.autodocstring";
+          homepage = "https://github.com/NilsJPWerner/autoDocstring";
+          license = licenses.mit;
+          maintainers = with maintainers; [ kamadorueda ];
+        };
+      };
+
       octref.vetur = buildVscodeMarketplaceExtension {
         mktplcRef = {
           name = "vetur";
@@ -2352,8 +2402,8 @@ let
         mktplcRef = {
           name = "vim";
           publisher = "vscodevim";
-          version = "1.21.5";
-          sha256 = "1v1xs1wcigisr6xip31i02cfryxrb157sla34y59pwlnhc5x1gny";
+          version = "1.22.2";
+          sha256 = "sha256-dtIlgODzRdoMKnG9050ZcCX3w15A/R3FaMc+ZylvBbU=";
         };
         meta = {
           license = lib.licenses.mit;
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 6be5e225fa38b..ab3403852409b 100644
--- a/pkgs/applications/editors/vscode/extensions/ms-toolsai-jupyter/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/ms-toolsai-jupyter/default.nix
@@ -7,8 +7,8 @@ in buildVscodeMarketplaceExtension {
   mktplcRef = {
     name = "jupyter";
     publisher = "ms-toolsai";
-    version = "2021.9.1101343141";
-    sha256 = "1c5dgkk5yn6a8k3blbqakqdy8ppwgfbm0ciki7ix696bvlksbpdg";
+    version = "2022.5.1001411044";
+    sha256 = "0z6i7a5sba42yc2inp3yvw6lm6m0kings2iv18h4d6zyhm2lb61p";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/vscode/extensions/python/default.nix b/pkgs/applications/editors/vscode/extensions/python/default.nix
index 8d6834dceebf8..6b12320161716 100644
--- a/pkgs/applications/editors/vscode/extensions/python/default.nix
+++ b/pkgs/applications/editors/vscode/extensions/python/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, vscode-utils, extractNuGet
+{ lib, stdenv, fetchurl, fetchpatch, vscode-utils, extractNuGet
 , icu, curl, openssl, liburcu, lttng-ust, autoPatchelfHook
 , python3, musl
 , pythonUseFixed ? false       # When `true`, the python default setting will be fixed to specified.
@@ -28,6 +28,17 @@ let
       url = "https://lttng.org/files/lttng-ust/lttng-ust-${version}.tar.bz2";
       sha256 = "0ddwk0nl28bkv2xb78gz16a2bvlpfbjmzwfbgwf5p1cq46dyvy86";
     };
+    patches = (oldAttrs.patches or []) ++ [
+      # Pull upstream fix for -fno-common toolchain. Without it build fails on
+      # upstream gcc-10 as:
+      #   ld: libustsnprintf.a(libustsnprintf_la-core.o):snprintf/core.c:23: multiple definition of
+      #     `ust_loglevel'; ustctl.o:liblttng-ust-ctl/ustctl.c:80: first defined here
+      (fetchpatch {
+        name = "fno-common.patch";
+        url = "https://github.com/lttng/lttng-ust/commit/21a934df4c683e73e0a66a9afca33573fcf9d789.patch";
+        sha256 = "122lw9rdmr80gmz7814235ibqs47c6pzvg0ryh01805x0cymx74z";
+      })
+    ];
   });
 
   pythonDefaultsTo = if pythonUseFixed then "${python3}/bin/python" else "python";
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 912af05e6d3eb..9f85c9f9a1502 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -14,17 +14,17 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1kvb92ygsvzi06nqwd6d9dlqbz44dxcjm0iq1rvvxnr7x33l8218";
-    x86_64-darwin = "0jz0nik6wkqhgmfnhiwsq510hxbc9jw0z7s84154p2lhwcmpsbjp";
-    aarch64-linux = "16jzpzxxmcq690d3w0ph0cnzhpyvjpk8ih48pyzzf25bgp94yi33";
-    aarch64-darwin = "00xw4xml4zijpqj8305gdgn15shllpkv9ld1yh1aqrz11v522w3h";
-    armv7l-linux = "0fzzdh9gkw51djrdwhzi3fbjxkm2l78v72gc0233xm8riq0gczsv";
+    x86_64-linux = "0rq0bc99hsji4ni5mqw1rhzn2rng9rldm4xbdxlkrjyprc6qvffz";
+    x86_64-darwin = "1yjcb65w0anxyjc1nd9kbwr4hwnrlk9c6kp1a2ncy1g181klzarl";
+    aarch64-linux = "1fk7887clz9sd7fmz7lkxql7bnsvnbjd9fjixym2746x9if5ds42";
+    aarch64-darwin = "1bfgsjnm5r1wpss69ncx310j23mbwhixdxmg07m3kpcfqrmznvgc";
+    armv7l-linux = "0131i5cx2737wmngybvlw7d9c4gnilmla33nlrhf74ihic98jwlc";
   }.${system};
 in
   callPackage ./generic.nix rec {
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.68.0";
+    version = "1.68.1";
     pname = "vscode";
 
     executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index 849bcfa2a6aef..721cfbabf82bd 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -14,11 +14,11 @@ let
   archive_fmt = if stdenv.isDarwin then "zip" else "tar.gz";
 
   sha256 = {
-    x86_64-linux = "1ns4cpkihbrwgh8pvn1kjlnipssinjkxy28szidnz6q71zyvsjyw";
-    x86_64-darwin = "05v0gxal74igc29qjy0ficlyna17bzh1lpfqvyxdpg22is894h2l";
-    aarch64-linux = "1x6lhcvdly3a2n0shp2vlgk3s2pj9byxn9dc9pjg4k5ff24dql7l";
-    aarch64-darwin = "03knkj0y6n45lin0v6288zbq1nz5qh81ijyw1w3zrpd7pijn9j0x";
-    armv7l-linux = "0iwlr5q1qwq3jgldrhz4bbyl3xmdhd4ss690x1lqb4vxm2m7v5jw";
+    x86_64-linux = "1gx64ff9sgjqn8vw2hjpn3qlfpfyyhc5ivzc52vqyczaj1fcny65";
+    x86_64-darwin = "0sv0iyqfw24k14r28qzvlpdb81b7fqhbgb1lqzb75adhdfpjwz31";
+    aarch64-linux = "13mg7nn43k4bs1gl8cx1kly90yxz7iial6a1fpy4grxsk8mna1rj";
+    aarch64-darwin = "0mnj3lckpqwb3kmg7x7r34idaxyhy55gpiiyj0gmpqp8hp0ai5sc";
+    armv7l-linux = "0cvvigzmqp21jxwdfpkspdj7sva9bj977f9689qgb012kqvy41b2";
   }.${system};
 
   sourceRoot = if stdenv.isDarwin then "" else ".";
@@ -28,7 +28,7 @@ in
 
     # Please backport all compatible updates to the stable release.
     # This is important for the extension ecosystem.
-    version = "1.67.2";
+    version = "1.68.1";
     pname = "vscodium";
 
     executableName = "codium";
diff --git a/pkgs/applications/emulators/atari800/default.nix b/pkgs/applications/emulators/atari800/default.nix
index 37e0d83f14060..c1f685827047a 100644
--- a/pkgs/applications/emulators/atari800/default.nix
+++ b/pkgs/applications/emulators/atari800/default.nix
@@ -4,13 +4,13 @@
 with lib;
 stdenv.mkDerivation rec {
   pname = "atari800";
-  version = "4.2.0";
+  version = "5.0.0";
 
   src = fetchFromGitHub {
     owner = "atari800";
     repo = "atari800";
     rev = "ATARI800_${replaceChars ["."] ["_"] version}";
-    sha256 = "15l08clqqayi9izrgsz9achan6gl4x57wqsc8mad3yn0xayzz3qy";
+    sha256 = "sha256-+eJXhqPyU0GhmzF7DbteTXzEnn5klCor9Io/UgXQfQg=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/applications/emulators/bochs/default.nix b/pkgs/applications/emulators/bochs/default.nix
index 1f02219c8314e..f766bd9def945 100644
--- a/pkgs/applications/emulators/bochs/default.nix
+++ b/pkgs/applications/emulators/bochs/default.nix
@@ -130,6 +130,7 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl2Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
+    broken = stdenv.isDarwin;
   };
 }
 # TODO: a better way to organize the options
diff --git a/pkgs/applications/emulators/kega-fusion/default.nix b/pkgs/applications/emulators/kega-fusion/default.nix
index e8feb1ea7ed50..1b95dec89face 100644
--- a/pkgs/applications/emulators/kega-fusion/default.nix
+++ b/pkgs/applications/emulators/kega-fusion/default.nix
@@ -72,6 +72,7 @@ in stdenv.mkDerivation {
     description = "Sega SG1000, SC3000, SF7000, Master System, Game Gear, Genesis/Megadrive, SVP, Pico, SegaCD/MegaCD and 32X emulator";
     homepage = "https://www.carpeludum.com/kega-fusion/";
     maintainers = with maintainers; [ abbradar ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = [ "i686-linux" ];
   };
diff --git a/pkgs/applications/emulators/ryujinx/deps.nix b/pkgs/applications/emulators/ryujinx/deps.nix
index 4ecbd6ca80677..dc831080d7fd9 100644
--- a/pkgs/applications/emulators/ryujinx/deps.nix
+++ b/pkgs/applications/emulators/ryujinx/deps.nix
@@ -12,9 +12,9 @@
   (fetchNuGet { pname = "GtkSharp"; version = "3.22.25.128"; sha256 = "0z0wx0p3gc02r8d7y88k1rw307sb2vapbr1k1yc5qdc38fxz5jsy"; })
   (fetchNuGet { pname = "GtkSharp.Dependencies"; version = "1.1.1"; sha256 = "0ffywnc3ca1lwhxdnk99l238vsprsrsh678bgm238lb7ja7m52pw"; })
   (fetchNuGet { pname = "LibHac"; version = "0.16.1"; sha256 = "131qnqa1asdmymwdvpjza6w646b05jzn1cxjdxgwh7qdcdb77xyx"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "15fbzv7yywhzfmkkrqi9xxwi0h6fy9miz5ihl8j4hd0psqc8wil3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1wl227mbbda039dznl2lvd65kh3k978qa88pa2ayqjx3vb6394q9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.8.0"; sha256 = "1y05sjk7wgd29a47v1yhn2s1lrd8wgazkilvmjbvivmrrm3fqjs8"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.5.0"; sha256 = "01i28nvzccxbqmiz217fxs6hnjwmd5fafs37rd49a6qp53y6623l"; })
@@ -23,11 +23,11 @@
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "6.15.0"; sha256 = "0jn9a20a2zixnkm3bmpmvmiv7mk0hqdlnpi0qgjkg1nir87czm19"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "6.15.0"; sha256 = "1nbgydr45f7lp980xyrkzpyaw2mkkishjwp3slgxk7f0mz6q8i1v"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.8.0"; sha256 = "1ln2mva7j2mpsj9rdhpk8vhm3pgd8wn563xqdcwd38avnhp74rm9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.5"; sha256 = "1bx0bbzwnbp7r7dcxcq5222zbhmgirs75lcm6azqw5f5qxrvv5x8"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.5"; sha256 = "19lfp3lbvsvc51q46jwy5l39skx5rfiyhk6f6djdc3g5l55kb871"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "0xyvhhksdxjdwn1bfkhvxrgyd92p01r9mdjsand05dmba4q7gxqq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1ihlnzp7zclc76d1ig3dc71l0gm7z5lqqwppjj06aa4yhrsa2baj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.6"; sha256 = "12b6ya9q5wszfq6yp38lpan8zws95gbp1vs9pydk3v82gai336r3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.6"; sha256 = "186ammhxnkh4m68f1s70rca23025lwzhxnc7m82wjg18rwz2vnkl"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0l15md6rzr2dvwvnk8xj1qz1dcjcbmp0aglnflrj8av60g5r1kwd"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1a6hvkiy2z6z7v7rw1q61qqlw7w0hzc4my3rm94kwgjcv5qkpr5k"; })
   (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"; })
diff --git a/pkgs/applications/emulators/wine/base.nix b/pkgs/applications/emulators/wine/base.nix
index 7788b13b4ecb5..e3875e130a189 100644
--- a/pkgs/applications/emulators/wine/base.nix
+++ b/pkgs/applications/emulators/wine/base.nix
@@ -191,6 +191,10 @@ stdenv.mkDerivation ((lib.optionalAttrs (buildScript != null) {
     inherit version;
     homepage = "https://www.winehq.org/";
     license = with lib.licenses; [ lgpl21Plus ];
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryNativeCode  # mono, gecko
+    ];
     description = if supportFlags.waylandSupport then "An Open Source implementation of the Windows API on top of OpenGL and Unix (with experimental Wayland support)" else "An Open Source implementation of the Windows API on top of X, OpenGL, and Unix";
     platforms = if supportFlags.waylandSupport then (lib.remove "x86_64-darwin" prevPlatforms) else prevPlatforms;
     maintainers = with lib.maintainers; [ avnik raskin bendlas jmc-figueira ];
diff --git a/pkgs/applications/emulators/wine/sources.nix b/pkgs/applications/emulators/wine/sources.nix
index febbece46f579..a7cc12db5527a 100644
--- a/pkgs/applications/emulators/wine/sources.nix
+++ b/pkgs/applications/emulators/wine/sources.nix
@@ -46,22 +46,22 @@ in rec {
 
   unstable = fetchurl rec {
     # NOTE: Don't forget to change the SHA256 for staging as well.
-    version = "7.8";
+    version = "7.10";
     url = "https://dl.winehq.org/wine/source/7.x/wine-${version}.tar.xz";
-    sha256 = "sha256-j3bpyWtQ8qyOJOXe7fo+DZWWpXBnCSJvZalMahYAGbg=";
+    sha256 = "sha256-P+skzYWYwQ9q9xHnSsK10kQrtNO4wHj506JTroc2SA0=";
     inherit (stable) gecko32 gecko64 patches;
 
     mono = fetchurl rec {
-      version = "7.2.0";
+      version = "7.3.0";
       url = "https://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}-x86.msi";
-      sha256 = "sha256-Xwbq+646SezDHfzqd3B1vUTwzBJuT7Tijs76ButDYyM=";
+      sha256 = "sha256-k54vVmlyDQ0Px+MFQmYioRozt644XE1+WB4p6iZOIv8=";
     };
   };
 
   staging = fetchFromGitHub rec {
     # https://github.com/wine-staging/wine-staging/releases
     inherit (unstable) version;
-    sha256 = "sha256-payP+lx/aGZErGbkpogNMgsE393e7F2VGrllDKu/Lws=";
+    sha256 = "sha256-5Pt98pla6t+B3FjB80hOWJUO64jY1EmOPQ0hEkFBWxY=";
     owner = "wine-staging";
     repo = "wine-staging";
     rev = "v${version}";
diff --git a/pkgs/applications/finance/cryptowatch/default.nix b/pkgs/applications/finance/cryptowatch/default.nix
index 09531e4650e8f..4bf7a1a0b4f35 100644
--- a/pkgs/applications/finance/cryptowatch/default.nix
+++ b/pkgs/applications/finance/cryptowatch/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
     homepage = "https://cryptowat.ch";
     description = "Application for visualising real-time cryptocurrency market data";
     platforms = platforms.linux;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ livnev ];
   };
diff --git a/pkgs/applications/finance/odoo/default.nix b/pkgs/applications/finance/odoo/default.nix
index bd8b21aa5aa06..c755b0fb6678a 100644
--- a/pkgs/applications/finance/odoo/default.nix
+++ b/pkgs/applications/finance/odoo/default.nix
@@ -1,14 +1,14 @@
 { stdenv
 , lib
 , fetchurl
-, python3
+, python39
 , nodePackages
 , wkhtmltopdf
 , nixosTests
 }:
 
 let
-  python = python3.override {
+  python = python39.override {
     packageOverrides = self: super: {
       click = super.click.overridePythonAttrs (old: rec {
         version = "7.1.2";
diff --git a/pkgs/applications/gis/gmt/default.nix b/pkgs/applications/gis/gmt/default.nix
index 0420619e87790..c6e0846e54dc3 100644
--- a/pkgs/applications/gis/gmt/default.nix
+++ b/pkgs/applications/gis/gmt/default.nix
@@ -9,10 +9,10 @@
 
 stdenv.mkDerivation rec {
   pname = "gmt";
-  version = "6.3.0";
+  version = "6.4.0";
   src = fetchurl {
     url = "https://github.com/GenericMappingTools/gmt/releases/download/${version}/gmt-${version}-src.tar.gz";
-    sha256 = "sha256-LNBz2LHxG4elmziqeq+OOceUDStVpGoyZ+I4AuyKCNE=";
+    sha256 = "sha256-0mfAx9b7MMnqfgKe8n2tsm/9e5LLS0cD+aO6Do85Ohs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/gis/qgis/unwrapped-ltr.nix b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
index e6bf2250b64a3..0ad11bc630bf9 100644
--- a/pkgs/applications/gis/qgis/unwrapped-ltr.nix
+++ b/pkgs/applications/gis/qgis/unwrapped-ltr.nix
@@ -69,14 +69,14 @@ let
     six
   ];
 in mkDerivation rec {
-  version = "3.22.6";
+  version = "3.22.8";
   pname = "qgis-ltr-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-ACNEIU+kYmOa+/1nbFPTSDgyvviXqKP9kvL6aRykueY=";
+    sha256 = "sha256-YxF7FzyNNt+bdk96g2sWWv9haqV0L6Ab96D0hV0BFrA=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/qgis/unwrapped.nix b/pkgs/applications/gis/qgis/unwrapped.nix
index 32ee893cbaa17..1c46cd81f65ab 100644
--- a/pkgs/applications/gis/qgis/unwrapped.nix
+++ b/pkgs/applications/gis/qgis/unwrapped.nix
@@ -69,14 +69,14 @@ let
     six
   ];
 in mkDerivation rec {
-  version = "3.24.2";
+  version = "3.26.0";
   pname = "qgis-unwrapped";
 
   src = fetchFromGitHub {
     owner = "qgis";
     repo = "QGIS";
     rev = "final-${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-skoepsX9xREqN5SoA4eUN7LKa6KGvixPd5k0KKXzKJo=";
+    sha256 = "sha256-yHQi5ai7fdgznTf562Bj0QPE+SXg972O7+r01RY7itE=";
   };
 
   passthru = {
diff --git a/pkgs/applications/gis/udig/default.nix b/pkgs/applications/gis/udig/default.nix
index b939cf05e754a..808b70ed5ec93 100644
--- a/pkgs/applications/gis/udig/default.nix
+++ b/pkgs/applications/gis/udig/default.nix
@@ -18,6 +18,7 @@ let
   meta = with lib; {
     description = "User-friendly Desktop Internet GIS";
     homepage = "http://udig.refractions.net/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ epl10 bsd3 ];
     maintainers = with maintainers; [ sikmir ];
     platforms = builtins.attrNames srcs;
diff --git a/pkgs/applications/graphics/ImageMagick/7.0.nix b/pkgs/applications/graphics/ImageMagick/7.0.nix
index c63d9d982a0f7..14525e6d5fcc5 100644
--- a/pkgs/applications/graphics/ImageMagick/7.0.nix
+++ b/pkgs/applications/graphics/ImageMagick/7.0.nix
@@ -45,13 +45,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "imagemagick";
-  version = "7.1.0-37";
+  version = "7.1.0-39";
 
   src = fetchFromGitHub {
     owner = "ImageMagick";
     repo = "ImageMagick";
     rev = version;
-    hash = "sha256-Okp3oPIAEXl+fTnEw0jufSxcRU6ip+on5/IyGEjzx2E=";
+    hash = "sha256-2KSsRkzaC3muNwH4GJfIiMy4pnSjh8waDpYRTuu6GG0=";
   };
 
   outputs = [ "out" "dev" "doc" ]; # bin/ isn't really big
diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix
index 4d2db993b8d1f..a6a3563743b36 100644
--- a/pkgs/applications/graphics/avocode/default.nix
+++ b/pkgs/applications/graphics/avocode/default.nix
@@ -99,6 +99,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://avocode.com/";
     description = "The bridge between designers and developers";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ megheaiulian ];
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 674a87dea47e1..85d201f32dcd8 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
 
 stdenv.mkDerivation rec {
   pname = "drawio";
-  version = "19.0.2";
+  version = "19.0.3";
 
   src = fetchurl {
     url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/drawio-x86_64-${version}.rpm";
-    sha256 = "46b4e7269628100ea3c083dee75308d9746780e46eac15d2c5495fdeece7e323";
+    sha256 = "be456d396a19dcb8881ad4bff315197306ae05cca5e47332a1e5ad572948614e";
   };
 
   nativeBuildInputs = [
@@ -95,6 +95,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A desktop application for creating diagrams";
     homepage = "https://about.draw.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
     maintainers = with maintainers; [ darkonion0 ];
diff --git a/pkgs/applications/graphics/fiji/default.nix b/pkgs/applications/graphics/fiji/default.nix
index 270132eca940a..039eb45a29670 100644
--- a/pkgs/applications/graphics/fiji/default.nix
+++ b/pkgs/applications/graphics/fiji/default.nix
@@ -66,7 +66,10 @@ stdenv.mkDerivation rec {
     homepage = "https://imagej.net/software/fiji/";
     description = "batteries-included distribution of ImageJ2, bundling a lot of plugins which facilitate scientific image analysis";
     platforms = [ "x86_64-linux" ];
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = with lib.licenses; [ gpl2Plus gpl3Plus bsd2 publicDomain ];
     maintainers = with maintainers; [ zane ];
   };
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 8f5404cf3ae92..c05f3502aec32 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -48,13 +48,13 @@
 
 mkDerivation rec {
   pname = "freecad";
-  version = "0.19.2";
+  version = "0.20";
 
   src = fetchFromGitHub {
     owner = "FreeCAD";
     repo = "FreeCAD";
     rev = version;
-    hash = "sha256-XZ+fRl3CPCIFu3nHeMTLibwwFBlG/cWpKJlI58hTAuU=";
+    hash = "sha256-Em4XVxDfvVG1Kf7q+6uHNA/VcMGLKMTv5TCh2XF/BtQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/gimp/default.nix b/pkgs/applications/graphics/gimp/default.nix
index cefba7ff77474..ee733a0b1b0c0 100644
--- a/pkgs/applications/graphics/gimp/default.nix
+++ b/pkgs/applications/graphics/gimp/default.nix
@@ -18,6 +18,7 @@
 , lcms
 , libpng
 , libjpeg
+, libjxl
 , poppler
 , poppler_data
 , libtiff
@@ -53,13 +54,13 @@ let
   python = python2.withPackages (pp: [ pp.pygtk ]);
 in stdenv.mkDerivation rec {
   pname = "gimp";
-  version = "2.10.30";
+  version = "2.10.32";
 
   outputs = [ "out" "dev" ];
 
   src = fetchurl {
     url = "http://download.gimp.org/pub/gimp/v${lib.versions.majorMinor version}/${pname}-${version}.tar.bz2";
-    sha256 = "iIFdqnbtfUJ37rNTNYuvoRbNL80shh2VuVE1wdUrZ9w=";
+    sha256 = "PxXHBVSvXcwbRubcaPPY8KbMn+VrbXisCMD9hZq4miU=";
   };
 
   patches = [
@@ -100,6 +101,7 @@ in stdenv.mkDerivation rec {
     lcms
     libpng
     libjpeg
+    libjxl
     poppler
     poppler_data
     libtiff
diff --git a/pkgs/applications/graphics/gimp/plugins/default.nix b/pkgs/applications/graphics/gimp/plugins/default.nix
index 79760bb31a650..ae44b47643cd6 100644
--- a/pkgs/applications/graphics/gimp/plugins/default.nix
+++ b/pkgs/applications/graphics/gimp/plugins/default.nix
@@ -229,6 +229,10 @@ in
       Filters/Enhance/Wavelet sharpen
     */
     name = "wavelet-sharpen-0.1.2";
+    # Workaround build failure on -fno-common toolchains like upstream
+    # gcc-10. Otherwise build fails as:
+    #   ld: interface.o:(.bss+0xe0): multiple definition of `fimg'; plugin.o:(.bss+0x40): first defined here
+    NIX_CFLAGS_COMPILE = "-fcommon";
     NIX_LDFLAGS = "-lm";
     src = fetchurl {
       url = "https://github.com/pixlsus/registry.gimp.org_static/raw/master/registry.gimp.org/files/wavelet-sharpen-0.1.2.tar.gz";
@@ -250,6 +254,15 @@ in
       rev = "v${version}";
       sha256 = "81ajdZ2zQi/THxnBlSeT36tVTEzrS1YqLGpHMhFTKAo=";
     };
+    patches = [
+      # Pull upstream fix for -fno-common toolchain support:
+      #   https://github.com/carlobaldassi/gimp-lqr-plugin/pull/6
+      (fetchpatch {
+        name = "fno-common.patch";
+        url = "https://github.com/carlobaldassi/gimp-lqr-plugin/commit/ae3464a82e1395fc577cc94999bdc7c4a7bb35f1.patch";
+        sha256 = "EdjZWM6U1bhUmsOnLA8iJ4SFKuAXHIfNPzxZqel+JrY=";
+      })
+    ];
   };
 
   gmic = pkgs.gmic-qt.override {
diff --git a/pkgs/applications/graphics/hydrus/default.nix b/pkgs/applications/graphics/hydrus/default.nix
index a9f2699a1f6df..dcebff3fcf3a8 100644
--- a/pkgs/applications/graphics/hydrus/default.nix
+++ b/pkgs/applications/graphics/hydrus/default.nix
@@ -10,14 +10,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "hydrus";
-  version = "487";
+  version = "488d";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "hydrusnetwork";
     repo = "hydrus";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-4FYUIEk8KJO4nqONNpLUtxAMud3vdfl50zbKQxC5Hw4=";
+    sha256 = "sha256-FWiopOf+eabiWAfjQW83V7I/e5lOLUVW3djoQePHPRs=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/image_optim/Gemfile.lock b/pkgs/applications/graphics/image_optim/Gemfile.lock
index 3ffadb5acbe31..db55fa8be3eea 100644
--- a/pkgs/applications/graphics/image_optim/Gemfile.lock
+++ b/pkgs/applications/graphics/image_optim/Gemfile.lock
@@ -1,17 +1,17 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    exifr (1.3.6)
-    fspath (3.1.0)
-    image_optim (0.26.3)
+    exifr (1.3.9)
+    fspath (3.1.2)
+    image_optim (0.31.1)
       exifr (~> 1.2, >= 1.2.2)
       fspath (~> 3.0)
-      image_size (>= 1.5, < 3)
+      image_size (>= 1.5, < 4)
       in_threads (~> 1.3)
       progress (~> 3.0, >= 3.0.1)
-    image_size (2.0.0)
-    in_threads (1.5.1)
-    progress (3.5.0)
+    image_size (3.0.2)
+    in_threads (1.6.0)
+    progress (3.6.0)
 
 PLATFORMS
   ruby
@@ -20,4 +20,4 @@ DEPENDENCIES
   image_optim
 
 BUNDLED WITH
-   2.1.4
+   2.3.9
diff --git a/pkgs/applications/graphics/image_optim/gemset.nix b/pkgs/applications/graphics/image_optim/gemset.nix
index 08e7f5c78ef94..b9ea65e552245 100644
--- a/pkgs/applications/graphics/image_optim/gemset.nix
+++ b/pkgs/applications/graphics/image_optim/gemset.nix
@@ -1,51 +1,63 @@
 {
   exifr = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0q2abhiyvgfv23i0izbskjxcqaxiw9bfg6s57qgn4li4yxqpwpfg";
+      sha256 = "0mylhwmh6n4xihxr9s3zj0lc286f5maxbqd4dgk3paqnd7afz88s";
       type = "gem";
     };
-    version = "1.3.6";
+    version = "1.3.9";
   };
   fspath = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vjn9sy4hklr2d5wxmj5x1ry31dfq3sjp779wyprb3nbbdmra1sc";
+      sha256 = "0xcxikkrjv8ws328nn5ax5pyfjs8pn7djg1hks7qyb3yp6prpb5m";
       type = "gem";
     };
-    version = "3.1.0";
+    version = "3.1.2";
   };
   image_optim = {
     dependencies = ["exifr" "fspath" "image_size" "in_threads" "progress"];
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "082w9qcyy9j6m6s2pknfdcik7l2qch4j48axs13m06l4s1hz0dmg";
+      sha256 = "1l3n59w1cbvfg2srfa14g3jdqwbkf7l86g4qrgfz3qps7zi0drg7";
       type = "gem";
     };
-    version = "0.26.3";
+    version = "0.31.1";
   };
   image_size = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bcn7nc6qix3w4sf7xd557lnsgjniqa7qvz7nnznx70m8qfbc7ig";
+      sha256 = "033k72f8n28psm89wv1qwsrnqyzz57ihyivyi442wha6vr9iyjz3";
       type = "gem";
     };
-    version = "2.0.0";
+    version = "3.0.2";
   };
   in_threads = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14hqm59sgqi91ag187zwpgwi58xckjkk58m031ghkp0csl8l9mkx";
+      sha256 = "0j9132d4g8prjafgdh4pw948j527kr09m2lvylrcd797il9yd9wi";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.6.0";
   };
   progress = {
+    groups = ["default"];
+    platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1yrzq4v5sp7cg4nbgqh11k3d1czcllfz98dcdrxrsjxwq5ziiw0p";
+      sha256 = "0wymdk40cwrqn32gwg1kw94s5p1n0z3n7ma7x1s62gd4vw3d63in";
       type = "gem";
     };
-    version = "3.5.0";
+    version = "3.6.0";
   };
 }
diff --git a/pkgs/applications/graphics/ipe/default.nix b/pkgs/applications/graphics/ipe/default.nix
index d4d00ad9c6ffb..045ac5d665cfe 100644
--- a/pkgs/applications/graphics/ipe/default.nix
+++ b/pkgs/applications/graphics/ipe/default.nix
@@ -19,11 +19,11 @@
 
 mkDerivation rec {
   pname = "ipe";
-  version = "7.2.23";
+  version = "7.2.24";
 
   src = fetchurl {
-    url = "https://dl.bintray.com/otfried/generic/ipe/7.2/${pname}-${version}-src.tar.gz";
-    sha256 = "0yvm3zfba1ljyy518vjnvwpyg7lgnmdwm19v5k0wfgz64aca56x1";
+    url = "https://github.com/otfried/ipe/releases/download/v${version}/ipe-${version}-src.tar.gz";
+    sha256 = "sha256-/rh58k0dziWRB5B3BEbVCwPkbuLr19KBV7FwWXFkT28=";
   };
 
   sourceRoot = "${pname}-${version}/src";
diff --git a/pkgs/applications/graphics/kodelife/default.nix b/pkgs/applications/graphics/kodelife/default.nix
index 1c4609ac55b73..6286e64e3efe8 100644
--- a/pkgs/applications/graphics/kodelife/default.nix
+++ b/pkgs/applications/graphics/kodelife/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://hexler.net/products/kodelife";
     description = "Real-time GPU shader editor";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ prusnak ];
     platforms = [ "aarch64-linux" "armv7l-linux" "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/lightburn/default.nix b/pkgs/applications/graphics/lightburn/default.nix
index 05a99527e5f71..50b1cb37ffaf2 100644
--- a/pkgs/applications/graphics/lightburn/default.nix
+++ b/pkgs/applications/graphics/lightburn/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Layout, editing, and control software for your laser cutter";
     homepage = "https://lightburnsoftware.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ q3k ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/lorien/default.nix b/pkgs/applications/graphics/lorien/default.nix
new file mode 100644
index 0000000000000..e3e8daf876622
--- /dev/null
+++ b/pkgs/applications/graphics/lorien/default.nix
@@ -0,0 +1,124 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+
+, copyDesktopItems
+, makeDesktopItem
+
+, godot-export-templates
+, godot-headless
+
+, alsa-lib
+, libGL
+, libGLU
+, libX11
+, libXcursor
+, libXext
+, libXfixes
+, libXi
+, libXinerama
+, libXrandr
+, libXrender
+, zlib
+, udev # for libudev
+}:
+
+let
+  preset =
+    if stdenv.isLinux then "Linux/X11"
+    else if stdenv.isDarwin then "Mac OSX"
+    else throw "unsupported platform";
+in
+stdenv.mkDerivation rec {
+  pname = "lorien";
+  version = "0.5.0";
+
+  src = fetchFromGitHub {
+    owner = "mbrlabs";
+    repo = "Lorien";
+    rev = "v${version}";
+    sha256 = "sha256-x81Obana2BEGrYSoJHDdCkL6UaULfQGQ94tlrH5+kdY=";
+  };
+
+  nativeBuildInputs = [
+    copyDesktopItems
+    godot-headless
+  ];
+
+  buildInputs = [
+    alsa-lib
+    libGL
+    libGLU
+    libX11
+    libXcursor
+    libXext
+    libXfixes
+    libXi
+    libXinerama
+    libXrandr
+    libXrender
+    zlib
+    udev
+  ];
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "lorien";
+      exec = "lorien";
+      icon = "lorien";
+      desktopName = "Lorien";
+      genericName = "Whiteboard";
+      comment = meta.description;
+      categories = [ "Graphics" "Office" ];
+      keywords = [ "whiteboard" ];
+    })
+  ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    # Cannot create file '/homeless-shelter/.config/godot/projects/...'
+    export HOME=$TMPDIR
+
+    # Link the export-templates to the expected location. The --export commands
+    # expects the template-file at .../templates/{godot-version}.stable/linux_x11_64_release
+    mkdir -p $HOME/.local/share/godot
+    ln -s ${godot-export-templates}/share/godot/templates $HOME/.local/share/godot
+
+    mkdir -p $out/share/lorien
+
+    godot-headless --path lorien --export "${preset}" $out/share/lorien/lorien
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    ln -s $out/share/lorien/lorien $out/bin
+
+    # Patch binaries.
+    interpreter=$(cat $NIX_CC/nix-support/dynamic-linker)
+    patchelf \
+      --set-interpreter $interpreter \
+      --set-rpath ${lib.makeLibraryPath buildInputs} \
+      $out/share/lorien/lorien
+
+    install -Dm644 images/lorien.png $out/share/pixmaps/lorien.png
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/mbrlabs/Lorien";
+    description = "An infinite canvas drawing/note-taking app";
+    longDescription = ''
+      An infinite canvas drawing/note-taking app that is focused on performance,
+      small savefiles and simplicity
+    '';
+    license = licenses.mit;
+    platforms   = platforms.unix;
+    maintainers = with maintainers; [ hqurve ];
+  };
+}
diff --git a/pkgs/applications/graphics/mcomix/default.nix b/pkgs/applications/graphics/mcomix/default.nix
index 530ae0013b5a5..5c6e49ea9a64e 100644
--- a/pkgs/applications/graphics/mcomix/default.nix
+++ b/pkgs/applications/graphics/mcomix/default.nix
@@ -5,7 +5,7 @@
 , gtk3
 , mcomix
 , python3
-, testVersion
+, testers
 , wrapGAppsHook
 
 # Recommended Dependencies:
@@ -46,7 +46,7 @@ python3.pkgs.buildPythonApplication rec {
     )
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = mcomix;
   };
 
diff --git a/pkgs/applications/graphics/odafileconverter/default.nix b/pkgs/applications/graphics/odafileconverter/default.nix
index b99902954572a..3a089febc3df3 100644
--- a/pkgs/applications/graphics/odafileconverter/default.nix
+++ b/pkgs/applications/graphics/odafileconverter/default.nix
@@ -46,6 +46,7 @@ in mkDerivation {
   meta = with lib; {
     description = "For converting between different versions of .dwg and .dxf";
     homepage = "https://www.opendesign.com/guestfiles/oda_file_converter";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ nagisa ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/panotools/default.nix b/pkgs/applications/graphics/panotools/default.nix
index 52351fab4ce58..dbc5b973fe9c0 100644
--- a/pkgs/applications/graphics/panotools/default.nix
+++ b/pkgs/applications/graphics/panotools/default.nix
@@ -1,15 +1,16 @@
-{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl }:
+{ fetchurl, lib, stdenv, libjpeg, libpng, libtiff, perl, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "libpano13";
-  version = "2.9.20";
+  version = "2.9.21";
 
   src = fetchurl {
     url = "mirror://sourceforge/panotools/${pname}-${version}.tar.gz";
-    sha256 = "12cv4886l1czfjwy7k6ipgf3zjksgwhdjzr2s9fdg33vqcv2hlrv";
+    sha256 = "sha256-eeWhRSGZMF4pYUYnIO9ZQRUnecEnxblvw0DSSS5jNZA=";
   };
 
   buildInputs = [ perl libjpeg libpng libtiff ];
+  nativeBuildInputs = [ cmake ];
 
   # one of the tests succeeds on my machine but fails on Hydra (no idea why)
   #doCheck = true;
diff --git a/pkgs/applications/graphics/pencil/default.nix b/pkgs/applications/graphics/pencil/default.nix
index 5c5557d6d6016..ffd31bf7325ac 100644
--- a/pkgs/applications/graphics/pencil/default.nix
+++ b/pkgs/applications/graphics/pencil/default.nix
@@ -99,6 +99,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GUI prototyping/mockup tool";
     homepage    = "https://pencil.evolus.vn/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl2; # Commercial license is also available
     maintainers = with maintainers; [ bjornfor prikhi mrVanDalo ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/graphics/pixeluvo/default.nix b/pkgs/applications/graphics/pixeluvo/default.nix
index 0c90b786baca9..f3b40b515183a 100644
--- a/pkgs/applications/graphics/pixeluvo/default.nix
+++ b/pkgs/applications/graphics/pixeluvo/default.nix
@@ -49,6 +49,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A Beautifully Designed Image and Photo Editor for Windows and Linux";
     homepage = "http://www.pixeluvo.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ wolfangaukang ];
diff --git a/pkgs/applications/graphics/pixinsight/default.nix b/pkgs/applications/graphics/pixinsight/default.nix
index 8e864b6409689..f54aef75ac15a 100644
--- a/pkgs/applications/graphics/pixinsight/default.nix
+++ b/pkgs/applications/graphics/pixinsight/default.nix
@@ -7,12 +7,12 @@
 
 stdenv.mkDerivation rec {
   pname = "pixinsight";
-  version = "1.8.9";
+  version = "1.8.9-1";
 
   src = requireFile rec {
-    name = "PI-linux-x64-${version}-20220313-c.tar.xz";
+    name = "PI-linux-x64-${version}-20220518-c.tar.xz";
     url = "https://pixinsight.com/";
-    sha256 = "sha256-LvrTB8fofuysxR3OoZ2fkkOQU62yUAu8ePOczJG2uqU=";
+    sha256 = "sha256-AVeDJ7YYqCo7KfelUUQurjglNnTwCf0pOzJCV/bQrrw=";
     message = ''
       PixInsight is available from ${url} and requires a commercial (or trial) license.
       After a license has been obtained, PixInsight can be downloaded from the software distribution
@@ -124,6 +124,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Scientific image processing program for astrophotography";
     homepage = "https://pixinsight.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.sheepforce ];
diff --git a/pkgs/applications/graphics/qosmic/default.nix b/pkgs/applications/graphics/qosmic/default.nix
index 96823441b6e16..9e2248f896de7 100644
--- a/pkgs/applications/graphics/qosmic/default.nix
+++ b/pkgs/applications/graphics/qosmic/default.nix
@@ -1,4 +1,4 @@
-{ mkDerivation
+{ stdenv
 , fetchFromGitHub
 , fetchpatch
 , qmake
@@ -13,7 +13,7 @@
 , lib
 }:
 
-mkDerivation rec {
+stdenv.mkDerivation rec {
   pname = "qosmic";
   version = "1.6.0";
 
@@ -42,6 +42,13 @@ mkDerivation rec {
     })
   ];
 
+  postPatch = lib.optionalString stdenv.isDarwin ''
+    substituteInPlace qosmic.pro \
+      --replace "/share" "/Applications/qosmic.app/Contents/Resources" \
+      --replace "/qosmic/scripts" "/scripts" \
+      --replace "install_icons install_desktop" ""
+  '';
+
   nativeBuildInputs = [ qmake wrapQtAppsHook pkg-config ];
 
   buildInputs = [
@@ -55,16 +62,19 @@ mkDerivation rec {
 
   qmakeFlags = [
     # Use pkg-config to correctly locate library paths
-    "-config" "link_pkgconfig"
+    "CONFIG+=link_pkgconfig"
   ];
 
+  preInstall = lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv qosmic.app $out/Applications
+  '';
+
   meta = with lib; {
     description = "A cosmic recursive flame fractal editor";
     homepage = "https://github.com/bitsed/qosmic";
     license = licenses.gpl3Plus;
     maintainers = [ maintainers.raboof ];
-    # It might be possible to make it work on OSX,
-    # but this has not been tested.
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/graphics/sane/backends/brscan4/default.nix b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
index ea70224a932a0..ec8efcc27c2a6 100644
--- a/pkgs/applications/graphics/sane/backends/brscan4/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan4/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
     description = "Brother brscan4 sane backend driver";
     homepage = "http://www.brother.com";
     platforms = [ "i686-linux" "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ jraygauthier ];
   };
diff --git a/pkgs/applications/graphics/sane/backends/brscan5/default.nix b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
index 4d276bd57bc3d..59daa9eb09ab8 100644
--- a/pkgs/applications/graphics/sane/backends/brscan5/default.nix
+++ b/pkgs/applications/graphics/sane/backends/brscan5/default.nix
@@ -102,6 +102,7 @@ stdenv.mkDerivation rec {
     description = "Brother brscan5 sane backend driver";
     homepage = "https://www.brother.com";
     platforms = [ "i686-linux" "x86_64-linux" ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ mattchrist ];
   };
diff --git a/pkgs/applications/graphics/sane/backends/dsseries/default.nix b/pkgs/applications/graphics/sane/backends/dsseries/default.nix
index 8a01f70c6b00f..93e179d867d93 100644
--- a/pkgs/applications/graphics/sane/backends/dsseries/default.nix
+++ b/pkgs/applications/graphics/sane/backends/dsseries/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
     description = "Brother DSSeries SANE backend driver";
     homepage = "http://www.brother.com";
     platforms = lib.platforms.linux;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ callahad ];
   };
diff --git a/pkgs/applications/graphics/solvespace/default.nix b/pkgs/applications/graphics/solvespace/default.nix
index 68744831538c4..e0605ad81e43f 100644
--- a/pkgs/applications/graphics/solvespace/default.nix
+++ b/pkgs/applications/graphics/solvespace/default.nix
@@ -7,6 +7,7 @@
 , at-spi2-core
 , cairo
 , dbus
+, eigen
 , freetype
 , fontconfig
 , glew
@@ -18,6 +19,7 @@
 , libpng
 , libselinux
 , libsepol
+, libspnav
 , libthai
 , libxkbcommon
 , pangomm
@@ -29,13 +31,13 @@
 
 stdenv.mkDerivation rec {
   pname = "solvespace";
-  version = "3.0";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-aaYqUZ0c1lCL91fmxtKFAAE2uUWrjnDB3WdcqdutXhE=";
+    hash = "sha256-sSDht8pBrOG1YpsWfC/CLTTWh2cI5pn2PXGH900Z0yA=";
     fetchSubmodules = true;
   };
 
@@ -49,6 +51,7 @@ stdenv.mkDerivation rec {
     at-spi2-core
     cairo
     dbus
+    eigen
     freetype
     fontconfig
     glew
@@ -60,6 +63,7 @@ stdenv.mkDerivation rec {
     libpng
     libselinux
     libsepol
+    libspnav
     libthai
     libxkbcommon
     pangomm
diff --git a/pkgs/applications/graphics/synfigstudio/default.nix b/pkgs/applications/graphics/synfigstudio/default.nix
index 57f3560233609..a77a0313223bf 100644
--- a/pkgs/applications/graphics/synfigstudio/default.nix
+++ b/pkgs/applications/graphics/synfigstudio/default.nix
@@ -1,122 +1,136 @@
-{ lib, stdenv, fetchFromGitHub, boost, cairo, gettext, glibmm, gtk3, gtkmm3
-, libjack2, libsigcxx, libxmlxx, makeWrapper, mlt-qt5, pango, pkg-config
-, imagemagick, intltool, autoreconfHook, which, gnome
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, autoreconfHook
+, wrapGAppsHook
+
+, boost
+, cairo
+, gettext
+, glibmm
+, gtk3
+, gtkmm3
+, libjack2
+, libsigcxx
+, libxmlxx
+, mlt
+, pango
+, imagemagick
+, intltool
+, gnome
+, harfbuzz
+, freetype
+, fribidi
+, openexr
+, fftw
 }:
 
 let
-  version = "1.0.2";
+  version = "1.5.1";
+  src = fetchFromGitHub {
+    owner = "synfig";
+    repo = "synfig";
+    rev = "v${version}";
+    hash = "sha256-9vBYESaSgW/1FWH2uFBvPiYvxLlX0LLNnd4S7ACJcwI=";
+  };
 
   ETL = stdenv.mkDerivation {
-    name = "ETL-0.04.19";
-
-    src = fetchFromGitHub {
-       repo   = "synfig";
-       owner  = "synfig";
-       rev    = version;
-       sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
-    };
+    pname = "ETL";
+    inherit version src;
 
-    postUnpack = "sourceRoot=\${sourceRoot}/ETL/";
+    sourceRoot = "source/ETL";
 
-    nativeBuildInputs = [ autoreconfHook ];
+    nativeBuildInputs = [
+      pkg-config
+      autoreconfHook
+    ];
+    buildInputs = [
+      glibmm
+    ];
   };
 
   synfig = stdenv.mkDerivation {
     pname = "synfig";
-    inherit version;
-
-    src = fetchFromGitHub {
-       repo   = "synfig";
-       owner  = "synfig";
-       rev    = version;
-       sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
-    };
+    inherit version src;
 
-    postUnpack = "sourceRoot=\${sourceRoot}/synfig-core/";
+    sourceRoot = "source/synfig-core";
 
     configureFlags = [
       "--with-boost=${boost.dev}"
       "--with-boost-libdir=${boost.out}/lib"
     ];
 
-    nativeBuildInputs = [ pkg-config autoreconfHook gettext ];
+    nativeBuildInputs = [
+      pkg-config
+      autoreconfHook
+      gettext
+      intltool
+    ];
     buildInputs = [
-      ETL boost cairo glibmm mlt-qt5 libsigcxx libxmlxx pango
+      ETL
+      boost
+      cairo
+      glibmm
+      mlt
+      libsigcxx
+      libxmlxx
+      pango
+      imagemagick
+      harfbuzz
+      freetype
+      fribidi
+      openexr
+      fftw
     ];
-
-    meta.broken = true;
   };
 in
 stdenv.mkDerivation {
   pname = "synfigstudio";
-  inherit version;
+  inherit version src;
 
-  src = fetchFromGitHub {
-     repo   = "synfig";
-     owner  = "synfig";
-     rev    = version;
-     sha256 = "09ldkvzczqvb1yvlibd62y56dkyprxlr0w3rk38rcs7jnrhj2cqc";
-  };
-
-  postUnpack = "sourceRoot=\${sourceRoot}/synfig-studio/";
+  sourceRoot = "source/synfig-studio";
 
   postPatch = ''
-    for i in \
-      brushlib/brushlib.hpp \
-      gui/canvasview.cpp \
-      gui/compview.cpp \
-      gui/docks/dock_canvasspecific.cpp \
-      gui/docks/dock_children.cpp \
-      gui/docks/dock_curves.cpp \
-      gui/docks/dock_history.cpp \
-      gui/docks/dock_keyframes.cpp \
-      gui/docks/dock_layergroups.cpp \
-      gui/docks/dock_layers.cpp \
-      gui/docks/dock_metadata.cpp \
-      gui/docks/dock_params.cpp \
-      gui/docks/dock_timetrack.cpp \
-      gui/docks/dock_toolbox.cpp \
-      gui/docks/dockable.cpp \
-      gui/docks/dockdialog.cpp \
-      gui/docks/dockmanager.h \
-      gui/duck.h \
-      gui/duckmatic.cpp \
-      gui/duckmatic.h \
-      gui/instance.cpp \
-      gui/instance.h \
-      gui/states/state_stroke.h \
-      gui/states/state_zoom.cpp \
-      gui/widgets/widget_curves.cpp \
-      gui/workarea.cpp \
-      gui/workarearenderer/workarearenderer.h \
-      synfigapp/action_system.h \
-      synfigapp/canvasinterface.h \
-      synfigapp/instance.h \
-      synfigapp/main.h \
-      synfigapp/uimanager.h
-    do
-      substituteInPlace src/"$i" --replace '#include <sigc++/object.h>' '#include <sigc++/sigc++.h>'
-      substituteInPlace src/"$i" --replace '#include <sigc++/hide.h>' '#include <sigc++/adaptors/hide.h>'
-      substituteInPlace src/"$i" --replace '#include <sigc++/retype.h>' '#include <sigc++/adaptors/retype.h>'
-    done
+    patchShebangs images/splash_screen_development.sh
   '';
 
-  preConfigure = "./bootstrap.sh";
+  preConfigure = ''
+    ./bootstrap.sh
+  '';
 
-  nativeBuildInputs = [ pkg-config autoreconfHook gettext makeWrapper ];
+  nativeBuildInputs = [
+    pkg-config
+    autoreconfHook
+    gettext
+    wrapGAppsHook
+  ];
   buildInputs = [
-    ETL boost cairo glibmm gtk3 gtkmm3 imagemagick intltool
-    libjack2 libsigcxx libxmlxx mlt-qt5
-    synfig which gnome.adwaita-icon-theme
+    ETL
+    synfig
+    boost
+    cairo
+    glibmm
+    gtk3
+    gtkmm3
+    imagemagick
+    intltool
+    libjack2
+    libsigcxx
+    libxmlxx
+    mlt
+    gnome.adwaita-icon-theme
+    openexr
+    fftw
   ];
 
-  postInstall = ''
-    wrapProgram "$out/bin/synfigstudio" \
-      --prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
-  '';
-
   enableParallelBuilding = true;
 
+  passthru = {
+    # Expose libraries and cli tools
+    inherit ETL synfig;
+  };
+
   meta = with lib; {
     description = "A 2D animation program";
     homepage = "http://www.synfig.org";
diff --git a/pkgs/applications/graphics/tesseract/tesseract3.nix b/pkgs/applications/graphics/tesseract/tesseract3.nix
index 0e5f38ae7918b..16365674706ed 100644
--- a/pkgs/applications/graphics/tesseract/tesseract3.nix
+++ b/pkgs/applications/graphics/tesseract/tesseract3.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
     description = "OCR engine";
     homepage = "https://github.com/tesseract-ocr/tesseract";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ viric earvstedt ];
+    maintainers = with lib.maintainers; [ viric erikarvstedt ];
     platforms = with lib.platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/applications/graphics/tesseract/tesseract4.nix b/pkgs/applications/graphics/tesseract/tesseract4.nix
index d1f936fab079f..36c4c694a16a8 100644
--- a/pkgs/applications/graphics/tesseract/tesseract4.nix
+++ b/pkgs/applications/graphics/tesseract/tesseract4.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
     description = "OCR engine";
     homepage = "https://github.com/tesseract-ocr/tesseract";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ viric earvstedt ];
+    maintainers = with lib.maintainers; [ viric erikarvstedt ];
     platforms = with lib.platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/applications/graphics/unigine-heaven/default.nix b/pkgs/applications/graphics/unigine-heaven/default.nix
index 2ce05a52812ef..1677e4d65eef4 100644
--- a/pkgs/applications/graphics/unigine-heaven/default.nix
+++ b/pkgs/applications/graphics/unigine-heaven/default.nix
@@ -100,6 +100,7 @@ stdenv.mkDerivation
     {
       description = "The 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" ];
diff --git a/pkgs/applications/graphics/unigine-sanctuary/default.nix b/pkgs/applications/graphics/unigine-sanctuary/default.nix
index 25d10d6166783..4b3f3ab547c66 100644
--- a/pkgs/applications/graphics/unigine-sanctuary/default.nix
+++ b/pkgs/applications/graphics/unigine-sanctuary/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec{
   meta = {
     description = "The Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/sanctuary";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/unigine-superposition/default.nix b/pkgs/applications/graphics/unigine-superposition/default.nix
index 768089d1a0c4f..b1261bb52f23f 100644
--- a/pkgs/applications/graphics/unigine-superposition/default.nix
+++ b/pkgs/applications/graphics/unigine-superposition/default.nix
@@ -139,6 +139,7 @@ buildFHSUserEnv {
   meta = {
     description = "The Unigine Superposition GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/superposition";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/graphics/unigine-tropics/default.nix b/pkgs/applications/graphics/unigine-tropics/default.nix
index 1057c2fa6cad7..f0d5101b4be02 100644
--- a/pkgs/applications/graphics/unigine-tropics/default.nix
+++ b/pkgs/applications/graphics/unigine-tropics/default.nix
@@ -88,6 +88,7 @@ stdenv.mkDerivation {
   meta = {
     description = "The Unigine Heaven GPU benchmarking tool";
     homepage = "https://benchmark.unigine.com/tropics";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.BarinovMaxim ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/unigine-valley/default.nix b/pkgs/applications/graphics/unigine-valley/default.nix
index 9b51373178e44..ee1c9e6c15f89 100644
--- a/pkgs/applications/graphics/unigine-valley/default.nix
+++ b/pkgs/applications/graphics/unigine-valley/default.nix
@@ -128,6 +128,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "The 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
     maintainers = [ lib.maintainers.kierdavis ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/graphics/vengi-tools/default.nix b/pkgs/applications/graphics/vengi-tools/default.nix
index eb5033a4a97c4..fb44d36f62a6d 100644
--- a/pkgs/applications/graphics/vengi-tools/default.nix
+++ b/pkgs/applications/graphics/vengi-tools/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vengi-tools";
-  version = "0.0.18";
+  version = "0.0.20";
 
   src = fetchFromGitHub {
     owner = "mgerhardy";
     repo = "vengi";
     rev = "v${version}";
-    sha256 = "sha256-Ur1X5FhOa87jbjWBXievBfCHW+qP/8bqLiyKAC8+KU4=";
+    sha256 = "sha256-WsG6mjO90QQNsAarxdupZvXubdy06JjQmVYUzygl8l4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/write_stylus/default.nix b/pkgs/applications/graphics/write_stylus/default.nix
index ca8cebb2ec0c6..be20635c50018 100644
--- a/pkgs/applications/graphics/write_stylus/default.nix
+++ b/pkgs/applications/graphics/write_stylus/default.nix
@@ -54,6 +54,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.styluslabs.com/";
     description = "Write is a word processor for handwriting";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = lib.licenses.unfree;
     maintainers = with maintainers; [ oyren ];
diff --git a/pkgs/applications/kde/default.nix b/pkgs/applications/kde/default.nix
index c390e004c8cce..cb661d438cf64 100644
--- a/pkgs/applications/kde/default.nix
+++ b/pkgs/applications/kde/default.nix
@@ -122,6 +122,11 @@ let
       kdenlive = callPackage ./kdenlive {};
       kdepim-runtime = callPackage ./kdepim-runtime {};
       kdepim-addons = callPackage ./kdepim-addons.nix {};
+      kdevelop-pg-qt = callPackage ./kdevelop/kdevelop-pg-qt.nix {};
+      kdevelop-unwrapped = callPackage ./kdevelop/kdevelop.nix {};
+      kdev-php = callPackage ./kdevelop/kdev-php.nix {};
+      kdev-python = callPackage ./kdevelop/kdev-python.nix {};
+      kdevelop = callPackage ./kdevelop/wrapper.nix {};
       kdf = callPackage ./kdf.nix {};
       kdialog = callPackage ./kdialog.nix {};
       kdiamond = callPackage ./kdiamond.nix {};
diff --git a/pkgs/applications/kde/fetch.sh b/pkgs/applications/kde/fetch.sh
index d3b94c2a8527a..fe81cc6e5243d 100644
--- a/pkgs/applications/kde/fetch.sh
+++ b/pkgs/applications/kde/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/release-service/22.04.1/src -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/release-service/22.04.2/src -A '*.tar.xz' )
diff --git a/pkgs/applications/editors/kdevelop5/kdev-php.nix b/pkgs/applications/kde/kdevelop/kdev-php.nix
index 8308830efccc9..46c4af8c1c078 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-php.nix
+++ b/pkgs/applications/kde/kdevelop/kdev-php.nix
@@ -1,13 +1,7 @@
-{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, kdevelop-pg-qt }:
+{ mkDerivation, lib, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, kdevelop-pg-qt }:
 
-stdenv.mkDerivation rec {
+mkDerivation rec {
   pname = "kdev-php";
-  version = "5.6.2";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/kdevelop/${version}/src/${pname}-${version}.tar.xz";
-    hash = "sha256-8Qg9rsK4x1LeGgRB0Pn3InSx4tKccjAF7Xjc+Lpxfgw=";
-  };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
   buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
diff --git a/pkgs/applications/editors/kdevelop5/kdev-python.nix b/pkgs/applications/kde/kdevelop/kdev-python.nix
index 374b4224ca6bd..66335429bdd13 100644
--- a/pkgs/applications/editors/kdevelop5/kdev-python.nix
+++ b/pkgs/applications/kde/kdevelop/kdev-python.nix
@@ -1,13 +1,13 @@
-{ stdenv, lib, fetchurl, cmake, extra-cmake-modules, threadweaver, ktexteditor, kdevelop-unwrapped, python }:
-
-stdenv.mkDerivation rec {
+{ mkDerivation, lib, cmake, extra-cmake-modules
+, threadweaver, ktexteditor, kdevelop-unwrapped, python39
+}:
+let
+  # FIXME: stick with python 3.9 until MR supporting 3.10 is ready:
+  # https://invent.kde.org/kdevelop/kdev-python/-/merge_requests/16
+  python = python39;
+in
+mkDerivation rec {
   pname = "kdev-python";
-  version = "5.6.2";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/kdevelop/${version}/src/${pname}-${version}.tar.xz";
-    hash = "sha256-IPm3cblhJi3tmGpPMrjSWa2fe8SLsp6sCl1YU74dkX8=";
-  };
 
   cmakeFlags = [
     "-DPYTHON_EXECUTABLE=${python}/bin/python"
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix b/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix
index e1478ef6a03c7..f96e8cf6b677e 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop-pg-qt.nix
+++ b/pkgs/applications/kde/kdevelop/kdevelop-pg-qt.nix
@@ -1,15 +1,11 @@
 { lib, stdenv, fetchurl, cmake, pkg-config, extra-cmake-modules, qtbase }:
 
-let
+stdenv.mkDerivation rec {
   pname = "kdevelop-pg-qt";
   version = "2.2.1";
 
-in
-stdenv.mkDerivation rec {
-  name = "${pname}-${version}";
-
   src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz";
+    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
     sha256 = "0ay6m6j6zgrbcm48f14bass83bk4w5qnx76xihc05p69i9w32ff1";
   };
 
diff --git a/pkgs/applications/editors/kdevelop5/kdevelop.nix b/pkgs/applications/kde/kdevelop/kdevelop.nix
index 37ede94fa193d..4e7f576398e5c 100644
--- a/pkgs/applications/editors/kdevelop5/kdevelop.nix
+++ b/pkgs/applications/kde/kdevelop/kdevelop.nix
@@ -1,21 +1,18 @@
-
-{ mkDerivation, lib, fetchurl, cmake, gettext, pkg-config, extra-cmake-modules
+{ mkDerivation, lib, cmake, gettext, pkg-config, extra-cmake-modules
 , qtquickcontrols, qtwebkit, qttools, kde-cli-tools, qtbase
 , kconfig, kdeclarative, kdoctools, kiconthemes, ki18n, kitemmodels, kitemviews
 , kjobwidgets, kcmutils, kio, knewstuff, knotifyconfig, kparts, ktexteditor
 , threadweaver, kxmlgui, kwindowsystem, grantlee, kcrash, karchive, kguiaddons
 , plasma-framework, krunner, kdevelop-pg-qt, shared-mime-info, libkomparediff2
-, libksysguard, konsole, llvmPackages, makeWrapper, kpurpose, boost
+, libksysguard, konsole, llvmPackages_13, makeWrapper, kpurpose, boost
+, qtwebengine, cppcheck
 }:
 
+let
+  llvmPackages = llvmPackages_13;
+in
 mkDerivation rec {
   pname = "kdevelop";
-  version = "5.6.2";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "sha256-D4a8P+U/dhwePj91RFd6DEFDO+i/8xDPLnKfdvQ2O/Y=";
-  };
 
   nativeBuildInputs = [
     cmake gettext pkg-config extra-cmake-modules makeWrapper
@@ -32,6 +29,7 @@ mkDerivation rec {
     kjobwidgets kcmutils kio knewstuff knotifyconfig kparts ktexteditor
     threadweaver kxmlgui kwindowsystem grantlee plasma-framework krunner
     shared-mime-info libksysguard konsole kcrash karchive kguiaddons kpurpose
+    cppcheck qtwebengine
   ];
 
   # https://cgit.kde.org/kdevelop.git/commit/?id=716372ae2e8dff9c51e94d33443536786e4bd85b
diff --git a/pkgs/applications/editors/kdevelop5/wrapper.nix b/pkgs/applications/kde/kdevelop/wrapper.nix
index 86d3de9eb39a9..86d3de9eb39a9 100644
--- a/pkgs/applications/editors/kdevelop5/wrapper.nix
+++ b/pkgs/applications/kde/kdevelop/wrapper.nix
diff --git a/pkgs/applications/kde/kio-extras.nix b/pkgs/applications/kde/kio-extras.nix
index 29a3bdc97bb81..d9e8cf889491f 100644
--- a/pkgs/applications/kde/kio-extras.nix
+++ b/pkgs/applications/kde/kio-extras.nix
@@ -1,9 +1,9 @@
 {
   mkDerivation, lib, extra-cmake-modules, kdoctools, shared-mime-info,
-  exiv2, kactivities, karchive, kbookmarks, kconfig, kconfigwidgets,
+  exiv2, kactivities, kactivities-stats, karchive, kbookmarks, kconfig, kconfigwidgets,
   kcoreaddons, kdbusaddons, kdsoap, kguiaddons, kdnssd, kiconthemes, ki18n, kio,
-  khtml, kpty, syntax-highlighting, libmtp, libssh, openexr,
-  ilmbase, openslp, phonon, qtsvg, samba, solid, gperf
+  khtml, kpty, syntax-highlighting, libmtp, libssh, openexr, libtirpc,
+  ilmbase, openslp, phonon, qtsvg, samba, solid, gperf, taglib
 }:
 
 mkDerivation {
@@ -14,10 +14,10 @@ mkDerivation {
   };
   nativeBuildInputs = [ extra-cmake-modules kdoctools shared-mime-info ];
   buildInputs = [
-    exiv2 kactivities karchive kbookmarks kconfig kconfigwidgets kcoreaddons
+    exiv2 kactivities kactivities-stats karchive kbookmarks kconfig kconfigwidgets kcoreaddons
     kdbusaddons kdsoap kguiaddons kdnssd kiconthemes ki18n kio khtml
-    kpty syntax-highlighting libmtp libssh openexr openslp
-    phonon qtsvg samba solid gperf
+    kpty syntax-highlighting libmtp libssh openexr libtirpc openslp
+    phonon qtsvg samba solid gperf taglib
   ];
 
   # org.kde.kmtpd5 DBUS service launches kiod5 binary from kio derivation, not from kio-extras
diff --git a/pkgs/applications/kde/srcs.nix b/pkgs/applications/kde/srcs.nix
index 7e5dff590ed33..af0eaf2b28b9e 100644
--- a/pkgs/applications/kde/srcs.nix
+++ b/pkgs/applications/kde/srcs.nix
@@ -4,1859 +4,1859 @@
 
 {
   akonadi = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-22.04.1.tar.xz";
-      sha256 = "109r46dghfg84kcgq8h69m2pkd7abmq37ykgnpqynfzyrpkcvy6s";
-      name = "akonadi-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-22.04.2.tar.xz";
+      sha256 = "0r6d8isvfvci056myjiryk9c7fqllsb8pqh9nndxcb7g7ja010d3";
+      name = "akonadi-22.04.2.tar.xz";
     };
   };
   akonadi-calendar = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-calendar-22.04.1.tar.xz";
-      sha256 = "1jqil45igxbii7warzil9r9lphd0vm23454zc9k0psl4zvwqd71m";
-      name = "akonadi-calendar-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-calendar-22.04.2.tar.xz";
+      sha256 = "1izcgd55slayzh82yck2c1mbhw3kf0m61gv7ff1mcf382d4wxyfr";
+      name = "akonadi-calendar-22.04.2.tar.xz";
     };
   };
   akonadi-calendar-tools = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-calendar-tools-22.04.1.tar.xz";
-      sha256 = "1sn0355mkd8cl58nm6aspjb9jzngp7cxgj3jypyvwriv3fcm3ixj";
-      name = "akonadi-calendar-tools-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-calendar-tools-22.04.2.tar.xz";
+      sha256 = "154r0rkm22d0zaybzz5xd60cckm6kalvgr7i8bn8ic3rr18ap7c6";
+      name = "akonadi-calendar-tools-22.04.2.tar.xz";
+    };
+  };
+  akonadiconsole = {
+    version = "22.04.2";
+    src = fetchurl {
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadiconsole-22.04.2.tar.xz";
+      sha256 = "19iq0qqf8y06l3nbl4q0i1065kywbyixsrdaj5zk1xrwzp824zcr";
+      name = "akonadiconsole-22.04.2.tar.xz";
     };
   };
   akonadi-contacts = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-contacts-22.04.1.tar.xz";
-      sha256 = "03ir95sghhvfxcsaz2v4wp06461xdr85iidgvpp9glfhp45cdwnd";
-      name = "akonadi-contacts-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-contacts-22.04.2.tar.xz";
+      sha256 = "0d2h202d6wfm0fcsqibbiibzw5qylik9fwf3xdv739hjkmbfg4ky";
+      name = "akonadi-contacts-22.04.2.tar.xz";
     };
   };
   akonadi-import-wizard = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-import-wizard-22.04.1.tar.xz";
-      sha256 = "0qgpzz855gfvsq30m3rw935pixpc8b732lsbzjykw6pnl73yji3j";
-      name = "akonadi-import-wizard-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-import-wizard-22.04.2.tar.xz";
+      sha256 = "0xjk95wdb5mbzr04g79xkklhynra5wgyqwd8v8a383sqzk7hp70l";
+      name = "akonadi-import-wizard-22.04.2.tar.xz";
     };
   };
   akonadi-mime = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-mime-22.04.1.tar.xz";
-      sha256 = "03kx6j48rmsz0gy7w1fhs6g0xb8difd753kyv9a2di1ijkqhhn3g";
-      name = "akonadi-mime-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-mime-22.04.2.tar.xz";
+      sha256 = "09jjgjw5zak5kshzas6d3zg6msq006gwvks5a1mxkg9ssclq8zlj";
+      name = "akonadi-mime-22.04.2.tar.xz";
     };
   };
   akonadi-notes = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-notes-22.04.1.tar.xz";
-      sha256 = "119s7vgl8s9ik2fabky6xwq6gvj2xdq2ii0h1j6vx2x98mwwcqsk";
-      name = "akonadi-notes-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-notes-22.04.2.tar.xz";
+      sha256 = "1wm7zjv66vlm562ihvxycngmvngja8jgx76fjnhch0vfcm1j5328";
+      name = "akonadi-notes-22.04.2.tar.xz";
     };
   };
   akonadi-search = {
-    version = "22.04.1";
-    src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadi-search-22.04.1.tar.xz";
-      sha256 = "0arymd5islkmiarxppg3d4fwfrb13fzrj8dpzv7y9llgmngcn7kk";
-      name = "akonadi-search-22.04.1.tar.xz";
-    };
-  };
-  akonadiconsole = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akonadiconsole-22.04.1.tar.xz";
-      sha256 = "1yji38rzjn3pr9b1gqbx0jq8k6iiqsi6cwpzk0ak9qp02z8h7bx9";
-      name = "akonadiconsole-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akonadi-search-22.04.2.tar.xz";
+      sha256 = "0jmh2sglr590z29ppq1zrp07nwvaim9kyi3jwp1h3ckxscs236fq";
+      name = "akonadi-search-22.04.2.tar.xz";
     };
   };
   akregator = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/akregator-22.04.1.tar.xz";
-      sha256 = "18anzq4wcimgqizshb6i3cd18ydsls0i88pbgzc92rajqvv8m7z2";
-      name = "akregator-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/akregator-22.04.2.tar.xz";
+      sha256 = "12rp09d5xfs9xfc3giknywsd3pi9kc36fsx15470aszvp4c3pcnr";
+      name = "akregator-22.04.2.tar.xz";
     };
   };
   analitza = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/analitza-22.04.1.tar.xz";
-      sha256 = "0a0xzxfqxpriq1ak8qfi2f93f4ilfdp3z4v9ivl468fssmxg2x3j";
-      name = "analitza-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/analitza-22.04.2.tar.xz";
+      sha256 = "0sgcyxp047jm6ppyhnwk4inm3kz70cyjqgwdrmri44g5qligwg6q";
+      name = "analitza-22.04.2.tar.xz";
     };
   };
   ark = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ark-22.04.1.tar.xz";
-      sha256 = "1ikdwr803f55fgymp27zpwwfxzsjf79angzm84ysy2mv3l4cnpkn";
-      name = "ark-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ark-22.04.2.tar.xz";
+      sha256 = "0sgv5l1fmdr4g5dw1r4f0qjd3sbqfqvrwidm3nznrxz2idrb99n4";
+      name = "ark-22.04.2.tar.xz";
     };
   };
   artikulate = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/artikulate-22.04.1.tar.xz";
-      sha256 = "176qjgwwh9xalwddjlfn39hkymjajbabzhgzrrrzjpw30zz6nplc";
-      name = "artikulate-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/artikulate-22.04.2.tar.xz";
+      sha256 = "055vp3b0mi9nw8csc3f6iifnf0g7y2mmfqix9rq9ri02sx0b8j2i";
+      name = "artikulate-22.04.2.tar.xz";
     };
   };
   audiocd-kio = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/audiocd-kio-22.04.1.tar.xz";
-      sha256 = "1mannh6f79q4i6lpyf1dqvc9ra4hdrk7md40m8jj718v834svrql";
-      name = "audiocd-kio-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/audiocd-kio-22.04.2.tar.xz";
+      sha256 = "0x48k0ccacs47c3mdb5r7956dyi2c2nyqr4kkv20gm3rbbmzhmsd";
+      name = "audiocd-kio-22.04.2.tar.xz";
     };
   };
   baloo-widgets = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/baloo-widgets-22.04.1.tar.xz";
-      sha256 = "1bkkdqnl3zdwijn05cmnbf77hc1y9zx7h5r24y9197sg2b0241v8";
-      name = "baloo-widgets-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/baloo-widgets-22.04.2.tar.xz";
+      sha256 = "0c6c4947zgx4ajhvb1m3c6blyv1aajqdymh14dpj59ry9gqnmzcn";
+      name = "baloo-widgets-22.04.2.tar.xz";
     };
   };
   blinken = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/blinken-22.04.1.tar.xz";
-      sha256 = "162cbivfbxi8792l2m2ipm0g67v2khfgxb481fccgraq3690ib2m";
-      name = "blinken-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/blinken-22.04.2.tar.xz";
+      sha256 = "1yfh66354cxhkmqshbsl2d6kiwkx53x18h5wgndrfxwfv5nfkzly";
+      name = "blinken-22.04.2.tar.xz";
     };
   };
   bomber = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/bomber-22.04.1.tar.xz";
-      sha256 = "04siq2vcicm88p31v3hlqrsyxjbvvbayr03zf5kgn08kr3dr24y9";
-      name = "bomber-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/bomber-22.04.2.tar.xz";
+      sha256 = "07cvnpifg4z4bjf81hvngv6zp54q08jk5phgpj9fxg95z32khydv";
+      name = "bomber-22.04.2.tar.xz";
     };
   };
   bovo = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/bovo-22.04.1.tar.xz";
-      sha256 = "0xbfnhvkfyy0pi1d0df02yx91551hcw5vf8mrm163abd4mjpmzls";
-      name = "bovo-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/bovo-22.04.2.tar.xz";
+      sha256 = "0ms0b91gl6wrpvw0pxhmqnnm0ff2y0jyy48rg47bxg5rk31ri0yd";
+      name = "bovo-22.04.2.tar.xz";
     };
   };
   calendarsupport = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/calendarsupport-22.04.1.tar.xz";
-      sha256 = "1axfhc09shmmmwgx1n2ilz7k0sakhlx6d9jvxhr2p29s5jsrbcqh";
-      name = "calendarsupport-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/calendarsupport-22.04.2.tar.xz";
+      sha256 = "1d83aacsr40yyhich0f2n1yb9ij0xf2lgg2zm8yhy5pdg1j9xbfv";
+      name = "calendarsupport-22.04.2.tar.xz";
     };
   };
   cantor = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/cantor-22.04.1.tar.xz";
-      sha256 = "1lc3nnpg601mx2km62s3jwnyhngv0w4brgrylx4q3v4g2h0czbjc";
-      name = "cantor-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/cantor-22.04.2.tar.xz";
+      sha256 = "1j0ywikjml4wv03yw2dbgmqy4y7f0z0f80h7f3mg60kgs7m9icsn";
+      name = "cantor-22.04.2.tar.xz";
     };
   };
   cervisia = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/cervisia-22.04.1.tar.xz";
-      sha256 = "0dr77221ayhb0ihhjgm8rbcsmni8l12hyvp5w0dcd4p58xabnd2w";
-      name = "cervisia-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/cervisia-22.04.2.tar.xz";
+      sha256 = "1gcf8q0qa578g7lnsvj1n7y9js1j9vwp58vql8q1srgi13gw6v5q";
+      name = "cervisia-22.04.2.tar.xz";
     };
   };
   dolphin = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/dolphin-22.04.1.tar.xz";
-      sha256 = "0ywsjz6jqcwr8i5zafiaxlg7855vyf0cm77936li4ggw3z11mxcw";
-      name = "dolphin-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/dolphin-22.04.2.tar.xz";
+      sha256 = "0iyib0z8912pcc38rylv8f6n9la1ysr7jb677m7j4apldz0w9qy2";
+      name = "dolphin-22.04.2.tar.xz";
     };
   };
   dolphin-plugins = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/dolphin-plugins-22.04.1.tar.xz";
-      sha256 = "1zxh4aqi3mk9wafgslchm0jvcacva405jxf5l8hffkr2llchn8l1";
-      name = "dolphin-plugins-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/dolphin-plugins-22.04.2.tar.xz";
+      sha256 = "0a7gz2nx2dzkrhss3pl5y9hxcq1nsxwavkffxf49yfxmxwv5wsmf";
+      name = "dolphin-plugins-22.04.2.tar.xz";
     };
   };
   dragon = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/dragon-22.04.1.tar.xz";
-      sha256 = "0nq3m5y6yawb5z036gqmqajvsk52yy5pisblkyjnj1a8i0mlkg9p";
-      name = "dragon-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/dragon-22.04.2.tar.xz";
+      sha256 = "0hl12i73vqqcic01j0imgsda70pii7dnd5jv32h7vxabwaj0a28k";
+      name = "dragon-22.04.2.tar.xz";
     };
   };
   elisa = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/elisa-22.04.1.tar.xz";
-      sha256 = "01ay2nz08943iaja8ns3p8gkjbi4hqn632gw30la9kccjgnskgkp";
-      name = "elisa-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/elisa-22.04.2.tar.xz";
+      sha256 = "0dh0hm9x39agsqkh57wf5cynmdf5lh0g1fd83qnjqaq2fyh4vi6v";
+      name = "elisa-22.04.2.tar.xz";
     };
   };
   eventviews = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/eventviews-22.04.1.tar.xz";
-      sha256 = "0j3f1y7wnw1y0c6wxbm5cx298afngzppn2rz6vynslz3pb11825d";
-      name = "eventviews-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/eventviews-22.04.2.tar.xz";
+      sha256 = "13npqh0bdv0xm00jqwkhd79g6b80kq72jnhd280h6fsws97xcvmk";
+      name = "eventviews-22.04.2.tar.xz";
     };
   };
   falkon = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/falkon-22.04.1.tar.xz";
-      sha256 = "09623p10n92fjk5i4kzpjnd5vjxng2m8z7vbz7n0snly8h67i6bl";
-      name = "falkon-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/falkon-22.04.2.tar.xz";
+      sha256 = "1rh3sa09sqal7v3m2m0vk14izn0vr4hkyyvz1712kjzg4qildxhk";
+      name = "falkon-22.04.2.tar.xz";
     };
   };
   ffmpegthumbs = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ffmpegthumbs-22.04.1.tar.xz";
-      sha256 = "0xbqkly4bpzx0ign1diz2z0gqn05dp6pgzn6z1wfxxp8rpf7nbwc";
-      name = "ffmpegthumbs-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ffmpegthumbs-22.04.2.tar.xz";
+      sha256 = "0pb4ak6kn13l4nmk8ixinhq5cx7v05c3pl1ss03n6smik2x30sz4";
+      name = "ffmpegthumbs-22.04.2.tar.xz";
     };
   };
   filelight = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/filelight-22.04.1.tar.xz";
-      sha256 = "06zrfa8r17sf326msnbqgzyazdijxvxd4plbwdkl6iyvybvswfdn";
-      name = "filelight-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/filelight-22.04.2.tar.xz";
+      sha256 = "093n6r2rdv5igyfpimfn4m4sqk3d703sx23axlzn6jhg5d186r83";
+      name = "filelight-22.04.2.tar.xz";
     };
   };
   granatier = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/granatier-22.04.1.tar.xz";
-      sha256 = "01czy1a4jiwcj7ngajqb6kf47d1dhxrzjk58l9w1npnl4zgjcbqd";
-      name = "granatier-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/granatier-22.04.2.tar.xz";
+      sha256 = "0xkabkb5d2hb24mvqa9q9m1p37hciw234c5fwy8zxaxszz2j5m86";
+      name = "granatier-22.04.2.tar.xz";
     };
   };
   grantlee-editor = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/grantlee-editor-22.04.1.tar.xz";
-      sha256 = "0yis7cd7x4z1hn3q3wwkhqjzlfm6l43fkcj218yayb7pdqxa9q44";
-      name = "grantlee-editor-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/grantlee-editor-22.04.2.tar.xz";
+      sha256 = "0gr672g2q909ncacx51cdvg6p7n3d1lz0by80cm8acx088l56np0";
+      name = "grantlee-editor-22.04.2.tar.xz";
     };
   };
   grantleetheme = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/grantleetheme-22.04.1.tar.xz";
-      sha256 = "0aks9sb4ywk461wqa2yhs0nc0h0i8v30rckx44s0f29v18z50ckm";
-      name = "grantleetheme-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/grantleetheme-22.04.2.tar.xz";
+      sha256 = "1gj6lfiiizv00z4mrnfhivihsd5hfdmzdrly17a2hgcddf006md4";
+      name = "grantleetheme-22.04.2.tar.xz";
     };
   };
   gwenview = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/gwenview-22.04.1.tar.xz";
-      sha256 = "0jncx7avdfqdv0x0r0s85h1lxxhc0ni14ia37y5vmqn7nxp8z6pr";
-      name = "gwenview-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/gwenview-22.04.2.tar.xz";
+      sha256 = "11s34kzsp26m1amyxmqviy2qga98h4sj9100asrdchq86j0wxvl4";
+      name = "gwenview-22.04.2.tar.xz";
     };
   };
   incidenceeditor = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/incidenceeditor-22.04.1.tar.xz";
-      sha256 = "0h33jgrlvdsa4d2p905hl2spg7j265mn79l02rg21258r8r56bc3";
-      name = "incidenceeditor-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/incidenceeditor-22.04.2.tar.xz";
+      sha256 = "0z5hrk1jysjc5x704sy60b353p2cxqcfgbcjky6srkxs24fc5s2a";
+      name = "incidenceeditor-22.04.2.tar.xz";
     };
   };
   itinerary = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/itinerary-22.04.1.tar.xz";
-      sha256 = "09h0m9g7mmy1qap8k00fx3y63lqa641cwpi7dak91jh57crialcy";
-      name = "itinerary-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/itinerary-22.04.2.tar.xz";
+      sha256 = "1r9isr0i08yrl6x42388ycs1mdy447cvx6sa2igc38h0f2cs533d";
+      name = "itinerary-22.04.2.tar.xz";
     };
   };
   juk = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/juk-22.04.1.tar.xz";
-      sha256 = "1c9cigd72qzmaann85i0kfxivkbdqy1lwcrf2mlrb6ycvbzfmbm0";
-      name = "juk-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/juk-22.04.2.tar.xz";
+      sha256 = "11l2q8gdj2z9wxj7z9fb194aw293ip1pxav487910clfgv0q6hvf";
+      name = "juk-22.04.2.tar.xz";
     };
   };
   k3b = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/k3b-22.04.1.tar.xz";
-      sha256 = "1yslsf736nlkxra8ial067a69mzlfb5zdyakcjg7nmkxbklkg46p";
-      name = "k3b-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/k3b-22.04.2.tar.xz";
+      sha256 = "1rbmaj4ini7gxsl16kx29wqg66wn44a9kwf6aa5pgq91a53h5999";
+      name = "k3b-22.04.2.tar.xz";
     };
   };
   kaccounts-integration = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kaccounts-integration-22.04.1.tar.xz";
-      sha256 = "1yj4c4qgxk8r5salfwra8dqi418167zrcs8rnpnzlvrr3gqqvvbj";
-      name = "kaccounts-integration-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kaccounts-integration-22.04.2.tar.xz";
+      sha256 = "1s18bq77al8alwv4j9c9n48adfplbf9a1jn0xyncayz86x73c53a";
+      name = "kaccounts-integration-22.04.2.tar.xz";
     };
   };
   kaccounts-providers = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kaccounts-providers-22.04.1.tar.xz";
-      sha256 = "0mphnjgyzdxlp5iig2hyfzvpykqf7bm6vn4ninnj5wcs91jkjlxq";
-      name = "kaccounts-providers-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kaccounts-providers-22.04.2.tar.xz";
+      sha256 = "18kyjg60zrr94c76jgnpkqfni9ybmx17g7cyrylsxzqc4gnacrqa";
+      name = "kaccounts-providers-22.04.2.tar.xz";
     };
   };
   kaddressbook = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kaddressbook-22.04.1.tar.xz";
-      sha256 = "1n76baf47ran2rdaz6i6b8c411zagqgzz89ap7v7x843vsv6g960";
-      name = "kaddressbook-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kaddressbook-22.04.2.tar.xz";
+      sha256 = "1kc1glax3hq73s9lvxh0dr1rl5zhggs053wc0s2w1ah7930xx5w0";
+      name = "kaddressbook-22.04.2.tar.xz";
     };
   };
   kajongg = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kajongg-22.04.1.tar.xz";
-      sha256 = "0pbym31l4gyzwi9qvhbwmkyrb7199vfn5mipc9fxkjsczsyp0cqg";
-      name = "kajongg-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kajongg-22.04.2.tar.xz";
+      sha256 = "169pavwsh3irb8k49qbf2l6yzk5vhczdlx0v80dsakxchj2c61d9";
+      name = "kajongg-22.04.2.tar.xz";
     };
   };
   kalarm = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kalarm-22.04.1.tar.xz";
-      sha256 = "04cg8ymgwx6ls62q87ma3658xswff3a4kbjbdh05vvipqpkhd0cm";
-      name = "kalarm-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kalarm-22.04.2.tar.xz";
+      sha256 = "08xxkb8cjspjdxlqf2476dm3q8wnjiw8idb4bibnq4hwwqk7cixd";
+      name = "kalarm-22.04.2.tar.xz";
     };
   };
   kalendar = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kalendar-22.04.1.tar.xz";
-      sha256 = "1vk1n6in42frx95mgcsz8qhrhbbg2vz0fwxf966xbsdjcrg6whsn";
-      name = "kalendar-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kalendar-22.04.2.tar.xz";
+      sha256 = "06z5j5p8awq30kvix7wzv2gc91gsy9i5sdkq7cnan22z621p1k95";
+      name = "kalendar-22.04.2.tar.xz";
     };
   };
   kalgebra = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kalgebra-22.04.1.tar.xz";
-      sha256 = "07cyknqhkyr4vsrv7bfl7aqflw079rb1rcqq2lm0k0pp4mi3z5m3";
-      name = "kalgebra-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kalgebra-22.04.2.tar.xz";
+      sha256 = "0cskrl3c3a1z26ykgsycx66yx45lrj96p4rcn2yskwyvkcqwa2lv";
+      name = "kalgebra-22.04.2.tar.xz";
     };
   };
   kalzium = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kalzium-22.04.1.tar.xz";
-      sha256 = "1fn8vn0phnaknd8yrzv75zdz3byq0rmdpb8blvp224nnlmf1733f";
-      name = "kalzium-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kalzium-22.04.2.tar.xz";
+      sha256 = "086f5w5idhs715hvb3fjpzv35y6qk3hxvazdpb3gdaikd9mxjc86";
+      name = "kalzium-22.04.2.tar.xz";
     };
   };
   kamera = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kamera-22.04.1.tar.xz";
-      sha256 = "0c1mb8phip67h9v2crmrv7lnb00ha257l27j6hhq0pi3mpy4jhsg";
-      name = "kamera-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kamera-22.04.2.tar.xz";
+      sha256 = "159lci4h52pdn2f5kwrydkxh3mzs6842pvczglc4g4jw08qrmakh";
+      name = "kamera-22.04.2.tar.xz";
     };
   };
   kamoso = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kamoso-22.04.1.tar.xz";
-      sha256 = "039x5nrrznhlw53v63n550wb9k7x4r5w2d45rc2inw140rj5i32v";
-      name = "kamoso-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kamoso-22.04.2.tar.xz";
+      sha256 = "0jb7y9mx3bwss5yfc1jwprca3g4awpfr4gxn1g0ykmham9xd6rmc";
+      name = "kamoso-22.04.2.tar.xz";
     };
   };
   kanagram = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kanagram-22.04.1.tar.xz";
-      sha256 = "0j0lg5yx8yid1anpvjvgy8p09b1nn8pcvd6w2rlrrxjwpybnx9jc";
-      name = "kanagram-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kanagram-22.04.2.tar.xz";
+      sha256 = "0r875gnrhc08nsz37apz84wvs9amqfapvxh0sdi9drqza9g9j6vq";
+      name = "kanagram-22.04.2.tar.xz";
     };
   };
   kapman = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kapman-22.04.1.tar.xz";
-      sha256 = "1a6mmzmaxmlkn9d14m06b5wzr9rbciskhb3bfdzjpk9gia6j22kk";
-      name = "kapman-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kapman-22.04.2.tar.xz";
+      sha256 = "0rv9vs432xwnypbm3vg8jgblww62a3q3ssyc0i76k4pibjsby74b";
+      name = "kapman-22.04.2.tar.xz";
     };
   };
   kapptemplate = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kapptemplate-22.04.1.tar.xz";
-      sha256 = "16q7pzd47aksbnnfa04cnjf6gbzhzfdmykn9cqwdb37689fs9lmf";
-      name = "kapptemplate-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kapptemplate-22.04.2.tar.xz";
+      sha256 = "12djljr9blcpans1ayknzjpczbz7nvs2vc9hx3br1yygn1fz2a2r";
+      name = "kapptemplate-22.04.2.tar.xz";
     };
   };
   kate = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kate-22.04.1.tar.xz";
-      sha256 = "0jcqa3c1z54k3sjqhz8f7rq3xygkxcqw9728rppk506zgqyw6vpl";
-      name = "kate-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kate-22.04.2.tar.xz";
+      sha256 = "1phpy4ganjnd8dky5q386gvr5axgzl13kb9ylx59328x76vcizkw";
+      name = "kate-22.04.2.tar.xz";
     };
   };
   katomic = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/katomic-22.04.1.tar.xz";
-      sha256 = "1858q8k6pzszrmgjqhp32kkqmax6nbfw04x5h1pjyxhvaxg3xr27";
-      name = "katomic-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/katomic-22.04.2.tar.xz";
+      sha256 = "0ynalhc0zrx4a861lj68n618ki5z2jakfss493pjl8yj7jqn4mci";
+      name = "katomic-22.04.2.tar.xz";
     };
   };
   kbackup = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kbackup-22.04.1.tar.xz";
-      sha256 = "1h84alirmrbn90l9zfzs1xj2nf5q5hzvy0rsbsrkhwcsw35q63z2";
-      name = "kbackup-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kbackup-22.04.2.tar.xz";
+      sha256 = "1qad8gcvi7pl05zp8xb15av84c4z21yw8x9wiccaqrdbb45phg58";
+      name = "kbackup-22.04.2.tar.xz";
     };
   };
   kblackbox = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kblackbox-22.04.1.tar.xz";
-      sha256 = "03gdwfwkzyzwh3qj6pjsd90df2knmaf6y6vgpzh92k4y1zq8n421";
-      name = "kblackbox-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kblackbox-22.04.2.tar.xz";
+      sha256 = "0qiv52970sw1myl09qzmlmb7l7714gyifbrricpgvsnn26niqz1w";
+      name = "kblackbox-22.04.2.tar.xz";
     };
   };
   kblocks = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kblocks-22.04.1.tar.xz";
-      sha256 = "1dglbppjfbdvnmpnk6cf01sp0vclnbxgvw6wnlmdp1vh00qgad3d";
-      name = "kblocks-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kblocks-22.04.2.tar.xz";
+      sha256 = "0ibxmpf4lqbg6nm2f3bqi2pz8czd3rpvyy51kag5skyqy06740v5";
+      name = "kblocks-22.04.2.tar.xz";
     };
   };
   kbounce = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kbounce-22.04.1.tar.xz";
-      sha256 = "1ci5i5d5dppw7xgma6hyrd5v93n1lc8n2bp36p0za1hak9kxisaa";
-      name = "kbounce-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kbounce-22.04.2.tar.xz";
+      sha256 = "11yhfxwxx44m28md32m57fi1l6jy5y18ix6zx95b96fgiv5xh6r5";
+      name = "kbounce-22.04.2.tar.xz";
     };
   };
   kbreakout = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kbreakout-22.04.1.tar.xz";
-      sha256 = "0fmk4nd8c5z8fy2pw88l9fpcv0a59gbcvvgh3v92cmdw0ml65wb0";
-      name = "kbreakout-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kbreakout-22.04.2.tar.xz";
+      sha256 = "0gnmbrksnagz6600fifinvf4qy9ws425s8nqp83258bbnha6bpx6";
+      name = "kbreakout-22.04.2.tar.xz";
     };
   };
   kbruch = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kbruch-22.04.1.tar.xz";
-      sha256 = "1zx0cwi8s83j9ix0vdnjxhrkw2pa85y6plpwzy12f2fbxkmzvg1h";
-      name = "kbruch-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kbruch-22.04.2.tar.xz";
+      sha256 = "170zzgfg26l4z4vl8djan2gqfc03w9fa92a2naxm4iv9shn2xigp";
+      name = "kbruch-22.04.2.tar.xz";
     };
   };
   kcachegrind = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcachegrind-22.04.1.tar.xz";
-      sha256 = "0nvqly26w4wma68glfa6bil1jxh6hmd7mjvcr3s6fvzk4ky51was";
-      name = "kcachegrind-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcachegrind-22.04.2.tar.xz";
+      sha256 = "1dj19290pzfi5ys01i4kgd32hqnyrb1y61xkrm7gqgd5dr6vr1fn";
+      name = "kcachegrind-22.04.2.tar.xz";
     };
   };
   kcalc = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcalc-22.04.1.tar.xz";
-      sha256 = "09nfcmmh5bmjx2bkjw33s0a55lky8shkhrgq1q3fd18igw7xpcgl";
-      name = "kcalc-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcalc-22.04.2.tar.xz";
+      sha256 = "1mw7ans14q1bhhsk563r28cb4bhj559ma3mkxh4573aj2rqf1j4g";
+      name = "kcalc-22.04.2.tar.xz";
     };
   };
   kcalutils = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcalutils-22.04.1.tar.xz";
-      sha256 = "0vgwz3yinrf2wjwj5qfj22fn7hdl0q5lhzd7v4a903gj4cb27ayq";
-      name = "kcalutils-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcalutils-22.04.2.tar.xz";
+      sha256 = "0h6n4k2v66b21ccq1hlv5vhan6xxgli19mr5l0j9zgsnpk4kvikv";
+      name = "kcalutils-22.04.2.tar.xz";
     };
   };
   kcharselect = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcharselect-22.04.1.tar.xz";
-      sha256 = "0s4wfq808dsi3bjf4hq419b3ws0hsir79wgw9mbbry0s0c02nlk9";
-      name = "kcharselect-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcharselect-22.04.2.tar.xz";
+      sha256 = "1jz3f86if4klsv6w7y9crn7zvzikg64qpdlr9ba8vyxay9lrhdhw";
+      name = "kcharselect-22.04.2.tar.xz";
     };
   };
   kcolorchooser = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcolorchooser-22.04.1.tar.xz";
-      sha256 = "1s9j7r5rxq1zd8aaakxsw2p56rvykhnm80s5rk8krkp4gk58przr";
-      name = "kcolorchooser-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcolorchooser-22.04.2.tar.xz";
+      sha256 = "17hfx219491s8fjx51mfm81bqlg4nbz91vpg51ygc8j6dsxnapr5";
+      name = "kcolorchooser-22.04.2.tar.xz";
     };
   };
   kcron = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kcron-22.04.1.tar.xz";
-      sha256 = "15g5k3z840zawhnksyzznw5w8ns3pp9vgdmz7pc2pir15mp763jm";
-      name = "kcron-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kcron-22.04.2.tar.xz";
+      sha256 = "1k810ggrsqybbmxmbdqir7ya7sqa536di6z3ib5yqc3lbrigak4h";
+      name = "kcron-22.04.2.tar.xz";
     };
   };
-  kde-dev-scripts = {
-    version = "22.04.1";
+  kdebugsettings = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kde-dev-scripts-22.04.1.tar.xz";
-      sha256 = "1s9cjyz2im8s6gpq1w0zqrfgf3cdw697s4z7srw50cg6aagks4x3";
-      name = "kde-dev-scripts-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdebugsettings-22.04.2.tar.xz";
+      sha256 = "1i94rih9z927jn5mjjzzmsan8jsk715bgwnk65cg1mbgqnclvi5s";
+      name = "kdebugsettings-22.04.2.tar.xz";
     };
   };
-  kde-dev-utils = {
-    version = "22.04.1";
+  kdeconnect-kde = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kde-dev-utils-22.04.1.tar.xz";
-      sha256 = "1bi8i6pnx2yi786y78ad24f1yrb2vjd5ggrgaxislijs9qpdpbnr";
-      name = "kde-dev-utils-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdeconnect-kde-22.04.2.tar.xz";
+      sha256 = "0q12qai55383fa70kiliqq474y9hji2amm2gd8cdljl1wn7cp16w";
+      name = "kdeconnect-kde-22.04.2.tar.xz";
     };
   };
-  kdebugsettings = {
-    version = "22.04.1";
+  kde-dev-scripts = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdebugsettings-22.04.1.tar.xz";
-      sha256 = "14b0p0n14bivfr5nfjsyamx8jk2sbw283s04hrrxmv93b14068r7";
-      name = "kdebugsettings-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kde-dev-scripts-22.04.2.tar.xz";
+      sha256 = "1x25hidqs03ylbk9h5rq3jwp5ljh02ak0js97yy1y23qwvhqi9xj";
+      name = "kde-dev-scripts-22.04.2.tar.xz";
     };
   };
-  kdeconnect-kde = {
-    version = "22.04.1";
+  kde-dev-utils = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdeconnect-kde-22.04.1.tar.xz";
-      sha256 = "0ym5n311iabrwal8w3yiq76g656rp1gz0yq9fdz61fl0pd4bmnbd";
-      name = "kdeconnect-kde-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kde-dev-utils-22.04.2.tar.xz";
+      sha256 = "0zqv0r5s24bb6cgg039dw1sl8vl4pgck5any0k08swb14zbpc63p";
+      name = "kde-dev-utils-22.04.2.tar.xz";
     };
   };
   kdeedu-data = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdeedu-data-22.04.1.tar.xz";
-      sha256 = "1lgcn4z4k2djzls35w33y5h7yjw2cs1028bxh0avlprh5ihi8cn2";
-      name = "kdeedu-data-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdeedu-data-22.04.2.tar.xz";
+      sha256 = "1npa7545f2a40gpv0zq8rmfy6gd745m4agsrvjj55g43mncj496d";
+      name = "kdeedu-data-22.04.2.tar.xz";
     };
   };
   kdegraphics-mobipocket = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdegraphics-mobipocket-22.04.1.tar.xz";
-      sha256 = "0p8zsks0fcrzmcnwdzb7gcswq7vkv67vy1x1mi4v0y6lcgx1xqz7";
-      name = "kdegraphics-mobipocket-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdegraphics-mobipocket-22.04.2.tar.xz";
+      sha256 = "078s3a0mwdsdx2gxppmhmn8swranwd9q8q2ymyxlbmriif1sncs3";
+      name = "kdegraphics-mobipocket-22.04.2.tar.xz";
     };
   };
   kdegraphics-thumbnailers = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdegraphics-thumbnailers-22.04.1.tar.xz";
-      sha256 = "1y8rkjr5azyffj8bb06jrm46j87n93xzvn2fcyarrmww01dsw1hp";
-      name = "kdegraphics-thumbnailers-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdegraphics-thumbnailers-22.04.2.tar.xz";
+      sha256 = "1m8nndw18simw5hk124xknqsn5ckpz28l65r52424rihvb2kzf1s";
+      name = "kdegraphics-thumbnailers-22.04.2.tar.xz";
     };
   };
   kdenetwork-filesharing = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdenetwork-filesharing-22.04.1.tar.xz";
-      sha256 = "1h5zh0yvar3lylxm1iri3w7c7qzmdf18ak258jfphc23c9q6w32j";
-      name = "kdenetwork-filesharing-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdenetwork-filesharing-22.04.2.tar.xz";
+      sha256 = "040z92z16vzl4r025i2yajaxb4lqgaaf0sjcq00qh3y5f353n325";
+      name = "kdenetwork-filesharing-22.04.2.tar.xz";
     };
   };
   kdenlive = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdenlive-22.04.1.tar.xz";
-      sha256 = "0kiajmkmf2254464s8rv8d61igwrd2xmrj1dxwzrps4fy50r11xf";
-      name = "kdenlive-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdenlive-22.04.2.tar.xz";
+      sha256 = "1jfw0978xs6dd90f9ddc4fvvf0wlzkjmksbi55dskd49rr780x0z";
+      name = "kdenlive-22.04.2.tar.xz";
     };
   };
   kdepim-addons = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdepim-addons-22.04.1.tar.xz";
-      sha256 = "0r5gy56n1nrsm1wvf8687g6ng5m3q9wnl8nkfqaa4a4kk16h0i5f";
-      name = "kdepim-addons-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdepim-addons-22.04.2.tar.xz";
+      sha256 = "1fnd6z80b9mla4sryfcl3s591m9hcs2qapfj91w6w2wzgw8b5gnc";
+      name = "kdepim-addons-22.04.2.tar.xz";
     };
   };
   kdepim-runtime = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdepim-runtime-22.04.1.tar.xz";
-      sha256 = "0gwhzdlzal2j61hak5axv68n7chhnlf8n9dqnnfili6ffps63yxm";
-      name = "kdepim-runtime-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdepim-runtime-22.04.2.tar.xz";
+      sha256 = "04qrdbj0f91q8vwfrnq3sdrcxb8jpq3kg7hab39ynp3qkfqdlmll";
+      name = "kdepim-runtime-22.04.2.tar.xz";
     };
   };
   kdesdk-kioslaves = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdesdk-kioslaves-22.04.1.tar.xz";
-      sha256 = "19ay298fbjmn5xcrmpjabch7ljfmn03qkacifv337yx5idv1116q";
-      name = "kdesdk-kioslaves-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdesdk-kioslaves-22.04.2.tar.xz";
+      sha256 = "1r2r8qh8qffvgq8rsm1a9y5djh1zmql5nhm3snqfjm2d88dpd9b8";
+      name = "kdesdk-kioslaves-22.04.2.tar.xz";
     };
   };
   kdesdk-thumbnailers = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdesdk-thumbnailers-22.04.1.tar.xz";
-      sha256 = "0f7d9m13gx552f1ficw1r7ndlal39iicklrc8g8cqh2gvkbydgni";
-      name = "kdesdk-thumbnailers-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdesdk-thumbnailers-22.04.2.tar.xz";
+      sha256 = "0ibnfjigi4rhnrnqcyfhc1mw7r2zy3rm2k2fk5fqsijx2w975ghf";
+      name = "kdesdk-thumbnailers-22.04.2.tar.xz";
     };
   };
-  kdev-php = {
-    version = "22.04.1";
+  kdevelop = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdev-php-22.04.1.tar.xz";
-      sha256 = "1cxvzybiqxa5kgbv2jb42jq7div5q4jyl3kiar5mdnnc590x4h2y";
-      name = "kdev-php-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdevelop-22.04.2.tar.xz";
+      sha256 = "1dihxx3sq0pmszd9nhp5x9h2s0flrjhbi8miq20w8k1kqs6jnqfk";
+      name = "kdevelop-22.04.2.tar.xz";
     };
   };
-  kdev-python = {
-    version = "22.04.1";
+  kdev-php = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdev-python-22.04.1.tar.xz";
-      sha256 = "01570g5284llqbmnlrsbrpm6zbkkp5rip49gng4nn7pi4nab9nyr";
-      name = "kdev-python-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdev-php-22.04.2.tar.xz";
+      sha256 = "1rpnmwyf08r8qcq25fdrnq0in3vqvn8ydh5v5zazjns7bx68n295";
+      name = "kdev-php-22.04.2.tar.xz";
     };
   };
-  kdevelop = {
-    version = "22.04.1";
+  kdev-python = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdevelop-22.04.1.tar.xz";
-      sha256 = "1n6dcs1z88d7aaski7ffjvjpfzqssr9zjrlzlcf84k285l6zbwr2";
-      name = "kdevelop-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdev-python-22.04.2.tar.xz";
+      sha256 = "1p1vn8163b5qf0ifcxw6c647qf2rmrygw7xbvzppfi9346j72r4b";
+      name = "kdev-python-22.04.2.tar.xz";
     };
   };
   kdf = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdf-22.04.1.tar.xz";
-      sha256 = "03vr48yhb08fw5f34yn8yjnygflz6993ihq9pfcp6jg916fpwkbp";
-      name = "kdf-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdf-22.04.2.tar.xz";
+      sha256 = "0srdqjf4sk6kidh04n9py8qcbcd2jdclnrrq1v4bn2zlm0qbqa0r";
+      name = "kdf-22.04.2.tar.xz";
     };
   };
   kdialog = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdialog-22.04.1.tar.xz";
-      sha256 = "0qqpvrkbinnxz26a4msak4wa26b4r52yjyz2h5l3q1gw7j2kp4wm";
-      name = "kdialog-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdialog-22.04.2.tar.xz";
+      sha256 = "0csrlc411v0yfizadf0w5nbyr6df2gjdmxn18ds81fjkpvdk1ajp";
+      name = "kdialog-22.04.2.tar.xz";
     };
   };
   kdiamond = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kdiamond-22.04.1.tar.xz";
-      sha256 = "19pj1lfcz7bgq6cxkn165l7b8lr5vwjp4sd724krm6l51jxzmd0x";
-      name = "kdiamond-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kdiamond-22.04.2.tar.xz";
+      sha256 = "09xrld4c3p822mn86hks93wl5llwc6if9cxa10x2hn4y9cfa1zvl";
+      name = "kdiamond-22.04.2.tar.xz";
     };
   };
   keditbookmarks = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/keditbookmarks-22.04.1.tar.xz";
-      sha256 = "0bix84hy02i90bpmrxjl5gd433jb2yawlbdcchgwb73py14pcay2";
-      name = "keditbookmarks-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/keditbookmarks-22.04.2.tar.xz";
+      sha256 = "1dmyw99a08l28715ssgnrbi6rfma5a5ad0k1vrczp4sad1flgpam";
+      name = "keditbookmarks-22.04.2.tar.xz";
     };
   };
   kfind = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kfind-22.04.1.tar.xz";
-      sha256 = "1mrrjrnlapvajw3hysqzd1kb1qvjwbwbc4mggawpwpq4cbpap4mc";
-      name = "kfind-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kfind-22.04.2.tar.xz";
+      sha256 = "1bnav9n1ak10824m55kkmf2haz5swfcwy6zsjs463qh3zvwnydz9";
+      name = "kfind-22.04.2.tar.xz";
     };
   };
   kfloppy = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kfloppy-22.04.1.tar.xz";
-      sha256 = "1yc90238v9f5czryjzfx9znjkl5r5smwr3gdx0cgp9sw225gl01q";
-      name = "kfloppy-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kfloppy-22.04.2.tar.xz";
+      sha256 = "0mkc05068d189zq2q1hgz5vw39fq3x2hcnxsyclis7g3p0ff4siv";
+      name = "kfloppy-22.04.2.tar.xz";
     };
   };
   kfourinline = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kfourinline-22.04.1.tar.xz";
-      sha256 = "0964iv2fa96s659crs56yqjcdkbckl7zw5h25x0r9gfycjkddhl2";
-      name = "kfourinline-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kfourinline-22.04.2.tar.xz";
+      sha256 = "0rchr0gj1zqc9anrj2d57l00r0sjx14hdlch7djrwarsj4xfc6rb";
+      name = "kfourinline-22.04.2.tar.xz";
     };
   };
   kgeography = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kgeography-22.04.1.tar.xz";
-      sha256 = "0l6az2fkbgrlg7i8h81f6jhj4vlw92x6jgkywxm93msbaz4ah1fw";
-      name = "kgeography-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kgeography-22.04.2.tar.xz";
+      sha256 = "0fsb2x44b35gvc2h0ksmjavpc8zif9inziaxxqq7mq9hgjdxnr98";
+      name = "kgeography-22.04.2.tar.xz";
     };
   };
   kget = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kget-22.04.1.tar.xz";
-      sha256 = "1v8vv32ncwnw4wn51rvk8n5kixdc2kjw9ds08ajv5x6iz06cvqrd";
-      name = "kget-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kget-22.04.2.tar.xz";
+      sha256 = "0i2pc3jmvqgrzgj9rhjshdd5kkq9bqdmch2h5rbdgbabw47l6xag";
+      name = "kget-22.04.2.tar.xz";
     };
   };
   kgoldrunner = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kgoldrunner-22.04.1.tar.xz";
-      sha256 = "0hs7p3allyw16lncr7fwavgggacdlgp893i1wx0mqzgg9yp4p1zm";
-      name = "kgoldrunner-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kgoldrunner-22.04.2.tar.xz";
+      sha256 = "0w5x6ar1km7ycprxfda0k65qx5lwnzmh0ch2w1py97sz3yq0pbfk";
+      name = "kgoldrunner-22.04.2.tar.xz";
     };
   };
   kgpg = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kgpg-22.04.1.tar.xz";
-      sha256 = "0dgc33h7mmbmgk29jmrrsykngzkirk53j6xxwrz8mfwbadvmvgy5";
-      name = "kgpg-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kgpg-22.04.2.tar.xz";
+      sha256 = "1rjdqlnzn269fqza6388mb3rcf43bs9xn9npzyb2anqcfsqin5cy";
+      name = "kgpg-22.04.2.tar.xz";
     };
   };
   khangman = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/khangman-22.04.1.tar.xz";
-      sha256 = "09mx12hf24rhwk0q2kni1gx5hg90nkjh556c0v6zqjmx3whlc1p6";
-      name = "khangman-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/khangman-22.04.2.tar.xz";
+      sha256 = "199k5llgi1iy9grm4am9kk1mjcjnhw33aviyp6bxip2dyw1hhcsg";
+      name = "khangman-22.04.2.tar.xz";
     };
   };
   khelpcenter = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/khelpcenter-22.04.1.tar.xz";
-      sha256 = "0wjjcrmncig6ymrk2an5n12ygy652zg7lxwvi2wi6zrdjk2kazf8";
-      name = "khelpcenter-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/khelpcenter-22.04.2.tar.xz";
+      sha256 = "1m6k61xya0xrpfd22bgargfgnv5981mjf0zyzb4szxlb8v9cjapa";
+      name = "khelpcenter-22.04.2.tar.xz";
     };
   };
   kidentitymanagement = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kidentitymanagement-22.04.1.tar.xz";
-      sha256 = "0f07r0x8i0k8fkzik49y80wr3laxq96gcmr287n4265f7pj02skl";
-      name = "kidentitymanagement-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kidentitymanagement-22.04.2.tar.xz";
+      sha256 = "1xq73lbxpqp63f537yv0gkkd8x9bwr9y7qxzk203hmlz43jk1g1i";
+      name = "kidentitymanagement-22.04.2.tar.xz";
     };
   };
   kig = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kig-22.04.1.tar.xz";
-      sha256 = "1qz287cfvk7wvx5jp61jcwnmwmjm8y3h6k2hyjpspqr3k1n84345";
-      name = "kig-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kig-22.04.2.tar.xz";
+      sha256 = "02iivp8kj3vp2n9qk58z5fzxplqpq57ch9h2jczyd96kxsn9yc6b";
+      name = "kig-22.04.2.tar.xz";
     };
   };
   kigo = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kigo-22.04.1.tar.xz";
-      sha256 = "094q9q9c728zva64dxl522s2q7lzdybrw055w5mryj66mdb9b43j";
-      name = "kigo-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kigo-22.04.2.tar.xz";
+      sha256 = "06bg1r9assp5f5i6wzh7wvh46mkjkbwq8y5nhs8iqrg7jm9dfp0a";
+      name = "kigo-22.04.2.tar.xz";
     };
   };
   killbots = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/killbots-22.04.1.tar.xz";
-      sha256 = "0kymimgwa5amcc93r6nrfiv6psjb0k96a8b2vr3jbc6vrm9aimjy";
-      name = "killbots-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/killbots-22.04.2.tar.xz";
+      sha256 = "192pcx7dvbbgfsp2vl7h1y26gvz9cnrwa644k1g40iyarc3nckgk";
+      name = "killbots-22.04.2.tar.xz";
     };
   };
   kimagemapeditor = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kimagemapeditor-22.04.1.tar.xz";
-      sha256 = "1lzqgav4gfq0cay162rjypikh4dx1jjj44ds9br2rfm0wp6x6zds";
-      name = "kimagemapeditor-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kimagemapeditor-22.04.2.tar.xz";
+      sha256 = "1mdrmg2qvs081xqamiqdljryznskhdzmzbnlqscagwg0kz608rpg";
+      name = "kimagemapeditor-22.04.2.tar.xz";
     };
   };
   kimap = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kimap-22.04.1.tar.xz";
-      sha256 = "0r945v0365vmyapcaqb6wabxdyflp33hh441cx26acwj11dpwgvl";
-      name = "kimap-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kimap-22.04.2.tar.xz";
+      sha256 = "1iafjazan4vhvxfafxykci2wm2xhj0752907w9c0rhrnjsj0hcb7";
+      name = "kimap-22.04.2.tar.xz";
     };
   };
   kio-extras = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kio-extras-22.04.1.tar.xz";
-      sha256 = "057qbz1cmmi1mgj38r4dsh49af4dqnihzs5r7w6hwx3dw03m2ix4";
-      name = "kio-extras-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kio-extras-22.04.2.tar.xz";
+      sha256 = "05q7hssrf82xl1c4a7wcxnvp2rzg29a2am15lwi1xv1yfgymk69i";
+      name = "kio-extras-22.04.2.tar.xz";
     };
   };
   kio-gdrive = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kio-gdrive-22.04.1.tar.xz";
-      sha256 = "12qb6m2n0nfx62z0xc1p66si140j6yih3lp80n9b43yf9c1hn5h6";
-      name = "kio-gdrive-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kio-gdrive-22.04.2.tar.xz";
+      sha256 = "1mw8w5zdj334ndgfkacycdhyk7as86dxpd0w61i26yjir22nfa90";
+      name = "kio-gdrive-22.04.2.tar.xz";
     };
   };
   kipi-plugins = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kipi-plugins-22.04.1.tar.xz";
-      sha256 = "0587pc2nmcxig4nfqyc6yvc1rxaqqa3kgnbdah53177mb4zj1lk8";
-      name = "kipi-plugins-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kipi-plugins-22.04.2.tar.xz";
+      sha256 = "1kdkflizw98zk8vzikm12vj7j00dldqw9hii8al6mch2mbva6qc2";
+      name = "kipi-plugins-22.04.2.tar.xz";
     };
   };
   kirigami-gallery = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kirigami-gallery-22.04.1.tar.xz";
-      sha256 = "1yjj18vcik38gzqka2kia4yrk8ay9l2d7lh3wspp97v3r49dpl7y";
-      name = "kirigami-gallery-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kirigami-gallery-22.04.2.tar.xz";
+      sha256 = "01hvbixjr90p0j5p3nklrxz5lqdx6k3lv9vjffpm7x0r5d0f6vkl";
+      name = "kirigami-gallery-22.04.2.tar.xz";
     };
   };
   kiriki = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kiriki-22.04.1.tar.xz";
-      sha256 = "0mwdmb14ljr2vvpz05frzd3qpwp16zckivi5qb7awf488vj7iknz";
-      name = "kiriki-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kiriki-22.04.2.tar.xz";
+      sha256 = "0wdfs328axlw0gwapxkyvd80ymkjlx4smz4ph72d58fhmjnhp551";
+      name = "kiriki-22.04.2.tar.xz";
     };
   };
   kiten = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kiten-22.04.1.tar.xz";
-      sha256 = "14zq296qmjfssa0f3gmq2hsadlglp95l1wrrm0v14j19rd1sfzlr";
-      name = "kiten-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kiten-22.04.2.tar.xz";
+      sha256 = "0gpjcf72hz8nif1vzs46him58g8f74r24nfk2dpxil3nxdy10xp9";
+      name = "kiten-22.04.2.tar.xz";
     };
   };
   kitinerary = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kitinerary-22.04.1.tar.xz";
-      sha256 = "0ykbjp3bqhlhjj3r04zgh0pza6mh4qadhxk8gsxdndqvpv4p8sih";
-      name = "kitinerary-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kitinerary-22.04.2.tar.xz";
+      sha256 = "1gvjz1qvz6cy13c1a3drrznf110y78517s0akq8ir3aik4q4kczc";
+      name = "kitinerary-22.04.2.tar.xz";
     };
   };
   kjumpingcube = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kjumpingcube-22.04.1.tar.xz";
-      sha256 = "1fgz21wy3nwqhsplpg65j54rlwdpmp6nhdh9g04zsgy3micsghag";
-      name = "kjumpingcube-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kjumpingcube-22.04.2.tar.xz";
+      sha256 = "15djzgaaqdbialfb7a81i8vm7cgkkgx2lvnnr9yi06drf6a0xn81";
+      name = "kjumpingcube-22.04.2.tar.xz";
     };
   };
   kldap = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kldap-22.04.1.tar.xz";
-      sha256 = "1p06v089mid7y1qapdwai781jvypl2a3q8007j0rfpk9nbb93lhb";
-      name = "kldap-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kldap-22.04.2.tar.xz";
+      sha256 = "10rs6hyf31783prsh838sdl4wlm7a8v9bn9k400x53j6lb0k9nb0";
+      name = "kldap-22.04.2.tar.xz";
     };
   };
   kleopatra = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kleopatra-22.04.1.tar.xz";
-      sha256 = "08xfxbm9rlv36bf9zzj61ds052hg5l1q4m1fs9mcwvwcnwsn63nk";
-      name = "kleopatra-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kleopatra-22.04.2.tar.xz";
+      sha256 = "11cks6cizjvj52arj9j78zyqs9hnsaha42s00vnqi5x4cp6qf22n";
+      name = "kleopatra-22.04.2.tar.xz";
     };
   };
   klettres = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/klettres-22.04.1.tar.xz";
-      sha256 = "1clyjlrzjxw534ks6y496l1xr4iz1qxmmlgr5dyaqw8r5n45x687";
-      name = "klettres-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/klettres-22.04.2.tar.xz";
+      sha256 = "1c5pd3dmrny1qyj4lrrww2y26mfg9n52mggsrhgmbmk9m251a4b4";
+      name = "klettres-22.04.2.tar.xz";
     };
   };
   klickety = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/klickety-22.04.1.tar.xz";
-      sha256 = "1ssnrqyvm9w3jn53pshy8gd06q30760wgzk9svhk485j90g6jw9c";
-      name = "klickety-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/klickety-22.04.2.tar.xz";
+      sha256 = "06x2wimz6r0dvwfxwkr9p0glqk7vhg17m9rgcjxn4mkgz65yidip";
+      name = "klickety-22.04.2.tar.xz";
     };
   };
   klines = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/klines-22.04.1.tar.xz";
-      sha256 = "1k3a9vr92xb7m5gqdgz9kg0vnyxq4br1zyxy7d5wgqf28qgh41vf";
-      name = "klines-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/klines-22.04.2.tar.xz";
+      sha256 = "0gvpp4ngmlzblpgv55qslp24irkpgq52352n7miv7jjdilvflid1";
+      name = "klines-22.04.2.tar.xz";
     };
   };
   kmag = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmag-22.04.1.tar.xz";
-      sha256 = "0siiwgrfvzqhm23887j560w6l9i0j43i569kfknyqkiz5p0l28zz";
-      name = "kmag-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmag-22.04.2.tar.xz";
+      sha256 = "12i7xyd8bjgrvb1ml0947k26vc110yzan4rq84gfydbmky3vwqjn";
+      name = "kmag-22.04.2.tar.xz";
     };
   };
   kmahjongg = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmahjongg-22.04.1.tar.xz";
-      sha256 = "0kcdpyh7iabg672y0yd84lb14h0mn4p3cq2w9zi0l71gqm1zs22a";
-      name = "kmahjongg-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmahjongg-22.04.2.tar.xz";
+      sha256 = "0h2krv7940d4k71zjm5p2nbirnzklvvci5bircz712f2mp9pqnxx";
+      name = "kmahjongg-22.04.2.tar.xz";
     };
   };
   kmail = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmail-22.04.1.tar.xz";
-      sha256 = "1s4kbv8y7jhwg6b2qd8kj22xiwdgyllxnljmmna1964kqakl6h54";
-      name = "kmail-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmail-22.04.2.tar.xz";
+      sha256 = "0ahq41xnwlg5qbrwfcnjixbvkpxpr9bj4gj11xxzwr6d83svwlpw";
+      name = "kmail-22.04.2.tar.xz";
     };
   };
   kmail-account-wizard = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmail-account-wizard-22.04.1.tar.xz";
-      sha256 = "119gp8dv84nfnd2lvxgw3qsrfrycmgbqq2xm0hlz8zp2jmikw9fk";
-      name = "kmail-account-wizard-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmail-account-wizard-22.04.2.tar.xz";
+      sha256 = "1bm09zrpa678qgvci783zql1k45b1fjlm4fkk6xxalhfyd8hk12j";
+      name = "kmail-account-wizard-22.04.2.tar.xz";
     };
   };
   kmailtransport = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmailtransport-22.04.1.tar.xz";
-      sha256 = "1lmd4lvj66ib0f1bkaanvcdq84f8hcyxx2hgrqdyha5d1mpw47cg";
-      name = "kmailtransport-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmailtransport-22.04.2.tar.xz";
+      sha256 = "0s5vpcp7c6143z9yc7nbljbrx8zljy4n46y57shmsqy5h73lbfwb";
+      name = "kmailtransport-22.04.2.tar.xz";
     };
   };
   kmbox = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmbox-22.04.1.tar.xz";
-      sha256 = "1496mzbcxzdlwyy207b0ql2il934hcqigb2vybxqc6lap4irzf4i";
-      name = "kmbox-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmbox-22.04.2.tar.xz";
+      sha256 = "138nwfr58wav0ybgwjrv9c33asbwwp7gss8aj912kq3izj4sw15r";
+      name = "kmbox-22.04.2.tar.xz";
     };
   };
   kmime = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmime-22.04.1.tar.xz";
-      sha256 = "01favp535b9cjjwyqcaqbprcljamn2pzwl8mf5m59xq4s9h4myd7";
-      name = "kmime-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmime-22.04.2.tar.xz";
+      sha256 = "00wh72s989mrny518gmldb78qcsrwhz46dcydi34v6q06x1jdlk0";
+      name = "kmime-22.04.2.tar.xz";
     };
   };
   kmines = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmines-22.04.1.tar.xz";
-      sha256 = "1rcx9yxml0lgaa8bls836j010bgqbqd6pj08ncjqw42m67fzll24";
-      name = "kmines-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmines-22.04.2.tar.xz";
+      sha256 = "1hxm3kd8in4x6ww6wymba2nw17ggv10wjbzjvl4iyqbk8l3v2851";
+      name = "kmines-22.04.2.tar.xz";
     };
   };
   kmix = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmix-22.04.1.tar.xz";
-      sha256 = "1flf3adk1bm9c6hi4xqana8r1jslgdffy4rri4r5s0lrr3w7kdsw";
-      name = "kmix-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmix-22.04.2.tar.xz";
+      sha256 = "1k739lir73yj7biz98yij8m7hv492y2h64hzl3xpwc63jc5cpfcc";
+      name = "kmix-22.04.2.tar.xz";
     };
   };
   kmousetool = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmousetool-22.04.1.tar.xz";
-      sha256 = "0hlggni1mwn1bf9xx8l643nxwzw7pjh4y9cra7adph30nqfyr4cv";
-      name = "kmousetool-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmousetool-22.04.2.tar.xz";
+      sha256 = "1nzqmd5kqixzyfgb0w58rrfghh19dxsbc4bk7rpynvknd2alm3c3";
+      name = "kmousetool-22.04.2.tar.xz";
     };
   };
   kmouth = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmouth-22.04.1.tar.xz";
-      sha256 = "01j19l02ffijjggi8h1lrncc9177iqgdh62y14dlka83j47f1wh3";
-      name = "kmouth-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmouth-22.04.2.tar.xz";
+      sha256 = "1j7ggfq53ca1578470qn3y8p6bg2cml8j7scwjkkl430zh5nz59m";
+      name = "kmouth-22.04.2.tar.xz";
     };
   };
   kmplot = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kmplot-22.04.1.tar.xz";
-      sha256 = "0fvsygp3sf1mvhws8mb3q3vdf4ljmvvjj9a36rl7904zan14klq8";
-      name = "kmplot-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kmplot-22.04.2.tar.xz";
+      sha256 = "0jgg48mp7niby032r3wxrg5n41mhw0vq213a6bi7fnkn9bjlipbc";
+      name = "kmplot-22.04.2.tar.xz";
     };
   };
   knavalbattle = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/knavalbattle-22.04.1.tar.xz";
-      sha256 = "1araf2f216hjy212ilabz4z4axa2j93j2jvvlq5y5psn4zmrz23v";
-      name = "knavalbattle-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/knavalbattle-22.04.2.tar.xz";
+      sha256 = "08hn8ich5vvk6nk1b4zm7k6rb7wjv4hvsaf7j0ikcm78iky8yccw";
+      name = "knavalbattle-22.04.2.tar.xz";
     };
   };
   knetwalk = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/knetwalk-22.04.1.tar.xz";
-      sha256 = "0psayrbk56zl54vbwhzzzpg4h9rigyw48rxl0si7z7sjwill3xq2";
-      name = "knetwalk-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/knetwalk-22.04.2.tar.xz";
+      sha256 = "0dckkn7n576x9b0yffj3zwa4ynq1cyb3w49n0zhvw94aclix4pih";
+      name = "knetwalk-22.04.2.tar.xz";
     };
   };
   knights = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/knights-22.04.1.tar.xz";
-      sha256 = "018f8y7zhdqn77qkkwqgf5w5m0y1c9i5w7xs08q2hcglpa6pb5jj";
-      name = "knights-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/knights-22.04.2.tar.xz";
+      sha256 = "0x57dxy2n1lr5wlivbb8qq037v43cd8839xx4mxbqjwm4ix4y7cp";
+      name = "knights-22.04.2.tar.xz";
     };
   };
   knotes = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/knotes-22.04.1.tar.xz";
-      sha256 = "1h1afis9d33mzz023b61b6fxy399bdxrvnbmjvb2ncgs7c3nvd21";
-      name = "knotes-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/knotes-22.04.2.tar.xz";
+      sha256 = "0l106f9jrcjx93bz76azg6mn53ddv6d2kpxyf65bzprlgg0v1qn0";
+      name = "knotes-22.04.2.tar.xz";
     };
   };
   kolf = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kolf-22.04.1.tar.xz";
-      sha256 = "15jhd2giakbp7zy3jwz0rqmr11cv7y5n6hbvxdx17xf6rgr20qxf";
-      name = "kolf-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kolf-22.04.2.tar.xz";
+      sha256 = "1pyx524gwsypmqg1i3al42w0a5a3apvif5rs1s5fabkn33djw1af";
+      name = "kolf-22.04.2.tar.xz";
     };
   };
   kollision = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kollision-22.04.1.tar.xz";
-      sha256 = "1g7z7n2ihfnqr10pbba2rfwm826vrir7k6lxvizma4fa65f9dg9c";
-      name = "kollision-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kollision-22.04.2.tar.xz";
+      sha256 = "0q7199z3s231fxygbshjviwmyppxz34d99d40v5z5s1qgnshyv10";
+      name = "kollision-22.04.2.tar.xz";
     };
   };
   kolourpaint = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kolourpaint-22.04.1.tar.xz";
-      sha256 = "1sxgfyvxfjwfn5rjxcgifmdlxin77f5kizwpyn1jan8awk3rcl2d";
-      name = "kolourpaint-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kolourpaint-22.04.2.tar.xz";
+      sha256 = "192n8sjimh2anqqrfs3pmw40393qnriiimz0pd8pwhsl1x05c3lq";
+      name = "kolourpaint-22.04.2.tar.xz";
     };
   };
   kompare = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kompare-22.04.1.tar.xz";
-      sha256 = "0kjkmj5xnvkg22i9h5bqy3r68xbxy57mpp0fynaakl3dj89pxz0m";
-      name = "kompare-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kompare-22.04.2.tar.xz";
+      sha256 = "188siw60ahl84h2lii74siqc0glvmpxvj22f28nm700hchwvv5bk";
+      name = "kompare-22.04.2.tar.xz";
     };
   };
   konqueror = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/konqueror-22.04.1.tar.xz";
-      sha256 = "1vs7x40pf8290bqcxyd0p086nds9z3bczk4rjsadifrymgmf4i17";
-      name = "konqueror-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/konqueror-22.04.2.tar.xz";
+      sha256 = "18fmwawpkbqsgfxcjhr1l5695mwcan92krr252130p4l1scdcnjc";
+      name = "konqueror-22.04.2.tar.xz";
     };
   };
   konquest = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/konquest-22.04.1.tar.xz";
-      sha256 = "0rajwi6yjxzs4g7q8bc07b4sn71p0989cz9fx4k6rs3zwhfdf0dr";
-      name = "konquest-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/konquest-22.04.2.tar.xz";
+      sha256 = "16cd4069n29y6k9p7f3r9p7ici0z54m17avyq34jf39qiz5a83x0";
+      name = "konquest-22.04.2.tar.xz";
     };
   };
   konsole = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/konsole-22.04.1.tar.xz";
-      sha256 = "1qr2d32j0dz1ssd8ym8llxwsdzjmn6x1z5hcbkn6895ym649h14d";
-      name = "konsole-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/konsole-22.04.2.tar.xz";
+      sha256 = "04bi6g2zfk7p189cfd0xacvqg6niv4rhyaqckax3zc0msy6fklcp";
+      name = "konsole-22.04.2.tar.xz";
     };
   };
   kontact = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kontact-22.04.1.tar.xz";
-      sha256 = "19krnikn5374gjp82k7g3vvv1ylakqari2rnsbp1l7vdrymj28wn";
-      name = "kontact-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kontact-22.04.2.tar.xz";
+      sha256 = "1d2p1n68qdzzv6b7f438n0f8xmdv9m1vy2v6s47wnxspbmflfyvb";
+      name = "kontact-22.04.2.tar.xz";
     };
   };
   kontactinterface = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kontactinterface-22.04.1.tar.xz";
-      sha256 = "0sya33b0xg9392jb8p5gdw0cd3iivgfq2jvzbvpr3iiq9cgbj2m3";
-      name = "kontactinterface-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kontactinterface-22.04.2.tar.xz";
+      sha256 = "0pgw9cdfqkb9kdpkjm9g2l4vypz7x9gkjmwgbjx5x9j02fgqqqd6";
+      name = "kontactinterface-22.04.2.tar.xz";
     };
   };
   kontrast = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kontrast-22.04.1.tar.xz";
-      sha256 = "0paharkjyz51mgajan6bspkc8bpywjkgdkszdi909vxyzgszcznz";
-      name = "kontrast-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kontrast-22.04.2.tar.xz";
+      sha256 = "0mkg2j46kan1zwrpvppamh1lx87hv11d5y2kjwv2ncpbk79jab41";
+      name = "kontrast-22.04.2.tar.xz";
     };
   };
   konversation = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/konversation-22.04.1.tar.xz";
-      sha256 = "1gzy1v2vdc100sr1anp3762nn3hj4km5hrjnxnkcc30z2p7g7cyi";
-      name = "konversation-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/konversation-22.04.2.tar.xz";
+      sha256 = "1wj32yvrdvk304d8z1rb72cw2m7arsxivr0w77id9a7c9w28qiir";
+      name = "konversation-22.04.2.tar.xz";
     };
   };
   kopeninghours = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kopeninghours-22.04.1.tar.xz";
-      sha256 = "0w9j1y7h8p6hqvrf9k0rp0hbajjlbipnwj4rc9p204khganbp1nd";
-      name = "kopeninghours-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kopeninghours-22.04.2.tar.xz";
+      sha256 = "0lay8mdiv6zylr86w1y2ap7117yc5xx1lz293bqxcp6pxnd77fpv";
+      name = "kopeninghours-22.04.2.tar.xz";
     };
   };
   kopete = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kopete-22.04.1.tar.xz";
-      sha256 = "1rhykqns68p650s64vd1x655cvfa0jgvban3v2vpa2qh2pl7w1mk";
-      name = "kopete-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kopete-22.04.2.tar.xz";
+      sha256 = "0zxrn2c5wz3aqx2qg5h2i8f22gzq40d965x9h7dyhc7zhr6ccfvw";
+      name = "kopete-22.04.2.tar.xz";
     };
   };
   korganizer = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/korganizer-22.04.1.tar.xz";
-      sha256 = "0d2mshb8gj5akr4jxf85rk759i3dmkg15c3daj7jfpgr7ybyck2r";
-      name = "korganizer-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/korganizer-22.04.2.tar.xz";
+      sha256 = "0x27gs3ggqzhabxwmndfwz7jzi3xkzskxsp2k50apmdnbzsb7qiv";
+      name = "korganizer-22.04.2.tar.xz";
     };
   };
   kosmindoormap = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kosmindoormap-22.04.1.tar.xz";
-      sha256 = "0kmla7f8ld0398prqcqanv2pf38lg4c1gkz1qiak93ay2h9nww11";
-      name = "kosmindoormap-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kosmindoormap-22.04.2.tar.xz";
+      sha256 = "0hn0blfmpgvpphrivdmn1ql7q5k9sj7yb4vp3k27p3w4q4hbbyvf";
+      name = "kosmindoormap-22.04.2.tar.xz";
     };
   };
   kpat = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kpat-22.04.1.tar.xz";
-      sha256 = "1wd125nxgmflzxrsasbsi3k99wwws1nrwvimqgsy2rw40fm3i6ga";
-      name = "kpat-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kpat-22.04.2.tar.xz";
+      sha256 = "0gh23av90r89dbajwap4ds9j7w0rmq708q30760x88hw3v89b7r2";
+      name = "kpat-22.04.2.tar.xz";
     };
   };
   kpimtextedit = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kpimtextedit-22.04.1.tar.xz";
-      sha256 = "1ixzz4wlmx8sh4bkxaxacllcn3pymr75vwgks00rw1jiqgydxkpn";
-      name = "kpimtextedit-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kpimtextedit-22.04.2.tar.xz";
+      sha256 = "0mcvlyr0xmwmzv6hhv1crbiqcynfzj206hgm6cry2ffbiqpln7g4";
+      name = "kpimtextedit-22.04.2.tar.xz";
     };
   };
   kpkpass = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kpkpass-22.04.1.tar.xz";
-      sha256 = "07a1k6gfl0x7p57n0g0199g2zaz097arbwhkjx1y7xsi775asp2y";
-      name = "kpkpass-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kpkpass-22.04.2.tar.xz";
+      sha256 = "0ifq86b53b3w3kha8kdlzdkr936pivcfnffnaipc3wb607g8s4nw";
+      name = "kpkpass-22.04.2.tar.xz";
     };
   };
   kpmcore = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kpmcore-22.04.1.tar.xz";
-      sha256 = "1y34gh1983ihf2hcs9x35xq805wd0cx1w2dgnbb41l2v2b647l3h";
-      name = "kpmcore-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kpmcore-22.04.2.tar.xz";
+      sha256 = "19hyf31b1n0l0vqwwqkpm8kg9a430pys0s4ywxplbcz8n58qpcf6";
+      name = "kpmcore-22.04.2.tar.xz";
     };
   };
   kpublictransport = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kpublictransport-22.04.1.tar.xz";
-      sha256 = "0zssk77hxzprpgdzcw5r00kk3yccpmjcqx0hvix4q2ghj422z1cg";
-      name = "kpublictransport-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kpublictransport-22.04.2.tar.xz";
+      sha256 = "1spkgsa1fbcr74l9kc2rszqwxb92jfrsfgk42g64gnnsprxxaj5a";
+      name = "kpublictransport-22.04.2.tar.xz";
     };
   };
   kqtquickcharts = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kqtquickcharts-22.04.1.tar.xz";
-      sha256 = "0b1cwsa16bfwlv8x3zwmvhkk5zahrhqpr94vpv5fvai47apihng8";
-      name = "kqtquickcharts-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kqtquickcharts-22.04.2.tar.xz";
+      sha256 = "1wmrnyzf6hpfrw15prc648jln3dhjhyf7rfidpr3cwaq7qw4p8zr";
+      name = "kqtquickcharts-22.04.2.tar.xz";
     };
   };
   krdc = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/krdc-22.04.1.tar.xz";
-      sha256 = "0ccg5a5rk9cb0q844y2adyrxj2z0zc63jp9zcdi14f7lp4rka8zz";
-      name = "krdc-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/krdc-22.04.2.tar.xz";
+      sha256 = "1bpydyxs0zb597mp81xmgl5d9fk7rzf9aagdswvbwk5j0l2lqbzi";
+      name = "krdc-22.04.2.tar.xz";
     };
   };
   kreversi = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kreversi-22.04.1.tar.xz";
-      sha256 = "0kwy7wdrfndmxg4nrqy51j102z33xzh1768ai6jcbgz2vjv6qhln";
-      name = "kreversi-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kreversi-22.04.2.tar.xz";
+      sha256 = "1mwv6qwqm5csga05py8wgm2k8grrgljim1rxxx13n0vpxnb1j9ln";
+      name = "kreversi-22.04.2.tar.xz";
     };
   };
   krfb = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/krfb-22.04.1.tar.xz";
-      sha256 = "00843wncngb4x6l44li6yzaq4qzlfyrzyxvkk6njm5pzmgki4yvp";
-      name = "krfb-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/krfb-22.04.2.tar.xz";
+      sha256 = "137rz2xlrpx0zlrrqgfqi80crwa8nmnxnk1kj13yf4b02z0di91p";
+      name = "krfb-22.04.2.tar.xz";
     };
   };
   kross-interpreters = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kross-interpreters-22.04.1.tar.xz";
-      sha256 = "1sh8f0m8hh06i3wspjybhqhn1dhpxag2mass38p7gm3ipkp7q88n";
-      name = "kross-interpreters-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kross-interpreters-22.04.2.tar.xz";
+      sha256 = "1ivkglglwxc102jc08alhf0smc4rc0m9f0v561vds026gma9lz2j";
+      name = "kross-interpreters-22.04.2.tar.xz";
     };
   };
   kruler = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kruler-22.04.1.tar.xz";
-      sha256 = "0vp1290wmy8rji34wdzzpshrgpzpiz3hvjgd0cynqg3skjn8r17p";
-      name = "kruler-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kruler-22.04.2.tar.xz";
+      sha256 = "0yf4yn6bgqysr8fgx0f8qilwvpd46wdhm99427z0q88cj9f93igx";
+      name = "kruler-22.04.2.tar.xz";
     };
   };
   kshisen = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kshisen-22.04.1.tar.xz";
-      sha256 = "0hiwkz2fm4ywm404prphl797j5dn95di6bcnnrb8l8zy6i2gwkvp";
-      name = "kshisen-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kshisen-22.04.2.tar.xz";
+      sha256 = "0yqafi4qxmcnlr7j9amrgb2yw3nzmldz4fngjssvry3g6wfqbj1w";
+      name = "kshisen-22.04.2.tar.xz";
     };
   };
   ksirk = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksirk-22.04.1.tar.xz";
-      sha256 = "14zb64kz7jk46hqc388g4zv7a3m2bd131sp8pabjmn83ysrpppz7";
-      name = "ksirk-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksirk-22.04.2.tar.xz";
+      sha256 = "1gz3wq50xk5ik71bn24gcm3cak2kh3r1cfxfqv9cmv1ikpjbv5fh";
+      name = "ksirk-22.04.2.tar.xz";
     };
   };
   ksmtp = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksmtp-22.04.1.tar.xz";
-      sha256 = "0n7lg7zavy43z73my5569hb1fv4xrsibizpzd9yp631iahn6jigl";
-      name = "ksmtp-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksmtp-22.04.2.tar.xz";
+      sha256 = "003wrhd0xw04hr8scsz9wpcikm13fzaajic1hlg1n35aqwh1cckn";
+      name = "ksmtp-22.04.2.tar.xz";
     };
   };
   ksnakeduel = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksnakeduel-22.04.1.tar.xz";
-      sha256 = "1sz70hdyfbzl5syq9f2vn2wdqdl4058xxk83vmj2a8niva49nr9m";
-      name = "ksnakeduel-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksnakeduel-22.04.2.tar.xz";
+      sha256 = "18fwdiy96zdpbygh5jzdvrn2b971vpnma3wbairwwf4xirb69cic";
+      name = "ksnakeduel-22.04.2.tar.xz";
     };
   };
   kspaceduel = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kspaceduel-22.04.1.tar.xz";
-      sha256 = "1k5fl88w1wcsq2sbh36bkikjh272fc9z89v45xnv40hjd00wwxac";
-      name = "kspaceduel-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kspaceduel-22.04.2.tar.xz";
+      sha256 = "00r27q16xag1dpjal9qm920s6qfrgdl10yfdxa1lq2lha0wwi6wy";
+      name = "kspaceduel-22.04.2.tar.xz";
     };
   };
   ksquares = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksquares-22.04.1.tar.xz";
-      sha256 = "1xlzbl9iqkhbh91v7qkrgk0ha8xi96j680bzyia9yjhxq8bkn0ii";
-      name = "ksquares-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksquares-22.04.2.tar.xz";
+      sha256 = "1m6bd474rcjhlcpxmz3iqwd884h87kvrphqd5dci4bnlvwgp3cfg";
+      name = "ksquares-22.04.2.tar.xz";
     };
   };
   ksudoku = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksudoku-22.04.1.tar.xz";
-      sha256 = "03nasma38xiwvbapyxs2wkgk7vv83jk57zg103rgkkr78ybabmgf";
-      name = "ksudoku-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksudoku-22.04.2.tar.xz";
+      sha256 = "0y372wzlmlbzq0c9vb8v10dcd9rpq12d80wmcdzjp9xfqankfx15";
+      name = "ksudoku-22.04.2.tar.xz";
     };
   };
   ksystemlog = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ksystemlog-22.04.1.tar.xz";
-      sha256 = "0dpb4acglqzy2cwfi32sc48r0p6vl8j7g9g6pc8r6iq25pja2qfp";
-      name = "ksystemlog-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ksystemlog-22.04.2.tar.xz";
+      sha256 = "1ayak3ljzvcwyv1yznp556w935g5yp83wyl9c335j6ji27i237vz";
+      name = "ksystemlog-22.04.2.tar.xz";
     };
   };
   kteatime = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kteatime-22.04.1.tar.xz";
-      sha256 = "0nv5i2arnwzpmd2zm5ra7n87y3ygmadzzpdlr5ylpznaqfypbgym";
-      name = "kteatime-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kteatime-22.04.2.tar.xz";
+      sha256 = "0armjabm4s52715javhl1pq53qbmk80jyjlr9j82rzi9p2lgcfyi";
+      name = "kteatime-22.04.2.tar.xz";
     };
   };
   ktimer = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktimer-22.04.1.tar.xz";
-      sha256 = "1ragzrdzzg9nw6nnxgpw9cm982lk71j1lbcb5b19dfb3jpwwirrw";
-      name = "ktimer-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktimer-22.04.2.tar.xz";
+      sha256 = "1q8kvjwfhn91prpj1phj4ajxd6bpxjjv335ql3qmyh7wn2lnsmx0";
+      name = "ktimer-22.04.2.tar.xz";
     };
   };
   ktnef = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktnef-22.04.1.tar.xz";
-      sha256 = "1rpni8jhbwghzzv4nw646xmz7g3vw7k1y7bnv9kmripn1sag8f49";
-      name = "ktnef-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktnef-22.04.2.tar.xz";
+      sha256 = "0ylvbknscrczgplqnda8arhk4vbd9282fgh5y1jrnrrlklvl5hpz";
+      name = "ktnef-22.04.2.tar.xz";
     };
   };
   ktorrent = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktorrent-22.04.1.tar.xz";
-      sha256 = "1cnq13dgz8fxiw65mlhzbimmb1p25rdcawldffr2b4gxv2gxcngk";
-      name = "ktorrent-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktorrent-22.04.2.tar.xz";
+      sha256 = "16ws3hgwa245abaqc4w61qss6c49njsl88cc9yg561q0xynrl20g";
+      name = "ktorrent-22.04.2.tar.xz";
     };
   };
   ktouch = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktouch-22.04.1.tar.xz";
-      sha256 = "0rz379xc0v3nvwilisvdfqlf84xgy48mhslkgp164mmp670r5ksj";
-      name = "ktouch-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktouch-22.04.2.tar.xz";
+      sha256 = "1a57mg5qd0gqvag9sai12s1dk8m5y132j0vj1vk279i908wdgb3i";
+      name = "ktouch-22.04.2.tar.xz";
     };
   };
   ktp-accounts-kcm = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-accounts-kcm-22.04.1.tar.xz";
-      sha256 = "15mc8wc4lywn0gi6wbc9h0k38fs38jr8v771r3zpc2r9bpa0qfsl";
-      name = "ktp-accounts-kcm-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-accounts-kcm-22.04.2.tar.xz";
+      sha256 = "09g13wvzrvi2frirdr2mxbx3fj21vd3byi31yylx4yc89xs407av";
+      name = "ktp-accounts-kcm-22.04.2.tar.xz";
     };
   };
   ktp-approver = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-approver-22.04.1.tar.xz";
-      sha256 = "11xrr83s1n0a97bkgyr8gy3f6abggndk1rdj7d4qs399jfzqs7j5";
-      name = "ktp-approver-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-approver-22.04.2.tar.xz";
+      sha256 = "1pxkb8ngrlwaqfsms2whb9h4n0r8gqkyr2lh51y4bzl66m44pg89";
+      name = "ktp-approver-22.04.2.tar.xz";
     };
   };
   ktp-auth-handler = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-auth-handler-22.04.1.tar.xz";
-      sha256 = "1fp2wj3nrnjn8mzyhqdqg8r7gdy7ksm245qagynynb1a2hdd1vpb";
-      name = "ktp-auth-handler-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-auth-handler-22.04.2.tar.xz";
+      sha256 = "03x2scg2sr5zf77zbky3az2j9ydv4sf84rgj32wd4x8s9h4wq2i8";
+      name = "ktp-auth-handler-22.04.2.tar.xz";
     };
   };
   ktp-call-ui = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-call-ui-22.04.1.tar.xz";
-      sha256 = "0jmbn52pz83d5n11hqawh64s2204izbb6w1aya4zdlsa4l2zyizb";
-      name = "ktp-call-ui-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-call-ui-22.04.2.tar.xz";
+      sha256 = "0skf0r0fas86lf76nky33hmbwxk9l4p1328hvjra9w95f6c67007";
+      name = "ktp-call-ui-22.04.2.tar.xz";
     };
   };
   ktp-common-internals = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-common-internals-22.04.1.tar.xz";
-      sha256 = "0vmy6sdxhi0d1g4iql2xx2zc259gwi155hh3s6f6nnfdvm4971a3";
-      name = "ktp-common-internals-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-common-internals-22.04.2.tar.xz";
+      sha256 = "0nsdaqr56jqa2nkgrw79pgbr60jsjwgfspv7qafgvb3iry752n72";
+      name = "ktp-common-internals-22.04.2.tar.xz";
     };
   };
   ktp-contact-list = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-contact-list-22.04.1.tar.xz";
-      sha256 = "1pczacindx828c7g6dkvq90nqadgg32jn4my335sl6ykr735a4pw";
-      name = "ktp-contact-list-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-contact-list-22.04.2.tar.xz";
+      sha256 = "1kfzx7hxb8alzm6f35rjvnhdg93rnns8jg51948ni88q9my8dgyj";
+      name = "ktp-contact-list-22.04.2.tar.xz";
     };
   };
   ktp-contact-runner = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-contact-runner-22.04.1.tar.xz";
-      sha256 = "1hcy2dm8d08bp5lqxa96am6af3i33vialyc7hzdmp6alv062fqgs";
-      name = "ktp-contact-runner-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-contact-runner-22.04.2.tar.xz";
+      sha256 = "14vlwqyjk1jkyd7c12chgnnxlzrwi9rxq5ldnbrvmcvy6a0hyb9m";
+      name = "ktp-contact-runner-22.04.2.tar.xz";
     };
   };
   ktp-desktop-applets = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-desktop-applets-22.04.1.tar.xz";
-      sha256 = "19hdfs1pa04d0inqh5id6ysnzsbi3n24jlr6y2qn2lzqfm3kgxl6";
-      name = "ktp-desktop-applets-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-desktop-applets-22.04.2.tar.xz";
+      sha256 = "1wvc5hcrix9jdmcncz9ihignbpfz6xl5gdzjv9nra7bzscipmy9g";
+      name = "ktp-desktop-applets-22.04.2.tar.xz";
     };
   };
   ktp-filetransfer-handler = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-filetransfer-handler-22.04.1.tar.xz";
-      sha256 = "1698ic2y43w8bm2j6r9mms4z3zgyz5wdghyhnw1syh8g0nks6b9a";
-      name = "ktp-filetransfer-handler-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-filetransfer-handler-22.04.2.tar.xz";
+      sha256 = "1jnbp03rwivy4wgz4r10cjqgm8mz5jr4c4wwd04sc7vhk24f0xgl";
+      name = "ktp-filetransfer-handler-22.04.2.tar.xz";
     };
   };
   ktp-kded-module = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-kded-module-22.04.1.tar.xz";
-      sha256 = "1df6wiyxb4qa6d8nj8hkn7z6f9g2nn0bwi9gywfqq23n1imrnin7";
-      name = "ktp-kded-module-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-kded-module-22.04.2.tar.xz";
+      sha256 = "0dmjrcz2d43if4gprdnx41idq4i1sxdxxdhs1hff745gvkjprvas";
+      name = "ktp-kded-module-22.04.2.tar.xz";
     };
   };
   ktp-send-file = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-send-file-22.04.1.tar.xz";
-      sha256 = "0swf599kf769ad721r0lmf74g0mp68h0lxjcvy71wfnjkfgn16rl";
-      name = "ktp-send-file-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-send-file-22.04.2.tar.xz";
+      sha256 = "1jgwbr9hq8i4vsildj35666242r6k7rvhffar5jilajizq5245kg";
+      name = "ktp-send-file-22.04.2.tar.xz";
     };
   };
   ktp-text-ui = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktp-text-ui-22.04.1.tar.xz";
-      sha256 = "0ldgiq0amr715hivv9573gxdi6p530zjfvq1nmyn4nr3lv3k036f";
-      name = "ktp-text-ui-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktp-text-ui-22.04.2.tar.xz";
+      sha256 = "1k61kyc4arclh63rppjayngn69dpnwdbzk2h4rqnlb7kngl2rlm7";
+      name = "ktp-text-ui-22.04.2.tar.xz";
     };
   };
   ktuberling = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/ktuberling-22.04.1.tar.xz";
-      sha256 = "1b1ra5qxf4yba4z9hsjq1r30vfg0kgpxjmj5cpzvm0jdy5vas8j5";
-      name = "ktuberling-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/ktuberling-22.04.2.tar.xz";
+      sha256 = "1acy1q4i4y52wqvpj8vx51gcaar9h0ibhr1d45iyd281522m9hij";
+      name = "ktuberling-22.04.2.tar.xz";
     };
   };
   kturtle = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kturtle-22.04.1.tar.xz";
-      sha256 = "1gs3q23ylxpbk65ml9xpgz7dyz9r2gbwl2jda9i2vqir4n6w1ihm";
-      name = "kturtle-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kturtle-22.04.2.tar.xz";
+      sha256 = "1mcjwgjvxpy26543si1lrd15x845ikw4f5r9ffcfnk30vj58cwjy";
+      name = "kturtle-22.04.2.tar.xz";
     };
   };
   kubrick = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kubrick-22.04.1.tar.xz";
-      sha256 = "13p33kmrdknzjbkpg90wjccgy7ckpk23gfghvn55q13hvvvr492w";
-      name = "kubrick-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kubrick-22.04.2.tar.xz";
+      sha256 = "0mm1v4ni7rf8m8vvw8caggpv8s7nlq40z5r34an1xi4x8iqw6kwv";
+      name = "kubrick-22.04.2.tar.xz";
     };
   };
   kwalletmanager = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kwalletmanager-22.04.1.tar.xz";
-      sha256 = "0nhfyz9fyjsjjbj4fgyqqq2rvafm8klbjnlf0sqy5fdd5ldii7i8";
-      name = "kwalletmanager-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kwalletmanager-22.04.2.tar.xz";
+      sha256 = "1qjz5pk8krdcy2y7gh5rj6rr0zflbc0ip91649srhsqnv1s64hg1";
+      name = "kwalletmanager-22.04.2.tar.xz";
     };
   };
   kwave = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kwave-22.04.1.tar.xz";
-      sha256 = "10m847fqk3b8yhs4vji477qc9gh62rz9n72b23ib4y8xpddvkxzz";
-      name = "kwave-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kwave-22.04.2.tar.xz";
+      sha256 = "0k6pm0xpxcz38hkrgk5xrz7zmpffahyj0z8c744wplns27xl2k0m";
+      name = "kwave-22.04.2.tar.xz";
     };
   };
   kwordquiz = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/kwordquiz-22.04.1.tar.xz";
-      sha256 = "0mw8pkwr52bfzwbv8rny6s5yfqf7rz55ql0v7i319vi71pk9m8bz";
-      name = "kwordquiz-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/kwordquiz-22.04.2.tar.xz";
+      sha256 = "1m5fa8g2qs674nrraia79gdq3qhff8pc0s3p9310cqnj1nh6ngkh";
+      name = "kwordquiz-22.04.2.tar.xz";
     };
   };
   libgravatar = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libgravatar-22.04.1.tar.xz";
-      sha256 = "0fy52hm3xkh7kvask339gfxsm2fiv5d2va4wlhgqhnjq972b7fyn";
-      name = "libgravatar-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libgravatar-22.04.2.tar.xz";
+      sha256 = "0mpdnwkax67fdmhlfgp768vhh2vhvpr3r98yzh80bzdcs1xig0jz";
+      name = "libgravatar-22.04.2.tar.xz";
     };
   };
   libkcddb = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkcddb-22.04.1.tar.xz";
-      sha256 = "000bqff7gdy5bhs7jkyf08j975f9wqxv9x4qgs5gnqz4wxrqllqh";
-      name = "libkcddb-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkcddb-22.04.2.tar.xz";
+      sha256 = "0gf9nxmydh5q8558xg89gzd9n037d6gdqds2kpwrj62xrk9530fq";
+      name = "libkcddb-22.04.2.tar.xz";
     };
   };
   libkcompactdisc = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkcompactdisc-22.04.1.tar.xz";
-      sha256 = "06s56iqmr0rhpp325p98mz7b0bn7siq91y11v6pvvxwp42mfm6w6";
-      name = "libkcompactdisc-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkcompactdisc-22.04.2.tar.xz";
+      sha256 = "00bypyi0fa3d9wjy9bnb3yfi5l1py21z6gahx2d5f6488in37z5m";
+      name = "libkcompactdisc-22.04.2.tar.xz";
     };
   };
   libkdcraw = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkdcraw-22.04.1.tar.xz";
-      sha256 = "19d82bmz8mfp6sajjih5712z4951pp0hsnsw1s46xs0r4lwjv532";
-      name = "libkdcraw-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkdcraw-22.04.2.tar.xz";
+      sha256 = "1z98711cfxz1hb1ilssgn54zllk4vn8vs7rfpbmrzxkx0wlzcsf6";
+      name = "libkdcraw-22.04.2.tar.xz";
     };
   };
   libkdegames = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkdegames-22.04.1.tar.xz";
-      sha256 = "1q6r1y13lzxyfgy1bphrqq6vpn43vssa077inccl1b4hqm9lgs8c";
-      name = "libkdegames-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkdegames-22.04.2.tar.xz";
+      sha256 = "04996k2z32bpbxbrxlh65jpvxw61mgxb4dib28rd3ba06p0zcfn3";
+      name = "libkdegames-22.04.2.tar.xz";
     };
   };
   libkdepim = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkdepim-22.04.1.tar.xz";
-      sha256 = "0x21yw42fsvib28fabilxinm7sl0vrwhw12yzra66mrl7ysvwfwn";
-      name = "libkdepim-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkdepim-22.04.2.tar.xz";
+      sha256 = "08lri4abdlh9c8izmp2a2jn8yk121m5nw51rnnrj6cvgag9g4w2m";
+      name = "libkdepim-22.04.2.tar.xz";
     };
   };
   libkeduvocdocument = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkeduvocdocument-22.04.1.tar.xz";
-      sha256 = "05w76d7js2068wmyjahailw1bmjn6zrr9d49hixn2ic0fih4amai";
-      name = "libkeduvocdocument-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkeduvocdocument-22.04.2.tar.xz";
+      sha256 = "1g51ra4dvrbk7p3bmzvym2i4wa409ignw7i5dl9k0xa0zrv8dk8q";
+      name = "libkeduvocdocument-22.04.2.tar.xz";
     };
   };
   libkexiv2 = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkexiv2-22.04.1.tar.xz";
-      sha256 = "1nnmbq3xcl7blflw9ibaqwkk405rf1rfjh8zxvli8yhz76rkhvrp";
-      name = "libkexiv2-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkexiv2-22.04.2.tar.xz";
+      sha256 = "0yrivln91by5jznsv76i6pimng2a4a59p6vkgglh7pci8b6ci5g3";
+      name = "libkexiv2-22.04.2.tar.xz";
     };
   };
   libkgapi = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkgapi-22.04.1.tar.xz";
-      sha256 = "17qa3c2zbsiyj6lqw56flhv0dfnwcd8ak7hisyrksalv50x5zq4l";
-      name = "libkgapi-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkgapi-22.04.2.tar.xz";
+      sha256 = "1fcb0a93c1358c9kya8xd1dqdpwnl3x3wyzqffa1kdid8yhgihwz";
+      name = "libkgapi-22.04.2.tar.xz";
     };
   };
   libkipi = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkipi-22.04.1.tar.xz";
-      sha256 = "1zcskhg1p8ldrf4r0miqnyvyw9yr4x894lp4hkahvlarxm7vf5gg";
-      name = "libkipi-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkipi-22.04.2.tar.xz";
+      sha256 = "02bhvzbgjlai2n4yzjpkjrrf8bqr8rpdc17zqsy936nf5zm31v5c";
+      name = "libkipi-22.04.2.tar.xz";
     };
   };
   libkleo = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkleo-22.04.1.tar.xz";
-      sha256 = "01qqzvna4vpldflq9ah2dj8hl3wmzh6x4hw4ah3vii2rmf5hbmln";
-      name = "libkleo-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkleo-22.04.2.tar.xz";
+      sha256 = "13zii42l6xs45fs9xgdpvkj9hsxjwp27gdsxvx1wyvmfi99q01fw";
+      name = "libkleo-22.04.2.tar.xz";
     };
   };
   libkmahjongg = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkmahjongg-22.04.1.tar.xz";
-      sha256 = "0aw79n93f4vc2fg0mrb55cz1584hwf7li4fyvs4c4wpxcpbfk3ff";
-      name = "libkmahjongg-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkmahjongg-22.04.2.tar.xz";
+      sha256 = "0x0f4nwv2ibpmb9c7ll0nv4i6h58jk2myixlwc3qc46g1ccf08c4";
+      name = "libkmahjongg-22.04.2.tar.xz";
     };
   };
   libkomparediff2 = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libkomparediff2-22.04.1.tar.xz";
-      sha256 = "0gz31j51vqgs13gyk2xrr20h852vnk9cy381sgnnk9m22lqxn174";
-      name = "libkomparediff2-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libkomparediff2-22.04.2.tar.xz";
+      sha256 = "02g6gwv576rs9r8xkma9n7z78ilb6gb6hdmryd8yvrrjgrd3nwd7";
+      name = "libkomparediff2-22.04.2.tar.xz";
     };
   };
   libksane = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libksane-22.04.1.tar.xz";
-      sha256 = "103448xv5y6q552g4g6016nmrgr2b0b6g0mg4d5hy2ibd0kmsxdv";
-      name = "libksane-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libksane-22.04.2.tar.xz";
+      sha256 = "1cs0dh774brzq7qfib8dxhz21gasi0r1dqrdg3n2w1lys5c17b1p";
+      name = "libksane-22.04.2.tar.xz";
     };
   };
   libksieve = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libksieve-22.04.1.tar.xz";
-      sha256 = "06ypiw5xmpxjyr5blwnwv5whm15fsafadzld8mn7qqxfzhibpzrx";
-      name = "libksieve-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libksieve-22.04.2.tar.xz";
+      sha256 = "0r4w7afqp9gnhn1q9prvdklkwlszs8pqgq7xqgsfsncadajf6pzx";
+      name = "libksieve-22.04.2.tar.xz";
     };
   };
   libktorrent = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/libktorrent-22.04.1.tar.xz";
-      sha256 = "1jnxwyvil5mjlj7rvy31nbdg39fziclb014ilsy2f0g1r7nldpap";
-      name = "libktorrent-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/libktorrent-22.04.2.tar.xz";
+      sha256 = "07wl2xxyrvpczwac55xzw8swm99rmqhsrr7v0mlc8fhqkm935232";
+      name = "libktorrent-22.04.2.tar.xz";
     };
   };
   lokalize = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/lokalize-22.04.1.tar.xz";
-      sha256 = "0m4z9qas74x5j7wc1gr0rfzn10mzf1jdf3ffqybrxgli22w8c9my";
-      name = "lokalize-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/lokalize-22.04.2.tar.xz";
+      sha256 = "15fniwvvd70r5vaybz8qzdpgfvmhz2yinlkfiw2plcafxax998lz";
+      name = "lokalize-22.04.2.tar.xz";
     };
   };
   lskat = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/lskat-22.04.1.tar.xz";
-      sha256 = "0gyd8bzdnc5c0dpswmrigm81ajqgbvkvfs97nrdw08hvk5ba3a79";
-      name = "lskat-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/lskat-22.04.2.tar.xz";
+      sha256 = "0manh8na2iq5yz662msp6nr5ca7rz4ms4sd36yh909x16fhngaxz";
+      name = "lskat-22.04.2.tar.xz";
     };
   };
   mailcommon = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/mailcommon-22.04.1.tar.xz";
-      sha256 = "0xfsjl6p629r0gpvcrnxgdx1hfcqk9q1zzwjs4zw1waggpf39has";
-      name = "mailcommon-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/mailcommon-22.04.2.tar.xz";
+      sha256 = "1y3x16h4a6nlw44g2mrpqwy76x93r7l65xp8lm2zf6dr152hxl6r";
+      name = "mailcommon-22.04.2.tar.xz";
     };
   };
   mailimporter = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/mailimporter-22.04.1.tar.xz";
-      sha256 = "17gklgbi9fppc1k96nlmam8qdw8rzpc47b1vd9y1zrxsbp47fv46";
-      name = "mailimporter-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/mailimporter-22.04.2.tar.xz";
+      sha256 = "1pxa1b8w9qklgfzn7p5xmyvriz5pzflggzkwz3jwzhyz0k1m428d";
+      name = "mailimporter-22.04.2.tar.xz";
     };
   };
   marble = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/marble-22.04.1.tar.xz";
-      sha256 = "0mxqp7q4l0zic3aszfwijyk06pj9b2q3cj7bj3lqghvncd4196rm";
-      name = "marble-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/marble-22.04.2.tar.xz";
+      sha256 = "1nnzd362mq4qxwvbq2q1a1pcw30zgf3jvyk0fp8fq93bs882wcx4";
+      name = "marble-22.04.2.tar.xz";
     };
   };
   markdownpart = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/markdownpart-22.04.1.tar.xz";
-      sha256 = "1ihg3n4ndyipsfac5gfhf7pljr4x3v2zbalvc9369q39xmzvz8c5";
-      name = "markdownpart-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/markdownpart-22.04.2.tar.xz";
+      sha256 = "0klnlhlv38imiap5a6dvrmvskfggm56qj889xippbm41kpdpx4cf";
+      name = "markdownpart-22.04.2.tar.xz";
     };
   };
   mbox-importer = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/mbox-importer-22.04.1.tar.xz";
-      sha256 = "14jl5gwz7rwsac4gzyv1larr1llwwhdrbg6pvapqgwwpmxnmdjzi";
-      name = "mbox-importer-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/mbox-importer-22.04.2.tar.xz";
+      sha256 = "1xvnlv5gsk3fjanjln59nwkl7kv4idgm4ssm63akd825b64ia4sb";
+      name = "mbox-importer-22.04.2.tar.xz";
     };
   };
   messagelib = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/messagelib-22.04.1.tar.xz";
-      sha256 = "0inz5pygvfngd9brd40mk2zvh106m294mj2h52aq0ydnhxf9w0m8";
-      name = "messagelib-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/messagelib-22.04.2.tar.xz";
+      sha256 = "1v1ppq5qn2hd1ns2g2h15md0lzm3xk643vd9899gicrj3i0fq56z";
+      name = "messagelib-22.04.2.tar.xz";
     };
   };
   minuet = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/minuet-22.04.1.tar.xz";
-      sha256 = "0af3fir0njcczqf9wgfb0kygj9nnjf7z18sr39nzd45mm0qmmgk2";
-      name = "minuet-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/minuet-22.04.2.tar.xz";
+      sha256 = "1y27nkhl17k5hxhyd8hn4jsjsgf1ya6jpha9cccv2mpyd9xr3kgr";
+      name = "minuet-22.04.2.tar.xz";
     };
   };
   okular = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/okular-22.04.1.tar.xz";
-      sha256 = "0gqnfzh0k03q6mnb5ixa1shk6sx9qzgcj1l443lji1w2y8nhpqnf";
-      name = "okular-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/okular-22.04.2.tar.xz";
+      sha256 = "1f7cm28ivgj502439vhnyz4qf99pwj1wlk4zbaf5w16kph3dv8f9";
+      name = "okular-22.04.2.tar.xz";
     };
   };
   palapeli = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/palapeli-22.04.1.tar.xz";
-      sha256 = "1a8d0qg04a8h53nxxn8016gpamb6a8vycjhhf7586aglx51nj4ds";
-      name = "palapeli-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/palapeli-22.04.2.tar.xz";
+      sha256 = "0dn4h18pxfz1lhyl4gxprm0rcxkl7an3gm6yd1l7jfkh3r3a78sh";
+      name = "palapeli-22.04.2.tar.xz";
     };
   };
   parley = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/parley-22.04.1.tar.xz";
-      sha256 = "0xvml3svb68gpxrd80a3hqh65d0wavvksdx1wd5mxm8bkdqifb2j";
-      name = "parley-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/parley-22.04.2.tar.xz";
+      sha256 = "1qiglp6kx6kgwqsqvi0asi1figflyb5fm9maq0qzvv300f6va945";
+      name = "parley-22.04.2.tar.xz";
     };
   };
   partitionmanager = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/partitionmanager-22.04.1.tar.xz";
-      sha256 = "08nplvyzbbclqgkm03c7r6gyvmgj6931ml539ifngmfxjfhxj82n";
-      name = "partitionmanager-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/partitionmanager-22.04.2.tar.xz";
+      sha256 = "1xzbnsls8dypq703kwh8v5ay3yr4cpwxdapx7ywichcnsa89869a";
+      name = "partitionmanager-22.04.2.tar.xz";
     };
   };
   picmi = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/picmi-22.04.1.tar.xz";
-      sha256 = "13ipw692n72m3sbcpviyh85f993zvw2d6yqbdk96c5wwfksrhqww";
-      name = "picmi-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/picmi-22.04.2.tar.xz";
+      sha256 = "10dg85yh3gksd47dnj5wd1vw1gmisw90wsv3212avivhyxfv8x57";
+      name = "picmi-22.04.2.tar.xz";
     };
   };
-  pim-data-exporter = {
-    version = "22.04.1";
+  pimcommon = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/pim-data-exporter-22.04.1.tar.xz";
-      sha256 = "15kbvbq7gyxkjrhkafkz1dc3zyblsys3hg6641x0hmyy3zmyigbi";
-      name = "pim-data-exporter-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/pimcommon-22.04.2.tar.xz";
+      sha256 = "01amvq972j4b6qkpl08p3yq4zy6kn0yjhkkq7kcqkr2bs47cshg1";
+      name = "pimcommon-22.04.2.tar.xz";
     };
   };
-  pim-sieve-editor = {
-    version = "22.04.1";
+  pim-data-exporter = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/pim-sieve-editor-22.04.1.tar.xz";
-      sha256 = "02kr6530x6x7y7ngiz98ca4rvfsbcnci9093if71kaybhs2l267k";
-      name = "pim-sieve-editor-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/pim-data-exporter-22.04.2.tar.xz";
+      sha256 = "0rq35c5l46nwxb462pzkqwcjv0wjxnqlrkhymkmvblhi2cbyad54";
+      name = "pim-data-exporter-22.04.2.tar.xz";
     };
   };
-  pimcommon = {
-    version = "22.04.1";
+  pim-sieve-editor = {
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/pimcommon-22.04.1.tar.xz";
-      sha256 = "01l1nj7jjq7kx7db63a8nn1jcl2hpn3in6cklz89w2ilwkcwv51a";
-      name = "pimcommon-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/pim-sieve-editor-22.04.2.tar.xz";
+      sha256 = "0hfacgyvsr42c12c532zz5s80fvj3dbv2kyja5id0axkglrmh7ri";
+      name = "pim-sieve-editor-22.04.2.tar.xz";
     };
   };
   poxml = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/poxml-22.04.1.tar.xz";
-      sha256 = "0aiw90l716ii6sj82r68li7a0sq28nvy2j5phvdiqwisqcmrhhqn";
-      name = "poxml-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/poxml-22.04.2.tar.xz";
+      sha256 = "0cm0gdszf00mz7677qap5zddcgv35pzsmd0h9c8akjnvg85mlcvx";
+      name = "poxml-22.04.2.tar.xz";
     };
   };
   print-manager = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/print-manager-22.04.1.tar.xz";
-      sha256 = "0ydqf9p0zzsw2l2l49w3di7ihl441h54ifxidww0y1s2why0d77l";
-      name = "print-manager-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/print-manager-22.04.2.tar.xz";
+      sha256 = "0lmng4lwz8wbq1mas947mz9qsb7j0ggzs9rdwijmq287b31jzfmz";
+      name = "print-manager-22.04.2.tar.xz";
     };
   };
   rocs = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/rocs-22.04.1.tar.xz";
-      sha256 = "0jldr3kisfk309ykfnp6fqqny0bg4vfy0c85c593c014v099nnzc";
-      name = "rocs-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/rocs-22.04.2.tar.xz";
+      sha256 = "1y10kisdsdxsvmzkxby4y1zm4g3rssixbjlix5i1qrq3417qrj3a";
+      name = "rocs-22.04.2.tar.xz";
     };
   };
   signon-kwallet-extension = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/signon-kwallet-extension-22.04.1.tar.xz";
-      sha256 = "13nh3ggy6wlh18z1ag2hxrcf7gg3bscz1518ajbhcvriz4yc3v1c";
-      name = "signon-kwallet-extension-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/signon-kwallet-extension-22.04.2.tar.xz";
+      sha256 = "0k2ng51qr3kryxlzznkrxaky7j8h3x7p8rcjq1mxxa01ygwrknw1";
+      name = "signon-kwallet-extension-22.04.2.tar.xz";
     };
   };
   skanlite = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/skanlite-22.04.1.tar.xz";
-      sha256 = "1j0ky1b5pf8v8vqym8nrjpjb7z0gssj3nkbvfs0mz725a04gxxv9";
-      name = "skanlite-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/skanlite-22.04.2.tar.xz";
+      sha256 = "1kbjzia403r8znl2jhry09h6si06d7mgq234ablxr98dqjg96898";
+      name = "skanlite-22.04.2.tar.xz";
     };
   };
   skanpage = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/skanpage-22.04.1.tar.xz";
-      sha256 = "1w3w3h58arjmkfp63rgzzgzyl44wkv53dqsp43ny1yk8zyfw6cih";
-      name = "skanpage-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/skanpage-22.04.2.tar.xz";
+      sha256 = "1d6l7nmij33h4w6r7g8kfj0qkpw24fifc022l84w6fjyyv98k4q3";
+      name = "skanpage-22.04.2.tar.xz";
     };
   };
   spectacle = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/spectacle-22.04.1.tar.xz";
-      sha256 = "111q8jg925spgmij52vq17pdiw1wsxrw654ns2yj6vcnf2mwjnrk";
-      name = "spectacle-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/spectacle-22.04.2.tar.xz";
+      sha256 = "0g7pmczjg8q7b6h87hkwb71zi9cfm0ivxk0ak7krdz5c3iwa310y";
+      name = "spectacle-22.04.2.tar.xz";
     };
   };
   step = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/step-22.04.1.tar.xz";
-      sha256 = "03dwp4xg84a3q79gmqlqb5idaybl3k5na5d47668zfv8hw5kwz1m";
-      name = "step-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/step-22.04.2.tar.xz";
+      sha256 = "0ly0dk6ib574sqb1zh8iammjk01h7i9hqzax393884ahgc3w7m4z";
+      name = "step-22.04.2.tar.xz";
     };
   };
   svgpart = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/svgpart-22.04.1.tar.xz";
-      sha256 = "1738p2k9j9lckav86fqm57i6aszwdhin7nja7dx1g637w0a96nsy";
-      name = "svgpart-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/svgpart-22.04.2.tar.xz";
+      sha256 = "0f0fwr2lz37achrfcvb4yls0c0ln180m1v5gdimzazb8q9sw5ff0";
+      name = "svgpart-22.04.2.tar.xz";
     };
   };
   sweeper = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/sweeper-22.04.1.tar.xz";
-      sha256 = "10719rj6pwjq6k8n60x4vg08rvy4pwnf9g2p6warp4mzkwhdn4fh";
-      name = "sweeper-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/sweeper-22.04.2.tar.xz";
+      sha256 = "0afxrnsk3d0h806hfzx84jh89rllx0xip03dssy491wjlj434aj3";
+      name = "sweeper-22.04.2.tar.xz";
     };
   };
   umbrello = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/umbrello-22.04.1.tar.xz";
-      sha256 = "01jk3w17prvqljrn3lfk1j3ifaf59wp917527idnk3yhl6k6abdz";
-      name = "umbrello-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/umbrello-22.04.2.tar.xz";
+      sha256 = "0qwm9wlxah31p0f08bilda2xwdpl0in0ma1g399aw02i2lcr9frw";
+      name = "umbrello-22.04.2.tar.xz";
     };
   };
   yakuake = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/yakuake-22.04.1.tar.xz";
-      sha256 = "1c61cpp8dai5bb3mcdry12iibz1mni3bhnwnsdb2v9kaf0vrhf2k";
-      name = "yakuake-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/yakuake-22.04.2.tar.xz";
+      sha256 = "0a2bp7scg9av5yay38srcb1dr1v5s152bsy616yvhqq3s68pyv04";
+      name = "yakuake-22.04.2.tar.xz";
     };
   };
   zanshin = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/zanshin-22.04.1.tar.xz";
-      sha256 = "0frza7k4fmwkpdaxinnza021wqri1llhpasdphbwx539sxpbwlv8";
-      name = "zanshin-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/zanshin-22.04.2.tar.xz";
+      sha256 = "0qz5r6qflqq9c9jgqlplsjapcbfjhrjnqd8pa8cjb6vshgd316k0";
+      name = "zanshin-22.04.2.tar.xz";
     };
   };
   zeroconf-ioslave = {
-    version = "22.04.1";
+    version = "22.04.2";
     src = fetchurl {
-      url = "${mirror}/stable/release-service/22.04.1/src/zeroconf-ioslave-22.04.1.tar.xz";
-      sha256 = "1bswkxjw0djp60k6wp0jyfz27pvzcvgdkp4219lzf5kxyj6ln1dk";
-      name = "zeroconf-ioslave-22.04.1.tar.xz";
+      url = "${mirror}/stable/release-service/22.04.2/src/zeroconf-ioslave-22.04.2.tar.xz";
+      sha256 = "1lnadhkyzjhn3cgkc733q69nmhrm5ppyv51yvcyv4084xcrpp6zz";
+      name = "zeroconf-ioslave-22.04.2.tar.xz";
     };
   };
 }
diff --git a/pkgs/applications/misc/1password-gui/beta.nix b/pkgs/applications/misc/1password-gui/beta.nix
index 306a914dc19eb..9f0d9d62e053b 100644
--- a/pkgs/applications/misc/1password-gui/beta.nix
+++ b/pkgs/applications/misc/1password-gui/beta.nix
@@ -129,6 +129,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/1password-gui/default.nix b/pkgs/applications/misc/1password-gui/default.nix
index 7ffc4a5fc7fac..e39450e5bef07 100644
--- a/pkgs/applications/misc/1password-gui/default.nix
+++ b/pkgs/applications/misc/1password-gui/default.nix
@@ -131,6 +131,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Multi-platform password manager";
     homepage = "https://1password.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ timstott savannidgerinel maxeaubrey sebtm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 6231e62bc2dcb..0d18b3dd37a3e 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.4.1";
+  version = "2.5.1";
   sources = rec {
-    aarch64-linux = fetch "linux_arm64" "sha256-ANRYE1BoezrcDxZrQYp/OPdtn4J+FmC/PLSIP5Amm18=" "zip";
-    i686-linux = fetch "linux_386" "sha256-w3anr76uj/Z+ilZ+LUGOB1CoKkvxcD+v8c8lVADPwRY=" "zip";
-    x86_64-linux = fetch "linux_amd64" "sha256-axZ+XDIMJlAicnYTIXgcaoT+Zcg6xvHlchl/ng7V9GY=" "zip";
-    aarch64-darwin = fetch "apple_universal" "sha256-/DnrQ4fwbc2ELtsEClvzA9kTrse3pMgGLbhiKZ3gphA=" "pkg";
+    aarch64-linux = fetch "linux_arm64" "sha256-HZ6AVheJrw9ZR9HGWbB6/kCzbrfYcwApa2z18tDBo1k=" "zip";
+    i686-linux = fetch "linux_386" "sha256-aG6oW0epF+P9pSWMlTStSbBynBDkGX1B+0NHUnwLRhs=" "zip";
+    x86_64-linux = fetch "linux_amd64" "sha256-7GkBVcvXM/WZiXEiIbYh9lS0f4BS4Hc4RCVjr8FoW8A=" "zip";
+    aarch64-darwin = fetch "apple_universal" "sha256-XebD33fX15RsFUdbV+DvMRIi1MSyMfIRC3JOwcmi8kk=" "pkg";
     x86_64-darwin = aarch64-darwin;
   };
   platforms = builtins.attrNames sources;
@@ -48,6 +48,7 @@ stdenv.mkDerivation {
   '';
 
   postInstall = ''
+    HOME=$TMPDIR
     installShellCompletion --cmd ${mainProgram} \
       --bash <($out/bin/${mainProgram} completion bash) \
       --fish <($out/bin/${mainProgram} completion fish) \
@@ -67,6 +68,7 @@ stdenv.mkDerivation {
     homepage = "https://developer.1password.com/docs/cli/";
     downloadPage = "https://app-updates.agilebits.com/product_history/CLI2";
     maintainers = with maintainers; [ joelburget marsam ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     inherit mainProgram platforms;
   };
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix b/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
index e8303f91f5b46..983e03c8f3da3 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps-aarch64-linux.nix
@@ -55,12 +55,12 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2022.1.0"; sha256 = "0lsqpssain0v9i3jhpi1c42r5s329y31cvqk5x7gqvy17f29y002"; })
   (fetchNuGet { pname = "Markdig.Signed"; version = "0.30.2"; sha256 = "094yy2hfwvnlzap919zmnbfc915v86gd1zb9hfcbfvzbly11rd7s"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.5"; sha256 = "1lmi0jl63377gbrjicfh06jcvgxc3q6x4k7545cby38fbkwnbgic"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0mjv5w9gia3bb2qg7ahh6j1mgb3fwlr3famxssdy8vq8qgfd1h4h"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.5"; sha256 = "0ns6ibghr8silf6pxd8ibwyflyrpjy3z8yqh4w2sr8yrhmv32d3j"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "15fbzv7yywhzfmkkrqi9xxwi0h6fy9miz5ihl8j4hd0psqc8wil3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1wl227mbbda039dznl2lvd65kh3k978qa88pa2ayqjx3vb6394q9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.6"; sha256 = "1fv3xvqc98l3ma4s8f2g4fklifbj1i24fngcvlhfm4j6s295xjj1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "1z50gqg0jimk98yd0zr2vxn087h3h1qn08fdcqbaxfgpcw30yi87"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.6"; sha256 = "1qp64z6m7sr5ln3sa5b39vj73yd52zs7asqlsws3a9jpisns6vds"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.0-rc.1.21452.15"; sha256 = "0c3vnaag8gxlxij77n18m3hawpjkjjamsnq5kfjz5cvc7sfg3fwh"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.0-rc.1.21452.15"; sha256 = "1xyx358w4fqzxr9cy358agnm86rjijbnvikiqlngz2msgmldxi2z"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
@@ -77,17 +77,17 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.2.0"; sha256 = "0ncnq378pk1immy2dyf75xjf2xn72r4m5gma1njhc4rvhzx9qz11"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.5"; sha256 = "0bxrmv89018gsmhggxmyfyb1xmdn2p9mz1n8gg9lrf448d0ahqax"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.5"; sha256 = "0jgz59npwawkivlzw27zwn7qf5y58i3vd9981j0lfwz6qhcknb8r"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.5"; sha256 = "10q7irxzzph0ijv0j9xax6sy3ahlkply5p49b8dk2718x3bmaj0p"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.5"; sha256 = "1bx0bbzwnbp7r7dcxcq5222zbhmgirs75lcm6azqw5f5qxrvv5x8"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.5"; sha256 = "19lfp3lbvsvc51q46jwy5l39skx5rfiyhk6f6djdc3g5l55kb871"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.5"; sha256 = "1l67hb5gzmd1b26rficg9jb6bkjgh0zi262bynia2dqpph2x07sx"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0x1jhv7h17kwxigrwlcs13kf4xlfy0977hdajj96kl6vbcd7256d"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.5"; sha256 = "1xd89kws1bpdml4wfcjbwy4ydxdzvki0dbsw1v58b3l6ih4mz6ry"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "0xyvhhksdxjdwn1bfkhvxrgyd92p01r9mdjsand05dmba4q7gxqq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1ihlnzp7zclc76d1ig3dc71l0gm7z5lqqwppjj06aa4yhrsa2baj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.6"; sha256 = "0kygwac98rxq89g83lyzn21kslvgdkcqfd1dnba2ssw7q056fbgy"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "6.0.6"; sha256 = "0hvawclkpp6srhbdl0b1ma2xsvf6yy8k8s1fp4by249qzpy26w7l"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.6"; sha256 = "1wwwjldbqy6l8x9dlw0512zqac9jplsmnn0rrrwzrlb0p5amz0a4"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.6"; sha256 = "12b6ya9q5wszfq6yp38lpan8zws95gbp1vs9pydk3v82gai336r3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.6"; sha256 = "186ammhxnkh4m68f1s70rca23025lwzhxnc7m82wjg18rwz2vnkl"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.6"; sha256 = "088ggz1ac5z4ir707xmxiw4dlcaacfgmyvvlgwvsxhnv3fngf8b6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "117rz4gm7ihns5jlc2x05h7kdcgrl0ic4v67dzfbbr9kpra1bmcw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.6"; sha256 = "04i4d7zhw7cqhfl84p93hpib8lhvkhmprip1li64sq5zrs36dxpx"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0l15md6rzr2dvwvnk8xj1qz1dcjcbmp0aglnflrj8av60g5r1kwd"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1a6hvkiy2z6z7v7rw1q61qqlw7w0hzc4my3rm94kwgjcv5qkpr5k"; })
   (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"; })
diff --git a/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix b/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
index 46de07329bfa4..fc69de3a10806 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/deps-x86_64-linux.nix
@@ -55,12 +55,12 @@
   (fetchNuGet { pname = "Humanizer.Core.zh-Hant"; version = "2.14.1"; sha256 = "0qxjnbdj645l5sd6y3100yyrq1jy5misswg6xcch06x8jv7zaw1p"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2022.1.0"; sha256 = "0lsqpssain0v9i3jhpi1c42r5s329y31cvqk5x7gqvy17f29y002"; })
   (fetchNuGet { pname = "Markdig.Signed"; version = "0.30.2"; sha256 = "094yy2hfwvnlzap919zmnbfc915v86gd1zb9hfcbfvzbly11rd7s"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.5"; sha256 = "1lmi0jl63377gbrjicfh06jcvgxc3q6x4k7545cby38fbkwnbgic"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0mjv5w9gia3bb2qg7ahh6j1mgb3fwlr3famxssdy8vq8qgfd1h4h"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.5"; sha256 = "0ns6ibghr8silf6pxd8ibwyflyrpjy3z8yqh4w2sr8yrhmv32d3j"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "15fbzv7yywhzfmkkrqi9xxwi0h6fy9miz5ihl8j4hd0psqc8wil3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1wl227mbbda039dznl2lvd65kh3k978qa88pa2ayqjx3vb6394q9"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm"; version = "6.0.6"; sha256 = "1fv3xvqc98l3ma4s8f2g4fklifbj1i24fngcvlhfm4j6s295xjj1"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "1z50gqg0jimk98yd0zr2vxn087h3h1qn08fdcqbaxfgpcw30yi87"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-arm64"; version = "6.0.6"; sha256 = "1qp64z6m7sr5ln3sa5b39vj73yd52zs7asqlsws3a9jpisns6vds"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0i00xs472gpxbrwx593z520sp8nv3lmqi8z3zrj9cshqckq8knnx"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.JsonPatch"; version = "6.0.0-rc.1.21452.15"; sha256 = "0c3vnaag8gxlxij77n18m3hawpjkjjamsnq5kfjz5cvc7sfg3fwh"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Mvc.NewtonsoftJson"; version = "6.0.0-rc.1.21452.15"; sha256 = "1xyx358w4fqzxr9cy358agnm86rjijbnvikiqlngz2msgmldxi2z"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
@@ -77,17 +77,17 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "5.0.0"; sha256 = "1rdmgpg770x8qwaaa6ryc27zh93p697fcyvn5vkxp0wimlhqkbay"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.2.0"; sha256 = "0ncnq378pk1immy2dyf75xjf2xn72r4m5gma1njhc4rvhzx9qz11"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.5"; sha256 = "0bxrmv89018gsmhggxmyfyb1xmdn2p9mz1n8gg9lrf448d0ahqax"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.5"; sha256 = "0q9wswwnwdi2y9ca2h072anb2m8mjs01hqg6p9kyxlsgfmvcaxmw"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.5"; sha256 = "10q7irxzzph0ijv0j9xax6sy3ahlkply5p49b8dk2718x3bmaj0p"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.5"; sha256 = "1bx0bbzwnbp7r7dcxcq5222zbhmgirs75lcm6azqw5f5qxrvv5x8"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.5"; sha256 = "19lfp3lbvsvc51q46jwy5l39skx5rfiyhk6f6djdc3g5l55kb871"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.5"; sha256 = "1l67hb5gzmd1b26rficg9jb6bkjgh0zi262bynia2dqpph2x07sx"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0x1jhv7h17kwxigrwlcs13kf4xlfy0977hdajj96kl6vbcd7256d"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.5"; sha256 = "1xd89kws1bpdml4wfcjbwy4ydxdzvki0dbsw1v58b3l6ih4mz6ry"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.5"; sha256 = "0xyvhhksdxjdwn1bfkhvxrgyd92p01r9mdjsand05dmba4q7gxqq"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.5"; sha256 = "1ihlnzp7zclc76d1ig3dc71l0gm7z5lqqwppjj06aa4yhrsa2baj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm"; version = "6.0.6"; sha256 = "0kygwac98rxq89g83lyzn21kslvgdkcqfd1dnba2ssw7q056fbgy"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.6"; sha256 = "0hlxq0k60ras0wj7d7q94dxd8nzjcry0kixxs6z1hyrbm4q0y3ls"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-arm64"; version = "6.0.6"; sha256 = "1wwwjldbqy6l8x9dlw0512zqac9jplsmnn0rrrwzrlb0p5amz0a4"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "6.0.6"; sha256 = "12b6ya9q5wszfq6yp38lpan8zws95gbp1vs9pydk3v82gai336r3"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.6"; sha256 = "186ammhxnkh4m68f1s70rca23025lwzhxnc7m82wjg18rwz2vnkl"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm"; version = "6.0.6"; sha256 = "088ggz1ac5z4ir707xmxiw4dlcaacfgmyvvlgwvsxhnv3fngf8b6"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "117rz4gm7ihns5jlc2x05h7kdcgrl0ic4v67dzfbbr9kpra1bmcw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-arm64"; version = "6.0.6"; sha256 = "04i4d7zhw7cqhfl84p93hpib8lhvkhmprip1li64sq5zrs36dxpx"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "6.0.6"; sha256 = "0l15md6rzr2dvwvnk8xj1qz1dcjcbmp0aglnflrj8av60g5r1kwd"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1a6hvkiy2z6z7v7rw1q61qqlw7w0hzc4my3rm94kwgjcv5qkpr5k"; })
   (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"; })
diff --git a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
index bbe37b5ed743b..fdd2970fdac7b 100644
--- a/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
+++ b/pkgs/applications/misc/ArchiSteamFarm/web-ui/default.nix
@@ -27,7 +27,8 @@ in
     postInstall = ''
       patchShebangs node_modules/
       npm run build
-      ln -s $out/lib/node_modules/asf-ui/dist $out/lib/dist
+      cp -r $out/lib/node_modules/asf-ui/dist $out/lib/dist
+      rm -rf $out/lib/node_modules/
     '';
 
     meta = with lib; {
diff --git a/pkgs/applications/misc/HentaiAtHome/default.nix b/pkgs/applications/misc/HentaiAtHome/default.nix
index 8eec91d529d04..4932379ef02d5 100644
--- a/pkgs/applications/misc/HentaiAtHome/default.nix
+++ b/pkgs/applications/misc/HentaiAtHome/default.nix
@@ -1,24 +1,43 @@
-{ buildGraalvmNativeImage, fetchzip, graalvm17-ce, lib }:
-
-buildGraalvmNativeImage rec {
+{ buildPackages
+, buildPlatform
+, fetchzip
+, javaOpts ? "-XX:+UseZGC"
+, jdk
+, jre_headless
+, lib
+, makeWrapper
+, stdenvNoCC
+,
+}:
+stdenvNoCC.mkDerivation rec {
   pname = "HentaiAtHome";
   version = "1.6.1";
+
   src = fetchzip {
-    url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}.zip";
+    url = "https://repo.e-hentai.org/hath/HentaiAtHome_${version}_src.zip";
     hash =
-      "sha512-nGGCuVovj4NJGrihKKYXnh0Ic9YD36o7r6wv9zSivZn22zm8lBYVXP85LnOw2z9DiJARivOctQGl48YFD7vxOQ==";
+      "sha512-j+B0kx6fjUibI3MjVJ5PVTq9xxtSOTTY/XizAJKjeNkpExJF9DIV4VCwf+sfLlg+7W4UBosnyb8hZNNoidRBKA==";
     stripRoot = false;
   };
 
-  jar = "${src}/HentaiAtHome.jar";
-  dontUnpack = true;
+  nativeBuildInputs = [ jdk makeWrapper ];
+
+  LANG = "en_US.UTF-8";
+  LOCALE_ARCHIVE = lib.optionalString (buildPlatform.libc == "glibc")
+    "${buildPackages.glibcLocales}/lib/locale/locale-archive";
+
+  buildPhase = ''
+    make all
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/java
+    cp build/HentaiAtHome.jar $out/share/java
 
-  graalvmDrv = graalvm17-ce;
-  extraNativeImageBuildArgs = [
-    "--enable-url-protocols=http,https"
-    "--install-exit-handlers"
-    "--no-fallback"
-  ];
+    mkdir -p $out/bin
+    makeWrapper ${jre_headless}/bin/java $out/bin/HentaiAtHome \
+      --add-flags "${javaOpts} -jar $out/share/java/HentaiAtHome.jar"
+  '';
 
   doInstallCheck = true;
   installCheckPhase = ''
@@ -27,11 +46,12 @@ buildGraalvmNativeImage rec {
     popd
   '';
 
+  strictDeps = true;
+
   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";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.gpl3;
     maintainers = with maintainers; [ terrorjack ];
   };
diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix
index 2bce30365f08c..1a164f578a016 100644
--- a/pkgs/applications/misc/adobe-reader/default.nix
+++ b/pkgs/applications/misc/adobe-reader/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Adobe Reader, a viewer for PDF documents";
     homepage = "http://www.adobe.com/products/reader";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     knownVulnerabilities = [
       "Numerous unresolved vulnerabilities"
diff --git a/pkgs/applications/misc/anytype/default.nix b/pkgs/applications/misc/anytype/default.nix
index 07cbee42694d9..6e28c58798e79 100644
--- a/pkgs/applications/misc/anytype/default.nix
+++ b/pkgs/applications/misc/anytype/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "anytype";
-  version = "0.25.4";
+  version = "0.26.1";
   name = "Anytype-${version}";
   nameExecutable = pname;
   src = fetchurl {
     url = "https://at9412003.fra1.digitaloceanspaces.com/Anytype-${version}.AppImage";
     name = "Anytype-${version}.AppImage";
-    sha256 = "sha256-v6Zecv/m1GvPJk/SmLlxHFyeYbNbIB+x17+AKCI45AM=";
+    sha256 = "sha256-lPzeYZzerFa0T77uaavvBQkMn4PUEfVj4SPlErqM9DI=";
   };
   appimageContents = appimageTools.extractType2 { inherit name src; };
 in
diff --git a/pkgs/applications/misc/archivebox/default.nix b/pkgs/applications/misc/archivebox/default.nix
index b70cf4407501c..2d0990bab4347 100644
--- a/pkgs/applications/misc/archivebox/default.nix
+++ b/pkgs/applications/misc/archivebox/default.nix
@@ -6,10 +6,21 @@ let
   python = python3.override {
     packageOverrides = self: super: {
       django = super.django_3.overridePythonAttrs (old: rec {
-        version = "3.1.7";
+        version = "3.1.14";
         src = old.src.override {
           inherit version;
-          sha256 = "sha256-Ms55Lum2oMu+w0ASPiKayfdl3/jCpK6SR6FLK6OjZac=";
+          sha256 = "72a4a5a136a214c39cf016ccdd6b69e2aa08c7479c66d93f3a9b5e4bb9d8a347";
+        };
+        meta = old.meta // {
+          knownVulnerabilities = [
+            "CVE-2021-45115"
+            "CVE-2021-45116"
+            "CVE-2021-45452"
+            "CVE-2022-23833"
+            "CVE-2022-22818"
+            "CVE-2022-28347"
+            "CVE-2022-28346"
+          ];
         };
       });
     };
diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix
index 755b89e03b669..d41685821cd7c 100644
--- a/pkgs/applications/misc/authenticator/default.nix
+++ b/pkgs/applications/misc/authenticator/default.nix
@@ -25,20 +25,20 @@
 
 stdenv.mkDerivation rec {
   pname = "authenticator";
-  version = "4.1.4";
+  version = "4.1.6";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "Authenticator";
     rev = version;
-    hash = "sha256-606uMEbJd60ehoEEV0w2vz33poR1/18HcsvBMszMZrc=";
+    hash = "sha256-fv7Np3haRCJABlJocKuu+1jevHYrdo+VyiQBpRmHs2g=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-D2kT4IBKxbrL17S+kPyofu1sLPHMuyez6jTiA6kVohs=";
+    hash = "sha256-8GddlDM1lU365GXdrKNhO331/y1p3Om5uZfVLy8TBGI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/authy/default.nix b/pkgs/applications/misc/authy/default.nix
index c448b86d0c4d0..ca243f4437071 100644
--- a/pkgs/applications/misc/authy/default.nix
+++ b/pkgs/applications/misc/authy/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.authy.com";
     description = "Twilio Authy two factor authentication desktop application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ iammrinal0 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/azuredatastudio/default.nix b/pkgs/applications/misc/azuredatastudio/default.nix
index aa7150bb6b0b5..0261f983ac79d 100644
--- a/pkgs/applications/misc/azuredatastudio/default.nix
+++ b/pkgs/applications/misc/azuredatastudio/default.nix
@@ -166,6 +166,7 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ xavierzwirtz ];
     description = "A 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;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/bikeshed/default.nix b/pkgs/applications/misc/bikeshed/default.nix
index 4693c16eb57eb..f3e58b7787188 100644
--- a/pkgs/applications/misc/bikeshed/default.nix
+++ b/pkgs/applications/misc/bikeshed/default.nix
@@ -22,11 +22,11 @@
 
 buildPythonApplication rec {
   pname = "bikeshed";
-  version = "3.5.2";
+  version = "3.7.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fa9z/y4Enrei8gb48MSS7vzDcttZVO7MJkdEIaDZb0I=";
+    sha256 = "sha256-3fVo+B71SsJs+XF4+FWH2nz0ouTnpC/02fXYr1C9Jrk=";
   };
 
   # Relax requirements from "==" to ">="
diff --git a/pkgs/applications/misc/binance/default.nix b/pkgs/applications/misc/binance/default.nix
index d5d6f6b5358ea..15e3c51e9ad4c 100644
--- a/pkgs/applications/misc/binance/default.nix
+++ b/pkgs/applications/misc/binance/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "binance";
-  version = "1.35.0";
+  version = "1.36.0";
 
   src = fetchurl {
     url = "https://github.com/binance/desktop/releases/download/v${version}/${pname}-${version}-amd64-linux.deb";
-    sha256 = "sha256-6c7nrdViunnvPqqbt5/LQp2iS4EgZOCQ9PLcG+bY1YQ=";
+    sha256 = "sha256-Q1cvEQ/yxytzrPfiyeTZSCPecnmSdhy+ds/gtie4vwo=";
   };
 
   nativeBuildInputs = [
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Binance Cryptoexchange Official Desktop Client";
     homepage = "https://www.binance.com/en/desktop-download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 4aceeeb9e3555..1fcb3da8ae890 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -27,11 +27,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "blender";
-  version = "3.1.0";
+  version = "3.2.0";
 
   src = fetchurl {
     url = "https://download.blender.org/source/${pname}-${version}.tar.xz";
-    sha256 = "1d0476bzcz86lwdnyjn7hyzkmhfiqh47ls5h09jlbm7v7k9x69hw";
+    hash = "sha256-k78LL1urcQWxnF1lSoSi3CH3Ylhzo2Bk2Yvq5zbTYEo=";
   };
 
   patches = lib.optional stdenv.isDarwin ./darwin.patch;
diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix
index 753be1eb88cff..d25998cb17b17 100644
--- a/pkgs/applications/misc/calibre/default.nix
+++ b/pkgs/applications/misc/calibre/default.nix
@@ -16,7 +16,6 @@
 , hunspell
 , hyphen
 , unrarSupport ? false
-, chmlib
 , python3Packages
 , libusb1
 , libmtp
@@ -66,7 +65,6 @@ mkDerivation rec {
   nativeBuildInputs = [ pkg-config qmake removeReferencesTo wrapGAppsHook ];
 
   buildInputs = [
-    chmlib
     fontconfig
     hunspell
     hyphen
@@ -102,6 +100,7 @@ mkDerivation rec {
       msgpack
       netifaces
       pillow
+      pychm
       pyqt-builder
       pyqt5
       python
diff --git a/pkgs/applications/misc/cherrytree/default.nix b/pkgs/applications/misc/cherrytree/default.nix
index 067ad872f6404..23bf35a30b399 100644
--- a/pkgs/applications/misc/cherrytree/default.nix
+++ b/pkgs/applications/misc/cherrytree/default.nix
@@ -18,13 +18,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cherrytree";
-  version = "0.99.46";
+  version = "0.99.47";
 
   src = fetchFromGitHub {
     owner = "giuspen";
     repo = "cherrytree";
     rev = version;
-    sha256 = "sha256-yX9USGiiCwtBcg055D8xBHoiCafQWtQFqf5i5bsi13U=";
+    sha256 = "sha256-qKBf/7DBIpK1o/xlDlWeVXkSSV5a3y9hoWsAzeTIsf4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/confclerk/default.nix b/pkgs/applications/misc/confclerk/default.nix
index fb89d2a7e373d..84095c4165417 100644
--- a/pkgs/applications/misc/confclerk/default.nix
+++ b/pkgs/applications/misc/confclerk/default.nix
@@ -1,22 +1,20 @@
-{ lib, stdenv, fetchurl, qt4, qmake4Hook }:
+{ lib, mkDerivation, fetchurl, qtbase, qmake }:
 
-let version = "0.6.4"; in
-stdenv.mkDerivation {
+mkDerivation rec {
   pname = "confclerk";
-  inherit version;
+  version = "0.7.1";
 
   src = fetchurl {
     url = "https://www.toastfreeware.priv.at/tarballs/confclerk/confclerk-${version}.tar.gz";
-    sha256 = "10rhg44px4nvbkd3p341cmp2ds43jn8r4rvgladda9v8zmsgr2b3";
+    sha256 = "0l5i4d6lymh0k6gzihs41x4i8v1dz0mrwpga096af0vchpvlcarg";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ qtbase ];
+  nativeBuildInputs = [ qmake ];
 
-  nativeBuildInputs = [ qmake4Hook ];
-
-  installPhase = ''
+  postInstall = ''
     mkdir -p $out/bin
-    cp src/bin/confclerk $out/bin
+    mv $out/confclerk $out/bin/
   '';
 
   meta = {
diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix
index 3f54826fc52af..c36d98a1b6e52 100644
--- a/pkgs/applications/misc/dbeaver/default.nix
+++ b/pkgs/applications/misc/dbeaver/default.nix
@@ -23,16 +23,16 @@
   inherit maven; # use overridden maven version (see dbeaver's entry in all-packages.nix)
 }) rec {
   pname = "dbeaver";
-  version = "22.1.0"; # When updating also update mvnSha256
+  version = "22.1.1"; # When updating also update mvnSha256
 
   src = fetchFromGitHub {
     owner = "dbeaver";
     repo = "dbeaver";
     rev = version;
-    sha256 = "sha256-gMs9q0+Yy/2l8TEG9vIuzv0qOh7QwawwlXKr3/Mz8wk=";
+    sha256 = "sha256-+MFULieuwfvuAP0HjJ+C0hb/uqhHtnP/nOoIfWwjtoI=";
   };
 
-  mvnSha256 = "veclFlzLhTU+nT360qxRNut+yEi2dfTBxdQASyRMqhI=";
+  mvnSha256 = "pSZL+GDSXSm+sLymlSlq2ZIRdYJY1B3PCmCpjtosdGY=";
   mvnParameters = "-P desktop,all-platforms";
 
   nativeBuildInputs = [
@@ -127,6 +127,10 @@
       PostgreSQL, MariaDB, SQLite, Oracle, DB2, SQL Server, Sybase, MS Access,
       Teradata, Firebird, Derby, etc.
     '';
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # dependencies from maven
+    ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ];
     maintainers = with maintainers; [ jojosch mkg20001 ];
diff --git a/pkgs/applications/misc/debian-goodies/default.nix b/pkgs/applications/misc/debian-goodies/default.nix
index 20d47e204f7cc..560afe32b8a19 100644
--- a/pkgs/applications/misc/debian-goodies/default.nix
+++ b/pkgs/applications/misc/debian-goodies/default.nix
@@ -10,14 +10,14 @@
 
 stdenv.mkDerivation rec {
   pname = "debian-goodies";
-  version = "0.87";
+  version = "0.88";
 
   src = fetchFromGitLab {
     domain = "salsa.debian.org";
     owner = "debian";
     repo = "debian-goodies";
     rev = "debian/${version}";
-    sha256 = "sha256-7O2AY7tWYiOIy4ImFBxWu6S+ljc3VmqS/j4KyEzVVIA=";
+    sha256 = "sha256-SDGWRGwRuryCJSWjuYB+Cg/Pl8q4VP4zcisUOn/GhJY=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/misc/diffuse/default.nix b/pkgs/applications/misc/diffuse/default.nix
new file mode 100644
index 0000000000000..fb1646dbbcca5
--- /dev/null
+++ b/pkgs/applications/misc/diffuse/default.nix
@@ -0,0 +1,68 @@
+{ lib, gitUpdater
+, fetchFromGitHub
+, meson
+, ninja
+, gettext
+, wrapGAppsHook
+, gobject-introspection
+, pango
+, gdk-pixbuf
+, python3
+, atk
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "diffuse";
+  version = "0.7.5";
+
+  src = fetchFromGitHub {
+    owner = "MightyCreak";
+    repo = "diffuse";
+    rev = "v${version}";
+    sha256 = "0nd1fyl40wyc98jclcxv8zlnm744lrr51fahh5h9v4ksk184h4z8";
+  };
+
+  format = "other";
+
+  nativeBuildInputs = [
+    wrapGAppsHook
+    meson
+    ninja
+    gettext
+    gobject-introspection
+  ];
+
+  buildInputs = [
+    gobject-introspection
+    pango
+    gdk-pixbuf
+    atk
+  ];
+
+  propagatedBuildInputs = with python3.pkgs; [
+    pycairo
+    pygobject3
+  ];
+
+  mesonFlags = [
+    "-Db_ndebug=true"
+  ];
+
+  # to avoid running gtk-update-icon-cache, update-desktop-database and glib-compile-schemas
+  DESTDIR = "/";
+
+  passthru = {
+    updateScript = gitUpdater {
+      inherit pname version;
+      rev-prefix = "v";
+    };
+  };
+
+  meta = with lib; {
+    homepage = "https://github.com/MightyCreak/diffuse";
+    description = "Graphical tool for merging and comparing text files";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ k3a ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/applications/misc/dmenu/wayland.nix b/pkgs/applications/misc/dmenu/wayland.nix
index 6b8f92ddb1c2e..8e4a98af13816 100644
--- a/pkgs/applications/misc/dmenu/wayland.nix
+++ b/pkgs/applications/misc/dmenu/wayland.nix
@@ -39,6 +39,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     description = "dmenu for wayland-compositors";
     homepage = "https://github.com/nyyManni/dmenu-wayland";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/applications/misc/etesync-dav/default.nix b/pkgs/applications/misc/etesync-dav/default.nix
index 42d16c3eaf815..1c590451a9b86 100644
--- a/pkgs/applications/misc/etesync-dav/default.nix
+++ b/pkgs/applications/misc/etesync-dav/default.nix
@@ -46,12 +46,15 @@ in python.pkgs.buildPythonApplication rec {
   };
 
   propagatedBuildInputs = with python.pkgs; [
+    appdirs
     etebase
     etesync
     flask
     flask-wtf
+    msgpack
     (python.pkgs.toPythonModule (radicale3.override { python3 = python; }))
-  ];
+    requests
+  ] ++ requests.optional-dependencies.socks;
 
   doCheck = false;
 
diff --git a/pkgs/applications/misc/foxitreader/default.nix b/pkgs/applications/misc/foxitreader/default.nix
index b206d14323b1c..c6ed7bc1ad3ff 100644
--- a/pkgs/applications/misc/foxitreader/default.nix
+++ b/pkgs/applications/misc/foxitreader/default.nix
@@ -73,6 +73,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A viewer for PDF documents";
     homepage = "https://www.foxitsoftware.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ p-h rhoriguchi ];
diff --git a/pkgs/applications/misc/gmtp/default.nix b/pkgs/applications/misc/gmtp/default.nix
index 5f03b8ea7e76e..953aad85ae863 100644
--- a/pkgs/applications/misc/gmtp/default.nix
+++ b/pkgs/applications/misc/gmtp/default.nix
@@ -18,6 +18,12 @@ stdenv.mkDerivation {
 
   enableParallelBuilding = true;
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: gmtp-preferences.o:src/main.h:72: multiple definition of
+  #     `scrolledwindowMain'; gmtp-about.o:src/main.h:72: first defined here
+  # TODO: can be removed when 1.4.0 is released.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   preFixup = ''
     gappsWrapperArgs+=(--add-flags "--datapath $out/share");
   '';
diff --git a/pkgs/applications/misc/gollum/Gemfile.lock b/pkgs/applications/misc/gollum/Gemfile.lock
index 49c723efe989d..6a88aa6acb03e 100644
--- a/pkgs/applications/misc/gollum/Gemfile.lock
+++ b/pkgs/applications/misc/gollum/Gemfile.lock
@@ -13,13 +13,15 @@ GEM
     gemojione (4.3.3)
       json
     github-markup (4.0.1)
-    gollum (5.2.3)
+    gollum (5.3.0)
       gemojione (~> 4.1)
       gollum-lib (~> 5.1)
+      i18n (~> 1.8)
       kramdown (~> 2.3)
       kramdown-parser-gfm (~> 1.1.0)
-      mustache-sinatra (~> 1.0)
+      mustache-sinatra (>= 1.0.1, < 2)
       octicons (~> 12.0)
+      rdoc (~> 6)
       rss (~> 0.2.9)
       sass (~> 3.5)
       sinatra (~> 2.0)
@@ -30,7 +32,7 @@ GEM
       uglifier (~> 4.2)
       useragent (~> 0.16.2)
       webrick (~> 1.7)
-    gollum-lib (5.1.3)
+    gollum-lib (5.2)
       gemojione (~> 4.1)
       github-markup (~> 4.0)
       gollum-rugged_adapter (~> 1.0)
@@ -43,6 +45,8 @@ GEM
       mime-types (~> 1.15)
       rugged (~> 1.1.0)
     htmlentities (4.3.4)
+    i18n (1.10.0)
+      concurrent-ruby (~> 1.0)
     json (2.6.2)
     kramdown (2.4.0)
       rexml
@@ -66,15 +70,19 @@ GEM
       nokogiri (>= 1.6.3.1)
     org-ruby (0.9.12)
       rubypants (~> 0.2)
+    psych (4.0.4)
+      stringio
     racc (1.6.0)
-    rack (2.2.3)
+    rack (2.2.3.1)
     rack-protection (2.2.0)
       rack
     rb-fsevent (0.11.1)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
+    rdoc (6.4.0)
+      psych (>= 4.0.0)
     rexml (3.2.5)
-    rouge (3.28.0)
+    rouge (3.29.0)
     rss (0.2.9)
       rexml
     ruby2_keywords (0.0.5)
@@ -101,6 +109,7 @@ GEM
       rack (> 1, < 3)
     sprockets-helpers (1.4.0)
       sprockets (>= 2.2)
+    stringio (3.0.2)
     therubyrhino (2.1.2)
       therubyrhino_jar (>= 1.7.4, < 1.7.9)
     therubyrhino_jar (1.7.8)
@@ -111,7 +120,7 @@ GEM
       execjs (>= 0.3.0, < 3)
     unf (0.1.4)
       unf_ext
-    unf_ext (0.0.8.1)
+    unf_ext (0.0.8.2)
     useragent (0.16.10)
     webrick (1.7.0)
     wikicloth (0.8.3)
@@ -133,4 +142,4 @@ DEPENDENCIES
   wikicloth
 
 BUNDLED WITH
-   2.2.33
+   2.3.9
diff --git a/pkgs/applications/misc/gollum/gemset.nix b/pkgs/applications/misc/gollum/gemset.nix
index fba88415874c9..3817782a6f649 100644
--- a/pkgs/applications/misc/gollum/gemset.nix
+++ b/pkgs/applications/misc/gollum/gemset.nix
@@ -101,15 +101,15 @@
     version = "4.0.1";
   };
   gollum = {
-    dependencies = ["gemojione" "gollum-lib" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent" "webrick"];
+    dependencies = ["gemojione" "gollum-lib" "i18n" "kramdown" "kramdown-parser-gfm" "mustache-sinatra" "octicons" "rdoc" "rss" "sass" "sinatra" "sinatra-contrib" "sprockets" "sprockets-helpers" "therubyrhino" "uglifier" "useragent" "webrick"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1zdpl8rj6r2psigcjavwi57ljriyakh0ydfai9c3q85jzc005bax";
+      sha256 = "1xz7d3xfc536njk0fg4inmzzy350c5bjp237vghrcky8azc6xl7k";
       type = "gem";
     };
-    version = "5.2.3";
+    version = "5.3.0";
   };
   gollum-lib = {
     dependencies = ["gemojione" "github-markup" "gollum-rugged_adapter" "loofah" "nokogiri" "octicons" "rouge" "twitter-text"];
@@ -117,10 +117,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1samwcxjr1z0sy8a87xvp0z4qx0fc2irzx568s6q1yxcba9nqqv2";
+      sha256 = "1acxi4zjdmxlj7hzv9fjqilqngcwjvzhk3khnykdfvnb0l6l4xbs";
       type = "gem";
     };
-    version = "5.1.3";
+    version = "5.2";
   };
   gollum-rugged_adapter = {
     dependencies = ["mime-types" "rugged"];
@@ -143,6 +143,17 @@
     };
     version = "4.3.4";
   };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0b2qyvnk4yynlg17ymkq4g5xgr275637fhl1mjh0valw3cb1fhhg";
+      type = "gem";
+    };
+    version = "1.10.0";
+  };
   json = {
     groups = ["default"];
     platforms = [];
@@ -281,6 +292,17 @@
     };
     version = "0.9.12";
   };
+  psych = {
+    dependencies = ["stringio"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0c2lz03mkn43rf2a2xiy8vqgir1dvds0a0fpx7m7my6a21ygryw2";
+      type = "gem";
+    };
+    version = "4.0.4";
+  };
   racc = {
     groups = ["default"];
     platforms = [];
@@ -296,10 +318,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      sha256 = "1b1qsg0yfargdhmpapp2d3mlxj82wyygs9nj74w0r03diyi8swlc";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.3.1";
   };
   rack-protection = {
     dependencies = ["rack"];
@@ -333,6 +355,17 @@
     };
     version = "0.10.1";
   };
+  rdoc = {
+    dependencies = ["psych"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1bxzcvxvrmb1ngxz0bgz1va4q9c4w8m6gc8lmdhi6gnvaaf98gsy";
+      type = "gem";
+    };
+    version = "6.4.0";
+  };
   RedCloth = {
     groups = ["default"];
     platforms = [];
@@ -358,10 +391,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "080fswzii68wnbsg7pgq55ba7p289sqjlxwp4vch0h32qy1f8v8d";
+      sha256 = "17dhzc9hfzd8x18hfsvn9rsp4jg18wdfsdy3a5p99y5dhfh1321r";
       type = "gem";
     };
-    version = "3.28.0";
+    version = "3.29.0";
   };
   rss = {
     dependencies = ["rexml"];
@@ -470,6 +503,16 @@
     };
     version = "1.4.0";
   };
+  stringio = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1jns0x5lbafyqyx7pgzfs6i4ykc7p6zg7gxa6hd82w40n6z9rdvi";
+      type = "gem";
+    };
+    version = "3.0.2";
+  };
   therubyrhino = {
     dependencies = ["therubyrhino_jar"];
     groups = ["default"];
@@ -539,10 +582,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bf120xbq23zjyf8zi8h1576d71g58srr8rndig0whn10w72vrxz";
+      sha256 = "1yj2nz2l101vr1x9w2k83a0fag1xgnmjwp8w8rw4ik2rwcz65fch";
       type = "gem";
     };
-    version = "0.0.8.1";
+    version = "0.0.8.2";
   };
   useragent = {
     groups = ["default"];
diff --git a/pkgs/applications/misc/gometer/default.nix b/pkgs/applications/misc/gometer/default.nix
index 9b335b1aedae4..8c68f8672c3b5 100644
--- a/pkgs/applications/misc/gometer/default.nix
+++ b/pkgs/applications/misc/gometer/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Analytic-Tracking tool for GoLance";
     homepage = "https://golance.com/download-gometer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
   };
diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix
index 950cb236ecbfa..dd6964318e77d 100644
--- a/pkgs/applications/misc/googleearth-pro/default.nix
+++ b/pkgs/applications/misc/googleearth-pro/default.nix
@@ -115,6 +115,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "A world sphere viewer";
     homepage = "https://www.google.com/earth/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ friedelino shamilton ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/misc/gpxsee/default.nix b/pkgs/applications/misc/gpxsee/default.nix
index fa85ad367ec26..7ce85dc6f7678 100644
--- a/pkgs/applications/misc/gpxsee/default.nix
+++ b/pkgs/applications/misc/gpxsee/default.nix
@@ -1,14 +1,14 @@
-{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, wrapQtAppsHook, substituteAll }:
+{ lib, stdenv, fetchFromGitHub, qmake, qttools, qttranslations, qtlocation, qtpbfimageplugin, wrapQtAppsHook, substituteAll }:
 
 stdenv.mkDerivation rec {
   pname = "gpxsee";
-  version = "11.0";
+  version = "11.1";
 
   src = fetchFromGitHub {
     owner = "tumic0";
     repo = "GPXSee";
     rev = version;
-    sha256 = "sha256-UT3Q7pirEXvwQmqHHiSivX/VNZPVLwRJ/aiP7wpkhqQ=";
+    sha256 = "sha256-0n1XPrJ+gssIP/7k9CI8AWXs9ddKOg3Lo3DfrXGUl84=";
   };
 
   patches = (substituteAll {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     inherit qttranslations;
   });
 
-  buildInputs = [ qtlocation ];
+  buildInputs = [ qtlocation qtpbfimageplugin ];
 
   nativeBuildInputs = [ qmake qttools wrapQtAppsHook ];
 
diff --git a/pkgs/applications/misc/hollywood/default.nix b/pkgs/applications/misc/hollywood/default.nix
new file mode 100644
index 0000000000000..f3b721bc49597
--- /dev/null
+++ b/pkgs/applications/misc/hollywood/default.nix
@@ -0,0 +1,94 @@
+{ stdenv
+, fetchFromGitHub
+, makeWrapper
+, lib
+, coreutils
+, apg
+, atop
+, bmon
+, cmatrix
+, pygments
+, moreutils
+, util-linux
+, jp2a
+, man
+, mplayer
+, openssh
+, tree
+, mlocate
+, findutils
+, ccze
+, ncurses
+, python3
+, wget
+, libcaca
+, newsboat
+, rsstail
+, w3m
+, ticker
+, tmux
+}:
+
+stdenv.mkDerivation {
+  pname = "hollywood";
+  version = "1.22";
+
+  src = fetchFromGitHub {
+    owner = "dustinkirkland";
+    repo = "hollywood";
+    rev = "35275a68c37bbc39d8b2b0e4664a0c2f5451e5f6";
+    sha256 = "sha256-faIm1uXERvIDZ6SK6uarVkWGNJskAroHgq5Cg7nUZc4=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  patches = [ ./nixos-paths.patch ];
+  postPatch = ''
+    rm lib/hollywood/speedometer
+    rm bin/wallstreet
+    rm -r lib/wallstreet
+  '';
+
+  dontBuild = true;
+
+  installPhase =
+    let pathDeps = [
+      tmux
+      coreutils
+      ncurses
+      jp2a
+      mlocate
+      apg
+      atop
+      bmon
+      cmatrix
+      pygments
+      moreutils
+      util-linux
+      jp2a
+      man
+      mplayer
+      openssh
+      tree
+      findutils
+      ccze
+    ];
+    in ''
+      runHook preInstall
+
+      mkdir -p $out
+      cp -r bin $out/bin
+      cp -r lib $out/lib
+      cp -r share $out/share
+      wrapProgram $out/bin/hollywood --prefix PATH : ${lib.makeBinPath pathDeps}
+
+      runHook postInstall
+    '';
+
+  meta = {
+    description = "Fill your console with Hollywood melodrama technobabble";
+    homepage = "https://a.hollywood.computer/";
+    license = lib.licenses.asl20;
+    maintainers = [ lib.maintainers.anselmschueler ];
+  };
+}
diff --git a/pkgs/applications/misc/hollywood/nixos-paths.patch b/pkgs/applications/misc/hollywood/nixos-paths.patch
new file mode 100644
index 0000000000000..d280a6b003c1e
--- /dev/null
+++ b/pkgs/applications/misc/hollywood/nixos-paths.patch
@@ -0,0 +1,67 @@
+diff --git a/bin/hollywood b/bin/hollywood
+index 6f1ee68..09bc4ea 100755
+--- a/bin/hollywood
++++ b/bin/hollywood
+@@ -74,7 +74,7 @@ if [ -z "$TMUX" ]; then
+ 	else
+ 		tmux_launcher=tmux
+ 	fi
+-	$tmux_launcher new-session -d -s $PKG "/bin/bash"
++	$tmux_launcher new-session -d -s $PKG "/usr/bin/env bash"
+ 	$tmux_launcher send-keys -t $PKG "$0 $1"
+ 	$tmux_launcher send-keys -t $PKG Enter
+ 	exec $tmux_launcher attach-session -t $PKG
+diff --git a/lib/hollywood/code b/lib/hollywood/code
+index 532ce73..3448447 100755
+--- a/lib/hollywood/code
++++ b/lib/hollywood/code
+@@ -19,7 +19,7 @@ command -v view >/dev/null 2>&1 || exit 1
+ 
+ trap "pkill -f -9 lib/hollywood/ >/dev/null 2>&1; exit" INT
+ while true; do
+-	FILES=$(locate -l 4096 "/usr/*.java" "/usr/*.c" "/usr/*.cpp" 2>/dev/null | sort -R)
++	FILES=$(locate -l 4096 "/usr/*.java" "/run/current-system/sw/*.java" "/usr/*.c" "/run/current-system/sw/*.c" "/usr/*.cpp" "/run/current-system/sw/*.cpp" 2>/dev/null | sort -R)
+ 	for f in $FILES; do
+ 		[ -r "$f" ] || continue
+ 		[ -s "$f" ] || continue
+diff --git a/lib/hollywood/hexdump b/lib/hollywood/hexdump
+index f2fb0bd..db059f5 100755
+--- a/lib/hollywood/hexdump
++++ b/lib/hollywood/hexdump
+@@ -19,8 +19,8 @@ command -v ccze >/dev/null 2>&1 || exit 1
+ 
+ trap "pkill -f -9 lib/hollywood/ >/dev/null 2>&1; exit" INT
+ while true; do
+-	for f in $(ls /usr/bin/ | sort -R); do
+-		head -c 4096 "/usr/bin/$f" | hexdump -C | ccze -A -c default=green -c dir="bold green"
++	for f in $(find /usr/bin/ /run/current-system/sw/bin/ | sort -R); do
++		head -c 4096 "$f" | hexdump -C | ccze -A -c default=green -c dir="bold green"
+ 		sleep 0.7
+ 	done
+ done
+diff --git a/lib/hollywood/jp2a b/lib/hollywood/jp2a
+index e87b950..6541f80 100755
+--- a/lib/hollywood/jp2a
++++ b/lib/hollywood/jp2a
+@@ -19,7 +19,7 @@ command -v jp2a >/dev/null 2>&1 || exit 1
+ 
+ trap "pkill -f -9 lib/hollywood/ >/dev/null 2>&1; exit" INT
+ while true; do
+-	FILES=$(locate -l 4096 "/usr/*jpg" 2>/dev/null | sort -R)
++	FILES=$(locate -l 4096 "/usr/*jpg" "/run/current-system/sw/*jpg" 2>/dev/null | sort -R)
+ 	for f in $FILES; do
+ 		[ -r "$f" ] || continue
+ 		[ -s "$f" ] || continue
+diff --git a/lib/hollywood/man b/lib/hollywood/man
+index 2d42513..f4d8bbb 100755
+--- a/lib/hollywood/man
++++ b/lib/hollywood/man
+@@ -19,7 +19,7 @@ command -v ccze >/dev/null 2>&1 || exit 1
+ 
+ trap "pkill -f -9 lib/hollywood/ >/dev/null 2>&1; exit" INT
+ while true; do
+-	FILES=$(ls /usr/share/man/man1/ | sort -R | sed "s/\.1\.gz.*$//" | head -n 4096)
++	FILES=$(ls /usr/share/man/man1/ /run/current-system/sw/share/man/man1/ | sort -R | sed "s/\.1\.gz.*$//" | head -n 4096)
+ 	for f in $FILES; do
+ 		man "$f" | ccze -A
+ 		sleep 0.2
diff --git a/pkgs/applications/misc/hubstaff/default.nix b/pkgs/applications/misc/hubstaff/default.nix
index 44169f6a539e2..390f756beb101 100644
--- a/pkgs/applications/misc/hubstaff/default.nix
+++ b/pkgs/applications/misc/hubstaff/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Time tracking software";
     homepage = "https://hubstaff.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ michalrus srghma ];
diff --git a/pkgs/applications/misc/icesl/default.nix b/pkgs/applications/misc/icesl/default.nix
index ae049699121ed..1a079ab8274c3 100644
--- a/pkgs/applications/misc/icesl/default.nix
+++ b/pkgs/applications/misc/icesl/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GPU-accelerated procedural modeler and slicer for 3D printing";
     homepage = "https://icesl.loria.fr/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.inria-icesl;
     platforms = [ "i686-linux" "x86_64-linux" ];
     maintainers = with maintainers; [ mgttlinger ];
diff --git a/pkgs/applications/misc/ideamaker/default.nix b/pkgs/applications/misc/ideamaker/default.nix
index 1e20a0d6faf04..619a821a32c69 100644
--- a/pkgs/applications/misc/ideamaker/default.nix
+++ b/pkgs/applications/misc/ideamaker/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.raise3d.com/ideamaker/";
     description = "Raise3D's 3D slicer software";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/applications/misc/ipmicfg/default.nix b/pkgs/applications/misc/ipmicfg/default.nix
index 120affb988c01..ecad4bd9821b0 100644
--- a/pkgs/applications/misc/ipmicfg/default.nix
+++ b/pkgs/applications/misc/ipmicfg/default.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
    meta = with lib; {
      description = "Supermicro IPMI configuration tool";
      homepage = "http://www.supermicro.com/products/nfo/ipmi.cfm";
+     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
      license = licenses.unfree;
      platforms = [ "x86_64-linux" ];
      maintainers = with maintainers; [ sorki ];
diff --git a/pkgs/applications/misc/ipmiview/default.nix b/pkgs/applications/misc/ipmiview/default.nix
index 579890c78ba3e..fbc436c882cfc 100644
--- a/pkgs/applications/misc/ipmiview/default.nix
+++ b/pkgs/applications/misc/ipmiview/default.nix
@@ -72,7 +72,10 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with lib; {
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     maintainers = with maintainers; [ vlaci ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/misc/join-desktop/default.nix b/pkgs/applications/misc/join-desktop/default.nix
index 0b09911ddb24b..369aae0386336 100644
--- a/pkgs/applications/misc/join-desktop/default.nix
+++ b/pkgs/applications/misc/join-desktop/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/joaomgcd/JoinDesktop/";
     description = "Desktop app for Join";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # on https://joaoapps.com/join/desktop/ "Join Desktop is an open source app" but no license
     license = licenses.free;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/joplin-desktop/default.nix b/pkgs/applications/misc/joplin-desktop/default.nix
index ecb553dbd660b..47a0fcbebde47 100644
--- a/pkgs/applications/misc/joplin-desktop/default.nix
+++ b/pkgs/applications/misc/joplin-desktop/default.nix
@@ -2,7 +2,7 @@
 
 let
   pname = "joplin-desktop";
-  version = "2.7.15";
+  version = "2.8.8";
   name = "${pname}-${version}";
 
   inherit (stdenv.hostPlatform) system;
@@ -16,8 +16,8 @@ let
   src = fetchurl {
     url = "https://github.com/laurent22/joplin/releases/download/v${version}/Joplin-${version}.${suffix}";
     sha256 = {
-      x86_64-linux = "sha256-PtfDH2W8wolqa10BoI9hazcj+1bszlnpt+D+sbzSRts=";
-      x86_64-darwin = "sha256-CPD/2x5FxHL9CsYz9EZJX5SYiFGz7/fjntOlDMKHYEA=";
+      x86_64-linux = "0ivljlw6kdpg94q9syi11zmk54w06m8j3zicx9nppqg720fw4zv3";
+      x86_64-darwin = "0gpr3zi6z98pkg8hsvcmpck754cph53kmgl3bhp3zmmmfj0kxjhs";
     }.${system} or throwSystem;
   };
 
diff --git a/pkgs/applications/misc/josm/default.nix b/pkgs/applications/misc/josm/default.nix
index 67807887ec615..d35a526dfdb3b 100644
--- a/pkgs/applications/misc/josm/default.nix
+++ b/pkgs/applications/misc/josm/default.nix
@@ -3,15 +3,15 @@
 }:
 let
   pname = "josm";
-  version = "18427";
+  version = "18463";
   srcs = {
     jar = fetchurl {
       url = "https://josm.openstreetmap.de/download/josm-snapshot-${version}.jar";
-      sha256 = "sha256-SsoeKfpWi41sd77LfaQW0OcHnyf8iLolKWF74dhalpY=";
+      sha256 = "sha256-++8XtzAykJ+85Kvzy3xgaZoKaVlJwz+Ct1xb/QkC1Gc=";
     };
     macosx = fetchurl {
       url = "https://josm.openstreetmap.de/download/macosx/josm-macos-${version}-java17.zip";
-      sha256 = "sha256-cz3OT03StvJy9XYBiPxx+nz36O0cg+XrL/uc52/G/1c=";
+      sha256 = "sha256-n7GlUWYOAXw4G59SBsO8HZ1OaiUWwzOsiURPFBYq31E=";
     };
     pkg = fetchsvn {
       url = "https://josm.openstreetmap.de/svn/trunk/native/linux/tested";
diff --git a/pkgs/applications/misc/jotta-cli/default.nix b/pkgs/applications/misc/jotta-cli/default.nix
index b50bc7e561147..64044693203e7 100644
--- a/pkgs/applications/misc/jotta-cli/default.nix
+++ b/pkgs/applications/misc/jotta-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
     homepage     = "https://www.jottacloud.com/";
     downloadPage = "https://repo.jotta.us/archives/linux/";
     maintainers  = with maintainers; [ evenbrenden ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license      = licenses.unfree;
     platforms    = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/kdbplus/default.nix b/pkgs/applications/misc/kdbplus/default.nix
index 8ee8337bea2a9..05d1c98e56ac8 100644
--- a/pkgs/applications/misc/kdbplus/default.nix
+++ b/pkgs/applications/misc/kdbplus/default.nix
@@ -68,6 +68,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Analytics and time-series database";
     homepage    = "http://www.kx.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.unfree;
     platforms   = [ "i686-linux" ];
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/misc/kiwix/default.nix b/pkgs/applications/misc/kiwix/default.nix
index f3406d4159b8f..e64feb4165555 100644
--- a/pkgs/applications/misc/kiwix/default.nix
+++ b/pkgs/applications/misc/kiwix/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "kiwix";
-  version = "2.0.5";
+  version = "2.2.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = "${pname}-desktop";
     rev = version;
-    sha256 = "12v43bcg4g8fcp02y2srsfdvcb7dpl4pxb9z7a235006s0kfv8yn";
+    sha256 = "sha256-ks2d/guMp5pb2tiwGxNp3htQVm65MsYvZ/6tNjGXNr8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/kiwix/lib.nix b/pkgs/applications/misc/kiwix/lib.nix
index dcde5c390a473..9d365cd328c8b 100644
--- a/pkgs/applications/misc/kiwix/lib.nix
+++ b/pkgs/applications/misc/kiwix/lib.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kiwix-lib";
-  version = "9.4.1";
+  version = "10.1.1";
 
   src = fetchFromGitHub {
     owner = "kiwix";
     repo = pname;
     rev = version;
-    sha256 = "034nk6l623v78clrs2d0k1vg69sbzrd8c0q79qiqmlkinck1nkxw";
+    sha256 = "sha256-ECvdraN1J5XJQLeZDngxO5I7frwZ8+W8tFpbB7o8UeM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/misc/koreader/default.nix b/pkgs/applications/misc/koreader/default.nix
index e2480dd18bded..b428690b7a403 100644
--- a/pkgs/applications/misc/koreader/default.nix
+++ b/pkgs/applications/misc/koreader/default.nix
@@ -56,6 +56,7 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/koreader/koreader";
     description =
       "An ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = intersectLists platforms.x86_64 platforms.linux;
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ contrun neonfuz];
diff --git a/pkgs/applications/misc/logseq/default.nix b/pkgs/applications/misc/logseq/default.nix
index 70d21acc05b46..9c3313ba5f49a 100644
--- a/pkgs/applications/misc/logseq/default.nix
+++ b/pkgs/applications/misc/logseq/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "logseq";
-  version = "0.7.0";
+  version = "0.7.5";
 
   src = fetchurl {
     url = "https://github.com/logseq/logseq/releases/download/${version}/logseq-linux-x64-${version}.AppImage";
-    sha256 = "sha256-oXNSd0ZU2ZsMK51tq8iq2sfuLg0ZHaiXhpJpWZkEmeY=";
+    sha256 = "sha256-uMlvpEEzanJ3zTEZKNE2zEfqvGC4IWL97b0AkTfwZeU=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/misc/logseq/update.sh b/pkgs/applications/misc/logseq/update.sh
index 9f83eefad1911..eb81dc68e4ebf 100755
--- a/pkgs/applications/misc/logseq/update.sh
+++ b/pkgs/applications/misc/logseq/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
 #!nix-shell -i bash -p curl jq common-updater-scripts
 
-version="$(curl -sL "https://api.github.com/repos/logseq/logseq/releases" | jq '.[0].tag_name' --raw-output)"
+version="$(curl -sL "https://api.github.com/repos/logseq/logseq/releases" | jq 'map(select(.prerelease == false)) | .[0].tag_name' --raw-output)"
 update-source-version logseq "$version"
diff --git a/pkgs/applications/misc/mapproxy/default.nix b/pkgs/applications/misc/mapproxy/default.nix
index 08c2c7afc45f1..75e7f64227bba 100644
--- a/pkgs/applications/misc/mapproxy/default.nix
+++ b/pkgs/applications/misc/mapproxy/default.nix
@@ -6,10 +6,10 @@
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "MapProxy";
-  version = "1.14.0";
+  version = "1.15.1";
   src = fetchPypi {
   inherit pname version;
-  sha256 = "dd36278d60cdcaaf31f7f9bbc50e90e770f3feb65cf4b3eff287215ee85f018d";
+  sha256 = "sha256-SVKZDLH8IfdND0/BFj/lrqp7BNanpzkjuTxlSMGjuiY=";
   };
   prePatch = ''
     substituteInPlace mapproxy/util/ext/serving.py --replace "args = [sys.executable] + sys.argv" "args = sys.argv"
diff --git a/pkgs/applications/misc/masterpdfeditor/default.nix b/pkgs/applications/misc/masterpdfeditor/default.nix
index 68453252ba539..de131b7ce63f0 100644
--- a/pkgs/applications/misc/masterpdfeditor/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Master PDF Editor";
     homepage = "https://code-industry.net/free-pdf-editor/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = with platforms; [ "x86_64-linux" ];
     maintainers = with maintainers; [ cmcdragonkai ];
diff --git a/pkgs/applications/misc/masterpdfeditor4/default.nix b/pkgs/applications/misc/masterpdfeditor4/default.nix
index b4b9a4d624469..befb11a0a48b3 100644
--- a/pkgs/applications/misc/masterpdfeditor4/default.nix
+++ b/pkgs/applications/misc/masterpdfeditor4/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Master PDF Editor - version 4, without watermark";
     homepage = "https://code-industry.net/free-pdf-editor/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = with platforms; [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/megacmd/default.nix b/pkgs/applications/misc/megacmd/default.nix
index afdfc6c905e04..2d5b6ee8f2ae6 100644
--- a/pkgs/applications/misc/megacmd/default.nix
+++ b/pkgs/applications/misc/megacmd/default.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "megacmd";
-  version = "1.5.0c";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "meganz";
     repo = "MEGAcmd";
     rev = "${version}_Linux";
-    sha256 = "sha256-JHuGkf6TBOZMvoP7Izm5/T9AWxyjaqrxR99x4bm7tVE=";
+    sha256 = "sha256-qOXw/KGt3DyWQGBe/pbMujQITCMItHobxuK+1r00ZIs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/misc/mkgmap/splitter/default.nix b/pkgs/applications/misc/mkgmap/splitter/default.nix
index 7851aedfe2c6f..13158d7f72576 100644
--- a/pkgs/applications/misc/mkgmap/splitter/default.nix
+++ b/pkgs/applications/misc/mkgmap/splitter/default.nix
@@ -14,12 +14,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "splitter";
-  version = "651";
+  version = "652";
 
   src = fetchsvn {
     url = "https://svn.mkgmap.org.uk/mkgmap/splitter/trunk";
     rev = version;
-    sha256 = "sha256-j6U+Wvxef151NEwkpuv4VdMac/cOT9YZUgkt+YPGCuk=";
+    sha256 = "sha256-yCdVOT8if3AImD4Q63gKfMep7WZsrCgV+IXfP4ZL3Qw=";
   };
 
   patches = [
diff --git a/pkgs/applications/misc/mystem/default.nix b/pkgs/applications/misc/mystem/default.nix
index 62c1834d26ad7..198d170bd89ca 100644
--- a/pkgs/applications/misc/mystem/default.nix
+++ b/pkgs/applications/misc/mystem/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Morphological analysis of Russian text";
     homepage = "https://yandex.ru/dev/mystem/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ abbradar ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/octoprint/plugins.nix b/pkgs/applications/misc/octoprint/plugins.nix
index ae82d4023247d..822f2c13cbeae 100644
--- a/pkgs/applications/misc/octoprint/plugins.nix
+++ b/pkgs/applications/misc/octoprint/plugins.nix
@@ -311,8 +311,8 @@ in
     src = fetchFromGitHub {
       owner = "jneilliii";
       repo = "OctoPrint-STLViewer";
-      rev = version;
-      sha256 = "0mkvh44fn2ch4z2avsdjwi1rp353ylmk9j5fln4x7rx8ph8y7g2b";
+      rev = "refs/tags/${version}";
+      sha256 = "sha256-S7zjEbyo59OJpa7INCv1o4ybQ+Sy6a3EJ5AJ6wiBe1Y=";
     };
 
     meta = with lib; {
diff --git a/pkgs/applications/misc/organicmaps/default.nix b/pkgs/applications/misc/organicmaps/default.nix
index 0930edbd4158b..c44fc41a5c650 100644
--- a/pkgs/applications/misc/organicmaps/default.nix
+++ b/pkgs/applications/misc/organicmaps/default.nix
@@ -8,7 +8,6 @@
 , which
 , python3
 , rsync
-, makeWrapper
 , qtbase
 , qtsvg
 , libGLU
@@ -20,13 +19,13 @@
 
 mkDerivation rec {
   pname = "organicmaps";
-  version = "2022.05.31-10";
+  version = "2022.06.18-2";
 
   src = fetchFromGitHub {
     owner = "organicmaps";
     repo = "organicmaps";
     rev = "${version}-android";
-    sha256 = "sha256-2GeWa4CQoY7hi24q0/cZBbq1Ofl2Jane9BiZ0N+IsSc=";
+    sha256 = "sha256-FlytRGiqGr9L5ZwL1slbPjagJKsleOXM8+loPmtfccI=";
     fetchSubmodules = true;
   };
 
@@ -45,7 +44,6 @@ mkDerivation rec {
     which
     python3
     rsync
-    makeWrapper
   ];
 
   # Most dependencies are vendored
@@ -64,16 +62,6 @@ mkDerivation rec {
     bash ./configure.sh
   '';
 
-  # Tell the program that the read-only and the read-write data locations
-  # are different, and create the read-write one.
-  # https://github.com/organicmaps/organicmaps/issues/2387
-  postInstall = ''
-    wrapProgram $out/bin/OMaps \
-      --add-flags "-resources_path $out/share/organicmaps/data" \
-      --add-flags '-data_path "''${XDG_DATA_HOME:-''${HOME}/.local/share}/OMaps"' \
-      --run 'mkdir -p "''${XDG_DATA_HOME:-''${HOME}/.local/share}/OMaps"'
-  '';
-
   meta = with lib; {
     # darwin: "invalid application of 'sizeof' to a function type"
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
diff --git a/pkgs/applications/misc/pastel/default.nix b/pkgs/applications/misc/pastel/default.nix
index b894195cfa603..5e0f5fc9e0114 100644
--- a/pkgs/applications/misc/pastel/default.nix
+++ b/pkgs/applications/misc/pastel/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "pastel";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "sharkdp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12n1a9j61r4spx0zi2kk85nslv11j1s510asxqvj92ggqhr2s3sq";
+    sha256 = "sha256-uK4HWC+uGiey+K0p8+Wi+Pi+U7b4k09b8iKF9BmTPcc=";
   };
 
-  cargoSha256 = "12zachbg78ajx1n1mqp53rd00dzcss5cqhsq0119lalzc8b5zkrn";
+  cargoSha256 = "sha256-5paHSrqU8tItD/CAbauj6KcW/mKsveOAfXjD/NUuFAc=";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index 745796098e8cc..e4626ef3c947c 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -42,6 +42,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
       homepage = "https://github.com/torakiki/pdfsam";
       description = "Multi-platform software designed to extract pages, split, merge, mix and rotate PDF files";
+      sourceProvenance = with sourceTypes; [
+        binaryBytecode
+        binaryNativeCode
+      ];
       license = licenses.agpl3;
       platforms = platforms.all;
       maintainers = with maintainers; [ _1000101 ];
diff --git a/pkgs/applications/misc/pdfstudio/common.nix b/pkgs/applications/misc/pdfstudio/common.nix
index 8c034d6636b32..047d9e4190fcb 100644
--- a/pkgs/applications/misc/pdfstudio/common.nix
+++ b/pkgs/applications/misc/pdfstudio/common.nix
@@ -88,6 +88,10 @@ buildFHSUserEnv {
     homepage = "https://www.qoppa.com/${pname}/";
     description = "An easy to use, full-featured PDF editing software";
     longDescription = longDescription;
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     mainProgram = pname;
diff --git a/pkgs/applications/misc/playonlinux/default.nix b/pkgs/applications/misc/playonlinux/default.nix
index 58d45d19bee58..669f25e1509eb 100644
--- a/pkgs/applications/misc/playonlinux/default.nix
+++ b/pkgs/applications/misc/playonlinux/default.nix
@@ -142,6 +142,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "GUI for managing Windows programs under linux";
     homepage = "https://www.playonlinux.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3;
     maintainers = [ maintainers.pasqui23 ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/misc/polar-bookshelf/default.nix b/pkgs/applications/misc/polar-bookshelf/default.nix
index 8fcd9e1a04fe9..1c286d611e6be 100644
--- a/pkgs/applications/misc/polar-bookshelf/default.nix
+++ b/pkgs/applications/misc/polar-bookshelf/default.nix
@@ -122,6 +122,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "https://getpolarized.io/";
     description = "Personal knowledge repository for PDF and web content supporting incremental reading and document annotation";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl3Only;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.noneucat ];
diff --git a/pkgs/applications/misc/premid/default.nix b/pkgs/applications/misc/premid/default.nix
index d2b8663d24531..3fe8c64f20be5 100644
--- a/pkgs/applications/misc/premid/default.nix
+++ b/pkgs/applications/misc/premid/default.nix
@@ -85,6 +85,7 @@ stdenv.mkDerivation rec {
     description = "A simple, configurable utility to show your web activity as playing status on Discord";
     homepage = "https://premid.app";
     downloadPage = "https://premid.app/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ natto1784 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/privacyidea/default.nix b/pkgs/applications/misc/privacyidea/default.nix
index 5c3afc301556f..5aabf3d2ddf57 100644
--- a/pkgs/applications/misc/privacyidea/default.nix
+++ b/pkgs/applications/misc/privacyidea/default.nix
@@ -1,9 +1,9 @@
 { lib, fetchFromGitHub, cacert, openssl, nixosTests
-, python3
+, python39
 }:
 
 let
-  python3' = python3.override {
+  python3' = python39.override {
     packageOverrides = self: super: {
       sqlalchemy = super.sqlalchemy.overridePythonAttrs (oldAttrs: rec {
         version = "1.3.24";
@@ -19,7 +19,7 @@ let
       });
       flask_migrate = super.flask_migrate.overridePythonAttrs (oldAttrs: rec {
         version = "2.7.0";
-        src = python3.pkgs.fetchPypi {
+        src = self.fetchPypi {
           pname = "Flask-Migrate";
           inherit version;
           sha256 = "ae2f05671588762dd83a21d8b18c51fe355e86783e24594995ff8d7380dffe38";
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
index 1488538cc55ed..679b77157cd05 100644
--- a/pkgs/applications/misc/prusa-slicer/default.nix
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -1,8 +1,39 @@
-{ stdenv, lib, fetchFromGitHub, cmake, copyDesktopItems, makeDesktopItem
-, pkg-config, wrapGAppsHook, boost, cereal, cgal_5, curl, dbus, eigen, expat
-, glew, glib, gmp, gtest, gtk3, hicolor-icon-theme, ilmbase, libpng, mpfr, nlopt
-, openvdb, pcre, qhull, systemd, tbb, wxGTK31-gtk3, xorg, fetchpatch
-, wxGTK31-gtk3-override ? null }:
+{ stdenv
+, lib
+, binutils
+, fetchFromGitHub
+, cmake
+, copyDesktopItems
+, makeDesktopItem
+, pkg-config
+, wrapGAppsHook
+, boost
+, cereal
+, cgal_5
+, curl
+, dbus
+, eigen
+, expat
+, glew
+, glib
+, gmp
+, gtest
+, gtk3
+, hicolor-icon-theme
+, ilmbase
+, libpng
+, mpfr
+, nlopt
+, openvdb
+, pcre
+, qhull
+, systemd
+, tbb
+, wxGTK31-gtk3
+, xorg
+, fetchpatch
+, wxGTK31-gtk3-override ? null
+}:
 let
   wxGTK31-gtk3-prusa = wxGTK31-gtk3.overrideAttrs (old: rec {
     pname = "wxwidgets-prusa3d-patched";
@@ -16,7 +47,8 @@ let
     };
   });
   wxGTK31-gtk3-override' = if wxGTK31-gtk3-override == null then wxGTK31-gtk3-prusa else wxGTK31-gtk3-override;
-in stdenv.mkDerivation rec {
+in
+stdenv.mkDerivation rec {
   pname = "prusa-slicer";
   version = "2.4.2";
 
@@ -28,6 +60,7 @@ in stdenv.mkDerivation rec {
   ];
 
   buildInputs = [
+    binutils
     boost
     cereal
     cgal_5
@@ -58,6 +91,16 @@ in stdenv.mkDerivation rec {
       url = "https://github.com/prusa3d/PrusaSlicer/commit/76f4d6fa98bda633694b30a6e16d58665a634680.patch";
       sha256 = "1r806ycp704ckwzgrw1940hh1l6fpz0k1ww3p37jdk6mygv53nv6";
     })
+    # Fix compile error with boost 1.79. See https://github.com/prusa3d/PrusaSlicer/issues/8238
+    # Can be removed with the next version update
+    (fetchpatch {
+      url = "https://github.com/prusa3d/PrusaSlicer/commit/408e56f0390f20aaf793e0aa0c70c4d9544401d4.patch";
+      sha256 = "sha256-vzEPjLE3Yy5szawPn2Yp3i7MceWewpdnLUPVu9+H3W8=";
+    })
+    (fetchpatch {
+      url = "https://github.com/prusa3d/PrusaSlicer/commit/926ae0471800abd1e5335e251a5934570eb8f6ff.patch";
+      sha256 = "sha256-tAEgubeGGKFWY7r7p/6pmI2HXUGKi2TM1X5ILVZVT20=";
+    })
   ];
 
   doCheck = true;
diff --git a/pkgs/applications/misc/rescuetime/default.nix b/pkgs/applications/misc/rescuetime/default.nix
index 69f0b26b9ec41..273b2d6046ed8 100644
--- a/pkgs/applications/misc/rescuetime/default.nix
+++ b/pkgs/applications/misc/rescuetime/default.nix
@@ -53,6 +53,7 @@ in mkDerivation rec {
     description = "Helps you understand your daily habits so you can focus and be more productive";
     homepage    = "https://www.rescuetime.com";
     maintainers = with maintainers; [ cstrahan ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.unfree;
     platforms   = [ "i686-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/misc/rivercarro/default.nix b/pkgs/applications/misc/rivercarro/default.nix
index 3d7720d25968e..0074a923f4179 100644
--- a/pkgs/applications/misc/rivercarro/default.nix
+++ b/pkgs/applications/misc/rivercarro/default.nix
@@ -5,25 +5,23 @@
 , river
 , wayland
 , pkg-config
-, scdoc
 }:
 
 stdenv.mkDerivation rec {
   pname = "rivercarro";
-  version = "0.1.2";
+  version = "0.1.4";
 
   src = fetchFromSourcehut {
     owner = "~novakane";
     repo = pname;
     fetchSubmodules = true;
     rev = "v${version}";
-    sha256 = "07md837ki0yln464w8vgwyl3yjrvkz1p8alxlmwqfn4w45nqhw77";
+    sha256 = "sha256-eATbbwIt5ytEVLPodyq9vFF9Rs5S1xShpvNYQnfwdV4=";
   };
 
   nativeBuildInputs = [
     pkg-config
     river
-    scdoc
     wayland
     zig
   ];
@@ -36,7 +34,7 @@ stdenv.mkDerivation rec {
 
   installPhase = ''
     runHook preInstall
-    zig build -Drelease-safe -Dcpu=baseline -Dman-pages --prefix $out install
+    zig build -Drelease-safe -Dcpu=baseline --prefix $out install
     runHook postInstall
   '';
 
diff --git a/pkgs/applications/misc/robo3t/default.nix b/pkgs/applications/misc/robo3t/default.nix
index 81219fc752697..ae32aac267e17 100644
--- a/pkgs/applications/misc/robo3t/default.nix
+++ b/pkgs/applications/misc/robo3t/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
     homepage = "https://robomongo.org/";
     description = "Query GUI for mongodb. Formerly called Robomongo";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ eperuffo ];
   };
diff --git a/pkgs/applications/misc/rofi-rbw/default.nix b/pkgs/applications/misc/rofi-rbw/default.nix
index 6a631d5a95087..561bf1f166cf8 100644
--- a/pkgs/applications/misc/rofi-rbw/default.nix
+++ b/pkgs/applications/misc/rofi-rbw/default.nix
@@ -2,14 +2,14 @@
 
 buildPythonApplication rec {
   pname = "rofi-rbw";
-  version = "0.5.0";
+  version = "1.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "fdw";
     repo = "rofi-rbw";
-    rev = version;
-    hash = "sha256-1RDwb8lKls6+X/XtARbi4F7sK4nT03Iy3Wb9N1LEa5o=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BL7aLHKhLAGAT5+NXqzAW2g17XB1PjgRgJuxLh8fFk8=";
   };
 
   propagatedBuildInputs = [ configargparse ];
diff --git a/pkgs/applications/misc/sidequest/default.nix b/pkgs/applications/misc/sidequest/default.nix
index e26a40667da9c..23684142a09b4 100644
--- a/pkgs/applications/misc/sidequest/default.nix
+++ b/pkgs/applications/misc/sidequest/default.nix
@@ -48,6 +48,7 @@
         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";
         homepage = "https://github.com/SideQuestVR/SideQuest";
         downloadPage = "https://github.com/SideQuestVR/SideQuest/releases";
+        sourceProvenance = with sourceTypes; [ binaryNativeCode ];
         license = licenses.mit;
         maintainers = with maintainers; [ joepie91 rvolosatovs ];
         platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/signumone-ks/default.nix b/pkgs/applications/misc/signumone-ks/default.nix
index eb0af95d58d59..f183fbed3d2e4 100644
--- a/pkgs/applications/misc/signumone-ks/default.nix
+++ b/pkgs/applications/misc/signumone-ks/default.nix
@@ -48,6 +48,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Digital signature tool for Costa Rican electronic invoicing";
     homepage = "https://signum.one/download.html";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/simplenote/default.nix b/pkgs/applications/misc/simplenote/default.nix
index f723ba27beb8d..35f153393518c 100644
--- a/pkgs/applications/misc/simplenote/default.nix
+++ b/pkgs/applications/misc/simplenote/default.nix
@@ -27,6 +27,7 @@ let
     description = "The simplest way to keep notes";
     homepage = "https://github.com/Automattic/simplenote-electron";
     license = licenses.gpl2;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [
       kiwi
     ];
diff --git a/pkgs/applications/misc/skytemple/default.nix b/pkgs/applications/misc/skytemple/default.nix
index 0f331ef6e2ce4..2ec034e882e18 100644
--- a/pkgs/applications/misc/skytemple/default.nix
+++ b/pkgs/applications/misc/skytemple/default.nix
@@ -1,4 +1,12 @@
-{ lib, fetchFromGitHub, gobject-introspection, gtk3, gtksourceview3, webkitgtk, wrapGAppsHook, python3Packages }:
+{ lib
+, fetchFromGitHub
+, gobject-introspection
+, gtk3
+, gtksourceview3
+, webkitgtk
+, wrapGAppsHook
+, python3Packages
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "skytemple";
@@ -8,7 +16,7 @@ python3Packages.buildPythonApplication rec {
     owner = "SkyTemple";
     repo = pname;
     rev = version;
-    sha256 = "sha256-CyYGTXdQsGpDR/gpqViEQO1xUPHaXTES592nRJixa1o=";
+    hash = "sha256-CyYGTXdQsGpDR/gpqViEQO1xUPHaXTES592nRJixa1o=";
   };
 
   buildInputs = [
@@ -20,9 +28,16 @@ python3Packages.buildPythonApplication rec {
     # any Pokemon, and clicking Stats and Moves tab.
     webkitgtk
   ];
-  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook
+  ];
+
   propagatedBuildInputs = with python3Packages; [
+    cairosvg
     natsort
+    ndspy
     packaging
     pycairo
     pygal
@@ -36,6 +51,7 @@ python3Packages.buildPythonApplication rec {
     skytemple-files
     skytemple-icons
     skytemple-ssb-debugger
+    tilequant
   ];
 
   doCheck = false; # there are no tests
diff --git a/pkgs/applications/misc/snapmaker-luban/default.nix b/pkgs/applications/misc/snapmaker-luban/default.nix
index b5bcbabf8674b..6a9c8843c09a3 100644
--- a/pkgs/applications/misc/snapmaker-luban/default.nix
+++ b/pkgs/applications/misc/snapmaker-luban/default.nix
@@ -81,6 +81,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Snapmaker Luban is an easy-to-use 3-in-1 software tailor-made for Snapmaker machines";
     homepage = "https://github.com/Snapmaker/Luban";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3;
     maintainers = [ maintainers.simonkampe ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/snowsql/default.nix b/pkgs/applications/misc/snowsql/default.nix
index 85f4ffec5f16b..90aab7987b389 100644
--- a/pkgs/applications/misc/snowsql/default.nix
+++ b/pkgs/applications/misc/snowsql/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Command line client for the Snowflake database";
     homepage = "https://www.snowflake.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ andehen ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/spacefm/default.nix b/pkgs/applications/misc/spacefm/default.nix
index 3d9f720487541..433109cd86af3 100644
--- a/pkgs/applications/misc/spacefm/default.nix
+++ b/pkgs/applications/misc/spacefm/default.nix
@@ -21,6 +21,13 @@ stdenv.mkDerivation rec {
     ./x11-only.patch
   ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: spacefm-item-prop.o:src/settings.h:123: multiple definition of
+  #     `xsets'; vfs/spacefm-vfs-file-info.o:src/settings.h:123: first defined here
+  # TODO: can be removed once https://github.com/IgnorantGuru/spacefm/pull/772
+  # or equivalent is merged upstream.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   configureFlags = [
     "--with-bash-path=${pkgs.bash}/bin/bash"
   ];
diff --git a/pkgs/applications/misc/thedesk/default.nix b/pkgs/applications/misc/thedesk/default.nix
index 42f4d36eea5d5..c9d845574ff0b 100644
--- a/pkgs/applications/misc/thedesk/default.nix
+++ b/pkgs/applications/misc/thedesk/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Mastodon/Misskey Client for PC";
     homepage = "https://thedesk.top";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/misc/upwork/default.nix b/pkgs/applications/misc/upwork/default.nix
index 34cc97023989e..0b1bed6785755 100644
--- a/pkgs/applications/misc/upwork/default.nix
+++ b/pkgs/applications/misc/upwork/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Online freelancing platform desktop application for time tracking";
     homepage = "https://www.upwork.com/ab/downloads/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ zakkor wolfangaukang ];
diff --git a/pkgs/applications/misc/whalebird/default.nix b/pkgs/applications/misc/whalebird/default.nix
index 9b8a7f0a348ad..3972d7a17230c 100644
--- a/pkgs/applications/misc/whalebird/default.nix
+++ b/pkgs/applications/misc/whalebird/default.nix
@@ -1,28 +1,51 @@
-{ lib, stdenv, fetchurl, dpkg, autoPatchelfHook, makeWrapper, electron
+{ lib, stdenv, fetchurl, autoPatchelfHook, makeDesktopItem, copyDesktopItems, makeWrapper, electron
 , nodePackages, alsa-lib, gtk3, libdbusmenu, libxshmfence, mesa, nss }:
 
 stdenv.mkDerivation rec {
   pname = "whalebird";
-  version = "4.5.4";
+  version = "4.6.0";
 
-  src = fetchurl {
-    url = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}/Whalebird-${version}-linux-x64.deb";
-    sha256 = "048c2hpnlzjli8r1lcm7hd32qfsq4p9vkimrgc049yw9f15ndjpr";
-  };
+  src = let
+    downloads = "https://github.com/h3poteto/whalebird-desktop/releases/download/${version}";
+  in
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = downloads + "/Whalebird-${version}-linux-x64.tar.bz2";
+        sha256 = "02f2f4b7184494926ef58523174acfa23738d5f27b4956d094836a485047c2f8";
+      }
+    else if stdenv.system == "aarch64-linux" then
+      fetchurl {
+        url = downloads + "/Whalebird-${version}-linux-arm64.tar.bz2";
+        sha256 = "de0cdf7cbd6f0305100a2440e2559ddce0a5e4ad73a341874d6774e23dc76974";
+      }
+    else
+      throw "Whalebird is not supported for ${stdenv.system}";
 
   nativeBuildInputs = [
-    dpkg
     autoPatchelfHook
     makeWrapper
+    copyDesktopItems
     nodePackages.asar
   ];
 
   buildInputs = [ alsa-lib gtk3 libdbusmenu libxshmfence mesa nss ];
 
-  dontConfigure = true;
+  desktopItems = [
+    (makeDesktopItem {
+      desktopName = "Whalebird";
+      comment = meta.description;
+      categories = [ "Network" ];
+      exec = "whalebird";
+      icon = "whalebird";
+      name = "whalebird";
+    })
+  ];
 
   unpackPhase = ''
-    dpkg-deb -x ${src} ./
+    mkdir -p opt
+    tar -xf ${src} -C opt
+    # remove the version/target suffix from the untar'd directory
+    mv opt/Whalebird-* opt/Whalebird
   '';
 
   buildPhase = ''
@@ -31,7 +54,7 @@ stdenv.mkDerivation rec {
     # Necessary steps to find the tray icon
     asar extract opt/Whalebird/resources/app.asar "$TMP/work"
     substituteInPlace $TMP/work/dist/electron/main.js \
-      --replace "jo,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
+      --replace "Do,\"tray_icon.png\"" "\"$out/opt/Whalebird/resources/build/icons/tray_icon.png\""
     asar pack --unpack='{*.node,*.ftz,rect-overlay}' "$TMP/work" opt/Whalebird/resources/app.asar
 
     runHook postBuild
@@ -41,12 +64,17 @@ stdenv.mkDerivation rec {
     runHook preInstall
 
     mkdir $out
-    mv usr/share opt $out
+    mv opt $out
+
+    # install icons
+    for icon in $out/opt/Whalebird/resources/build/icons/*.png; do
+      mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps"
+      ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/whalebird.png"
+    done
 
-    substituteInPlace $out/share/applications/whalebird.desktop \
-      --replace '/opt/Whalebird' $out/bin
     makeWrapper ${electron}/bin/electron $out/bin/whalebird \
-      --add-flags $out/opt/Whalebird/resources/app.asar
+      --add-flags $out/opt/Whalebird/resources/app.asar \
+      --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=UseOzonePlatform --ozone-platform=wayland}}"
 
     runHook postInstall
   '';
@@ -54,8 +82,9 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Electron based Mastodon, Pleroma and Misskey client for Windows, Mac and Linux";
     homepage = "https://whalebird.social";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
-    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ wolfangaukang colinsane ];
+    platforms = [ "x86_64-linux" "aarch64-linux" ];
   };
 }
diff --git a/pkgs/applications/misc/xkblayout-state/default.nix b/pkgs/applications/misc/xkblayout-state/default.nix
index 70543b5fa186c..539a0f7d1a1d8 100644
--- a/pkgs/applications/misc/xkblayout-state/default.nix
+++ b/pkgs/applications/misc/xkblayout-state/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, qt4 }:
+{ lib, stdenv, fetchFromGitHub, libX11 }:
 
 stdenv.mkDerivation rec {
   pname = "xkblayout-state";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-diorqwDEBdzcBteKvhRisQaY3bx5seaOaWSaPwBkWDo=";
   };
 
-  buildInputs = [ qt4 ];
+  buildInputs = [ libX11 ];
 
   installPhase = ''
     mkdir -p $out/bin
diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix
index a395ffd521f53..17134dcd3892b 100644
--- a/pkgs/applications/misc/xmind/default.nix
+++ b/pkgs/applications/misc/xmind/default.nix
@@ -85,7 +85,10 @@ stdenv.mkDerivation rec {
       and save to Evernote.
     '';
     homepage = "https://www.xmind.net/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ michalrus ];
diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix
index a2a6ae1f84b4f..d24345389cab1 100644
--- a/pkgs/applications/misc/xplr/default.nix
+++ b/pkgs/applications/misc/xplr/default.nix
@@ -2,23 +2,23 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "xplr";
-  version = "0.18.0";
+  version = "0.19.0";
 
   src = fetchFromGitHub {
     owner = "sayanarijit";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-L9eJd1ivFhAmjKVm+HFq9fNiA/UA/x2akEfa1CrUSBo=";
+    sha256 = "sha256-rvqx0s56VozG8M0m3uZsHuugx0BXucSFqLbq0L1KhAM=";
   };
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
-  cargoSha256 = "sha256-niH8gj49Wr20Lpa6UAczQ+YHgJlkvZYKJGFH6Spk9Ho=";
+  cargoSha256 = "sha256-CyHkjXZVISkQJEQx5vNBGBf6zZrVv/cLWIYeOq9Ac5k=";
 
   meta = with lib; {
     description = "A hackable, minimal, fast TUI file explorer";
     homepage = "https://xplr.dev";
     license = licenses.mit;
-    maintainers = with maintainers; [ sayanarijit suryasr007 ];
+    maintainers = with maintainers; [ sayanarijit suryasr007 thehedgeh0g ];
   };
 }
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index bd9e5a87bf9bb..cfee5cb43e3f5 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -8,11 +8,11 @@
 # Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
 let
   pname = "zettlr";
-  version = "2.2.6";
+  version = "2.3.0";
   name = "${pname}-${version}";
   src = fetchurl {
     url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
-    sha256 = "sha256-f01WLxp8fe7y2EwTUhpPqcRuWBs/9lMaAAOdybmHB5M=";
+    sha256 = "sha256-3p9RO6hpioYF6kdGV+/9guoqxaPCJG73OsrN69SHQHk=";
   };
   appimageContents = appimageTools.extractType2 {
     inherit name src;
diff --git a/pkgs/applications/networking/aether/default.nix b/pkgs/applications/networking/aether/default.nix
index 5f78b244ca412..62dbae082d9a1 100644
--- a/pkgs/applications/networking/aether/default.nix
+++ b/pkgs/applications/networking/aether/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
     description = "Peer-to-peer ephemeral public communities";
     homepage = "https://getaether.net/";
     downloadPage = "https://getaether.net/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ maxhille ];
     # other platforms could be supported by building from source
diff --git a/pkgs/applications/networking/apache-directory-studio/default.nix b/pkgs/applications/networking/apache-directory-studio/default.nix
index 8b20c1aac6b0c..4a9c0da726fa2 100644
--- a/pkgs/applications/networking/apache-directory-studio/default.nix
+++ b/pkgs/applications/networking/apache-directory-studio/default.nix
@@ -45,6 +45,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Eclipse-based LDAP browser and directory client";
     homepage = "https://directory.apache.org/studio/";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     # Upstream supports macOS and Windows too.
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/appgate-sdp/default.nix b/pkgs/applications/networking/appgate-sdp/default.nix
index 7e4c5cfac888d..cac64ba7f63f1 100644
--- a/pkgs/applications/networking/appgate-sdp/default.nix
+++ b/pkgs/applications/networking/appgate-sdp/default.nix
@@ -87,11 +87,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "appgate-sdp";
-  version = "5.5.4";
+  version = "5.5.5";
 
   src = fetchurl {
     url = "https://bin.appgate-sdp.com/${versions.majorMinor version}/client/appgate-sdp_${version}_amd64.deb";
-    sha256 = "sha256-7qfgUYD7uPb+ZEierREVfnHoGz0/b/J+hcsX/duDFWU=";
+    sha256 = "sha256-eXcGHd3TGNFqjFQ+wSg4+1hF/6DJTPOs0ldjegFktGo=";
   };
 
   # just patch interpreter
@@ -151,6 +151,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Appgate SDP (Software Defined Perimeter) desktop client";
     homepage = "https://www.appgate.com/support/software-defined-perimeter-support";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ymatsiuk ];
diff --git a/pkgs/applications/networking/blocky/default.nix b/pkgs/applications/networking/blocky/default.nix
index 2f2a708455e17..0f25fd0a8ec98 100644
--- a/pkgs/applications/networking/blocky/default.nix
+++ b/pkgs/applications/networking/blocky/default.nix
@@ -6,20 +6,20 @@
 
 buildGoModule rec {
   pname = "blocky";
-  version = "0.18";
+  version = "0.19";
 
   src = fetchFromGitHub {
     owner = "0xERR0R";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-rFHDoNrEmMSNEc3RLdSeRk9mF05drUYfJFQKHAk5alE=";
+    sha256 = "sha256-jOOakRuiNbdCGmbaQFuHcLsHhV26jaQY+1GgDj9ocs0=";
   };
 
   # needs network connection and fails at
   # https://github.com/0xERR0R/blocky/blob/development/resolver/upstream_resolver_test.go
   doCheck = false;
 
-  vendorSha256 = "sha256-rrqDjh5e3KX5+saYjnMPG0bhr5YEOPfz0QCRf6omNZI=";
+  vendorSha256 = "sha256-fsMBL9qyhIrV6eAsqpSaNniibMdYRVBnl2KCzStvMGQ=";
 
   meta = with lib; {
     description = "Fast and lightweight DNS proxy as ad-blocker for local network with many features.";
diff --git a/pkgs/applications/networking/brig/default.nix b/pkgs/applications/networking/brig/default.nix
index 20b685a162fef..d049ed4e3893a 100644
--- a/pkgs/applications/networking/brig/default.nix
+++ b/pkgs/applications/networking/brig/default.nix
@@ -1,25 +1,57 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "brig";
   version = "0.4.1";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/sahib/brig";
-  subPackages = ["."];
 
   src = fetchFromGitHub {
     owner = "sahib";
     repo = "brig";
-    inherit rev;
+    rev = "v${version}";
     sha256 = "0gi39jmnzqrgj146yw8lcmgmvzx7ii1dgw4iqig7kx8c0jiqi600";
   };
 
+  vendorSha256 = null;
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-s" "-w" ] ++ (with lib;
+    mapAttrsToList (n: v: "-X github.com/sahib/brig/version.${n}=${v}")
+      (with versions; {
+        Major = major version;
+        Minor = minor version;
+        Patch = patch version;
+        ReleaseType = "";
+        BuildTime = "1970-01-01T00:00:00+0000";
+        GitRev = src.rev;
+      }));
+
+  postInstall = ''
+    installShellCompletion --cmd brig \
+      --bash $src/autocomplete/bash_autocomplete \
+      --zsh $src/autocomplete/zsh_autocomplete
+  '';
+
+  # There are no tests for the brig executable.
+  doCheck = false;
+
   meta = with lib; {
-    description = "File synchronization on top of ipfs with git like interface and FUSE filesystem";
-    homepage = "https://github.com/sahib/brig";
+    description = "File synchronization on top of IPFS with a git-like interface and a FUSE filesystem";
+    longDescription = ''
+      brig is a distributed and secure file synchronization tool with a version
+      control system. It is based on IPFS, written in Go and will feel familiar
+      to git users. Think of it as a swiss army knife for file synchronization
+      or as a peer to peer alternative to Dropbox.
+    '';
+    homepage = "https://brig.readthedocs.io";
+    changelog = "https://github.com/sahib/brig/releases/tag/${src.rev}";
     license = licenses.agpl3;
-    platforms = platforms.unix;
     maintainers = with maintainers; [ offline ];
   };
 }
diff --git a/pkgs/applications/networking/browsers/brave/default.nix b/pkgs/applications/networking/browsers/brave/default.nix
index 2983ced459f84..2d131b4279a6e 100644
--- a/pkgs/applications/networking/browsers/brave/default.nix
+++ b/pkgs/applications/networking/browsers/brave/default.nix
@@ -90,11 +90,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "brave";
-  version = "1.38.115";
+  version = "1.39.122";
 
   src = fetchurl {
     url = "https://github.com/brave/brave-browser/releases/download/v${version}/brave-browser_${version}_amd64.deb";
-    sha256 = "sha256-YQpFsB3VVzsOa7PoZ+TLv10Dzm9z819cmyw7atnG/Cs=";
+    sha256 = "sha256-UJtVFvcVzfpdDbCkXs9UetS/1IUIn1mxUy7TcaXL5Jo=";
   };
 
   dontConfigure = true;
@@ -200,6 +200,7 @@ stdenv.mkDerivation rec {
       chew up your bandwidth, and invade your privacy. Brave lets you
       contribute to your favorite creators automatically.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ uskudnik rht jefflabonte nasirhm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index cfd6b122d6cc7..1cfc90dd4f145 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -160,10 +160,6 @@ let
       ./patches/no-build-timestamps.patch
       # For bundling Widevine (DRM), might be replaceable via bundle_widevine_cdm=true in gnFlags:
       ./patches/widevine-79.patch
-    ] ++ optionals (versionRange "102" "103") [
-      # https://dawn-review.googlesource.com/c/dawn/+/88582
-      # Wrap get_gitHash in try-catch to prevent failures in tarball builds.
-      ./patches/m102-fix-dawn_version_generator-failure.patch
     ];
 
     postPatch = ''
diff --git a/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch b/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch
deleted file mode 100644
index e9391541e435c..0000000000000
--- a/pkgs/applications/networking/browsers/chromium/patches/m102-fix-dawn_version_generator-failure.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e9ffd084ec1ff9f7bfc86879732953dc58256958 Mon Sep 17 00:00:00 2001
-From: Loko Kung <lokokung@google.com>
-Date: Tue, 3 May 2022 00:28:53 +0000
-Subject: [PATCH] Wrap get_gitHash in try-catch to prevent failures in tarball
- builds.
-
-Bug: chromium:1321370
-Change-Id: If39d2236d1b4d965f7bd189f6bd1cdc70436c41d
-Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/88582
-Commit-Queue: Loko Kung <lokokung@google.com>
-Reviewed-by: Austin Eng <enga@chromium.org>
-Kokoro: Kokoro <noreply+kokoro@google.com>
-(cherry picked from commit 03ddfbb81fb4127ca37ea53e70fcb34fe851e24e)
----
- third_party/dawn/generator/dawn_version_generator.py | 13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/third_party/dawn/generator/dawn_version_generator.py b/third_party/dawn/generator/dawn_version_generator.py
-index 1907e88da..3c1927bee 100644
---- a/third_party/dawn/generator/dawn_version_generator.py
-+++ b/third_party/dawn/generator/dawn_version_generator.py
-@@ -23,11 +23,14 @@ def get_git():
-
-
- def get_gitHash(dawnDir):
--    result = subprocess.run([get_git(), 'rev-parse', 'HEAD'],
--                            stdout=subprocess.PIPE,
--                            cwd=dawnDir)
--    if result.returncode == 0:
--        return result.stdout.decode('utf-8').strip()
-+    try:
-+        result = subprocess.run([get_git(), "rev-parse", "HEAD"],
-+                                stdout=subprocess.PIPE,
-+                                cwd=dawnDir)
-+        if result.returncode == 0:
-+            return result.stdout.decode("utf-8").strip()
-+    except Exception:
-+        return ""
-     # No hash was available (possibly) because the directory was not a git checkout. Dawn should
-     # explicitly handle its absenece and disable features relying on the hash, i.e. caching.
-     return ''
---
-2.36.0
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index e1dc07c769802..f661e64bac7f8 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -1,27 +1,27 @@
 {
   "stable": {
-    "version": "102.0.5005.115",
-    "sha256": "1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h",
-    "sha256bin64": "0b32sscbjnvr98lk962i9k2srckv2s7fp9pifmsv5jlwndjhzm7y",
+    "version": "103.0.5060.53",
+    "sha256": "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf",
+    "sha256bin64": "19wxd4jl6fyjpcpy2331ckz6dgzrfj52wvdkp0kb18n0sym17fyn",
     "deps": {
       "gn": {
-        "version": "2022-04-14",
+        "version": "2022-05-11",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "fd9f2036f26d83f9fcfe93042fb952e5a7fe2167",
-        "sha256": "0b5xs0chcv3hfhy71rycsmgxnqbm375a333hwav8929k9cbi5p9h"
+        "rev": "578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf",
+        "sha256": "03dqfrdpf5xxl64dby3qmbwpzdq2gsa8g7xl438py3a629rgxg63"
       }
     },
     "chromedriver": {
-      "version": "102.0.5005.61",
-      "sha256_linux": "0fzmvggb4jkjx8cdanarlqqava8xdf3z5wrx560x7772pgd7q02b",
-      "sha256_darwin": "1y6wq5waivrc5svlwj1svcsh0w72lp68kid52q4qwi044d0l25jg",
-      "sha256_darwin_aarch64": "03xvmix3hkzlvsv1k5yai2hvsvv60in59n3wdwxkb79fdnkpr3i3"
+      "version": "103.0.5060.24",
+      "sha256_linux": "0snsv9n9db314adrr7hhcf49mgrkak6bvq84q9l5yvpl8ihvd0xr",
+      "sha256_darwin": "1rdai2vvnj7156lbbg0zambcz638hq7a3i9npbmlsl826l61m8wm",
+      "sha256_darwin_aarch64": "15f5q9fdqa63mb9yjm4dql69fh6w85f0xj428sv4grfhrn8w0bh3"
     }
   },
   "beta": {
-    "version": "103.0.5060.42",
-    "sha256": "0275n5g8j4sha98drjwlm6d2smwm3nmpmfpszi16cx59m6zylncq",
-    "sha256bin64": "0pq41iv296mk508yc1snvm5a4fvgs9y85gk2w45w973g5maipzgf",
+    "version": "103.0.5060.53",
+    "sha256": "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf",
+    "sha256bin64": "01vzhhnngr6a7mm1y25ax8vhph6dl948fvkyhdhb9m4j5l4lcqj4",
     "deps": {
       "gn": {
         "version": "2022-05-11",
@@ -32,32 +32,32 @@
     }
   },
   "dev": {
-    "version": "104.0.5110.0",
-    "sha256": "12qdwkrhnjykmjc0q42xwq0cz1mllb3bv3ajp53pdpkjb6c3dvf1",
-    "sha256bin64": "0zg9n2z9pccw42gsd2fqs5ifvk2kkr4yznpz04839grs4bdsdv0j",
+    "version": "104.0.5112.12",
+    "sha256": "040xi7cwgxi1hahv8is088gma2cyz8xhsb62jfq5ahzjx2d93qp9",
+    "sha256bin64": "1av8wn3x7m9gixh8s0mv8w0hxlk80dh7y7x3fska5fjplf4x94ij",
     "deps": {
       "gn": {
         "version": "2022-06-08",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "fd6cae41bd7d5d255dc2fb96004a8bf74ac9d972",
-        "sha256": "04v7hrxy48q7awj6in5q6j3nr05anjq9ldx71ky6lgla10yyzx7m"
+        "rev": "2ecd43a10266bd091c98e6dcde507c64f6a0dad3",
+        "sha256": "1q06vsz9b4bb764wy1wy8n177z2pgpm97kq3rl1hmq185mz5fhra"
       }
     }
   },
   "ungoogled-chromium": {
-    "version": "102.0.5005.115",
-    "sha256": "1rj7vy824vn513hiivc90lnxvxyi2s0qkdmfqsdssv9v6zjl079h",
-    "sha256bin64": "0b32sscbjnvr98lk962i9k2srckv2s7fp9pifmsv5jlwndjhzm7y",
+    "version": "103.0.5060.53",
+    "sha256": "00di0nw6h3kb0qp2wp3ny3zsar1ayn1lyx5zr28dl1h5cwaaxjqf",
+    "sha256bin64": "19wxd4jl6fyjpcpy2331ckz6dgzrfj52wvdkp0kb18n0sym17fyn",
     "deps": {
       "gn": {
-        "version": "2022-04-14",
+        "version": "2022-05-11",
         "url": "https://gn.googlesource.com/gn",
-        "rev": "fd9f2036f26d83f9fcfe93042fb952e5a7fe2167",
-        "sha256": "0b5xs0chcv3hfhy71rycsmgxnqbm375a333hwav8929k9cbi5p9h"
+        "rev": "578a7fe4c3c6b0bc2ae1fd2e37f14857d09895bf",
+        "sha256": "03dqfrdpf5xxl64dby3qmbwpzdq2gsa8g7xl438py3a629rgxg63"
       },
       "ungoogled-patches": {
-        "rev": "102.0.5005.115-1",
-        "sha256": "1z2xkxxviggyyksga74cqa4v73gynlgzi22ckg8yv84qxrklik6p"
+        "rev": "103.0.5060.53-1",
+        "sha256": "1g5ciwzrhg9g13gvhrwqf19djk9jhj1d6nx2f6a8d5ch1mhi2z8s"
       }
     }
   }
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index 11946272abec5..9e3a08cb66684 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -21,6 +21,7 @@
 { lib
 , pkgs
 , stdenv
+, fetchpatch
 
 # build time
 , autoconf
@@ -219,6 +220,12 @@ buildStdenv.mkDerivation ({
   ];
 
   patches = [
+    (fetchpatch {
+      # https://bugzilla.mozilla.org/show_bug.cgi?id=1773259
+      name = "rust-cbindgen-0.24.2-compat.patch";
+      url = "https://raw.githubusercontent.com/canonical/firefox-snap/5622734942524846fb0eb7108918c8cd8557fde3/patches/fix-ftbfs-newer-cbindgen.patch";
+      hash = "sha256-+wNZhkDB3HSknPRD4N6cQXY7zMT/DzNXx29jQH0Gb1o=";
+    })
   ]
   ++ lib.optional (lib.versionAtLeast version "86") ./env_var_for_system_dir-ff86.patch
   ++ lib.optional (lib.versionAtLeast version "90" && lib.versionOlder version "95") ./no-buildconfig-ffx90.patch
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 153bd31a5e725..1b8e3c879676e 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -97,12 +97,15 @@ let
 
       nameArray = builtins.map(a: a.name) (if usesNixExtensions then nixExtensions else []);
 
+      requiresSigning = browser ? MOZ_REQUIRE_SIGNING
+                     -> toString browser.MOZ_REQUIRE_SIGNING != "";
+
       # Check that every extension has a unqiue .name attribute
       # and an extid attribute
       extensions = if nameArray != (lib.unique nameArray) then
         throw "Firefox addon name needs to be unique"
-      else if ! (lib.hasSuffix "esr" browser.name) then
-        throw "Nix addons are only supported in Firefox ESR"
+      else if requiresSigning && !lib.hasSuffix "esr" browser.name then
+        throw "Nix addons are only supported without signature enforcement (eg. Firefox ESR)"
       else builtins.map (a:
         if ! (builtins.hasAttr "extid" a) then
         throw "nixExtensions has an invalid entry. Missing extid attribute. Please use fetchfirefoxaddon"
diff --git a/pkgs/applications/networking/browsers/librewolf/src.json b/pkgs/applications/networking/browsers/librewolf/src.json
index d39c92c96df4a..3f9eaf83050f7 100644
--- a/pkgs/applications/networking/browsers/librewolf/src.json
+++ b/pkgs/applications/networking/browsers/librewolf/src.json
@@ -1,11 +1,11 @@
 {
-  "packageVersion": "100.0.2-1",
+  "packageVersion": "101.0.1-1",
   "source": {
-    "rev": "100.0.2-1",
-    "sha256": "1hss4kvy4n4wxwlbb0pk7f02qra1dk8xgc6v6xqg252i7453vg9d"
+    "rev": "101.0.1-1",
+    "sha256": "1b4zrfi5ig2aywsrfblxznds894ib8gx66yjm8n4hxmpsinmqfp9"
   },
   "firefox": {
-    "version": "100.0.2",
-    "sha512": "6d9922e35e496fa63833ba03d1466e075287e40e50854ddc4f4a2036d9c7ca1f35c03bc6f708a3c469e0ec3b389b3346ac754bb84df0fecb86955fc21c05e00f"
+    "version": "101.0.1",
+    "sha512": "435a7f6013582933e75c41e554a45beda30b5affd7d3ed7d2876026609ba7f17b2c20b507d9d0c9ce2379e335ec09b021257ba30ac55fabf02dca54b03ea70b4"
   }
 }
diff --git a/pkgs/applications/networking/browsers/microsoft-edge/browser.nix b/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
index 8ec4b523e4b08..227442b1e4b6a 100644
--- a/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
+++ b/pkgs/applications/networking/browsers/microsoft-edge/browser.nix
@@ -30,6 +30,7 @@
 , at-spi2-core
 , libuuid
 , systemd
+, wayland
 }:
 
 let
@@ -76,7 +77,7 @@ stdenv.mkDerivation rec {
         xorg.libXcomposite xorg.libXdamage xorg.libXext
         xorg.libXfixes xorg.libXrandr libxkbcommon
         gtk3 pango cairo gdk-pixbuf mesa
-        alsa-lib at-spi2-core xorg.libxshmfence systemd
+        alsa-lib at-spi2-core xorg.libxshmfence systemd wayland
       ];
       naclHelper = lib.makeLibraryPath [
         glib nspr atk libdrm xorg.libxcb mesa xorg.libX11
diff --git a/pkgs/applications/networking/browsers/microsoft-edge/default.nix b/pkgs/applications/networking/browsers/microsoft-edge/default.nix
index 4acdd563d66f7..c769937ee86bc 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 = "101.0.1210.19";
+    version = "103.0.1264.21";
     revision = "1";
-    sha256 = "sha256:1kgc19ryw69xiqppz90d6sa45g99hzkh7x5yk9d3xlh1gc1xn54p";
+    sha256 = "sha256:1336i0hy7xnla0pi4vahaxshhmivi1zljhaxyg63352bc7w9j64f";
   };
   dev = import ./browser.nix {
     channel = "dev";
-    version = "102.0.1227.0";
+    version = "104.0.1287.1";
     revision = "1";
-    sha256 = "sha256:0dnyandri7yg7c9812pnsxqszxyqcssxf87yskjg2vw95hawf11x";
+    sha256 = "sha256:10h360vfsfql42i6mpdvf8d0219506ipbk3hdpwl0jhlsphmhw61";
   };
   stable = import ./browser.nix {
     channel = "stable";
-    version = "100.0.1185.44";
+    version = "102.0.1245.44";
     revision = "1";
-    sha256 = "sha256:0zv1zyijh620xz36a6nmhv7rbv4ln5f245hyh0w1sngynsl1rz89";
+    sha256 = "sha256:10r12xlkcnag5jdmnwpqsbkjx1ih1027l573vxmcxmvpmj6y4373";
   };
 }
diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix
index 3631cd1463e2a..35f0712d9abc8 100644
--- a/pkgs/applications/networking/browsers/vivaldi/default.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/default.nix
@@ -20,11 +20,11 @@ let
   vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
 in stdenv.mkDerivation rec {
   pname = "vivaldi";
-  version = "5.3.2679.38-1";
+  version = "5.3.2679.61-1";
 
   src = fetchurl {
     url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb";
-    sha256 = "0jsmk12riai8nkj6zqc1frh4fl4w4zj3mncfgrs4niy6dvpasaja";
+    sha256 = "0cxsdcksv29dxync8rxrn30kr68qzf615085nhkk0ava7jdlvz9g";
   };
 
   unpackPhase = ''
diff --git a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
index 962113a2ace5d..26b408ffdecc0 100644
--- a/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/ffmpeg-codecs.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Additional support for proprietary codecs for Vivaldi";
     homepage    = "https://ffmpeg.org/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.lgpl21;
     maintainers = with maintainers; [ betaboon cawilliamson lluchs ];
     platforms   = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/browsers/vivaldi/widevine.nix b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
index 740e325fca4e9..65c58775874b1 100644
--- a/pkgs/applications/networking/browsers/vivaldi/widevine.nix
+++ b/pkgs/applications/networking/browsers/vivaldi/widevine.nix
@@ -20,6 +20,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Widevine support for Vivaldi";
     homepage = "https://www.widevine.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ betaboon ];
     platforms   = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cisco-packet-tracer/7.nix b/pkgs/applications/networking/cisco-packet-tracer/7.nix
index f7e7317131202..422ccd05cffcb 100644
--- a/pkgs/applications/networking/cisco-packet-tracer/7.nix
+++ b/pkgs/applications/networking/cisco-packet-tracer/7.nix
@@ -83,6 +83,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cisco-packet-tracer/8.nix b/pkgs/applications/networking/cisco-packet-tracer/8.nix
index 9bc8900174547..0dd31aea0619d 100644
--- a/pkgs/applications/networking/cisco-packet-tracer/8.nix
+++ b/pkgs/applications/networking/cisco-packet-tracer/8.nix
@@ -125,6 +125,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Network simulation tool from Cisco";
     homepage = "https://www.netacad.com/courses/packet-tracer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lucasew ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index ffcfc8e9c177d..624814c1bb650 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
 in
 buildGoModule rec {
   pname = "argo";
-  version = "3.3.5";
+  version = "3.3.8";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo";
     rev = "v${version}";
-    sha256 = "sha256-EeGpJliE38MroeScdmeMp36rEDld59zDEM5i4QqxYik=";
+    sha256 = "sha256-9RwUKLVf8ArDAE6ivbWqxDCCW4OjqQFEEoWHBIv/cww=";
   };
 
   vendorSha256 = "sha256-cq452XEGMVbLvfJ/UiVyOvnUSJr196owB3SyBYnAmZ0=";
diff --git a/pkgs/applications/networking/cluster/argocd/default.nix b/pkgs/applications/networking/cluster/argocd/default.nix
index 3500b1b75542f..212e024b98790 100644
--- a/pkgs/applications/networking/cluster/argocd/default.nix
+++ b/pkgs/applications/networking/cluster/argocd/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "argocd";
-  version = "2.3.4";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "argoproj";
     repo = "argo-cd";
     rev = "v${version}";
-    sha256 = "sha256-pWDwmsLCXoK8EzipOPXUdYu75hPm5AIExXmgoA102Dg=";
+    sha256 = "sha256-zc99YKh5hNa4oRoKJcGWqNrDb3LqIwXWzYOsmGKVsL8=";
   };
 
-  vendorSha256 = "sha256-XrIIMnn65Y10KnVTsmw6vLE53Zra1lWNFgklmaj3gF8=";
+  vendorSha256 = "sha256-j/35tvfUCcuFN8NGIjWgna1W0Q4CyhMLcOlepTAUl0w=";
 
   # Set target as ./cmd per cli-local
   # https://github.com/argoproj/argo-cd/blob/master/Makefile#L227
@@ -26,9 +26,9 @@ buildGoModule rec {
       "-X ${package_url}.gitCommit=${src.rev}"
       "-X ${package_url}.gitTag=${src.rev}"
       "-X ${package_url}.gitTreeState=clean"
-      "-X ${package_url}.kubectlVersion=v0.23.1"
+      "-X ${package_url}.kubectlVersion=v0.23.3"
       # NOTE: Update kubectlVersion when upgrading this package with
-      # go list -m k8s.io/client-go | head -n 1 | rev | cut -d' ' -f1 | rev
+      # https://github.com/argoproj/argo-cd/blob/master/go.mod#L95
       # Per https://github.com/argoproj/argo-cd/blob/master/Makefile#L18
       # Will need a way to automate it :P
     ];
diff --git a/pkgs/applications/networking/cluster/arkade/default.nix b/pkgs/applications/networking/cluster/arkade/default.nix
index ec0547baddf29..ad51121f1552a 100644
--- a/pkgs/applications/networking/cluster/arkade/default.nix
+++ b/pkgs/applications/networking/cluster/arkade/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "arkade";
-  version = "0.8.25";
+  version = "0.8.28";
 
   src = fetchFromGitHub {
     owner = "alexellis";
     repo = "arkade";
     rev = version;
-    sha256 = "sha256-m4vgQ4K73qmUMwPtviUQuRC2jNIDlE516WEZkFr3Upw=";
+    sha256 = "sha256-Tw/FxrmBpC+FDvfvDT1xQtcQwlxUpQHDMzTs3TrugYg=";
   };
 
   CGO_ENABLED = 0;
diff --git a/pkgs/applications/networking/cluster/atlantis/default.nix b/pkgs/applications/networking/cluster/atlantis/default.nix
index 55807caa5afb1..d7f685ee14f2c 100644
--- a/pkgs/applications/networking/cluster/atlantis/default.nix
+++ b/pkgs/applications/networking/cluster/atlantis/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "atlantis";
-  version = "0.19.2";
+  version = "0.19.4";
 
   src = fetchFromGitHub {
     owner = "runatlantis";
     repo = "atlantis";
     rev = "v${version}";
-    sha256 = "sha256-cd2dhrqJl/VRhOYB1g9OpOnPV92EQm8f3rRGZGVN+IY=";
+    sha256 = "sha256-OvUcSccSBLuWci0DZPd6+ztthnAf47CvuAxu2NnqRQ0=";
   };
 
-  vendorSha256 = "sha256-ux+Hw/TjeiY9VYhIQxaltZGk5CkxAab8R7kAsTaMUGc=";
+  vendorSha256 = "sha256-LActkTCZ7/KlvFmJ+58I8hTQWdxFxlRN09Jmj1vDa2U=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/cilium/default.nix b/pkgs/applications/networking/cluster/cilium/default.nix
index 648b0048e3e29..74bba4b13c2fb 100644
--- a/pkgs/applications/networking/cluster/cilium/default.nix
+++ b/pkgs/applications/networking/cluster/cilium/default.nix
@@ -1,23 +1,47 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "cilium-cli";
-  version = "0.11.7";
+  version = "0.11.10";
 
   src = fetchFromGitHub {
     owner = "cilium";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4+4E7v/b74DDekqymH8PR7/GfH3GGzSQFQk24VJisQ0=";
+    sha256 = "sha256-BkcnChxUceWGG5hBOHvzZokgcw8T/vvNwIEtHkLfUJA=";
   };
 
   vendorSha256 = null;
 
+  subPackages = [ "cmd/cilium" ];
+
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/cilium/cilium-cli/internal/cli/cmd.Version=${version}"
+  ];
+
+  # Required to workaround install check error:
+  # 2022/06/25 10:36:22 Unable to start gops: mkdir /homeless-shelter: permission denied
+  HOME = "$TMPDIR";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/cilium version | grep ${version} > /dev/null
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd cilium \
+      --bash <($out/bin/cilium completion bash) \
+      --fish <($out/bin/cilium completion fish) \
+      --zsh <($out/bin/cilium completion zsh)
+  '';
+
   meta = with lib; {
     description = "CLI to install, manage & troubleshoot Kubernetes clusters running Cilium";
     license = licenses.asl20;
     homepage = "https://www.cilium.io/";
-    maintainers = with maintainers; [ humancalico ];
+    maintainers = with maintainers; [ humancalico bryanasdev000 ];
     mainProgram = "cilium";
   };
 }
diff --git a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
index ec9f45a83886e..b7992e2c723df 100644
--- a/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
+++ b/pkgs/applications/networking/cluster/cloudfoundry-cli/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "cloudfoundry-cli";
-  version = "8.3.0";
+  version = "8.4.0";
 
   src = fetchFromGitHub {
     owner = "cloudfoundry";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-tC9U0yvuMEwO4mzWyUC+v+/H0EzgwTu02waTQrx19Bs=";
+    sha256 = "sha256-+UP1abTDYLn+lhMvo9G57X0nlColai7isNswog+3Y40=";
   };
-  vendorSha256 = "sha256-aXq92SI4cgJrmo67SEfg8YKPEpO2UW2fcYnKq9TmAQg=";
+  vendorSha256 = "sha256-opVnj6dTtHrPYM1v+EFw39XDMF/fampAn7n+JvlBcJk=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/applications/networking/cluster/cmctl/default.nix b/pkgs/applications/networking/cluster/cmctl/default.nix
index 86c7eddd7ab02..8a839d065ea2c 100644
--- a/pkgs/applications/networking/cluster/cmctl/default.nix
+++ b/pkgs/applications/networking/cluster/cmctl/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "cmctl";
-  version = "1.8.0";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner = "cert-manager";
     repo = "cert-manager";
     rev = "v${version}";
-    sha256 = "sha256-h7GyzjVrfyMHY7yuNmmsym6KGKCQr5R71gjPBTUeMCg=";
+    sha256 = "sha256-IR+z3+f9Pa7wQAP4EVya7fb7FnndaUY7F2ckTzpEuCA=";
   };
 
   vendorSha256 = "sha256-UYw9WdQ6VwzuuiOsa1yovkLZG7NmLYSW51p8UhmQMeI=";
diff --git a/pkgs/applications/networking/cluster/driftctl/default.nix b/pkgs/applications/networking/cluster/driftctl/default.nix
index a488f1d2f52de..0cde6d0090e7b 100644
--- a/pkgs/applications/networking/cluster/driftctl/default.nix
+++ b/pkgs/applications/networking/cluster/driftctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "driftctl";
-  version = "0.31.0";
+  version = "0.34.1";
 
   src = fetchFromGitHub {
     owner = "snyk";
     repo = "driftctl";
     rev = "v${version}";
-    sha256 = "sha256-2h7tasHxeEe65BpUXmHkMsNmjiG+QofyGVqXPuk4Ej8=";
+    sha256 = "sha256-/tdAmu/BurCFB82i9pT2+PNOsPtHdlL/brUt4B9Q/EA=";
   };
 
-  vendorSha256 = "sha256-bsIPEjD/kCUvkRKP85CjW3JJf1Hyx9b2pMY9S4HlKrA=";
+  vendorSha256 = "sha256-KChEDFZj5zsZ/viOVWgC15WI8mp5cUC+SdNwkCjo6bI=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix
index 358803a3cf379..1afb2b7a5e1f3 100644
--- a/pkgs/applications/networking/cluster/fluxcd/default.nix
+++ b/pkgs/applications/networking/cluster/fluxcd/default.nix
@@ -1,9 +1,9 @@
 { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }:
 
 let
-  version = "0.31.1";
-  sha256 = "1dhs96r9yi37i5q9wqg7198f6kl59jlj3g1q76r0snqyl16g2jwf";
-  manifestsSha256 = "0wwlwai1hhz69kgaccw3w8ad6bwdd46pm4ns8nqm04927b0b2dqb";
+  version = "0.31.2";
+  sha256 = "1w373gwxxvnqsfm5r63r1bcmlrii5wy6yhbs5li0bw2anhnb0iir";
+  manifestsSha256 = "0lqfrry1kg52ikyhzgwg57zqzq24aspp2d7whyzir3dglvf999lb";
 
   manifests = fetchzip {
     url =
@@ -23,7 +23,7 @@ in buildGoModule rec {
     inherit sha256;
   };
 
-  vendorSha256 = "sha256-sPyz6ISFLe+6CJoAcG17KSfo63vuTj30IWw+S2NCszY=";
+  vendorSha256 = "sha256-Z7O/ReEZwmK5KKAHzi4B3d31ynA51XzbTKsrzCXAFPo=";
 
   postUnpack = ''
     cp -r ${manifests} source/cmd/flux/manifests
diff --git a/pkgs/applications/networking/cluster/fluxctl/default.nix b/pkgs/applications/networking/cluster/fluxctl/default.nix
index d1f06ce333bc5..dd9875929258c 100644
--- a/pkgs/applications/networking/cluster/fluxctl/default.nix
+++ b/pkgs/applications/networking/cluster/fluxctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "fluxctl";
-  version = "1.25.1";
+  version = "1.25.2";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = "flux";
     rev = version;
-    sha256 = "sha256-l/BPnqa0j0yAdrl9BxFUKt94JwiNyPq1gKYuhGj/c8w=";
+    sha256 = "sha256-OZLTT54InDPF+m5e4xtuAL311wCD16Ne/T0PbgiSaN4=";
   };
 
-  vendorSha256 = "sha256-PZriaKbgRKm7ssHOBmbzbma5LrRt0TsQiphSrtcT83k=";
+  vendorSha256 = "sha256-Q9THG76/B/gdfhf5wLxVXoAAzXeOjaaAyYaGKy9LeF0=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/fn-cli/default.nix b/pkgs/applications/networking/cluster/fn-cli/default.nix
index 22e596dabf263..c9895fccc9b72 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.17";
+  version = "0.6.20";
 
   src = fetchFromGitHub {
     owner = "fnproject";
     repo = "cli";
     rev = version;
-    sha256 = "sha256-u/YISLlZFYlAUejSlaH7POA2WwKURPN8phFU86/caXU=";
+    sha256 = "sha256-HeyWMzxSga6T2/BRVwrmgb3utjnVTJk3zhhcVfq8/Cc=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/helm-docs/default.nix b/pkgs/applications/networking/cluster/helm-docs/default.nix
index 1d3c9f43e906b..cdd6c68a76fba 100644
--- a/pkgs/applications/networking/cluster/helm-docs/default.nix
+++ b/pkgs/applications/networking/cluster/helm-docs/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "helm-docs";
-  version = "1.8.1";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "norwoodj";
     repo = "helm-docs";
     rev = "v${version}";
-    sha256 = "sha256-OpS/CYBb2Ll6ktvEhqkw/bWMSrFa4duidK3Glu8EnPw=";
+    sha256 = "sha256-V7Qw20PPoAEXl/XAMj/WSM73fLdp/gH4G3ipx49p06o=";
   };
 
   vendorSha256 = "sha256-FpmeOQ8nV+sEVu2+nY9o9aFbCpwSShQUFOmyzwEQ9Pw=";
diff --git a/pkgs/applications/networking/cluster/helm/chart-testing/default.nix b/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
index 127ee9c6895a6..85971b8dfb10c 100644
--- a/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
+++ b/pkgs/applications/networking/cluster/helm/chart-testing/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chart-testing";
-  version = "3.5.1";
+  version = "3.6.0";
 
   src = fetchFromGitHub {
     owner = "helm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LNCzz5me60R/moFfdJhGMgUToFxADiPL02G4QCv0DLg=";
+    sha256 = "sha256-WGoLj6IuhxARSB3vAnprW1UO2g142uKZVHI3ubJepRs=";
   };
 
-  vendorSha256 = "sha256-38ufXHzGlZgEh6swD/GhWbIYdY5uYznKCQ9OaoyOEiY=";
+  vendorSha256 = "sha256-gXW1NarCo42d/awg22wr6bIQQFRVTVnRUUAtQU8zY4M=";
 
   postPatch = ''
     substituteInPlace pkg/config/config.go \
diff --git a/pkgs/applications/networking/cluster/hubble/default.nix b/pkgs/applications/networking/cluster/hubble/default.nix
index f55bb880480a4..e6e5e6c1ce6cb 100644
--- a/pkgs/applications/networking/cluster/hubble/default.nix
+++ b/pkgs/applications/networking/cluster/hubble/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, lib, buildGoModule, fetchFromGitHub }:
+{ stdenv, lib, buildGoModule, fetchFromGitHub, installShellFiles }:
 
 buildGoModule rec {
   pname = "hubble";
-  version = "0.9.0";
+  version = "0.10.0";
 
   src = fetchFromGitHub {
     owner = "cilium";
@@ -13,11 +13,36 @@ buildGoModule rec {
 
   vendorSha256 = null;
 
+  ldflags = [
+    "-s" "-w"
+    "-X github.com/cilium/hubble/pkg.GitBranch=none"
+    "-X github.com/cilium/hubble/pkg.GitHash=none"
+    "-X github.com/cilium/hubble/pkg.Version=${version}"
+  ];
+
+  # Test fails at Test_getFlowsRequestWithInvalidRawFilters in github.com/cilium/hubble/cmd/observe
+  # https://github.com/NixOS/nixpkgs/issues/178976
+  # https://github.com/cilium/hubble/pull/656
+  # https://github.com/cilium/hubble/pull/655
+  doCheck = false;
+  doInstallCheck = true;
+  installCheckPhase = ''
+    $out/bin/hubble version | grep ${version} > /dev/null
+  '';
+
+  nativeBuildInputs = [ installShellFiles ];
+  postInstall = ''
+    installShellCompletion --cmd hubble \
+      --bash <($out/bin/hubble completion bash) \
+      --fish <($out/bin/hubble completion fish) \
+      --zsh <($out/bin/hubble completion zsh)
+  '';
+
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Network, Service & Security Observability for Kubernetes using eBPF";
     license = licenses.asl20;
     homepage = "https://github.com/cilium/hubble/";
-    maintainers = with maintainers; [ humancalico ];
+    maintainers = with maintainers; [ humancalico bryanasdev000 ];
   };
 }
diff --git a/pkgs/applications/networking/cluster/istioctl/default.nix b/pkgs/applications/networking/cluster/istioctl/default.nix
index 1f2e98593529f..051a3f9ae4cd9 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.13.3";
+  version = "1.14.1";
 
   src = fetchFromGitHub {
     owner = "istio";
     repo = "istio";
     rev = version;
-    sha256 = "sha256-XvV6OlGHW/eB0EUrmyTlFVbDjbxUpVo6WvrEnh6Q68I=";
+    sha256 = "sha256-Y8Bo2niIyvBE3BPpnSanFrR8ZHIUdG7iKSOyD6YadIM=";
   };
-  vendorSha256 = "sha256-Ex86yLMTqqiSkJns/eeodmGswAzPVQAQOf8Wqi7DRaE=";
+  vendorSha256 = "sha256-MnSOWJwTOQmHnABRYNJwU9kOr7g51rkUaERksupBTb4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/networking/cluster/k3s/default.nix b/pkgs/applications/networking/cluster/k3s/default.nix
index 3cceae804cff6..7629f05af39fa 100644
--- a/pkgs/applications/networking/cluster/k3s/default.nix
+++ b/pkgs/applications/networking/cluster/k3s/default.nix
@@ -46,10 +46,10 @@ with lib;
 # Those pieces of software we entirely ignore upstream's handling of, and just
 # make sure they're in the path if desired.
 let
-  k3sVersion = "1.23.6+k3s1";     # k3s git tag
-  k3sCommit = "418c3fa858b69b12b9cefbcff0526f666a6236b9"; # k3s git commit at the above version
-  k3sRepoSha256 = "0fmw491dn5mpi058mr7sij51i5m4qg2grx30cnl3h2v4s0sdkx2i";
-  k3sVendorSha256 = "sha256-iHg5ySMaiSWXs98YGmxPwdZr4zdBIFma12dNEuf30Hs=";
+  k3sVersion = "1.24.1+k3s1";     # k3s git tag
+  k3sCommit = "0581808f5c160b0c0cafec5b8f20430835f34f44"; # k3s git commit at the above version
+  k3sRepoSha256 = "0zh60nav50s0viiaqxdaajhywh28zqckjnpyazlk2fdb077dyi65";
+  k3sVendorSha256 = "sha256-7cJ728vV9GA4/MDUBsnrR12gGf3DXzka3czrdHjsNIM=";
 
   # taken from ./manifests/traefik.yaml, extracted from '.spec.chart' https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/download#L9
   # The 'patch' and 'minor' versions are currently hardcoded as single digits only, so ignore the trailing two digits. Weird, I know.
@@ -61,16 +61,16 @@ let
   k3sRootSha256 = "016n56vi09xkvjph7wgzb2m86mhd5x65fs4d11pmh20hl249r620";
 
   # taken from ./scripts/version.sh VERSION_CNIPLUGINS https://github.com/k3s-io/k3s/blob/v1.23.3%2Bk3s1/scripts/version.sh#L45
-  k3sCNIVersion = "1.0.1-k3s1";
-  k3sCNISha256 = "11ihlzzdnqf9p21y0a4ckpbxac016nm7746dcykhj26ym9zxyv92";
+  k3sCNIVersion = "1.1.1-k3s1";
+  k3sCNISha256 = "14mb3zsqibj1sn338gjmsyksbm0mxv9p016dij7zidccx2rzn6nl";
 
   # taken from go.mod, the 'github.com/containerd/containerd' line
   # run `grep github.com/containerd/containerd go.mod | head -n1 | awk '{print $4}'`
-  containerdVersion = "1.5.11-k3s2";
-  containerdSha256 = "16132snvrg8r0vwm6c0lz0q6fx686s2ix53nm3aka9a83xs75vf2";
+  containerdVersion = "1.5.13-k3s1";
+  containerdSha256 = "09bj4ghwbsj9whkv1d5icqs52k64m449j8b73dmak2wz62fbzbvp";
 
   # run `grep github.com/kubernetes-sigs/cri-tools go.mod | head -n1 | awk '{print $4}'` in the k3s repo at the tag
-  criCtlVersion = "1.22.0-k3s1";
+  criCtlVersion = "1.24.0-k3s1";
 
   baseMeta = {
     description = "A lightweight Kubernetes distribution";
@@ -323,7 +323,7 @@ buildGoModule rec {
 
   passthru.updateScript = ./update.sh;
 
-  passthru.tests = { inherit (nixosTests) k3s-single-node k3s-single-node-docker; };
+  passthru.tests = { inherit (nixosTests) k3s-single-node; };
 
   meta = baseMeta;
 }
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
index 69142045fee8f..25363e7789ed7 100644
--- a/pkgs/applications/networking/cluster/kn/default.nix
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "kn";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "knative";
     repo = "client";
     rev = "knative-v${version}";
-    sha256 = "sha256-Q67dictDE+HWw99lFAiidBvIL30mMAkjYb2CDLDcalw=";
+    sha256 = "sha256-etENW/zP9xy0pyUT2UoFXrzgkSXrfp8dxl35bD2t/Yc=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index 10b781a7dad41..5cbd307a3d73d 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -1,11 +1,11 @@
-{ stdenv
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
 , which
-, go
 , makeWrapper
 , rsync
 , installShellFiles
+, runtimeShell
 , kubectl
 , nixosTests
 
@@ -19,34 +19,38 @@
   ]
 }:
 
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubernetes";
-  version = "1.23.7";
+  version = "1.23.8";
 
   src = fetchFromGitHub {
     owner = "kubernetes";
     repo = "kubernetes";
     rev = "v${version}";
-    sha256 = "sha256-YHlcopB47HVLO/4QI8HxjMBzCpcHVnlAz3EOmZI+EG8=";
+    sha256 = "sha256-mu+jBSypoMNxOugLbS3foH4C4AqSZnlic4Bf1v9dYc8=";
   };
 
-  nativeBuildInputs = [ makeWrapper which go rsync installShellFiles ];
+  vendorSha256 = null;
+
+  doCheck = false;
+
+  nativeBuildInputs = [ makeWrapper which rsync installShellFiles ];
 
   outputs = [ "out" "man" "pause" ];
 
   patches = [ ./fixup-addonmanager-lib-path.patch ];
 
-  postPatch = ''
-    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${stdenv.shell}"
-    patchShebangs ./hack
-  '';
-
   WHAT = lib.concatStringsSep " " ([
     "cmd/kubeadm"
   ] ++ components);
 
-  postBuild = ''
+  buildPhase = ''
+    runHook preBuild
+    substituteInPlace "hack/update-generated-docs.sh" --replace "make" "make SHELL=${runtimeShell}"
+    patchShebangs ./hack ./cluster/addons/addon-manager
+    make "SHELL=${runtimeShell}" "WHAT=$WHAT"
     ./hack/update-generated-docs.sh
+    runHook postBuild
   '';
 
   installPhase = ''
@@ -69,7 +73,6 @@ stdenv.mkDerivation rec {
       --subst-var out
 
     chmod +x $out/bin/kube-addons
-    patchShebangs $out/bin/kube-addons
     wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
 
     cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
@@ -80,10 +83,6 @@ stdenv.mkDerivation rec {
     runHook postInstall
   '';
 
-  disallowedReferences = [ go ];
-
-  GOFLAGS = [ "-trimpath" ];
-
   meta = with lib; {
     description = "Production-Grade Container Scheduling and Management";
     license = licenses.asl20;
diff --git a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
index ae8db695b9fe0..754bca32511c1 100644
--- a/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/kubectl.nix
@@ -1,25 +1,28 @@
-{ lib, stdenv, kubernetes }:
+{ lib, buildGoModule, kubernetes }:
 
-stdenv.mkDerivation rec {
+buildGoModule rec {
   pname = "kubectl";
 
   inherit (kubernetes)
-    disallowedReferences
-    GOFLAGS
+    buildPhase
+    doCheck
     nativeBuildInputs
-    postBuild
-    postPatch
     src
+    vendorSha256
     version
     ;
 
-  outputs = [ "out" "man" ];
+  outputs = [ "out" "man" "convert" ];
 
-  WHAT = "cmd/kubectl";
+  WHAT = lib.concatStringsSep " " [
+    "cmd/kubectl"
+    "cmd/kubectl-convert"
+  ];
 
   installPhase = ''
     runHook preInstall
     install -D _output/local/go/bin/kubectl -t $out/bin
+    install -D _output/local/go/bin/kubectl-convert -t $convert/bin
 
     installManPage docs/man/man1/kubectl*
 
diff --git a/pkgs/applications/networking/cluster/lens/default.nix b/pkgs/applications/networking/cluster/lens/default.nix
index 151649ba22ee9..ef70e28328005 100644
--- a/pkgs/applications/networking/cluster/lens/default.nix
+++ b/pkgs/applications/networking/cluster/lens/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "lens";
-  version = "5.3.4";
-  build = "${version}-latest.20220120.1";
+  version = "5.5.3";
+  build = "${version}-latest.20220602.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://api.k8slens.dev/binaries/Lens-${build}.x86_64.AppImage";
-    sha256 = "sha256-9vRLQFSocVkHAfgwdKSPhSAO4G/v/ANd0WQmilcZiVw=";
+    sha256 = "sha256-lwiwyXoO+7KgDnQ2Ly0QK0oEVHR73nsMZMGOd2j48dg=";
     name = "${pname}.AppImage";
   };
 
diff --git a/pkgs/applications/networking/cluster/linkerd/default.nix b/pkgs/applications/networking/cluster/linkerd/default.nix
index f0c9ada6ca80b..fed35f12bedc9 100644
--- a/pkgs/applications/networking/cluster/linkerd/default.nix
+++ b/pkgs/applications/networking/cluster/linkerd/default.nix
@@ -2,7 +2,7 @@
 
 (callPackage ./generic.nix { }) {
   channel = "stable";
-  version = "2.11.1";
-  sha256 = "09zwxcaqn537ls737js7rcsqarapw5k25gv41d844k73yvxm882c";
-  vendorSha256 = "sha256-RayboJdjkmCiUsUBab9ntIH+koOCgp3gmVqXZEUWK88=";
+  version = "2.11.2";
+  sha256 = "sha256-6FlOHnOmqZ2jqx9qFMPA5jkxBaNqzeCwsepwXR1Imss=";
+  vendorSha256 = "sha256-wM5qIjabg9ICJcLi8QV9P4G4E7Rn3ctVCqdm2GO8RyU=";
 }
diff --git a/pkgs/applications/networking/cluster/linkerd/edge.nix b/pkgs/applications/networking/cluster/linkerd/edge.nix
index 74b5578d02391..4d3c30e333755 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 = "22.2.4";
-  sha256 = "1s53zlb7f0xp2vqa5fnsjdhjq203bsksrmdbrxkkm1yi3nc3p369";
-  vendorSha256 = "sha256-cN19kKa4Ieweta95/4bKlAYn/Bq8j27H408za3OoJoI=";
+  version = "22.6.1";
+  sha256 = "sha256-YM6d2bWcjoNMEbgXVR79tcklTRqAhzm6SzJU2k+7BNU=";
+  vendorSha256 = "sha256-i+AbrzN9d9CGZcGj/D4xnYlamp0iOlq2xcax14/GqEE=";
 }
diff --git a/pkgs/applications/networking/cluster/nomad/1.2.nix b/pkgs/applications/networking/cluster/nomad/1.2.nix
index c888581ae4d85..5df87528448c4 100644
--- a/pkgs/applications/networking/cluster/nomad/1.2.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.2.nix
@@ -1,11 +1,9 @@
 { callPackage
 , buildGoModule
-, nvidia_x11
-, nvidiaGpuSupport
 }:
 
 callPackage ./generic.nix {
-  inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
+  inherit buildGoModule;
   version = "1.2.8";
   sha256 = "11yn8g9wsdb35q97wn5vy93kgbn5462k0a33wxlfdz14i5h00yj8";
   vendorSha256 = "06wyfnlm37qjvd1pwzygflfpcp9p52f61wgi6pb9l7hnqy2ph6j5";
diff --git a/pkgs/applications/networking/cluster/nomad/1.3.nix b/pkgs/applications/networking/cluster/nomad/1.3.nix
index 6670b35f67e01..0145a5b109050 100644
--- a/pkgs/applications/networking/cluster/nomad/1.3.nix
+++ b/pkgs/applications/networking/cluster/nomad/1.3.nix
@@ -1,11 +1,9 @@
 { callPackage
 , buildGoModule
-, nvidia_x11
-, nvidiaGpuSupport
 }:
 
 callPackage ./generic.nix {
-  inherit buildGoModule nvidia_x11 nvidiaGpuSupport;
+  inherit buildGoModule;
   version = "1.3.1";
   sha256 = "03ckhqh5xznvhbk380ka0g9w9hrvsi389h5maw68f3g3acx68jm7";
   vendorSha256 = "08k5dxaq4r2q0km6y9mc14haski6l7hmhmzn5wjb961hwf5hkfgh";
diff --git a/pkgs/applications/networking/cluster/nomad/generic.nix b/pkgs/applications/networking/cluster/nomad/generic.nix
index 180cf48e3fb19..c5d92eaf1f7ea 100644
--- a/pkgs/applications/networking/cluster/nomad/generic.nix
+++ b/pkgs/applications/networking/cluster/nomad/generic.nix
@@ -4,9 +4,6 @@
 , version
 , sha256
 , vendorSha256
-, nvidiaGpuSupport
-, patchelf
-, nvidia_x11
 , nixosTests
 }:
 
@@ -25,22 +22,10 @@ buildGoModule rec {
 
   inherit vendorSha256;
 
-  nativeBuildInputs = lib.optionals nvidiaGpuSupport [
-    patchelf
-  ];
-
   # ui:
   #  Nomad release commits include the compiled version of the UI, but the file
   #  is only included if we build with the ui tag.
-  tags = [ "ui" ] ++ lib.optional (!nvidiaGpuSupport) "nonvidia";
-
-  # The dependency on NVML isn't explicit. We have to make it so otherwise the
-  # binary will not know where to look for the relevant symbols.
-  postFixup = lib.optionalString nvidiaGpuSupport ''
-    for bin in $out/bin/*; do
-      patchelf --add-needed "${nvidia_x11}/lib/libnvidia-ml.so" "$bin"
-    done
-  '';
+  tags = [ "ui" ];
 
   passthru.tests.nomad = nixosTests.nomad;
 
diff --git a/pkgs/applications/networking/cluster/ocm/default.nix b/pkgs/applications/networking/cluster/ocm/default.nix
index 73a5d964f34bb..a63979d5a8bd0 100644
--- a/pkgs/applications/networking/cluster/ocm/default.nix
+++ b/pkgs/applications/networking/cluster/ocm/default.nix
@@ -1,23 +1,29 @@
-{ lib, buildGoModule, fetchFromGitHub, testers, ocm }:
+{ lib, buildGoModule, fetchFromGitHub, stdenv, testers, ocm }:
 
 buildGoModule rec {
   pname = "ocm";
-  version = "0.1.62";
+  version = "0.1.63";
 
   src = fetchFromGitHub {
     owner = "openshift-online";
     repo = "ocm-cli";
     rev = "v${version}";
-    sha256 = "0kv0zcx6wdlyid37ygzg05xyyk77ybd2qcdgbswjv6crcjh1xdrd";
+    sha256 = "sha256-wBKW2WS1+JmWOFCArmrlVfUTEqFYF7aq1OBrUo7e4ac=";
   };
 
-  vendorSha256 = "sha256-nXUrbF9mcHy8G7c+ktQixBmmf6x066gpuaZ0eUsJQwc=";
+  vendorSha256 = "sha256-LyQ/F+E0y1gQtpGSyPEB2z2ImorA7mjY3QjrRORakIo=";
+
+  # Strip the final binary.
+  ldflags = [ "-s" "-w" ];
 
   # Tests expect the binary to be located in the root directory.
   preCheck = ''
     ln -s $GOPATH/bin/ocm ocm
   '';
 
+  # Tests fail in Darwin sandbox.
+  doCheck = !stdenv.isDarwin;
+
   passthru.tests.version = testers.testVersion {
     package = ocm;
     command = "ocm version";
diff --git a/pkgs/applications/networking/cluster/octant/default.nix b/pkgs/applications/networking/cluster/octant/default.nix
index 70c255790790d..733e4c04a9cca 100644
--- a/pkgs/applications/networking/cluster/octant/default.nix
+++ b/pkgs/applications/networking/cluster/octant/default.nix
@@ -59,6 +59,7 @@ stdenv.mkDerivation rec {
       introspective tooling, cluster navigation, and object management along
       with a plugin system to further extend its capabilities.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
     platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/cluster/pgo-client/default.nix b/pkgs/applications/networking/cluster/pgo-client/default.nix
index fc7110a89ae81..0ea3a13688a33 100644
--- a/pkgs/applications/networking/cluster/pgo-client/default.nix
+++ b/pkgs/applications/networking/cluster/pgo-client/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "pgo-client";
-  version = "4.7.4";
+  version = "4.7.5";
 
   src = fetchFromGitHub {
     owner = "CrunchyData";
     repo = "postgres-operator";
     rev = "v${version}";
-    sha256 = "sha256-8L3eFMATCGIM6xxUM7mi/D3njHMFk7cgPLJotilAS5k=";
+    sha256 = "sha256-1GYpvw3ch03Cx4BReNwLnbgbds4uuSe/cjvbHuRhLOw=";
   };
 
-  vendorSha256 = "sha256-4Vz7Lioj6iLU7dbz/B2BSAgfaCl2MyC8MM9yiyWLi2o=";
+  vendorSha256 = "sha256-5/mLlgNdlX/ABrpofPqowCskxFwJAEKVpbsMOvMvTWc=";
 
   subPackages = [ "cmd/pgo" ];
 
diff --git a/pkgs/applications/networking/cluster/rancher/default.nix b/pkgs/applications/networking/cluster/rancher/default.nix
index 3ee09b14ce960..d0a506f88475a 100644
--- a/pkgs/applications/networking/cluster/rancher/default.nix
+++ b/pkgs/applications/networking/cluster/rancher/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "rancher";
-  version = "2.6.4";
+  version = "2.6.5";
 
   src = fetchFromGitHub {
     owner  = "rancher";
     repo   = "cli";
     rev    = "v${version}";
-    sha256 = "sha256-5ceyScsCidJpHGfwhsq7/hDd3CClx29cD5Cdc1PSxTU=";
+    sha256 = "sha256-/HI3qcpgNJTurPFEZFlg+H0ndowSgEF6cHp1cuaJjR8=";
   };
 
   ldflags = [
diff --git a/pkgs/applications/networking/cluster/roxctl/default.nix b/pkgs/applications/networking/cluster/roxctl/default.nix
index 9014ce5202572..f022fc90b5408 100644
--- a/pkgs/applications/networking/cluster/roxctl/default.nix
+++ b/pkgs/applications/networking/cluster/roxctl/default.nix
@@ -1,14 +1,14 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testVersion, roxctl }:
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles, testers, roxctl }:
 
 buildGoModule rec {
   pname = "roxctl";
-  version = "3.70.0";
+  version = "3.70.1";
 
   src = fetchFromGitHub {
     owner = "stackrox";
     repo = "stackrox";
     rev = version;
-    sha256 = "sha256-VnnMD2tRixCswO/9nrP3PgXmev6O8QUTbkwmFIpPUyE=";
+    sha256 = "sha256-T06VldyPBIpYWs8+N4OWmaCwXCcb37F7lLD4jHcm1uc=";
   };
 
   vendorSha256 = "sha256-xh2bgLSWjQHOjHrgDpQri78LvCL4CDbMteQYARyGLgg=";
@@ -30,7 +30,7 @@ buildGoModule rec {
       --zsh <($out/bin/roxctl completion zsh)
   '';
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = roxctl;
     command = "roxctl version";
   };
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 1fd71cb8e9914..7350a8bd460b4 100644
--- a/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-session-manager-plugin/default.nix
@@ -1,13 +1,13 @@
 { stdenv, lib, fetchurl, autoPatchelfHook, dpkg, awscli, unzip }:
 let
-  ver = "1.2.312.0";
+  ver = "1.2.331.0";
   source =
     if stdenv.isDarwin then {
       url = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/mac/sessionmanager-bundle.zip";
-      sha256 = "50aac34a4dedddf20c20be24989ee5d33b46a72187791715fb9b395b54db8ef9";
+      sha256 = "0gr6frdn9jvxnkymkcpvgkqw4z2sac9jdf5qj4hzakq1zkfviazf";
     } else {
       url = "https://s3.amazonaws.com/session-manager-downloads/plugin/${ver}/ubuntu_64bit/session-manager-plugin.deb";
-      sha256 = "2e51ce5bf8f23a1e590fff866bbdadcf82aa03c5054c671d9115482a1b263cc7";
+      sha256 = "sha256-xWnY89dslkGhRTh9llRFkuUqYIjHQNt+TLnkPQr3u1Q=";
     };
   archivePath = if stdenv.isDarwin then "sessionmanager-bundle" else "usr/local/sessionmanagerplugin";
 in
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
       "https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html";
     description = "Amazon SSM Session Manager Plugin";
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mbaillie ];
   };
diff --git a/pkgs/applications/networking/cluster/talosctl/default.nix b/pkgs/applications/networking/cluster/talosctl/default.nix
index da240b337bfc2..42d451bd44db4 100644
--- a/pkgs/applications/networking/cluster/talosctl/default.nix
+++ b/pkgs/applications/networking/cluster/talosctl/default.nix
@@ -1,42 +1,21 @@
-{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
-let
-  # look for GO_LDFLAGS getting set in the Makefile
-  version = "1.0.6";
-  sha256 = "sha256-4cUaQWqVndp06eFgqInOMMGITbTdZO5BOqXW2XEpuWU=";
-  vendorSha256 = "sha256-7q35d+jbIDe7fAy6nL5FWdSovBb/f64HYLHGL+zE6bI=";
-  pkgsVersion = "v1.0.0-25-gcf9709e";
-  extrasVersion = "v1.0.0-4-g05b0920";
-in
+{ lib, stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
+
 buildGoModule rec {
   pname = "talosctl";
-  inherit version vendorSha256;
-  # nixpkgs-update: no auto update
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "siderolabs";
     repo = "talos";
     rev = "v${version}";
-    inherit sha256;
+    sha256 = "sha256-52WzQ5LWgIX/XBJPNvWV0tAPnw1AiINDL/7D3UYvvn4=";
   };
 
-  ldflags =
-    let
-      versionPkg = "github.com/talos-systems/talos/pkg/version"; # VERSION_PKG
-      imagesPkgs = "github.com/talos-systems/talos/pkg/images"; # IMAGES_PKGS
-      mgmtHelpersPkg = "github.com/talos-systems/talos/cmd/talosctl/pkg/mgmt/helpers"; #MGMT_HELPERS_PKG
-    in
-    [
-      "-X ${versionPkg}.Name=Client"
-      "-X ${versionPkg}.SHA=${src.rev}" # should be the hash, but as we build from tags, this needs to do
-      "-X ${versionPkg}.Tag=${src.rev}"
-      "-X ${versionPkg}.PkgsVersion=${pkgsVersion}" # PKGS
-      "-X ${versionPkg}.ExtrasVersion=${extrasVersion}" # EXTRAS
-      "-X ${imagesPkgs}.Username=siderolabs" # USERNAME
-      "-X ${imagesPkgs}.Registry=ghcr.io" # REGISTRY
-      "-X ${mgmtHelpersPkg}.ArtifactsPath=_out" # ARTIFACTS
-      "-s"
-      "-w"
-    ];
+  vendorSha256 = "sha256-iluI4UGw5cZ70wmC9jDiGttvxZ7xFyqcL9IZX4ubJqs=";
+
+  ldflags = [ "-s" "-w" ];
+
+  GOWORK = "off";
 
   subPackages = [ "cmd/talosctl" ];
 
@@ -56,5 +35,8 @@ buildGoModule rec {
     homepage = "https://www.talos.dev/";
     license = licenses.mpl20;
     maintainers = with maintainers; [ flokli ];
+    # requires >= 10.14 SDK https://github.com/NixOS/nixpkgs/issues/101229
+    # Undefined symbols for architecture x86_64: "_SecTrustEvaluateWithError"
+    broken = stdenv.isDarwin && stdenv.isx86_64;
   };
 }
diff --git a/pkgs/applications/networking/cluster/tanka/default.nix b/pkgs/applications/networking/cluster/tanka/default.nix
index 0c9776f9f7920..c9a5d7c60cee7 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.20.0";
+  version = "0.22.1";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Wtfn9ffUNKuwByRbeCYq27xvr2DuzxSSQMH9Sv5a7rU=";
+    sha256 = "sha256-MMQv3/Ft6/FUueGEXGqYWAYy4zc2R6LASbh2x7eJNdQ=";
   };
 
-  vendorSha256 = "sha256-ed6rC+wrZHDViGfJrSBl5VUqX/o6RKytXbTKqxb3ZtU=";
+  vendorSha256 = "sha256-QwtcWzJbusa8BxtG5xmGUgqG0qCMSpkzbmes/x3lnWc=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/networking/cluster/temporal-cli/default.nix b/pkgs/applications/networking/cluster/temporal-cli/default.nix
index 49d64283ca0f0..0d326d5ad458a 100644
--- a/pkgs/applications/networking/cluster/temporal-cli/default.nix
+++ b/pkgs/applications/networking/cluster/temporal-cli/default.nix
@@ -1,26 +1,17 @@
-{ lib, fetchFromGitHub, fetchpatch, buildGoModule, testers, temporal-cli }:
+{ lib, fetchFromGitHub, buildGoModule, testers, temporal-cli }:
 
 buildGoModule rec {
   pname = "temporal-cli";
-  version = "1.16.1";
+  version = "1.16.2";
 
   src = fetchFromGitHub {
     owner = "temporalio";
     repo = "tctl";
     rev = "v${version}";
-    sha256 = "sha256-WNdu/62/VmxTmzAvzx3zIlcAAlEmpN0yKzQOSUtrL8s=";
+    sha256 = "sha256-KLcCFQJlFeioIhqrbkhgoNPcbAYvy1ESG8x9Y/I7+nw=";
   };
 
-  patches = [
-    # Fix tests
-    (fetchpatch {
-      name = "fix-tests.patch";
-      url = "https://github.com/temporalio/tctl/pull/203/commits/2b113da137a3a925e8fbd7c18bdaaefc31397db4.patch";
-      sha256 = "sha256-HFPwbmLZ2uPHzaHvYoB4MTZvMVyzvUKggA76/bh50DQ=";
-    })
-  ];
-
-  vendorSha256 = "sha256-WF3T+HNisfR0JoKkHCC77kmHmsGZ9NfQ7UCwOmpCG/o=";
+  vendorSha256 = "sha256-kczmoP32/V0HHeC3Mr+giuMB+McVTNeC2F+t1ohY4/U=";
 
   ldflags = [ "-s" "-w" ];
 
diff --git a/pkgs/applications/networking/cluster/terraform-providers/default.nix b/pkgs/applications/networking/cluster/terraform-providers/default.nix
index 5e3eb4dfe195d..3bcd6aeca63e5 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/default.nix
+++ b/pkgs/applications/networking/cluster/terraform-providers/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , buildGo118Module
 , fetchFromGitHub
@@ -58,12 +59,20 @@ let
   # These are the providers that don't fall in line with the default model
   special-providers =
     {
-      # Packages that don't fit the default model
-
       brightbox = automated-providers.brightbox.override { mkProviderGoModule = buildGo118Module; };
+      # remove with >= 1.6.0
+      # https://github.com/equinix/terraform-provider-equinix/commit/5b4d6415d23dc2ee56988c4b1458fbb51c8cc750
+      equinix = automated-providers.equinix.overrideAttrs (a: {
+        src = a.src.overrideAttrs (a: {
+          postFetch = (a.postFetch or "") + lib.optionalString (!stdenv.isDarwin) ''
+            rm $out/cmd/migration-tool/README.md
+          '';
+        });
+      });
       # mkisofs needed to create ISOs holding cloud-init data,
       # and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
       libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
+      linode = automated-providers.linode.override { mkProviderGoModule = buildGo118Module; };
     };
 
   # Put all the providers we not longer support in this list.
@@ -73,6 +82,7 @@ let
       removed = name: date: throw "the ${name} terraform provider removed from nixpkgs on ${date}";
     in
     lib.optionalAttrs config.allowAliases {
+      b2 = removed "b2" "2022/06";
       opc = archived "opc" "2022/05";
       oraclepaas = archived "oraclepaas" "2022/05";
       template = archived "template" "2022/05";
diff --git a/pkgs/applications/networking/cluster/terraform-providers/providers.json b/pkgs/applications/networking/cluster/terraform-providers/providers.json
index d298f42829cee..6c8a328591e10 100644
--- a/pkgs/applications/networking/cluster/terraform-providers/providers.json
+++ b/pkgs/applications/networking/cluster/terraform-providers/providers.json
@@ -3,10 +3,10 @@
     "owner": "CiscoDevNet",
     "provider-source-address": "registry.terraform.io/CiscoDevNet/aci",
     "repo": "terraform-provider-aci",
-    "rev": "v2.2.1",
-    "sha256": "sha256-WYKlkvGmTeaI4+7uWLy6/y+NtFb9n3Lu9lrwSR8Vg/0=",
+    "rev": "v2.3.0",
+    "sha256": "sha256-V4LvMVWuKsGMVo/P8r79ICy3SrsVmCOMl75yRIixqAQ=",
     "vendorSha256": null,
-    "version": "2.2.1"
+    "version": "2.3.0"
   },
   "acme": {
     "owner": "vancluever",
@@ -30,10 +30,10 @@
     "owner": "aiven",
     "provider-source-address": "registry.terraform.io/aiven/aiven",
     "repo": "terraform-provider-aiven",
-    "rev": "v3.0.0",
-    "sha256": "sha256-k3F6AUcGAddDD3Wy1THgTlcNzDBB403Vy+6c+avi+vQ=",
-    "vendorSha256": "sha256-gVZpN7Hwi+PbJDgEHSJRYq0tC1GVcetfPBY5pGhMPAc=",
-    "version": "3.0.0"
+    "rev": "v3.2.0",
+    "sha256": "sha256-kKKln180j3b1AkuXdjSwboa3T5nLQeZtbOn6jB7i4nw=",
+    "vendorSha256": "sha256-k6pKet1YdQYCyFICw67nKI3RGNZ4b+zA+T9jpa2ZLFM=",
+    "version": "3.2.0"
   },
   "akamai": {
     "owner": "akamai",
@@ -49,10 +49,10 @@
     "owner": "aliyun",
     "provider-source-address": "registry.terraform.io/aliyun/alicloud",
     "repo": "terraform-provider-alicloud",
-    "rev": "v1.170.0",
-    "sha256": "sha256-qONJK3/Vr+v6sVphyDLBJDdbeuLUxdZSImvntvQ4Fbc=",
-    "vendorSha256": "sha256-RbhpyldFMQYb/bsGtnFLHxHGgIcPPSTJlEzuQySfxEA=",
-    "version": "1.170.0"
+    "rev": "v1.173.0",
+    "sha256": "sha256-jLjliUWCpxoawwCl61qHXNzareuF7qCkjSdeQgj6IsE=",
+    "vendorSha256": "sha256-6FiVXy/q3WImYDbwvj9e3ns9gilaL6GBW5qCpaUNCW0=",
+    "version": "1.173.0"
   },
   "ansible": {
     "owner": "nbering",
@@ -76,10 +76,10 @@
     "owner": "auth0",
     "provider-source-address": "registry.terraform.io/auth0/auth0",
     "repo": "terraform-provider-auth0",
-    "rev": "v0.30.3",
-    "sha256": "sha256-mtf5gsY7ZVkok6zUTRFgdlRRUnTSeej36aAABfo7NyA=",
-    "vendorSha256": "sha256-ZN7P9PD8MqThtc6x/Lm4Yeb7ciPVWpFP4zDo0gQHYTo=",
-    "version": "0.30.3"
+    "rev": "v0.31.0",
+    "sha256": "sha256-Huv+eL/5RiI2A1X8RLU9LbIWMjb5yuuslV4CaP/kFiQ=",
+    "vendorSha256": "sha256-kTR8kSirqhY1GdKLzeFIPt6QNJ4wq2ESUT5ShQUhvRI=",
+    "version": "0.31.0"
   },
   "avi": {
     "owner": "vmware",
@@ -103,28 +103,28 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/aws",
     "repo": "terraform-provider-aws",
-    "rev": "v4.18.0",
-    "sha256": "sha256-hiC0SwLQk2DaVOTs3ZV+VngN0QFcN/oJPkvdMbQzzlg=",
-    "vendorSha256": "sha256-ZTUPO867RuX9s33X3qsetRXQ8C1bfHFE1UYQIkK2KRo=",
-    "version": "4.18.0"
+    "rev": "v4.20.1",
+    "sha256": "sha256-k6JcwtTUfmZrfiFfacEPTXdtCbnjBrivNQp1dDzXFfM=",
+    "vendorSha256": "sha256-pKCIL1GD+oA+DVx24Xr07dFnhUcxT/TdASx0sCPWWIQ=",
+    "version": "4.20.1"
   },
   "azuread": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azuread",
     "repo": "terraform-provider-azuread",
-    "rev": "v2.23.0",
-    "sha256": "sha256-qHlC5BQnO8MusjTkbMcNp1yqm//nR4lL3BgsG584q38=",
+    "rev": "v2.25.0",
+    "sha256": "sha256-+9h9rdbnqIul+V/fhrsNEq/cX24i05i2LBqIk6g9mRE=",
     "vendorSha256": null,
-    "version": "2.23.0"
+    "version": "2.25.0"
   },
   "azurerm": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/azurerm",
     "repo": "terraform-provider-azurerm",
-    "rev": "v3.10.0",
-    "sha256": "sha256-2xRSHKHC8ypleatXt6cYtZtDMxCSlcDh5lfNmyBb3/4=",
+    "rev": "v3.11.0",
+    "sha256": "sha256-81Z+z9h1X8OPkLSZlVwQqhy2gkdYc0DfXs5k8W7wO+k=",
     "vendorSha256": null,
-    "version": "3.10.0"
+    "version": "3.11.0"
   },
   "azurestack": {
     "owner": "hashicorp",
@@ -135,15 +135,6 @@
     "vendorSha256": null,
     "version": "0.10.0"
   },
-  "b2": {
-    "owner": "Backblaze",
-    "provider-source-address": "registry.terraform.io/Backblaze/b2",
-    "repo": "terraform-provider-b2",
-    "rev": "v0.8.0",
-    "sha256": "sha256-2yyAKrDO7X5yujfrHhYuvXbuKk3yY1sCXRZ8U/9OnrM=",
-    "vendorSha256": "sha256-f5bvk0p7AU1i/xeapxyVRXIUARju6mNQokejaDnT/GI=",
-    "version": "0.8.0"
-  },
   "baiducloud": {
     "deleteVendor": true,
     "owner": "baidubce",
@@ -167,10 +158,10 @@
     "owner": "DrFaust92",
     "provider-source-address": "registry.terraform.io/DrFaust92/bitbucket",
     "repo": "terraform-provider-bitbucket",
-    "rev": "v2.17.0",
-    "sha256": "sha256-nzwfhwiszzhoobq2PlgtKfCch46fLoBVbembzdnkrD4=",
-    "vendorSha256": "sha256-LLhnF0/tj44vN36yss1JzNvDYy64Iuk5WVRhehf0wkk=",
-    "version": "2.17.0"
+    "rev": "v2.20.0",
+    "sha256": "sha256-8GWxUb7ABulZ6jK9PATYfSbcyTCZ5Mqv3X3zjY3gquU=",
+    "vendorSha256": "sha256-h/hm5HtY3OCJ6Mtq+A3PBmH10xgYpKwjhwbDd1HtdoQ=",
+    "version": "2.20.0"
   },
   "brightbox": {
     "owner": "brightbox",
@@ -194,20 +185,20 @@
     "owner": "checkly",
     "provider-source-address": "registry.terraform.io/checkly/checkly",
     "repo": "terraform-provider-checkly",
-    "rev": "v1.4.3",
-    "sha256": "sha256-5VF1cAFgdm2TR4wvuNlycpgQuVdHesFYnTv34MeauxY=",
-    "vendorSha256": "sha256-7X2cS5Erf373zu8xqe2KBSz52ZmZOnAlNC8lq2/LXV4=",
-    "version": "1.4.3"
+    "rev": "v1.6.0",
+    "sha256": "sha256-zmA6fVpXW4HOJaZzmv5K6cbmO2vM3yGWsa9TSYY4obY=",
+    "vendorSha256": "sha256-VnYRDBneQ+bUzISJM9DJdBEBmjA1WOXPo+kaYBW4w4U=",
+    "version": "1.6.0"
   },
   "checkpoint": {
     "deleteVendor": true,
     "owner": "CheckPointSW",
     "provider-source-address": "registry.terraform.io/CheckPointSW/checkpoint",
     "repo": "terraform-provider-checkpoint",
-    "rev": "v1.8.0",
-    "sha256": "sha256-+lcJr7C7FsvSzkfFwEfTrJedx6vMvOrTjNA+JTWBI4c=",
-    "vendorSha256": "sha256-mHLrrt6UJNfqtgjhWYDTvJcDtToHI34uoa0oyb9/XXk=",
-    "version": "1.8.0"
+    "rev": "v2.0.0",
+    "sha256": "sha256-z/mB20gQmglr0usVrzhqxR3v9vhoRHXNJ57j8fqNREM=",
+    "vendorSha256": "sha256-rb/X9C8eS9QH88FwuvfvDkGdrjZOTiI9nmcYqydOhdc=",
+    "version": "2.0.0"
   },
   "ciscoasa": {
     "owner": "CiscoDevNet",
@@ -231,10 +222,10 @@
     "owner": "cloudflare",
     "provider-source-address": "registry.terraform.io/cloudflare/cloudflare",
     "repo": "terraform-provider-cloudflare",
-    "rev": "v3.16.0",
-    "sha256": "sha256-9MLk+M/M3U6hpAoaV6BUUZRSnTd9083nqI5tPATePw0=",
-    "vendorSha256": "sha256-Q9Gcq5xczrREMtFArpRpINZ4/N5pu4GdZwD4gGYTUVE=",
-    "version": "3.16.0"
+    "rev": "v3.17.0",
+    "sha256": "sha256-DggessI7mQgfO/s++2LQfTwodqWIps6gqUFSutle/UY=",
+    "vendorSha256": "sha256-2rlhl/VqvXPJxknizd28N3A+vYFXWajFLjCLH0RdnEQ=",
+    "version": "3.17.0"
   },
   "cloudfoundry": {
     "owner": "cloudfoundry-community",
@@ -313,10 +304,10 @@
     "owner": "digitalocean",
     "provider-source-address": "registry.terraform.io/digitalocean/digitalocean",
     "repo": "terraform-provider-digitalocean",
-    "rev": "v2.20.0",
-    "sha256": "sha256-1RgQgxGORVvXovx4Ovm5SUsGgMD7CJjgHsgzw+bO8U4=",
+    "rev": "v2.21.0",
+    "sha256": "sha256-ei3nr3SAxQBXQikzPtRs9Y6VyOavTg9GXnLVfAI7QvU=",
     "vendorSha256": null,
-    "version": "2.20.0"
+    "version": "2.21.0"
   },
   "dme": {
     "owner": "DNSMadeEasy",
@@ -340,28 +331,28 @@
     "owner": "dnsimple",
     "provider-source-address": "registry.terraform.io/dnsimple/dnsimple",
     "repo": "terraform-provider-dnsimple",
-    "rev": "v0.11.3",
-    "sha256": "sha256-fUs54xIecPgeQucuQmlpF2iHGonx4OsqFbhkMnO7d0c=",
-    "vendorSha256": "sha256-csooFX64RmwVV+gIejQS3HJljsRAp+bM8x/OoiF7jxs=",
-    "version": "0.11.3"
+    "rev": "v0.13.0",
+    "sha256": "sha256-Wt/2L4NHaQv5tV2JIjcRMH/mLyfbIk88PFYYmeVNlSQ=",
+    "vendorSha256": "sha256-emwD+bOkkZhh1BOQlW0dfdeD4Y68cULhC+3S7Xrjas4=",
+    "version": "0.13.0"
   },
   "docker": {
     "owner": "kreuzwerker",
     "provider-source-address": "registry.terraform.io/kreuzwerker/docker",
     "repo": "terraform-provider-docker",
-    "rev": "v2.16.0",
-    "sha256": "sha256-VXKIj7bvhnDMR+DE+5WmJ5SlMDiZIiB+++wbnag6Ai4=",
-    "vendorSha256": "sha256-9QKHd9rarChp3NN8dY37ldE95OO4pWh5F4Yx5/Ssbno=",
-    "version": "2.16.0"
+    "rev": "v2.17.0",
+    "sha256": "sha256-V+FuDhgih/hTpyuT13INY5vWIaNS/7Z8RlK15mR+CnE=",
+    "vendorSha256": "sha256-nTulwft8xfpE83ZLJvG7xllQJIqd2M0zzbqpfD3/Mno=",
+    "version": "2.17.0"
   },
   "dome9": {
     "owner": "dome9",
     "provider-source-address": "registry.terraform.io/dome9/dome9",
     "repo": "terraform-provider-dome9",
-    "rev": "v1.25.4",
-    "sha256": "sha256-s/wglGsk/Lm45PWmqNHiVjj6sfQzXue+GnjEALp5yDc=",
+    "rev": "v1.27.1",
+    "sha256": "sha256-VmobLWMjHH+GzxUk0bnIr4dWkuH8D00U7VrN9eApF5c=",
     "vendorSha256": null,
-    "version": "1.25.4"
+    "version": "1.27.1"
   },
   "elasticsearch": {
     "owner": "phillbaker",
@@ -372,14 +363,23 @@
     "vendorSha256": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw=",
     "version": "2.0.2"
   },
+  "equinix": {
+    "owner": "equinix",
+    "provider-source-address": "registry.terraform.io/equinix/equinix",
+    "repo": "terraform-provider-equinix",
+    "rev": "v1.5.0",
+    "sha256": "sha256-+NrEP5x9/ymNb2qSdMyHNu7rjUtYxDT5Nv70vMxfTJw=",
+    "vendorSha256": "sha256-5MSZ4Mw6P5cI+COOq5SLTXqaVTr+zOix+w983rgcS+g=",
+    "version": "1.5.0"
+  },
   "exoscale": {
     "owner": "exoscale",
     "provider-source-address": "registry.terraform.io/exoscale/exoscale",
     "repo": "terraform-provider-exoscale",
-    "rev": "v0.37.0",
-    "sha256": "sha256-Rx6T5tb5tZnUsmAOBTFryLFC/Pl06jOgHfFu0kIF7Hk=",
+    "rev": "v0.38.0",
+    "sha256": "sha256-TVJlfce5bF5Z64FOPKqb0ac+NtjzeHsid+Q7vWIINuk=",
     "vendorSha256": null,
-    "version": "0.37.0"
+    "version": "0.38.0"
   },
   "external": {
     "owner": "hashicorp",
@@ -403,10 +403,10 @@
     "owner": "FlexibleEngineCloud",
     "provider-source-address": "registry.terraform.io/FlexibleEngineCloud/flexibleengine",
     "repo": "terraform-provider-flexibleengine",
-    "rev": "v1.29.0",
-    "sha256": "sha256-HPcJRLP20fDt3qr2edkol2jXSsWLotJkx13ZV7n7w8g=",
-    "vendorSha256": "sha256-De4NRWTdE4QutQkB0m0YlJg6LNysxi4bSSIxYY6lRP0=",
-    "version": "1.29.0"
+    "rev": "v1.30.0",
+    "sha256": "sha256-pkuoE0nX07chW4YMCHFAfLlw5qPRhuqv2S9WtFiL4pI=",
+    "vendorSha256": "sha256-bhufd2koz9pNHrWCBWngylqdJFD0poqvWy68GlWvDNc=",
+    "version": "1.30.0"
   },
   "fortios": {
     "owner": "fortinetdev",
@@ -449,20 +449,20 @@
     "provider-source-address": "registry.terraform.io/hashicorp/google",
     "proxyVendor": true,
     "repo": "terraform-provider-google",
-    "rev": "v4.24.0",
-    "sha256": "sha256-3FnzaT8dROoSZX+JYFLu32UK6PQ272BYXkp1f9C7Z9I=",
-    "vendorSha256": "sha256-X75Ge7QQy5R3j6nXNMduAPPZlF+koJe6zI8l2KWwpJQ=",
-    "version": "4.24.0"
+    "rev": "v4.26.0",
+    "sha256": "sha256-iCHhOuHEvynBUFKrKapzg7Jc673TiczG6zttgrABUEs=",
+    "vendorSha256": "sha256-uwyl79TGrnFOxJLBTJ5LaAZLZdb/VbS7IW4jQ2A5xQM=",
+    "version": "4.26.0"
   },
   "google-beta": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/google-beta",
     "proxyVendor": true,
     "repo": "terraform-provider-google-beta",
-    "rev": "v4.24.0",
-    "sha256": "sha256-YgpeilvUnm2HyhRoaQJa6K1+7OSjNESn180h4urFuQo=",
-    "vendorSha256": "sha256-X75Ge7QQy5R3j6nXNMduAPPZlF+koJe6zI8l2KWwpJQ=",
-    "version": "4.24.0"
+    "rev": "v4.26.0",
+    "sha256": "sha256-udk+LtpMe4M4SoMpac06knOY6t5hFFa1yze9THTa5hQ=",
+    "vendorSha256": "sha256-uwyl79TGrnFOxJLBTJ5LaAZLZdb/VbS7IW4jQ2A5xQM=",
+    "version": "4.26.0"
   },
   "googleworkspace": {
     "owner": "hashicorp",
@@ -504,19 +504,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/helm",
     "repo": "terraform-provider-helm",
-    "rev": "v2.5.1",
-    "sha256": "sha256-PX8mls0m/7B5WULEDVHutzvjAr0a54vg734mBbRQZNA=",
+    "rev": "v2.6.0",
+    "sha256": "sha256-OzxTPxk3lfmA13KfDGBvDd1AqCsKRw+bv7QiEo9fPQc=",
     "vendorSha256": null,
-    "version": "2.5.1"
+    "version": "2.6.0"
   },
   "heroku": {
     "owner": "heroku",
     "provider-source-address": "registry.terraform.io/heroku/heroku",
     "repo": "terraform-provider-heroku",
-    "rev": "v5.0.2",
-    "sha256": "sha256-HzbqqIr2RjarjuIw+9p8JqGRDbPRDfq2OLLztJLCLoM=",
-    "vendorSha256": "sha256-HrsjhaMlzs+uel5tBlxJD69Kkjl+4qVisWWREANBx40=",
-    "version": "5.0.2"
+    "rev": "v5.1.0",
+    "sha256": "sha256-MMX8zaM3J2GxMXUX0YNX03V8uQzb67cIUF432tjm3Mw=",
+    "vendorSha256": null,
+    "version": "5.1.0"
   },
   "hetznerdns": {
     "owner": "timohirt",
@@ -621,19 +621,19 @@
     "owner": "mrparkers",
     "provider-source-address": "registry.terraform.io/mrparkers/keycloak",
     "repo": "terraform-provider-keycloak",
-    "rev": "v3.8.1",
-    "sha256": "sha256-++yoMIn6K4VwAGyRVe/MUjMU46gBeHjIRF2nrXktC7E=",
+    "rev": "v3.9.0",
+    "sha256": "sha256-MdsOZptj46RuvLK6wZJL3va8kMSzqxaS4wGEUpgky7Q=",
     "vendorSha256": "sha256-8x0MlwAzeA2O6wXXHSk++K0ePmzE9/2lfo2ID83LzRM=",
-    "version": "3.8.1"
+    "version": "3.9.0"
   },
   "ksyun": {
     "owner": "kingsoftcloud",
     "provider-source-address": "registry.terraform.io/kingsoftcloud/ksyun",
     "repo": "terraform-provider-ksyun",
-    "rev": "v1.3.43",
-    "sha256": "sha256-HOZ1nhHLdiYy+WR2y4OsyRGReK+OJFTaWqYU0X4eEQ0=",
+    "rev": "v1.3.46",
+    "sha256": "sha256-qaRsja+pj0DgOZX9nNHSnCI2Ew18r3b5F0Ovqj3mR/Q=",
     "vendorSha256": "sha256-nbAEaRFtFtB4ftLgnCv3MmkjFFbcNkCuxZc+G8/ObPE=",
-    "version": "1.3.43"
+    "version": "1.3.46"
   },
   "kubectl": {
     "owner": "gavinbunney",
@@ -675,10 +675,10 @@
     "owner": "linode",
     "provider-source-address": "registry.terraform.io/linode/linode",
     "repo": "terraform-provider-linode",
-    "rev": "v1.27.2",
-    "sha256": "sha256-Do9HOtgnSNnSUp3SSVwyzx9LPFSig/tO3GSigUrRcf4=",
-    "vendorSha256": "sha256-ZJQAZk4TaKT+hLM46gtV1XmBCtwuKwtoom9tPGaOWhc=",
-    "version": "1.27.2"
+    "rev": "v1.28.0",
+    "sha256": "sha256-FkfyyG+DcfsTQY319zmg5iiCgAW8Eu2PxWF35vd51Ng=",
+    "vendorSha256": "sha256-fWD1Qf6vFe/MH2K2yFufCFBcVuos7FD31ShOA9GvsWw=",
+    "version": "1.28.0"
   },
   "linuxbox": {
     "owner": "numtide",
@@ -792,10 +792,10 @@
     "owner": "newrelic",
     "provider-source-address": "registry.terraform.io/newrelic/newrelic",
     "repo": "terraform-provider-newrelic",
-    "rev": "v2.47.0",
-    "sha256": "sha256-AXzf6wCQQyxQMRd6w+fiKTSCPebUtW1ZOGs3y7uNRNM=",
-    "vendorSha256": "sha256-sMH/sdrMxIw/2jzUcYL9WwVNUsn12K+gPMR68zpXYIA=",
-    "version": "2.47.0"
+    "rev": "v2.48.0",
+    "sha256": "sha256-p1y09f/apsqCn9d5Hrh3L09zya8ebAsy+KCojfsW43w=",
+    "vendorSha256": "sha256-/BWmesMF5zzzMi+7IJviMbXOhAfpn9HDg9i+9tLs2ds=",
+    "version": "2.48.0"
   },
   "nomad": {
     "owner": "hashicorp",
@@ -819,10 +819,10 @@
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/nsxt",
     "repo": "terraform-provider-nsxt",
-    "rev": "v3.2.7",
-    "sha256": "sha256-Og/U9bmaZIN7b/JcMnNkt6c3/H+toe4dFYNaQYfxLPM=",
+    "rev": "v3.2.8",
+    "sha256": "sha256-oXcT1VmwC9a+U0vM5O9y2As2PbzPr95LrUB6KlFKcMc=",
     "vendorSha256": null,
-    "version": "3.2.7"
+    "version": "3.2.8"
   },
   "null": {
     "owner": "hashicorp",
@@ -847,10 +847,10 @@
     "owner": "oracle",
     "provider-source-address": "registry.terraform.io/oracle/oci",
     "repo": "terraform-provider-oci",
-    "rev": "v4.79.0",
-    "sha256": "sha256-GFfrcRsFcSx/X5HpKkV+s2XCgt8qDGQSIdVUgVUjbXM=",
+    "rev": "v4.81.0",
+    "sha256": "sha256-KuEF4VAMKd1IbtUbyDSIzKhk0qTSp/pJiGE5lBI/TFE=",
     "vendorSha256": null,
-    "version": "4.79.0"
+    "version": "4.81.0"
   },
   "okta": {
     "owner": "okta",
@@ -892,10 +892,10 @@
     "owner": "opentelekomcloud",
     "provider-source-address": "registry.terraform.io/opentelekomcloud/opentelekomcloud",
     "repo": "terraform-provider-opentelekomcloud",
-    "rev": "v1.29.5",
-    "sha256": "sha256-/76lJWy5x2XKl0RtBNKH8thHf1vyups4TVWHI/Coxd0=",
-    "vendorSha256": "sha256-jxtkF3VXrsfF/Dpp7mDz+3XYootoxQX3YSp9bX7j6Cg=",
-    "version": "1.29.5"
+    "rev": "v1.29.7",
+    "sha256": "sha256-ZdxK143tjtE+pfuy0TxurdblZ2PO7jsYPyrQ1yJeClE=",
+    "vendorSha256": "sha256-1z5SaH6AoYkrMZVnNurZLmtvVRDNwTBwmQMX0KngKpA=",
+    "version": "1.29.7"
   },
   "opsgenie": {
     "owner": "opsgenie",
@@ -910,10 +910,10 @@
     "owner": "ovh",
     "provider-source-address": "registry.terraform.io/ovh/ovh",
     "repo": "terraform-provider-ovh",
-    "rev": "v0.18.0",
-    "sha256": "sha256-GTyhXAFf0GqjeYh961DyE1ujjUlll5ifGryJGzo9BEI=",
+    "rev": "v0.18.1",
+    "sha256": "sha256-DoFjm2o6U/e16jhVNtezQ82dbSh1ZfTK/YPo38tHokA=",
     "vendorSha256": null,
-    "version": "0.18.0"
+    "version": "0.18.1"
   },
   "pagerduty": {
     "owner": "PagerDuty",
@@ -928,10 +928,10 @@
     "owner": "PaloAltoNetworks",
     "provider-source-address": "registry.terraform.io/PaloAltoNetworks/panos",
     "repo": "terraform-provider-panos",
-    "rev": "v1.10.1",
-    "sha256": "sha256-acxObc7cgZgyxoCQusrkUzFC68cT3WhExiw2LscKoiQ=",
+    "rev": "v1.10.3",
+    "sha256": "sha256-mscWNK113W7CVKI+qPGYX3irQI3YhkLdXox4pddOdF0=",
     "vendorSha256": null,
-    "version": "1.10.1"
+    "version": "1.10.3"
   },
   "pass": {
     "owner": "camptocamp",
@@ -982,19 +982,19 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/random",
     "repo": "terraform-provider-random",
-    "rev": "v3.3.1",
-    "sha256": "sha256-hsNGJmhYrzQhQ0acidx3/dkNFRIabMfgvJsM2Uz+7cE=",
-    "vendorSha256": "sha256-73/tsfe5YoPTpEGUBvBV6jYGFjSNG9h3AY680tAzM7M=",
-    "version": "3.3.1"
+    "rev": "v3.3.2",
+    "sha256": "sha256-izTx/uxe/SAsWSlN5husEWK64c9ugdg8BS7lScnWSX4=",
+    "vendorSha256": "sha256-ofU1zZb/C2LFaRCt0NULi+9dQY02lKBlz3jV1/ZhfWU=",
+    "version": "3.3.2"
   },
   "remote": {
     "owner": "tenstad",
     "provider-source-address": "registry.terraform.io/tenstad/remote",
     "repo": "terraform-provider-remote",
-    "rev": "v0.0.25",
-    "sha256": "sha256-sthHyzjf/6sgI0Acw//Z4ybxy4TwNpPIi8f7MmJh0N0=",
+    "rev": "v0.1.0",
+    "sha256": "sha256-h6V2sd6j2HzIN1MVMBMqquM54fzmzHPcPfsP5t4bU1A=",
     "vendorSha256": "sha256-ckPs3iaFbmHbBnwRuYn9XdnGZsj+UoYK4OE/9B6Z6Kc=",
-    "version": "0.0.25"
+    "version": "0.1.0"
   },
   "rundeck": {
     "owner": "rundeck",
@@ -1009,10 +1009,10 @@
     "owner": "scaleway",
     "provider-source-address": "registry.terraform.io/scaleway/scaleway",
     "repo": "terraform-provider-scaleway",
-    "rev": "v2.2.1",
-    "sha256": "sha256-a3tSxGTRYQeGfaJOR8z1Qd0SeuoiLwrEbdlw3B9gc2A=",
-    "vendorSha256": "sha256-D/pE1uEpkWIuICNJsuWVHfRNGPf73YliFxqODkl+4QY=",
-    "version": "2.2.1"
+    "rev": "v2.2.2",
+    "sha256": "sha256-uSJga2M+9unC8eJkUjhuCQbTTGXEYGky4MJyVL0ZfiQ=",
+    "vendorSha256": "sha256-DOL38q5463aOMijP6AbBuE7jI7hvLYLm8yCBxrr6DoA=",
+    "version": "2.2.2"
   },
   "secret": {
     "owner": "numtide",
@@ -1036,10 +1036,10 @@
     "owner": "jianyuan",
     "provider-source-address": "registry.terraform.io/jianyuan/sentry",
     "repo": "terraform-provider-sentry",
-    "rev": "v0.8.0",
-    "sha256": "sha256-3PTM3GOImwO/yqzR6tOuwU0f+74DfK4RQSBY0vmH3qs=",
-    "vendorSha256": "sha256-naMuvrVIJp82NIFoR1oEEN6cZFqG4craDh8YU3+NSf0=",
-    "version": "0.8.0"
+    "rev": "v0.9.0",
+    "sha256": "sha256-n+ca1+YKObcdq5h4Sn9tBLg1vpBooBB/pGJxaW4l3k0=",
+    "vendorSha256": "sha256-hYoLGMI8NGpHW3tsNt6EO1nJrmfeFLuDQ79bkXf7DmQ=",
+    "version": "0.9.0"
   },
   "shell": {
     "owner": "scottwinkler",
@@ -1072,10 +1072,10 @@
     "owner": "Snowflake-Labs",
     "provider-source-address": "registry.terraform.io/Snowflake-Labs/snowflake",
     "repo": "terraform-provider-snowflake",
-    "rev": "v0.35.0",
-    "sha256": "sha256-RSwSyNQmHzx5cn6aiaInP4m/fCgWkL/1lMoJAib3fkA=",
+    "rev": "v0.36.0",
+    "sha256": "sha256-OrQARzrraaXvwGyv4L/IVLFxgOk+JqMQAY3pXO7GTHM=",
     "vendorSha256": "sha256-I0d7Nm8h7vBHxvcyTousg7Uc+QuYu8FCPabPNMw8rGM=",
-    "version": "0.35.0"
+    "version": "0.36.0"
   },
   "sops": {
     "owner": "carlpett",
@@ -1090,10 +1090,10 @@
     "owner": "spotinst",
     "provider-source-address": "registry.terraform.io/spotinst/spotinst",
     "repo": "terraform-provider-spotinst",
-    "rev": "v1.76.0",
-    "sha256": "sha256-+/OZw/wpeRHoK5XuwiI2qfbZSheoGd4PRy4TkdtV7yY=",
+    "rev": "v1.77.0",
+    "sha256": "sha256-qP6Hjo4ekEk105nQVwGLHR3LiQzUtEd68y45hppdoyY=",
     "vendorSha256": "sha256-JaWR7TiU5J7HGWExENqo5lHysCzg4Q6XvpCYfekuAg8=",
-    "version": "1.76.0"
+    "version": "1.77.0"
   },
   "stackpath": {
     "owner": "stackpath",
@@ -1117,28 +1117,28 @@
     "owner": "SumoLogic",
     "provider-source-address": "registry.terraform.io/SumoLogic/sumologic",
     "repo": "terraform-provider-sumologic",
-    "rev": "v2.16.1",
-    "sha256": "sha256-CLqDFqYoScQTQuaB36CupWHuF8rUn8PBV8EJ0MJuIeE=",
+    "rev": "v2.16.2",
+    "sha256": "sha256-/JQXnGpUbAIsz2zErrHe97ggGdjnWkvhYm8SHTh/xCs=",
     "vendorSha256": "sha256-7DGY+L41bJJrtLwdWgu2aMCefgcmtR6tmH12foi68Kc=",
-    "version": "2.16.1"
+    "version": "2.16.2"
   },
   "tencentcloud": {
     "owner": "tencentcloudstack",
     "provider-source-address": "registry.terraform.io/tencentcloudstack/tencentcloud",
     "repo": "terraform-provider-tencentcloud",
-    "rev": "v1.73.1",
-    "sha256": "sha256-vMWT4Kj8ROf3iTSd1Gy/CfuiDEQUUjfRR8+nSlbhrZo=",
+    "rev": "v1.74.3",
+    "sha256": "sha256-iZrM4TJYqJQddpOrqx836O9Y4yA+VsY4iAA7K29CNNU=",
     "vendorSha256": null,
-    "version": "1.73.1"
+    "version": "1.74.3"
   },
   "tfe": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/tfe",
     "repo": "terraform-provider-tfe",
-    "rev": "v0.31.0",
-    "sha256": "sha256-BvA+1oCh8xB0XcXMGOmAEdi/lEwGdRed5vDEDVBUMhE=",
-    "vendorSha256": "sha256-7TFfIk+aPbl3CLuNdeJg1O2n3WlCuG5tsayCtbo77I0=",
-    "version": "0.31.0"
+    "rev": "v0.32.1",
+    "sha256": "sha256-7a2uc0f7+OFrbCvHJkKyeX7hXR63PpzpfNhUCWHqOxU=",
+    "vendorSha256": "sha256-V1nXhDwDMWJsbhPu9otXrOmtzVv0rjvL7CH/13AR5iw=",
+    "version": "0.32.1"
   },
   "thunder": {
     "owner": "a10networks",
@@ -1208,10 +1208,10 @@
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vault",
     "repo": "terraform-provider-vault",
-    "rev": "v3.6.0",
-    "sha256": "sha256-eeE6ThAz7RwePS65RZXbz+PUfm/KlE+f+nJWvLTCSmA=",
-    "vendorSha256": "sha256-KSGhIoUKadAuiMQkJEyYCDt7GXZ9deiV14LV4gEOpVg=",
-    "version": "3.6.0"
+    "rev": "v3.7.0",
+    "sha256": "sha256-n2sUc71Ymk2kI9bpQxp2TRG4hte5/xIP+NbUxBwyNaM=",
+    "vendorSha256": "sha256-TqhnjsK36EGpDlN4yy1jd/1KpdOT+hu4koMM3VCJEV0=",
+    "version": "3.7.0"
   },
   "vcd": {
     "owner": "vmware",
@@ -1253,28 +1253,28 @@
     "owner": "vmware",
     "provider-source-address": "registry.terraform.io/vmware/vra7",
     "repo": "terraform-provider-vra7",
-    "rev": "v3.0.5",
-    "sha256": "sha256-4YhaABbuG4GhWYEiGrUvf4H/8dd7wWHY08CkTWCqgr8=",
+    "rev": "v3.0.6",
+    "sha256": "sha256-lHyrBJz6954te57uKpgrqOVztDsDUSqkHtWXnlG0QUw=",
     "vendorSha256": null,
-    "version": "3.0.5"
+    "version": "3.0.6"
   },
   "vsphere": {
     "owner": "hashicorp",
     "provider-source-address": "registry.terraform.io/hashicorp/vsphere",
     "repo": "terraform-provider-vsphere",
-    "rev": "v2.1.1",
-    "sha256": "sha256-Xu5BMmOHEX+ctPu8374BDGsRC5hnvzji5oI69ptIi3Y=",
-    "vendorSha256": null,
-    "version": "2.1.1"
+    "rev": "v2.2.0",
+    "sha256": "sha256-UwhIGK1zQ++IuwAKH9i+Dlu2vvXkMYL+s1P03qKSe3E=",
+    "vendorSha256": "sha256-160GDEQfymeCJpjYOoWP5sGQ0PJHw9kKPaefmbF5Ig4=",
+    "version": "2.2.0"
   },
   "vultr": {
     "owner": "vultr",
     "provider-source-address": "registry.terraform.io/vultr/vultr",
     "repo": "terraform-provider-vultr",
-    "rev": "v2.11.2",
-    "sha256": "sha256-cxNSsxAnCw7rZNljR87dN+vYvnwniN3j6VKeswIOv/g=",
+    "rev": "v2.11.3",
+    "sha256": "sha256-Dq4keHT2AWh1zfBYFj6ig2BfU3u4amsp7IB/5Szo/38=",
     "vendorSha256": null,
-    "version": "2.11.2"
+    "version": "2.11.3"
   },
   "wavefront": {
     "owner": "vmware",
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 0532dd84868b8..9bc29755ddb91 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -168,33 +168,10 @@ rec {
   # Constructor for other terraform versions
   mkTerraform = attrs: pluggable (generic attrs);
 
-  terraform_0_13 = mkTerraform {
-    version = "0.13.7";
-    sha256 = "1cahnmp66dk21g7ga6454yfhaqrxff7hpwpdgc87cswyq823fgjn";
-    patches = [ ./provider-path.patch ];
-    passthru = { inherit plugins; };
-  };
-
-  terraform_0_14 = mkTerraform {
-    version = "0.14.11";
-    sha256 = "1yi1jj3n61g1kn8klw6l78shd23q79llb7qqwigqrx3ki2mp279j";
-    vendorSha256 = "sha256-tWrSr6JCS9s+I0T1o3jgZ395u8IBmh73XGrnJidWI7U=";
-    patches = [ ./provider-path.patch ];
-    passthru = { inherit plugins; };
-  };
-
-  terraform_0_15 = mkTerraform {
-    version = "0.15.5";
-    sha256 = "18f4a6l24s3cym7gk40agxikd90i56q84wziskw1spy9rgv2yx6d";
-    vendorSha256 = "sha256-oFvoEsDunJR4IULdGwS6nHBKWEgUehgT+nNM41W/GYo=";
-    patches = [ ./provider-path-0_15.patch ];
-    passthru = { inherit plugins; };
-  };
-
   terraform_1 = mkTerraform {
-    version = "1.2.2";
-    sha256 = "sha256-LkRCumyNHVBSsXRp1ovNMGCeidK/jVCjh9H1HSE1Lm8=";
-    vendorSha256 = "sha256-CVgAmPM0nt0Wx+N0qs+IO5KwCWnbfif70EHjBi0bIsQ=";
+    version = "1.2.3";
+    sha256 = "sha256-hkPlufjlvmI5tKz1VTY5RztuDKEsgjrLR+f7HRrJmkA=";
+    vendorSha256 = "sha256-1RKnNF3NC0fGiU2VKz43UBGP33QrLxESVuH6IV6kYqA=";
     patches = [ ./provider-path-0_15.patch ];
     passthru = {
       inherit plugins;
diff --git a/pkgs/applications/networking/cluster/terraform/provider-path.patch b/pkgs/applications/networking/cluster/terraform/provider-path.patch
deleted file mode 100644
index 39a69e4a389fa..0000000000000
--- a/pkgs/applications/networking/cluster/terraform/provider-path.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-diff --git a/command/init.go b/command/init.go
-index 403ca245b..05d98329a 100644
---- a/command/init.go
-+++ b/command/init.go
-@@ -64,6 +64,11 @@ func (c *InitCommand) Run(args []string) int {
- 		return 1
- 	}
- 
-+	val, ok := os.LookupEnv("NIX_TERRAFORM_PLUGIN_DIR")
-+	if ok {
-+		flagPluginPath = append(flagPluginPath, val)
-+	}
-+
- 	if len(flagPluginPath) > 0 {
- 		c.pluginPath = flagPluginPath
- 		c.getPlugins = false
diff --git a/pkgs/applications/networking/cluster/tfswitch/default.nix b/pkgs/applications/networking/cluster/tfswitch/default.nix
index d069367f7334b..a57128907eee3 100644
--- a/pkgs/applications/networking/cluster/tfswitch/default.nix
+++ b/pkgs/applications/networking/cluster/tfswitch/default.nix
@@ -1,13 +1,13 @@
 { buildGoModule, lib, fetchFromGitHub }:
 buildGoModule rec {
   pname = "tfswitch";
-  version = "0.13.1250";
+  version = "0.13.1275";
 
   src = fetchFromGitHub {
     owner = "warrensbox";
     repo = "terraform-switcher";
     rev = version;
-    sha256 = "sha256-OfQUwAv7PgjcDLE4Wm6I8pAHeLV9sHlLHRVqTB13B4c=";
+    sha256 = "sha256-yuoJkVztLtlr4xOa4muWKquwAb8lo2IQpD7PLxEQfpg=";
   };
 
   vendorSha256 = "sha256-jM9xYwBshBpaT4duBTvVwYUOapQfUbq9kL7EaRIGfQY=";
diff --git a/pkgs/applications/networking/cluster/velero/default.nix b/pkgs/applications/networking/cluster/velero/default.nix
index 88c3a31fd2d77..5685b0b65072c 100644
--- a/pkgs/applications/networking/cluster/velero/default.nix
+++ b/pkgs/applications/networking/cluster/velero/default.nix
@@ -2,23 +2,25 @@
 
 buildGoModule rec {
   pname = "velero";
-  version = "1.8.1";
+  version = "1.9.0";
 
 
   src = fetchFromGitHub {
     owner = "vmware-tanzu";
     repo = "velero";
     rev = "v${version}";
-    sha256 = "sha256-oiYr9JQlJVxjZxGhZyOIUy934KedBmDhzK+71qmaD58=";
+    sha256 = "sha256-zoHMyOhHEunJ8LirUxOT1qNY3jB28BEiQ+3GdqriTtQ=";
   };
 
   ldflags = [
     "-s" "-w"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.Version=${version}"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.ImageRegistry=velero"
     "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitTreeState=clean"
+    "-X github.com/vmware-tanzu/velero/pkg/buildinfo.GitSHA=none"
   ];
 
-  vendorSha256 = "sha256-DyQ+MHRNZFg80Yz/SCxhnF4NVbIsyhz4mApx0+kgHoA=";
+  vendorSha256 = "sha256-PDXufnddHEA0qCfzJ0O+h3u50gWNkQAnWMZjSVQ0oHc=";
 
   excludedPackages = [ "issue-template-gen" "release-tools" "v1" "velero-restic-restore-helper" ];
 
diff --git a/pkgs/applications/networking/cluster/werf/default.nix b/pkgs/applications/networking/cluster/werf/default.nix
index bcd43d71fc8a7..d677b2d96dfdd 100644
--- a/pkgs/applications/networking/cluster/werf/default.nix
+++ b/pkgs/applications/networking/cluster/werf/default.nix
@@ -9,16 +9,16 @@
 
 buildGoModule rec {
   pname = "werf";
-  version = "1.2.114";
+  version = "1.2.117";
 
   src = fetchFromGitHub {
     owner = "werf";
     repo = "werf";
     rev = "v${version}";
-    sha256 = "sha256-+QCKVXuROd7QB6P5tSSINWtdw5OvVnmE1+ttoBnCO1g=";
+    sha256 = "sha256-bh+4Z4+BU1exOv113ScIw9VsGM+jRireyb9lArg/Zg4=";
   };
 
-  vendorSha256 = "sha256-VuburDiYqePFvS7/aTM+krkK2UhTHhfbvGOLY3I3DN8=";
+  vendorSha256 = "sha256-cW9sjMRLslEhgyI5Z7ypUtGgzCDASQ4m9yr6DoQKoz8=";
 
   proxyVendor = true;
 
diff --git a/pkgs/applications/networking/dnscontrol/default.nix b/pkgs/applications/networking/dnscontrol/default.nix
index da2104b649ab5..88fe43884f872 100644
--- a/pkgs/applications/networking/dnscontrol/default.nix
+++ b/pkgs/applications/networking/dnscontrol/default.nix
@@ -2,21 +2,24 @@
 
 buildGoModule rec {
   pname = "dnscontrol";
-  version = "3.16.2";
+  version = "3.17.0";
 
   src = fetchFromGitHub {
     owner = "StackExchange";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-lzE35PT0QLlZ2jftXpDDvr4S3zD1DOpZVXrGGnzvpc8=";
+    sha256 = "sha256-eXm2oOHtNnDK4mikge8Ubjkg4b4mG7HMT17nL/CdU88=";
   };
 
-  vendorSha256 = "sha256-M+Kzw2ZmKV527rPUJ1codtXWN0/5tmph7GMBTze4C7c=";
-
-  subPackages = [ "." ];
+  vendorSha256 = "sha256-14SnK5CeMTmt0ZQ+CI14FACcMaNNbBWvAYfbQoJ2K/A=";
 
   ldflags = [ "-s" "-w" ];
 
+  preCheck = ''
+    # requires network
+    rm pkg/spflib/flatten_test.go pkg/spflib/parse_test.go
+  '';
+
   meta = with lib; {
     description = "Synchronize your DNS to multiple providers from a simple DSL";
     homepage = "https://stackexchange.github.io/dnscontrol/";
diff --git a/pkgs/applications/networking/errbot/default.nix b/pkgs/applications/networking/errbot/default.nix
index f4a44275b693e..d9f02941b43c3 100644
--- a/pkgs/applications/networking/errbot/default.nix
+++ b/pkgs/applications/networking/errbot/default.nix
@@ -1,32 +1,12 @@
 { lib
-, ansi
-, buildPythonApplication
-, colorlog
-, daemonize
-, deepmerge
-, dulwich
 , fetchFromGitHub
-, flask
 , glibcLocales
-, hypchat
-, irc
-, jinja2
-, markdown
-, mock
-, pyasn1
-, pyasn1-modules
-, pygments
-, pygments-markdown-lexer
-, pyopenssl
-, pytestCheckHook
-, requests
-, slackclient
-, sleekxmpp
-, telegram
-, webtest
+, python39
 }:
 
-buildPythonApplication rec {
+let
+  python3 = python39;
+in python3.pkgs.buildPythonApplication rec {
   pname = "errbot";
   version = "6.1.7";
 
@@ -41,7 +21,7 @@ buildPythonApplication rec {
 
   buildInputs = [ glibcLocales ];
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = with python3.pkgs; [
     ansi
     colorlog
     daemonize
@@ -64,7 +44,7 @@ buildPythonApplication rec {
     webtest
   ];
 
-  checkInputs = [
+  checkInputs = with python3.pkgs; [
     mock
     pytestCheckHook
   ];
diff --git a/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
index 9bb34ffbbd709..22bd33b87717f 100644
--- a/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
+++ b/pkgs/applications/networking/feedreaders/indigenous-desktop/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "IndieWeb app with extensions for sharing to/reading from micropub endpoints";
     homepage = "https://indigenous.realize.be/indigenous-desktop";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix
index 0a4cea6288152..071ac5b7aa273 100644
--- a/pkgs/applications/networking/flexget/default.nix
+++ b/pkgs/applications/networking/flexget/default.nix
@@ -5,14 +5,14 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "flexget";
-  version = "3.3.17";
+  version = "3.3.18";
 
   # Fetch from GitHub in order to use `requirements.in`
   src = fetchFromGitHub {
     owner = "flexget";
     repo = "flexget";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xVHk6fQBY8EQsZJDZYoQ+WXDpLGJrRTVR6xhF1DWv0I=";
+    hash = "sha256-vZOeWxCcrTRT28Bn2r/I7/ojQ6uUV3xZlAZLbrAH5tc=";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/gopher/sacc/default.nix b/pkgs/applications/networking/gopher/sacc/default.nix
index 5252fe59c0984..1afcbe4d2a86b 100644
--- a/pkgs/applications/networking/gopher/sacc/default.nix
+++ b/pkgs/applications/networking/gopher/sacc/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "sacc";
-  version = "1.05";
+  version = "1.06";
 
   src = fetchurl {
     url = "ftp://bitreich.org/releases/sacc/sacc-${version}.tar.gz";
-    sha512 = "080vpacipdis396lrw3fxc1z7h2d0njm2zi63kvlk0n2m1disv97c968zx8dp76kfw1s03nvvr6v3vnpfkkywiz1idjc92s5rgcbsk1";
+    sha512 = "7a895e432e1d28b7d9b2bb2a5326ca32350876a2c80d39dc6c19e75347d72a4847f1aa4ff11f07e8a9adea14ea71b84d70890dcc170ff6ce0b779e1d6586b4fa";
   };
 
   inherit patches;
diff --git a/pkgs/applications/networking/hpmyroom/default.nix b/pkgs/applications/networking/hpmyroom/default.nix
index 64a237480c651..5417cc6fda145 100644
--- a/pkgs/applications/networking/hpmyroom/default.nix
+++ b/pkgs/applications/networking/hpmyroom/default.nix
@@ -50,6 +50,7 @@ mkDerivation rec {
   meta = {
     description = "Client for HPE's MyRoom web conferencing solution";
     maintainers = with lib.maintainers; [ johnazoidberg ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     homepage = "https://myroom.hpe.com";
     # TODO: A Darwin binary is available upstream
diff --git a/pkgs/applications/networking/instant-messengers/alfaview/default.nix b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
index 51279394df5c8..ff97cb55a5563 100644
--- a/pkgs/applications/networking/instant-messengers/alfaview/default.nix
+++ b/pkgs/applications/networking/instant-messengers/alfaview/default.nix
@@ -73,6 +73,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video-conferencing application, specialized in virtual online meetings, seminars, training sessions and conferences";
     homepage = "https://alfaview.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang hexchen ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index c902a7e67c57e..ddecac0735268 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -127,6 +127,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
     homepage = "https://www.bluejeans.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/chatty/default.nix b/pkgs/applications/networking/instant-messengers/chatty/default.nix
index 35266eff90092..fc9c4c10b2187 100644
--- a/pkgs/applications/networking/instant-messengers/chatty/default.nix
+++ b/pkgs/applications/networking/instant-messengers/chatty/default.nix
@@ -29,7 +29,7 @@
 
 stdenv.mkDerivation rec {
   pname = "chatty";
-  version = "0.6.4";
+  version = "0.6.7";
 
   src = fetchFromGitLab {
     domain = "source.puri.sm";
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
     repo = "chatty";
     rev = "v${version}";
     fetchSubmodules = true;
-    hash = "sha256-uDuSx+tWv6DV93/99QUcUKZaWA9kNW8phHZhetYlG/M=";
+    hash = "sha256-W4w/00mRgjfyQmLQ81/EAN+80qk7kDkBmMPJnOU+AIc=";
   };
 
   postPatch = ''
@@ -83,6 +83,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "XMPP and SMS messaging via libpurple and ModemManager";
     homepage = "https://source.puri.sm/Librem5/chatty";
+    changelog = "https://source.puri.sm/Librem5/chatty/-/blob/${src.rev}/NEWS";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ dotlambda tomfitzhenry ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/discord/darwin.nix b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
index 4bc9ac98df1f6..494a7e6a44283 100644
--- a/pkgs/applications/networking/instant-messengers/discord/darwin.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/darwin.nix
@@ -1,4 +1,4 @@
-{ pname, version, src, meta, stdenv, binaryName, desktopName, undmg }:
+{ pname, version, src, openasar, meta, stdenv, binaryName, desktopName, lib, undmg }:
 
 stdenv.mkDerivation {
   inherit pname version src meta;
@@ -8,7 +8,15 @@ stdenv.mkDerivation {
   sourceRoot = ".";
 
   installPhase = ''
+    runHook preInstall
+
     mkdir -p $out/Applications
     cp -r "${desktopName}.app" $out/Applications
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString (openasar != null) ''
+    cp -f ${openasar} $out/Applications/${desktopName}.app/Contents/Resources/app.asar
   '';
 }
diff --git a/pkgs/applications/networking/instant-messengers/discord/default.nix b/pkgs/applications/networking/instant-messengers/discord/default.nix
index ab471ef47fb78..71606f2dcaddb 100644
--- a/pkgs/applications/networking/instant-messengers/discord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/default.nix
@@ -1,6 +1,5 @@
-{ branch ? "stable", pkgs, lib, stdenv }:
+{ branch ? "stable", callPackage, fetchurl, lib, stdenv, withOpenASAR ? false }:
 let
-  inherit (pkgs) callPackage fetchurl;
   versions = if stdenv.isLinux then {
     stable = "0.0.18";
     ptb = "0.0.29";
@@ -55,14 +54,18 @@ let
     description = "All-in-one cross-platform voice and text chat for gamers";
     homepage = "https://discordapp.com/";
     downloadPage = "https://discordapp.com/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ldesgoui MP2E devins2518 ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ]
       ++ lib.optionals (branch == "ptb") [ "aarch64-darwin" ];
   };
   package = if stdenv.isLinux then ./linux.nix else ./darwin.nix;
+
+  openasar = if withOpenASAR then callPackage ./openasar.nix { } else null;
+
   packages = (builtins.mapAttrs
-    (_: value: callPackage package (value // { inherit src version; meta = meta // { mainProgram = value.binaryName; }; }))
+    (_: value: callPackage package (value // { inherit src version openasar; meta = meta // { mainProgram = value.binaryName; }; }))
     {
       stable = rec {
         pname = "discord";
diff --git a/pkgs/applications/networking/instant-messengers/discord/linux.nix b/pkgs/applications/networking/instant-messengers/discord/linux.nix
index b960caa64d802..28c1d353ff610 100644
--- a/pkgs/applications/networking/instant-messengers/discord/linux.nix
+++ b/pkgs/applications/networking/instant-messengers/discord/linux.nix
@@ -1,4 +1,4 @@
-{ pname, version, src, meta, binaryName, desktopName, autoPatchelfHook
+{ pname, version, src, openasar, meta, binaryName, desktopName, autoPatchelfHook
 , makeDesktopItem, lib, stdenv, wrapGAppsHook, makeShellWrapper, alsa-lib, at-spi2-atk
 , at-spi2-core, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf
 , glib, gtk3, libcxx, libdrm, libnotify, libpulseaudio, libuuid, libX11
@@ -72,7 +72,9 @@ stdenv.mkDerivation rec {
   ];
 
   installPhase = ''
-    mkdir -p $out/{bin,opt/${binaryName},share/pixmaps}
+    runHook preInstall
+
+    mkdir -p $out/{bin,opt/${binaryName},share/pixmaps,share/icons/hicolor/256x256/apps}
     mv * $out/opt/${binaryName}
 
     chmod +x $out/opt/${binaryName}/${binaryName}
@@ -90,9 +92,17 @@ stdenv.mkDerivation rec {
     ln -s $out/opt/${binaryName}/${binaryName} $out/bin/${
       lib.strings.toLower binaryName
     } || true
+
     ln -s $out/opt/${binaryName}/discord.png $out/share/pixmaps/${pname}.png
+    ln -s $out/opt/${binaryName}/discord.png $out/share/icons/hicolor/256x256/apps/${pname}.png
 
     ln -s "${desktopItem}/share/applications" $out/share/
+
+    runHook postInstall
+  '';
+
+  postInstall = lib.strings.optionalString (openasar != null) ''
+    cp -f ${openasar} $out/opt/${binaryName}/resources/app.asar
   '';
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/applications/networking/instant-messengers/discord/openasar.nix b/pkgs/applications/networking/instant-messengers/discord/openasar.nix
new file mode 100644
index 0000000000000..e378f490c0f45
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/discord/openasar.nix
@@ -0,0 +1,42 @@
+{ lib, stdenv, fetchFromGitHub, nodejs, bash, nodePackages }:
+
+stdenv.mkDerivation rec {
+  version = "unstable-2022-06-10";
+  pname = "openasar";
+
+  src = fetchFromGitHub {
+    owner = "GooseMod";
+    repo = "OpenAsar";
+    rev = "c6f2f5eb7827fea14cb4c54345af8ff6858c633a";
+    sha256 = "m6e/WKGgkR8vjKcHSNdWE25MmDQM1Z3kgB24OJgbw/w=";
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    bash scripts/injectPolyfills.sh
+    substituteInPlace src/index.js --replace 'nightly' '${version}'
+    ${nodejs}/bin/node scripts/strip.js
+    ${nodePackages.asar}/bin/asar pack src app.asar
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    install app.asar $out
+
+    runHook postInstall
+  '';
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Open-source alternative of Discord desktop's \"app.asar\".";
+    homepage = "https://openasar.dev";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pedrohlc ];
+    platforms = nodejs.meta.platforms;
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index ac17d6d44591a..269d928f4366b 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -2,7 +2,7 @@
   "name": "element-desktop",
   "productName": "Element",
   "main": "lib/electron-main.js",
-  "version": "1.10.14",
+  "version": "1.10.15",
   "description": "A feature-rich client for Matrix.org",
   "author": "Element",
   "repository": {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web-package.json b/pkgs/applications/networking/instant-messengers/element/element-web-package.json
index f6fc383e034ff..a67fc7a682b94 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-web-package.json
@@ -1,6 +1,6 @@
 {
   "name": "element-web",
-  "version": "1.10.14",
+  "version": "1.10.15",
   "description": "A feature-rich client for Matrix.org",
   "author": "New Vector Ltd.",
   "repository": {
@@ -59,7 +59,7 @@
     "jsrsasign": "^10.2.0",
     "katex": "^0.12.0",
     "matrix-js-sdk": "18.1.0",
-    "matrix-react-sdk": "3.46.0",
+    "matrix-react-sdk": "3.47.0",
     "matrix-widget-api": "^0.1.0-beta.18",
     "prop-types": "^15.7.2",
     "react": "17.0.2",
diff --git a/pkgs/applications/networking/instant-messengers/element/pin.json b/pkgs/applications/networking/instant-messengers/element/pin.json
index a99d2919cb558..c40d978c8c043 100644
--- a/pkgs/applications/networking/instant-messengers/element/pin.json
+++ b/pkgs/applications/networking/instant-messengers/element/pin.json
@@ -1,7 +1,7 @@
 {
-  "version": "1.10.14",
-  "desktopSrcHash": "/y4pJSNQrN0Ksc+yjB3Xl6t8AZLNtZ/Rm0UoAhwlgp8=",
+  "version": "1.10.15",
+  "desktopSrcHash": "2XSTE6NbhWYAH3tr1Kd16vEAGn3ApZ0a9PdpoHJn3uE=",
   "desktopYarnHash": "1rnzaxy7l7912j6df8w2kw66pqwrs7kg7hd0680i38c1db5f4y6n",
-  "webSrcHash": "2CagKKFulLi8Gl/IPabzKfCFTBmw8SGa22hTM+7IewE=",
-  "webYarnHash": "15jjryjav3v58j4260ig548g1m6g6vhid4iigpv7k8pa4rhcwnyh"
+  "webSrcHash": "lX31OWJ6/S+PbOKvEqYALtOIoaJjwg4ng/wHOfXCSqg=",
+  "webYarnHash": "0j6xv64w5vszhlfqz37asqxsql0m89gscrl270dlxzycd4ybzghz"
 }
diff --git a/pkgs/applications/networking/instant-messengers/ferdi/default.nix b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
index 90ab331426a09..edd05a83ad639 100644
--- a/pkgs/applications/networking/instant-messengers/ferdi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ferdi/default.nix
@@ -26,6 +26,7 @@ mkFranzDerivation' rec {
   meta = with lib; {
     description = "Combine your favorite messaging services into one application";
     homepage = "https://getferdi.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ davidtwco ma27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/ferdium/default.nix b/pkgs/applications/networking/instant-messengers/ferdium/default.nix
new file mode 100644
index 0000000000000..cbc87fc5ac92a
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/ferdium/default.nix
@@ -0,0 +1,22 @@
+{ lib, mkFranzDerivation, fetchurl, xorg }:
+
+mkFranzDerivation rec {
+  pname = "ferdium";
+  name = "Ferdium";
+  version = "6.0.0-nightly.65";
+  src = fetchurl {
+    url = "https://github.com/ferdium/ferdium-app/releases/download/v${version}/ferdium_${version}_amd64.deb";
+    sha256 = "sha256-vmu74aLAKGbmRf9hkMUL5VOfi/Cbvdix9MzsZK1qW80=";
+  };
+
+  extraBuildInputs = [ xorg.libxshmfence ];
+
+  meta = with lib; {
+    description = "All your services in one place built by the community";
+    homepage = "https://ferdium.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ magnouvean ];
+    platforms = [ "x86_64-linux" ];
+    hydraPlatforms = [ ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/franz/default.nix b/pkgs/applications/networking/instant-messengers/franz/default.nix
index b3d9194c6fe4b..a910105fde808 100644
--- a/pkgs/applications/networking/instant-messengers/franz/default.nix
+++ b/pkgs/applications/networking/instant-messengers/franz/default.nix
@@ -11,6 +11,7 @@ mkFranzDerivation rec {
   meta = with lib; {
     description = "A free messaging app that combines chat & messaging services into one application";
     homepage = "https://meetfranz.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.free;
     maintainers = [ maintainers.davidtwco ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/gitter/default.nix b/pkgs/applications/networking/instant-messengers/gitter/default.nix
index 8ed85cba8546f..04d8909f3d892 100644
--- a/pkgs/applications/networking/instant-messengers/gitter/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gitter/default.nix
@@ -94,6 +94,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Where developers come to talk";
     downloadPage = "https://gitter.im/apps";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = [ maintainers.imalison ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
index 9cab98156c81c..bd0da749e0961 100644
--- a/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gotktrix/default.nix
@@ -32,6 +32,12 @@ buildGoModule rec {
   # Checking requires a working display
   doCheck = false;
 
+  postInstall = ''
+    echo 'X-Purism-FormFactor=Workstation;Mobile;' >> .nix/com.github.diamondburned.gotktrix.desktop
+    install -Dm444 .nix/com.github.diamondburned.gotktrix.desktop -t $out/share/applications/
+    install -Dm444 .github/logo-256.png -T $out/share/icons/hicolor/256x256/apps/gotktrix.png
+  '';
+
   meta = with lib; {
     description = "Matrix client written in Go using GTK4";
     homepage = "https://github.com/diamondburned/gotktrix";
diff --git a/pkgs/applications/networking/instant-messengers/hipchat/default.nix b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
index 6a677c9e0d612..8debefa0c11c4 100644
--- a/pkgs/applications/networking/instant-messengers/hipchat/default.nix
+++ b/pkgs/applications/networking/instant-messengers/hipchat/default.nix
@@ -81,6 +81,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Desktop client for HipChat services";
     homepage = "http://www.hipchat.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ puffnfresh ];
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix b/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
deleted file mode 100644
index 8cb748f540599..0000000000000
--- a/pkgs/applications/networking/instant-messengers/jami/client-gnome.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ version
-, src
-, jami-meta
-, stdenv
-, lib
-, pkg-config
-, cmake
-, wrapQtAppsHook
-, wrapGAppsHook
-, gtk3-x11
-, networkmanager # for libnm
-, libayatana-appindicator
-, libnotify
-, clutter-gtk
-, libcanberra-gtk3
-, webkitgtk
-, qrencode
-, jami-libclient
-, qttools
-}:
-
-stdenv.mkDerivation {
-  pname = "jami-client-gnome";
-  inherit version src;
-
-  sourceRoot = "source/client-gnome";
-
-  preConfigure = ''
-    echo ${version} > version.txt
-  '';
-
-  nativeBuildInputs = [
-    pkg-config
-    cmake
-    wrapGAppsHook
-    wrapQtAppsHook
-  ];
-  # To spare double wrapping
-  dontWrapGApps = true;
-  preFixup = ''
-    qtWrapperArgs+=("''${gappsWrapperArgs[@]}")
-    # Users that set CLUTTER_BACKEND=wayland in their default environment will
-    # encounter a segfault due to:
-    # https://git.jami.net/savoirfairelinux/jami-client-gnome/-/issues/1100 .
-    qtWrapperArgs+=("--unset" "CLUTTER_BACKEND")
-  '';
-
-  buildInputs = [
-    qttools
-    jami-libclient
-    gtk3-x11
-    networkmanager
-    libayatana-appindicator
-    libnotify
-    clutter-gtk
-    libcanberra-gtk3
-    webkitgtk
-    qrencode
-  ];
-
-  meta = jami-meta // {
-    description = "The client based on GTK" + jami-meta.description;
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/jami/client-qt.nix b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
index 0c952fd1ecad2..74bfbc600689e 100644
--- a/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/client-qt.nix
@@ -1,8 +1,8 @@
 { version
 , src
 , jami-meta
-, mkDerivation
 , lib
+, stdenv
 , pkg-config
 , cmake
 , networkmanager # for libnm
@@ -10,18 +10,19 @@
 , qttools # for translations
 , wrapQtAppsHook
 , libnotify
-, qrencode
-, qtwebengine
+, qt5compat
+, qtbase
 , qtdeclarative
-, qtquickcontrols2
+, qrencode
 , qtmultimedia
+, qtnetworkauth
 , qtsvg
+, qtwebengine
 , qtwebchannel
-, qtgraphicaleffects # no gui without this
 , jami-libclient
 }:
 
-mkDerivation {
+stdenv.mkDerivation {
   pname = "jami-client-qt";
   inherit version src;
 
@@ -33,6 +34,7 @@ mkDerivation {
   '';
 
   nativeBuildInputs = [
+    wrapQtAppsHook
     pkg-config
     cmake
     python3
@@ -43,14 +45,20 @@ mkDerivation {
     jami-libclient
     networkmanager
     libnotify
+    qtbase
+    qt5compat
     qrencode
-    qtwebengine
+    qtnetworkauth
     qtdeclarative
-    qtquickcontrols2
     qtmultimedia
     qtsvg
     qtwebchannel
-    qtgraphicaleffects
+    qtwebengine
+  ];
+
+  qtWrapperArgs = [
+    # With wayland the titlebar is not themed and the wmclass is wrong.
+    "--set-default QT_QPA_PLATFORM xcb"
   ];
 
   meta = jami-meta // {
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
new file mode 100644
index 0000000000000..5c3f607e5c0e4
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_common
@@ -0,0 +1,19 @@
+--disable-sound
+--enable-video
+--enable-ext-sound
+--disable-speex-aec
+--disable-g711-codec
+--disable-l16-codec
+--disable-gsm-codec
+--disable-g722-codec
+--disable-g7221-codec
+--disable-speex-codec
+--disable-ilbc-codec
+--disable-opencore-amr
+--disable-silk
+--disable-sdl
+--disable-ffmpeg
+--disable-v4l2
+--disable-openh264
+--disable-resample
+--disable-libwebrtc
diff --git a/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
new file mode 100644
index 0000000000000..d1292afe3a29f
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/jami/config/pjsip_args_linux
@@ -0,0 +1 @@
+--enable-epoll
diff --git a/pkgs/applications/networking/instant-messengers/jami/daemon.nix b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
index f39b731132ea0..635cc569e86fb 100644
--- a/pkgs/applications/networking/instant-messengers/jami/daemon.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/daemon.nix
@@ -58,16 +58,22 @@ let
 
   pjsip-jami = pjsip.overrideAttrs (old:
     let
-      src-args = import ./pjproject-src.nix;
-      version = lib.concatStrings (lib.lists.take 7 (lib.stringToCharacters src-args.rev));
       patch-src = src + "/daemon/contrib/src/pjproject/";
     in
-    {
-      inherit version;
+    rec {
+      version = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
 
-      src = fetchFromGitHub src-args;
+      src = fetchFromGitHub {
+        owner = "savoirfairelinux";
+        repo = "pjproject";
+        rev = version;
+        sha256 = "sha256-6t+3b7pvvwi+VD05vxtujabEJmWmJTAeyD/Dapav10Y=";
+      };
 
       patches = old.patches ++ (map (x: patch-src + x) (readLinesToList ./config/pjsip_patches));
+
+      configureFlags = (readLinesToList ./config/pjsip_args_common)
+        ++ lib.optionals stdenv.isLinux (readLinesToList ./config/pjsip_args_linux);
     });
 
   opendht-jami = opendht.override {
diff --git a/pkgs/applications/networking/instant-messengers/jami/default.nix b/pkgs/applications/networking/instant-messengers/jami/default.nix
index ef8959b57a97f..32b5a26638988 100644
--- a/pkgs/applications/networking/instant-messengers/jami/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/default.nix
@@ -4,21 +4,21 @@
 , fetchzip
 , jack
 , udev
-, libsForQt5
+, qt6Packages
 }:
 
-rec {
-  version = "20211223.2.37be4c3";
+let
+  version = "20220503.1550.0f35faa";
 
   src = fetchzip {
     url = "https://dl.jami.net/release/tarballs/jami_${version}.tar.gz";
-    sha256 = "1zw9azwmxr4991nq5kl527lbwlj7psrissgvrkl1kxxbfbdncbhh";
+    hash = "sha256-iCmsgjgGogNjj1k0sYRqx59ZEwFZcJOeVGBNyBlcy1M=";
 
     stripRoot = false;
     postFetch = ''
       cd $out
-      mv ring-project/* ./
-      rm -r ring-project.rst ring-project client-android client-ios client-macosx client-uwp
+      mv jami-project/* ./
+      rm -r jami-project.rst jami-project client-android client-ios client-macosx client-uwp
       rm daemon/contrib/tarballs/*
     '';
   };
@@ -30,12 +30,11 @@ rec {
     platforms = platforms.linux;
     maintainers = [ maintainers.linsui ];
   };
-
+in
+rec {
   jami-daemon = callPackage ./daemon.nix { inherit version src udev jack jami-meta; };
 
-  jami-libclient = libsForQt5.callPackage ./libclient.nix { inherit version src jami-meta; };
-
-  jami-client-gnome = libsForQt5.callPackage ./client-gnome.nix { inherit version src jami-meta; };
+  jami-libclient = qt6Packages.callPackage ./libclient.nix { inherit version src jami-meta; };
 
-  jami-client-qt = libsForQt5.callPackage ./client-qt.nix { inherit version src jami-meta; };
+  jami-client-qt = qt6Packages.callPackage ./client-qt.nix { inherit version src jami-meta; };
 }
diff --git a/pkgs/applications/networking/instant-messengers/jami/libclient.nix b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
index b5ea7431b9150..d998fe7a0612a 100644
--- a/pkgs/applications/networking/instant-messengers/jami/libclient.nix
+++ b/pkgs/applications/networking/instant-messengers/jami/libclient.nix
@@ -22,6 +22,7 @@ stdenv.mkDerivation {
 
   buildInputs = [
     jami-daemon
+    jami-daemon.ffmpeg
   ];
 
   patches = [
diff --git a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix b/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
deleted file mode 100644
index 76e88d8875556..0000000000000
--- a/pkgs/applications/networking/instant-messengers/jami/pjproject-src.nix
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  owner = "savoirfairelinux";
-  repo = "pjproject";
-  rev = "e1f389d0b905011e0cb62cbdf7a8b37fc1bcde1a";
-  sha256 = "0inpmyb6mhrzr0g309d6clkc99lddqdvyf9xajz0igvgp9pvgpza";
-}
diff --git a/pkgs/applications/networking/instant-messengers/jami/update.sh b/pkgs/applications/networking/instant-messengers/jami/update.sh
index 10d9bb885c35d..ecf14e25ddaf4 100755
--- a/pkgs/applications/networking/instant-messengers/jami/update.sh
+++ b/pkgs/applications/networking/instant-messengers/jami/update.sh
@@ -3,11 +3,14 @@
 
 set -e
 
-jami_dir="$( dirname "${BASH_SOURCE[0]}" )"
+jami_dir=$(readlink -e $(dirname "${BASH_SOURCE[0]}"))
+
+cd $jami_dir/../../../../..
 
 # Update src version and hash
 version=$(curl -s 'https://dl.jami.net/release/tarballs/?C=M;O=D' | sed -n -E 's/^.*jami_([0-9.a-f]+)\.tar\.gz.*$/\1/p' | head -n 1)
-update-source-version jami-libclient "$version" --file=pkgs/applications/networking/instant-messengers/jami/default.nix
+
+update-source-version jami-libclient "$version" --file=$jami_dir/default.nix
 
 src=$(nix-build --no-out-link -A jami-libclient.src)
 
@@ -43,8 +46,15 @@ echo "${pjsip_patches}" > "$config_dir/pjsip_patches"
 
 # Update pjsip version
 pjsip_version=$(sed -n -E 's/.*PJPROJECT_VERSION := ([0-9a-f]+).*/\1/p' ${src}/daemon/contrib/src/pjproject/rules.mak)
-nix-prefetch fetchFromGitHub \
-  --owner savoirfairelinux \
-  --repo pjproject \
-  --rev ${pjsip_version} \
-  --output nix > "${jami_dir}/pjproject-src.nix"
+update-source-version jami-daemon.pjsip "$pjsip_version" --file=pkgs/applications/networking/instant-messengers/jami/daemon.nix
+
+pjsip_rules="${src}/daemon/contrib/src/pjproject/rules.mak"
+
+# Update pjsip args
+pjsip_args_common=$(sed -n '/PJPROJECT_OPTIONS :=/,/with-gnutls/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*\\/\1/p')
+echo -e "Common args for pjsip:\n${pjsip_args_common}\n"
+echo "${pjsip_args_common}" > "$config_dir/pjsip_args_common"
+
+pjsip_args_linux=$(sed -n '/HAVE_LINUX/,/endif/p' ${pjsip_rules} | sed -n -E 's/.*(--[0-9a-z=_-]+).*/\1/p')
+echo -e "Linux args for pjsip:\n${pjsip_args_linux}\n"
+echo "${pjsip_args_linux}" > "$config_dir/pjsip_args_linux"
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 9646738780802..0ef6b2e74d7b8 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -65,7 +65,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://jitsi.org/";
     description = "Open Source Video Calls and Chat";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.lgpl21Plus;
     platforms = platforms.linux;
     maintainers = teams.jitsi.members;
diff --git a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
index ad3248fabba94..85c3dc86ea0f7 100644
--- a/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
+++ b/pkgs/applications/networking/instant-messengers/matrix-commander/default.nix
@@ -1,38 +1,63 @@
-{ stdenv, lib, fetchFromGitHub, cacert, python3 }:
+{ lib
+, fetchFromGitHub
+, buildPythonApplication
+, cacert
+, setuptools
+, matrix-nio
+, python-magic
+, markdown
+, pillow
+, urllib3
+, aiofiles
+, notify2
+, dbus-python
+, xdg
+, python-olm
+}:
 
-stdenv.mkDerivation {
+buildPythonApplication rec {
   pname = "matrix-commander";
-  version = "unstable-2021-08-05";
+  version = "2.37.3";
 
   src = fetchFromGitHub {
     owner = "8go";
     repo = "matrix-commander";
-    rev = "7ab3fd9a0ef4eb19d882cb3701d2025b4d41b63a";
-    sha256 = "sha256-WWf7GbJxGlqIdsS1d0T1DO0WN2RBepHGgJrl/nt7UIg=";
+    rev = "v${version}";
+    sha256 = "sha256-X5tCPR0EqY1dxViwh8/tEjJM2oo81L3H703pPzWzUv8=";
   };
 
-  buildInputs = [
-    cacert
-    (python3.withPackages(ps: with ps; [
-      matrix-nio
-      magic
-      markdown
-      pillow
-      urllib3
-      aiofiles
-      notify2
-    ]))];
-
-  installPhase = ''
-    runHook preInstall
+  format = "pyproject";
 
-    mkdir -p $out/bin
-    cp $src/matrix-commander.py $out/bin/matrix-commander
-    chmod +x $out/bin/matrix-commander
+  postPatch = ''
+    # Dependencies already bundled with Python
+    sed -i \
+      -e '/uuid/d' \
+      -e '/argparse/d' \
+      -e '/asyncio/d' \
+      -e '/datetime/d' \
+      setup.cfg requirements.txt
 
-    runHook postInstall
+    # Dependencies not correctly detected
+    sed -i \
+      -e '/dbus-python/d' \
+      setup.cfg requirements.txt
   '';
 
+  propagatedBuildInputs = [
+    cacert
+    setuptools
+    matrix-nio
+    python-magic
+    markdown
+    pillow
+    urllib3
+    aiofiles
+    notify2
+    dbus-python
+    xdg
+    python-olm
+  ];
+
   meta = with lib; {
     description = "Simple but convenient CLI-based Matrix client app for sending and receiving";
     homepage = "https://github.com/8go/matrix-commander";
diff --git a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
index 6f53fe2b3a3b2..bb900654d1e8a 100644
--- a/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mattermost-desktop/default.nix
@@ -14,17 +14,17 @@
 let
 
   pname = "mattermost-desktop";
-  version = "5.0.3";
+  version = "5.1.0";
 
   srcs = {
     "x86_64-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-x64.tar.gz";
-      hash = "sha256-KLSWJpNSMGmfugbkFIJLDnxcZtrtBZOGjLlR+kAoMTA=";
+      hash = "sha256-KmtQUqg2ODbZ6zJjsnwlvB+vhR1xbK2X9qqmZpyTR78=";
     };
 
     "i686-linux" = {
       url = "https://releases.mattermost.com/desktop/${version}/${pname}-${version}-linux-ia32.tar.gz";
-      hash = "sha256-4ofjOsfGbgO1PSqQpigNp90JsvlGP1kGexVAR/h3/88=";
+      hash = "sha256-X8Zrthw1hZOqmcYidt72l2vonh31iiA3EDGmCQr7e4c=";
     };
   };
 
@@ -84,6 +84,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mattermost Desktop client";
     homepage = "https://about.mattermost.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ maintainers.joko ];
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix b/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
index ef9dad66b5d65..39403ba774fa3 100644
--- a/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/darwin.nix
@@ -25,6 +25,7 @@ stdenvNoCC.mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mikroskeem ];
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index 7379d769288bd..7fd0bd9bb1d34 100644
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -60,6 +60,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Desktop chat client for Slack and Discord";
     homepage = "https://cancel.fm/ripcord/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # See: https://cancel.fm/ripcord/shareware-redistribution/
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ infinisil ];
diff --git a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
index 71379039de6f2..d854414a36b63 100644
--- a/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rocketchat-desktop/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Official Desktop client for Rocket.Chat";
     homepage = "https://github.com/RocketChat/Rocket.Chat.Electron";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ gbtb ];
     platforms = platforms.x86_64;
diff --git a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
index bca45576db713..e0eff91f983bd 100644
--- a/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "signal-cli";
-  version = "0.10.2";
+  version = "0.10.8";
 
   # Building from source would be preferred, but is much more involved.
   src = fetchurl {
-    url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}.tar.gz";
-    sha256 = "sha256-etCO7sy48A7aL3mnXWitClNiw/E122G4eD6YfVmXEPw=";
+    url = "https://github.com/AsamK/signal-cli/releases/download/v${version}/signal-cli-${version}-Linux.tar.gz";
+    sha256 = "sha256-vZBFYPim/qBC8hJHvp5gK6P2JxIs9rzR/hIMjW3kNM8=";
   };
 
   buildInputs = lib.optionals stdenv.isLinux [ libmatthew_java dbus dbus_java ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index c98fce2bde26c..7d18a8d29252f 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -24,7 +24,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "5.45.1"; # Please backport all updates to the stable channel.
+  version = "5.47.0"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -34,7 +34,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "sha256-ZkQQL05pz06iszguXkrBt/h4PoZcbybX4CmDXOoMYkw=";
+    sha256 = "sha256-aQpylo4/pbHP2an1w6DEhRmU3uvntN/tnYhvaWtNGGg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/sky/default.nix b/pkgs/applications/networking/instant-messengers/sky/default.nix
index 464d4d77f9461..e949625875e58 100644
--- a/pkgs/applications/networking/instant-messengers/sky/default.nix
+++ b/pkgs/applications/networking/instant-messengers/sky/default.nix
@@ -59,6 +59,7 @@ mkDerivation rec {
   meta = {
     description = "Lync & Skype for Business on Linux";
     homepage = "https://tel.red/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.wucke13 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 024ac9a143182..515290ab91559 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -120,6 +120,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Linux client for skype";
     homepage = "https://www.skype.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ panaeon jraygauthier ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 86ed37e54dc00..953d5134377be 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -80,6 +80,7 @@ let
   meta = with lib; {
     description = "Desktop client for Slack";
     homepage = "https://slack.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ mmahut maxeaubrey ];
     platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/instant-messengers/stride/default.nix b/pkgs/applications/networking/instant-messengers/stride/default.nix
deleted file mode 100644
index 026dc5b640567..0000000000000
--- a/pkgs/applications/networking/instant-messengers/stride/default.nix
+++ /dev/null
@@ -1,68 +0,0 @@
-{ lib, stdenv, fetchurl, dpkg, alsa-lib, atk, cairo, cups, dbus, expat, fontconfig
-, freetype, gdk-pixbuf, glib, gnome2, gtk2, nspr, nss, pango, udev, xorg }:
-let
-  fullPath = lib.makeLibraryPath [
-    alsa-lib
-    atk
-    cairo
-    cups
-    dbus
-    expat
-    fontconfig
-    freetype
-    gdk-pixbuf
-    glib
-    gnome2.GConf
-    gtk2
-    nspr
-    nss
-    pango
-    udev
-    xorg.libX11
-    xorg.libXScrnSaver
-    xorg.libXcomposite
-    xorg.libXcursor
-    xorg.libXdamage
-    xorg.libXext
-    xorg.libXfixes
-    xorg.libXi
-    xorg.libXrandr
-    xorg.libXrender
-    xorg.libXtst
-    xorg.libxcb
-  ] + ":${stdenv.cc.cc.lib}/lib64";
-in
-stdenv.mkDerivation rec {
-  version = "1.17.82";
-  pname = "stride";
-
-  src = fetchurl {
-    url = "https://packages.atlassian.com/stride-apt-client/pool/stride_${version}_amd64.deb";
-    sha256 = "0lx61gdhw0kv4f9fwbfg69yq52dsp4db7c4li25d6wn11qanzqhy";
-  };
-
-  dontBuild = true;
-  dontFixup = true;
-
-  buildInputs = [ dpkg ];
-
-  unpackPhase = ''
-    dpkg-deb -x ${src} ./
-  '';
-
-  installPhase =''
-    mkdir "$out"
-    mv usr/* "$out/"
-    patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "${fullPath}:\$ORIGIN" \
-      "$out/bin/stride"
-  '';
-
-  meta = with lib; {
-    description = "Desktop client for Atlassian Stride";
-    homepage = "https://www.stride.com/";
-    license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ puffnfresh ];
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index 07462b4cc26f8..d7831d3fd5386 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -28,6 +28,7 @@ let
     description = "Microsoft Teams";
     homepage = "https://teams.microsoft.com";
     downloadPage = "https://teams.microsoft.com/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ liff tricktron ];
     platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
index 80d04eabc824c..5a0a9006e0df5 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix
@@ -93,6 +93,8 @@ stdenv.mkDerivation rec {
       wrapProgram $out/bin/ts3client \
         --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
         --set QT_PLUGIN_PATH "${qtbase}/${qtbase.qtPluginPrefix}" \
+    '' /* wayland is currently broken, remove when TS3 fixes that */ + ''
+        --set QT_QPA_PLATFORM xcb \
         --set NIX_REDIRECTS /usr/share/X11/xkb=${xkeyboard_config}/share/X11/xkb
     '';
 
@@ -102,6 +104,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "The TeamSpeak voice communication tool";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "Teamspeak client license";
       url = "https://www.teamspeak.com/en/privacy-and-terms/";
diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
index 44430ef62e2d3..577589f6a40b0 100644
--- a/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
+++ b/pkgs/applications/networking/instant-messengers/teamspeak/server.nix
@@ -4,13 +4,13 @@ let
   arch = if stdenv.is64bit then "amd64" else "x86";
 in stdenv.mkDerivation rec {
   pname = "teamspeak-server";
-  version = "3.13.6";
+  version = "3.13.7";
 
   src = fetchurl {
     url = "https://files.teamspeak-services.com/releases/server/${version}/teamspeak3-server_linux_${arch}-${version}.tar.bz2";
     sha256 = if stdenv.is64bit
-      then "sha256-U3BNJ4Jjhd39gD7iMsHT8CGtm/GFQDE2kYQa2btyK+w="
-      else "sha256-8UKiFedv6w5bmqNvo3AXwQnUROwbZnU0ZTh9V17zmxQ=";
+      then "sha256-d1pXMamAmAHkyPkGbNm8ViobNoVTE5wSSfKgdA1QBB4="
+      else "sha256-aMEDOnvBeKfzG8lDFhU8I5DYgG53IsCDBMV2MUyJi2g=";
   };
 
   buildInputs = [ stdenv.cc.cc postgresql.lib ];
@@ -58,6 +58,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "TeamSpeak voice communication server";
     homepage = "https://teamspeak.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     platforms = platforms.linux;
     maintainers = with maintainers; [ arobyn gerschtli ];
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index f871b610a41ae..212092d8a1ff1 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -71,7 +71,7 @@ let
 in
 env.mkDerivation rec {
   pname = "telegram-desktop";
-  version = "3.7.3";
+  version = "4.0.2";
   # Note: Update via pkgs/applications/networking/instant-messengers/telegram/tdesktop/update.py
 
   # Telegram-Desktop with submodules
@@ -80,7 +80,7 @@ env.mkDerivation rec {
     repo = "tdesktop";
     rev = "v${version}";
     fetchSubmodules = true;
-    sha256 = "01b3nrhfbxhq4w63nsjnrhyfsdq3fm4l7sfkasbh8ib4qk3c9vwz";
+    sha256 = "07fhm36394171w0rvay1x9x1br3z36z4dlpi57bkq23dvi331pxj";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
index bb07989531468..9d50168323d50 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/tg_owt.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation {
   pname = "tg_owt";
-  version = "unstable-2022-04-14";
+  version = "unstable-2022-05-08";
 
   src = fetchFromGitHub {
     owner = "desktop-app";
     repo = "tg_owt";
-    rev = "63a934db1ed212ebf8aaaa20f0010dd7b0d7b396";
-    sha256 = "sha256-WddSsQ9KW1zYyYckzdUOvfFZArYAbyvXmABQNMtK6cM=";
+    rev = "10d5f4bf77333ef6b43516f90d2ce13273255f41";
+    sha256 = "02sky7sx73rj8xm1f70vy94zxaab6qiif742fv0vi4y6pfqrngn7";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
index 0951f1d3d8e7d..852abe8e6dc45 100644
--- a/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/threema-desktop/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "threema-desktop";
-  version = "1.2.0";
+  version = "1.2.13";
 
   src = fetchurl {
     # As Threema only offers a Latest Release url, the plan is to upload each
     # new release url to web.archive.org until their Github releases page gets populated.
-    url = "https://web.archive.org/web/20220408213031if_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
-    sha256 = "7c8e1e76ad82a0cf776eb8b0a683a41a00dc8752bb79a24b0ae9d795fdedcde6";
+    url = "https://web.archive.org/web/20220621152620id_/https://releases.threema.ch/web-electron/v1/release/Threema-Latest.deb";
+    sha256 = "sha256-X16GMxUIKUloj0FxhzWQKUBf4zwfSBVg0cwLgGxHPHE=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Desktop client for Threema, a privacy-focused end-to-end encrypted mobile messenger";
     homepage = "https://threema.ch";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/turses/default.nix b/pkgs/applications/networking/instant-messengers/turses/default.nix
index 42dd9f835c9ad..c368c049daf02 100644
--- a/pkgs/applications/networking/instant-messengers/turses/default.nix
+++ b/pkgs/applications/networking/instant-messengers/turses/default.nix
@@ -19,6 +19,10 @@ let
           rev = "v${version}";
           sha256 = "0k4bdlwjna6f1k19jki4xqgckrinkkw8b9wihzymr1l04rwd05nw";
         };
+        propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [
+          super.six
+          super.requests.optional-dependencies.socks
+        ];
         doCheck = false;
       });
     };
diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix
index f8e048edc4b02..be19ec257424b 100644
--- a/pkgs/applications/networking/instant-messengers/viber/default.nix
+++ b/pkgs/applications/networking/instant-messengers/viber/default.nix
@@ -101,6 +101,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "https://www.viber.com";
     description = "An instant messaging and Voice over IP (VoIP) app";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ jagajaga ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
index bb34fd7534c95..a22437bf8da00 100644
--- a/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-cli/default.nix
@@ -47,6 +47,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A console (ncurses) client for vk.com written in D";
     homepage = "https://github.com/vk-cli/vk";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index 5fb0f14f36a04..1d249794d4431 100644
--- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -24,6 +24,7 @@ let
   meta = with lib; {
     description = "Simple and Convenient Messaging App for VK";
     homepage = "https://vk.com/messenger";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = ["i686-linux" "x86_64-linux" "x86_64-darwin"];
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index 4d7a2218e7dfa..304d1bf4255c8 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -47,6 +47,7 @@ let
     '';
     homepage = "https://wire.com/";
     downloadPage = "https://wire.com/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [
       arianvp
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 06f9a2d3e8ee7..37f3c99251067 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -183,6 +183,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://zoom.us/";
     description = "zoom.us video conferencing application";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ danbst tadfisher doronbehar ];
diff --git a/pkgs/applications/networking/insync/default.nix b/pkgs/applications/networking/insync/default.nix
index 380aad6c32914..5992453975d94 100644
--- a/pkgs/applications/networking/insync/default.nix
+++ b/pkgs/applications/networking/insync/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.benley ];
     homepage = "https://www.insynchq.com";
diff --git a/pkgs/applications/networking/insync/v3.nix b/pkgs/applications/networking/insync/v3.nix
index 49a5b892111e5..5efffab51c6cd 100644
--- a/pkgs/applications/networking/insync/v3.nix
+++ b/pkgs/applications/networking/insync/v3.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     platforms = ["x86_64-linux"];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ benley ];
     homepage = "https://www.insynchq.com";
diff --git a/pkgs/applications/networking/ipfs-cluster/default.nix b/pkgs/applications/networking/ipfs-cluster/default.nix
index 85ad97f41b0bc..459610feea745 100644
--- a/pkgs/applications/networking/ipfs-cluster/default.nix
+++ b/pkgs/applications/networking/ipfs-cluster/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "ipfs-cluster";
-  version = "1.0.0";
+  version = "1.0.1";
 
-  vendorSha256 = "sha256-b0k1V1+JikGemSQjyiKcH7cgyDEt0Nn5aVUf6nnE+/0=";
+  vendorSha256 = "sha256-V+fqyrol+hXjjaCBlAs6f7FeqBqa2jTmMO2bvb6HfgY=";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipfs-cluster";
     rev = "v${version}";
-    sha256 = "sha256-vwu+Fj7PegbK9pmnsNuEl/AQz2gejRiFAAAov5+VNMQ=";
+    sha256 = "sha256-dwV5fx52QS2QiBUV8gkJ47tBqT54tEOfSpdXF6hmeLQ=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/ipfs/default.nix b/pkgs/applications/networking/ipfs/default.nix
index f0a3aaa3ba11b..68b68a93ba79e 100644
--- a/pkgs/applications/networking/ipfs/default.nix
+++ b/pkgs/applications/networking/ipfs/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "ipfs";
-  version = "0.12.2"; # When updating, also check if the repo version changed and adjust repoVersion below
+  version = "0.13.0"; # When updating, also check if the repo version changed and adjust repoVersion below
   rev = "v${version}";
 
   repoVersion = "12"; # Also update ipfs-migrator when changing the repo version
@@ -10,7 +10,7 @@ buildGoModule rec {
   # go-ipfs makes changes to it's source tarball that don't match the git source.
   src = fetchurl {
     url = "https://github.com/ipfs/go-ipfs/releases/download/${rev}/go-ipfs-source.tar.gz";
-    sha256 = "sha256-66NNLMSfeBHQh/QlnETB/ssra9CKbD+jtaJuX+14x00=";
+    sha256 = "sha256-eEIHsmtD3vF48RVFHEz28gkVv7u50pMBE8Z+oaM6pLM=";
   };
 
   # tarball contains multiple files/directories
diff --git a/pkgs/applications/networking/ipget/default.nix b/pkgs/applications/networking/ipget/default.nix
index a8888b8e29585..7db196de61f69 100644
--- a/pkgs/applications/networking/ipget/default.nix
+++ b/pkgs/applications/networking/ipget/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ipget";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "ipfs";
     repo = "ipget";
     rev = "v${version}";
-    sha256 = "sha256-qRPke8/CUmGX6v+8qv9JQCUC8T9pjwRRyGmBWvatsJ0=";
+    sha256 = "sha256-gtDmBy7IpZCbeDG8JeKvMoaJmXpjnmKGustaNLIlTlY=";
   };
 
   vendorSha256 = "sha256-La9V5B+UDaOswh/R8ad4xsnCF5ewtF7G+uiqnarM4Mg=";
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 2dc167012221e..601cb127ff1f6 100644
--- a/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
+++ b/pkgs/applications/networking/irc/weechat/scripts/weechat-matrix/default.nix
@@ -2,6 +2,7 @@
 , lib
 , python
 , fetchFromGitHub
+, fetchpatch
 , pyopenssl
 , webcolors
 , future
@@ -33,6 +34,11 @@ in buildPythonPackage {
     hash = "sha256-o4kgneszVLENG167nWnk2FxM+PsMzi+PSyMUMIktZcc=";
   };
 
+  patches = fetchpatch {
+    url = "https://patch-diff.githubusercontent.com/raw/poljar/weechat-matrix/pull/309.patch";
+    sha256 = "sha256-Grdht+TOFvCYRpL7uhPivqL7YzLoNVF3iQNHgbv1Te0=";
+  };
+
   propagatedBuildInputs = [
     pyopenssl
     webcolors
diff --git a/pkgs/applications/networking/jmeter/default.nix b/pkgs/applications/networking/jmeter/default.nix
index 1e7a78e4d4351..935c4ae571efb 100644
--- a/pkgs/applications/networking/jmeter/default.nix
+++ b/pkgs/applications/networking/jmeter/default.nix
@@ -2,10 +2,10 @@
 
 stdenv.mkDerivation rec {
   pname = "jmeter";
-  version = "5.4.3";
+  version = "5.5";
   src = fetchurl {
     url = "https://archive.apache.org/dist/jmeter/binaries/apache-${pname}-${version}.tgz";
-    sha256 = "sha256-clISFMDLh9rFuXTBxug6F6AJx/03e1W/I1JcckA7He4=";
+    sha256 = "sha256-YOicfEUjcxRn/bcX8z1hQIbBDwMWNpy6pFZQrhxALh8=";
   };
 
   nativeBuildInputs = [ makeWrapper jre ];
diff --git a/pkgs/applications/networking/juju/default.nix b/pkgs/applications/networking/juju/default.nix
index b22cea57987c8..ef7b33061dc95 100644
--- a/pkgs/applications/networking/juju/default.nix
+++ b/pkgs/applications/networking/juju/default.nix
@@ -2,20 +2,24 @@
 
 buildGoModule rec {
   pname = "juju";
-  version = "2.9.27";
+  version = "2.9.31";
 
   src = fetchFromGitHub {
     owner = "juju";
     repo = "juju";
     rev = "juju-${version}";
-    sha256 = "sha256-4G+veQkPY6n/uRMsBWQgig/6IDc0Y2nXDpMUyC1ShF4=";
+    sha256 = "sha256-vRe7H7wtZUTsAJa6QVP+BTDDkJsfgIlBVpGcvtU1e0g=";
   };
 
-  vendorSha256 = "sha256-Ieaf+Qp/7/6nv2ftHY3pbtOg+t7dYAuMv4BvhRaAZ9E=";
+  vendorSha256 = "sha256-Tx5RazLrNZ5GMRu4/jKhuNN7m1mQw4V7TBcIed/Gssg=";
 
   # Disable tests because it attempts to use a mongodb instance
   doCheck = false;
 
+  subPackages = [
+    "cmd/juju"
+  ];
+
   meta = with lib; {
     description = "Open source modelling tool for operating software in the cloud";
     homepage = "https://juju.is";
diff --git a/pkgs/applications/networking/mailreaders/electron-mail/default.nix b/pkgs/applications/networking/mailreaders/electron-mail/default.nix
index b6dca7e70b6b5..43f4f5e2f214f 100644
--- a/pkgs/applications/networking/mailreaders/electron-mail/default.nix
+++ b/pkgs/applications/networking/mailreaders/electron-mail/default.nix
@@ -2,12 +2,12 @@
 
 let
   pname = "electron-mail";
-  version = "4.12.7";
+  version = "4.14.0";
   name = "ElectronMail-${version}";
 
   src = fetchurl {
     url = "https://github.com/vladimiry/ElectronMail/releases/download/v${version}/electron-mail-${version}-linux-x86_64.AppImage";
-    sha256 = "42d0b49a2feba628f4845940ffd9607739bd5fcdbe6ba37e15f993c511d21e46";
+    sha256 = "sha256-sahMEj9m10gsceTBnYk8wkWcQoM5s6s1ek1U6u3PTgw=";
   };
 
   appimageContents = appimageTools.extract { inherit name src; };
@@ -24,6 +24,7 @@ in appimageTools.wrapType2 {
 
   extraPkgs = pkgs: with pkgs; [
     libsecret
+    libappindicator-gtk3
   ];
 
   meta = with lib; {
diff --git a/pkgs/applications/networking/mailreaders/mailspring/default.nix b/pkgs/applications/networking/mailreaders/mailspring/default.nix
index 4bc80b84b8470..539e69069f35d 100644
--- a/pkgs/applications/networking/mailreaders/mailspring/default.nix
+++ b/pkgs/applications/networking/mailreaders/mailspring/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
       Mailspring is an open-source mail client forked from Nylas Mail and built with Electron.
       Mailspring's sync engine runs locally, but its source is not open.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ toschmidt doronbehar ];
     homepage = "https://getmailspring.com";
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
index e4e5332e07f33..ba4edfd916f46 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/default.nix
@@ -206,6 +206,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Mozilla Thunderbird, a full-featured email client (binary package)";
     homepage = "http://www.mozilla.org/thunderbird/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with lib.maintainers; [ lovesegfault ];
     platforms = builtins.attrNames mozillaPlatforms;
diff --git a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
index e400592733abb..6f33b95339dc0 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird-bin/release_sources.nix
@@ -1,655 +1,655 @@
 {
-  version = "91.9.1";
+  version = "91.10.0";
   sources = [
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/af/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/af/thunderbird-91.10.0.tar.bz2";
       locale = "af";
       arch = "linux-x86_64";
-      sha256 = "f06c5e87bc9dcbb0d4aa374e262a8bd4b7bb94d5b2aa71e1ba5a61794a07af4d";
+      sha256 = "86d7447a74caaa2433a031cc4ce31aefdaf70ea19f67480f3ff9672d71bf8dc5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ar/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ar/thunderbird-91.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-x86_64";
-      sha256 = "67178dac2f315ba13806c8056f041f083952b4ebab1054a8eb66d97b4d1c5fd2";
+      sha256 = "5871ad2ee0098dad26941876fbfa2140c9f5165bcc71a8e2d2a145cb6a4ce687";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ast/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ast/thunderbird-91.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-x86_64";
-      sha256 = "2858ddc2d594d12a1def62c05bb23c3f91633a866004a9a184b4ad06e294c761";
+      sha256 = "92ef0552c72d35209d7999d6f12a6eee4e332cee5886552b080a03120540a863";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/be/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/be/thunderbird-91.10.0.tar.bz2";
       locale = "be";
       arch = "linux-x86_64";
-      sha256 = "e5fbb0bcc2066dabf1a6d1dcfbf92d1ad4af606aaddce00c2820d84b2bb2005b";
+      sha256 = "2c591361e6ef9a279c0d1738a48b247c9c1b13e73fbd944b87ba892c2ab76a61";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/bg/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/bg/thunderbird-91.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-x86_64";
-      sha256 = "de456b442aac187d49573572c45609b0e0b5f17e9e30a253ff803f9691c4fcc8";
+      sha256 = "e1f6c339ab6d1e9aaa93dbcfb7ad39191d605bb667fc99bbcc2b0f37ddfd7475";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/br/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/br/thunderbird-91.10.0.tar.bz2";
       locale = "br";
       arch = "linux-x86_64";
-      sha256 = "9139317b57b529a3151571274aa37c72790b68c2e310c302b87a490f6e6a2512";
+      sha256 = "198668968f53016ebbde1f7f3b6b5696a60e187b155c1491c3006a923b92f555";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ca/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ca/thunderbird-91.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-x86_64";
-      sha256 = "bfdef191af0ab0622847a751be29449e3ed5b3ad5abd801aa466370a621fa457";
+      sha256 = "bde4c61858491d29281f9d87628dac1916e309a33133bb75c44c33dcbd7622c1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cak/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cak/thunderbird-91.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-x86_64";
-      sha256 = "59fbda2666b1fca61f222fc5394742ce1b712390a6452bd6bd4317254a83ee90";
+      sha256 = "cc0dd9f0b655ac4e6ea3f363e90ff857ac80ab51b98cd6e45876f12b353700d9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cs/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cs/thunderbird-91.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-x86_64";
-      sha256 = "cec215709a2ebc17b25658a640c119a3475409ab4c89d1eae92f24d612bfd07c";
+      sha256 = "c9d6ce6ae9c3bee3a7f9850056f0345f30e0928e30ae58c59be012b453d2c54b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/cy/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/cy/thunderbird-91.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-x86_64";
-      sha256 = "7685a6e54ec1b9f79c92230da7c6f9b102fda697e833d465c212fe53008c20e3";
+      sha256 = "7ff9bb16796f4cc7d2ba9865ca1a1562a5eaa49a2fb233a72706eda6b0f9f566";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/da/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/da/thunderbird-91.10.0.tar.bz2";
       locale = "da";
       arch = "linux-x86_64";
-      sha256 = "dc8ebeb29651025c19ae876b3a500ccd35e137b0ddc862467ba667bac2417426";
+      sha256 = "74c7f9d0791e97638b512c30c6929decb907611744df6db057865fce14193ee0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/de/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/de/thunderbird-91.10.0.tar.bz2";
       locale = "de";
       arch = "linux-x86_64";
-      sha256 = "3750041376f16133da7c8452427acd8d4414eab1f0af84b7349dd2341f679493";
+      sha256 = "327dbe16e4a1a792c05d0767d9d6d7791ded392a51cbcaf7dff0cff05baba8a1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/dsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/dsb/thunderbird-91.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-x86_64";
-      sha256 = "b052464be29215c315ade6793233b2f16bb5874f34890e0a93002c0dc389a677";
+      sha256 = "8095e43e65d728255fc0839969a22f575084195f2c69871748876e7f2d900ce7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/el/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/el/thunderbird-91.10.0.tar.bz2";
       locale = "el";
       arch = "linux-x86_64";
-      sha256 = "cd7a84a8d8c3f11d121abe46174fc5c49328007a27397b945549bf942a54fdce";
+      sha256 = "e95d6fa3a138cbea36ad7ee7f58096f4f9c51ab1a1b13623b99347e32eaad07d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-CA/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-CA/thunderbird-91.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-x86_64";
-      sha256 = "087fa8164027256f86f162205292004e9e4f15dc87f35e49d23876e8b8ce23ad";
+      sha256 = "6a4fbb9c78f124f9bbf03f7e84059c2e9d054568737194d82b14793a6ef5919b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-GB/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-GB/thunderbird-91.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-x86_64";
-      sha256 = "83bf95ac23c269e00dcbd5f4322bdf9adcb2b83bb4ab10e18e4bae435f36878d";
+      sha256 = "2f738301d4234ec319d7f1d473134eb4b762f381585818b0265e63ddea7839cd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/en-US/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/en-US/thunderbird-91.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-x86_64";
-      sha256 = "de2fa8b336e485205f578442fb64fa37c45e6f7d6263648b9dea1556de696df8";
+      sha256 = "99dc59e06b49b1ae01237a5e015760786941c1e4da36a5db580196db3bf42279";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/es-AR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/es-AR/thunderbird-91.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-x86_64";
-      sha256 = "178bf7bafe1f1f2056a5d301107bad4f69fb6e82417544d6ac4afaa541c6b6ac";
+      sha256 = "aa3b2efccf6ce590ecb249cc7fc9790ba4c2577152d5c2c51ffce001b757b020";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/es-ES/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/es-ES/thunderbird-91.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-x86_64";
-      sha256 = "269fe6cde594cb429c69e8a7209874b973259feb954856b30193fab0eb6b9cbf";
+      sha256 = "fc30454fc947469f270306ccdb3884db07b36eda9e14eebc9c7cadf6da722812";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/et/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/et/thunderbird-91.10.0.tar.bz2";
       locale = "et";
       arch = "linux-x86_64";
-      sha256 = "05bc8d02b11bafa75dffb15e14636bd8ec7080be71b0e94d1106bc2802cc571d";
+      sha256 = "feab9b4e3d962e02fceb4d48071755e5d13ff4c7ef5765b3dfa23125017e3932";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/eu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/eu/thunderbird-91.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-x86_64";
-      sha256 = "b6e26cf5fa4b02f6559f1e631b88118a422fd6d957742e2a29269a6a7c5a439a";
+      sha256 = "93a4148dadf6c5f387e8de12211144ba89a088a1d29a69b7ab9965507ab87af2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fi/thunderbird-91.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-x86_64";
-      sha256 = "b4e63104dacef2de6bb1e3fd81765aab27d2c14c0f22a6fa25e7566251fe2a86";
+      sha256 = "58a7afa5afbf9dee4eedfcdc133b26af7eb9f00a44306131bb8e6fea890b002e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fr/thunderbird-91.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-x86_64";
-      sha256 = "60aa0128fcd364f1c2aa9b5523a47a97fbdd0786dd530ae47a1c2524e105e2f4";
+      sha256 = "052bd175e1feec2036e7c517422eda6ee5a3a9a8315c6286c70ac0252dd3aa5d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/fy-NL/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/fy-NL/thunderbird-91.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-x86_64";
-      sha256 = "fe0e864e069dd2a3839bd57aa12fe6bdede11413d0c6d3427682b778d656384a";
+      sha256 = "186a5ffb03c6613e0be9e0800eb45d1c64d7ecc6feedb36ccb457294c9bd6bcc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ga-IE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ga-IE/thunderbird-91.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-x86_64";
-      sha256 = "f7732439d4f11dc6b04a8b6c49677cb00b02cb1d5ee3029d494b101f8d8854c5";
+      sha256 = "8c7d0d746284b3523eb425d636d409c36073c90bf4717411b753782334911d31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/gd/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/gd/thunderbird-91.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-x86_64";
-      sha256 = "e7350fe4363bc840bf2cb782838951eb26809fbfce1ff7d79bf62e5b227b6229";
+      sha256 = "f6553283642c0a723d3a6dfea8713e11e60b4f87fded88881c194623215dcc0b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/gl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/gl/thunderbird-91.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-x86_64";
-      sha256 = "e17f22daf65a19fa89e98f6af699339deb3f908c475e15c6dfc20bc23d6054d8";
+      sha256 = "9e5beac36fe4e6935ce8f67fb657e1bd11cf02884d3937c91ee76508c5386c71";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/he/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/he/thunderbird-91.10.0.tar.bz2";
       locale = "he";
       arch = "linux-x86_64";
-      sha256 = "1a3896d479ff72a68af9a03349bf34bd4fec68e643888f5546c87406e4939d74";
+      sha256 = "23d9fdb0a421a6e430e789e08d4bbc1f62a63ce2d9b6447850a9cad75d7df911";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hr/thunderbird-91.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-x86_64";
-      sha256 = "8bcd244d7d51495b794d65617be5dfb372c7736f484aa3172465d2c88d670b48";
+      sha256 = "370b0951dec22b302959b7b86b50341e2750cbe30b79947323f7c57aca43a3f5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hsb/thunderbird-91.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-x86_64";
-      sha256 = "d79b7265f0f43116f716d0e0038fee6260179edd9c3dc638ba749a719958c876";
+      sha256 = "742280c04ef3164dea8a09a862bf35e6b7f514ae45c4eca77e3c9f5db29cc9c3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hu/thunderbird-91.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-x86_64";
-      sha256 = "c7834d0c25dc031b5e6fdda930779eeb022c048f66982c1fc389f5857da2d16e";
+      sha256 = "1961a0529954ccf3002185496c99cfb57fbb789760b063f6150ff60fd0327ffe";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/hy-AM/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/hy-AM/thunderbird-91.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-x86_64";
-      sha256 = "4b40f15014d95cf48ec88a9023d9b265b3b8718cbaebff19fc502d79219e2511";
+      sha256 = "ed321afebf73524d712c9ff1ab17c26dac84a62bc964258100f8f9dea508f814";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/id/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/id/thunderbird-91.10.0.tar.bz2";
       locale = "id";
       arch = "linux-x86_64";
-      sha256 = "71d5a4f1f97f99b3d6237bec1fe1d22506e30322b9afed3f0a57a285c93ce0f6";
+      sha256 = "187ee986f458ab4a4d1bd27f97060630debe457b1cbf6ad1393972cb06f5b62e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/is/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/is/thunderbird-91.10.0.tar.bz2";
       locale = "is";
       arch = "linux-x86_64";
-      sha256 = "dd041da805c3ad9b64ac99a18170b48b2cbee88eeafc4317f3675732699193a5";
+      sha256 = "c40a74a64af69bf5c783e54e425923075b755cfd71b2a504d1f53ef18e4fc82b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/it/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/it/thunderbird-91.10.0.tar.bz2";
       locale = "it";
       arch = "linux-x86_64";
-      sha256 = "2d7ec87d3cc0bb5a37d989c54770d7faeeb3c142bc108c86e222b2e61883be88";
+      sha256 = "e87bbc257496f09673e622241acd49709fc7d3f0a2a930f602fe58d28c6aa280";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ja/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ja/thunderbird-91.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-x86_64";
-      sha256 = "06fa0ec26eee35b483e056e94f851f052ebec7b8bce7768ced573a4e74c19032";
+      sha256 = "4b2d8bdfab34211addf176941098f05e134511437107dea26318d9d768161be0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ka/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ka/thunderbird-91.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-x86_64";
-      sha256 = "af56172d4f9cab608e286e5955a6faeda694a9bb27206c527dd07e3ce0f0c1ff";
+      sha256 = "eaa402f1a1e06dc8dd2e71454d0d166c3b8e9438d677470c52ee2ccda71b6b23";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/kab/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/kab/thunderbird-91.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-x86_64";
-      sha256 = "98ab11719e9830691fb258174b73bfb3ef496f7654ab87115718326b451187f3";
+      sha256 = "0a24dd8d09cdd938239f1b85b4b2fec04a85358b67895c5002eb990941b719c4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/kk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/kk/thunderbird-91.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-x86_64";
-      sha256 = "75b98581fdbbb0d5292e1d9658b84652702d973d57fd0aa262a60741a60b489d";
+      sha256 = "100e08e5f7e8be506cdd43cf9e60834c539a855811b4e485f4eee4e336cb27d2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ko/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ko/thunderbird-91.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-x86_64";
-      sha256 = "79a7d5557420e452e605283766aebb1c474e171f8890c1606a94364f422bff2f";
+      sha256 = "0f8492d5067a9c5fdd6a01401b70b38e716d9aa479a99c303f6befad567ec267";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/lt/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/lt/thunderbird-91.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-x86_64";
-      sha256 = "e8b544082d722ed2913264d7f19508e3ba4cf4f3af801fea74f75e790e558d9c";
+      sha256 = "8718bd515c8ea10c67d868bf561ec24f55d32aad1661407e5acbecd8cd05b4b5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/lv/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/lv/thunderbird-91.10.0.tar.bz2";
       locale = "lv";
       arch = "linux-x86_64";
-      sha256 = "210ac6d6a4cc603aad294a81821c160051b81cf5078e1db637c908f4b1d326a8";
+      sha256 = "66a5bb836ef7fb15354cdf3feeef049a78a3a3794a796174991208204e23ff6c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ms/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ms/thunderbird-91.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-x86_64";
-      sha256 = "8f068734975c03df942cf9d77e9e6479ab8a4e05f1520fcd377eb7579fec9e3d";
+      sha256 = "b6e14895eb778e3ee279be8a6f318bd339ce20b37478bdf9c8237223b608da95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nb-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nb-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-x86_64";
-      sha256 = "d8dd4e72ace1ec1ee377e845a51d6621da8f79ba231c8de9c1b5c0adc2f00e8c";
+      sha256 = "96ac00744122db7c472c956b45df68625bb9816e1739ef6534edeed6e9811b78";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nl/thunderbird-91.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-x86_64";
-      sha256 = "e31679930f2e74c70d9d474481976f6d633dba8265c368bb1bcea9cbdfa2a674";
+      sha256 = "7b2e84d918c045fdf5f8d72035af4801ffce0f7f772fbba4809811fc02b31d7e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/nn-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/nn-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-x86_64";
-      sha256 = "cfcaf1584954c3c8b97c8a18905129273c6dd028fffb168f9f614bc519d724d7";
+      sha256 = "2b15e70be7d260a3f55206a4847c2ffe89a220e8dd343e45b0359d14d050c60b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pa-IN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pa-IN/thunderbird-91.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-x86_64";
-      sha256 = "b5ebabb96c4cc6df5f7804b62540b9a823089c65e13f3475e16e2e75582dbfe4";
+      sha256 = "79050c2bb8995a1cfe9fe3ca08ad242786e1ffe05821b117023fd8337abe3ef3";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pl/thunderbird-91.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-x86_64";
-      sha256 = "d8ec7636ade35f3128e5076d95a49ff194fe749d8eb8705669894fa91c3743ca";
+      sha256 = "5d1dcc1f3fde8f9e1fe3c8cae3add1faf029b59356c5f18912971210ac682541";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pt-BR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pt-BR/thunderbird-91.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-x86_64";
-      sha256 = "92ed3cd78c2845116dc04d06a4bb1b5f3eb41c01256fdbbe0db83ad51c3fe617";
+      sha256 = "25b933d1c8b8785e0d873041c8cb0938564e3968c78de5dfe2aa70a3f1ff43bc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/pt-PT/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/pt-PT/thunderbird-91.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-x86_64";
-      sha256 = "010cd55542a6564e7df0d720deb1f3fea2094ca6cb0a202448145b25c166b2e7";
+      sha256 = "c31f5696dcb1d5fcddadbf176a2931ba8d16ee865ac661852e3c90365d085fa7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/rm/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/rm/thunderbird-91.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-x86_64";
-      sha256 = "c4e6c659a9668c88f049cbe2c47bf9f70604a23ad40f4b6b52d6b8891ad09a2c";
+      sha256 = "886ff441a250e96f10536e45059870dd8be28c9ae354b6730be395952c87531f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ro/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ro/thunderbird-91.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-x86_64";
-      sha256 = "09a9a803b6a25dc429bef4f9f1e81cc7500b8493307c8462b855c0045fd32ef1";
+      sha256 = "ce5d720d6e5fe4108eda58c4066b5d654dbe5f4e378900edd4670a85425fc0a0";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/ru/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/ru/thunderbird-91.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-x86_64";
-      sha256 = "332ee8695f3fa74ae952ce55a4d91e26c789e8f95d13d05a5eadfff149d2e36c";
+      sha256 = "43f6cc08a90d47163c7fb7dfd50705f1c48578d72ef84692bbb5185874a0dc85";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sk/thunderbird-91.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-x86_64";
-      sha256 = "788a802d157cba9957b6724431143e69519b7d02ef1537c89b9a32220a35045c";
+      sha256 = "28dbf8390ea807e3cf02a0e6a5cafe983c7dfb589b29e68db92fee18c9e29d66";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sl/thunderbird-91.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-x86_64";
-      sha256 = "4a2d9398e4944cb658d2b5ef16b4521123e6a0146b5eb70ebd45c20edb53edfc";
+      sha256 = "a7d8c3f8d16d26cbd1e9e63a0a15dd7db67090d4add02dcef6a642f11b20d591";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sq/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sq/thunderbird-91.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-x86_64";
-      sha256 = "a587c265f6ccde0e1acfef1f196a1a0a81041c9ef58dd829f189508af167727c";
+      sha256 = "3ec2ab4f55478e1d51597c5807786907f6b1c47fa711cffb7c6f4c0fb1ec53ce";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sr/thunderbird-91.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-x86_64";
-      sha256 = "e9f7dd607472504762f568d544b6a34a0e1ffe58c012f7116214fcdeb9c350e6";
+      sha256 = "682c33ed9729ca234cbd15324d915556f586dbaf53ddc5bed2250933eefbdbe9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/sv-SE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/sv-SE/thunderbird-91.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-x86_64";
-      sha256 = "c8fe1447f93e4eed8c3da48efc53de313b86558b4fe6f83f8fc49a87da15385a";
+      sha256 = "7837ab2c244790519c68c915ebf93e4f406aabbd9f6fbd85b9467f5af1d58f4b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/th/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/th/thunderbird-91.10.0.tar.bz2";
       locale = "th";
       arch = "linux-x86_64";
-      sha256 = "cde4dfc3593003fb4c2e10bb9b8b532079766a19b21598f48be55c1e374b12bd";
+      sha256 = "5289586845d249cf8a83c210e5b94b42f2223655d66df84d435654be8c26cf11";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/tr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/tr/thunderbird-91.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-x86_64";
-      sha256 = "f8279a10c110e85f2ad5da42a0fb7597261137fffe1a6b3fc885cd7b9b4fb7f9";
+      sha256 = "ede82641f1c64daea53ee90b00522b62e9d64dd91649be3d4f837947a0428edf";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/uk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/uk/thunderbird-91.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-x86_64";
-      sha256 = "13f6d38d8e12d031988e01affc8bacff6e9b747ea0b84c7b3cecff0a981f2d25";
+      sha256 = "a9dde2af7fcc82ad75c44e749ffc33ee3a9d99e488e741c4835b336280d83520";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/uz/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/uz/thunderbird-91.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-x86_64";
-      sha256 = "c0f39cf07b4f7ba6c327a1d00d28c2f67d7b84311ee8e7d95f9c69c7040e9b7f";
+      sha256 = "51e9159b8ec1ddb0f8b6230e5e2dd5b927acce15c2e44dce757719a3c8a62bed";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/vi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/vi/thunderbird-91.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-x86_64";
-      sha256 = "faf7e817bcea9415b7e4ab90d0db710c83524db188dd61e46c8d9698fd2b66ad";
+      sha256 = "1223164bca2d7a81e547d0561b2cb5a1c8eaac736216633ac4953f9d4cd1c854";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/zh-CN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/zh-CN/thunderbird-91.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-x86_64";
-      sha256 = "0ac8f96c7f47c64019e2b3df1c0eadfbc91e4ad118bf758498918225638a8563";
+      sha256 = "b84098c0548b9fad545605945385df3459808c4bb33fbdcf3d0211e91a43951c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-x86_64/zh-TW/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-x86_64/zh-TW/thunderbird-91.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-x86_64";
-      sha256 = "9a91601a9dd0bae489dd8f8654413cdc2cbd5655ed19bb7f8c73082ea00274ff";
+      sha256 = "f40a600316380294b7b1acbd87c38d1bac76a41630defa59be76af77a0e41649";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/af/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/af/thunderbird-91.10.0.tar.bz2";
       locale = "af";
       arch = "linux-i686";
-      sha256 = "bb9fdc595c8744910d5f15a1a15b5428adf33b50ccccb60286267497b435bbdf";
+      sha256 = "de39f9bc269c0dead5d5ebd4799cc0f59a82e1b62f5a623043ee044b2aabbeb9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ar/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ar/thunderbird-91.10.0.tar.bz2";
       locale = "ar";
       arch = "linux-i686";
-      sha256 = "3e368cd81a31f381c1297ee795589a0965b411b7244342f77a528defa68aa38d";
+      sha256 = "70112b9fee721fe60765b641ea3a21d5aa3ad88ac9a2e7acec3a1904c5bd6a95";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ast/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ast/thunderbird-91.10.0.tar.bz2";
       locale = "ast";
       arch = "linux-i686";
-      sha256 = "475b32d53927258e065fde96aba88eda57f5a24c55fa1ed5b5a95e3f8cad0fbe";
+      sha256 = "638557c111943db57909176692472865cd670acad2b0b14065b111eb1d7509a4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/be/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/be/thunderbird-91.10.0.tar.bz2";
       locale = "be";
       arch = "linux-i686";
-      sha256 = "7b5e4571043d3118147f52db032d123be071528e80742bf2b8ce55879df83e9c";
+      sha256 = "7124ed0fe0c983945873fc5d8ac558b2422e7247236466ebadf85140d57059ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/bg/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/bg/thunderbird-91.10.0.tar.bz2";
       locale = "bg";
       arch = "linux-i686";
-      sha256 = "2b6ac5a76ff80a09a7888150c9a99e2844c5b88bcace220a0422799774e90bab";
+      sha256 = "32d24a735f32b681c191ef8c9d39fd3db8ddb2db7b2c6197abf5eebae074bc2a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/br/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/br/thunderbird-91.10.0.tar.bz2";
       locale = "br";
       arch = "linux-i686";
-      sha256 = "16ed5fbe1963ce35d8c81e47509cc57b8ca9dae57203bc951563e1b56d8ff50a";
+      sha256 = "080820b97c383efdf6a2c93e6ecc0883b17e12cd1d48c7813658fc163632be2f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ca/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ca/thunderbird-91.10.0.tar.bz2";
       locale = "ca";
       arch = "linux-i686";
-      sha256 = "e9e3dea7f36ceb031f0cc3aa200c1dd5c0ef1794b52744ab67ba620b1b547d8b";
+      sha256 = "4e456b2a6750b4cec328c2dceb2cb100b0e5e2baa8df08aa1b980cf7ff01a721";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cak/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cak/thunderbird-91.10.0.tar.bz2";
       locale = "cak";
       arch = "linux-i686";
-      sha256 = "c149d046e0170c81a206664117fe3c6b80c33a8f1197077fc7509f14abc9cfb4";
+      sha256 = "a073806875ee0bb3e733f222291a2778828d3376d988fa42797a3f49f3431389";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cs/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cs/thunderbird-91.10.0.tar.bz2";
       locale = "cs";
       arch = "linux-i686";
-      sha256 = "459cc60f8154379365f5cf5c7404bbc05336fe896306c4449a96867f4a75632d";
+      sha256 = "5d87e3348a3f38cb771c2b634f751a4ad9e1a8a558323a8c2b2e9c5d63f28ab1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/cy/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/cy/thunderbird-91.10.0.tar.bz2";
       locale = "cy";
       arch = "linux-i686";
-      sha256 = "275c63bb06a93328b5463c57d1c58d58bf6c44b8b8eccac6721a16151081862f";
+      sha256 = "739c051f43ddd4caff2a1cfa5c0a474bd7a119418f85e3aedbdd6a67f7af4cc6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/da/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/da/thunderbird-91.10.0.tar.bz2";
       locale = "da";
       arch = "linux-i686";
-      sha256 = "81ed21119de61e828bfec4edebfb01033d650710318bb06f82d873c647a1f692";
+      sha256 = "b69e4beda5462775fddaba2c417552e9979b3861148ffe16457a00453ac183f7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/de/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/de/thunderbird-91.10.0.tar.bz2";
       locale = "de";
       arch = "linux-i686";
-      sha256 = "9bd615839704aade1dc694d83884ef5b30ba55245bb2d3a4be6117684652da95";
+      sha256 = "50fc6716fa6cee435406b44c44adc1fa50a55bee7897b6ffae100504163a802d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/dsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/dsb/thunderbird-91.10.0.tar.bz2";
       locale = "dsb";
       arch = "linux-i686";
-      sha256 = "a308bfba61442aa857dbe118e202fba0b8087af7835e61b8913ad31dce53d9db";
+      sha256 = "1575302de0bc2ecad105e5354ffb6ce3c7bc5e8e391956a67b697c7b6102f961";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/el/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/el/thunderbird-91.10.0.tar.bz2";
       locale = "el";
       arch = "linux-i686";
-      sha256 = "052c90e718185132c939453e397344b6e3c096cca136d12e8b2d9f93055ca8f2";
+      sha256 = "5c085c4777b5aa09d45ee8dd256edef0f6f0dac5eecea3797ddf02b6a370b2e9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-CA/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-CA/thunderbird-91.10.0.tar.bz2";
       locale = "en-CA";
       arch = "linux-i686";
-      sha256 = "000b5958418f22cf0daf32b67842f8a0f05ba679e502b4b8df2dba08cbe51319";
+      sha256 = "dff03c9e38c33b42acd404968b70a00fc89bf1f3b2ac49d4f8675a613d8dcf4c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-GB/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-GB/thunderbird-91.10.0.tar.bz2";
       locale = "en-GB";
       arch = "linux-i686";
-      sha256 = "c39adcf0ad4eb94d95b703b1fd369ee0d6d0037492c0ad9441b2c07190ce6bec";
+      sha256 = "f9fd4455c5c4754aec95e1b00a6e23949e35487480a500b36dbda975e77cdd89";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/en-US/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/en-US/thunderbird-91.10.0.tar.bz2";
       locale = "en-US";
       arch = "linux-i686";
-      sha256 = "7f7658da73a125074822bf560bbc17220adc7d5e0f636e55f62aab48332bdc64";
+      sha256 = "8f9b14194079a4ae7527268e7bb734da50e6b467b81dfb43f959af946dcdc798";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/es-AR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/es-AR/thunderbird-91.10.0.tar.bz2";
       locale = "es-AR";
       arch = "linux-i686";
-      sha256 = "f4ce57dc193ceca6b5b37686e1b2584555b9a9ebb44ac9120434fc424ea7e94f";
+      sha256 = "2d0f59719874d3177cfaf001cc9bb1fb2e04477eba5320de991d3e0d9837112b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/es-ES/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/es-ES/thunderbird-91.10.0.tar.bz2";
       locale = "es-ES";
       arch = "linux-i686";
-      sha256 = "bcf930f5a54abd8b0776bfdf435ec7ed680c15ecce5196eea22abdbdb80db88e";
+      sha256 = "ab259fed2e73489db33d7774c6fc799042d576d82f9e3b08fb05937a35e2b272";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/et/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/et/thunderbird-91.10.0.tar.bz2";
       locale = "et";
       arch = "linux-i686";
-      sha256 = "f1ea30df791704f46ccbac71eba1c78004ad7e2a334bfd730519f046b3a5d7cb";
+      sha256 = "30b7fef94e9bb13b7e4271d41f43c8f7c413c5ebbc3129d2dd9ebb4daf5e859c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/eu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/eu/thunderbird-91.10.0.tar.bz2";
       locale = "eu";
       arch = "linux-i686";
-      sha256 = "e97be105f43e7489ba439a8b32c0e27756270a6a2b8cb1961fc153050163b76e";
+      sha256 = "913ee5425f34fa5f45ac56a94724bc84975ac3a849a45484535edeb3477fda10";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fi/thunderbird-91.10.0.tar.bz2";
       locale = "fi";
       arch = "linux-i686";
-      sha256 = "ddaaee356e7ae031f6727eba22b3d5d2773133a5e5bdac18a4bcc98277a2b729";
+      sha256 = "19be3051972f397b1c2ef7c1aa6a40e030fb81f0ad1287f7cfdf6554c1f5e556";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fr/thunderbird-91.10.0.tar.bz2";
       locale = "fr";
       arch = "linux-i686";
-      sha256 = "ff68f1262723449204431790abbc287112457aa44c5cd7eb8364c067fdc74f60";
+      sha256 = "00845284cb8e1a8ab917484bb0249035c40d4077cb8d6cbb7a5ea7e5aef67d54";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/fy-NL/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/fy-NL/thunderbird-91.10.0.tar.bz2";
       locale = "fy-NL";
       arch = "linux-i686";
-      sha256 = "01cabd0e2f9d342781104d7621f8d40ee66abe1c6f1068c47af6cc8915a39c69";
+      sha256 = "658a6061c730a526ac1cc71c13717d3f8d823cd04409784aec6f0a456e764af8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ga-IE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ga-IE/thunderbird-91.10.0.tar.bz2";
       locale = "ga-IE";
       arch = "linux-i686";
-      sha256 = "c456e890575932351e0a62279c3e4bf512968963251ed653569db42d6ef1db88";
+      sha256 = "4fc23cd0b4fecaaf68ed2f8adbd5b39aa33304485f86a9616a2315fe3d168a40";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/gd/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/gd/thunderbird-91.10.0.tar.bz2";
       locale = "gd";
       arch = "linux-i686";
-      sha256 = "eedc9c0f3787504e93e0c38527f47784ee088bc2d9fcc7ed804b52138bc3d774";
+      sha256 = "f7a43db3c12d4f211564fb0799170799a5f4964b4e88507e33081075e5a338eb";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/gl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/gl/thunderbird-91.10.0.tar.bz2";
       locale = "gl";
       arch = "linux-i686";
-      sha256 = "ce75d1222c1050820c7a43c930c58a71cc8bf8123a5868fb6dd438f23eb1a9a7";
+      sha256 = "d83ffe2851500e7a9d3ccf365781b2b846ac69949a240fe693379e91ae78779f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/he/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/he/thunderbird-91.10.0.tar.bz2";
       locale = "he";
       arch = "linux-i686";
-      sha256 = "645cd8cd584a2c3d610ca2659a1ae320352d296f2cfe55fd8d612cbeb38abe9a";
+      sha256 = "c5eedb0104bcb9ddaf18ea8eb1fa7b9166d8eaa091113fa9bbff95726d068c96";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hr/thunderbird-91.10.0.tar.bz2";
       locale = "hr";
       arch = "linux-i686";
-      sha256 = "17191b00917692eba111da1a01284c52e28cfe22690f6632616b8e304db81e5a";
+      sha256 = "a6842151bda61775795383998dd41de2eae6eeb20231fc3472a651bf917c8e1d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hsb/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hsb/thunderbird-91.10.0.tar.bz2";
       locale = "hsb";
       arch = "linux-i686";
-      sha256 = "f402328a7e331760de91f1eb7acaa7a445cbc50e7f5e00b6c0f02497fc571e4d";
+      sha256 = "7e54059a97e6a9a0e32ee5b27fd997bf1c6e4d597901e0fcbfc193f6dbee2ec1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hu/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hu/thunderbird-91.10.0.tar.bz2";
       locale = "hu";
       arch = "linux-i686";
-      sha256 = "ce8b189d0afd1f9a1276cdc1c54b4ff0fbaf0ea14645538a39a40eb6c5a26baa";
+      sha256 = "05cdaf5d5fe3c551423004a14db8108fd8a0b318d9b543b5c92e5b96dae2b799";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/hy-AM/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/hy-AM/thunderbird-91.10.0.tar.bz2";
       locale = "hy-AM";
       arch = "linux-i686";
-      sha256 = "3dba03a75431f7f054a46a610337518e93a7cfb9a8bde7bfe0f3c2aef0df46fe";
+      sha256 = "9b90223b7acdc109de8c13a9dbf170239b97568aea2f2868540f2e4fe35976b6";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/id/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/id/thunderbird-91.10.0.tar.bz2";
       locale = "id";
       arch = "linux-i686";
-      sha256 = "e3269270781a76ff3ccb013d40e4b18f22a733048016ca9dfd7b82bd6e98e39d";
+      sha256 = "3d8dd56a253ae7f145ced1af66ea97ee3aa3eede126144249f1ee468bb91cfd7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/is/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/is/thunderbird-91.10.0.tar.bz2";
       locale = "is";
       arch = "linux-i686";
-      sha256 = "0db05ecd5d192868743fdc534f76b3d96e1484bf4d196ee459ba2d53fd5ac4a3";
+      sha256 = "99a89bd7a07ecc7aa9e51e6dc95c779f4b7d74139e1ea2fd66b57a34292b4732";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/it/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/it/thunderbird-91.10.0.tar.bz2";
       locale = "it";
       arch = "linux-i686";
-      sha256 = "99acc3cd6a1c81885a565ea09c6668aea1a946b0fced9db475655fba7d0473c4";
+      sha256 = "5a571b40ab772564692420f3a3566693a62ba380076dc230bfbd5e3eded175ec";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ja/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ja/thunderbird-91.10.0.tar.bz2";
       locale = "ja";
       arch = "linux-i686";
-      sha256 = "5ca41905a895b8ad236fc667a5bb01d1ddde37381a65374feb2549f2f21f501d";
+      sha256 = "db77d4d436487b995297edf2cce7adc61d326475d0b24467b3ae8896fba322d9";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ka/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ka/thunderbird-91.10.0.tar.bz2";
       locale = "ka";
       arch = "linux-i686";
-      sha256 = "460434b2096ddbcd58abccdde445a8e06963e5bddc45bb88442781fbcd7b92ae";
+      sha256 = "0d842867562016c2f77f3de42c837c23b360096e7166b363211de3fd0645717c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/kab/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/kab/thunderbird-91.10.0.tar.bz2";
       locale = "kab";
       arch = "linux-i686";
-      sha256 = "8d3877852ebbf78bf637dccc29c9e075757376cc0f0eac8109d0909a7a84531b";
+      sha256 = "b5645eb26f8c2f6b974cdc8f890fc393c037081c557f74934cecc1ba751598a2";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/kk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/kk/thunderbird-91.10.0.tar.bz2";
       locale = "kk";
       arch = "linux-i686";
-      sha256 = "7d51c30a43e3b56ae467fb81704323902d852e2ec98d0551aec500ddfe79829a";
+      sha256 = "b91daa27503bf1a958838aa2ada1f42f6c764fd23bdebbd8074b8038ee43b28d";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ko/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ko/thunderbird-91.10.0.tar.bz2";
       locale = "ko";
       arch = "linux-i686";
-      sha256 = "a61eaaeb6fab5a40b7a3ec25c9aef82364c3de7b6132bf1a0201afca7279ff79";
+      sha256 = "1b1ea7b3b2102cd0010be29e9ae45b1022403c335a29fb54d71bb40812a42cef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/lt/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/lt/thunderbird-91.10.0.tar.bz2";
       locale = "lt";
       arch = "linux-i686";
-      sha256 = "c09b1b265f0c214eaaa864e09584c8b18270b3e1c22101dfaaf8ff0bca930f04";
+      sha256 = "a8b74f238c88e377b889aa97ca126015441bc27086e2b3f2f40481c430d94803";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/lv/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/lv/thunderbird-91.10.0.tar.bz2";
       locale = "lv";
       arch = "linux-i686";
-      sha256 = "7579ec4f5a58f716bc94eb3333672350361d1a3ac11e2434eb7a2026f13d90e5";
+      sha256 = "2f8e62ef1c8d565e85e7adce3142cfc9e86d7eedf305c880da8c660cd63721ef";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ms/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ms/thunderbird-91.10.0.tar.bz2";
       locale = "ms";
       arch = "linux-i686";
-      sha256 = "e5dc0ae6d2d0c99a14fa811030b11b90b5b53b6b9b329d6d642d5c4ab18e550a";
+      sha256 = "06e8c979c877f48c30ac540cf6ef26aabea52f30447b30f2acb4f08693644c45";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nb-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nb-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nb-NO";
       arch = "linux-i686";
-      sha256 = "dc4838ccdfe5c59ac7438fbeea01ff675801b14c216c6f1342206f7826bfa846";
+      sha256 = "e9efcaede89fae1bcbc5bc717edb6fb05243a78446f0160cda2eaaf8022c343e";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nl/thunderbird-91.10.0.tar.bz2";
       locale = "nl";
       arch = "linux-i686";
-      sha256 = "d82604da582c5d3980eda14c488575810ccf20713024e0e0845dbf224cc6e61b";
+      sha256 = "56e697342120540b1c0d53d6a261a5bf8fa2db8e9c7ce4ab88651859fd3b9cc8";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/nn-NO/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/nn-NO/thunderbird-91.10.0.tar.bz2";
       locale = "nn-NO";
       arch = "linux-i686";
-      sha256 = "d47e71a9c2ee42d9f379aa44100a403d89929c1b668a286aa189a5a087898f58";
+      sha256 = "3ee2a8769ad9d8c1d2899350329715e08264769d64bd04a43e0de1fab309f124";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pa-IN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pa-IN/thunderbird-91.10.0.tar.bz2";
       locale = "pa-IN";
       arch = "linux-i686";
-      sha256 = "5aa634d92d4937f628e50ab796ffb65123db63b2392918481eb8a63d14ca5bc5";
+      sha256 = "9d54b69857b27ac6e95362c1f357f42e45a34a7ee8be69de2bf47ab1899498fc";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pl/thunderbird-91.10.0.tar.bz2";
       locale = "pl";
       arch = "linux-i686";
-      sha256 = "56b80fc669ed97371706a1eb13e151362f0b312df531d9832835fb12611e9310";
+      sha256 = "9a54943e207116235c7a28e629b83bf3ecbf583df72bb92dc2b776b260e7ce31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pt-BR/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pt-BR/thunderbird-91.10.0.tar.bz2";
       locale = "pt-BR";
       arch = "linux-i686";
-      sha256 = "801d998fc5544c1cdf68b5b7269638dcd8cf0a7c2d4c8e9fc2cd5f78fa19a9b1";
+      sha256 = "2a19f03062aefa4190e497b9affe77e2d8fadcef170dcdf6af70132eee534352";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/pt-PT/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/pt-PT/thunderbird-91.10.0.tar.bz2";
       locale = "pt-PT";
       arch = "linux-i686";
-      sha256 = "35839a406cb8656ed4625f74e9711419ac91c76952975892fab99b8d175dd768";
+      sha256 = "46ad75c05caf1c6b69e790271c25a00817589665a015005c2cbdf50a7ed6e11f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/rm/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/rm/thunderbird-91.10.0.tar.bz2";
       locale = "rm";
       arch = "linux-i686";
-      sha256 = "86fc3237284821f4f9ca16b7d8aeca3b843b5c9269e42422dd451e39cec6ceef";
+      sha256 = "15dfdc82675221cc29556a6449476b589353d36672c667ff79df1371b8258ea7";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ro/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ro/thunderbird-91.10.0.tar.bz2";
       locale = "ro";
       arch = "linux-i686";
-      sha256 = "ad3dcceec9d00c964b6b5529eb049c8130fdc8c945eced774e6cbf49c6cd2702";
+      sha256 = "8482499c876f7b2b20fcfada58edc20d5b415509cae1872d9c9fe96931cea69b";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/ru/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/ru/thunderbird-91.10.0.tar.bz2";
       locale = "ru";
       arch = "linux-i686";
-      sha256 = "21d61b1b417263236134a8c666103dd1a0dbcf9db23af2ca0fede2710541fc30";
+      sha256 = "0067b61d350821a1b5d15ad1116e3f2b7328a4b3643dd82cf58e7fb03b868475";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sk/thunderbird-91.10.0.tar.bz2";
       locale = "sk";
       arch = "linux-i686";
-      sha256 = "c0c9ce86af798fa0693a382b9df0c3b5d9067c917af16afc46c7e85ee8e96a24";
+      sha256 = "9341b83c530caa540932395ab36c08b74a8691bdd48bc26bd113ebd5a3c29a1f";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sl/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sl/thunderbird-91.10.0.tar.bz2";
       locale = "sl";
       arch = "linux-i686";
-      sha256 = "df974a11f9b1cbcec5252443c53cc653080b1ed5dec80e76461585ee355302de";
+      sha256 = "069325ad5d0e91692ae7c6dadae55c82e43b84e4a83fcfb61d2ae758440d34d1";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sq/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sq/thunderbird-91.10.0.tar.bz2";
       locale = "sq";
       arch = "linux-i686";
-      sha256 = "9c837fec2ad71217761eaa90ab009230eb32a45f8e7eda46a98df57dc623e4f8";
+      sha256 = "6f4d85b148513012025397b768d023c2c635816d7d0d3a30e04b6ea447fdf30a";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sr/thunderbird-91.10.0.tar.bz2";
       locale = "sr";
       arch = "linux-i686";
-      sha256 = "9c952da9ffed908873231c34048eac64f1213cbf7ba322da7cff3dddc33d8859";
+      sha256 = "6eaedef85eec97dbfa2ff587830297a7c355a67d5eb0bb8be2db3d35dd09a5b4";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/sv-SE/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/sv-SE/thunderbird-91.10.0.tar.bz2";
       locale = "sv-SE";
       arch = "linux-i686";
-      sha256 = "3ebdbe94b678e306e84967d6ab627eb0a5256dd4eb0b80b0c1ead10663679c7a";
+      sha256 = "b04c856357f0786f96ff0d49c26e2d83d5d4e11391e44999bf20843c32aecf31";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/th/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/th/thunderbird-91.10.0.tar.bz2";
       locale = "th";
       arch = "linux-i686";
-      sha256 = "96651e467785e0a56662b98aff11b08db1a1ff4ac93af52b797e2617b286db06";
+      sha256 = "9b3b2906819660403d77a26d55c1799518b2cab7e38c49a268727d4384a2dbbd";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/tr/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/tr/thunderbird-91.10.0.tar.bz2";
       locale = "tr";
       arch = "linux-i686";
-      sha256 = "5b5df531ca83c13f317ec88a1cdb643c915dc5d14ef5e7b03c7dd68c1f21ad0d";
+      sha256 = "ec1120ac2ac10abb3a0806198e4edecd214a09d6ffa6ef91d6787780dcdabab5";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/uk/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/uk/thunderbird-91.10.0.tar.bz2";
       locale = "uk";
       arch = "linux-i686";
-      sha256 = "058fc28badd07216bc892c3318c021871d8d7937e2bda126a3f390a7ddca7bb0";
+      sha256 = "1250e53554a6c211ce8717645d5902d72937fe3d25a28c3902cca406270c607c";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/uz/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/uz/thunderbird-91.10.0.tar.bz2";
       locale = "uz";
       arch = "linux-i686";
-      sha256 = "0bb4706398f75ec0704da00c0a9d8e0cff6e7d8105927799898d04b2a7d3b53f";
+      sha256 = "0d507bce1a4c06e601156db34bd4530a408046093d6e8ec46b67021a50d52311";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/vi/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/vi/thunderbird-91.10.0.tar.bz2";
       locale = "vi";
       arch = "linux-i686";
-      sha256 = "8e10bd3577f736c41823203fbbb7738c2f1c9849ba0437a3bf58c06c168abc52";
+      sha256 = "d1e586d8de7eaf779af61a1015f3d3b77bb45e2675d6538d706405f3d184f666";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/zh-CN/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/zh-CN/thunderbird-91.10.0.tar.bz2";
       locale = "zh-CN";
       arch = "linux-i686";
-      sha256 = "94c9f500b85b9276057cfa24bf9f3650b461c002d083e87b5ab0b567cf7a292e";
+      sha256 = "eff56e5044ee73ca0ec1152fb69bcff3e42978284d18ae95c106af93945ef949";
     }
-    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.9.1/linux-i686/zh-TW/thunderbird-91.9.1.tar.bz2";
+    { url = "http://archive.mozilla.org/pub/thunderbird/releases/91.10.0/linux-i686/zh-TW/thunderbird-91.10.0.tar.bz2";
       locale = "zh-TW";
       arch = "linux-i686";
-      sha256 = "1d5e6bd0689e51af1a162d4a599d560631df32f867d34ea451e39348b89ec4cd";
+      sha256 = "1a1fbced83939a71fff43f00ed1b4b94c9c47c5b87370609df9d810d4a72fbaa";
     }
     ];
 }
diff --git a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
index 363b5863569a7..ba52b66ef7276 100644
--- a/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
+++ b/pkgs/applications/networking/mailreaders/thunderbird/packages.nix
@@ -3,13 +3,13 @@
 rec {
   thunderbird = (buildMozillaMach rec {
     pname = "thunderbird";
-    version = "91.9.1";
+    version = "91.10.0";
     application = "comm/mail";
     applicationName = "Mozilla Thunderbird";
     binaryName = pname;
     src = fetchurl {
       url = "mirror://mozilla/thunderbird/releases/${version}/source/thunderbird-${version}.source.tar.xz";
-      sha512 = "997751056ad44367a128aef13ddd55f80798f262644253f814e6e607b3bfc3e33070ed072fa7062586378234cabc7ad106efa26befc3ecb843c5dd02c1498f0f";
+      sha512 = "335d47e93d5fce4ff6e1ec0305cdaa86031f28289cc06f30ab3782bae484ad10ac4b9aa70911787627744277715edffd8ec8c3a2008f00b8b90ea02b0d79fcc8";
     };
     extraPatches = [
       # The file to be patched is different from firefox's `no-buildconfig-ffx90.patch`.
diff --git a/pkgs/applications/networking/mullvad-vpn/default.nix b/pkgs/applications/networking/mullvad-vpn/default.nix
index cf22d8804068d..97dc48f6e0d06 100644
--- a/pkgs/applications/networking/mullvad-vpn/default.nix
+++ b/pkgs/applications/networking/mullvad-vpn/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mullvad/mullvadvpn-app";
     description = "Client for Mullvad VPN";
     changelog = "https://github.com/mullvad/mullvadvpn-app/blob/${version}/CHANGELOG.md";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Br1ght0ne ymarkus flexagoon ];
diff --git a/pkgs/applications/networking/n8n/node-packages.nix b/pkgs/applications/networking/n8n/node-packages.nix
index 1f38f4854d248..e561f872dbbbe 100644
--- a/pkgs/applications/networking/n8n/node-packages.nix
+++ b/pkgs/applications/networking/n8n/node-packages.nix
@@ -490,13 +490,13 @@ let
         sha512 = "WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag==";
       };
     };
-    "@types/express-serve-static-core-4.17.28" = {
+    "@types/express-serve-static-core-4.17.29" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.28";
+      version = "4.17.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz";
-        sha512 = "P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz";
+        sha512 = "uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==";
       };
     };
     "@types/express-unless-0.5.3" = {
@@ -526,6 +526,15 @@ let
         sha512 = "WRT/9taXh9XJRA9yvrbC02IqGZhK9GbFE/vuP2LeSLrqmDzz5wdXsH0Ige/F+3+rbbZfwH3LEazDsU0JiSV3vA==";
       };
     };
+    "@types/glob-7.2.0" = {
+      name = "_at_types_slash_glob";
+      packageName = "@types/glob";
+      version = "7.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz";
+        sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
+      };
+    };
     "@types/json-diff-0.5.2" = {
       name = "_at_types_slash_json-diff";
       packageName = "@types/json-diff";
@@ -580,6 +589,15 @@ let
         sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==";
       };
     };
+    "@types/minimatch-3.0.5" = {
+      name = "_at_types_slash_minimatch";
+      packageName = "@types/minimatch";
+      version = "3.0.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz";
+        sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
+      };
+    };
     "@types/multer-1.4.7" = {
       name = "_at_types_slash_multer";
       packageName = "@types/multer";
@@ -598,22 +616,22 @@ let
         sha512 = "J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==";
       };
     };
-    "@types/node-17.0.41" = {
+    "@types/node-18.0.0" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "17.0.41";
+      version = "18.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.41.tgz";
-        sha512 = "xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz";
+        sha512 = "cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==";
       };
     };
-    "@types/node-fetch-2.6.1" = {
+    "@types/node-fetch-2.6.2" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha512 = "oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz";
+        sha512 = "DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==";
       };
     };
     "@types/promise-ftp-1.3.4" = {
@@ -670,6 +688,15 @@ let
         sha512 = "nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==";
       };
     };
+    "@types/shelljs-0.8.11" = {
+      name = "_at_types_slash_shelljs";
+      packageName = "@types/shelljs";
+      version = "0.8.11";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.11.tgz";
+        sha512 = "x9yaMvEh5BEaZKeVQC4vp3l+QoFj3BXcd4aYfuKSzIIyihjdVARAadYy3SMNIz0WCCdS2vB9JL/U6GQk5PaxQw==";
+      };
+    };
     "@types/snowflake-sdk-1.6.7" = {
       name = "_at_types_slash_snowflake-sdk";
       packageName = "@types/snowflake-sdk";
@@ -1102,13 +1129,13 @@ let
         sha512 = "z4oo33lmnvvNRqfUe3YjDGGpqu/L2+wXBIhMtwq6oqZ+exOUAkQYM6zd2VWKF7AIlajOF8ZZuPFfryTG9iLC/w==";
       };
     };
-    "aws-sdk-2.1152.0" = {
+    "aws-sdk-2.1156.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1152.0";
+      version = "2.1156.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1152.0.tgz";
-        sha512 = "Lqwk0bDhm3vzpYb3AAM9VgGHeDpbB8+o7UJnP9R+CO23kJfi/XRpKihAcbyKDD/AUQ+O1LJaUVpvaJYLS9Am7w==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1156.0.tgz";
+        sha512 = "XLMsSOW6ZyBj6mRgACt1EiUdvd+q0Da5fTjbsEgi1KOENQ0met0CSqgBcpg2EMWgBBV9E2L7uUd98O1uBbGc7g==";
       };
     };
     "aws-sign2-0.7.0" = {
@@ -2047,13 +2074,13 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.22.8" = {
+    "core-js-3.23.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.22.8";
+      version = "3.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz";
-        sha512 = "UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.23.1.tgz";
+        sha512 = "wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -3523,6 +3550,15 @@ let
         sha512 = "O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==";
       };
     };
+    "interpret-1.4.0" = {
+      name = "interpret";
+      packageName = "interpret";
+      version = "1.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz";
+        sha512 = "agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==";
+      };
+    };
     "ioredis-4.28.5" = {
       name = "ioredis";
       packageName = "ioredis";
@@ -3613,6 +3649,15 @@ let
         sha512 = "nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==";
       };
     };
+    "is-core-module-2.9.0" = {
+      name = "is-core-module";
+      packageName = "is-core-module";
+      version = "2.9.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz";
+        sha512 = "+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==";
+      };
+    };
     "is-date-object-1.0.5" = {
       name = "is-date-object";
       packageName = "is-date-object";
@@ -3883,13 +3928,13 @@ let
         sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
       };
     };
-    "iso-639-1-2.1.14" = {
+    "iso-639-1-2.1.15" = {
       name = "iso-639-1";
       packageName = "iso-639-1";
-      version = "2.1.14";
+      version = "2.1.15";
       src = fetchurl {
-        url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.14.tgz";
-        sha512 = "nekI+mmtSpYySPXIXJtWhv/s+06nAU9wQzq4QPu3YSEMmjnkOoippPY+MEdqDP0Pie8/LsOFEuPbUHslLanDag==";
+        url = "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz";
+        sha512 = "7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==";
       };
     };
     "isstream-0.1.2" = {
@@ -4504,13 +4549,13 @@ let
         sha512 = "etgt+n4LlOkGSJbBTV9VROHA5R7ekIPS4vfh+bCAoJgRrJWdqJCBbpS3osRJ/HrT7R68MzMiY3L3sDJ/Fd8aBg==";
       };
     };
-    "mappersmith-2.39.0" = {
+    "mappersmith-2.39.1" = {
       name = "mappersmith";
       packageName = "mappersmith";
-      version = "2.39.0";
+      version = "2.39.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.39.0.tgz";
-        sha512 = "udHrBOOLU3nI2FK4hlnhoZDOT/UzntUJYWTnlJSgBs8GRNsf10Fyk/M6qAfX9Wn6NfZH/KSO5gZ+xHSPTu0gPA==";
+        url = "https://registry.npmjs.org/mappersmith/-/mappersmith-2.39.1.tgz";
+        sha512 = "f0QbIwG7CrwhIu7CZts2BsXyMhhZvmEeEtlHC+At23h4//mFVk0cRNZI+v21lzvvWAIBeE55AwEER7koi8iz/A==";
       };
     };
     "material-colors-1.2.6" = {
@@ -4657,13 +4702,13 @@ let
         sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
       };
     };
-    "minipass-3.2.0" = {
+    "minipass-3.2.1" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.2.0.tgz";
-        sha512 = "rosVvUUjMkTW1UoqXVHzNw937MAKv1ewomUBIqYk0IXPYk+LpVCOV1+kBpzAiQrKGjG3Ta81ZNzk/EcL28zABw==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.2.1.tgz";
+        sha512 = "v5cqJP4WxUVXYXhOOdPiOZEDoF7omSpLivw2GMCL1v/j+xh886bPXKh6SzyA6sa45e4NRQ46IRBEkAazvb6I6A==";
       };
     };
     "minizlib-2.1.2" = {
@@ -4837,13 +4882,13 @@ let
         sha512 = "z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==";
       };
     };
-    "n8n-core-0.121.3" = {
+    "n8n-core-0.122.1" = {
       name = "n8n-core";
       packageName = "n8n-core";
-      version = "0.121.3";
+      version = "0.122.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.121.3.tgz";
-        sha512 = "Jg48X3j6MK0OmfNDeo4Ph1RLpdWjxr36aRAJobZHEaf+tT4iQgFNBcC9OChj/IVYG4lVINTIiPstHWJMyNsF0A==";
+        url = "https://registry.npmjs.org/n8n-core/-/n8n-core-0.122.1.tgz";
+        sha512 = "e2MvpQBfV9y/3A7RE7tAseppKARF1yaoCc8a7OyF8zXHj2w2Qy7i+1YJuDUsqN4X9aMMXwVJiEZbelXtNjJiVQ==";
       };
     };
     "n8n-design-system-0.23.0" = {
@@ -4855,31 +4900,31 @@ let
         sha512 = "3VD+YUPWJ9andodTS3hqxBzLAvr289JDhX5fcS8F0SZD9PU01coUrfl/H5QZwwW9djVvDVdovGweOviAT6w15A==";
       };
     };
-    "n8n-editor-ui-0.147.0" = {
+    "n8n-editor-ui-0.148.0" = {
       name = "n8n-editor-ui";
       packageName = "n8n-editor-ui";
-      version = "0.147.0";
+      version = "0.148.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.147.0.tgz";
-        sha512 = "yjyDFue+ObPDTqp0x5iaAo2vi7nSDqD9ts9DHSUzZgmryMuwdWsukb5YJL7JkoFv8qjtsCp3+fhuD37t7/XymA==";
+        url = "https://registry.npmjs.org/n8n-editor-ui/-/n8n-editor-ui-0.148.0.tgz";
+        sha512 = "q6I6OYGKPAo7Lb3Or1WjVWNOwD7Y3Vsk6ABM8aEuAR4gjQTJkA3yCI2ZLaBm3F05Str6z3CI9nLB2pMP/50H9A==";
       };
     };
-    "n8n-nodes-base-0.179.0" = {
+    "n8n-nodes-base-0.180.0" = {
       name = "n8n-nodes-base";
       packageName = "n8n-nodes-base";
-      version = "0.179.0";
+      version = "0.180.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.179.0.tgz";
-        sha512 = "UM9O5O9i4N/kf0bXIxEAJgNxFxPCym/63MfXPUFy96OzGbNNfreMg2gNFbyTnJuAAEXSjSu3+tCqBfY1Q472bg==";
+        url = "https://registry.npmjs.org/n8n-nodes-base/-/n8n-nodes-base-0.180.0.tgz";
+        sha512 = "ZDjdth9oJM6p9Ogb/l6l1/bp/ckhMh/Y3H+RKAvWd3htUeBJ3f4oLsPHIXOTq1xFhsoovrgvGceE9hZXM1Tt2g==";
       };
     };
-    "n8n-workflow-0.103.0" = {
+    "n8n-workflow-0.104.0" = {
       name = "n8n-workflow";
       packageName = "n8n-workflow";
-      version = "0.103.0";
+      version = "0.104.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.103.0.tgz";
-        sha512 = "DNt9CzF50zlcSWE4h/ZFolIRJS5jAIAFUeJdgsmAsVMB0vwg1PA01sX3mWJwcRTdhfLKj03tp/C7El6zpF7mvw==";
+        url = "https://registry.npmjs.org/n8n-workflow/-/n8n-workflow-0.104.0.tgz";
+        sha512 = "uoglwlCO5Z6moNcBi+t8TXzm1NAVy7a0oeWzq5OK/0k2N0HDBDqn04A5a1gHGAPeCJVS1dDOhXwq69HJ/IjoZg==";
       };
     };
     "named-placeholders-1.1.2" = {
@@ -5512,6 +5557,15 @@ let
         sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
       };
     };
+    "path-parse-1.0.7" = {
+      name = "path-parse";
+      packageName = "path-parse";
+      version = "1.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz";
+        sha512 = "LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==";
+      };
+    };
     "path-to-regexp-0.1.7" = {
       name = "path-to-regexp";
       packageName = "path-to-regexp";
@@ -6124,6 +6178,15 @@ let
         sha512 = "hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==";
       };
     };
+    "rechoir-0.6.2" = {
+      name = "rechoir";
+      packageName = "rechoir";
+      version = "0.6.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz";
+        sha512 = "HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==";
+      };
+    };
     "redis-3.1.2" = {
       name = "redis";
       packageName = "redis";
@@ -6304,6 +6367,15 @@ let
         sha512 = "LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==";
       };
     };
+    "resolve-1.22.0" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.22.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz";
+        sha512 = "Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==";
+      };
+    };
     "restore-cursor-3.1.0" = {
       name = "restore-cursor";
       packageName = "restore-cursor";
@@ -6637,6 +6709,15 @@ let
         sha512 = "uRRBT2MfEOyxuECseCZd28jC1AJ8hmqqneWQ4VWUTgCAFvb3wKU1jLqj6egC4Exrr88ogg3dp+zroH4wJuaXzw==";
       };
     };
+    "shelljs-0.8.5" = {
+      name = "shelljs";
+      packageName = "shelljs";
+      version = "0.8.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz";
+        sha512 = "TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==";
+      };
+    };
     "showdown-2.1.0" = {
       name = "showdown";
       packageName = "showdown";
@@ -6817,13 +6898,13 @@ let
         sha512 = "+idbmIXoYET47hH+d7dfm2epdOMUDjqcB4648sTZ+t2JwoyBFL/insLfB/racrDmsKB3diwsDA696pZMieAC5g==";
       };
     };
-    "ssh2-1.10.0" = {
+    "ssh2-1.11.0" = {
       name = "ssh2";
       packageName = "ssh2";
-      version = "1.10.0";
+      version = "1.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.10.0.tgz";
-        sha512 = "OnKAAmf4j8wCRrXXZv3Tp5lCZkLJZtgZbn45ELiShCg27djDQ3XFGvIzuGsIsf4hdHslP+VdhA9BhUQdTdfd9w==";
+        url = "https://registry.npmjs.org/ssh2/-/ssh2-1.11.0.tgz";
+        sha512 = "nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==";
       };
     };
     "ssh2-sftp-client-7.2.3" = {
@@ -6997,6 +7078,15 @@ let
         sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     };
+    "supports-preserve-symlinks-flag-1.0.0" = {
+      name = "supports-preserve-symlinks-flag";
+      packageName = "supports-preserve-symlinks-flag";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz";
+        sha512 = "ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==";
+      };
+    };
     "swagger-ui-dist-4.12.0" = {
       name = "swagger-ui-dist";
       packageName = "swagger-ui-dist";
@@ -7192,7 +7282,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
-        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+        sha512 = "rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==";
       };
     };
     "to-regex-range-5.0.1" = {
@@ -7228,7 +7318,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz";
-        sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
+        sha512 = "0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==";
       };
     };
     "tough-cookie-2.5.0" = {
@@ -7264,7 +7354,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+        sha512 = "N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==";
       };
     };
     "triple-beam-1.3.0" = {
@@ -7327,7 +7417,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+        sha512 = "McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==";
       };
     };
     "tweetnacl-0.14.5" = {
@@ -7336,7 +7426,7 @@ let
       version = "0.14.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+        sha512 = "KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==";
       };
     };
     "type-fest-0.21.3" = {
@@ -7363,7 +7453,7 @@ let
       version = "0.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+        sha512 = "/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==";
       };
     };
     "typedarray-to-buffer-3.1.5" = {
@@ -7417,7 +7507,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
-        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+        sha512 = "eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==";
       };
     };
     "underscore-1.13.4" = {
@@ -7453,7 +7543,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+        sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==";
       };
     };
     "upper-case-2.0.2" = {
@@ -7489,7 +7579,7 @@ let
       version = "0.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/url/-/url-0.10.3.tgz";
-        sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
+        sha512 = "hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==";
       };
     };
     "url-parse-1.5.10" = {
@@ -7507,7 +7597,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz";
-        sha1 = "955f490aae653ba220b9456a0a8776c199360991";
+        sha512 = "qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw==";
       };
     };
     "utf8-2.1.2" = {
@@ -7516,7 +7606,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz";
-        sha1 = "1fa0d9270e9be850d9b05027f63519bf46457d96";
+        sha512 = "QXo+O/QkLP/x1nyi54uQiG0XrODxdysuQvE5dtVqv7F5K2Qb6FsN+qbr6KhF5wQ20tfcV3VQp0/2x1e1MRSPWg==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -7525,7 +7615,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+        sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
       };
     };
     "util.promisify-1.1.1" = {
@@ -7543,7 +7633,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+        sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==";
       };
     };
     "uuencode-0.0.4" = {
@@ -7552,7 +7642,7 @@ let
       version = "0.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuencode/-/uuencode-0.0.4.tgz";
-        sha1 = "c8d50370885663879385ab37e333c7e8e3b0218c";
+        sha512 = "yEEhCuCi5wRV7Z5ZVf9iV2gWMvUZqKJhAs1ecFdKJ0qzbyaVelmsE3QjYAamehfp9FKLiZbKldd+jklG3O0LfA==";
       };
     };
     "uuid-3.4.0" = {
@@ -7606,7 +7696,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+        sha512 = "BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==";
       };
     };
     "verror-1.10.0" = {
@@ -7615,7 +7705,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        sha512 = "ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==";
       };
     };
     "vm2-3.9.9" = {
@@ -7678,7 +7768,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
-        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
+        sha512 = "2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==";
       };
     };
     "whatwg-url-5.0.0" = {
@@ -7687,7 +7777,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz";
-        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
+        sha512 = "saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==";
       };
     };
     "which-1.3.1" = {
@@ -7714,7 +7804,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+        sha512 = "B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==";
       };
     };
     "wide-align-1.1.5" = {
@@ -7777,7 +7867,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+        sha512 = "gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==";
       };
     };
     "wrap-ansi-6.2.0" = {
@@ -7804,7 +7894,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+        sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
       };
     };
     "ws-7.5.8" = {
@@ -7858,7 +7948,7 @@ let
       version = "9.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+        sha512 = "7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==";
       };
     };
     "xpath.js-1.1.0" = {
@@ -7876,7 +7966,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz";
-        sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
+        sha512 = "xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==";
       };
     };
     "xss-1.0.13" = {
@@ -7921,7 +8011,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+        sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==";
       };
     };
     "yallist-4.0.0" = {
@@ -8020,10 +8110,10 @@ in
   n8n = nodeEnv.buildNodePackage {
     name = "n8n";
     packageName = "n8n";
-    version = "0.181.2";
+    version = "0.182.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/n8n/-/n8n-0.181.2.tgz";
-      sha512 = "ntxmXyiPpRNvvIEG9n9MsMt1WC5ZlP4sLY7W1Ta5oBP66Wacslt2eajL6OiO2yFoJseCkhVRcHR2TwIDk4HeYQ==";
+      url = "https://registry.npmjs.org/n8n/-/n8n-0.182.1.tgz";
+      sha512 = "XwKz/v251gnzexpe80BFLxLAN34IDZI5oCbvtgpp9n9dx0BG9D9jjDY+rvSL8SbNjRrm87bm0RTPLUgKurj2Iw==";
     };
     dependencies = [
       sources."@apidevtools/json-schema-ref-parser-8.0.0"
@@ -8152,19 +8242,21 @@ in
       sources."@types/connect-3.4.35"
       sources."@types/express-4.17.13"
       sources."@types/express-jwt-0.0.42"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/express-unless-0.5.3"
       sources."@types/ftp-0.3.33"
       sources."@types/generic-pool-3.1.10"
+      sources."@types/glob-7.2.0"
       sources."@types/json-diff-0.5.2"
       sources."@types/json-schema-7.0.11"
       sources."@types/jsonwebtoken-8.5.8"
       sources."@types/lodash-4.14.182"
       sources."@types/lossless-json-1.0.1"
       sources."@types/mime-1.3.2"
+      sources."@types/minimatch-3.0.5"
       sources."@types/multer-1.4.7"
-      sources."@types/node-17.0.41"
-      (sources."@types/node-fetch-2.6.1" // {
+      sources."@types/node-18.0.0"
+      (sources."@types/node-fetch-2.6.2" // {
         dependencies = [
           sources."form-data-3.0.1"
         ];
@@ -8175,6 +8267,7 @@ in
       sources."@types/range-parser-1.2.4"
       sources."@types/readable-stream-2.3.13"
       sources."@types/serve-static-1.13.10"
+      sources."@types/shelljs-0.8.11"
       sources."@types/snowflake-sdk-1.6.7"
       sources."@types/swagger-ui-express-4.1.3"
       sources."@types/tough-cookie-2.3.8"
@@ -8236,7 +8329,7 @@ in
         ];
       })
       sources."avsc-5.7.4"
-      (sources."aws-sdk-2.1152.0" // {
+      (sources."aws-sdk-2.1156.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."events-1.1.1"
@@ -8401,7 +8494,7 @@ in
       sources."cookie-0.4.1"
       sources."cookie-parser-1.4.6"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.3"
       sources."crc-32-1.2.2"
       sources."cron-1.7.2"
@@ -8608,6 +8701,7 @@ in
         ];
       })
       sources."internal-slot-1.0.3"
+      sources."interpret-1.4.0"
       sources."ioredis-4.28.5"
       sources."ip-regex-2.1.0"
       sources."ipaddr.js-1.9.1"
@@ -8618,6 +8712,7 @@ in
       sources."is-boolean-object-1.1.2"
       sources."is-buffer-1.1.6"
       sources."is-callable-1.2.4"
+      sources."is-core-module-2.9.0"
       sources."is-date-object-1.0.5"
       sources."is-docker-2.2.1"
       sources."is-extglob-2.1.1"
@@ -8646,7 +8741,7 @@ in
       sources."isarray-1.0.0"
       sources."isbot-3.5.0"
       sources."isexe-2.0.0"
-      sources."iso-639-1-2.1.14"
+      sources."iso-639-1-2.1.15"
       sources."isstream-0.1.2"
       sources."jmespath-0.16.0"
       sources."join-component-1.1.0"
@@ -8752,7 +8847,7 @@ in
       })
       sources."make-error-1.3.6"
       sources."make-error-cause-2.3.0"
-      sources."mappersmith-2.39.0"
+      sources."mappersmith-2.39.1"
       sources."material-colors-1.2.6"
       sources."md5-2.3.0"
       sources."media-typer-0.3.0"
@@ -8768,7 +8863,7 @@ in
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-0.5.6"
       (sources."mock-require-3.0.3" // {
@@ -8805,15 +8900,15 @@ in
         ];
       })
       sources."mz-2.7.0"
-      sources."n8n-core-0.121.3"
+      sources."n8n-core-0.122.1"
       sources."n8n-design-system-0.23.0"
-      sources."n8n-editor-ui-0.147.0"
-      (sources."n8n-nodes-base-0.179.0" // {
+      sources."n8n-editor-ui-0.148.0"
+      (sources."n8n-nodes-base-0.180.0" // {
         dependencies = [
           sources."iconv-lite-0.6.3"
         ];
       })
-      sources."n8n-workflow-0.103.0"
+      sources."n8n-workflow-0.104.0"
       (sources."named-placeholders-1.1.2" // {
         dependencies = [
           sources."lru-cache-4.1.5"
@@ -8905,6 +9000,7 @@ in
       sources."path-dirname-1.0.2"
       sources."path-exists-4.0.0"
       sources."path-is-absolute-1.0.1"
+      sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-4.0.0"
       sources."pause-0.0.1"
@@ -8990,6 +9086,7 @@ in
       })
       sources."readable-web-to-node-stream-2.0.0"
       sources."readdirp-3.6.0"
+      sources."rechoir-0.6.2"
       sources."redis-3.1.2"
       sources."redis-commands-1.7.0"
       sources."redis-errors-1.2.0"
@@ -9020,6 +9117,7 @@ in
       sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
       sources."resize-observer-polyfill-1.5.1"
+      sources."resolve-1.22.0"
       sources."restore-cursor-3.1.0"
       sources."ret-0.1.15"
       sources."retry-0.12.0"
@@ -9073,6 +9171,7 @@ in
       sources."setprototypeof-1.2.0"
       sources."sha.js-2.4.11"
       sources."shell-escape-0.2.0"
+      sources."shelljs-0.8.5"
       (sources."showdown-2.1.0" // {
         dependencies = [
           sources."commander-9.3.0"
@@ -9111,7 +9210,7 @@ in
       sources."sqlstring-2.3.3"
       sources."sse-channel-3.1.1"
       sources."ssf-0.11.2"
-      sources."ssh2-1.10.0"
+      sources."ssh2-1.11.0"
       (sources."ssh2-sftp-client-7.2.3" // {
         dependencies = [
           sources."concat-stream-2.0.0"
@@ -9137,6 +9236,7 @@ in
       sources."strip-ansi-6.0.1"
       sources."strtok3-6.3.0"
       sources."supports-color-7.2.0"
+      sources."supports-preserve-symlinks-flag-1.0.0"
       sources."swagger-ui-dist-4.12.0"
       sources."swagger-ui-express-4.4.0"
       (sources."tar-6.1.11" // {
diff --git a/pkgs/applications/networking/nali/default.nix b/pkgs/applications/networking/nali/default.nix
index 39a07d9d4ab09..f90ec3644c7ca 100644
--- a/pkgs/applications/networking/nali/default.nix
+++ b/pkgs/applications/networking/nali/default.nix
@@ -2,22 +2,22 @@
 
 buildGoModule rec {
   pname = "nali";
-  version = "0.3.2";
+  version = "0.4.2";
 
   src = fetchFromGitHub {
     owner = "zu1k";
     repo = "nali";
     rev = "v${version}";
-    sha256 = "sha256-iRLoUBA+Kzv1/LZQ8HCvR79K1riYErxEWhB0OmvFy2g=";
+    sha256 = "sha256-7NUUX4hDwvMBBQvxiB7P/lNHKgxwOFObdD6DUd0vX5c=";
   };
 
-  vendorSha256 = "sha256-0u6n53hL2+GvqbYpAKN54n7uiTHSsgyjedt20nT1yRc=";
+  vendorSha256 = "sha256-Ld5HehK5MnPwl6KtIl0b4nQRiXO4DjKVPL1iti/WBIQ=";
   subPackages = [ "." ];
 
   meta = with lib; {
     description = "An offline tool for querying IP geographic information and CDN provider";
     homepage = "https://github.com/zu1k/nali";
     license = licenses.mit;
-    maintainers = with maintainers; [ diffumist ];
+    maintainers = with maintainers; [ diffumist xyenon ];
   };
 }
diff --git a/pkgs/applications/networking/newsreaders/raven-reader/default.nix b/pkgs/applications/networking/newsreaders/raven-reader/default.nix
index 0858b4690bb81..f458efd92ebda 100644
--- a/pkgs/applications/networking/newsreaders/raven-reader/default.nix
+++ b/pkgs/applications/networking/newsreaders/raven-reader/default.nix
@@ -2,10 +2,10 @@
 
 let
   pname = "raven-reader";
-  version = "1.0.72";
+  version = "1.0.73";
   src = fetchurl {
     url = "https://github.com/hello-efficiency-inc/raven-reader/releases/download/v${version}/Raven-Reader-${version}.AppImage";
-    sha256 = "sha256-Sx02VMAgmncT9f5Hvs0LugzhD6Z8cWXHx4kn8IG9seU=";
+    sha256 = "sha256-wU99+nDXHGMad94qszw5uThKckk1ToUvjNrIf/yTeTM=";
   };
   appimageContents = appimageTools.extractType2 { inherit pname version src; };
 
diff --git a/pkgs/applications/networking/onionshare/default.nix b/pkgs/applications/networking/onionshare/default.nix
index e7b661ae6ae74..8452d3c26f651 100644
--- a/pkgs/applications/networking/onionshare/default.nix
+++ b/pkgs/applications/networking/onionshare/default.nix
@@ -14,6 +14,7 @@
 , pycrypto
 , pynacl
 , pyside2
+, pysocks
 , pytestCheckHook
 , qrcode
 , qt5
@@ -132,6 +133,7 @@ rec {
       pyside2
       psutil
       qrcode
+      pysocks
     ];
 
     nativeBuildInputs = [ qt5.wrapQtAppsHook ];
diff --git a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
index 8de78c580aaee..fd5424cee3424 100644
--- a/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
+++ b/pkgs/applications/networking/p2p/frostwire/frostwire-bin.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, jre, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  version = "6.9.7";
+  version = "6.9.8";
   pname = "frostwire";
 
   src = fetchurl {
     url = "https://dl.frostwire.com/frostwire/${version}/frostwire-${version}.amd64.tar.gz";
-    sha256 = "sha256-LsmDfNAj10x+txJ4PugyF3Irj/N1reb3ChTvFFIucdc=";
+    sha256 = "sha256-gslNdvxA4rGKg0bjf2KWw7w9NMp3zqrii144AfKsV4s=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -35,7 +35,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.frostwire.com/";
     description = "BitTorrent Client and Cloud File Downloader";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ gavin ];
     platforms = [ "x86_64-linux"];
diff --git a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
index a760a0f96c35c..df314b6591c20 100644
--- a/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/jesec-rtorrent/default.nix
@@ -21,6 +21,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-i7c1jSawHshj1kaXl8tdpelIKU24okeg9K5/+ht6t2k=";
   };
 
+  passthru = {
+    inherit libtorrent;
+  };
+
   nativeBuildInputs = [
     cmake
   ];
diff --git a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
index f166f6d0e29f2..fa459137f1994 100644
--- a/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
+++ b/pkgs/applications/networking/p2p/rakshasa-rtorrent/default.nix
@@ -27,6 +27,10 @@ stdenv.mkDerivation rec {
     hash = "sha256-HTwAs8dfZVXfLRNiT6QpjKGnuahHfoMfYWqdKkedUL0=";
   };
 
+  passthru = {
+    inherit libtorrent;
+  };
+
   nativeBuildInputs = [
     autoconf-archive
     autoreconfHook
diff --git a/pkgs/applications/networking/p2p/soulseekqt/default.nix b/pkgs/applications/networking/p2p/soulseekqt/default.nix
index 0d2fc0fd833cd..c281756bed357 100644
--- a/pkgs/applications/networking/p2p/soulseekqt/default.nix
+++ b/pkgs/applications/networking/p2p/soulseekqt/default.nix
@@ -52,6 +52,7 @@ mkDerivation rec {
   meta = with lib; {
     description = "Official Qt SoulSeek client";
     homepage = "https://www.slsknet.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/p2p/tixati/default.nix b/pkgs/applications/networking/p2p/tixati/default.nix
index 9a0cc70c1999e..bafbb443458aa 100644
--- a/pkgs/applications/networking/p2p/tixati/default.nix
+++ b/pkgs/applications/networking/p2p/tixati/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Torrent client";
     homepage = "http://www.tixati.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ volth ];
diff --git a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
index a170906481cc9..951e42475e18e 100644
--- a/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
+++ b/pkgs/applications/networking/p2p/zeronet-conservancy/default.nix
@@ -1,18 +1,19 @@
 { lib
 , fetchFromGitHub
 , python3Packages
+, nixosTests
 }:
 
 python3Packages.buildPythonApplication rec {
   pname = "zeronet-conservancy";
-  version = "0.7.5";
+  version = "0.7.6";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "zeronet-conservancy";
     repo = "zeronet-conservancy";
     rev = "v${version}";
-    sha256 = "sha256-cq0q5hXEhazHPJODNJ8iL0qAB5DJW6ANST4r/rslvXk=";
+    sha256 = "sha256-tWNU7UJVWB+aRLam6WKV/HaRRTIQvlEgxe4xJYKpXJY=";
   };
 
   propagatedBuildInputs = with python3Packages; [
@@ -35,6 +36,10 @@ python3Packages.buildPythonApplication rec {
       --set PATH ${python3Packages.python}/bin
   '';
 
+  passthru.tests = {
+    nixos-test = nixosTests.zeronet-conservancy;
+  };
+
   meta = with lib; {
     description = "A fork/continuation of the ZeroNet project";
     longDescription = ''
diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix
index 50a26ef50f6a3..4cb3a43640cca 100644
--- a/pkgs/applications/networking/pcloud/default.nix
+++ b/pkgs/applications/networking/pcloud/default.nix
@@ -104,6 +104,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Secure and simple to use cloud storage for your files; pCloud Drive, Electron Edition";
     homepage = "https://www.pcloud.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ patryk27 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/remote/anydesk/default.nix b/pkgs/applications/networking/remote/anydesk/default.nix
index 54d7c5c6813aa..69276c229b3c2 100644
--- a/pkgs/applications/networking/remote/anydesk/default.nix
+++ b/pkgs/applications/networking/remote/anydesk/default.nix
@@ -18,14 +18,14 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "anydesk";
-  version = "6.1.1";
+  version = "6.2.0";
 
   src = fetchurl {
     urls = [
       "https://download.anydesk.com/linux/${pname}-${version}-amd64.tar.gz"
       "https://download.anydesk.com/linux/generic-linux/${pname}-${version}-amd64.tar.gz"
     ];
-    sha256 = "1ai58fsivb8al1279bayl800qavy0kfj40rjhf87g902ap3p4bhh";
+    sha256 = "k85nQH2FWyEXDgB+Pd4yStfNCjkiIGE2vA/YTXLaK4o=";
   };
 
   passthru = {
@@ -85,6 +85,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     inherit description;
     homepage = "https://www.anydesk.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ shyim ];
diff --git a/pkgs/applications/networking/remote/aws-workspaces/default.nix b/pkgs/applications/networking/remote/aws-workspaces/default.nix
index 48b44656ff0af..4eea552810b51 100644
--- a/pkgs/applications/networking/remote/aws-workspaces/default.nix
+++ b/pkgs/applications/networking/remote/aws-workspaces/default.nix
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Client for Amazon WorkSpaces, a managed, secure Desktop-as-a-Service (DaaS) solution";
     homepage = "https://clients.amazonworkspaces.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ]; # TODO Mac support
     maintainers = [ maintainers.mausch ];
diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
index 1ecf805944e25..5051d2308f02c 100644
--- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix
+++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix
@@ -206,6 +206,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     license = licenses.unfree;
     description = "Citrix Workspace";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ pmenke michaeladler ];
     inherit homepage;
diff --git a/pkgs/applications/networking/remote/nice-dcv-client/default.nix b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
index 20b850328875b..23b2727d695d6 100644
--- a/pkgs/applications/networking/remote/nice-dcv-client/default.nix
+++ b/pkgs/applications/networking/remote/nice-dcv-client/default.nix
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "High-performance remote display protocol";
     homepage = "https://aws.amazon.com/hpc/dcv/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ rmcgibbo ];
diff --git a/pkgs/applications/networking/remote/teamviewer/default.nix b/pkgs/applications/networking/remote/teamviewer/default.nix
index ba6d3d3c0f854..5aa6d62209579 100644
--- a/pkgs/applications/networking/remote/teamviewer/default.nix
+++ b/pkgs/applications/networking/remote/teamviewer/default.nix
@@ -96,6 +96,7 @@ mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://www.teamviewer.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     description = "Desktop sharing application, providing remote support and online meetings";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/resilio-sync/default.nix b/pkgs/applications/networking/resilio-sync/default.nix
index bbce0e1d350e3..35b4fa3aef43a 100644
--- a/pkgs/applications/networking/resilio-sync/default.nix
+++ b/pkgs/applications/networking/resilio-sync/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Automatically sync files via secure, distributed technology";
     homepage    = "https://www.resilio.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.unfreeRedistributable;
     platforms   = platforms.linux;
     maintainers = with maintainers; [ domenkozar thoughtpolice cwoac ];
diff --git a/pkgs/applications/networking/scaleft/default.nix b/pkgs/applications/networking/scaleft/default.nix
index 6dca196948d7a..1f340a703611b 100644
--- a/pkgs/applications/networking/scaleft/default.nix
+++ b/pkgs/applications/networking/scaleft/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "ScaleFT provides Zero Trust software which you can use to secure your internal servers and services";
     homepage = "https://www.scaleft.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jloyet ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/sniffers/sngrep/default.nix b/pkgs/applications/networking/sniffers/sngrep/default.nix
index 401d6dfa32cdb..558c7ef864611 100644
--- a/pkgs/applications/networking/sniffers/sngrep/default.nix
+++ b/pkgs/applications/networking/sniffers/sngrep/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "sngrep";
-  version = "1.4.10";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "irontec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-P618QLk85W0oPisAGiRfpCgHCddKutUkGjwdfgsV4Es=";
+    sha256 = "sha256-GxC9+O72GHE8Tc6FReO7EdpZTSaqn9mBpZCYaKybJls=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/spideroak/default.nix b/pkgs/applications/networking/spideroak/default.nix
index 8c0fdfa3b9a7d..0bfc62ccfbb2b 100644
--- a/pkgs/applications/networking/spideroak/default.nix
+++ b/pkgs/applications/networking/spideroak/default.nix
@@ -53,6 +53,7 @@ in stdenv.mkDerivation {
   meta = {
     homepage = "https://spideroak.com";
     description = "Secure online backup and sychronization";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ amorsillo ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/sync/onedrive/default.nix b/pkgs/applications/networking/sync/onedrive/default.nix
index a76be3d318c3c..7b6316631e89c 100644
--- a/pkgs/applications/networking/sync/onedrive/default.nix
+++ b/pkgs/applications/networking/sync/onedrive/default.nix
@@ -14,13 +14,13 @@
 
 stdenv.mkDerivation rec {
   pname = "onedrive";
-  version = "2.4.17";
+  version = "2.4.19";
 
   src = fetchFromGitHub {
     owner = "abraunegg";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-+ADAPxAZNDqLKLz6rAProqSDINDiTZhc2trxJFFMQeA=";
+    hash = "sha256-7kX7gC/1jSZGgV3ZhfebMIn/Y5gXkz22GDP2zpiwUZ4=";
   };
 
   nativeBuildInputs = [ autoreconfHook ldc installShellFiles pkg-config ];
diff --git a/pkgs/applications/networking/sync/rsync/base.nix b/pkgs/applications/networking/sync/rsync/base.nix
deleted file mode 100644
index 27358c3ef5907..0000000000000
--- a/pkgs/applications/networking/sync/rsync/base.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, fetchurl, fetchpatch }:
-
-rec {
-  version = "3.2.4";
-  src = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
-    sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
-  };
-  upstreamPatchTarball = fetchurl {
-    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
-    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
-    sha256 = "sha256-cKWXWQr2xhzz0F1mNCn/n2D/4k5E+cc6TNxp69wTIqQ=";
-  };
-
-  meta = with lib; {
-    description = "Fast incremental file transfer utility";
-    homepage = "https://rsync.samba.org/";
-    license = licenses.gpl3Plus;
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/applications/networking/sync/rsync/default.nix b/pkgs/applications/networking/sync/rsync/default.nix
index 29016bc14af23..f47c9c75367de 100644
--- a/pkgs/applications/networking/sync/rsync/default.nix
+++ b/pkgs/applications/networking/sync/rsync/default.nix
@@ -20,27 +20,32 @@
 , nixosTests
 }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation rec {
   pname = "rsync";
-  version = base.version;
+  version = "3.2.4";
 
-  mainSrc = base.src;
+  srcs = [
+    (fetchurl {
+      # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+      url = "mirror://samba/rsync/src/rsync-${version}.tar.gz";
+      sha256 = "sha256-b3YYONCAUrC2V5z39nN9k+R/AfTaBMXSTTRHt/Kl+tE=";
+    })
+  ] ++ lib.optional enableCopyDevicesPatch (fetchurl {
+    # signed with key 0048 C8B0 26D4 C96F 0E58  9C2F 6C85 9FB1 4B96 A8C5
+    url = "mirror://samba/rsync/rsync-patches-${version}.tar.gz";
+    sha256 = "1wj21v57v135n6fnm2m2dxmb9lhrrg62jgkggldp1gb7d6s4arny";
+  });
 
-  patchesSrc = base.upstreamPatchTarball;
-
-  srcs = [ mainSrc ] ++ lib.optional enableCopyDevicesPatch patchesSrc;
   patches = lib.optional enableCopyDevicesPatch "./patches/copy-devices.diff";
 
+  nativeBuildInputs = [ perl ];
+
   buildInputs = [ libiconv zlib popt ]
     ++ lib.optional enableACLs acl
     ++ lib.optional enableZstd zstd
     ++ lib.optional enableLZ4 lz4
     ++ lib.optional enableOpenSSL openssl
     ++ lib.optional enableXXHash xxHash;
-  nativeBuildInputs = [ perl ];
 
   configureFlags = [
     "--with-nobody-group=nogroup"
@@ -48,12 +53,22 @@ stdenv.mkDerivation rec {
     # disable the included zlib explicitly as it otherwise still compiles and
     # links them even.
     "--with-included-zlib=no"
-  ];
+  ]
+  # Work around issue with cross-compilation:
+  #     configure.sh: error: cannot run test program while cross compiling
+  # Remove once 3.2.4 or more recent is released.
+  # The following PR should fix the cross-compilation issue.
+  # Test using `nix-build -A pkgsCross.aarch64-multiplatform.rsync`.
+  # https://github.com/WayneD/rsync/commit/b7fab6f285ff0ff3816b109a8c3131b6ded0b484
+  ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "--enable-simd=no";
 
   passthru.tests = { inherit (nixosTests) rsyncd; };
 
-  meta = base.meta // {
-    description = "A fast incremental file transfer utility";
+  meta = with lib; {
+    description = "Fast incremental file transfer utility";
+    homepage = "https://rsync.samba.org/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.unix;
     maintainers = with lib.maintainers; [ ehmry kampfschlaefer ];
   };
 }
diff --git a/pkgs/applications/networking/sync/rsync/rrsync.nix b/pkgs/applications/networking/sync/rsync/rrsync.nix
index bb83a9e3cd4e5..d1e6b6ad96eb5 100644
--- a/pkgs/applications/networking/sync/rsync/rrsync.nix
+++ b/pkgs/applications/networking/sync/rsync/rrsync.nix
@@ -1,13 +1,8 @@
 { lib, stdenv, fetchurl, perl, rsync, fetchpatch }:
 
-let
-  base = import ./base.nix { inherit lib fetchurl fetchpatch; };
-in
 stdenv.mkDerivation {
   pname = "rrsync";
-  version = base.version;
-
-  src = base.src;
+  inherit (rsync) version srcs;
 
   buildInputs = [ rsync perl ];
 
@@ -16,6 +11,8 @@ stdenv.mkDerivation {
   dontConfigure = true;
   dontBuild = true;
 
+  inherit (rsync) patches;
+
   postPatch = ''
     substituteInPlace support/rrsync --replace /usr/bin/rsync ${rsync}/bin/rsync
   '';
@@ -26,8 +23,7 @@ stdenv.mkDerivation {
     chmod a+x $out/bin/rrsync
   '';
 
-  meta = base.meta // {
+  meta = rsync.meta // {
     description = "A helper to run rsync-only environments from ssh-logins";
-    maintainers = [ lib.maintainers.kampfschlaefer ];
   };
 }
diff --git a/pkgs/applications/networking/syncthing-gtk/paths.patch b/pkgs/applications/networking/syncthing-gtk/paths.patch
deleted file mode 100644
index 0ba5a4f2db84e..0000000000000
--- a/pkgs/applications/networking/syncthing-gtk/paths.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/syncthing_gtk/configuration.py
-+++ b/syncthing_gtk/configuration.py
-@@ -30,7 +30,7 @@
- 		"autokill_daemon"			: (int, 2),	# 0 - never kill, 1 - always kill, 2 - ask
- 		"daemon_priority"			: (int, 0), # uses nice values
- 		"max_cpus"					: (int, 0), # 0 for all cpus
--		"syncthing_binary"			: (str, "/usr/bin/syncthing"),
-+		"syncthing_binary"			: (str, "@syncthing@"),
- 		"syncthing_arguments"		: (str, ""),
- 		"minimize_on_start"			: (bool, False),
- 		"folder_as_path"			: (bool, True),
---- a/syncthing_gtk/tools.py
-+++ b/syncthing_gtk/tools.py
-@@ -303,7 +303,7 @@
- 			return False
- 		# signal 0 doesn't kill anything, but killall exits with 1 if
- 		# named process is not found
--		p = Popen(["killall", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
-+		p = Popen(["@killall@", "-u", os.environ["USER"], "-q", "-s", "0", "syncthing"])
- 		p.communicate()
- 		return p.returncode == 0
- 	else:
diff --git a/pkgs/applications/networking/syncthing/default.nix b/pkgs/applications/networking/syncthing/default.nix
index fc10b706bdce7..a87f1dfdc44fc 100644
--- a/pkgs/applications/networking/syncthing/default.nix
+++ b/pkgs/applications/networking/syncthing/default.nix
@@ -4,13 +4,13 @@ let
   common = { stname, target, postInstall ? "" }:
     buildGoModule rec {
       pname = stname;
-      version = "1.20.1";
+      version = "1.20.2";
 
       src = fetchFromGitHub {
         owner = "syncthing";
         repo = "syncthing";
         rev = "v${version}";
-        hash = "sha256-QJevD/meVPEHnfwT1Eu3cwfVFU+ab/16eJBl6cuhGdA=";
+        hash = "sha256-U9sM7c2jCEVzTLBawRQGXZTS0jYbFH3OVFk7IkWk2bo=";
       };
 
       vendorSha256 = "sha256-NuiT2GytWaGkgSyl+qoe9DjCCL7wSHc6FU8C6rsy6Vc=";
diff --git a/pkgs/applications/networking/synology-drive-client/default.nix b/pkgs/applications/networking/synology-drive-client/default.nix
index 3184c192b127f..69468c0a4df0d 100644
--- a/pkgs/applications/networking/synology-drive-client/default.nix
+++ b/pkgs/applications/networking/synology-drive-client/default.nix
@@ -7,6 +7,7 @@ let
   meta = with lib; {
     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;
     maintainers = with maintainers; [ jcouyang MoritzBoehme ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/networking/termius/default.nix b/pkgs/applications/networking/termius/default.nix
index b3a267219632f..6a8960367be76 100644
--- a/pkgs/applications/networking/termius/default.nix
+++ b/pkgs/applications/networking/termius/default.nix
@@ -13,7 +13,7 @@
 
 stdenv.mkDerivation rec {
   pname = "termius";
-  version = "7.41.2";
+  version = "7.42.1";
 
   src = fetchurl {
     # find the latest version with
@@ -22,8 +22,8 @@ stdenv.mkDerivation rec {
     # curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_url' -r
     # and the sha512 with
     # curl -H 'X-Ubuntu-Series: 16' https://api.snapcraft.io/api/v1/snaps/details/termius-app | jq '.download_sha512' -r
-    url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_114.snap";
-    sha512 = "298a72858c195fc1d7ac7388ab418876ade32204ce476685da07dee5fd6e19de5e537be45ec01f354e8029d7e5b873988712fa1d31f4d19362712151a7d10b95";
+    url = "https://api.snapcraft.io/api/v1/snaps/download/WkTBXwoX81rBe3s3OTt3EiiLKBx2QhuS_117.snap";
+    sha512 = "1e9a6e14a7046a8297c9f067211257cfbbe4dc121ddf4123271ddb96eccbfa504b6e0d05de2077326127ae1d0b2e571c232125e51bfaa1ef82d6cbf9355f13e6";
   };
 
   desktopItem = makeDesktopItem {
@@ -75,6 +75,7 @@ stdenv.mkDerivation rec {
     description = "A cross-platform SSH client with cloud data sync and more";
     homepage = "https://termius.com/";
     downloadPage = "https://termius.com/linux/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ Br1ght0ne th0rgal ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/networking/tetrd/default.nix b/pkgs/applications/networking/tetrd/default.nix
index 937992a63d718..a9ccf1d2774ff 100644
--- a/pkgs/applications/networking/tetrd/default.nix
+++ b/pkgs/applications/networking/tetrd/default.nix
@@ -78,6 +78,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Share your internet connection from your device to your PC and vice versa through a USB cable";
     homepage = "https://tetrd.app";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Madouura ];
diff --git a/pkgs/applications/networking/warp/default.nix b/pkgs/applications/networking/warp/default.nix
index 3d9f8a0880ba5..7fe54b785206c 100644
--- a/pkgs/applications/networking/warp/default.nix
+++ b/pkgs/applications/networking/warp/default.nix
@@ -17,14 +17,14 @@
 
 stdenv.mkDerivation rec {
   pname = "warp";
-  version = "0.1.2";
+  version = "0.2.0";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "World";
     repo = "warp";
     rev = "v${version}";
-    hash = "sha256-6KWTjfrJr0QkiYHkwy4IKrzQuVUMHc1yILM7ixHBHSQ=";
+    hash = "sha256-AtSU/vN20ePyxhSSl0RB2a4KKpd6PTUCC4n5RIuYVr4=";
   };
 
   postPatch = ''
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Xy/tn5iUqwlmztmTmqUbISAk1xu9vkbMk4CvK4j2ttM=";
+    hash = "sha256-DbKoZLB8XIZy5bIOC6blrNa3x4oCVG0Bl9xp6ARgw0c=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/office/PageEdit/default.nix b/pkgs/applications/office/PageEdit/default.nix
index f313bdcded62b..e003c3a0e516c 100644
--- a/pkgs/applications/office/PageEdit/default.nix
+++ b/pkgs/applications/office/PageEdit/default.nix
@@ -2,13 +2,13 @@
 
 mkDerivation rec {
   pname = "PageEdit";
-  version = "1.7.0";
+  version = "1.9.10";
 
   src = fetchFromGitHub {
     owner = "Sigil-Ebook";
     repo = pname;
     rev = version;
-    hash = "sha256-/t08ZS2iYWIDkco0nhACBQs1X+X77SJ/g+ow7KemfRY=";
+    hash = "sha256-y2Z5enEptiOrwEGBKlo4H4I9ojIPG9KP3BlvTCj4PVY=";
   };
 
   nativeBuildInputs = [ cmake qttranslations ];
diff --git a/pkgs/applications/office/appflowy/default.nix b/pkgs/applications/office/appflowy/default.nix
index 821447fdfa265..82ae850065d89 100644
--- a/pkgs/applications/office/appflowy/default.nix
+++ b/pkgs/applications/office/appflowy/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "An open-source alternative to Notion";
     homepage = "https://www.appflowy.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${version}";
     maintainers = with maintainers; [ darkonion0 ];
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index a9effc7c3ebad..9024260459bf1 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -206,7 +206,7 @@ stdenv.mkDerivation rec {
       - Financial Calculations
     '';
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ domenkozar AndersonTorres ];
+    maintainers = with maintainers; [ domenkozar AndersonTorres rski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/applications/office/jabref/default.nix b/pkgs/applications/office/jabref/default.nix
index 4ebfd7965954a..8d1f639622da9 100644
--- a/pkgs/applications/office/jabref/default.nix
+++ b/pkgs/applications/office/jabref/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     description = "Open source bibliography reference manager";
     homepage = "https://www.jabref.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2;
     platforms = platforms.unix;
     maintainers = [ maintainers.gebner ];
diff --git a/pkgs/applications/office/libreoffice/default.nix b/pkgs/applications/office/libreoffice/default.nix
index 6244b0fbc8cd4..a75c094521352 100644
--- a/pkgs/applications/office/libreoffice/default.nix
+++ b/pkgs/applications/office/libreoffice/default.nix
@@ -121,7 +121,7 @@ let
     optional optionals optionalString;
 
   jre' = jre_minimal.override {
-    modules = [ "java.base" "java.desktop" "java.logging" ];
+    modules = [ "java.base" "java.desktop" "java.logging" "java.sql" ];
   };
 
   importVariant = f: import (./. + "/src-${variant}/${f}");
diff --git a/pkgs/applications/office/mendeley/default.nix b/pkgs/applications/office/mendeley/default.nix
index 3b9963d8dbc7d..e204e04008ca8 100644
--- a/pkgs/applications/office/mendeley/default.nix
+++ b/pkgs/applications/office/mendeley/default.nix
@@ -139,6 +139,7 @@ mkDerivation {
   meta = with lib; {
     homepage = "https://www.mendeley.com";
     description = "A reference manager and academic social network";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers  = with maintainers; [ dtzWill ];
diff --git a/pkgs/applications/office/moneyplex/default.nix b/pkgs/applications/office/moneyplex/default.nix
index 4038f5fd435a0..742e4dc9e2930 100644
--- a/pkgs/applications/office/moneyplex/default.nix
+++ b/pkgs/applications/office/moneyplex/default.nix
@@ -114,6 +114,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Moneyplex online banking software";
     maintainers = with maintainers; [ tstrobel ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = licenses.unfree;
     downloadPage = "http://matrica.de/download/download.html";
diff --git a/pkgs/applications/office/morgen/default.nix b/pkgs/applications/office/morgen/default.nix
index e3390e54ee397..0e5332b953e59 100644
--- a/pkgs/applications/office/morgen/default.nix
+++ b/pkgs/applications/office/morgen/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "All-in-one Calendars, Tasks and Scheduler";
     homepage = "https://morgen.so/download";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/onlyoffice-bin/default.nix b/pkgs/applications/office/onlyoffice-bin/default.nix
index 214b8376d8d6b..8e1b7eb790204 100644
--- a/pkgs/applications/office/onlyoffice-bin/default.nix
+++ b/pkgs/applications/office/onlyoffice-bin/default.nix
@@ -171,6 +171,7 @@ stdenv.mkDerivation rec {
     downloadPage = "https://github.com/ONLYOFFICE/DesktopEditors/releases";
     changelog = "https://github.com/ONLYOFFICE/DesktopEditors/blob/master/CHANGELOG.md";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ nh2 gtrunsec ];
   };
diff --git a/pkgs/applications/office/paperless-ngx/default.nix b/pkgs/applications/office/paperless-ngx/default.nix
index 18b22217004f1..75bc494d3a879 100644
--- a/pkgs/applications/office/paperless-ngx/default.nix
+++ b/pkgs/applications/office/paperless-ngx/default.nix
@@ -196,6 +196,6 @@ py.pkgs.pythonPackages.buildPythonApplication rec {
     description = "A supercharged version of paperless: scan, index, and archive all of your physical documents";
     homepage = "https://paperless-ngx.readthedocs.io/en/latest/";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ lukegb gador earvstedt ];
+    maintainers = with maintainers; [ lukegb gador erikarvstedt ];
   };
 }
diff --git a/pkgs/applications/office/portfolio/default.nix b/pkgs/applications/office/portfolio/default.nix
index 835f96d2158a9..30da3b3520459 100644
--- a/pkgs/applications/office/portfolio/default.nix
+++ b/pkgs/applications/office/portfolio/default.nix
@@ -25,11 +25,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "PortfolioPerformance";
-  version = "0.58.3";
+  version = "0.58.5";
 
   src = fetchurl {
     url = "https://github.com/buchen/portfolio/releases/download/${version}/PortfolioPerformance-${version}-linux.gtk.x86_64.tar.gz";
-    sha256 = "sha256-hm7iIYv4egd79G+LfetFSFLQRnfechJIY3k5Dys63vY=";
+    sha256 = "sha256-7olUx0JmztNb6uFsxKwOkBqkbMEiy2vb+iHqBe5I1PM=";
   };
 
   nativeBuildInputs = [
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A 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 oyren shawn8901 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/qownnotes/default.nix b/pkgs/applications/office/qownnotes/default.nix
index 3fd9c3410693a..7df8a607f4dfa 100644
--- a/pkgs/applications/office/qownnotes/default.nix
+++ b/pkgs/applications/office/qownnotes/default.nix
@@ -5,13 +5,13 @@
 
 mkDerivation rec {
   pname = "qownnotes";
-  version = "22.5.0";
+  version = "22.6.1";
 
   src = fetchurl {
     url = "https://download.tuxfamily.org/${pname}/src/${pname}-${version}.tar.xz";
     # Fetch the checksum of current version with curl:
     # curl https://download.tuxfamily.org/qownnotes/src/qownnotes-<version>.tar.xz.sha256
-    sha256 = "52a81401a4a03c77e28f37f56c3ebdc6696ff43c75cc9330d10ba7e801f48ccd";
+    sha256 = "c5b2075d42298d28f901ad2df8eb65f5a61aa59727fae9eeb1f92dac1b63d8ba";
   };
 
   nativeBuildInputs = [ qmake qttools ];
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 3c139e1eead73..6162aa2326062 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -122,6 +122,7 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "An office suite with a word processor, spreadsheet and presentation program";
     homepage = "https://www.softmaker.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/office/super-productivity/default.nix b/pkgs/applications/office/super-productivity/default.nix
index ccb4cea95ecb2..4095536082350 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 = "7.10.1";
+  version = "7.11.5";
 
   src = fetchurl {
     url = "https://github.com/johannesjo/super-productivity/releases/download/v${version}/superProductivity-${version}.AppImage";
-    sha256 = "sha256-jhCsC5G8epyclp2+DYpot1UMjo5mkMa0UO0bQZ1T0Ug=";
+    sha256 = "sha256-+RMQd2iQmvFfgBhpa5T5SQJsn9wZ3qocDkO9b0O+CsE=";
     name = "${pname}-${version}.AppImage";
   };
 
diff --git a/pkgs/applications/office/watson/default.nix b/pkgs/applications/office/watson/default.nix
index eb3f5496522e9..a1a6fd3330577 100644
--- a/pkgs/applications/office/watson/default.nix
+++ b/pkgs/applications/office/watson/default.nix
@@ -1,4 +1,4 @@
-{ lib, fetchFromGitHub, python3, installShellFiles }:
+{ lib, fetchFromGitHub, python3, installShellFiles, fetchpatch }:
 
 with python3.pkgs;
 
@@ -13,6 +13,15 @@ buildPythonApplication rec {
     sha256 = "sha256-/AASYeMkt18KPJljAjNPRYOpg/T5xuM10LJq4LrFD0g=";
   };
 
+  patches = [
+    # https://github.com/TailorDev/Watson/pull/473
+    (fetchpatch {
+      name = "fix-completion.patch";
+      url = "https://github.com/TailorDev/Watson/commit/43ad061a981eb401c161266f497e34df891a5038.patch";
+      sha256 = "sha256-v8/asP1wooHKjyy9XXB4Rtf6x+qmGDHpRoHEne/ZCxc=";
+    })
+  ];
+
   postInstall = ''
     installShellCompletion --bash --name watson watson.completion
     installShellCompletion --zsh --name _watson watson.zsh-completion
diff --git a/pkgs/applications/office/wpsoffice/default.nix b/pkgs/applications/office/wpsoffice/default.nix
index 46f2569b13ab2..d909b26526a90 100644
--- a/pkgs/applications/office/wpsoffice/default.nix
+++ b/pkgs/applications/office/wpsoffice/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.wps.com/";
     platforms = [ "x86_64-linux" ];
     hydraPlatforms = [];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mlatus th0rgal ];
   };
diff --git a/pkgs/applications/office/zotero/default.nix b/pkgs/applications/office/zotero/default.nix
index 7baac9f35fd6a..b5c1467f69182 100644
--- a/pkgs/applications/office/zotero/default.nix
+++ b/pkgs/applications/office/zotero/default.nix
@@ -41,12 +41,12 @@
 
 stdenv.mkDerivation rec {
   pname = "zotero";
-  version = "6.0.4";
+  version = "6.0.8";
 
   src = fetchurl {
     url =
       "https://download.zotero.org/client/release/${version}/Zotero-${version}_linux-x86_64.tar.bz2";
-    sha256 = "sha256-KPvsyN3qpnG8/qRwTlWe2mZWnI9OfxlHu6OUubItJZc=";
+    sha256 = "sha256-S3s82F6kpjIOIqMIxlZIBT/7eNpLf6dHjOOaCYxdh6E=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook ];
@@ -149,6 +149,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.zotero.org";
     description = "Collect, organize, cite, and share your research sources";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.agpl3Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ i077 ];
diff --git a/pkgs/applications/radio/gnuradio/3.9.nix b/pkgs/applications/radio/gnuradio/3.9.nix
index 989722fdc3ecd..d607823bfeec4 100644
--- a/pkgs/applications/radio/gnuradio/3.9.nix
+++ b/pkgs/applications/radio/gnuradio/3.9.nix
@@ -46,13 +46,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.9";
-  minor = "6";
+  minor = "7";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-0JODgv9MNOkHDQYTVCZMzjr/G542+NvGP9wlH9iwLeg=";
+  sourceSha256 = "sha256-6HEvQsV2JCkgNvBYsy1jfSTUIwEnrKJTzXNIVcPeWFQ=";
   featuresInfo = {
     # Needed always
     basic = {
diff --git a/pkgs/applications/radio/gnuradio/default.nix b/pkgs/applications/radio/gnuradio/default.nix
index 14a4763259fa9..8a9ca156ec1a8 100644
--- a/pkgs/applications/radio/gnuradio/default.nix
+++ b/pkgs/applications/radio/gnuradio/default.nix
@@ -48,13 +48,13 @@
 , pname ? "gnuradio"
 , versionAttr ? {
   major = "3.10";
-  minor = "2";
+  minor = "3";
   patch = "0";
 }
 }:
 
 let
-  sourceSha256 = "sha256-WcfmW39wHhFdpbdBSjOfuDkxL8/fuMjjJoLUyCUud/o=";
+  sourceSha256 = "sha256-pH0nvZBUto9jXSN6fXD5vP1lIBwCMuFAvF2qT5dYsHU=";
   featuresInfo = {
     # Needed always
     basic = {
diff --git a/pkgs/applications/radio/js8call/cmake.patch b/pkgs/applications/radio/js8call/cmake.patch
new file mode 100644
index 0000000000000..04552eac40ecc
--- /dev/null
+++ b/pkgs/applications/radio/js8call/cmake.patch
@@ -0,0 +1,69 @@
+diff --git a/CMake/Modules/Findhamlib.cmake b/CMake/Modules/Findhamlib.cmake
+index 1590f05..e797851 100644
+--- a/CMake/Modules/Findhamlib.cmake
++++ b/CMake/Modules/Findhamlib.cmake
+@@ -47,7 +47,7 @@ if (NOT PC_HAMLIB_FOUND)
+ 
+   # libusb-1.0 has no pkg-config file on Windows so we have to find it
+   # ourselves
+-  find_library (LIBUSB NAMES usb-1.0 PATH_SUFFIXES MinGW32/dll)
++  find_library (LIBUSB NAMES libusb-1.0 usb-1.0 PATH_SUFFIXES MinGW32/dll)
+   if (LIBUSB)
+     set (hamlib_EXTRA_LIBRARIES ${LIBUSB} ${hamlib_EXTRA_LIBRARIES})
+     get_filename_component (hamlib_libusb_path ${LIBUSB} PATH)
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 75b80b3..7c04265 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -558,7 +558,6 @@ find_package (FFTW3 COMPONENTS double single threads REQUIRED)
+ #
+ # libhamlib setup
+ #
+-set (hamlib_STATIC 1)
+ find_package (hamlib 3 REQUIRED)
+ find_program (RIGCTL_EXE rigctl)
+ find_program (RIGCTLD_EXE rigctld)
+@@ -576,6 +576,7 @@ message (STATUS "hamlib_LIBRARY_DIRS: ${hamlib_LIBRARY_DIRS}")
+ find_package (Qt5Widgets 5 REQUIRED)
+ find_package (Qt5Multimedia 5 REQUIRED)
+ find_package (Qt5PrintSupport 5 REQUIRED)
++find_package (Qt5SerialPort 5 REQUIRED)
+ 
+ if (WIN32)
+   add_definitions (-DQT_NEEDS_QTMAIN)
+@@ -849,7 +850,7 @@ target_link_libraries (qcp Qt5::Widgets Qt5::PrintSupport)
+ add_library (wsjt_qt STATIC ${wsjt_qt_CXXSRCS} ${wsjt_qt_GENUISRCS} ${GENAXSRCS})
+ # set wsjtx_udp exports to static variants
+ target_compile_definitions (wsjt_qt PUBLIC UDP_STATIC_DEFINE)
+-target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network)
++target_link_libraries (wsjt_qt qcp Qt5::Widgets Qt5::Network Qt5::SerialPort)
+ target_include_directories (wsjt_qt BEFORE PRIVATE ${hamlib_INCLUDE_DIRS})
+ if (WIN32)
+   target_link_libraries (wsjt_qt Qt5::AxContainer Qt5::AxBase)
+@@ -959,7 +960,6 @@ else ()
+       )
+   endif ()
+ endif ()
+-qt5_use_modules (js8call SerialPort) # not sure why the interface link library syntax above doesn't work
+ 
+ # if (UNIX)
+ #   if (NOT WSJT_SKIP_MANPAGES)
+@@ -1292,3 +1292,5 @@ configure_file ("${PROJECT_SOURCE_DIR}/CMakeCPackOptions.cmake.in"
+ set (CPACK_PROJECT_CONFIG_FILE "${PROJECT_BINARY_DIR}/CMakeCPackOptions.cmake")
+ 
+ include (CPack)
++
++add_definitions (-DJS8_USE_HAMLIB_THREE)
+diff --git a/Configuration.cpp b/Configuration.cpp
+index 8258f97..63a29bb 100644
+--- a/Configuration.cpp
++++ b/Configuration.cpp
+@@ -160,7 +160,7 @@
+ #include <QFont>
+ #include <QFontDialog>
+ #include <QColorDialog>
+-#include <QSerialPortInfo>
++#include <QtSerialPort/QSerialPortInfo>
+ #include <QScopedPointer>
+ #include <QDateTimeEdit>
+ #include <QProcess>
diff --git a/pkgs/applications/radio/js8call/default.nix b/pkgs/applications/radio/js8call/default.nix
new file mode 100644
index 0000000000000..e89d3445697f4
--- /dev/null
+++ b/pkgs/applications/radio/js8call/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, stdenv
+, fetchFromBitbucket
+, wrapQtAppsHook
+, pkg-config
+, hamlib
+, libusb1
+, cmake
+, gfortran
+, fftw
+, fftwFloat
+, qtbase
+, qtmultimedia
+, qtserialport
+}:
+
+stdenv.mkDerivation rec {
+  pname = "js8call";
+  version = "2.2.0";
+
+  src = fetchFromBitbucket {
+    owner = "widefido";
+    repo = pname;
+    rev = "v${version}-ga";
+    sha256 = "sha256-mFPhiAAibCiAkLrysAmIQalVCGd9ips2lqbAsowYprY=";
+  };
+
+  nativeBuildInputs = [
+    wrapQtAppsHook
+    gfortran
+    pkg-config
+    cmake
+  ];
+
+  buildInputs = [
+    hamlib
+    libusb1
+    fftw
+    fftwFloat
+    qtbase
+    qtmultimedia
+    qtserialport
+  ];
+
+  prePatch = ''
+    substituteInPlace CMakeLists.txt \
+        --replace "/usr/share/applications" "$out/share/applications" \
+        --replace "/usr/share/pixmaps" "$out/share/pixmaps" \
+        --replace "/usr/bin/" "$out/bin"
+  '';
+
+  patches = [ ./cmake.patch ];
+
+  meta = with lib; {
+    description = "Weak-signal keyboard messaging for amateur radio";
+    longDescription = ''
+      JS8Call is software using the JS8 Digital Mode providing weak signal
+      keyboard to keyboard messaging to Amateur Radio Operators.
+    '';
+    homepage = "http://js8call.com/";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ melling ];
+  };
+}
diff --git a/pkgs/applications/radio/sdrplay/default.nix b/pkgs/applications/radio/sdrplay/default.nix
index 441ff1cf0f3d3..699389dd2d34b 100644
--- a/pkgs/applications/radio/sdrplay/default.nix
+++ b/pkgs/applications/radio/sdrplay/default.nix
@@ -44,6 +44,7 @@ in stdenv.mkDerivation rec {
       https://www.sdrplay.com/docs/SDRplay_API_Specification_v${lib.concatStringsSep "." (lib.take 2 (builtins.splitVersion version))}.pdf
     '';
     homepage = "https://www.sdrplay.com/downloads/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.pmenke ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/astronomy/kstars/default.nix b/pkgs/applications/science/astronomy/kstars/default.nix
index 9f58de432596e..0474e7de2c6b5 100644
--- a/pkgs/applications/science/astronomy/kstars/default.nix
+++ b/pkgs/applications/science/astronomy/kstars/default.nix
@@ -14,11 +14,11 @@
 
 mkDerivation rec {
   pname = "kstars";
-  version = "3.5.8";
+  version = "3.5.9";
 
   src = fetchurl {
     url = "mirror://kde/stable/kstars/kstars-${version}.tar.xz";
-    sha256 = "sha256-Zg2QKDe3q/OBDW4k9y/YTwREopvX1D4YlrGf7OHIjD8=";
+    sha256 = "sha256-SO8W1juP+MkXvXyNCP45AauYTbDrurAUtw4Gp4AA6X4=";
   };
 
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
diff --git a/pkgs/applications/science/biology/MACS2/default.nix b/pkgs/applications/science/biology/MACS2/default.nix
index cc398608ce527..868479c48e550 100644
--- a/pkgs/applications/science/biology/MACS2/default.nix
+++ b/pkgs/applications/science/biology/MACS2/default.nix
@@ -9,6 +9,12 @@ python3.pkgs.buildPythonPackage rec {
     sha256 = "1rcxj943kgzs746f5jrb72x1cp4v50rk3qmad0m99a02vndscb5d";
   };
 
+  postPatch = ''
+    # remove version check which breaks on 3.10
+    substituteInPlace setup.py \
+      --replace 'if float(sys.version[:3])<3.6:' 'if False:'
+  '';
+
   propagatedBuildInputs = with python3.pkgs; [ numpy ];
 
   # To prevent ERROR: diffpeak_cmd (unittest.loader._FailedTest) for obsolete
@@ -21,5 +27,7 @@ python3.pkgs.buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ gschwartz ];
     platforms = platforms.linux;
+    # error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘use_tracing’; did you mean ‘tracing’?
+    broken = true;
   };
 }
diff --git a/pkgs/applications/science/biology/flywheel-cli/default.nix b/pkgs/applications/science/biology/flywheel-cli/default.nix
index 7db8b0066263a..7d74b51f6066f 100644
--- a/pkgs/applications/science/biology/flywheel-cli/default.nix
+++ b/pkgs/applications/science/biology/flywheel-cli/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Library and command line interface for interacting with a Flywheel site";
     homepage = "https://gitlab.com/flywheel-io/public/python-cli";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ rbreslow ];
     platforms = [ "x86_64-darwin" "x86_64-linux" ];
diff --git a/pkgs/applications/science/biology/neuron/default.nix b/pkgs/applications/science/biology/neuron/default.nix
index b9c4b16b359a8..36f1b4c699a82 100644
--- a/pkgs/applications/science/biology/neuron/default.nix
+++ b/pkgs/applications/science/biology/neuron/default.nix
@@ -80,6 +80,11 @@ stdenv.mkDerivation rec {
                 potential close to the membrane), and where cell membrane properties are complex,
                 involving many ion-specific channels, ion accumulation, and second messengers";
 
+    sourceProvenance = with sourceTypes; [
+      fromSource
+    ] ++ lib.optionals (python != null) [
+      binaryNativeCode  # "geometry3d" bundled libraries
+    ];
     license     = licenses.bsd3;
     homepage    = "http://www.neuron.yale.edu/neuron";
     maintainers = [ maintainers.adev ];
diff --git a/pkgs/applications/science/biology/quast/default.nix b/pkgs/applications/science/biology/quast/default.nix
index ed3fc116ddaba..0a33c97673196 100644
--- a/pkgs/applications/science/biology/quast/default.nix
+++ b/pkgs/applications/science/biology/quast/default.nix
@@ -49,6 +49,10 @@ pythonPackages.buildPythonApplication rec {
   meta = with lib ; {
     description = "Evaluates genome assemblies by computing various metrics";
     homepage = "https://github.com/ablab/quast";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # source bundles binary dependencies
+    ];
     license = licenses.gpl2;
     maintainers = [ maintainers.bzizou ];
     platforms = platforms.all;
diff --git a/pkgs/applications/science/chemistry/openmolcas/default.nix b/pkgs/applications/science/chemistry/openmolcas/default.nix
index c5f60c395ae27..52dd025bf0273 100644
--- a/pkgs/applications/science/chemistry/openmolcas/default.nix
+++ b/pkgs/applications/science/chemistry/openmolcas/default.nix
@@ -15,14 +15,14 @@ let
 
 in stdenv.mkDerivation {
   pname = "openmolcas";
-  version = "22.02";
+  version = "22.06";
 
   src = fetchFromGitLab {
     owner = "Molcas";
     repo = "OpenMolcas";
     # The tag keeps moving, fix a hash instead
-    rev = "f8df69cf87b241a15ebc82d72a8f9a031a385dd4"; # 2022-02-10
-    sha256 = "0p2xj8kgqdk5kb1jv5k77acbiqkbl2sh971jnz9p00cmbh556r6a";
+    rev = "17238da5c339c41ddf14ceb88f139d57143d7a14"; # 2022-06-17
+    sha256 = "0g17x5fp27b57f7j284xl3b3i9c4b909q504wpz0ipb0mrcvcpdp";
   };
 
   patches = [
@@ -32,6 +32,12 @@ in stdenv.mkDerivation {
     ./MKL-MPICH.patch
   ];
 
+  postPatch = ''
+    # Using env fails in the sandbox
+    substituteInPlace Tools/pymolcas/export.py --replace \
+      "/usr/bin/env','python3" "python3"
+  '';
+
   nativeBuildInputs = [
     perl
     gfortran
diff --git a/pkgs/applications/science/electronics/bitscope/common.nix b/pkgs/applications/science/electronics/bitscope/common.nix
index 49415ea048413..2018878773ef0 100644
--- a/pkgs/applications/science/electronics/bitscope/common.nix
+++ b/pkgs/applications/science/electronics/bitscope/common.nix
@@ -24,6 +24,7 @@ let
 
     meta = with lib; {
       homepage = "http://bitscope.com/software/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = [ "x86_64-linux" ];
       maintainers = with maintainers; [
diff --git a/pkgs/applications/science/electronics/eagle/eagle.nix b/pkgs/applications/science/electronics/eagle/eagle.nix
index 5b4c8eb790fe6..6302c2dbfa384 100644
--- a/pkgs/applications/science/electronics/eagle/eagle.nix
+++ b/pkgs/applications/science/electronics/eagle/eagle.nix
@@ -73,6 +73,7 @@ let
     meta = with lib; {
       description = "Schematic editor and PCB layout tool from Autodesk (formerly CadSoft)";
       homepage = "https://www.autodesk.com/products/eagle/overview";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = [ "x86_64-linux" ];
       maintainers = [ ];
diff --git a/pkgs/applications/science/electronics/fped/default.nix b/pkgs/applications/science/electronics/fped/default.nix
index f1c458f40d9f9..b1244b79a89f8 100644
--- a/pkgs/applications/science/electronics/fped/default.nix
+++ b/pkgs/applications/science/electronics/fped/default.nix
@@ -14,6 +14,11 @@ stdenv.mkDerivation {
     sha256 = "0xv364a00zwxhd9kg1z9sch5y0cxnrhk546asspyb9bh58sdzfy7";
   };
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: postscript.o:postscript.h:29: multiple definition of
+  #     `postscript_params'; fped.o:postscript.h:29: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   # This uses '/bin/bash', '/usr/local' and 'lex' by default
   makeFlags = [
     "PREFIX=${placeholder "out"}"
diff --git a/pkgs/applications/science/electronics/horizon-eda/default.nix b/pkgs/applications/science/electronics/horizon-eda/default.nix
index f18afb77587c1..d0c75152c427f 100644
--- a/pkgs/applications/science/electronics/horizon-eda/default.nix
+++ b/pkgs/applications/science/electronics/horizon-eda/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "horizon-eda";
-  version = "2.3.0";
+  version = "2.3.1";
 
   src = fetchFromGitHub {
     owner = "horizon-eda";
     repo = "horizon";
     rev = "v${version}";
-    sha256 = "0lw5j1zqd2wdafgxl4ahcphaabs7vlw4kaa1c566hwfjxs46dmg9";
+    sha256 = "1vvps44n9yrzdpircl98n4061lcmwksisnf3a8xkf3qbcnixnwlp";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/electronics/picoscope/default.nix b/pkgs/applications/science/electronics/picoscope/default.nix
index 7db5cceebbaf6..596f220242bb2 100644
--- a/pkgs/applications/science/electronics/picoscope/default.nix
+++ b/pkgs/applications/science/electronics/picoscope/default.nix
@@ -41,6 +41,7 @@ let
       '';
       meta = with lib;
         shared_meta lib // {
+          sourceProvenance = with sourceTypes; [ binaryNativeCode ];
           description = "library for picotech oscilloscope software";
         };
     }) { };
@@ -132,6 +133,7 @@ in stdenv.mkDerivation rec {
         PicoScope for Linux, PicoScope for macOS and PicoScope for Windows
         users, or exported in text, CSV and MathWorks MATLAB 4 formats.
       '';
+      sourceProvenance = with sourceTypes; [ binaryBytecode ];
     };
 }
 
diff --git a/pkgs/applications/science/geometry/gama/default.nix b/pkgs/applications/science/geometry/gama/default.nix
index b2226db460872..1e8c25098912b 100644
--- a/pkgs/applications/science/geometry/gama/default.nix
+++ b/pkgs/applications/science/geometry/gama/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl, lib, expat, octave, libxml2, texinfo, zip }:
 stdenv.mkDerivation rec {
   pname = "gama";
-  version = "2.17";
+  version = "2.19";
 
   src = fetchurl {
     url = "mirror://gnu/${pname}/${pname}-${version}.tar.gz";
-    sha256 = "sha256-AyUjcYDUjAYI4p0vVDO7SGqhbO83Kesd+JUUgQf5GPU=";
+    sha256 = "sha256-OCyUcKkQzp1nz9lgGSR4MRrP7XBR1kpIfPEA7PdSA1I=";
   };
 
   buildInputs = [ expat ];
diff --git a/pkgs/applications/science/logic/abc/default.nix b/pkgs/applications/science/logic/abc/default.nix
index 4e808dd8f19e8..11121d1f5584e 100644
--- a/pkgs/applications/science/logic/abc/default.nix
+++ b/pkgs/applications/science/logic/abc/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname   = "abc-verifier";
-  version = "2022.03.22";
+  version = "2022.05.06";
 
   src = fetchFromGitHub {
     owner = "yosyshq";
     repo  = "abc";
-    rev   = "00b674d5b3ccefc7f2abcbf5b650fc14298ac549";
-    hash  = "sha256-jQgHptARRuhlF+8R92so8PyBTI5t/q/rSGO5yce5WSs=";
+    rev   = "09a7e6dac739133a927ae7064d319068ab927f90";
+    hash  = "sha256-+1UcYjK2mvhlTHl6lVCcj5q+1D8RUTquHaajSl5NuJg=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/logic/formula/default.nix b/pkgs/applications/science/logic/formula/default.nix
index 09c29d720a704..f366003914a20 100644
--- a/pkgs/applications/science/logic/formula/default.nix
+++ b/pkgs/applications/science/logic/formula/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, buildDotnetModule, dotnetCorePackages }:
+{ lib, stdenv, fetchFromGitHub, buildDotnetModule, dotnetCorePackages, unstableGitUpdater }:
 
 buildDotnetModule rec {
   pname = "formula-dotnet";
@@ -7,8 +7,8 @@ buildDotnetModule rec {
   src = fetchFromGitHub {
     owner = "VUISIS";
     repo = "formula-dotnet";
-    rev = "e962438022350dca64335c0603c00d44cb10b528";
-    sha256 = "sha256-hVtwV1MdsXaN6ZrGW4RG2HcNcv/hys/5VxGjH9vFdRE=";
+    rev = "8ee2e6abfd4ce038e1d9cb9c8602dec1ed6c0163";
+    sha256 = "sha256-2ulv//YV3OqrfFltgUCeDe4rOPC0qqJ+80/D2lIoih8=";
   };
 
   nugetDeps = ./nuget.nix;
@@ -17,13 +17,15 @@ buildDotnetModule rec {
   postFixup = if stdenv.isLinux then ''
     mv $out/bin/CommandLine $out/bin/formula
   '' else lib.optionalString stdenv.isDarwin ''
-    makeWrapper ${dotnetCorePackages.runtime_5_0}/bin/dotnet $out/bin/formula \
+    makeWrapper ${dotnetCorePackages.runtime_6_0}/bin/dotnet $out/bin/formula \
       --add-flags "$out/lib/formula-dotnet/CommandLine.dll" \
       --prefix DYLD_LIBRARY_PATH : $out/lib/formula-dotnet/runtimes/macos/native
   '';
 
+  passthru.updateScript = unstableGitUpdater { url = meta.homepage; };
+
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
+    broken = stdenv.isLinux && stdenv.isAarch64;
     description = "Formal Specifications for Verification and Synthesis";
     homepage = "https://github.com/VUISIS/formula-dotnet";
     license = licenses.mspl;
diff --git a/pkgs/applications/science/logic/formula/nuget.nix b/pkgs/applications/science/logic/formula/nuget.nix
index b6da6eb5be55a..40b9abe7fad92 100644
--- a/pkgs/applications/science/logic/formula/nuget.nix
+++ b/pkgs/applications/science/logic/formula/nuget.nix
@@ -1,13 +1,23 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Antlr4.Runtime.Standard"; version = "4.7.2"; sha256 = "1pmrpsgqjfj0nzr1zqzk1m2fm0ynd4nklwq3dhvww08yjg5s0586"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.16"; sha256 = "19wv518vwn15a61qb1z9zmrg8mbf7pzw1c3n23wn22h4ssrhmxjb"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; })
+  (fetchNuGet { pname = "coverlet.collector"; version = "3.0.2"; sha256 = "1xf6z6izmsl4g8w3z1wbp4pa8f8qsf6sil4mf1c9fb22hq8c5hkg"; })
+  (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "16.3.0"; sha256 = "1fdgymp11qpv4h152km2wmbykq1rb4b05cyy6d06naw01l61gdz8"; })
+  (fetchNuGet { pname = "Microsoft.Build.Utilities.Core"; version = "16.3.0"; sha256 = "17hqjzxqnx2hhp276kdlc6wnhd33dilk0bd41px37and2icl9shn"; })
+  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.9.4"; sha256 = "11wiyy3ykgk1sa9amy3lgcsg2v7d1sz59ggw647vx8ibpjxijjpp"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.4"; sha256 = "1jdx05zmrqj1s7xfgn3wgy10qb5cl1n1jcj5kz43zvkw1amc7ra4"; })
+  (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.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.9.4"; sha256 = "1jizkbrnm4pv60zch29ki7gj8m7j5whk141x9cwx4kwsd6cfzwi6"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.9.4"; sha256 = "14110qzmypr72ywvx3npq7mf4n0gvdr4536v91z1xbapms65am6x"; })
   (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.Z3.x64"; version = "4.8.7"; sha256 = "1wxlw29xm5x8vwji2s7gwk39wb88dkbpg76l9s9gq0hqpghwlmdz"; })
   (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
   (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"; })
@@ -26,41 +36,67 @@
   (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
   (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
   (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
+  (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.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.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (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.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
+  (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.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.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.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.Net.Http"; version = "4.3.0"; sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j"; })
   (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.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
   (fetchNuGet { pname = "System.ObjectModel"; version = "4.3.0"; sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2"; })
+  (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.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.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.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.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"; })
@@ -68,13 +104,31 @@
   (fetchNuGet { pname = "System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc"; })
   (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
   (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (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.0.1"; sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3"; })
+  (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.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.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.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
+  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.0.0"; sha256 = "1gxxm5fl36pjjpnx1k688dcw8m9l7nmf802nxis6swdaw8k54jzc"; })
   (fetchNuGet { pname = "System.Threading.Timer"; version = "4.3.0"; sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56"; })
+  (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 = "xunit"; version = "2.4.1"; sha256 = "0xf3kaywpg15flqaqfgywqyychzk15kz0kz34j21rcv78q9ywq20"; })
+  (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.runner.visualstudio"; version = "2.4.3"; sha256 = "0j1d0rbcm7pp6dypi61sjxp8l22sv261252z55b243l39jgv2rp3"; })
 ]
diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix
index 9e5d40be2c6d5..009af3463a25a 100644
--- a/pkgs/applications/science/logic/isabelle/default.nix
+++ b/pkgs/applications/science/logic/isabelle/default.nix
@@ -47,10 +47,15 @@ in stdenv.mkDerivation rec {
         sha256 = "0jfaqckhg388jh9b4msrpkv6wrd6xzlw18m0bngbby8k8ywalp9i";
       };
 
-  buildInputs = [ polyml z3 veriT vampire eprover-ho ]
-    ++ lib.optionals (!stdenv.isDarwin) [ nettools java ];
+  buildInputs = [ polyml z3 veriT vampire eprover-ho nettools ]
+    ++ lib.optionals (!stdenv.isDarwin) [ java ];
 
-  sourceRoot = dirname;
+  sourceRoot = "${dirname}${lib.optionalString stdenv.isDarwin ".app"}";
+
+  postUnpack = if stdenv.isDarwin then ''
+    mv $sourceRoot ${dirname}
+    sourceRoot=${dirname}
+  '' else null;
 
   postPatch = ''
     patchShebangs .
@@ -112,6 +117,9 @@ in stdenv.mkDerivation rec {
       --replace '"$ML_HOME/" ^ (if ML_System.platform_is_windows then "sha1.dll" else "libsha1.so")' '"${sha1}/lib/libsha1.so"'
 
     rm -r heaps
+  '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") ''
+    substituteInPlace lib/scripts/isabelle-platform \
+      --replace 'ISABELLE_APPLE_PLATFORM64=arm64-darwin' ""
   '' + (if ! stdenv.isLinux then "" else ''
     arch=${if stdenv.hostPlatform.system == "x86_64-linux" then "x86_64-linux" else "x86-linux"}
     for f in contrib/*/$arch/{bash_process,epclextract,nunchaku,SPASS,zipperposition}; do
@@ -178,9 +186,13 @@ in stdenv.mkDerivation rec {
       formulas in a logical calculus.
     '';
     homepage = "https://isabelle.in.tum.de/";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # source bundles binary dependencies
+    ];
     license = licenses.bsd3;
     maintainers = [ maintainers.jwiegley maintainers.jvanbruegge ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 } // {
   withComponents = f:
diff --git a/pkgs/applications/science/logic/nuXmv/default.nix b/pkgs/applications/science/logic/nuXmv/default.nix
index 710cfdad39a8d..ad40902e92808 100644
--- a/pkgs/applications/science/logic/nuXmv/default.nix
+++ b/pkgs/applications/science/logic/nuXmv/default.nix
@@ -26,6 +26,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Symbolic model checker for analysis of finite and infinite state systems";
     homepage = "https://nuxmv.fbk.eu/pmwiki.php";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ siraben ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/applications/science/logic/saw-tools/default.nix b/pkgs/applications/science/logic/saw-tools/default.nix
index df99d067f08c8..b6291bfae3698 100644
--- a/pkgs/applications/science/logic/saw-tools/default.nix
+++ b/pkgs/applications/science/logic/saw-tools/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Tools for software verification and analysis";
     homepage    = "https://saw.galois.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.bsd3;
     platforms   = lib.platforms.linux;
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/science/logic/tamarin-prover/default.nix b/pkgs/applications/science/logic/tamarin-prover/default.nix
index 08b8a681b2d59..02e60b398c38b 100644
--- a/pkgs/applications/science/logic/tamarin-prover/default.nix
+++ b/pkgs/applications/science/logic/tamarin-prover/default.nix
@@ -21,6 +21,7 @@ let
     homepage    = "https://tamarin-prover.github.io";
     description = "Security protocol verification in the symbolic model";
     maintainers = [ lib.maintainers.thoughtpolice ];
+    hydraPlatforms = lib.platforms.linux; # maude is broken on darwin
   };
 
   # tamarin use symlinks to the LICENSE and Setup.hs files, so for these sublibraries
diff --git a/pkgs/applications/science/logic/tlaplus/toolbox.nix b/pkgs/applications/science/logic/tlaplus/toolbox.nix
index 3c53e66c8bd9f..86c3db9942a1e 100644
--- a/pkgs/applications/science/logic/tlaplus/toolbox.nix
+++ b/pkgs/applications/science/logic/tlaplus/toolbox.nix
@@ -97,6 +97,7 @@ stdenv.mkDerivation rec {
     '';
     # http://lamport.azurewebsites.net/tla/license.html
     license = with lib.licenses; [ mit ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
     maintainers = [ ];
   };
diff --git a/pkgs/applications/science/logic/tptp/default.nix b/pkgs/applications/science/logic/tptp/default.nix
index 9c91eaddfc47e..5df511ebaa8e7 100644
--- a/pkgs/applications/science/logic/tptp/default.nix
+++ b/pkgs/applications/science/logic/tptp/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
     # Also, it is unclear what is covered by "verbatim" - we will edit configs
     hydraPlatforms = [];
     platforms = platforms.all;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
   };
 }
diff --git a/pkgs/applications/science/logic/verifast/default.nix b/pkgs/applications/science/logic/verifast/default.nix
index c610256ccaef8..a1f5ec65a3be3 100644
--- a/pkgs/applications/science/logic/verifast/default.nix
+++ b/pkgs/applications/science/logic/verifast/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Verification for C and Java programs via separation logic";
     homepage    = "https://people.cs.kuleuven.be/~bart.jacobs/verifast/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license     = lib.licenses.mit;
     platforms   = [ "x86_64-linux" ];
     maintainers = [ lib.maintainers.thoughtpolice ];
diff --git a/pkgs/applications/science/logic/verit/default.nix b/pkgs/applications/science/logic/verit/default.nix
index 8c9bb7f2005af..6c0d1061dcab9 100644
--- a/pkgs/applications/science/logic/verit/default.nix
+++ b/pkgs/applications/science/logic/verit/default.nix
@@ -22,7 +22,6 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "An open, trustable and efficient SMT-solver";
     homepage = "https://verit.loria.fr/";
     license = licenses.bsd3;
diff --git a/pkgs/applications/science/logic/z3/4.4.0.nix b/pkgs/applications/science/logic/z3/4.4.0.nix
index a3d6c16fb7df2..857bbbdee5d00 100644
--- a/pkgs/applications/science/logic/z3/4.4.0.nix
+++ b/pkgs/applications/science/logic/z3/4.4.0.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
   buildInputs = [ python ];
   enableParallelBuilding = true;
 
+  CXXFLAGS = if stdenv.isDarwin then "-std=gnu++98" else null;
+
   configurePhase = "python scripts/mk_make.py --prefix=$out && cd build";
 
   # z3's install phase is stupid because it tries to calculate the
diff --git a/pkgs/applications/science/machine-learning/sc2-headless/default.nix b/pkgs/applications/science/machine-learning/sc2-headless/default.nix
index 9438cd972f95b..97cad175ac17f 100644
--- a/pkgs/applications/science/machine-learning/sc2-headless/default.nix
+++ b/pkgs/applications/science/machine-learning/sc2-headless/default.nix
@@ -51,6 +51,7 @@ in stdenv.mkDerivation rec {
   meta = {
     platforms = lib.platforms.linux;
     description = "Starcraft II headless linux client for machine learning research";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "BLIZZARD® STARCRAFT® II AI AND MACHINE LEARNING LICENSE";
       url = "https://blzdistsc2-a.akamaihd.net/AI_AND_MACHINE_LEARNING_LICENSE.html";
diff --git a/pkgs/applications/science/math/cplex/default.nix b/pkgs/applications/science/math/cplex/default.nix
index a570e7e9c6d1e..ddc950b30664b 100644
--- a/pkgs/applications/science/math/cplex/default.nix
+++ b/pkgs/applications/science/math/cplex/default.nix
@@ -80,6 +80,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Optimization solver for mathematical programming";
     homepage = "https://www.ibm.com/be-en/marketplace/ibm-ilog-cplex";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ bfortz ];
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index b7eb8b11ecdc8..43d1a3e2068b9 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -29,6 +29,10 @@ let
     homepage = "https://www.geogebra.org/";
     maintainers = with maintainers; [ sikmir imsofi ];
     license = with licenses; [ gpl3 cc-by-nc-sa-30 geogebra ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode  # some jars include native binaries
+    ];
     platforms = with platforms; linux ++ darwin;
     hydraPlatforms = [];
   };
diff --git a/pkgs/applications/science/math/geogebra/geogebra6.nix b/pkgs/applications/science/math/geogebra/geogebra6.nix
index 76d178b7e490d..e1b5bbaedc2b1 100644
--- a/pkgs/applications/science/math/geogebra/geogebra6.nix
+++ b/pkgs/applications/science/math/geogebra/geogebra6.nix
@@ -48,7 +48,7 @@ let
   };
 
   darwinPkg = stdenv.mkDerivation {
-    inherit pname version meta;
+    inherit pname version;
 
     src = fetchurl {
       urls = [
@@ -66,6 +66,10 @@ let
       install -dm755 $out/Applications
       unzip $src -d $out/Applications
     '';
+
+    meta = meta // {
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    };
   };
 in
 if stdenv.isDarwin
diff --git a/pkgs/applications/science/math/giac/default.nix b/pkgs/applications/science/math/giac/default.nix
index d684865432d5c..434291861d674 100644
--- a/pkgs/applications/science/math/giac/default.nix
+++ b/pkgs/applications/science/math/giac/default.nix
@@ -43,6 +43,9 @@ stdenv.mkDerivation rec {
     rm src/mkjs
     substituteInPlace src/Makefile.am --replace "g++ mkjs.cc" \
       "${buildPackages.stdenv.cc.targetPrefix}c++ mkjs.cc"
+
+    # to open help
+    substituteInPlace src/global.cc --replace 'browser="mozilla"' 'browser="xdg-open"'
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/science/math/ginac/default.nix b/pkgs/applications/science/math/ginac/default.nix
index 0ceefe9b5dd8a..a723fc720f10d 100644
--- a/pkgs/applications/science/math/ginac/default.nix
+++ b/pkgs/applications/science/math/ginac/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "ginac";
-  version = "1.8.2";
+  version = "1.8.3";
 
   src = fetchurl {
     url = "https://www.ginac.de/ginac-${version}.tar.bz2";
-    sha256 = "sha256-v811Gryviv3bg5WMKtInY6deokAyVT5QPumzjj6jtsM=";
+    sha256 = "sha256-d8caWGrfb8C12rVzQ08wz/FXkVPNd8broCKS4Xj3pJA=";
   };
 
   propagatedBuildInputs = [ cln ];
diff --git a/pkgs/applications/science/math/gmsh/default.nix b/pkgs/applications/science/math/gmsh/default.nix
index 8ef8fcc2295a2..7e7b7a4752fd9 100644
--- a/pkgs/applications/science/math/gmsh/default.nix
+++ b/pkgs/applications/science/math/gmsh/default.nix
@@ -5,11 +5,11 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 
 stdenv.mkDerivation rec {
   pname = "gmsh";
-  version = "4.10.2";
+  version = "4.10.4";
 
   src = fetchurl {
     url = "https://gmsh.info/src/gmsh-${version}-source.tgz";
-    sha256 = "sha256-2SEQnmxBn2jVUH2WEu6BXUC1I5pdsXXygoXgzQ2/JRc=";
+    sha256 = "sha256-9H6SfyTzVPONROJsIaJJXEzb3D1eubiD1afjoic/vRM=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/math/gurobi/default.nix b/pkgs/applications/science/math/gurobi/default.nix
index 574d849d955c2..536d520058a2d 100644
--- a/pkgs/applications/science/math/gurobi/default.nix
+++ b/pkgs/applications/science/math/gurobi/default.nix
@@ -46,7 +46,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Optimization solver for mathematical programming";
     homepage = "https://www.gurobi.com";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ jfrankenau ];
diff --git a/pkgs/applications/science/math/hmetis/default.nix b/pkgs/applications/science/math/hmetis/default.nix
index 762216a97a444..1c0152b7bfc77 100644
--- a/pkgs/applications/science/math/hmetis/default.nix
+++ b/pkgs/applications/science/math/hmetis/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "hMETIS is a set of programs for partitioning hypergraphs";
     homepage = "http://glaros.dtc.umn.edu/gkhome/metis/hmetis/overview";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/applications/science/math/mathematica/generic.nix b/pkgs/applications/science/math/mathematica/generic.nix
index 0f4819172cea9..b081640c97d5b 100644
--- a/pkgs/applications/science/math/mathematica/generic.nix
+++ b/pkgs/applications/science/math/mathematica/generic.nix
@@ -121,6 +121,8 @@ in stdenv.mkDerivation {
     "--set USE_WOLFRAM_LD_LIBRARY_PATH 1"
     # Fix xkeyboard config path for Qt
     "--set QT_XKB_CONFIG_ROOT ${xkeyboard_config}/share/X11/xkb"
+    # wayland isn't supported
+    "--set QT_QPA_PLATFORM xcb"
   ] ++ lib.optionals cudaSupport [
     "--set CUDA_PATH ${cudaEnv}"
     "--set NVIDIA_DRIVER_LIBRARY_PATH ${addOpenGLRunpath.driverLink}/lib/libnvidia-tls.so"
diff --git a/pkgs/applications/science/math/scilab-bin/default.nix b/pkgs/applications/science/math/scilab-bin/default.nix
index 65d8c145bef6f..327472e88c752 100644
--- a/pkgs/applications/science/math/scilab-bin/default.nix
+++ b/pkgs/applications/science/math/scilab-bin/default.nix
@@ -93,6 +93,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.scilab.org/";
     description = "Scientific software package for numerical computations (Matlab lookalike)";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     # see http://www.scilab.org/legal_notice
     license = "Scilab";
   };
diff --git a/pkgs/applications/science/math/wolfram-engine/default.nix b/pkgs/applications/science/math/wolfram-engine/default.nix
index cf9364ffac174..acb92766910d0 100644
--- a/pkgs/applications/science/math/wolfram-engine/default.nix
+++ b/pkgs/applications/science/math/wolfram-engine/default.nix
@@ -140,6 +140,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Wolfram Engine computational software system";
     homepage = "https://www.wolfram.com/engine/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ fbeffa ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/math/wxmaxima/default.nix b/pkgs/applications/science/math/wxmaxima/default.nix
index f14fb489a9964..aea24b84d1d4c 100644
--- a/pkgs/applications/science/math/wxmaxima/default.nix
+++ b/pkgs/applications/science/math/wxmaxima/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "wxmaxima";
-  version = "22.03.0";
+  version = "22.05.0";
 
   src = fetchFromGitHub {
     owner = "wxMaxima-developers";
     repo = "wxmaxima";
     rev = "Version-${version}";
-    sha256 = "sha256-ynLx1HPfDjLbyFziWFbjpCeUBaA3hAFRFm5/1GeFKRE=";
+    sha256 = "sha256-pcKnEjJmvMXCBpjtOSLyl4I0x3fjh0os9Sdp39I2Re0=";
   };
 
   buildInputs = [
diff --git a/pkgs/applications/science/medicine/aliza/default.nix b/pkgs/applications/science/medicine/aliza/default.nix
index 0eb89b63e475f..b08acc77c640c 100644
--- a/pkgs/applications/science/medicine/aliza/default.nix
+++ b/pkgs/applications/science/medicine/aliza/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation {
   meta = {
     description = "Medical imaging software with 2D, 3D and 4D capabilities";
     homepage = "https://www.aliza-dicom-viewer.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ mounium ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/science/misc/boinc/default.nix b/pkgs/applications/science/misc/boinc/default.nix
index d0955a4d70c45..702dd3242e649 100644
--- a/pkgs/applications/science/misc/boinc/default.nix
+++ b/pkgs/applications/science/misc/boinc/default.nix
@@ -3,8 +3,8 @@ libGLU, libGL, libXmu, libXi, freeglut, libjpeg, libtool, wxGTK30, xcbutil,
 sqlite, gtk2, patchelf, libXScrnSaver, libnotify, libX11, libxcb }:
 
 let
-  majorVersion = "7.18";
-  minorVersion = "1";
+  majorVersion = "7.20";
+  minorVersion = "0";
 in
 
 stdenv.mkDerivation rec {
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     owner = "BOINC";
     repo = "boinc";
     rev = "client_release/${majorVersion}/${version}";
-    sha256 = "sha256-ijkfWTFwwJXvh6f0P5hkzWODxU+Ugz6iQUK+5jEpWXQ=";
+    sha256 = "sha256-W8+ALVO2OHxxBi80ZFgc8RxXneGINCHYNeMXimp9TIw=";
   };
 
   nativeBuildInputs = [ libtool automake autoconf m4 pkg-config ];
diff --git a/pkgs/applications/science/misc/foldingathome/client.nix b/pkgs/applications/science/misc/foldingathome/client.nix
index cc3d5445b594d..6ebc72cc7da41 100644
--- a/pkgs/applications/science/misc/foldingathome/client.nix
+++ b/pkgs/applications/science/misc/foldingathome/client.nix
@@ -52,6 +52,7 @@ buildFHSUserEnv {
   meta = {
     description = "Folding@home client";
     homepage = "https://foldingathome.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.zimbatm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/misc/foldingathome/control.nix b/pkgs/applications/science/misc/foldingathome/control.nix
index e5cc02edcfbe6..a64c973914c66 100644
--- a/pkgs/applications/science/misc/foldingathome/control.nix
+++ b/pkgs/applications/science/misc/foldingathome/control.nix
@@ -1,5 +1,4 @@
 { lib, stdenv
-, autoPatchelfHook
 , dpkg
 , fahviewer
 , fetchurl
diff --git a/pkgs/applications/science/misc/foldingathome/viewer.nix b/pkgs/applications/science/misc/foldingathome/viewer.nix
index 75e900a0a72c5..7f28c8d1b1463 100644
--- a/pkgs/applications/science/misc/foldingathome/viewer.nix
+++ b/pkgs/applications/science/misc/foldingathome/viewer.nix
@@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Folding@home viewer";
     homepage = "https://foldingathome.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.zimbatm ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/science/misc/snakemake/default.nix b/pkgs/applications/science/misc/snakemake/default.nix
index ac44ce6e21359..75ecc1be99ea4 100644
--- a/pkgs/applications/science/misc/snakemake/default.nix
+++ b/pkgs/applications/science/misc/snakemake/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "snakemake";
-  version = "7.8.2";
+  version = "7.8.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZJg7yJS4uODnXwyuwE0uY5CNg1CYyGqSIFYPntAlU5k=";
+    hash = "sha256-fYrsum056PCRRp4P5xO6yLfog3WrE/JR1ID7+iV85fc=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
index b3a3eb2bd2a8e..8d253e0bcc7ab 100644
--- a/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
+++ b/pkgs/applications/science/molecular-dynamics/gromacs/default.nix
@@ -19,11 +19,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "gromacs";
-  version = "2022.1";
+  version = "2022.2";
 
   src = fetchurl {
     url = "ftp://ftp.gromacs.org/pub/gromacs/gromacs-${version}.tar.gz";
-    sha256 = "sha256-hd2rUZfXlSSnAsSVnCxDvodeD8Rx3zo1Ikk53OhRJFA=";
+    sha256 = "1gq1bvscngsbf8231laam6z0v38lmy95nakxr5225ynjhkw08r35";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/applications/science/physics/dawn/default.nix b/pkgs/applications/science/physics/dawn/default.nix
new file mode 100644
index 0000000000000..609a0e1c4cd31
--- /dev/null
+++ b/pkgs/applications/science/physics/dawn/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchurl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dawn";
+  version = "3.91a";
+
+  src = fetchurl {
+    url = "https://geant4.kek.jp/~tanaka/src/dawn_${builtins.replaceStrings ["."] ["_"] version}.tgz";
+    hash = "sha256-gdhV6tERdoGxiCQt0L46JOAF2b1AY/0r2pp6eU689fQ=";
+  };
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'CC =' 'CC = $(CXX) #' \
+      --replace 'INSTALL_DIR =' "INSTALL_DIR = $out/bin#"
+  '';
+
+  dontConfigure = true;
+
+  preInstall = ''
+    mkdir -p "$out/bin"
+  '';
+
+  meta = with lib; {
+    description = "A 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;
+    maintainers = with maintainers; [ veprbl ];
+  };
+}
diff --git a/pkgs/applications/science/programming/fdr/default.nix b/pkgs/applications/science/programming/fdr/default.nix
index bc67c30aa61cf..f7b12342a6659 100644
--- a/pkgs/applications/science/programming/fdr/default.nix
+++ b/pkgs/applications/science/programming/fdr/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation {
     homepage = "https://cocotec.io/fdr/";
     description = "The CSP refinement checker";
     license = licenses.unfreeRedistributable;
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ nickhu ];
   };
diff --git a/pkgs/applications/science/robotics/betaflight-configurator/default.nix b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
index 5065723995245..271274126b754 100644
--- a/pkgs/applications/science/robotics/betaflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/betaflight-configurator/default.nix
@@ -13,10 +13,10 @@ let
 in
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "10.7.2";
+  version = "10.8.0";
   src = fetchurl {
-    url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64.zip";
-    sha256 = "sha256-FDmtFRUupPKiHeF3Xvh/VagqMo+FJi8I7mhTz0VDs3o=";
+    url = "https://github.com/betaflight/${pname}/releases/download/${version}/${pname}_${version}_linux64-portable.zip";
+    sha256 = "sha256-Xn0ga2Z1UKd++TriL47ulV6idVTNBR8uiSW7FnL7r1g=";
   };
 
   nativeBuildInputs = [ wrapGAppsHook unzip ];
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
       quadcopters, hexacopters, octocopters and fixed-wing aircraft.
     '';
     homepage    = "https://github.com/betaflight/betaflight/wiki";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl3;
     maintainers = with maintainers; [ wucke13 ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/science/robotics/emuflight-configurator/default.nix b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
index ca486006fecba..112049d7c0169 100644
--- a/pkgs/applications/science/robotics/emuflight-configurator/default.nix
+++ b/pkgs/applications/science/robotics/emuflight-configurator/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
       The application allows you to configure the Emuflight software running on any supported Emuflight target.
     '';
     homepage    = "https://github.com/emuflight/EmuConfigurator";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.gpl3Only;
     maintainers = with maintainers; [ beezow ];
     platforms   = platforms.linux;
diff --git a/pkgs/applications/science/robotics/inav-configurator/default.nix b/pkgs/applications/science/robotics/inav-configurator/default.nix
index ec605a3a97e95..a0b694f295415 100644
--- a/pkgs/applications/science/robotics/inav-configurator/default.nix
+++ b/pkgs/applications/science/robotics/inav-configurator/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
       quadcopters, hexacopters, octocopters and fixed-wing aircraft.
     '';
     homepage = "https://github.com/iNavFlight/inav/wiki";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ tilcreator wucke13 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix
index b7e4cad122d75..dae9d5cd5195f 100644
--- a/pkgs/applications/system/glances/default.nix
+++ b/pkgs/applications/system/glances/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "glances";
-  version = "3.2.5";
+  version = "3.2.6.4";
   disabled = isPyPy;
 
   src = fetchFromGitHub {
     owner = "nicolargo";
     repo = "glances";
     rev = "v${version}";
-    sha256 = "sha256-kTnUP7WvmEw4VazjLrGb0FhSdz+/OadzgwDXs1SA02o=";
+    sha256 = "sha256-i88bz6AwfDbqC+7yvr7uDofAqBwQmnfoKbt3iJz4Ft8=";
   };
 
   # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply):
diff --git a/pkgs/applications/system/monitor/default.nix b/pkgs/applications/system/monitor/default.nix
index 5de6e1165dc47..493b4525d2f8a 100644
--- a/pkgs/applications/system/monitor/default.nix
+++ b/pkgs/applications/system/monitor/default.nix
@@ -1,7 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, nix-update-script
+, gitUpdater
 , meson
 , ninja
 , vala
@@ -25,13 +25,13 @@
 
 stdenv.mkDerivation rec {
   pname = "monitor";
-  version = "0.13.0";
+  version = "0.14.0";
 
   src = fetchFromGitHub {
     owner = "stsdc";
     repo = "monitor";
     rev = version;
-    sha256 = "sha256-qwx60cp3Q6PL1iwRP+M9Rtmxcis0EByi8fk13H4cXfc=";
+    sha256 = "sha256-dw1FR9nU8MY6LBL3sF942azeSgKmCntXCk4+nhMb4Wo=";
     fetchSubmodules = true;
   };
 
@@ -75,8 +75,9 @@ stdenv.mkDerivation rec {
   '';
 
   passthru = {
-    updateScript = nix-update-script {
-      attrPath = pname;
+    updateScript = gitUpdater {
+      inherit pname version;
+      ignoredVersions = "ci.*";
     };
   };
 
diff --git a/pkgs/applications/terminal-emulators/dterm/default.nix b/pkgs/applications/terminal-emulators/dterm/default.nix
new file mode 100644
index 0000000000000..69b1f67d629a9
--- /dev/null
+++ b/pkgs/applications/terminal-emulators/dterm/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchurl
+, readline
+}:
+
+stdenv.mkDerivation rec {
+  pname = "dterm";
+  version = "0.5";
+
+  src = fetchurl {
+    url = "http://www.knossos.net.nz/downloads/dterm-${version}.tgz";
+    hash = "sha256-lFM7558e7JZeWYhtXwCjXLZ1xdsdiUGfJTu3LxQKvds=";
+  };
+
+  buildInputs = [ readline ];
+
+  postPatch = ''
+    substituteInPlace Makefile \
+      --replace 'gcc' '${stdenv.cc.targetPrefix}cc'
+  '';
+
+  preInstall = "mkdir -p $out/bin";
+
+  installFlags = [ "BIN=$(out)/bin/" ];
+
+  meta = with lib; {
+    homepage = "http://www.knossos.net.nz/resources/free-software/dterm/";
+    description = "A 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
+      friends, which already do a perfectly good emulation, and therefore don’t
+      need any special help; dterm simply provides a means by which keystrokes
+      are forwarded to the serial line, and data forwarded from the serial line
+      appears on the terminal.
+    '';
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ auchter ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/terminal-emulators/hyper/default.nix b/pkgs/applications/terminal-emulators/hyper/default.nix
index 2266e884454b2..031d49d2458d9 100644
--- a/pkgs/applications/terminal-emulators/hyper/default.nix
+++ b/pkgs/applications/terminal-emulators/hyper/default.nix
@@ -50,6 +50,7 @@ stdenv.mkDerivation rec {
     description = "A terminal built on web technologies";
     homepage    = "https://hyper.is/";
     maintainers = with maintainers; [ puffnfresh fabiangd ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license     = licenses.mit;
     platforms   = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/terminal-emulators/kitty/default.nix b/pkgs/applications/terminal-emulators/kitty/default.nix
index 58db9273b83cf..e818f4a71faaa 100644
--- a/pkgs/applications/terminal-emulators/kitty/default.nix
+++ b/pkgs/applications/terminal-emulators/kitty/default.nix
@@ -21,21 +21,20 @@
 , bashInteractive
 , zsh
 , fish
-, fetchpatch
 , nixosTests
 }:
 
 with python3Packages;
 buildPythonApplication rec {
   pname = "kitty";
-  version = "0.25.1";
+  version = "0.25.2";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "kovidgoyal";
     repo = "kitty";
     rev = "v${version}";
-    sha256 = "sha256-wL631cbA6ffXZomi6iDHk7XerRlpIL6T2qlEiQvFSJY=";
+    sha256 = "sha256-o/vVz1lPfsgkzbYjYhIrScCAROmVdiPsNwjW/m5n7Us=";
   };
 
   buildInputs = [
@@ -78,42 +77,12 @@ buildPythonApplication rec {
   outputs = [ "out" "terminfo" "shell_integration" ];
 
   patches = [
-    # Fix to ensure that files in tar files used by SSH kitten have write permissions.
-    (fetchpatch {
-      name = "fix-tarball-file-permissions.patch";
-      url = "https://github.com/kovidgoyal/kitty/commit/8540ca399053e8d42df27283bb5dd4af562ed29b.patch";
-      sha256 = "sha256-y5w+ritkR+ZEfNSRDQW9r3BU2qt98UNK7vdEX/X+mKU=";
-    })
-
-    # Remove upon next release. Needed because of a missing #define.
-    (fetchpatch {
-      name = "fontconfig-1.patch";
-      url = "https://github.com/kovidgoyal/kitty/commit/bec620a8d30c36453e471b140b07483c7f875bf4.patch";
-      sha256 = "sha256-r1OTcXdO+RUAXmmIqI07m+z0zXq8DXCzgBRXPpnkGGM=";
-    })
-    (fetchpatch {
-      name = "fontconfig-2.patch";
-      url = "https://github.com/kovidgoyal/kitty/commit/1283a2b7e552d30cabce9345e5c13e5f9079183d.patch";
-      sha256 = "sha256-UM/OsumnfVHuHTahpRwyWZOeu6L8WOwbBf3lcjwdTj8=";
-    })
-    (fetchpatch {
-      name = "fontconfig-3.patch";
-      url = "https://github.com/kovidgoyal/kitty/commit/5c4abe749b1f50ae556a711d24ac7f3e384fac4e.patch";
-      sha256 = "sha256-amvyv5cZxHGPg7dZv649WjH4MNloFbmz5D4rhjKNzYA=";
-    })
-
     # Needed on darwin
 
     # Gets `test_ssh_shell_integration` to pass for `zsh` when `compinit` complains about
     # permissions.
     ./zsh-compinit.patch
 
-    # Skip login shell detection when login shell is set to nologin
-    (fetchpatch {
-      name = "skip-login-shell-detection-for-nologin.patch";
-      url = "https://github.com/kovidgoyal/kitty/commit/27906ea853ce7862bcb83e324ef80f6337b5d846.patch";
-      sha256 = "sha256-Zg6uWkiWvb45i4xcp9k6jy0R2IQMT4PXr7BenzZ/md8=";
-    })
     # Skip `test_ssh_bootstrap_with_different_launchers` when launcher is `zsh` since it causes:
     # OSError: master_fd is in error condition
     ./disable-test_ssh_bootstrap_with_different_launchers.patch
diff --git a/pkgs/applications/terminal-emulators/wezterm/default.nix b/pkgs/applications/terminal-emulators/wezterm/default.nix
index 8f15a38111c8f..4fed03db0dd08 100644
--- a/pkgs/applications/terminal-emulators/wezterm/default.nix
+++ b/pkgs/applications/terminal-emulators/wezterm/default.nix
@@ -28,14 +28,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "wezterm";
-  version = "20220408-101518-b908e2dd";
+  version = "20220624-141144-bd1b7c5d";
 
   src = fetchFromGitHub {
     owner = "wez";
     repo = pname;
     rev = version;
     fetchSubmodules = true;
-    sha256 = "sha256-kuuoD+hqgj7QXFRIxa112oc4idtcK0ptFACDpI0bzGY=";
+    sha256 = "sha256-7VuNOJ4xqTxumLft7wRj4zdN8Y2ZSYtXr/KuqaLNOgw=";
   };
 
   postPatch = ''
@@ -45,7 +45,7 @@ rustPlatform.buildRustPackage rec {
     rm -r wezterm-ssh/tests
   '';
 
-  cargoSha256 = "sha256-iIb2zLUZpn23ooEiOP+yQMYUUmvef/KqvjzgLOFmjs0=";
+  cargoSha256 = "sha256-YvQ0APyPiYwISE/pDD2s+UgYFj4CKPdolb14FrNpocU=";
 
   nativeBuildInputs = [
     pkg-config
diff --git a/pkgs/applications/version-management/bcompare/default.nix b/pkgs/applications/version-management/bcompare/default.nix
index 57adae69db037..bed85a37f544d 100644
--- a/pkgs/applications/version-management/bcompare/default.nix
+++ b/pkgs/applications/version-management/bcompare/default.nix
@@ -86,6 +86,7 @@ let
       You can then merge the changes, synchronize your files, and generate reports for your records.
     '';
     homepage = "https://www.scootersoftware.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ktor arkivm ];
     platforms = builtins.attrNames srcs;
diff --git a/pkgs/applications/version-management/git-and-tools/gfold/default.nix b/pkgs/applications/version-management/git-and-tools/gfold/default.nix
index d3b960208fc92..c50fbc7950189 100644
--- a/pkgs/applications/version-management/git-and-tools/gfold/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gfold/default.nix
@@ -7,7 +7,7 @@
 , rustPlatform
 , Security
 , stdenv
-, testVersion
+, testers
 }:
 
 let
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = gfold;
     command = "gfold --version";
     inherit version;
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 9d794eccac268..37ceaaff514c2 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "gh";
-  version = "2.12.1";
+  version = "2.13.0";
 
   src = fetchFromGitHub {
     owner = "cli";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-zKEHrnMTz+gPU1A9tjqUO5FLD1zQcnbU7pwVQnYI6uA=";
+    sha256 = "sha256-9FWmEujTUWexyqNQVagU/U9AyOZJdWL5y4Q0ZHRBxcc=";
   };
 
-  vendorSha256 = "sha256-sHRahwavPgowKE0EtDU4UNxIJU22edqlY0nOKkaQLPg=";
+  vendorSha256 = "sha256-a/+Dj66zT/W8rxvvXnJSdoyYhajMY1T3kEbrpC24tMU=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
index f991bccf0e288..2b2fde8ea27d0 100644
--- a/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/ghorg/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ghorg";
-  version = "1.7.13";
+  version = "1.7.16";
 
   src = fetchFromGitHub {
     owner = "gabrie30";
     repo = "ghorg";
     rev = "v${version}";
-    sha256 = "sha256-EQCu+2qMKu+e6G5iXAQn5cz0MZqHrF2wnKNO8Fkpp/Y=";
+    sha256 = "sha256-dQJ21QT3mDGS4nPB9o6033/Sn0+XV0P8Wjqvfcc5Loo=";
   };
 
   doCheck = false;
diff --git a/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix b/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
index 33580712932c5..8b5844fb76ce9 100644
--- a/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-appraise/default.nix
@@ -1,23 +1,24 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  pname = "git-appraise-unstable";
-  version = "2018-02-26";
-  rev = "2414523905939525559e4b2498c5597f86193b61";
-
-  goPackagePath = "github.com/google/git-appraise";
+buildGoModule rec {
+  pname = "git-appraise";
+  version = "unstable-2022-04-13";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "google";
     repo = "git-appraise";
-    sha256 = "04xkp1jpas1dfms6i9j09bgkydih0q10nhwn75w9ds8hi2qaa3sa";
+    rev = "99aeb0e71544d3e1952e208c339b1aec70968cf3";
+    sha256 = "sha256-TteTI8yGP2sckoJ5xuBB5S8xzm1upXmZPlcDLvXZrpc=";
   };
 
-  meta = {
+  vendorSha256 = "sha256-Lzq4qpDAUjKFA2T685eW9NCfzEhDsn5UR1A1cIaZadE=";
+
+  ldflags = [ "-s" "-w" ];
+
+  meta = with lib; {
     description = "Distributed code review system for Git repos";
     homepage = "https://github.com/google/git-appraise";
-    license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.vdemeester ];
+    license = licenses.asl20;
+    maintainers = with maintainers; [ vdemeester ];
   };
 }
diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
index 070d9eab2b4da..1e2af3023c2fc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix
@@ -12,13 +12,13 @@
 
 buildPythonApplication rec {
   pname = "git-machete";
-  version = "3.10.0";
+  version = "3.11.1";
 
   src = fetchFromGitHub {
     owner = "virtuslab";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-jZkc9YA4kE/Gr4/FRzgd0VvEjSrw5rk7DB5qH8Z5o6c=";
+    sha256 = "sha256-BhR1dE6+K7UKaCbLmWPtLMyq0oIj/xYenXp5s7kRINc=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
index b8743b7ea9022..4b4319f8cd7cc 100644
--- a/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-quickfix/default.nix
@@ -10,15 +10,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "git-quickfix";
-  version = "0.0.5";
+  version = "0.1.0";
 
   src = fetchFromGitHub {
     owner = "siedentop";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LDA94pH5Oodf80mEENoURh+MJSg122SVWFVo9i1TEQg=";
+    sha256 = "sha256-IAjet/bDG/Hf/whS+yrEQSquj8s5DEmFis+5ysLLuxs=";
   };
 
+  doCheck = false;
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
     Security
@@ -26,7 +28,7 @@ rustPlatform.buildRustPackage rec {
     libiconv
   ];
 
-  cargoSha256 = "sha256-QTPy0w45AawEU4fHf2FMGpL3YM+iTNnyiI4+mDJzWaE=";
+  cargoSha256 = "sha256-eTAEf2nRrJ7i2Dw5BBZlLLu8mK2G/wUk40ivtfxk1pI=";
 
   meta = with lib; {
     description = "Quickfix allows you to commit changes in your git repository to a new branch without leaving the current branch";
diff --git a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
index 4c50836cfdb27..6293af4642a34 100644
--- a/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-secret/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "git-secret";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     repo = "git-secret";
     owner = "sobolevn";
     rev = "v${version}";
-    sha256 = "sha256-Mtuj+e/yCDr4XkmYkWUFJB3cqOT5yOMOq9P/QJV1S80=";
+    sha256 = "sha256-Vdlv3H99BZcT1O66ZCpq5olENOaUSubx58B1PQ/OlMU=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
index a1d1448928b9c..f745f399f39ed 100644
--- a/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/lefthook/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "lefthook";
-  version = "0.8.0";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "evilmartians";
     repo = "lefthook";
-    sha256 = "sha256-ahkTxuBjMbvBzPuLtW7AhM2OUtL9Rw+ZqgnGGTkeCQQ=";
+    sha256 = "sha256-UpMzqp4NVvj/Y3OdtI5nGhJHgPIfSlopmyv7jDDpWdM=";
   };
 
-  vendorSha256 = "sha256-Rp67FnFU27u85t02MIs7wZQoOa8oGsHVVPQ9OdIyTJg=";
+  vendorSha256 = "sha256-LCBQyVSkUywceIlioYRNuRc6FrbPKuhgfw5OocR3NvI=";
 
   doCheck = false;
 
diff --git a/pkgs/applications/version-management/git-lfs/default.nix b/pkgs/applications/version-management/git-lfs/default.nix
index b4f5a9e5287bd..6740cb713f862 100644
--- a/pkgs/applications/version-management/git-lfs/default.nix
+++ b/pkgs/applications/version-management/git-lfs/default.nix
@@ -25,7 +25,7 @@ buildGoModule rec {
   subPackages = [ "." ];
 
   preBuild = ''
-    go generate ./commands
+    GOARCH= go generate ./commands
   '';
 
   postBuild = ''
diff --git a/pkgs/applications/version-management/gitea/default.nix b/pkgs/applications/version-management/gitea/default.nix
index fbf0138ce5aa7..2cddeea816204 100644
--- a/pkgs/applications/version-management/gitea/default.nix
+++ b/pkgs/applications/version-management/gitea/default.nix
@@ -12,8 +12,6 @@
 , nixosTests
 }:
 
-with lib;
-
 buildGoPackage rec {
   pname = "gitea";
   version = "1.16.8";
@@ -36,19 +34,18 @@ buildGoPackage rec {
   ];
 
   postPatch = ''
-    patchShebangs .
     substituteInPlace modules/setting/setting.go --subst-var data
   '';
 
   nativeBuildInputs = [ makeWrapper ];
 
-  buildInputs = optional pamSupport pam;
+  buildInputs = lib.optional pamSupport pam;
 
   preBuild =
     let
-      tags = optional pamSupport "pam"
-        ++ optional sqliteSupport "sqlite sqlite_unlock_notify";
-      tagsString = concatStringsSep " " tags;
+      tags = lib.optional pamSupport "pam"
+        ++ lib.optional sqliteSupport "sqlite sqlite_unlock_notify";
+      tagsString = lib.concatStringsSep " " tags;
     in
     ''
       export buildFlagsArray=(
@@ -66,14 +63,14 @@ buildGoPackage rec {
     cp -R ./go/src/${goPackagePath}/options/locale $out/locale
 
     wrapProgram $out/bin/gitea \
-      --prefix PATH : ${makeBinPath [ bash git gzip openssh ]}
+      --prefix PATH : ${lib.makeBinPath [ bash git gzip openssh ]}
   '';
 
   goPackagePath = "code.gitea.io/gitea";
 
   passthru.tests.gitea = nixosTests.gitea;
 
-  meta = {
+  meta = with lib; {
     description = "Git with a cup of tea";
     homepage = "https://gitea.io";
     license = licenses.mit;
diff --git a/pkgs/applications/version-management/github-desktop/default.nix b/pkgs/applications/version-management/github-desktop/default.nix
index 6017d105fed71..7c07dc17c2ee9 100644
--- a/pkgs/applications/version-management/github-desktop/default.nix
+++ b/pkgs/applications/version-management/github-desktop/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "GUI for managing Git and GitHub.";
     homepage = "https://desktop.github.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ dan4ik605743 ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 53f2e5d01b852..c8ca224a952b1 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -10,24 +10,24 @@ with lib;
 
 let
   pname = "gitkraken";
-  version = "8.5.0";
+  version = "8.6.0";
 
   throwSystem = throw "Unsupported system: ${stdenv.hostPlatform.system}";
 
   srcs = {
     x86_64-linux = fetchzip {
       url = "https://release.axocdn.com/linux/GitKraken-v${version}.tar.gz";
-      sha256 = "sha256-2ox7SI5tjoXR2qrhE+S/K2GQfq0wuTduKHAEpIOoulQ=";
+      sha256 = "sha256-BBhKenEm1D680wJ1hmIOM/AdXN1DxoipLf9K4eHESzs=";
     };
 
     x86_64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin/GitKraken-v${version}.zip";
-      sha256 = "sha256-+F++2L1WYVem96y7R93aPWiWySnUrg+b1q1gIJX69yw=";
+      sha256 = "sha256-fyRhvaKDGYyKu6lAxHb5ve7Ix+7Tuu5JWXnqBF73ti4=";
     };
 
     aarch64-darwin = fetchzip {
       url = "https://release.axocdn.com/darwin-arm64/GitKraken-v${version}.zip";
-      sha256 = "sha256-7WD9drsE93SR53Xqz+cmrnsVd4l4SIoud/Agq32QM4M=";
+      sha256 = "sha256-qbu3gPTo5zY7OQyULY2iIUDQjwjlL4xZdkl68rE3VHA=";
     };
   };
 
@@ -36,6 +36,7 @@ let
   meta = {
     homepage = "https://www.gitkraken.com/";
     description = "The downright luxurious and most popular Git client for Windows, Mac & Linux";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ xnwdd evanjs arkivm ];
diff --git a/pkgs/applications/version-management/gitlab/Remove-geo-from-database.yml.patch b/pkgs/applications/version-management/gitlab/Remove-geo-from-database.yml.patch
new file mode 100644
index 0000000000000..968e618f3121f
--- /dev/null
+++ b/pkgs/applications/version-management/gitlab/Remove-geo-from-database.yml.patch
@@ -0,0 +1,69 @@
+From 7d833508e3bc4c737834e9edf1c429d36f67a38c Mon Sep 17 00:00:00 2001
+From: "M. A" <mak@nyantec.com>
+Date: Sat, 25 Jun 2022 13:34:42 +0000
+Subject: [PATCH] Remove geo from database.yml
+
+---
+ config/database.yml.postgresql | 28 ----------------------------
+ 1 file changed, 28 deletions(-)
+
+diff --git a/config/database.yml.postgresql b/config/database.yml.postgresql
+index 5329a8e9fd7..a4daab1fd0c 100644
+--- a/config/database.yml.postgresql
++++ b/config/database.yml.postgresql
+@@ -18,13 +18,6 @@ production:
+     #     port: 8600
+     #     record: secondary.postgresql.service.consul
+     #     interval: 300
+-  geo:
+-    adapter: postgresql
+-    encoding: unicode
+-    database: gitlabhq_geo_production
+-    username: git
+-    password: "secure password"
+-    host: localhost
+ 
+ #
+ # Development specific
+@@ -39,13 +32,6 @@ development:
+     host: localhost
+     variables:
+       statement_timeout: 15s
+-  geo:
+-    adapter: postgresql
+-    encoding: unicode
+-    database: gitlabhq_geo_development
+-    username: postgres
+-    password: "secure password"
+-    host: localhost
+ 
+ #
+ # Staging specific
+@@ -58,13 +44,6 @@ staging:
+     username: git
+     password: "secure password"
+     host: localhost
+-  geo:
+-    adapter: postgresql
+-    encoding: unicode
+-    database: gitlabhq_geo_staging
+-    username: git
+-    password: "secure password"
+-    host: localhost
+ 
+ # Warning: The database defined as "test" will be erased and
+ # re-generated from your development database when you run "rake".
+@@ -80,10 +59,3 @@ test: &test
+     prepared_statements: false
+     variables:
+       statement_timeout: 15s
+-  geo:
+-    adapter: postgresql
+-    encoding: unicode
+-    database: gitlabhq_geo_test
+-    username: postgres
+-    password:
+-    host: localhost
+-- 
+2.36.0
+
diff --git a/pkgs/applications/version-management/gitlab/data.json b/pkgs/applications/version-management/gitlab/data.json
index c2f3092a7fabc..3cfdc2a11c771 100644
--- a/pkgs/applications/version-management/gitlab/data.json
+++ b/pkgs/applications/version-management/gitlab/data.json
@@ -1,14 +1,14 @@
 {
-  "version": "15.0.2",
-  "repo_hash": "sha256-B5zD8yBY6d+jkIghuxShsR73+2X7Jd9mai1ouraEM44=",
-  "yarn_hash": "1a8k3x3b9sirzicqkwmr10m27n593iljfh8awdc9700akbj155lr",
+  "version": "15.1.0",
+  "repo_hash": "sha256-vOPI9kxdJlQNmI/DZueFcbvZPy2/0d+2CYM/RBAkIcU=",
+  "yarn_hash": "19df16gk0vpvdi1idqaakaglf11cic93i5njw0x4m2cnsznhpvz4",
   "owner": "gitlab-org",
   "repo": "gitlab",
-  "rev": "v15.0.2-ee",
+  "rev": "v15.1.0-ee",
   "passthru": {
-    "GITALY_SERVER_VERSION": "15.0.2",
-    "GITLAB_PAGES_VERSION": "1.58.0",
-    "GITLAB_SHELL_VERSION": "14.3.0",
-    "GITLAB_WORKHORSE_VERSION": "15.0.2"
+    "GITALY_SERVER_VERSION": "15.1.0",
+    "GITLAB_PAGES_VERSION": "1.59.0",
+    "GITLAB_SHELL_VERSION": "14.7.4",
+    "GITLAB_WORKHORSE_VERSION": "15.1.0"
   }
 }
diff --git a/pkgs/applications/version-management/gitlab/default.nix b/pkgs/applications/version-management/gitlab/default.nix
index e5765bb78423c..73a02673471f4 100644
--- a/pkgs/applications/version-management/gitlab/default.nix
+++ b/pkgs/applications/version-management/gitlab/default.nix
@@ -59,9 +59,17 @@ let
 
     nativeBuildInputs = [ rubyEnv.wrappedRuby rubyEnv.bundler nodejs yarn git cacert ];
 
-    # Since version 12.6.0, the rake tasks need the location of git,
-    # so we have to apply the location patches here too.
-    patches = [ ./remove-hardcoded-locations.patch ];
+    patches = [
+      # Since version 12.6.0, the rake tasks need the location of git,
+      # so we have to apply the location patches here too.
+      ./remove-hardcoded-locations.patch
+
+      # Gitlab edited the default database config since [1] and the
+      # installer complains about valid keywords only being "main" and "ci".
+      #
+      # [1]: https://gitlab.com/gitlab-org/gitlab/-/commit/99c0fac52b10cd9df62bbe785db799352a2d9028
+      ./Remove-geo-from-database.yml.patch
+    ];
     # One of the patches uses this variable - if it's unset, execution
     # of rake tasks fails.
     GITLAB_LOG_PATH = "log";
diff --git a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
index cc5344f8e87af..3616864ad7e6d 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/gitaly/Gemfile.lock
@@ -115,7 +115,7 @@ GEM
     minitest (5.15.0)
     msgpack (1.3.3)
     multipart-post (2.1.1)
-    nokogiri (1.13.3)
+    nokogiri (1.13.6)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     octokit (4.20.0)
@@ -249,4 +249,4 @@ DEPENDENCIES
   timecop
 
 BUNDLED WITH
-   2.1.4
+   2.3.15
diff --git a/pkgs/applications/version-management/gitlab/gitaly/default.nix b/pkgs/applications/version-management/gitlab/gitaly/default.nix
index e38a24213b0ef..b8c1ecf6704e6 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/default.nix
@@ -11,8 +11,8 @@ let
     gemdir = ./.;
   };
 
-  version = "15.0.2";
-  package_version = "v14";
+  version = "15.1.0";
+  package_version = "v${lib.versions.major version}";
   gitaly_package = "gitlab.com/gitlab-org/gitaly/${package_version}";
 in
 
@@ -24,10 +24,10 @@ buildGoModule {
     owner = "gitlab-org";
     repo = "gitaly";
     rev = "v${version}";
-    sha256 = "sha256-jwPXar16FOq0xCg3xUXH72YPmoVa91ae3bgz95ZmYo4=";
+    sha256 = "sha256-rhMQRskum4c5bQL1sE7O4gMxIGX7q3bntuV1HkttA8M=";
   };
 
-  vendorSha256 = "sha256-/tHKWo09ZV31TSIqlOk36V3y7gNikziUJHf+nS1gHEw=";
+  vendorSha256 = "sha256-0JWJ2mpf79gJdnNRdlQLi0oDvnj6VmibkW2XcPnaCww=";
 
   passthru = {
     inherit rubyEnv;
diff --git a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
index ccf444330af36..1697a9f90200c 100644
--- a/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/gitaly/gemset.nix
@@ -493,10 +493,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
+      sha256 = "11w59ga9324yx6339dgsflz3dsqq2mky1qqdwcg6wi5s1bf2yldi";
       type = "gem";
     };
-    version = "1.13.3";
+    version = "1.13.6";
   };
   octokit = {
     dependencies = ["faraday" "sawyer"];
diff --git a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
index 3888b0ba1104b..37d66c3a7f656 100644
--- a/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
+++ b/pkgs/applications/version-management/gitlab/gitlab-shell/default.nix
@@ -2,19 +2,19 @@
 
 buildGoModule rec {
   pname = "gitlab-shell";
-  version = "14.3.0";
+  version = "14.7.4";
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-shell";
     rev = "v${version}";
-    sha256 = "sha256-SFoNtWcY0iJREsA+vZRsVJHmNb2vNvOiBJnochxA/Us=";
+    sha256 = "sha256-kLIjlMwoK1AlhvP38OspXnIWbdOcaLl4r05PiUmqnWw=";
   };
 
   buildInputs = [ ruby ];
 
   patches = [ ./remove-hardcoded-locations.patch ];
 
-  vendorSha256 = "sha256-eSzJon8o7ktV3rFuTE1A4tzdkBzWBZf1JxnrcMj5s00=";
+  vendorSha256 = "sha256-f2IkdkTZhve/cYKSH+N2Y5bXFSHuQ8t4hjfReyKTPUU=";
 
   postInstall = ''
     cp -r "$NIX_BUILD_TOP/source"/bin/* $out/bin
diff --git a/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix b/pkgs/applications/version-management/gitlab/gitlab-workhorse/default.nix
index 89d82cc8dd569..b59909dd041a1 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 = "15.0.2";
+  version = "15.1.0";
 
   src = fetchFromGitLab {
     owner = data.owner;
@@ -16,7 +16,7 @@ buildGoModule rec {
 
   sourceRoot = "source/workhorse";
 
-  vendorSha256 = "sha256-7hNwBCDMdiiOliZa/lkYLo8gyAksAU0HanCSyaAMYLs=";
+  vendorSha256 = "sha256-cF2wVii/uBqlUQvrbDyPlv4tnfKA45deb/sE0c9U7Tk=";
   buildInputs = [ git ];
   ldflags = [ "-X main.Version=${version}" ];
   doCheck = false;
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
index cbb4d6f90c0fb..9f5c0e4cbfd8d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile
@@ -4,7 +4,7 @@ source 'https://rubygems.org'
 
 gem 'rails', '~> 6.1.4.7'
 
-gem 'bootsnap', '~> 1.9.4', require: false
+gem 'bootsnap', '~> 1.12.0', require: false
 
 # Responders respond_to and respond_with
 gem 'responders', '~> 3.0'
@@ -17,7 +17,7 @@ gem 'view_component', '~> 2.50.0'
 gem 'default_value_for', '~> 3.4.0'
 
 # Supported DBs
-gem 'pg', '~> 1.1'
+gem 'pg', '~> 1.3.0'
 
 gem 'rugged', '~> 1.2'
 gem 'grape-path-helpers', '~> 1.7.0'
@@ -55,7 +55,7 @@ gem 'omniauth-authentiq', '~> 0.3.3'
 gem 'gitlab-omniauth-openid-connect', '~> 0.9.0', require: 'omniauth_openid_connect'
 gem 'omniauth-salesforce', '~> 1.0.5'
 gem 'omniauth-atlassian-oauth2', '~> 0.2.0'
-gem 'rack-oauth2', '~> 1.16.0'
+gem 'rack-oauth2', '~> 1.19.0'
 gem 'jwt', '~> 2.1.0'
 
 # Kerberos authentication. EE-only
@@ -97,10 +97,10 @@ gem 'net-ldap', '~> 0.16.3'
 # API
 gem 'grape', '~> 1.5.2'
 gem 'grape-entity', '~> 0.10.0'
-gem 'rack-cors', '~> 1.0.6', require: 'rack/cors'
+gem 'rack-cors', '~> 1.1.0', require: 'rack/cors'
 
 # GraphQL API
-gem 'graphql', '~> 1.11.10'
+gem 'graphql', '~> 1.13.12'
 gem 'graphiql-rails', '~> 1.8'
 gem 'apollo_upload_server', '~> 2.1.0'
 gem 'graphql-docs', '~> 1.6.0', group: [:development, :test]
@@ -121,7 +121,7 @@ gem 'carrierwave', '~> 1.3'
 gem 'mini_magick', '~> 4.10.1'
 
 # for backups
-gem 'fog-aws', '~> 3.12'
+gem 'fog-aws', '~> 3.14'
 # Locked until fog-google resolves https://github.com/fog/fog-google/issues/421.
 # Also see config/initializers/fog_core_patch.rb.
 gem 'fog-core', '= 2.1.0'
@@ -130,7 +130,7 @@ gem 'fog-local', '~> 0.6'
 gem 'fog-openstack', '~> 1.0'
 gem 'fog-rackspace', '~> 0.1.1'
 gem 'fog-aliyun', '~> 0.3'
-gem 'gitlab-fog-azure-rm', '~> 1.2.0', require: 'fog/azurerm'
+gem 'gitlab-fog-azure-rm', '~> 1.3.0', require: 'fog/azurerm'
 
 # for Google storage
 gem 'google-api-client', '~> 0.33'
@@ -167,10 +167,10 @@ gem 'asciidoctor', '~> 2.0.10'
 gem 'asciidoctor-include-ext', '~> 0.4.0', require: false
 gem 'asciidoctor-plantuml', '~> 0.0.12'
 gem 'asciidoctor-kroki', '~> 0.5.0', require: false
-gem 'rouge', '~> 3.27.0'
+gem 'rouge', '~> 3.29.0'
 gem 'truncato', '~> 0.7.11'
 gem 'bootstrap_form', '~> 4.2.0'
-gem 'nokogiri', '~> 1.12'
+gem 'nokogiri', '~> 1.13.6'
 gem 'escape_utils', '~> 1.1'
 
 # Calendar rendering
@@ -181,9 +181,9 @@ gem 'diffy', '~> 3.3'
 gem 'diff_match_patch', '~> 0.1.0'
 
 # Application server
-gem 'rack', '~> 2.2.3'
-# https://github.com/sharpstone/rack-timeout/blob/master/README.md#rails-apps-manually
-gem 'rack-timeout', '~> 0.5.1', require: 'rack/timeout/base'
+gem 'rack', '~> 2.2.3.0'
+# https://github.com/zombocom/rack-timeout/blob/master/README.md#rails-apps-manually
+gem 'rack-timeout', '~> 0.6.0', require: 'rack/timeout/base'
 
 group :puma do
   gem 'puma', '~> 5.6.2', require: false
@@ -219,7 +219,7 @@ gem 'ruby-progressbar', '~> 1.10'
 gem 'settingslogic', '~> 2.0.9'
 
 # Linear-time regex library for untrusted regular expressions
-gem 're2', '~> 1.2.0'
+gem 're2', '~> 1.4.0'
 
 # Misc
 
@@ -301,7 +301,7 @@ gem 'base32', '~> 0.3.0'
 gem 'gitlab-license', '~> 2.1.0'
 
 # Protect against bruteforcing
-gem 'rack-attack', '~> 6.3.0'
+gem 'rack-attack', '~> 6.6.0'
 
 # Sentry integration
 gem 'sentry-raven', '~> 3.1'
@@ -311,12 +311,12 @@ gem 'sentry-sidekiq', '~> 5.1.1'
 
 # PostgreSQL query parsing
 #
-gem 'pg_query', '~> 2.1'
+gem 'pg_query', '~> 2.1.0'
 
 gem 'premailer-rails', '~> 1.10.3'
 
 # LabKit: Tracing and Correlation
-gem 'gitlab-labkit', '~> 0.22.0'
+gem 'gitlab-labkit', '~> 0.23.0'
 # Thrift is a dependency of gitlab-labkit, we want a version higher than 0.14.0
 # because of https://gitlab.com/gitlab-org/gitlab/-/issues/321900
 gem 'thrift', '>= 0.14.0'
@@ -344,7 +344,7 @@ gem 'prometheus-client-mmap', '~> 0.15.0', require: 'prometheus/client'
 gem 'warning', '~> 1.2.0'
 
 group :development do
-  gem 'lefthook', '~> 0.7.0', require: false
+  gem 'lefthook', '~> 0.8.0', require: false
   gem 'rubocop'
   gem 'solargraph', '~> 0.44.3', require: false
 
@@ -381,7 +381,7 @@ group :development, :test do
   gem 'spring', '~> 2.1.0'
   gem 'spring-commands-rspec', '~> 1.0.4'
 
-  gem 'gitlab-styles', '~> 7.0.0', require: false
+  gem 'gitlab-styles', '~> 7.1.0', require: false
 
   gem 'haml_lint', '~> 0.36.0', require: false
   gem 'bundler-audit', '~> 0.7.0.1', require: false
@@ -402,10 +402,12 @@ group :development, :test do
   gem 'test_file_finder', '~> 0.1.3'
 
   gem 'sigdump', '~> 0.2.4', require: 'sigdump/setup'
+
+  gem 'pact', '~> 1.12'
 end
 
 group :development, :test, :danger do
-  gem 'gitlab-dangerfiles', '~> 3.0', require: false
+  gem 'gitlab-dangerfiles', '~> 3.4.0', require: false
 end
 
 group :development, :test, :coverage do
@@ -477,13 +479,13 @@ gem 'sys-filesystem', '~> 1.4.3'
 gem 'net-ntp'
 
 # SSH keys support
-gem 'ssh_data', '~> 1.2'
+gem 'ssh_data', '~> 1.3'
 
 # Spamcheck GRPC protocol definitions
 gem 'spamcheck', '~> 0.1.0'
 
 # Gitaly GRPC protocol definitions
-gem 'gitaly', '~> 14.10.0-rc1'
+gem 'gitaly', '~> 15.1.0-rc1'
 
 # KAS GRPC protocol definitions
 gem 'kas-grpc', '~> 0.0.2'
@@ -503,7 +505,7 @@ gem 'gitlab-experiment', '~> 0.7.1'
 
 # Structured logging
 gem 'lograge', '~> 0.5'
-gem 'grape_logging', '~> 1.7'
+gem 'grape_logging', '~> 1.8'
 
 # DNS Lookup
 gem 'gitlab-net-dns', '~> 0.9.1'
@@ -545,3 +547,5 @@ gem 'ipaddress', '~> 0.8.3'
 gem 'parslet', '~> 1.8'
 
 gem 'ipynbdiff', '0.4.7'
+
+gem 'ed25519', '~> 1.3.0'
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
index 4f5d0e36ab33e..535e470372c6d 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/Gemfile.lock
@@ -143,8 +143,8 @@ GEM
       rack (>= 0.9.0)
     bindata (2.4.10)
     binding_ninja (0.2.3)
-    bootsnap (1.9.4)
-      msgpack (~> 1.0)
+    bootsnap (1.12.0)
+      msgpack (~> 1.2)
     bootstrap_form (4.2.0)
       actionpack (>= 5.0)
       activemodel (>= 5.0)
@@ -214,10 +214,10 @@ GEM
     creole (0.5.0)
     crystalball (0.7.0)
       git
-    css_parser (1.7.0)
+    css_parser (1.11.0)
       addressable
     daemons (1.3.1)
-    danger (8.5.0)
+    danger (8.6.1)
       claide (~> 1.0)
       claide-plugins (>= 0.9.2)
       colored2 (~> 3.1)
@@ -306,6 +306,7 @@ GEM
     e2mmap (0.1.0)
     ecma-re-validator (0.3.0)
       regexp_parser (~> 2.0)
+    ed25519 (1.3.0)
     elasticsearch (7.13.3)
       elasticsearch-api (= 7.13.3)
       elasticsearch-transport (= 7.13.3)
@@ -360,7 +361,7 @@ GEM
     faraday-em_http (1.0.0)
     faraday-em_synchrony (1.0.0)
     faraday-excon (1.1.0)
-    faraday-http-cache (2.2.0)
+    faraday-http-cache (2.4.0)
       faraday (>= 0.8)
     faraday-httpclient (1.0.1)
     faraday-multipart (1.0.3)
@@ -387,6 +388,8 @@ GEM
       rake
     ffi-yajl (2.3.4)
       libyajl2 (~> 1.2)
+    filelock (1.1.1)
+    find_a_port (1.0.1)
     flipper (0.21.0)
     flipper-active_record (0.21.0)
       activerecord (>= 5.0, < 7)
@@ -402,11 +405,10 @@ GEM
       fog-json
       ipaddress (~> 0.8)
       xml-simple (~> 1.1)
-    fog-aws (3.12.0)
+    fog-aws (3.14.0)
       fog-core (~> 2.1)
       fog-json (~> 1.1)
       fog-xml (~> 0.1)
-      ipaddress (~> 0.8)
     fog-core (2.1.0)
       builder
       excon (~> 0.58)
@@ -458,7 +460,7 @@ GEM
       rails (>= 3.2.0)
     git (1.7.0)
       rchardet (~> 1.8)
-    gitaly (14.10.0.pre.rc1)
+    gitaly (15.1.0.pre.rc1)
       grpc (~> 1.0)
     github-markup (1.7.0)
     gitlab (4.16.1)
@@ -466,21 +468,21 @@ GEM
       terminal-table (~> 1.5, >= 1.5.1)
     gitlab-chronic (0.10.5)
       numerizer (~> 0.2)
-    gitlab-dangerfiles (3.0.0)
+    gitlab-dangerfiles (3.4.0)
       danger (>= 8.4.5)
       danger-gitlab (>= 8.0.0)
       rake
     gitlab-experiment (0.7.1)
       activesupport (>= 3.0)
       request_store (>= 1.0)
-    gitlab-fog-azure-rm (1.2.0)
+    gitlab-fog-azure-rm (1.3.0)
       azure-storage-blob (~> 2.0)
       azure-storage-common (~> 2.0)
       fog-core (= 2.1.0)
       fog-json (~> 1.2.0)
       mime-types
       ms_rest_azure (~> 0.12.0)
-    gitlab-labkit (0.22.0)
+    gitlab-labkit (0.23.0)
       actionpack (>= 5.0.0, < 7.0.0)
       activesupport (>= 5.0.0, < 7.0.0)
       grpc (>= 1.37)
@@ -505,7 +507,7 @@ GEM
       openid_connect (~> 1.2)
     gitlab-sidekiq-fetcher (0.8.0)
       sidekiq (~> 6.1)
-    gitlab-styles (7.0.0)
+    gitlab-styles (7.1.0)
       rubocop (~> 0.91, >= 0.91.1)
       rubocop-gitlab-security (~> 0.1.1)
       rubocop-graphql (~> 0.10)
@@ -564,7 +566,7 @@ GEM
       grape (~> 1.3)
       rake (> 12)
       ruby2_keywords (~> 0.0.2)
-    grape_logging (1.8.3)
+    grape_logging (1.8.4)
       grape
       rack
     graphiql-rails (1.8.0)
@@ -574,7 +576,7 @@ GEM
       faraday (>= 1.0)
       faraday_middleware
       graphql-client
-    graphql (1.11.10)
+    graphql (1.13.12)
     graphql-client (0.17.0)
       activesupport (>= 3.0)
       graphql (~> 1.10)
@@ -715,7 +717,7 @@ GEM
       rest-client (~> 2.0)
     launchy (2.5.0)
       addressable (~> 2.7)
-    lefthook (0.7.5)
+    lefthook (0.8.0)
     letter_opener (1.7.0)
       launchy (~> 2.2)
     letter_opener_web (2.0.0)
@@ -777,7 +779,7 @@ GEM
       faraday (>= 0.9, < 2.0.0)
       faraday-cookie_jar (~> 0.0.6)
       ms_rest (~> 0.7.6)
-    msgpack (1.5.1)
+    msgpack (1.5.2)
     multi_json (1.14.1)
     multi_xml (0.6.0)
     multipart-post (2.1.1)
@@ -798,7 +800,7 @@ GEM
     netrc (0.11.0)
     nio4r (2.5.8)
     no_proxy_fix (0.1.2)
-    nokogiri (1.13.3)
+    nokogiri (1.13.6)
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     notiffany (0.1.3)
@@ -852,8 +854,8 @@ GEM
       addressable (~> 2.3)
       nokogiri (~> 1.7, >= 1.7.1)
       omniauth (~> 1.2)
-    omniauth-dingtalk-oauth2 (1.0.0)
-      omniauth-oauth2 (~> 1.7.1)
+    omniauth-dingtalk-oauth2 (1.0.1)
+      omniauth-oauth2 (~> 1.7)
     omniauth-facebook (4.0.0)
       omniauth-oauth2 (~> 1.2)
     omniauth-github (1.4.0)
@@ -908,22 +910,45 @@ GEM
       rubypants (~> 0.2)
     orm_adapter (0.5.0)
     os (1.1.1)
-    parallel (1.20.1)
-    parser (3.0.3.2)
+    pact (1.59.0)
+      pact-mock_service (~> 3.0, >= 3.3.1)
+      pact-support (~> 1.15)
+      rack-test (>= 0.6.3, < 2.0.0)
+      rspec (~> 3.0)
+      term-ansicolor (~> 1.0)
+      thor (>= 0.20, < 2.0)
+      webrick (~> 1.3)
+    pact-mock_service (3.6.2)
+      filelock (~> 1.1)
+      find_a_port (~> 1.0.1)
+      json
+      pact-support (~> 1.12, >= 1.12.0)
+      rack (~> 2.0)
+      rspec (>= 2.14)
+      term-ansicolor (~> 1.0)
+      thor (>= 0.19, < 2.0)
+      webrick (~> 1.3)
+    pact-support (1.15.1)
+      awesome_print (~> 1.1)
+      randexp (~> 0.1.7)
+      rspec (>= 2.14)
+      term-ansicolor (~> 1.0)
+    parallel (1.22.1)
+    parser (3.1.2.0)
       ast (~> 2.4.1)
     parslet (1.8.2)
     pastel (0.8.0)
       tty-color (~> 0.5)
     peek (1.1.0)
       railties (>= 4.0.0)
-    pg (1.2.3)
-    pg_query (2.1.1)
-      google-protobuf (>= 3.17.1)
+    pg (1.3.5)
+    pg_query (2.1.3)
+      google-protobuf (>= 3.19.2)
     plist (3.6.0)
     png_quantizator (0.2.1)
     po_to_json (1.0.1)
       json (>= 1.6.0)
-    premailer (1.11.1)
+    premailer (1.16.0)
       addressable
       css_parser (>= 1.6.0)
       htmlentities (>= 4.0.0)
@@ -947,7 +972,7 @@ GEM
       pry (~> 0.13.0)
       tty-markdown
       tty-prompt
-    public_suffix (4.0.6)
+    public_suffix (4.0.7)
     puma (5.6.2)
       nio4r (~> 2.0)
     puma_worker_killer (0.3.1)
@@ -956,14 +981,14 @@ GEM
     pyu-ruby-sasl (0.0.3.3)
     raabro (1.1.6)
     racc (1.6.0)
-    rack (2.2.3)
+    rack (2.2.3.1)
     rack-accept (0.4.5)
       rack (>= 0.4)
-    rack-attack (6.3.0)
+    rack-attack (6.6.1)
       rack (>= 1.0, < 3)
-    rack-cors (1.0.6)
-      rack (>= 1.6.0)
-    rack-oauth2 (1.16.0)
+    rack-cors (1.1.1)
+      rack (>= 2.0.0)
+    rack-oauth2 (1.19.0)
       activesupport
       attr_required
       httpclient
@@ -973,7 +998,7 @@ GEM
       rack
     rack-test (1.1.0)
       rack (>= 1.0, < 3)
-    rack-timeout (0.5.2)
+    rack-timeout (0.6.0)
     rails (6.1.4.7)
       actioncable (= 6.1.4.7)
       actionmailbox (= 6.1.4.7)
@@ -1007,8 +1032,9 @@ GEM
       method_source
       rake (>= 0.13)
       thor (~> 1.0)
-    rainbow (3.0.0)
+    rainbow (3.1.1)
     rake (13.0.6)
+    randexp (0.1.7)
     rb-fsevent (0.10.4)
     rb-inotify (0.10.1)
       ffi (~> 1.0)
@@ -1019,7 +1045,7 @@ GEM
     rbtree (0.4.4)
     rchardet (1.8.0)
     rdoc (6.3.2)
-    re2 (1.2.0)
+    re2 (1.4.0)
     recaptcha (4.13.1)
       json
     recursive-open-struct (1.1.3)
@@ -1035,7 +1061,7 @@ GEM
       redis-store (>= 1.2, < 2)
     redis-store (1.9.0)
       redis (>= 4, < 5)
-    regexp_parser (2.2.1)
+    regexp_parser (2.5.0)
     regexp_property_values (1.0.0)
     representable (3.0.4)
       declarative (< 0.1.0)
@@ -1057,7 +1083,7 @@ GEM
     rexml (3.2.5)
     rinku (2.0.0)
     rotp (6.2.0)
-    rouge (3.27.0)
+    rouge (3.29.0)
     rqrcode (0.7.0)
       chunky_png
     rqrcode-rails3 (0.1.7)
@@ -1112,11 +1138,11 @@ GEM
       rubocop-ast (>= 0.6.0)
       ruby-progressbar (~> 1.7)
       unicode-display_width (>= 1.4.0, < 2.0)
-    rubocop-ast (1.4.1)
-      parser (>= 2.7.1.5)
+    rubocop-ast (1.18.0)
+      parser (>= 3.1.1.0)
     rubocop-gitlab-security (0.1.1)
       rubocop (>= 0.51)
-    rubocop-graphql (0.13.0)
+    rubocop-graphql (0.14.3)
       rubocop (>= 0.87, < 2)
     rubocop-performance (1.9.2)
       rubocop (>= 0.90.0, < 2.0)
@@ -1253,7 +1279,7 @@ GEM
       activesupport (>= 5.2)
       sprockets (>= 3.0.0)
     sqlite3 (1.4.2)
-    ssh_data (1.2.0)
+    ssh_data (1.3.0)
     ssrf_filter (1.0.7)
     stackprof (0.2.15)
     state_machines (0.5.0)
@@ -1272,11 +1298,14 @@ GEM
       activesupport (>= 3)
       attr_required (>= 0.0.5)
       httpclient (>= 2.4)
+    sync (0.5.0)
     sys-filesystem (1.4.3)
       ffi (~> 1.1)
     sysexits (1.2.0)
     tanuki_emoji (0.6.0)
     temple (0.8.2)
+    term-ansicolor (1.7.1)
+      tins (~> 1.0)
     terminal-table (1.8.0)
       unicode-display_width (~> 1.1, >= 1.1.1)
     terser (1.0.2)
@@ -1295,6 +1324,8 @@ GEM
     timecop (0.9.1)
     timeliness (0.3.10)
     timfel-krb5-auth (0.8.3)
+    tins (1.31.0)
+      sync
     toml-rb (2.0.1)
       citrus (~> 3.0, > 3.0)
     tomlrb (1.3.0)
@@ -1341,7 +1372,7 @@ GEM
     unf (0.1.4)
       unf_ext
     unf_ext (0.0.8)
-    unicode-display_width (1.7.0)
+    unicode-display_width (1.8.0)
     unicode_utils (1.4.0)
     uniform_notifier (1.13.0)
     unleash (3.2.2)
@@ -1403,7 +1434,7 @@ GEM
       nokogiri (~> 1.8)
     yajl-ruby (1.4.1)
     yard (0.9.26)
-    zeitwerk (2.5.4)
+    zeitwerk (2.6.0)
 
 PLATFORMS
   ruby
@@ -1435,7 +1466,7 @@ DEPENDENCIES
   benchmark-ips (~> 2.3.0)
   benchmark-memory (~> 0.1)
   better_errors (~> 2.9.0)
-  bootsnap (~> 1.9.4)
+  bootsnap (~> 1.12.0)
   bootstrap_form (~> 4.2.0)
   browser (~> 4.2)
   bullet (~> 6.1.3)
@@ -1464,6 +1495,7 @@ DEPENDENCIES
   discordrb-webhooks (~> 3.4)
   doorkeeper (~> 5.5.0.rc2)
   doorkeeper-openid_connect (~> 1.7.5)
+  ed25519 (~> 1.3.0)
   elasticsearch-api (= 7.13.3)
   elasticsearch-model (~> 7.2)
   elasticsearch-rails (~> 7.2)
@@ -1481,7 +1513,7 @@ DEPENDENCIES
   flipper-active_support_cache_store (~> 0.21.0)
   flowdock (~> 0.7)
   fog-aliyun (~> 0.3)
-  fog-aws (~> 3.12)
+  fog-aws (~> 3.14)
   fog-core (= 2.1.0)
   fog-google (~> 1.15)
   fog-local (~> 0.6)
@@ -1492,13 +1524,13 @@ DEPENDENCIES
   gettext (~> 3.3)
   gettext_i18n_rails (~> 1.8.0)
   gettext_i18n_rails_js (~> 1.3)
-  gitaly (~> 14.10.0.pre.rc1)
+  gitaly (~> 15.1.0.pre.rc1)
   github-markup (~> 1.7.0)
   gitlab-chronic (~> 0.10.5)
-  gitlab-dangerfiles (~> 3.0)
+  gitlab-dangerfiles (~> 3.4.0)
   gitlab-experiment (~> 0.7.1)
-  gitlab-fog-azure-rm (~> 1.2.0)
-  gitlab-labkit (~> 0.22.0)
+  gitlab-fog-azure-rm (~> 1.3.0)
+  gitlab-labkit (~> 0.23.0)
   gitlab-license (~> 2.1.0)
   gitlab-license_finder (~> 6.0)
   gitlab-mail_room (~> 0.0.9)
@@ -1506,7 +1538,7 @@ DEPENDENCIES
   gitlab-net-dns (~> 0.9.1)
   gitlab-omniauth-openid-connect (~> 0.9.0)
   gitlab-sidekiq-fetcher (= 0.8.0)
-  gitlab-styles (~> 7.0.0)
+  gitlab-styles (~> 7.1.0)
   gitlab_chronic_duration (~> 0.10.6.2)
   gitlab_omniauth-ldap (~> 2.1.1)
   gon (~> 6.4.0)
@@ -1516,10 +1548,10 @@ DEPENDENCIES
   grape (~> 1.5.2)
   grape-entity (~> 0.10.0)
   grape-path-helpers (~> 1.7.0)
-  grape_logging (~> 1.7)
+  grape_logging (~> 1.8)
   graphiql-rails (~> 1.8)
   graphlient (~> 0.5.0)
-  graphql (~> 1.11.10)
+  graphql (~> 1.13.12)
   graphql-docs (~> 1.6.0)
   grpc (~> 1.42.0)
   gssapi
@@ -1547,7 +1579,7 @@ DEPENDENCIES
   knapsack (~> 1.21.1)
   kramdown (~> 2.3.1)
   kubeclient (~> 4.9.2)
-  lefthook (~> 0.7.0)
+  lefthook (~> 0.8.0)
   letter_opener_web (~> 2.0.0)
   licensee (~> 9.14.1)
   lockbox (~> 0.6.2)
@@ -1563,7 +1595,7 @@ DEPENDENCIES
   multi_json (~> 1.14.1)
   net-ldap (~> 0.16.3)
   net-ntp
-  nokogiri (~> 1.12)
+  nokogiri (~> 1.13.6)
   oauth2 (~> 1.4)
   octokit (~> 4.15)
   ohai (~> 16.10)
@@ -1588,11 +1620,12 @@ DEPENDENCIES
   omniauth-twitter (~> 1.4)
   omniauth_crowd (~> 2.4.0)
   org-ruby (~> 0.9.12)
+  pact (~> 1.12)
   parallel (~> 1.19)
   parslet (~> 1.8)
   peek (~> 1.1)
-  pg (~> 1.1)
-  pg_query (~> 2.1)
+  pg (~> 1.3.0)
+  pg_query (~> 2.1.0)
   png_quantizator (~> 0.2.1)
   premailer-rails (~> 1.10.3)
   prometheus-client-mmap (~> 0.15.0)
@@ -1601,19 +1634,19 @@ DEPENDENCIES
   pry-shell (~> 0.5.0)
   puma (~> 5.6.2)
   puma_worker_killer (~> 0.3.1)
-  rack (~> 2.2.3)
-  rack-attack (~> 6.3.0)
-  rack-cors (~> 1.0.6)
-  rack-oauth2 (~> 1.16.0)
+  rack (~> 2.2.3.0)
+  rack-attack (~> 6.6.0)
+  rack-cors (~> 1.1.0)
+  rack-oauth2 (~> 1.19.0)
   rack-proxy (~> 0.7.2)
-  rack-timeout (~> 0.5.1)
+  rack-timeout (~> 0.6.0)
   rails (~> 6.1.4.7)
   rails-controller-testing
   rails-i18n (~> 6.0)
   rainbow (~> 3.0)
   rbtrace (~> 0.4)
   rdoc (~> 6.3.2)
-  re2 (~> 1.2.0)
+  re2 (~> 1.4.0)
   recaptcha (~> 4.11)
   redis (~> 4.4.0)
   redis-actionpack (~> 5.2.0)
@@ -1622,7 +1655,7 @@ DEPENDENCIES
   responders (~> 3.0)
   retriable (~> 3.1.2)
   rexml (~> 3.2.5)
-  rouge (~> 3.27.0)
+  rouge (~> 3.29.0)
   rqrcode-rails3 (~> 0.1.7)
   rspec-benchmark (~> 0.6.0)
   rspec-parameterized
@@ -1665,7 +1698,7 @@ DEPENDENCIES
   spring-commands-rspec (~> 1.0.4)
   sprite-factory (~> 1.7)
   sprockets (~> 3.7.0)
-  ssh_data (~> 1.2)
+  ssh_data (~> 1.3)
   stackprof (~> 0.2.15)
   state_machines-activerecord (~> 0.8.0)
   sys-filesystem (~> 1.4.3)
diff --git a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
index 87791ff567532..5f11d60987854 100644
--- a/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
+++ b/pkgs/applications/version-management/gitlab/rubyEnv/gemset.nix
@@ -577,10 +577,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "19i4x2nascd74ahcvmrsnf03cygh1y4c9yf8rcv91fv0mcxpvb9n";
+      sha256 = "0yza43f42v0ys81y6jzbqfkdykf40h6l3yyvadwq32fswrbpwvbc";
       type = "gem";
     };
-    version = "1.9.4";
+    version = "1.12.0";
   };
   bootstrap_form = {
     dependencies = ["actionpack" "activemodel"];
@@ -930,10 +930,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1y4vc018b5mzp7winw4pbb22jk0dpxp22pzzxq7w0rgvfxzi89pd";
+      sha256 = "1qbdgp36dhcyljhmfxrvbgp1ha9yqxhxgyg3sdm48y9m371jd2an";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.11.0";
   };
   daemons = {
     groups = ["default" "development"];
@@ -951,10 +951,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0xmckbl41v27x9ri6snrl01alsbwxcqsfc4a1nfhgx0py6y0dmjg";
+      sha256 = "1n6zbkkinlv2hp4ig5c170d1ckbbdf8rgxmykfm3m3gn865vapnr";
       type = "gem";
     };
-    version = "8.5.0";
+    version = "8.6.1";
   };
   danger-gitlab = {
     dependencies = ["danger" "gitlab"];
@@ -1283,6 +1283,16 @@
     };
     version = "0.3.0";
   };
+  ed25519 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0zb2dr2ihb1qiknn5iaj1ha1w9p7lj9yq5waasndlfadz225ajji";
+      type = "gem";
+    };
+    version = "1.3.0";
+  };
   elasticsearch = {
     dependencies = ["elasticsearch-api" "elasticsearch-transport"];
     groups = ["default"];
@@ -1537,14 +1547,14 @@
   };
   faraday-http-cache = {
     dependencies = ["faraday"];
-    groups = ["default" "development"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lhfwlk4mhmw9pdlgdsl2bq4x45w7s51jkxjryf18wym8iiw36g7";
+      sha256 = "143cpzdrnyqyfv1jasr0qjqgm57dhv46nsf5f2s06ndxccfr13rq";
       type = "gem";
     };
-    version = "2.2.0";
+    version = "2.4.0";
   };
   faraday-httpclient = {
     groups = ["danger" "default" "development" "test"];
@@ -1712,6 +1722,26 @@
     };
     version = "2.3.4";
   };
+  filelock = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "085vrb6wf243iqqnrrccwhjd4chphfdsybkvjbapa2ipfj1ja1sj";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  find_a_port = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1sswgpvn38yav4i21adrr7yy8c8299d7rj065gd3iwg6nn26lpb0";
+      type = "gem";
+    };
+    version = "1.0.1";
+  };
   flipper = {
     groups = ["default"];
     platforms = [];
@@ -1767,15 +1797,15 @@
     version = "0.3.3";
   };
   fog-aws = {
-    dependencies = ["fog-core" "fog-json" "fog-xml" "ipaddress"];
+    dependencies = ["fog-core" "fog-json" "fog-xml"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cl9b93mwhzm9fp0lmac1vzz359g3sq52k06kn0a0vnvxrxnhzjm";
+      sha256 = "1gsb26a1jp0k7hclry0dai2a9m77a9h6ybc17x0i98z2ivzjsi07";
       type = "gem";
     };
-    version = "3.12.0";
+    version = "3.14.0";
   };
   fog-core = {
     dependencies = ["builder" "excon" "formatador" "mime-types"];
@@ -1967,10 +1997,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ls4x3h1c3axx9kqmvs1mpcmjqchl297sh1bzzl5zjgdz25w24di";
+      sha256 = "0ygf5di1sl8b3gs7ascn3r9carf6v8d9c3damc10sh81sm7bwc0z";
       type = "gem";
     };
-    version = "14.10.0.pre.rc1";
+    version = "15.1.0.pre.rc1";
   };
   github-markup = {
     groups = ["default"];
@@ -2010,10 +2040,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1kyp5kxp0jsk224y2nq4yg37wnn824ialdjvsf8fv3a20q9w4k7i";
+      sha256 = "13c7k36xq042fbf7d9jwgfc30zq9dfziwvqfi88h2199v9dkylix";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.4.0";
   };
   gitlab-experiment = {
     dependencies = ["activesupport" "request_store"];
@@ -2032,10 +2062,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1hi9v0zy863gnk17w0fp1ks2kr1s2z6q0bkx5wdbq6yawycjs94h";
+      sha256 = "1d8plrl69q5mcsgz8ywhw7k9q0g31y3gm6h90gw9apsisqbm7vrg";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   gitlab-labkit = {
     dependencies = ["actionpack" "activesupport" "grpc" "jaeger-client" "opentracing" "pg_query" "redis"];
@@ -2043,10 +2073,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vs5q1lfk5i953gv2xvz6h5x6ycllr8hdzg81zsrz7hy3aygxknj";
+      sha256 = "0kiz2m3dw6ld2z6dsl8jh2ycw061wv8wiy34flymb5zqjiyyzw8l";
       type = "gem";
     };
-    version = "0.22.0";
+    version = "0.23.0";
   };
   gitlab-license = {
     groups = ["default"];
@@ -2127,10 +2157,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10fmvx2vx2v0mbwv5d4wcpc2iyp5y8lwxn9hjpzkk5bvxkk4c493";
+      sha256 = "0xp2f1bbx8i7a89xjwy6b5rhxr9g1vnms68chcnxdd95csxhxpzp";
       type = "gem";
     };
-    version = "7.0.0";
+    version = "7.1.0";
   };
   gitlab_chronic_duration = {
     dependencies = ["numerizer"];
@@ -2280,10 +2310,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0x6cmmj0wi1m689r8d4yhyhpl8dwj5skn8b29igm4xvw3swkg94x";
+      sha256 = "1lcjqwal3wc2r41wsi01d09cyhxhglxp6y7hd0564pdx5lr3xk7g";
       type = "gem";
     };
-    version = "1.8.3";
+    version = "1.8.4";
   };
   graphiql-rails = {
     dependencies = ["railties" "sprockets-rails"];
@@ -2312,10 +2342,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0qb6bk8gflwid4qrk2i9ndzs5fxycdjvxmhy9w547lglzb5jx19b";
+      sha256 = "1hvsv6ig6d8syr4vasa8vcc090kbawwflk5m1j6kl681y9n6d0hx";
       type = "gem";
     };
-    version = "1.11.10";
+    version = "1.13.12";
   };
   graphql-client = {
     dependencies = ["activesupport" "graphql"];
@@ -2899,10 +2929,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07r76qlzxcz9y4dmkqf8k4khkfq7s2v22dcq6b0w0v4cfiwqva3h";
+      sha256 = "05ykgpj6cka9vprvrk37ixyhj2pdw7a9m6bq645yai6ihghahlf0";
       type = "gem";
     };
-    version = "0.7.5";
+    version = "0.8.0";
   };
   letter_opener = {
     dependencies = ["launchy"];
@@ -3226,10 +3256,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1i0gbypr1yxwfkaxzrk0i1wz4n6v3mw7z24k65jy3q1h5lda5xbw";
+      sha256 = "1hpj9mm31a5aw5qys2kglfl8jv74bkwkc5pfrpp3als89hgkznqy";
       type = "gem";
     };
-    version = "1.5.1";
+    version = "1.5.2";
   };
   multi_json = {
     groups = ["default"];
@@ -3401,10 +3431,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1p6b3q411h2mw4dsvhjrp1hh66hha5cm69fqg85vn2lizz71n6xz";
+      sha256 = "11w59ga9324yx6339dgsflz3dsqq2mky1qqdwcg6wi5s1bf2yldi";
       type = "gem";
     };
-    version = "1.13.3";
+    version = "1.13.6";
   };
   notiffany = {
     dependencies = ["nenv" "shellany"];
@@ -3574,10 +3604,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1sflfy1jvn9wqpral7gcfmbys7msvykp6rlnl33r8qgnbksn54y8";
+      sha256 = "16qkd51f1ab1hw4az27qj3vk958aal67by8djsplwd1q3h7nfib5";
       type = "gem";
     };
-    version = "1.0.0";
+    version = "1.0.1";
   };
   omniauth-facebook = {
     dependencies = ["omniauth-oauth2"];
@@ -3803,15 +3833,48 @@
     };
     version = "1.1.1";
   };
+  pact = {
+    dependencies = ["pact-mock_service" "pact-support" "rack-test" "rspec" "term-ansicolor" "thor" "webrick"];
+    groups = ["development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ngwc4zrp6jxpb8s0y07xxic492a1n0akjxd7x4hks2fbsiwwwk2";
+      type = "gem";
+    };
+    version = "1.59.0";
+  };
+  pact-mock_service = {
+    dependencies = ["filelock" "find_a_port" "json" "pact-support" "rack" "rspec" "term-ansicolor" "thor" "webrick"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0izmf5h0n1mcrfk6qlz61rhzdjs6h0bkqrx6ndp8nhmfhja254fc";
+      type = "gem";
+    };
+    version = "3.6.2";
+  };
+  pact-support = {
+    dependencies = ["awesome_print" "randexp" "rspec" "term-ansicolor"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07qxvxy48im9vlswqspsh2k6fy6rsmi3409863ww8y7yx5pmjr63";
+      type = "gem";
+    };
+    version = "1.15.1";
+  };
   parallel = {
     groups = ["development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0055br0mibnqz0j8wvy20zry548dhkakws681bhj3ycb972awkzd";
+      sha256 = "07vnk6bb54k4yc06xnwck7php50l09vvlw1ga8wdz0pia461zpzb";
       type = "gem";
     };
-    version = "1.20.1";
+    version = "1.22.1";
   };
   parser = {
     dependencies = ["ast"];
@@ -3819,10 +3882,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0sszdl9mpzqzn9kxrp28sqmg47mjxcwypr4d60vbajqba4v885di";
+      sha256 = "0xhfghgidj8cbdnqp01f7kvnrv1f60izpkd9dhxsvpdzkfsdg97d";
       type = "gem";
     };
-    version = "3.0.3.2";
+    version = "3.1.2.0";
   };
   parslet = {
     groups = ["default" "development" "test"];
@@ -3861,10 +3924,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "13mfrysrdrh8cka1d96zm0lnfs59i5x2g6ps49r2kz5p3q81xrzj";
+      sha256 = "10ryzmc3r5ja6g90a9ycsxcxsy5872xa1vf01jam0bm74zq3zmi6";
       type = "gem";
     };
-    version = "1.2.3";
+    version = "1.3.5";
   };
   pg_query = {
     dependencies = ["google-protobuf"];
@@ -3872,10 +3935,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0cf1b97nznl6adkx25j2x96sq8xx2b4fpic230fx65k3vqqn8a4r";
+      sha256 = "00bhwkhjy6bkp04313m5il7vd165i3fz0x4jissflf66i164ppgk";
       type = "gem";
     };
-    version = "2.1.1";
+    version = "2.1.3";
   };
   plist = {
     groups = ["default"];
@@ -3914,10 +3977,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xrhmialxn5vlp1nmf40a4db9gji4h2wbzd7f43sz64z8lvrjj6h";
+      sha256 = "11j7d6abxivj15yax47z3f751wz4pnl02qszzc9swswf8hn41r03";
       type = "gem";
     };
-    version = "1.11.1";
+    version = "1.16.0";
   };
   premailer-rails = {
     dependencies = ["actionmailer" "premailer"];
@@ -4000,14 +4063,14 @@
     version = "0.5.0";
   };
   public_suffix = {
-    groups = ["default" "development" "test"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1xqcgkl7bwws1qrlnmxgh8g4g9m10vg60bhlw40fplninb3ng6d9";
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
       type = "gem";
     };
-    version = "4.0.6";
+    version = "4.0.7";
   };
   puma = {
     dependencies = ["nio4r"];
@@ -4062,14 +4125,14 @@
     version = "1.6.0";
   };
   rack = {
-    groups = ["default" "development" "kerberos" "test"];
+    groups = ["default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      sha256 = "1b1qsg0yfargdhmpapp2d3mlxj82wyygs9nj74w0r03diyi8swlc";
       type = "gem";
     };
-    version = "2.2.3";
+    version = "2.2.3.1";
   };
   rack-accept = {
     dependencies = ["rack"];
@@ -4088,10 +4151,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "15b8lk54j2abqhpn588b1wvbzwmxwa7iql6241kxpjc0gyb51p0z";
+      sha256 = "049s3y3dpl6dn478g912y6f9nzclnnkl30psrbc2w5kaihj5szhq";
       type = "gem";
     };
-    version = "6.3.0";
+    version = "6.6.1";
   };
   rack-cors = {
     dependencies = ["rack"];
@@ -4099,10 +4162,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07dppmm1ah1gs31sb5byrkkady9vqzwjmpd92c8425nc6yzwknik";
+      sha256 = "0jvs0mq8jrsz86jva91mgql16daprpa3qaipzzfvngnnqr5680j7";
       type = "gem";
     };
-    version = "1.0.6";
+    version = "1.1.1";
   };
   rack-oauth2 = {
     dependencies = ["activesupport" "attr_required" "httpclient" "json-jwt" "rack"];
@@ -4110,10 +4173,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1b0h0rlfl0p0drymwfc71g87fp66ck3205pl32z89xsgh0lzw25k";
+      sha256 = "0gxxr209r8h3nxhc9h731khv6yswiv9hc6q2pg672v530xmknznw";
       type = "gem";
     };
-    version = "1.16.0";
+    version = "1.19.0";
   };
   rack-proxy = {
     dependencies = ["rack"];
@@ -4142,10 +4205,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0d4dgbf8rgqx03lwsm8j6i20lzawk1bsvzfj5bhzrsycfyfk25aj";
+      sha256 = "16ahj3qz3xhfrwvqb4nf6cfzvliigg0idfsp5jyr8qwk676d2f30";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.6.0";
   };
   rails = {
     dependencies = ["actioncable" "actionmailbox" "actionmailer" "actionpack" "actiontext" "actionview" "activejob" "activemodel" "activerecord" "activestorage" "activesupport" "railties" "sprockets-rails"];
@@ -4214,14 +4277,14 @@
     version = "6.1.4.7";
   };
   rainbow = {
-    groups = ["default" "development" "test"];
+    groups = ["coverage" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.1.1";
   };
   rake = {
     groups = ["default" "development" "test"];
@@ -4233,6 +4296,16 @@
     };
     version = "13.0.6";
   };
+  randexp = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1j742j7g107jgkvpsfq2b10d5xhsni5s8vxrp518d3karw7529ih";
+      type = "gem";
+    };
+    version = "0.1.7";
+  };
   rb-fsevent = {
     groups = ["default" "development" "test"];
     platforms = [];
@@ -4300,10 +4373,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16q71cc9wx342c697q18pkz19ym4ncjd97hcw4v6f1mgflkdv400";
+      sha256 = "13za43xb5xfg1xb1vwlvwx14jlmnk7jal5dqw8q9a5g13csx41sw";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.4.0";
   };
   recaptcha = {
     dependencies = ["json"];
@@ -4395,10 +4468,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "155f6cr4rrfw5bs5xd3m5kfw32qhc5fsi4nk82rhif56rc6cs0wm";
+      sha256 = "1rfd3q17p7q7pa67844q8b16ipy6ksh8mkzynpm1zldqbb9x4xm0";
       type = "gem";
     };
-    version = "2.2.1";
+    version = "2.5.0";
   };
   regexp_property_values = {
     groups = ["default"];
@@ -4510,10 +4583,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0530ri0p60km0bg0ib6swkhfnas427cva7vcdmnwl8df52a10y1k";
+      sha256 = "17dhzc9hfzd8x18hfsvn9rsp4jg18wdfsdy3a5p99y5dhfh1321r";
       type = "gem";
     };
-    version = "3.27.0";
+    version = "3.29.0";
   };
   rqrcode = {
     dependencies = ["chunky_png"];
@@ -4674,10 +4747,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0gkf1p8yal38nlvdb39qaiy0gr85fxfr09j5dxh8qvrgpncpnk78";
+      sha256 = "1b3p4wy68jkyq8vhm5y568wlhsihy3ilnp2c6ig18xcw1slnkypl";
       type = "gem";
     };
-    version = "1.4.1";
+    version = "1.18.0";
   };
   rubocop-gitlab-security = {
     dependencies = ["rubocop"];
@@ -4696,10 +4769,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "18md69dkz0s5xm93c4psmvy4c0nx3a7yi61vfjn46cw6yk54fm7b";
+      sha256 = "1yam7fdm77y0x6b6i7v14iiji9020mvdd9h1ainvv88zbv8yd4wq";
       type = "gem";
     };
-    version = "0.13.0";
+    version = "0.14.3";
   };
   rubocop-performance = {
     dependencies = ["rubocop" "rubocop-ast"];
@@ -5330,10 +5403,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0p3vaq2fbmlphphqr0yjc5cyzzxjizq4zbxbbw3j2vpgdcmpi6bs";
+      sha256 = "1h5aiqqlk51z12kgvanhdvd0ajvv2i68z6a7450yxgmflfaiwz7c";
       type = "gem";
     };
-    version = "1.2.0";
+    version = "1.3.0";
   };
   ssrf_filter = {
     groups = ["default"];
@@ -5419,6 +5492,16 @@
     };
     version = "1.3.0";
   };
+  sync = {
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1z9qlq4icyiv3hz1znvsq1wz2ccqjb1zwd6gkvnwg6n50z65d0v6";
+      type = "gem";
+    };
+    version = "0.5.0";
+  };
   sys-filesystem = {
     dependencies = ["ffi"];
     groups = ["default"];
@@ -5460,6 +5543,17 @@
     };
     version = "0.8.2";
   };
+  term-ansicolor = {
+    dependencies = ["tins"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1xq5kci9215skdh27npyd3y55p812v4qb4x2hv3xsjvwqzz9ycwj";
+      type = "gem";
+    };
+    version = "1.7.1";
+  };
   terminal-table = {
     dependencies = ["unicode-display_width"];
     groups = ["default" "development"];
@@ -5584,6 +5678,17 @@
     };
     version = "0.8.3";
   };
+  tins = {
+    dependencies = ["sync"];
+    groups = ["default" "development" "test"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "153q7j2nj7y43iscbfcihmwlcydx6sbd65azs27kain0gncymd90";
+      type = "gem";
+    };
+    version = "1.31.0";
+  };
   toml-rb = {
     dependencies = ["citrus"];
     groups = ["default"];
@@ -5776,14 +5881,14 @@
     version = "0.0.8";
   };
   unicode-display_width = {
-    groups = ["default" "development" "test"];
+    groups = ["danger" "default" "development" "test"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "1.8.0";
   };
   unicode_utils = {
     groups = ["default"];
@@ -6084,9 +6189,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
+      sha256 = "0xjdr2szxvn3zb1sb5l8nfd6k9jr3b4qqbbg1mj9grf68m3fxckc";
       type = "gem";
     };
-    version = "2.5.4";
+    version = "2.6.0";
   };
 }
diff --git a/pkgs/applications/version-management/got/default.nix b/pkgs/applications/version-management/got/default.nix
index f38bb042c435f..fc0de31d47135 100644
--- a/pkgs/applications/version-management/got/default.nix
+++ b/pkgs/applications/version-management/got/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "got";
-  version = "0.69";
+  version = "0.70";
 
   src = fetchurl {
     url = "https://gameoftrees.org/releases/portable/got-portable-${version}.tar.gz";
-    sha256 = "1cnl0yk866wzjwgas587kvb08njq7db71b5xqsdrwd1varp010vm";
+    sha256 = "0kh7idgbiil58l043lkyjy9lz81yj03b6b3d7ra62jkrkzc4wlrf";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/version-management/meld/default.nix b/pkgs/applications/version-management/meld/default.nix
index f8f58cdcaba29..88af6b0ceae5e 100644
--- a/pkgs/applications/version-management/meld/default.nix
+++ b/pkgs/applications/version-management/meld/default.nix
@@ -1,6 +1,5 @@
 { lib
 , fetchurl
-, fetchpatch
 , gettext
 , itstool
 , python3
@@ -19,32 +18,15 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "meld";
-  version = "3.21.1";
+  version = "3.21.2";
 
   format = "other";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "cP6Y65Ms4h1nFw47D2pzF+gT6GLemJM+pROYLpoDMgI=";
+    sha256 = "IV+odABTZ5TFllddE6nIfijxjdNyW43/mG2y4pM6cU4=";
   };
 
-  patches = [
-    # Pull upstream fix for meson-0.60:
-    #  https://gitlab.gnome.org/GNOME/meld/-/merge_requests/78
-    (fetchpatch {
-      name = "meson-0.60.patch";
-      url  = "https://gitlab.gnome.org/GNOME/meld/-/commit/cc7746c141d976a4779cf868774fae1fe7627a6d.patch";
-      sha256 = "sha256-4uJZyF00Z6svzrOebByZV1hutCZRkIQYC4rUxQr5fdQ=";
-    })
-
-    # Fix view not rendering with adwaita-icon-theme 42 due to removed icons.
-    # https://gitlab.gnome.org/GNOME/meld/-/merge_requests/83
-    (fetchpatch {
-      url  = "https://gitlab.gnome.org/GNOME/meld/-/commit/f850cdf3eaf0f08abea003d5fae118a5e92a3d61.patch";
-      sha256 = "PaK8Rpv79UwMUligm9pIY16JW/dm7eVXntAwTV4hnbE=";
-    })
-  ];
-
   nativeBuildInputs = [
     meson
     ninja
diff --git a/pkgs/applications/version-management/mercurial/default.nix b/pkgs/applications/version-management/mercurial/default.nix
index ab1f427c4b8e6..98e415704cce8 100644
--- a/pkgs/applications/version-management/mercurial/default.nix
+++ b/pkgs/applications/version-management/mercurial/default.nix
@@ -21,11 +21,11 @@ let
 
   self = python3Packages.buildPythonApplication rec {
     pname = "mercurial${lib.optionalString fullBuild "-full"}";
-    version = "6.1.3";
+    version = "6.1.4";
 
     src = fetchurl {
       url = "https://mercurial-scm.org/release/mercurial-${version}.tar.gz";
-      sha256 = "sha256-4CLB7yjlUCeT9DBnJOhEPF1ycUhBkG9GyjUe/XupG3w=";
+      sha256 = "sha256-82H5gCs241esAZzrcSyhHegzKwfere7Y36kE8Fv3yng=";
     };
 
     format = "other";
@@ -35,7 +35,7 @@ let
     cargoDeps = if rustSupport then rustPlatform.fetchCargoTarball {
       inherit src;
       name = "mercurial-${version}";
-      sha256 = "sha256-NL4rzP9ljhdBtcJOGq759dNnzg2jANhZzMvpez+CbpM=";
+      sha256 = "sha256-GEsRA8od2S9v5xipCwsCmkdLvKKpbbKJGNqPFmrZASQ=";
       sourceRoot = "mercurial-${version}/rust";
     } else null;
     cargoRoot = if rustSupport then "rust" else null;
diff --git a/pkgs/applications/version-management/p4/default.nix b/pkgs/applications/version-management/p4/default.nix
index 7091f0fbc6f9c..4f61be6669aa1 100644
--- a/pkgs/applications/version-management/p4/default.nix
+++ b/pkgs/applications/version-management/p4/default.nix
@@ -23,6 +23,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Perforce Command-Line Client";
     homepage = "https://www.perforce.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ corngood ];
diff --git a/pkgs/applications/version-management/p4v/default.nix b/pkgs/applications/version-management/p4v/default.nix
index 2e0e01e5c9862..9c804a7459b49 100644
--- a/pkgs/applications/version-management/p4v/default.nix
+++ b/pkgs/applications/version-management/p4v/default.nix
@@ -76,6 +76,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "Perforce Visual Client";
     homepage = "https://www.perforce.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfreeRedistributable;
     platforms = [ "x86_64-linux" ];
     maintainers = with lib.maintainers; [ nathyong nioncode ];
diff --git a/pkgs/applications/version-management/sublime-merge/common.nix b/pkgs/applications/version-management/sublime-merge/common.nix
index 28c7350ae39b5..17f36ab4161b4 100644
--- a/pkgs/applications/version-management/sublime-merge/common.nix
+++ b/pkgs/applications/version-management/sublime-merge/common.nix
@@ -121,6 +121,7 @@ in stdenv.mkDerivation (rec {
     description = "Git client from the makers of Sublime Text";
     homepage = "https://www.sublimemerge.com";
     maintainers = with maintainers; [ zookatron ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/version-management/sublime-merge/default.nix b/pkgs/applications/version-management/sublime-merge/default.nix
index 6526fdb2d1bed..faf4ef773790f 100644
--- a/pkgs/applications/version-management/sublime-merge/default.nix
+++ b/pkgs/applications/version-management/sublime-merge/default.nix
@@ -4,13 +4,13 @@ let
   common = opts: callPackage (import ./common.nix opts);
 in {
   sublime-merge = common {
-    buildVersion = "2071";
-    sha256 = "xYVk5Fx6VdoHzf0cbmhwKyEr5HDEZgPgDoBWQg/tS0U=";
+    buildVersion = "2074";
+    sha256 = "REo59Lpi0fmAOp0XJa4Iln3VKxR5kRiMpz2zfqz1MQs=";
   } {};
 
   sublime-merge-dev = common {
-    buildVersion = "2070";
-    sha256 = "2AA2HBF19g34ov6ytjL2caqS7Ro4eyj18vzwINm0CTw=";
+    buildVersion = "2073";
+    sha256 = "AQ0ESdi45LHndRNJnkYS+o9L+dlRJkw3nzBfJo8FYPc=";
     dev = true;
   } {};
 }
diff --git a/pkgs/applications/video/anime-downloader/default.nix b/pkgs/applications/video/anime-downloader/default.nix
new file mode 100644
index 0000000000000..cf8edb33dd876
--- /dev/null
+++ b/pkgs/applications/video/anime-downloader/default.nix
@@ -0,0 +1,51 @@
+{ lib, python3, aria2, mpv, nodejs, fetchFromGitHub }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "anime-downloader";
+  version = "5.0.14";
+
+  src = fetchFromGitHub {
+    owner = "anime-dl";
+    repo = "anime-downloader";
+    rev = version;
+    sha256 = "sha256-Uk2mtsSrb8fCD9JCFzvLBzMEB7ViVDrKPSOKy9ALJ6o=";
+  };
+
+  buildInputs = with python3.pkgs; [
+    jsbeautifier
+    pycryptodome
+    requests
+  ];
+
+  propagatedBuildInputs = [
+    aria2
+    mpv
+    nodejs
+  ] ++ (with python3.pkgs; [
+    beautifulsoup4
+    cfscrape
+    click
+    coloredlogs
+    fuzzywuzzy
+    pySmartDL
+    pyqt5
+    requests-cache
+    selenium
+    tabulate
+  ]);
+
+  doCheck = false;
+  # FIXME: checks must be disabled because they are lacking the qt env.
+  #        They fail like this, even if built and wrapped with all Qt and runtime dependencies.
+  #        Ref.: https://github.com/NixOS/nixpkgs/blob/634141959076a8ab69ca2cca0f266852256d79ee/pkgs/applications/misc/openlp/lib.nix#L20-L23
+
+  passthru.updateScript = ./update.sh;
+
+  meta = with lib; {
+    homepage = "https://github.com/anime-dl/anime-downloader";
+    description = "A simple but powerful anime downloader and streamer";
+    license = licenses.unlicense;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ WeebSorceress ];
+  };
+}
diff --git a/pkgs/applications/video/anime-downloader/update.sh b/pkgs/applications/video/anime-downloader/update.sh
new file mode 100755
index 0000000000000..292299298ad97
--- /dev/null
+++ b/pkgs/applications/video/anime-downloader/update.sh
@@ -0,0 +1,8 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p curl jq common-updater-scripts
+
+set -eu -o pipefail
+
+version="$(curl --silent "https://api.github.com/repos/anime-dl/anime-downloader/releases" | jq '.[0].tag_name' --raw-output)"
+
+update-source-version anime-downloader "$version"
diff --git a/pkgs/applications/video/clapper/default.nix b/pkgs/applications/video/clapper/default.nix
index 0e97eab1773e7..1600b1b4d8bba 100644
--- a/pkgs/applications/video/clapper/default.nix
+++ b/pkgs/applications/video/clapper/default.nix
@@ -24,13 +24,13 @@
 
 stdenv.mkDerivation rec {
   pname = "clapper";
-  version = "0.4.1";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner  = "Rafostar";
     repo   = pname;
     rev    = version;
-    sha256 = "sha256-ccvg8yxPCN7OYmJvq0SPY6iyiuFuWJyiu+mRoykEzqI=";
+    sha256 = "sha256-o68IdI20gSwWCPI0g/BhUGF5ro6srXMy0JD1EgmY5ck=";
   };
 
   nativeBuildInputs = [
@@ -65,11 +65,6 @@ stdenv.mkDerivation rec {
     patchShebangs build-aux/meson/postinstall.py
   '';
 
-  mesonFlags = [
-    # TODO: https://github.com/NixOS/nixpkgs/issues/36468
-    "-Dc_args=-I${glib.dev}/include/gio-unix-2.0"
-  ];
-
   postInstall = ''
     cp ${src}/data/icons/*.svg $out/share/icons/hicolor/scalable/apps/
     cp ${src}/data/icons/*.svg $out/share/icons/hicolor/symbolic/apps/
diff --git a/pkgs/applications/video/clickshare-csc1/default.nix b/pkgs/applications/video/clickshare-csc1/default.nix
deleted file mode 100644
index ce63b9240306a..0000000000000
--- a/pkgs/applications/video/clickshare-csc1/default.nix
+++ /dev/null
@@ -1,122 +0,0 @@
-{ lib
-, stdenv
-, fetchurl
-, alsa-lib
-, autoPatchelfHook
-, binutils-unwrapped
-, libav_0_8
-, libnotify
-, libresample
-, libusb1
-, qt4
-, rpmextract
-, unzip
-, xorg
-, usersGroup ? "clickshare"  # for udev access rules
-}:
-
-
-# This fetches the latest firmware version that
-# contains a linux-compatible client binary.
-# Barco no longer supports linux, so updates are unlikely:
-# https://www.barco.com/de/support/clickshare-csc-1/knowledge-base/KB1191
-
-
-stdenv.mkDerivation rec {
-  pname = "clickshare-csc1";
-  version = "01.07.00.033";
-  src = fetchurl {
-    name = "clickshare-csc1-${version}.zip";
-    url = "https://www.barco.com/services/website/de/TdeFiles/Download?FileNumber=R33050020&TdeType=3&MajorVersion=01&MinorVersion=07&PatchVersion=00&BuildVersion=033";
-    sha256 = "0h4jqidqvk4xkaky5bizi7ilz4qzl2mh68401j21y3djnzx09br3";
-  };
-
-  nativeBuildInputs = [
-    autoPatchelfHook
-    binutils-unwrapped
-    rpmextract
-    unzip
-  ];
-  buildInputs = [
-    alsa-lib
-    libav_0_8
-    libnotify
-    libresample
-    libusb1
-    qt4
-    xorg.libX11
-    xorg.libXdamage
-    xorg.libXfixes
-    xorg.libXinerama
-    xorg.libXtst
-  ];
-  sourceRoot = ".";
-
-  # The source consists of nested archives.
-  # We extract them archive by archive.
-  # If the filename contains version numbers,
-  # we use a wildcard and check that there
-  # is actually only one file matching.
-  postUnpack =
-    let
-      rpmArch =
-        if stdenv.hostPlatform.isx86_32 then "i386" else
-        if stdenv.hostPlatform.isx86_64 then "x86_64" else
-        throw "unsupported system: ${stdenv.hostPlatform.system}";
-    in
-      ''
-        ls clickshare_baseunit_*.*_all.signed_release.ipk | wc --lines | xargs test 1 =
-        tar --verbose --extract --one-top-level=dir1 < clickshare_baseunit_*.*_all.signed_release.ipk
-        mkdir dir2
-        ( cd dir2 ; ar xv ../dir1/firmware.ipk )
-        tar --verbose --gzip --extract --one-top-level=dir3 --exclude='dev/*' < dir2/data.tar.gz
-        ls dir3/clickshare/clickshare-*-*.${rpmArch}.rpm | wc --lines | xargs test 1 =
-        mkdir dir4
-        cd dir4
-        rpmextract ../dir3/clickshare/clickshare-*-*.${rpmArch}.rpm
-      '';
-
-  installPhase = ''
-    runHook preInstall
-    mkdir --verbose --parents $out
-    mv --verbose --target-directory=. usr/*
-    rmdir --verbose usr
-    cp --verbose --recursive --target-directory=$out *
-    runHook postInstall
-  '';
-
-  # Default udev rule restricts access to the
-  # clickshare USB dongle to the `wheel` group.
-  # We replace it with the group
-  # stated in the package arguments.
-  # Also, we patch executable and icon paths in .desktop files.
-  preFixup = ''
-    substituteInPlace \
-        $out/lib/udev/rules.d/99-clickshare.rules \
-        --replace wheel ${usersGroup}
-    substituteInPlace \
-        $out/share/applications/clickshare.desktop \
-        --replace Exec= Exec=$out/bin/ \
-        --replace =/usr =$out
-    substituteInPlace \
-        $out/etc/xdg/autostart/clickshare-launcher.desktop \
-        --replace =/usr =$out
-  '';
-
-  meta = {
-    homepage = "https://www.barco.com/de/support/clickshare-csc-1/drivers";
-    downloadPage = "https://www.barco.com/de/Support/software/R33050020";
-    platforms = [ "i686-linux" "x86_64-linux" ];
-    license = lib.licenses.unfree;
-    maintainers = [ lib.maintainers.yarny ];
-    description = "Linux driver/client for Barco ClickShare CSC-1";
-    longDescription = ''
-      Barco ClickShare is a wireless presentation system
-      where a USB dongle transmits to a base station
-      that is connected with a beamer.
-      The USB dongle requires proprietary software that
-      captures the screen and sends it to the dongle.
-      This package provides the necessary software for Linux.
-    '';
-  };
-}
diff --git a/pkgs/applications/video/coriander/default.nix b/pkgs/applications/video/coriander/default.nix
index 7f57c79c5fe54..540339f05a561 100644
--- a/pkgs/applications/video/coriander/default.nix
+++ b/pkgs/applications/video/coriander/default.nix
@@ -22,6 +22,11 @@ stdenv.mkDerivation rec {
     sha256 = "0l6hpfgy5r4yardilmdrggsnn1fbfww516sk5a90g1740cd435x5";
   };
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: subtitles.o:src/coriander.h:110: multiple definition of
+  #     `main_window'; main.o:src/coriander.h:110: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   preConfigure = ''
     cp ${automake}/share/automake-*/mkinstalldirs .
   '';
diff --git a/pkgs/applications/video/filebot/default.nix b/pkgs/applications/video/filebot/default.nix
index 8bf1bf7b3ba58..45f7d099056d5 100644
--- a/pkgs/applications/video/filebot/default.nix
+++ b/pkgs/applications/video/filebot/default.nix
@@ -41,7 +41,10 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://filebot.net";
     changelog = "https://www.filebot.net/forums/viewforum.php?f=7";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ gleber felschr ];
     platforms = platforms.linux;
diff --git a/pkgs/applications/video/flirc/default.nix b/pkgs/applications/video/flirc/default.nix
index 6285094c461a4..58de5ceab099a 100644
--- a/pkgs/applications/video/flirc/default.nix
+++ b/pkgs/applications/video/flirc/default.nix
@@ -39,6 +39,7 @@ mkDerivation rec {
     homepage = "https://flirc.tv/more/flirc-usb";
     description = "Use any Remote with your Media Center";
     maintainers = with maintainers; [ aanderse ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/applications/video/gnome-mplayer/default.nix b/pkgs/applications/video/gnome-mplayer/default.nix
index de56865410ed5..a63671accec4e 100644
--- a/pkgs/applications/video/gnome-mplayer/default.nix
+++ b/pkgs/applications/video/gnome-mplayer/default.nix
@@ -23,6 +23,11 @@ stdenv.mkDerivation rec {
     })
   ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: mpris-interface.o:src/playlist.h:32: multiple definition of
+  #     `plclose'; gui.o:src/playlist.h:32: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   meta = with lib; {
     description = "Gnome MPlayer, a simple GUI for MPlayer";
     homepage = "https://sites.google.com/site/kdekorte2/gnomemplayer";
diff --git a/pkgs/applications/video/haruna/default.nix b/pkgs/applications/video/haruna/default.nix
index 5d204e8297a51..ad01eab08a468 100644
--- a/pkgs/applications/video/haruna/default.nix
+++ b/pkgs/applications/video/haruna/default.nix
@@ -6,69 +6,68 @@
 , cmake
 , extra-cmake-modules
 , ffmpeg-full
-, kcodecs
 , kconfig
 , kcoreaddons
 , kfilemetadata
 , ki18n
 , kiconthemes
 , kio
-, kio-extras
 , kirigami2
 , kxmlgui
+, kdoctools
 , mpv
 , pkg-config
+, wrapQtAppsHook
 , qqc2-desktop-style
 , qtbase
 , qtquickcontrols2
-, qtwayland
-, youtube-dl
+, yt-dlp
 }:
 
 mkDerivation rec {
   pname = "haruna";
-  version = "0.7.3";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     owner = "multimedia";
     repo = "haruna";
     rev = "v${version}";
-    sha256 = "sha256-pFrmTaRvsqxJw34VULzfjx2k56kJgkB96nJtai2D1wY=";
+    sha256 = "sha256-Lom9iQUKH3lQHrVK4dJzo+FG79xSCg0b4gY/KAevL6I=";
     domain = "invent.kde.org";
   };
 
   buildInputs = [
     breeze-icons
     breeze-qt5
+    qqc2-desktop-style
+    yt-dlp
+
     ffmpeg-full
-    kcodecs
     kconfig
     kcoreaddons
     kfilemetadata
     ki18n
     kiconthemes
     kio
-    kio-extras
     kirigami2
     kxmlgui
+    kdoctools
     mpv
-    qqc2-desktop-style
     qtbase
     qtquickcontrols2
-    qtwayland
-    youtube-dl
   ];
 
   nativeBuildInputs = [
     cmake
     extra-cmake-modules
     pkg-config
+    wrapQtAppsHook
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/g-fb/haruna";
+    homepage = "https://invent.kde.org/multimedia/haruna";
     description = "Open source video player built with Qt/QML and libmpv";
-    license = with licenses; [ bsd3 cc-by-40 gpl3Plus wtfpl ];
+    license = with licenses; [ bsd3 cc-by-40 cc-by-sa-40 cc0 gpl2Plus gpl3Plus wtfpl ];
     maintainers = with maintainers; [ jojosch ];
   };
 }
diff --git a/pkgs/applications/video/hypnotix/default.nix b/pkgs/applications/video/hypnotix/default.nix
index 1293228090676..582060920ea4b 100644
--- a/pkgs/applications/video/hypnotix/default.nix
+++ b/pkgs/applications/video/hypnotix/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "hypnotix";
-  version = "2.6";
+  version = "2.7";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "hypnotix";
     rev = version;
-    hash = "sha256-9HWr8zjUuhj/GZdrt1WwpwYNLEl34S9IJ7ikGZBSw3s=";
+    hash = "sha256-Mfj10CPYAI2QObgjbkhEPJ2nx6hsR5BHpmNofmdSz1k=";
   };
 
   patches = [
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "IPTV streaming application";
     homepage = "https://github.com/linuxmint/hypnotix";
+    changelog = "https://github.com/linuxmint/hypnotix/blob/${src.rev}/debian/changelog";
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.linux;
diff --git a/pkgs/applications/video/jellyfin-media-player/default.nix b/pkgs/applications/video/jellyfin-media-player/default.nix
index 82d34d188ff64..224d2d934d95b 100644
--- a/pkgs/applications/video/jellyfin-media-player/default.nix
+++ b/pkgs/applications/video/jellyfin-media-player/default.nix
@@ -22,22 +22,18 @@
 , qtwebchannel
 , qtwebengine
 , qtx11extras
+, jellyfin-web
 }:
 
 mkDerivation rec {
   pname = "jellyfin-media-player";
-  version = "1.6.1";
+  version = "1.7.0";
 
   src = fetchFromGitHub {
     owner = "jellyfin";
     repo = "jellyfin-media-player";
     rev = "v${version}";
-    sha256 = "sha256-iqwOv95JFxQ1j/9B+oBFAp7mD1/1g2EJYvvUKbrDQes=";
-  };
-
-  jmpDist = fetchzip {
-    url = "https://github.com/iwalton3/jellyfin-web-jmp/releases/download/jwc-10.7.3/dist.zip";
-    sha256 = "sha256-P7WEYbVvpaVLwMgqC2e8QtMOaJclg0bX78J1fdGzcCU=";
+    sha256 = "sha256-eDCfqSNkKVm8MC4XA1NhQSByy9zhfyQRPM8OlSKcIvc=";
   };
 
   patches = [
@@ -81,9 +77,8 @@ mkDerivation rec {
   ];
 
   preBuild = ''
-    # copy the webclient-files to the expected "dist" directory
-    mkdir -p dist
-    cp -a ${jmpDist}/* dist
+    # link the jellyfin-web files to the expected "dist" directory
+    ln -s ${jellyfin-web}/share/jellyfin-web dist
   '';
 
   postInstall = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
index 9642556ad1320..da75adab7b51c 100644
--- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix
+++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonApplication rec {
   pname = "jellyfin-mpv-shim";
-  version = "2.1.0";
+  version = "2.2.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "Nh2bSmzxInZgZmmelsXih6lRartDKjbC0/CB1gYiLcQ=";
+    sha256 = "sha256-JiSC6WjrLsWk3/m/EHq7KNXaJ6rqT2fG9TT1jPvYlK0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi/addons/certifi/default.nix b/pkgs/applications/video/kodi/addons/certifi/default.nix
index 1088f560adf90..210429c777068 100644
--- a/pkgs/applications/video/kodi/addons/certifi/default.nix
+++ b/pkgs/applications/video/kodi/addons/certifi/default.nix
@@ -2,11 +2,11 @@
 buildKodiAddon rec {
   pname = "certifi";
   namespace = "script.module.certifi";
-  version = "2020.12.05+matrix.1";
+  version = "2022.5.18+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "1z49b8va7wdyr714c8ixb2sldi0igffcjj3xpbmga58ph0z985vy";
+    sha256 = "tk4Ven35sicLxrT7SO2yx5kQORjFP6niRuS9SMocJKY=";
   };
 
   passthru = {
diff --git a/pkgs/applications/video/kodi/addons/idna/default.nix b/pkgs/applications/video/kodi/addons/idna/default.nix
index 01f16696faeec..e21613dce615c 100644
--- a/pkgs/applications/video/kodi/addons/idna/default.nix
+++ b/pkgs/applications/video/kodi/addons/idna/default.nix
@@ -2,11 +2,11 @@
 buildKodiAddon rec {
   pname = "idna";
   namespace = "script.module.idna";
-  version = "2.10.0+matrix.1";
+  version = "3.3.0+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "0pm86m8kh2p0brps3xzxcmmabvb4izkglzkj8dsn33br3vlc7cm7";
+    sha256 = "gXW1BvM3CLKshVPaemjmzEoZekU0QjuxJY9zGbGwK18=";
   };
 
   passthru = {
diff --git a/pkgs/applications/video/kodi/addons/requests/default.nix b/pkgs/applications/video/kodi/addons/requests/default.nix
index c5759fcc325b8..3361a03f5d285 100644
--- a/pkgs/applications/video/kodi/addons/requests/default.nix
+++ b/pkgs/applications/video/kodi/addons/requests/default.nix
@@ -2,11 +2,11 @@
 buildKodiAddon rec {
   pname = "requests";
   namespace = "script.module.requests";
-  version = "2.25.1+matrix.1";
+  version = "2.27.1+matrix.1";
 
   src = fetchzip {
     url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
-    sha256 = "00qhykizvspzfwgl7qz9cyxrazs54jgin40g49v5nzmjq3qf62hb";
+    sha256 = "QxxVT6XaEYQtAFkZde8EaTXzGO7cjG2pApQZcA32xA0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/applications/video/kodi/addons/urllib3/default.nix b/pkgs/applications/video/kodi/addons/urllib3/default.nix
index a8365f5f68d76..1becee357bee8 100644
--- a/pkgs/applications/video/kodi/addons/urllib3/default.nix
+++ b/pkgs/applications/video/kodi/addons/urllib3/default.nix
@@ -1,23 +1,20 @@
-{ lib, buildKodiAddon, fetchFromGitHub, addonUpdateScript }:
+{ lib, buildKodiAddon, fetchzip, addonUpdateScript }:
 
 buildKodiAddon rec {
   pname = "urllib3";
   namespace = "script.module.urllib3";
-  version = "1.26.8+matrix.1";
+  version = "1.26.9+matrix.1";
 
-  # temporarily fetching from a PR because of CVE-2021-33503
-  # see https://github.com/xbmc/repo-scripts/pull/2193 for details
-  src = fetchFromGitHub {
-    owner = "xbmc";
-    repo = "repo-scripts";
-    rev = "f0bfacab4732e33c5669bedd1a86319fa9e38338";
-    sha256 = "sha256-UEMLrIvuuPARGHMsz6dOZrOuHIYVSpi0gBy2lK1Y2sk=";
+  src = fetchzip {
+    url = "https://mirrors.kodi.tv/addons/matrix/${namespace}/${namespace}-${version}.zip";
+    sha256 = "w2HXepAHLE4NAWTXOQgY3ifr3mlI/QYF6KAKqpAmO/g=";
   };
 
-  sourceRoot = "source/script.module.urllib3";
-
   passthru = {
     pythonPath = "lib";
+    updateScript = addonUpdateScript {
+      attrPath = "kodi.packages.urllib3";
+    };
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/video/lightworks/default.nix b/pkgs/applications/video/lightworks/default.nix
index 6bec6e25533f1..b01af67cd68e6 100644
--- a/pkgs/applications/video/lightworks/default.nix
+++ b/pkgs/applications/video/lightworks/default.nix
@@ -85,6 +85,7 @@ in buildFHSUserEnv {
   meta = {
     description = "Professional Non-Linear Video Editor";
     homepage = "https://www.lwks.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [ antonxy vojta001 ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 2c15513d4d65e..c3d758268917c 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -79,6 +79,7 @@ in mkDerivation {
       can always download the latest version from makemkv.com that will reset the
       expiration date.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     homepage = "http://makemkv.com";
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index d9a8a8436936a..7bd010cff1522 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -47,13 +47,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "mkvtoolnix";
-  version = "67.0.0";
+  version = "68.0.0";
 
   src = fetchFromGitLab {
     owner = "mbunkus";
     repo = "mkvtoolnix";
     rev = "release-${version}";
-    sha256 = "0gyjgp5iyr9kvgpgl064w025ji1w8dy0cnw4fmbp71wis7qp7yl1";
+    sha256 = "0m09r0w98dja9y1yp1vq5hdh46lw0k60aa0xfkdy5zlva568cb7c";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/video/streamlink-twitch-gui/bin.nix b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
index 395da881ea9f5..7459d08d59531 100644
--- a/pkgs/applications/video/streamlink-twitch-gui/bin.nix
+++ b/pkgs/applications/video/streamlink-twitch-gui/bin.nix
@@ -124,6 +124,7 @@ stdenv.mkDerivation rec {
     longDescription = "Browse Twitch.tv and watch streams in your videoplayer of choice";
     homepage = "https://streamlink.github.io/streamlink-twitch-gui/";
     downloadPage = "https://github.com/streamlink/streamlink-twitch-gui/releases";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = with maintainers; [ rileyinman ];
     platforms = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/applications/video/vlc/default.nix b/pkgs/applications/video/vlc/default.nix
index 700730a57fc97..770fe2cea3ee2 100644
--- a/pkgs/applications/video/vlc/default.nix
+++ b/pkgs/applications/video/vlc/default.nix
@@ -34,6 +34,7 @@
 , libmtp
 , liboggz
 , libopus
+, libplacebo
 , libpulseaudio
 , libraw1394
 , librsvg
@@ -123,6 +124,7 @@ stdenv.mkDerivation rec {
     libmtp
     liboggz
     libopus
+    libplacebo
     libpulseaudio
     libraw1394
     librsvg
diff --git a/pkgs/applications/video/wxcam/default.nix b/pkgs/applications/video/wxcam/default.nix
deleted file mode 100644
index 5a6c6ff524e3c..0000000000000
--- a/pkgs/applications/video/wxcam/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, stdenv, fetchurl
-, pkg-config
-, intltool
-, libX11, libXv, libSM
-, gtk, libglade
-, wxGTK
-, perlPackages
-, xvidcore
-, mjpegtools
-, alsa-lib
-, libv4l
-, cimg }:
-
-stdenv.mkDerivation rec {
-
-  pname = "wxcam";
-  version = "1.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/project/wxcam/wxcam/${version}/${pname}-${version}.tar.gz";
-    sha256 = "1765bvc65fpzn9ycnnj5hais9xkx9v0sm6a878d35x54bpanr859";
-  };
-
-  buildInputs = with lib;
-  [ pkg-config intltool libX11 libXv libSM gtk libglade wxGTK perlPackages.XMLParser xvidcore mjpegtools alsa-lib libv4l cimg ];
-
-  NIX_CFLAGS_COMPILE="-I ${cimg}/include/cimg";
-
-  postUnpack = ''
-    sed -ie 's|/usr/share/|'"$out/share/"'|g' $sourceRoot/Makefile.in
-  '';
-
-  installPhase = ''
-    make install prefix="$out" wxcamdocdir="$out/share/doc/wxcam"
-  '';
-
-  meta = with lib; {
-    description = "An open-source, wxGTK-based webcam app for Linux";
-    longDescription = ''
-    wxCam is a webcam application for linux. It supports video recording
-    (avi uncompressed and Xvid formats), snapshot taking, and some special
-    commands for philips webcams, so you can also use it for astronomy purposes.
-    It supports both video4linux 1 and 2 drivers,
-    so it should work on a very large number of devices.
-    '';
-    homepage = "http://wxcam.sourceforge.net/";
-    license = licenses.gpl3Plus;
-    maintainers = [ maintainers.AndersonTorres ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index fc195f81181a1..2a9f1a27c3d5a 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "conmon";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-HzLRwJwzvXhQOcmBp55I54sAnCKPeQw99H/XMOegOHo=";
+    sha256 = "sha256-KDAm+Djk1AaA3zXhxywT6HknT0tVCEZLS27nO9j/WgM=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/virtualization/crun/default.nix b/pkgs/applications/virtualization/crun/default.nix
index 2d35b1c4a039a..1a49d76888657 100644
--- a/pkgs/applications/virtualization/crun/default.nix
+++ b/pkgs/applications/virtualization/crun/default.nix
@@ -11,6 +11,7 @@
 , yajl
 , nixosTests
 , criu
+, fetchpatch
 }:
 
 let
@@ -48,6 +49,15 @@ stdenv.mkDerivation rec {
     fetchSubmodules = true;
   };
 
+  patches = [
+    # Should dropped in next release after 1.4.5
+    (fetchpatch {
+      name = "usrbin-paths.patch";
+      url = "https://github.com/containers/crun/commit/dd29f7f7f713c49784ac30f7cdca33b2ef94d5b8.patch";
+      sha256 = "sha256-kHHix8CUL+c8HbOe5qx4PeF1P19113U4bRZyleMUjqk=";
+    })
+  ];
+
   nativeBuildInputs = [ autoreconfHook go-md2man pkg-config python3 ];
 
   buildInputs = [ libcap libseccomp systemd yajl ]
diff --git a/pkgs/applications/virtualization/docker/compose.nix b/pkgs/applications/virtualization/docker/compose.nix
index 98af8ebf7fb53..583a3e50a1f59 100644
--- a/pkgs/applications/virtualization/docker/compose.nix
+++ b/pkgs/applications/virtualization/docker/compose.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "docker-compose";
-  version = "2.6.0";
+  version = "2.6.1";
 
   src = fetchFromGitHub {
     owner = "docker";
     repo = "compose";
     rev = "v${version}";
-    sha256 = "sha256-Fg99ugaqH/jL3KUZ5Vh/SJnqzEyOaR/KuPFwt2oqXxM=";
+    sha256 = "sha256-D3+qDWxg3e5/3UIMz8FZDuxmQHmTv0NJVT/otGYedtw=";
   };
 
-  vendorSha256 = "sha256-7uNQNO+EI90J2Btz2tnumKqd+AtVWON+Csh6tkTNKNA=";
+  vendorSha256 = "sha256-WxLQfu65Gr+ao/pM8B2uiS88sNT72Klhz7ZIrEadW5g=";
 
   ldflags = [ "-X github.com/docker/compose/v2/internal.Version=${version}" "-s" "-w" ];
 
diff --git a/pkgs/applications/virtualization/docker/distribution.nix b/pkgs/applications/virtualization/docker/distribution.nix
index 96722fe393f60..8253a2304da9b 100644
--- a/pkgs/applications/virtualization/docker/distribution.nix
+++ b/pkgs/applications/virtualization/docker/distribution.nix
@@ -2,7 +2,7 @@
 
 buildGoPackage rec {
   pname = "distribution";
-  version = "2.7.1";
+  version = "2.8.1";
   rev = "v${version}";
 
   goPackagePath = "github.com/docker/distribution";
@@ -11,7 +11,7 @@ buildGoPackage rec {
     owner = "docker";
     repo = "distribution";
     inherit rev;
-    sha256 = "1nx8b5a68rn81alp8wkkw6qd5v32mgf0fk23mxm60zdf63qk1nzw";
+    sha256 = "sha256-M8XVeIvD7LtWa9l+6ovwWu5IwFGYt0xDfcIwcU/KH/E=";
   };
 
   meta = with lib; {
diff --git a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
index ef8ec062e4d88..8ba02d940216c 100644
--- a/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
+++ b/pkgs/applications/virtualization/driver/win-signed-gplpv-drivers/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation {
     '';
     homepage = "http://wiki.univention.de/index.php?title=Installing-signed-GPLPV-drivers";
     maintainers = [ maintainers.tstrobel ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = platforms.linux;
     license = licenses.gpl2;
   };
diff --git a/pkgs/applications/virtualization/driver/win-spice/default.nix b/pkgs/applications/virtualization/driver/win-spice/default.nix
index 2c2cd90f1c26f..0cf8e06c3115b 100644
--- a/pkgs/applications/virtualization/driver/win-spice/default.nix
+++ b/pkgs/applications/virtualization/driver/win-spice/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation  {
     description = "Windows SPICE Drivers";
     homepage = "https://www.spice-space.org/";
     license = [ licenses.asl20 ]; # See https://github.com/vrozenfe/qxl-dod
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = [ maintainers.tstrobel ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/applications/virtualization/lima/default.nix b/pkgs/applications/virtualization/lima/default.nix
index 0ced37bb40f69..c6b9b4149fea4 100644
--- a/pkgs/applications/virtualization/lima/default.nix
+++ b/pkgs/applications/virtualization/lima/default.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "lima";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "lima-vm";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-OqsLHxY7dZKN/zazeDASBt5UsQGieU5laIUeshtS55w=";
+    sha256 = "sha256-tTa/FQiF2qZ36OGORr5fqvKR5i6qo7OTBJFGWJMShQ0=";
   };
 
-  vendorSha256 = "sha256-0Z+SAEHFJio+N7ATiviBkLPn6cNFlhE3Dsj8CxVtf7c=";
+  vendorSha256 = "sha256-wvb592mmxOeRSX8Rxx2m7tZ2S8wQTcQkL3b6z0F6OEQ=";
 
   nativeBuildInputs = [ makeWrapper installShellFiles ];
 
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 0c9ecf7e4d8ff..d663d0ec8b7b7 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -17,13 +17,13 @@
 
 buildGoModule rec {
   pname = "podman";
-  version = "4.1.0";
+  version = "4.1.1";
 
   src = fetchFromGitHub {
     owner = "containers";
     repo = "podman";
     rev = "v${version}";
-    sha256 = "sha256-3MR4ZhkhMLAK3KHu7JEV9z1/wlyCkxfx1i267TGxwt8=";
+    sha256 = "sha256-+lwq4WTPeELjugTg9l1wvoe0VTqRK2lC1jaFIwXMrL0=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix
index 642c4b1390f46..4e07d92d661d4 100644
--- a/pkgs/applications/virtualization/virtualbox/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/default.nix
@@ -230,6 +230,10 @@ in stdenv.mkDerivation {
 
   meta = {
     description = "PC emulator";
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.gpl2;
     homepage = "https://www.virtualbox.org/";
     maintainers = with maintainers; [ sander ];
diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
index 9c012750bf10c..538ebfa78cf8e 100644
--- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
+++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix
@@ -45,26 +45,15 @@ in stdenv.mkDerivation rec {
   patchFlags = [ "-p1" "-d" "src/vboxguest-${version}" ];
 
   unpackPhase = ''
-    ${if stdenv.hostPlatform.system == "i686-linux" || stdenv.hostPlatform.system == "x86_64-linux" then ''
-        isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
-        chmod 755 ./VBoxLinuxAdditions.run
-        # An overflow leads the is-there-enough-space check to fail when there's too much space available, so fake how much space there is
-        sed -i 's/\$leftspace/16383/' VBoxLinuxAdditions.run
-        ./VBoxLinuxAdditions.run --noexec --keep
-      ''
-      else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
-    }
+    isoinfo -J -i $src -x /VBoxLinuxAdditions.run > ./VBoxLinuxAdditions.run
+    chmod 755 ./VBoxLinuxAdditions.run
+    # An overflow leads the is-there-enough-space check to fail when there's too much space available, so fake how much space there is
+    sed -i 's/\$leftspace/16383/' VBoxLinuxAdditions.run
+    ./VBoxLinuxAdditions.run --noexec --keep
 
     # Unpack files
     cd install
-    ${if stdenv.hostPlatform.system == "i686-linux" then ''
-        tar xfvj VBoxGuestAdditions-x86.tar.bz2
-      ''
-      else if stdenv.hostPlatform.system == "x86_64-linux" then ''
-        tar xfvj VBoxGuestAdditions-amd64.tar.bz2
-      ''
-      else throw ("Architecture: "+stdenv.hostPlatform.system+" not supported for VirtualBox guest additions")
-    }
+    tar xfvj VBoxGuestAdditions-${if stdenv.hostPlatform.is32bit then "x86" else "amd64"}.tar.bz2
   '';
 
   buildPhase = ''
@@ -155,9 +144,10 @@ in stdenv.mkDerivation rec {
       This add-on provides support for dynamic resizing of the X Display, shared
       host/guest clipboard support and guest OpenGL support.
     '';
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = "GPL";
     maintainers = [ lib.maintainers.sander ];
-    platforms = lib.platforms.linux;
-    broken = kernel.kernelAtLeast "5.17";
+    platforms = [ "i686-linux" "x86_64-linux" ];
+    broken = kernel.kernelAtLeast (if stdenv.hostPlatform.is32bit then "5.10" else "5.17");
   };
 }
diff --git a/pkgs/applications/virtualization/vmware-workstation/default.nix b/pkgs/applications/virtualization/vmware-workstation/default.nix
index 58cd4092a95d5..247fb3bd6eac2 100755
--- a/pkgs/applications/virtualization/vmware-workstation/default.nix
+++ b/pkgs/applications/virtualization/vmware-workstation/default.nix
@@ -334,6 +334,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Industry standard desktop hypervisor for x86-64 architecture";
     homepage = "https://www.vmware.com/products/workstation-pro.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ deinferno ];
diff --git a/pkgs/applications/window-managers/e16/default.nix b/pkgs/applications/window-managers/e16/default.nix
index 37a4f7c943616..053b01cb2258a 100644
--- a/pkgs/applications/window-managers/e16/default.nix
+++ b/pkgs/applications/window-managers/e16/default.nix
@@ -16,15 +16,16 @@
 , libsndfile
 , pango
 , perl
+, gitUpdater
 }:
 
 stdenv.mkDerivation rec {
   pname = "e16";
-  version = "1.0.24";
+  version = "1.0.25";
 
   src = fetchurl {
     url = "mirror://sourceforge/enlightenment/e16-${version}.tar.xz";
-    sha256 = "1anmwfjyynwl0ylkyksa7bnsqzf58l1yccjzp3kbwq6nw1gs7dbv";
+    hash = "sha256-rUtDaBa4vvC3gO7QSkFrphWuVOmbtkH+pRujQDaUOek=";
   };
 
   nativeBuildInputs = [
@@ -52,6 +53,12 @@ stdenv.mkDerivation rec {
     substituteInPlace scripts/e_gen_menu --replace "/usr/local:" "/run/current-system/sw:/usr/local:"
   '';
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    url = "https://git.enlightenment.org/e16/e16";
+    rev-prefix = "v";
+  };
+
   meta = with lib; {
     homepage = "https://www.enlightenment.org/e16";
     description = "Enlightenment DR16 window manager";
diff --git a/pkgs/applications/window-managers/i3/i3-resurrect.nix b/pkgs/applications/window-managers/i3/i3-resurrect.nix
index a765d2e298ed2..a84d97504bbb1 100644
--- a/pkgs/applications/window-managers/i3/i3-resurrect.nix
+++ b/pkgs/applications/window-managers/i3/i3-resurrect.nix
@@ -2,11 +2,11 @@
 
 buildPythonApplication rec {
   pname = "i3-resurrect";
-  version = "1.4.3";
+  version = "1.4.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0h181frdwpqfj9agw43qgicdvzv1i7xwky0vs0ksd8h18qxqp4hr";
+    sha256 = "sha256-13FKRvEE4vHq5G51G1UyBnfNiWeS9Q/SYCG16E1Sn4c=";
   };
 
   propagatedBuildInputs = [ click psutil xprop natsort i3ipc xdotool importlib-metadata ];
diff --git a/pkgs/applications/window-managers/i3/status-rust.nix b/pkgs/applications/window-managers/i3/status-rust.nix
index c3d8d96bba4e1..ddc4383fbd73c 100644
--- a/pkgs/applications/window-managers/i3/status-rust.nix
+++ b/pkgs/applications/window-managers/i3/status-rust.nix
@@ -15,16 +15,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "i3status-rust";
-  version = "0.21.10";
+  version = "0.22.0";
 
   src = fetchFromGitHub {
     owner = "greshake";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-HtPgl52ysE/CVX706YeKBFc6CgGpHzvHwZoS+DzHADY=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-9Fp5k14QkV1CwLSL1nUUu6NYIpjfvI9vNJRYNqvyr3M=";
   };
 
-  cargoSha256 = "sha256-ini0AIYwvTskNFMSC+Gy23ohL75PTET95e1mjpjCsWE=";
+  cargoSha256 = "sha256-MzosatZ4yPHAdANqOBPVW2wpjnojLo9B9N9o4DtU0Iw=";
 
   nativeBuildInputs = [ pkg-config makeWrapper ];
 
diff --git a/pkgs/applications/window-managers/shod/default.nix b/pkgs/applications/window-managers/shod/default.nix
new file mode 100644
index 0000000000000..f9e6216a86ab1
--- /dev/null
+++ b/pkgs/applications/window-managers/shod/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, writeText
+, fontconfig
+, libX11
+, libXft
+, libXinerama
+, libXpm
+, libXrender
+, conf ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "shod";
+  version = "2.4.0";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "shod";
+    rev = "v${version}";
+    sha256 = "sha256-jrPuI3ADppqaJ2y9GksiJZZd4LtN1P5yjWwlf9VuYDc=";
+  };
+
+  buildInputs = [
+    fontconfig
+    libX11
+    libXft
+    libXinerama
+    libXpm
+    libXrender
+  ];
+
+  postPatch =
+    let
+      configFile =
+        if lib.isDerivation conf || builtins.isPath conf
+        then conf else writeText "config.h" conf;
+    in
+    lib.optionalString (conf != null) "cp ${configFile} config.h";
+
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  meta = with lib; {
+    description = "A 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
+      configuration, and works only via mouse with a given key modifier (Alt by
+      default) and by responding to client messages sent by the shodc utility
+      (shod's remote controller).
+    '';
+    homepage = "https://github.com/phillbush/shod";
+    license = licenses.mit;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/applications/window-managers/sway/default.nix b/pkgs/applications/window-managers/sway/default.nix
index 1b66257513457..61925e4ed0be3 100644
--- a/pkgs/applications/window-managers/sway/default.nix
+++ b/pkgs/applications/window-managers/sway/default.nix
@@ -90,6 +90,6 @@ stdenv.mkDerivation rec {
     changelog   = "https://github.com/swaywm/sway/releases/tag/${version}";
     license     = licenses.mit;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ primeos synthetica ma27 ];
+    maintainers = with maintainers; [ primeos synthetica ];
   };
 }
diff --git a/pkgs/applications/window-managers/sway/idle.nix b/pkgs/applications/window-managers/sway/idle.nix
index 4b2909eac2160..97e3febc7b940 100644
--- a/pkgs/applications/window-managers/sway/idle.nix
+++ b/pkgs/applications/window-managers/sway/idle.nix
@@ -1,6 +1,6 @@
 { lib, stdenv, fetchFromGitHub
 , meson, ninja, pkg-config, scdoc, wayland-scanner
-, wayland, wayland-protocols
+, wayland, wayland-protocols, runtimeShell
 , systemdSupport ? stdenv.isLinux, systemd
 }:
 
@@ -22,7 +22,13 @@ stdenv.mkDerivation rec {
 
   mesonFlags = [ "-Dman-pages=enabled" "-Dlogind=${if systemdSupport then "enabled" else "disabled"}" ];
 
-  postPatch = "substituteInPlace main.c --replace '%lu' '%zu'";
+  # Remove the `%zu` patch for the next release after 1.7.1.
+  # https://github.com/swaywm/swayidle/commit/e81d40fca7533f73319e76e42fa9694b21cc9e6e
+  postPatch = ''
+    substituteInPlace main.c \
+      --replace '%lu' '%zu' \
+      --replace '"sh"' '"${runtimeShell}"'
+  '';
 
   meta = with lib; {
     description = "Idle management daemon for Wayland";
diff --git a/pkgs/applications/window-managers/sway/lock-fancy.nix b/pkgs/applications/window-managers/sway/lock-fancy.nix
index 8ca1dd7787756..2eb817b9b1f8d 100644
--- a/pkgs/applications/window-managers/sway/lock-fancy.nix
+++ b/pkgs/applications/window-managers/sway/lock-fancy.nix
@@ -46,6 +46,6 @@ in stdenv.mkDerivation rec {
     homepage = "https://github.com/Big-B/swaylock-fancy";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/build-support/appimage/default.nix b/pkgs/build-support/appimage/default.nix
index d41ceba37c176..17d5bca656692 100644
--- a/pkgs/build-support/appimage/default.nix
+++ b/pkgs/build-support/appimage/default.nix
@@ -37,7 +37,13 @@ rec {
   extractType2 = extract;
   wrapType1 = wrapType2;
 
-  wrapAppImage = args@{ name ? "${args.pname}-${args.version}", src, extraPkgs, ... }: buildFHSUserEnv
+  wrapAppImage = args@{
+    name ? "${args.pname}-${args.version}",
+    src,
+    extraPkgs,
+    meta ? {},
+    ...
+  }: buildFHSUserEnv
     (defaultFhsEnvArgs // {
       inherit name;
 
@@ -45,6 +51,10 @@ rec {
         ++ defaultFhsEnvArgs.targetPkgs pkgs ++ extraPkgs pkgs;
 
       runScript = "appimage-exec.sh -w ${src} --";
+
+      meta = {
+        sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+      } // meta;
     } // (removeAttrs args ([ "pname" "version" ] ++ (builtins.attrNames (builtins.functionArgs wrapAppImage)))));
 
   wrapType2 = args@{ name ? "${args.pname}-${args.version}", src, extraPkgs ? pkgs: [ ], ... }: wrapAppImage
diff --git a/pkgs/build-support/cc-wrapper/default.nix b/pkgs/build-support/cc-wrapper/default.nix
index 35d714f9b41e1..ceba14ef92a6c 100644
--- a/pkgs/build-support/cc-wrapper/default.nix
+++ b/pkgs/build-support/cc-wrapper/default.nix
@@ -492,6 +492,8 @@ stdenv.mkDerivation {
       hardening_unsupported_flags+=" format stackprotector strictoverflow"
     '' + optionalString cc.langD or false ''
       hardening_unsupported_flags+=" format"
+    '' + optionalString cc.langFortran or false ''
+      hardening_unsupported_flags+=" format"
     '' + optionalString targetPlatform.isWasm ''
       hardening_unsupported_flags+=" stackprotector fortify pie pic"
     ''
diff --git a/pkgs/build-support/coq/default.nix b/pkgs/build-support/coq/default.nix
index 52ef17f05c008..2a078a55d6956 100644
--- a/pkgs/build-support/coq/default.nix
+++ b/pkgs/build-support/coq/default.nix
@@ -104,7 +104,7 @@ stdenv.mkDerivation (removeAttrs ({
 // (optionalAttrs setCOQBIN { COQBIN = "${coq}/bin/"; })
 // (optionalAttrs (!args?installPhase && !args?useMelquiondRemake) {
   installFlags =
-    [ "DESTDIR=$(out)" ] ++ coqlib-flags ++ docdir-flags ++
+    coqlib-flags ++ docdir-flags ++
     extraInstallFlags;
 })
 // (optionalAttrs useDune2 {
diff --git a/pkgs/build-support/docker/examples.nix b/pkgs/build-support/docker/examples.nix
index 9b9a21a1469c0..f0535f59dfcc0 100644
--- a/pkgs/build-support/docker/examples.nix
+++ b/pkgs/build-support/docker/examples.nix
@@ -9,6 +9,16 @@
 
 { pkgs, buildImage, buildLayeredImage, fakeNss, pullImage, shadowSetup, buildImageWithNixDb, pkgsCross }:
 
+let
+  nixosLib = import ../../../nixos/lib {
+    # Experimental features need testing too, but there's no point in warning
+    # about it, so we enable the feature flag.
+    featureFlags.minimalModules = {};
+  };
+  evalMinimalConfig = module: nixosLib.evalModules { modules = [ module ]; };
+
+in
+
 rec {
   # 1. basic example
   bash = buildImage {
@@ -582,6 +592,37 @@ rec {
     includeStorePaths = false;
   };
 
+  etc =
+    let
+      inherit (pkgs) lib;
+      nixosCore = (evalMinimalConfig ({ config, ... }: {
+        imports = [
+          pkgs.pkgsModule
+          ../../../nixos/modules/system/etc/etc.nix
+        ];
+        environment.etc."some-config-file" = {
+          text = ''
+            127.0.0.1 localhost
+            ::1 localhost
+          '';
+          # For executables:
+          # mode = "0755";
+        };
+      }));
+    in pkgs.dockerTools.streamLayeredImage {
+      name = "etc";
+      tag = "latest";
+      enableFakechroot = true;
+      fakeRootCommands = ''
+        mkdir -p /etc
+        ${nixosCore.config.system.build.etcActivationCommands}
+      '';
+      config.Cmd = pkgs.writeScript "etc-cmd" ''
+        #!${pkgs.busybox}/bin/sh
+        ${pkgs.busybox}/bin/cat /etc/some-config-file
+      '';
+    };
+
   # Example export of the bash image
   exportBash = pkgs.dockerTools.exportImage { fromImage = bash; };
 
diff --git a/pkgs/build-support/dotnet/build-dotnet-module/default.nix b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
index fa987237a75cb..a689cbcfb68ea 100644
--- a/pkgs/build-support/dotnet/build-dotnet-module/default.nix
+++ b/pkgs/build-support/dotnet/build-dotnet-module/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert }:
+{ lib, stdenvNoCC, linkFarmFromDrvs, callPackage, nuget-to-nix, writeScript, makeWrapper, fetchurl, xml2, dotnetCorePackages, dotnetPackages, mkNugetSource, mkNugetDeps, cacert, srcOnly }:
 
 { name ? "${args.pname}-${args.version}"
 , pname ? name
@@ -78,7 +78,9 @@ let
     then linkFarmFromDrvs "${name}-project-references" projectReferences
     else null;
 
-  _nugetDeps = mkNugetDeps { inherit name; nugetDeps = import nugetDeps; };
+  _nugetDeps = if lib.isDerivation nugetDeps
+    then nugetDeps
+    else mkNugetDeps { inherit name; nugetDeps = import nugetDeps; };
 
   nuget-source = mkNugetSource {
     name = "${name}-nuget-source";
@@ -115,7 +117,7 @@ in stdenvNoCC.mkDerivation (args // {
       export HOME=$(mktemp -d)
       deps_file="/tmp/${pname}-deps.nix"
 
-      store_src="${args.src}"
+      store_src="${srcOnly args}"
       src="$(mktemp -d /tmp/${pname}.XXX)"
       cp -rT "$store_src" "$src"
       chmod -R +w "$src"
diff --git a/pkgs/build-support/dotnet/make-nuget-deps/default.nix b/pkgs/build-support/dotnet/make-nuget-deps/default.nix
index 75178d5b77977..edbea45c52a5a 100644
--- a/pkgs/build-support/dotnet/make-nuget-deps/default.nix
+++ b/pkgs/build-support/dotnet/make-nuget-deps/default.nix
@@ -1,9 +1,10 @@
 { linkFarmFromDrvs, fetchurl }:
 { name, nugetDeps }:
-  linkFarmFromDrvs "${name}-nuget-deps" (nugetDeps {
-    fetchNuGet = { pname, version, sha256 }: fetchurl {
+linkFarmFromDrvs "${name}-nuget-deps" (nugetDeps {
+  fetchNuGet = { pname, version, sha256
+    , url ? "https://www.nuget.org/api/v2/package/${pname}/${version}" }:
+    fetchurl {
       name = "${pname}-${version}.nupkg";
-      url = "https://www.nuget.org/api/v2/package/${pname}/${version}";
-      inherit sha256;
+      inherit url sha256;
     };
-  })
+})
diff --git a/pkgs/build-support/dotnet/nuget-to-nix/default.nix b/pkgs/build-support/dotnet/nuget-to-nix/default.nix
index 5267bc24a7643..18757692e92d7 100644
--- a/pkgs/build-support/dotnet/nuget-to-nix/default.nix
+++ b/pkgs/build-support/dotnet/nuget-to-nix/default.nix
@@ -6,6 +6,8 @@
 , coreutils
 , findutils
 , gnused
+, jq
+, curl
 }:
 
 runCommandLocal "nuget-to-nix" {
@@ -18,6 +20,8 @@ runCommandLocal "nuget-to-nix" {
       coreutils
       findutils
       gnused
+      jq
+      curl
     ];
   };
 
diff --git a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
index d9eaa041754fc..879a87b3341ce 100755
--- a/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
+++ b/pkgs/build-support/dotnet/nuget-to-nix/nuget-to-nix.sh
@@ -13,6 +13,8 @@ pkgs=$1
 tmpfile=$(mktemp /tmp/nuget-to-nix.XXXXXX)
 trap "rm -f ${tmpfile}" EXIT
 
+declare -A nuget_sources_cache
+
 echo "{ fetchNuGet }: ["
 
 while read pkg_spec; do
@@ -21,7 +23,14 @@ while read pkg_spec; do
     sed -nE 's/.*<id>([^<]*).*/\1/p; s/.*<version>([^<+]*).*/\1/p' "$pkg_spec")
   pkg_sha256="$(nix-hash --type sha256 --flat --base32 "$(dirname "$pkg_spec")"/*.nupkg)"
 
-  echo "  (fetchNuGet { pname = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; })" >> ${tmpfile}
+  pkg_src="$(jq --raw-output '.source' "$(dirname "$pkg_spec")/.nupkg.metadata")"
+  if [[ $pkg_src != https://api.nuget.org/* ]]; then
+    pkg_source_url="${nuget_sources_cache[$pkg_src]:=$(curl --fail "$pkg_src" | jq --raw-output '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"')}"
+    pkg_url="$pkg_source_url${pkg_name,,}/${pkg_version,,}/${pkg_name,,}.${pkg_version,,}.nupkg"
+    echo "  (fetchNuGet { pname = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; url = \"$pkg_url\"; })" >> ${tmpfile}
+  else
+    echo "  (fetchNuGet { pname = \"$pkg_name\"; version = \"$pkg_version\"; sha256 = \"$pkg_sha256\"; })" >> ${tmpfile}
+  fi
 done < <(find $1 -name '*.nuspec')
 
 LC_ALL=C sort --ignore-case ${tmpfile}
diff --git a/pkgs/build-support/fetchgit/default.nix b/pkgs/build-support/fetchgit/default.nix
index 2ae1714e4af02..84f2278db2996 100644
--- a/pkgs/build-support/fetchgit/default.nix
+++ b/pkgs/build-support/fetchgit/default.nix
@@ -28,6 +28,7 @@ in
   # needed for netrcPhase
   netrcImpureEnvVars ? []
 , meta ? {}
+, allowedRequisites ? null
 }:
 
 /* NOTE:
@@ -91,7 +92,8 @@ stdenvNoCC.mkDerivation {
     "GIT_PROXY_COMMAND" "NIX_GIT_SSL_CAINFO" "SOCKS_SERVER"
   ];
 
-  inherit preferLocalBuild meta;
+
+  inherit preferLocalBuild meta allowedRequisites;
 
   passthru = {
     gitRepoUrl = url;
diff --git a/pkgs/build-support/node/fetch-yarn-deps/index.js b/pkgs/build-support/node/fetch-yarn-deps/index.js
index f3662a5436161..b66e1220218d8 100755
--- a/pkgs/build-support/node/fetch-yarn-deps/index.js
+++ b/pkgs/build-support/node/fetch-yarn-deps/index.js
@@ -33,11 +33,11 @@ const urlToName = url => {
 	}
 }
 
-const downloadFileHttps = (fileName, url, expectedHash) => {
+const downloadFileHttps = (fileName, url, expectedHash, hashType = 'sha1') => {
 	return new Promise((resolve, reject) => {
 		https.get(url, (res) => {
 			const file = fs.createWriteStream(fileName)
-			const hash = crypto.createHash('sha1')
+			const hash = crypto.createHash(hashType)
 			res.pipe(file)
 			res.pipe(hash).setEncoding('hex')
 			res.on('end', () => {
@@ -100,6 +100,10 @@ const downloadPkg = (pkg, verbose) => {
 	} else if (isGitUrl(url)) {
 		return downloadGit(fileName, url.replace(/^git\+/, ''), hash)
 	} else if (url.startsWith('https://')) {
+		if (typeof pkg.integrity === 'string' || pkg.integrity instanceof String) {
+			const [ type, checksum ] = pkg.integrity.split('-')
+			return downloadFileHttps(fileName, url, Buffer.from(checksum, 'base64').toString('hex'), type)
+		}
 		return downloadFileHttps(fileName, url, hash)
 	} else if (url.startsWith('file:')) {
 		console.warn(`ignoring unsupported file:path url "${url}"`)
diff --git a/pkgs/build-support/prefer-remote-fetch/default.nix b/pkgs/build-support/prefer-remote-fetch/default.nix
index 2e55e3707421e..a1f2d0c56cffe 100644
--- a/pkgs/build-support/prefer-remote-fetch/default.nix
+++ b/pkgs/build-support/prefer-remote-fetch/default.nix
@@ -11,9 +11,9 @@
 # $ echo 'self: super: super.prefer-remote-fetch self super' > ~/.config/nixpkgs/overlays/prefer-remote-fetch.nix
 #
 self: super: {
-  fetchurl = args: super.fetchurl (args // { preferLocalBuild = false; });
-  fetchgit = args: super.fetchgit (args // { preferLocalBuild = false; });
-  fetchhg = args: super.fetchhg (args // { preferLocalBuild = false; });
-  fetchsvn = args: super.fetchsvn (args // { preferLocalBuild = false; });
-  fetchipfs = args: super.fetchipfs (args // { preferLocalBuild = false; });
+  fetchurl = args: super.fetchurl ({ preferLocalBuild = false; } // args);
+  fetchgit = args: super.fetchgit ({ preferLocalBuild = false; } // args);
+  fetchhg = args: super.fetchhg ({ preferLocalBuild = false; } // args);
+  fetchsvn = args: super.fetchsvn ({ preferLocalBuild = false; } // args);
+  fetchipfs = args: super.fetchipfs ({ preferLocalBuild = false; } // args);
 }
diff --git a/pkgs/build-support/replace-dependency.nix b/pkgs/build-support/replace-dependency.nix
index 15ab50bf3974c..01b93c194c391 100644
--- a/pkgs/build-support/replace-dependency.nix
+++ b/pkgs/build-support/replace-dependency.nix
@@ -35,7 +35,7 @@ let
             read ref_path
             if [ "$ref_path" != "$path" ]
             then
-                echo "    (builtins.storePath $ref_path)"
+                echo "    (builtins.storePath (/. + \"$ref_path\"))"
             fi
             count=$(($count - 1))
         done
diff --git a/pkgs/build-support/rust/build-rust-crate/lib.sh b/pkgs/build-support/rust/build-rust-crate/lib.sh
index d4927b025aa87..39f7d53f6f75d 100644
--- a/pkgs/build-support/rust/build-rust-crate/lib.sh
+++ b/pkgs/build-support/rust/build-rust-crate/lib.sh
@@ -16,6 +16,7 @@ build_lib() {
     --out-dir target/lib \
     -L dependency=target/deps \
     --cap-lints allow \
+    $LINK \
     $LIB_RUSTC_OPTS \
     $BUILD_OUT_DIR \
     $EXTRA_BUILD \
@@ -97,7 +98,6 @@ setup_link_paths() {
      if [[ ! -z "$i" ]]; then
        for library in $i; do
          echo "-l $library" >> target/link
-         echo "-l $library" >> target/link.final
        done
      fi
   done
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 2e0a29ac123a3..a4536a1751c82 100644
--- a/pkgs/build-support/rust/build-rust-crate/test/default.nix
+++ b/pkgs/build-support/rust/build-rust-crate/test/default.nix
@@ -548,6 +548,10 @@ let
       };
     };
     brotliCrates = (callPackage ./brotli-crates.nix {});
+    rcgenCrates = callPackage ./rcgen-crates.nix {
+      # Suppress deprecation warning
+      buildRustCrate = null;
+    };
     tests = lib.mapAttrs (key: value: mkTest (value // lib.optionalAttrs (!value?crateName) { crateName = key; })) cases;
   in tests // rec {
 
@@ -645,6 +649,16 @@ let
     } ''
       test -e ${pkg}/bin/brotli-decompressor && touch $out
     '';
+
+    rcgenTest = let
+      pkg = rcgenCrates.rootCrate.build;
+    in runCommand "run-rcgen-test-cmd" {
+      nativeBuildInputs = [ pkg ];
+    } (if stdenv.hostPlatform == stdenv.buildPlatform then ''
+      ${pkg}/bin/rcgen && touch $out
+    '' else ''
+      test -x '${pkg}/bin/rcgen' && touch $out
+    '');
   };
   test = releaseTools.aggregate {
     name = "buildRustCrate-tests";
diff --git a/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix b/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix
new file mode 100644
index 0000000000000..0f97c9b724bd6
--- /dev/null
+++ b/pkgs/build-support/rust/build-rust-crate/test/rcgen-crates.nix
@@ -0,0 +1,3496 @@
+
+# This file was @generated by crate2nix 0.10.0 with the command:
+#   "generate"
+# See https://github.com/kolloch/crate2nix for more info.
+
+{ nixpkgs ? <nixpkgs>
+, pkgs ? import nixpkgs { config = {}; }
+, lib ? pkgs.lib
+, stdenv ? pkgs.stdenv
+, buildRustCrateForPkgs ? if buildRustCrate != null
+    then lib.warn "crate2nix: Passing `buildRustCrate` as argument to Cargo.nix is deprecated. If you don't customize `buildRustCrate`, replace `callPackage ./Cargo.nix {}` by `import ./Cargo.nix { inherit pkgs; }`, and if you need to customize `buildRustCrate`, use `buildRustCrateForPkgs` instead." (_: buildRustCrate)
+    else pkgs: pkgs.buildRustCrate
+  # Deprecated
+, buildRustCrate ? null
+  # This is used as the `crateOverrides` argument for `buildRustCrate`.
+, defaultCrateOverrides ? pkgs.defaultCrateOverrides
+  # The features to enable for the root_crate or the workspace_members.
+, rootFeatures ? [ "default" ]
+  # If true, throw errors instead of issueing deprecation warnings.
+, strictDeprecation ? false
+  # Used for conditional compilation based on CPU feature detection.
+, targetFeatures ? []
+  # Whether to perform release builds: longer compile times, faster binaries.
+, release ? true
+  # Additional crate2nix configuration if it exists.
+, crateConfig
+  ? if builtins.pathExists ./crate-config.nix
+    then pkgs.callPackage ./crate-config.nix {}
+    else {}
+}:
+
+rec {
+  #
+  # "public" attributes that we attempt to keep stable with new versions of crate2nix.
+  #
+
+  rootCrate = rec {
+    packageId = "rcgen";
+
+    # Use this attribute to refer to the derivation building your root crate package.
+    # You can override the features with rootCrate.build.override { features = [ "default" "feature1" ... ]; }.
+    build = internal.buildRustCrateWithFeatures {
+      inherit packageId;
+    };
+
+    # Debug support which might change between releases.
+    # File a bug if you depend on any for non-debug work!
+    debug = internal.debugCrate { inherit packageId; };
+  };
+  # Refer your crate build derivation by name here.
+  # You can override the features with
+  # workspaceMembers."${crateName}".build.override { features = [ "default" "feature1" ... ]; }.
+  workspaceMembers = {
+    "rcgen" = rec {
+      packageId = "rcgen";
+      build = internal.buildRustCrateWithFeatures {
+        packageId = "rcgen";
+      };
+
+      # Debug support which might change between releases.
+      # File a bug if you depend on any for non-debug work!
+      debug = internal.debugCrate { inherit packageId; };
+    };
+  };
+
+  # A derivation that joins the outputs of all workspace members together.
+  allWorkspaceMembers = pkgs.symlinkJoin {
+      name = "all-workspace-members";
+      paths =
+        let members = builtins.attrValues workspaceMembers;
+        in builtins.map (m: m.build) members;
+  };
+
+  #
+  # "internal" ("private") attributes that may change in every new version of crate2nix.
+  #
+
+  internal = rec {
+    # Build and dependency information for crates.
+    # Many of the fields are passed one-to-one to buildRustCrate.
+    #
+    # Noteworthy:
+    # * `dependencies`/`buildDependencies`: similar to the corresponding fields for buildRustCrate.
+    #   but with additional information which is used during dependency/feature resolution.
+    # * `resolvedDependencies`: the selected default features reported by cargo - only included for debugging.
+    # * `devDependencies` as of now not used by `buildRustCrate` but used to
+    #   inject test dependencies into the build
+
+    crates = {
+      "asn1-rs" = rec {
+        crateName = "asn1-rs";
+        version = "0.3.1";
+        edition = "2018";
+        sha256 = "0czsk1nd4dx2k83f7jzkn8klx05wbmblkx1jh51i4c170akhbzrh";
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "asn1-rs-derive";
+            packageId = "asn1-rs-derive";
+          }
+          {
+            name = "asn1-rs-impl";
+            packageId = "asn1-rs-impl";
+          }
+          {
+            name = "displaydoc";
+            packageId = "displaydoc";
+          }
+          {
+            name = "nom";
+            packageId = "nom";
+            usesDefaultFeatures = false;
+            features = [ "std" ];
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+          }
+          {
+            name = "rusticata-macros";
+            packageId = "rusticata-macros";
+          }
+          {
+            name = "thiserror";
+            packageId = "thiserror";
+          }
+          {
+            name = "time";
+            packageId = "time";
+            optional = true;
+            features = [ "macros" "parsing" "formatting" ];
+          }
+        ];
+        features = {
+          "bigint" = [ "num-bigint" ];
+          "bits" = [ "bitvec" ];
+          "bitvec" = [ "dep:bitvec" ];
+          "cookie-factory" = [ "dep:cookie-factory" ];
+          "datetime" = [ "time" ];
+          "default" = [ "std" ];
+          "num-bigint" = [ "dep:num-bigint" ];
+          "serialize" = [ "cookie-factory" ];
+          "time" = [ "dep:time" ];
+        };
+        resolvedDefaultFeatures = [ "datetime" "default" "std" "time" ];
+      };
+      "asn1-rs-derive" = rec {
+        crateName = "asn1-rs-derive";
+        version = "0.1.0";
+        edition = "2018";
+        sha256 = "1gzf9vab06lk0zjvbr07axx64fndkng2s28bnj27fnwd548pb2yv";
+        procMacro = true;
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+          }
+          {
+            name = "synstructure";
+            packageId = "synstructure";
+          }
+        ];
+
+      };
+      "asn1-rs-impl" = rec {
+        crateName = "asn1-rs-impl";
+        version = "0.1.0";
+        edition = "2018";
+        sha256 = "1va27bn7qxqp4wanzjlkagnynv6jnrhnwmcky2ahzb1r405p6xr7";
+        procMacro = true;
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+          }
+        ];
+
+      };
+      "autocfg 0.1.7" = rec {
+        crateName = "autocfg";
+        version = "0.1.7";
+        edition = "2015";
+        sha256 = "1chwgimpx5z7xbag7krr9d8asxfqbh683qhgl9kn3hxk2l0djj8x";
+        authors = [
+          "Josh Stone <cuviper@gmail.com>"
+        ];
+
+      };
+      "autocfg 1.0.1" = rec {
+        crateName = "autocfg";
+        version = "1.0.1";
+        edition = "2015";
+        sha256 = "0jj6i9zn4gjl03kjvziqdji6rwx8ykz8zk2ngpc331z2g3fk3c6d";
+        authors = [
+          "Josh Stone <cuviper@gmail.com>"
+        ];
+
+      };
+      "base64" = rec {
+        crateName = "base64";
+        version = "0.13.0";
+        edition = "2018";
+        sha256 = "1z82g23mbzjgijkpcrilc7nljpxpvpf7zxf6iyiapkgka2ngwkch";
+        authors = [
+          "Alice Maz <alice@alicemaz.com>"
+          "Marshall Pierce <marshall@mpierce.org>"
+        ];
+        features = {
+          "default" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" ];
+      };
+      "base64ct" = rec {
+        crateName = "base64ct";
+        version = "1.1.1";
+        edition = "2018";
+        sha256 = "0p4was874qc90q2chm2i14m9mn8zmxjis8vaxihd6a2x4aqxkd76";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        features = {
+          "std" = [ "alloc" ];
+        };
+      };
+      "bitflags" = rec {
+        crateName = "bitflags";
+        version = "1.3.2";
+        edition = "2018";
+        sha256 = "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        features = {
+          "compiler_builtins" = [ "dep:compiler_builtins" ];
+          "core" = [ "dep:core" ];
+          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
+        };
+        resolvedDefaultFeatures = [ "default" ];
+      };
+      "botan" = rec {
+        crateName = "botan";
+        version = "0.8.1";
+        edition = "2018";
+        sha256 = "08bmiyn7c3b0dgx20w6hr28d9jcq7cj78cchr84pc686sb2s41ik";
+        authors = [
+          "Jack Lloyd <jack@randombit.net>"
+        ];
+        dependencies = [
+          {
+            name = "botan-sys";
+            packageId = "botan-sys";
+          }
+          {
+            name = "cty";
+            packageId = "cty";
+          }
+        ];
+        features = {
+          "cstr_core" = [ "dep:cstr_core" ];
+          "no-std" = [ "cstr_core/alloc" ];
+          "vendored" = [ "botan-sys/vendored" ];
+        };
+        resolvedDefaultFeatures = [ "default" "vendored" ];
+      };
+      "botan-src" = rec {
+        crateName = "botan-src";
+        version = "0.21703.0";
+        edition = "2018";
+        sha256 = "0s2ad9q84qsrllfsbj7hjhn7gr3hab9ng6lwzwqmimia6yvja8y8";
+        authors = [
+          "Rodolphe Breard <rodolphe@what.tf>"
+          "Jack Lloyd <jack@randombit.net>"
+        ];
+
+      };
+      "botan-sys" = rec {
+        crateName = "botan-sys";
+        version = "0.8.1";
+        edition = "2015";
+        sha256 = "1m11zblxfanrhl97j7z3ap7n17rr8j0rg91sr7f9j6y2bsniaz1x";
+        authors = [
+          "Jack Lloyd <jack@randombit.net>"
+        ];
+        dependencies = [
+          {
+            name = "cty";
+            packageId = "cty";
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "botan-src";
+            packageId = "botan-src";
+            optional = true;
+          }
+        ];
+        features = {
+          "botan-src" = [ "dep:botan-src" ];
+          "vendored" = [ "botan-src" ];
+        };
+        resolvedDefaultFeatures = [ "botan-src" "default" "vendored" ];
+      };
+      "bumpalo" = rec {
+        crateName = "bumpalo";
+        version = "3.9.1";
+        edition = "2018";
+        sha256 = "1688dv6s0cbj72p9lmll8a02a85dzxvdw2is7pji490zmd35m954";
+        authors = [
+          "Nick Fitzgerald <fitzgen@gmail.com>"
+        ];
+        features = {
+        };
+        resolvedDefaultFeatures = [ "default" ];
+      };
+      "byteorder" = rec {
+        crateName = "byteorder";
+        version = "1.4.3";
+        edition = "2018";
+        sha256 = "0456lv9xi1a5bcm32arknf33ikv76p3fr9yzki4lb2897p2qkh8l";
+        authors = [
+          "Andrew Gallant <jamslam@gmail.com>"
+        ];
+        features = {
+          "default" = [ "std" ];
+        };
+      };
+      "cc" = rec {
+        crateName = "cc";
+        version = "1.0.72";
+        edition = "2018";
+        crateBin = [];
+        sha256 = "1vl50h2qh0nh0iddzj6gd1pnxnxpvwmbfxc30578c1pajmxi7a92";
+        authors = [
+          "Alex Crichton <alex@alexcrichton.com>"
+        ];
+        features = {
+          "jobserver" = [ "dep:jobserver" ];
+          "parallel" = [ "jobserver" ];
+        };
+      };
+      "cfg-if" = rec {
+        crateName = "cfg-if";
+        version = "1.0.0";
+        edition = "2018";
+        sha256 = "1za0vb97n4brpzpv8lsbnzmq5r8f2b0cpqqr0sy8h5bn751xxwds";
+        authors = [
+          "Alex Crichton <alex@alexcrichton.com>"
+        ];
+        features = {
+          "compiler_builtins" = [ "dep:compiler_builtins" ];
+          "core" = [ "dep:core" ];
+          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
+        };
+      };
+      "const-oid" = rec {
+        crateName = "const-oid";
+        version = "0.6.2";
+        edition = "2018";
+        sha256 = "12vv7csqqjj0x1l5mf51lgqiw76k5c3mb1yzfhfcqysks2j2lvwx";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        features = {
+        };
+      };
+      "crypto-bigint" = rec {
+        crateName = "crypto-bigint";
+        version = "0.2.11";
+        edition = "2018";
+        sha256 = "00qckh65nzb7s7vd60wylw6alxf9g37xh31lirb1qw0l8fxx6fzq";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "generic-array";
+            packageId = "generic-array";
+            optional = true;
+          }
+          {
+            name = "rand_core";
+            packageId = "rand_core";
+            optional = true;
+          }
+          {
+            name = "subtle";
+            packageId = "subtle";
+            usesDefaultFeatures = false;
+          }
+        ];
+        features = {
+          "default" = [ "rand" ];
+          "generic-array" = [ "dep:generic-array" ];
+          "rand" = [ "rand_core" ];
+          "rand_core" = [ "dep:rand_core" ];
+          "rlp" = [ "dep:rlp" ];
+          "zeroize" = [ "dep:zeroize" ];
+        };
+        resolvedDefaultFeatures = [ "default" "generic-array" "rand" "rand_core" ];
+      };
+      "cty" = rec {
+        crateName = "cty";
+        version = "0.2.2";
+        edition = "2015";
+        sha256 = "0d8z0pbr87wgzqqb2jk5pvj0afzc6d3rb772ach6fijhg6yglrdk";
+        authors = [
+          "Jorge Aparicio <jorge@japaric.io>"
+        ];
+
+      };
+      "data-encoding" = rec {
+        crateName = "data-encoding";
+        version = "2.3.2";
+        edition = "2018";
+        sha256 = "0mvd8bjq5mq50fcf931cff57vwmbsvs1kpxynkzrshli98y3kqiy";
+        authors = [
+          "Julien Cretin <git@ia0.eu>"
+        ];
+        features = {
+          "default" = [ "std" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
+      };
+      "der" = rec {
+        crateName = "der";
+        version = "0.4.5";
+        edition = "2018";
+        sha256 = "1x4k0jln8va1657cghl40l6p7hyvr1ixz71v9cd6imwmgp51rdvr";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "const-oid";
+            packageId = "const-oid";
+            optional = true;
+          }
+          {
+            name = "crypto-bigint";
+            packageId = "crypto-bigint";
+            optional = true;
+            features = [ "generic-array" ];
+          }
+        ];
+        features = {
+          "bigint" = [ "crypto-bigint" ];
+          "const-oid" = [ "dep:const-oid" ];
+          "crypto-bigint" = [ "dep:crypto-bigint" ];
+          "der_derive" = [ "dep:der_derive" ];
+          "derive" = [ "der_derive" ];
+          "oid" = [ "const-oid" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "bigint" "const-oid" "crypto-bigint" "oid" "std" ];
+      };
+      "der-parser" = rec {
+        crateName = "der-parser";
+        version = "7.0.0";
+        edition = "2018";
+        sha256 = "10kfa2gzl3x20mwgrd43cyi79xgkqxyzcyrh0xylv4apa33qlfgy";
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "asn1-rs";
+            packageId = "asn1-rs";
+          }
+          {
+            name = "displaydoc";
+            packageId = "displaydoc";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "nom";
+            packageId = "nom";
+          }
+          {
+            name = "num-bigint";
+            packageId = "num-bigint";
+            optional = true;
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+          }
+          {
+            name = "rusticata-macros";
+            packageId = "rusticata-macros";
+          }
+        ];
+        features = {
+          "bigint" = [ "num-bigint" ];
+          "cookie-factory" = [ "dep:cookie-factory" ];
+          "default" = [ "std" ];
+          "num-bigint" = [ "dep:num-bigint" ];
+          "serialize" = [ "std" "cookie-factory" ];
+        };
+        resolvedDefaultFeatures = [ "bigint" "default" "num-bigint" "std" ];
+      };
+      "digest" = rec {
+        crateName = "digest";
+        version = "0.9.0";
+        edition = "2018";
+        sha256 = "0rmhvk33rgvd6ll71z8sng91a52rw14p0drjn1da0mqa138n1pfk";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "generic-array";
+            packageId = "generic-array";
+          }
+        ];
+        features = {
+          "blobby" = [ "dep:blobby" ];
+          "dev" = [ "blobby" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "std" ];
+      };
+      "displaydoc" = rec {
+        crateName = "displaydoc";
+        version = "0.2.3";
+        edition = "2018";
+        sha256 = "11i8p5snlc1hs4g5q3wiyr75dn276l6kr0si5m7xmfa6y31mvy9v";
+        procMacro = true;
+        authors = [
+          "Jane Lusby <jlusby@yaah.dev>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" ];
+      };
+      "foreign-types" = rec {
+        crateName = "foreign-types";
+        version = "0.3.2";
+        edition = "2015";
+        sha256 = "1cgk0vyd7r45cj769jym4a6s7vwshvd0z4bqrb92q1fwibmkkwzn";
+        authors = [
+          "Steven Fackler <sfackler@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "foreign-types-shared";
+            packageId = "foreign-types-shared";
+          }
+        ];
+
+      };
+      "foreign-types-shared" = rec {
+        crateName = "foreign-types-shared";
+        version = "0.1.1";
+        edition = "2015";
+        sha256 = "0jxgzd04ra4imjv8jgkmdq59kj8fsz6w4zxsbmlai34h26225c00";
+        authors = [
+          "Steven Fackler <sfackler@gmail.com>"
+        ];
+
+      };
+      "generic-array" = rec {
+        crateName = "generic-array";
+        version = "0.14.5";
+        edition = "2015";
+        sha256 = "00qqhls43bzvyb7s26iw6knvsz3mckbxl3rhaahvypzhqwzd6j7x";
+        libName = "generic_array";
+        authors = [
+          "Bartłomiej Kamiński <fizyk20@gmail.com>"
+          "Aaron Trent <novacrazy@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "typenum";
+            packageId = "typenum";
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "version_check";
+            packageId = "version_check";
+          }
+        ];
+        features = {
+          "serde" = [ "dep:serde" ];
+        };
+      };
+      "getrandom" = rec {
+        crateName = "getrandom";
+        version = "0.2.4";
+        edition = "2018";
+        sha256 = "0k0bdr1dyf4n9fvnkx4fmwxhv4hgnyf55gj86v4m69fln743g3a1";
+        authors = [
+          "The Rand Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "cfg-if";
+            packageId = "cfg-if";
+          }
+          {
+            name = "libc";
+            packageId = "libc";
+            usesDefaultFeatures = false;
+            target = { target, features }: (target."unix" or false);
+          }
+          {
+            name = "wasi";
+            packageId = "wasi";
+            target = { target, features }: (target."os" == "wasi");
+          }
+        ];
+        features = {
+          "compiler_builtins" = [ "dep:compiler_builtins" ];
+          "core" = [ "dep:core" ];
+          "js" = [ "wasm-bindgen" "js-sys" ];
+          "js-sys" = [ "dep:js-sys" ];
+          "rustc-dep-of-std" = [ "compiler_builtins" "core" "libc/rustc-dep-of-std" "wasi/rustc-dep-of-std" ];
+          "wasm-bindgen" = [ "dep:wasm-bindgen" ];
+        };
+        resolvedDefaultFeatures = [ "std" ];
+      };
+      "itoa" = rec {
+        crateName = "itoa";
+        version = "1.0.1";
+        edition = "2018";
+        sha256 = "0d8wr2qf5b25a04xf10rz9r0pdbjdgb0zaw3xvf8k2sqcz1qzaqs";
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+        ];
+
+      };
+      "js-sys" = rec {
+        crateName = "js-sys";
+        version = "0.3.56";
+        edition = "2018";
+        sha256 = "010g8jkj5avy3xd77i3cprjzzpfa6z9z2ay0fkllqmpx617c53x3";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "wasm-bindgen";
+            packageId = "wasm-bindgen";
+          }
+        ];
+
+      };
+      "lazy_static" = rec {
+        crateName = "lazy_static";
+        version = "1.4.0";
+        edition = "2015";
+        sha256 = "0in6ikhw8mgl33wjv6q6xfrb5b9jr16q8ygjy803fay4zcisvaz2";
+        authors = [
+          "Marvin Löbel <loebel.marvin@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "spin";
+            packageId = "spin";
+            optional = true;
+          }
+        ];
+        features = {
+          "spin" = [ "dep:spin" ];
+          "spin_no_std" = [ "spin" ];
+        };
+        resolvedDefaultFeatures = [ "spin" "spin_no_std" ];
+      };
+      "libc" = rec {
+        crateName = "libc";
+        version = "0.2.116";
+        edition = "2015";
+        sha256 = "0x6sk17kv2fdsqxlm23bz9x1y79w90k7ylkflk44rgidhy4bspan";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        features = {
+          "default" = [ "std" ];
+          "rustc-dep-of-std" = [ "align" "rustc-std-workspace-core" ];
+          "rustc-std-workspace-core" = [ "dep:rustc-std-workspace-core" ];
+          "use_std" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" ];
+      };
+      "libm" = rec {
+        crateName = "libm";
+        version = "0.2.1";
+        edition = "2018";
+        sha256 = "0akh56sh51adhagmk9l84dyrlz60gv8ri05xhr13i1b18czkpmy7";
+        authors = [
+          "Jorge Aparicio <jorge@japaric.io>"
+        ];
+        features = {
+          "musl-reference-tests" = [ "rand" ];
+          "rand" = [ "dep:rand" ];
+        };
+        resolvedDefaultFeatures = [ "default" ];
+      };
+      "log" = rec {
+        crateName = "log";
+        version = "0.4.14";
+        edition = "2015";
+        sha256 = "04175hv0v62shd82qydq58a48k3bjijmk54v38zgqlbxqkkbpfai";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "cfg-if";
+            packageId = "cfg-if";
+          }
+        ];
+        features = {
+          "kv_unstable" = [ "value-bag" ];
+          "kv_unstable_serde" = [ "kv_unstable_std" "value-bag/serde" "serde" ];
+          "kv_unstable_std" = [ "std" "kv_unstable" "value-bag/error" ];
+          "kv_unstable_sval" = [ "kv_unstable" "value-bag/sval" "sval" ];
+          "serde" = [ "dep:serde" ];
+          "sval" = [ "dep:sval" ];
+          "value-bag" = [ "dep:value-bag" ];
+        };
+      };
+      "memchr" = rec {
+        crateName = "memchr";
+        version = "2.4.1";
+        edition = "2018";
+        sha256 = "0smq8xzd40njqpfzv5mghigj91fzlfrfg842iz8x0wqvw2dw731h";
+        authors = [
+          "Andrew Gallant <jamslam@gmail.com>"
+          "bluss"
+        ];
+        features = {
+          "compiler_builtins" = [ "dep:compiler_builtins" ];
+          "core" = [ "dep:core" ];
+          "default" = [ "std" ];
+          "libc" = [ "dep:libc" ];
+          "rustc-dep-of-std" = [ "core" "compiler_builtins" ];
+          "use_std" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "std" ];
+      };
+      "minimal-lexical" = rec {
+        crateName = "minimal-lexical";
+        version = "0.2.1";
+        edition = "2018";
+        sha256 = "16ppc5g84aijpri4jzv14rvcnslvlpphbszc7zzp6vfkddf4qdb8";
+        authors = [
+          "Alex Huszagh <ahuszagh@gmail.com>"
+        ];
+        features = {
+          "default" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "std" ];
+      };
+      "nom" = rec {
+        crateName = "nom";
+        version = "7.1.0";
+        edition = "2018";
+        sha256 = "0281jdx0xcyhjgs1jkj9pii8py1clcpazg41bgz7d71qxzhi278v";
+        authors = [
+          "contact@geoffroycouprie.com"
+        ];
+        dependencies = [
+          {
+            name = "memchr";
+            packageId = "memchr";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "minimal-lexical";
+            packageId = "minimal-lexical";
+            usesDefaultFeatures = false;
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "version_check";
+            packageId = "version_check";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "std" = [ "alloc" "memchr/std" "minimal-lexical/std" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "std" ];
+      };
+      "num-bigint" = rec {
+        crateName = "num-bigint";
+        version = "0.4.3";
+        edition = "2018";
+        sha256 = "0py73wsa5j4izhd39nkqzqv260r0ma08vy30ky54ld3vkhlbcfpr";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "num-integer";
+            packageId = "num-integer";
+            usesDefaultFeatures = false;
+            features = [ "i128" ];
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+            usesDefaultFeatures = false;
+            features = [ "i128" ];
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 1.0.1";
+          }
+        ];
+        features = {
+          "arbitrary" = [ "dep:arbitrary" ];
+          "default" = [ "std" ];
+          "quickcheck" = [ "dep:quickcheck" ];
+          "rand" = [ "dep:rand" ];
+          "serde" = [ "dep:serde" ];
+          "std" = [ "num-integer/std" "num-traits/std" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" ];
+      };
+      "num-bigint-dig" = rec {
+        crateName = "num-bigint-dig";
+        version = "0.7.0";
+        edition = "2015";
+        sha256 = "1004mmipvc7pvaf3kf13i1nqh3vxf789bj72d8wl51y185aywis5";
+        authors = [
+          "dignifiedquire <dignifiedquire@gmail.com>"
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "byteorder";
+            packageId = "byteorder";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "lazy_static";
+            packageId = "lazy_static";
+            usesDefaultFeatures = false;
+            features = [ "spin_no_std" ];
+          }
+          {
+            name = "libm";
+            packageId = "libm";
+          }
+          {
+            name = "num-integer";
+            packageId = "num-integer";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "num-iter";
+            packageId = "num-iter";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "rand";
+            packageId = "rand";
+            optional = true;
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "smallvec";
+            packageId = "smallvec";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "zeroize";
+            packageId = "zeroize";
+            optional = true;
+            usesDefaultFeatures = false;
+            features = [ "zeroize_derive" ];
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 0.1.7";
+          }
+        ];
+        devDependencies = [
+          {
+            name = "rand";
+            packageId = "rand";
+            features = [ "small_rng" ];
+          }
+        ];
+        features = {
+          "default" = [ "std" "i128" "u64_digit" ];
+          "i128" = [ "num-integer/i128" "num-traits/i128" ];
+          "prime" = [ "rand/std_rng" ];
+          "rand" = [ "dep:rand" ];
+          "serde" = [ "dep:serde" ];
+          "std" = [ "num-integer/std" "num-traits/std" "smallvec/write" "rand/std" "serde/std" ];
+          "zeroize" = [ "dep:zeroize" ];
+        };
+        resolvedDefaultFeatures = [ "i128" "prime" "rand" "u64_digit" "zeroize" ];
+      };
+      "num-integer" = rec {
+        crateName = "num-integer";
+        version = "0.1.44";
+        edition = "2015";
+        sha256 = "1nq152y3304as1iai95hqz8prqnc94lks1s7q05sfjdmcf56kk6j";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+            usesDefaultFeatures = false;
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 1.0.1";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "i128" = [ "num-traits/i128" ];
+          "std" = [ "num-traits/std" ];
+        };
+        resolvedDefaultFeatures = [ "i128" "std" ];
+      };
+      "num-iter" = rec {
+        crateName = "num-iter";
+        version = "0.1.42";
+        edition = "2015";
+        sha256 = "0ndd9wb9qar50fdr16xm3i1zk6h2g9br56nml2n22kd56y1iq0mj";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "num-integer";
+            packageId = "num-integer";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+            usesDefaultFeatures = false;
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 1.0.1";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "i128" = [ "num-integer/i128" "num-traits/i128" ];
+          "std" = [ "num-integer/std" "num-traits/std" ];
+        };
+      };
+      "num-traits" = rec {
+        crateName = "num-traits";
+        version = "0.2.14";
+        edition = "2015";
+        sha256 = "144j176s2p76azy2ngk2vkdzgwdc0bc8c93jhki8c9fsbknb2r4s";
+        authors = [
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "libm";
+            packageId = "libm";
+            optional = true;
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 1.0.1";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "libm" = [ "dep:libm" ];
+        };
+        resolvedDefaultFeatures = [ "default" "i128" "libm" "std" ];
+      };
+      "num_threads" = rec {
+        crateName = "num_threads";
+        version = "0.1.3";
+        edition = "2015";
+        sha256 = "05gvsnv4k6d69iksz47i7fq1r61dj1k1nh4i8xrw7qlkcfx9kflp";
+        authors = [
+          "Jacob Pratt <open-source@jhpratt.dev>"
+        ];
+        dependencies = [
+          {
+            name = "libc";
+            packageId = "libc";
+            target = { target, features }: ((target."os" == "macos") || (target."os" == "freebsd"));
+          }
+        ];
+
+      };
+      "oid-registry" = rec {
+        crateName = "oid-registry";
+        version = "0.4.0";
+        edition = "2018";
+        sha256 = "0akbah3j8231ayrp2l1y5d9zmvbvqcsj0sa6s6dz6h85z8bhgqiq";
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "asn1-rs";
+            packageId = "asn1-rs";
+          }
+        ];
+        features = {
+          "crypto" = [ "kdf" "pkcs1" "pkcs7" "pkcs9" "pkcs12" "nist_algs" "x962" ];
+          "default" = [ "registry" ];
+        };
+        resolvedDefaultFeatures = [ "crypto" "default" "kdf" "nist_algs" "pkcs1" "pkcs12" "pkcs7" "pkcs9" "registry" "x509" "x962" ];
+      };
+      "once_cell" = rec {
+        crateName = "once_cell";
+        version = "1.9.0";
+        edition = "2018";
+        sha256 = "1mfqhrsgi368x92bwnq3vi3p5nv0n1qlrn69gfflhvkfkxfm2cns";
+        authors = [
+          "Aleksey Kladov <aleksey.kladov@gmail.com>"
+        ];
+        features = {
+          "alloc" = [ "race" ];
+          "atomic-polyfill" = [ "dep:atomic-polyfill" ];
+          "default" = [ "std" ];
+          "parking_lot" = [ "dep:parking_lot" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "race" "std" ];
+      };
+      "openssl" = rec {
+        crateName = "openssl";
+        version = "0.10.38";
+        edition = "2018";
+        sha256 = "15baqlphisr1f7ddq11jnrrzz4shdh35kwal24adyc2c4cif4yhc";
+        authors = [
+          "Steven Fackler <sfackler@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "bitflags";
+            packageId = "bitflags";
+          }
+          {
+            name = "cfg-if";
+            packageId = "cfg-if";
+          }
+          {
+            name = "foreign-types";
+            packageId = "foreign-types";
+          }
+          {
+            name = "libc";
+            packageId = "libc";
+          }
+          {
+            name = "once_cell";
+            packageId = "once_cell";
+          }
+          {
+            name = "openssl-sys";
+            packageId = "openssl-sys";
+            rename = "ffi";
+          }
+        ];
+        features = {
+          "vendored" = [ "ffi/vendored" ];
+        };
+      };
+      "openssl-sys" = rec {
+        crateName = "openssl-sys";
+        version = "0.9.72";
+        edition = "2015";
+        sha256 = "1jq3qbcvf16qn71yasdzw54b14n8nz98vr52l1gp60in72f10iky";
+        build = "build/main.rs";
+        authors = [
+          "Alex Crichton <alex@alexcrichton.com>"
+          "Steven Fackler <sfackler@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "libc";
+            packageId = "libc";
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "autocfg";
+            packageId = "autocfg 1.0.1";
+          }
+          {
+            name = "cc";
+            packageId = "cc";
+          }
+          {
+            name = "pkg-config";
+            packageId = "pkg-config";
+          }
+          {
+            name = "vcpkg";
+            packageId = "vcpkg";
+            target = {target, features}: (target."env" == "msvc");
+          }
+        ];
+        features = {
+          "openssl-src" = [ "dep:openssl-src" ];
+          "vendored" = [ "openssl-src" ];
+        };
+      };
+      "pem" = rec {
+        crateName = "pem";
+        version = "1.0.2";
+        edition = "2018";
+        sha256 = "0iqrvfnm71x9pvff39d5ajwn3gc9glxlv4d4h22max7342db18z9";
+        authors = [
+          "Jonathan Creekmore <jonathan@thecreekmores.org>"
+        ];
+        dependencies = [
+          {
+            name = "base64";
+            packageId = "base64";
+          }
+        ];
+
+      };
+      "pem-rfc7468" = rec {
+        crateName = "pem-rfc7468";
+        version = "0.2.4";
+        edition = "2018";
+        sha256 = "1m1c9jypydzabg4yscplmvff7pdcc8gg4cqg081hnlf03hxkmsc4";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "base64ct";
+            packageId = "base64ct";
+          }
+        ];
+        features = {
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" ];
+      };
+      "pkcs1" = rec {
+        crateName = "pkcs1";
+        version = "0.2.4";
+        edition = "2018";
+        sha256 = "0b2f1a0lf5h53zrjvcqbxzjhh89gcfa1myhf6z7w10ypg61fwsqi";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "der";
+            packageId = "der";
+            features = [ "bigint" "oid" ];
+          }
+          {
+            name = "pem-rfc7468";
+            packageId = "pem-rfc7468";
+            optional = true;
+          }
+          {
+            name = "zeroize";
+            packageId = "zeroize";
+            optional = true;
+            usesDefaultFeatures = false;
+            features = [ "alloc" ];
+          }
+        ];
+        features = {
+          "alloc" = [ "der/alloc" "zeroize" ];
+          "pem" = [ "alloc" "pem-rfc7468/alloc" ];
+          "pem-rfc7468" = [ "dep:pem-rfc7468" ];
+          "zeroize" = [ "dep:zeroize" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "std" "zeroize" ];
+      };
+      "pkcs8" = rec {
+        crateName = "pkcs8";
+        version = "0.7.6";
+        edition = "2018";
+        sha256 = "0iq46p6fa2b8xy6pj52zpmdy8ya3fg31dj4rc19x1fi69nvgjgpf";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "der";
+            packageId = "der";
+            features = [ "oid" ];
+          }
+          {
+            name = "pem-rfc7468";
+            packageId = "pem-rfc7468";
+            optional = true;
+          }
+          {
+            name = "pkcs1";
+            packageId = "pkcs1";
+            optional = true;
+            features = [ "alloc" ];
+          }
+          {
+            name = "spki";
+            packageId = "spki";
+          }
+          {
+            name = "zeroize";
+            packageId = "zeroize";
+            optional = true;
+            usesDefaultFeatures = false;
+            features = [ "alloc" ];
+          }
+        ];
+        features = {
+          "3des" = [ "encryption" "pkcs5/3des" ];
+          "alloc" = [ "der/alloc" "zeroize" ];
+          "des-insecure" = [ "encryption" "pkcs5/des-insecure" ];
+          "encryption" = [ "alloc" "pkcs5/alloc" "pkcs5/pbes2" "rand_core" ];
+          "pem" = [ "alloc" "pem-rfc7468/alloc" ];
+          "pem-rfc7468" = [ "dep:pem-rfc7468" ];
+          "pkcs1" = [ "dep:pkcs1" ];
+          "pkcs5" = [ "dep:pkcs5" ];
+          "rand_core" = [ "dep:rand_core" ];
+          "sha1" = [ "encryption" "pkcs5/sha1" ];
+          "std" = [ "alloc" "der/std" ];
+          "zeroize" = [ "dep:zeroize" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "pem" "pem-rfc7468" "pkcs1" "std" "zeroize" ];
+      };
+      "pkg-config" = rec {
+        crateName = "pkg-config";
+        version = "0.3.24";
+        edition = "2015";
+        sha256 = "1ghcyjp5537r7qigmgl3dj62j01arlpddaq93a3i414v3iskz2aq";
+        authors = [
+          "Alex Crichton <alex@alexcrichton.com>"
+        ];
+
+      };
+      "ppv-lite86" = rec {
+        crateName = "ppv-lite86";
+        version = "0.2.16";
+        edition = "2018";
+        sha256 = "0wkqwnvnfcgqlrahphl45vdlgi2f1bs7nqcsalsllp1y4dp9x7zb";
+        authors = [
+          "The CryptoCorrosion Contributors"
+        ];
+        features = {
+          "default" = [ "std" ];
+        };
+        resolvedDefaultFeatures = [ "simd" "std" ];
+      };
+      "proc-macro2" = rec {
+        crateName = "proc-macro2";
+        version = "1.0.36";
+        edition = "2018";
+        sha256 = "0adh6gvs31x6pfwmygypmzrv1jc7kjq568vsqcfaxk7vhdc2sd67";
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+          "Alex Crichton <alex@alexcrichton.com>"
+        ];
+        dependencies = [
+          {
+            name = "unicode-xid";
+            packageId = "unicode-xid";
+          }
+        ];
+        features = {
+          "default" = [ "proc-macro" ];
+        };
+        resolvedDefaultFeatures = [ "default" "proc-macro" ];
+      };
+      "quote" = rec {
+        crateName = "quote";
+        version = "1.0.15";
+        edition = "2018";
+        sha256 = "0id1q0875pvhkg0mlb5z8gzdm2g2rbbz76bfzhv331lrm2b3wkc6";
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+            usesDefaultFeatures = false;
+          }
+        ];
+        features = {
+          "default" = [ "proc-macro" ];
+          "proc-macro" = [ "proc-macro2/proc-macro" ];
+        };
+        resolvedDefaultFeatures = [ "default" "proc-macro" ];
+      };
+      "rand" = rec {
+        crateName = "rand";
+        version = "0.8.4";
+        edition = "2018";
+        sha256 = "1n5wska2fbfj4dsfz8mc0pd0dgjlrb6c9anpk5mwym345rip6x9f";
+        authors = [
+          "The Rand Project Developers"
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "libc";
+            packageId = "libc";
+            optional = true;
+            usesDefaultFeatures = false;
+            target = { target, features }: (target."unix" or false);
+          }
+          {
+            name = "rand_chacha";
+            packageId = "rand_chacha";
+            optional = true;
+            usesDefaultFeatures = false;
+            target = { target, features }: (!(target."os" == "emscripten"));
+          }
+          {
+            name = "rand_core";
+            packageId = "rand_core";
+          }
+          {
+            name = "rand_hc";
+            packageId = "rand_hc";
+            optional = true;
+            target = { target, features }: (target."os" == "emscripten");
+          }
+        ];
+        devDependencies = [
+          {
+            name = "rand_hc";
+            packageId = "rand_hc";
+          }
+        ];
+        features = {
+          "alloc" = [ "rand_core/alloc" ];
+          "default" = [ "std" "std_rng" ];
+          "getrandom" = [ "rand_core/getrandom" ];
+          "libc" = [ "dep:libc" ];
+          "log" = [ "dep:log" ];
+          "packed_simd" = [ "dep:packed_simd" ];
+          "rand_chacha" = [ "dep:rand_chacha" ];
+          "rand_hc" = [ "dep:rand_hc" ];
+          "serde" = [ "dep:serde" ];
+          "serde1" = [ "serde" "rand_core/serde1" ];
+          "simd_support" = [ "packed_simd" ];
+          "std" = [ "rand_core/std" "rand_chacha/std" "alloc" "getrandom" "libc" ];
+          "std_rng" = [ "rand_chacha" "rand_hc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "getrandom" "libc" "rand_chacha" "rand_hc" "std" "std_rng" ];
+      };
+      "rand_chacha" = rec {
+        crateName = "rand_chacha";
+        version = "0.3.1";
+        edition = "2018";
+        sha256 = "123x2adin558xbhvqb8w4f6syjsdkmqff8cxwhmjacpsl1ihmhg6";
+        authors = [
+          "The Rand Project Developers"
+          "The Rust Project Developers"
+          "The CryptoCorrosion Contributors"
+        ];
+        dependencies = [
+          {
+            name = "ppv-lite86";
+            packageId = "ppv-lite86";
+            usesDefaultFeatures = false;
+            features = [ "simd" ];
+          }
+          {
+            name = "rand_core";
+            packageId = "rand_core";
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "serde" = [ "dep:serde" ];
+          "serde1" = [ "serde" ];
+          "std" = [ "ppv-lite86/std" ];
+        };
+        resolvedDefaultFeatures = [ "std" ];
+      };
+      "rand_core" = rec {
+        crateName = "rand_core";
+        version = "0.6.3";
+        edition = "2018";
+        sha256 = "1rxlxc3bpzgwphcg9c9yasvv9idipcg2z2y4j0vlb52jyl418kyk";
+        authors = [
+          "The Rand Project Developers"
+          "The Rust Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "getrandom";
+            packageId = "getrandom";
+            optional = true;
+          }
+        ];
+        features = {
+          "getrandom" = [ "dep:getrandom" ];
+          "serde" = [ "dep:serde" ];
+          "serde1" = [ "serde" ];
+          "std" = [ "alloc" "getrandom" "getrandom/std" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "getrandom" "std" ];
+      };
+      "rand_hc" = rec {
+        crateName = "rand_hc";
+        version = "0.3.1";
+        edition = "2018";
+        sha256 = "1rwpykyvhkxs4jvqdja3mzp9dqaqamzn113cxaigs9z2dmcry7nm";
+        authors = [
+          "The Rand Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "rand_core";
+            packageId = "rand_core";
+          }
+        ];
+
+      };
+      "rcgen" = rec {
+        crateName = "rcgen";
+        version = "0.9.2";
+        edition = "2018";
+        crateBin = [
+          { name = "rcgen"; path = "src/main.rs"; }
+        ];
+        sha256 = "0ppwfl9g504x2qwk7m7mag8c3l70w9mcfha93013nlzqdlw2vynp";
+        authors = [
+          "est31 <MTest31@outlook.com>"
+        ];
+        dependencies = [
+          {
+            name = "pem";
+            packageId = "pem";
+            optional = true;
+          }
+          {
+            name = "ring";
+            packageId = "ring";
+          }
+          {
+            name = "time";
+            packageId = "time";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "x509-parser";
+            packageId = "x509-parser";
+            optional = true;
+            features = [ "verify" ];
+          }
+          {
+            name = "yasna";
+            packageId = "yasna";
+            features = [ "time" "std" ];
+          }
+          {
+            name = "zeroize";
+            packageId = "zeroize";
+            optional = true;
+          }
+        ];
+        devDependencies = [
+          {
+            name = "botan";
+            packageId = "botan";
+            features = [ "vendored" ];
+          }
+          {
+            name = "openssl";
+            packageId = "openssl";
+          }
+          {
+            name = "rand";
+            packageId = "rand";
+          }
+          {
+            name = "rsa";
+            packageId = "rsa";
+          }
+          {
+            name = "webpki";
+            packageId = "webpki";
+            features = [ "std" ];
+          }
+          {
+            name = "x509-parser";
+            packageId = "x509-parser";
+            features = [ "verify" ];
+          }
+        ];
+        features = {
+          "default" = [ "pem" ];
+          "pem" = [ "dep:pem" ];
+          "x509-parser" = [ "dep:x509-parser" ];
+          "zeroize" = [ "dep:zeroize" ];
+        };
+        resolvedDefaultFeatures = [ "default" "pem" "x509-parser" "zeroize" ];
+      };
+      "ring" = rec {
+        crateName = "ring";
+        version = "0.16.20";
+        edition = "2018";
+        sha256 = "1z682xp7v38ayq9g9nkbhhfpj6ygralmlx7wdmsfv8rnw99cylrh";
+        authors = [
+          "Brian Smith <brian@briansmith.org>"
+        ];
+        dependencies = [
+          {
+            name = "libc";
+            packageId = "libc";
+            usesDefaultFeatures = false;
+            target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
+          }
+          {
+            name = "once_cell";
+            packageId = "once_cell";
+            optional = true;
+            usesDefaultFeatures = false;
+            target = { target, features }: ((target."os" == "android") || (target."os" == "linux"));
+            features = [ "std" ];
+          }
+          {
+            name = "once_cell";
+            packageId = "once_cell";
+            usesDefaultFeatures = false;
+            target = { target, features }: ((target."os" == "dragonfly") || (target."os" == "freebsd") || (target."os" == "illumos") || (target."os" == "netbsd") || (target."os" == "openbsd") || (target."os" == "solaris"));
+            features = [ "std" ];
+          }
+          {
+            name = "spin";
+            packageId = "spin";
+            usesDefaultFeatures = false;
+            target = { target, features }: ((target."arch" == "x86") || (target."arch" == "x86_64") || (((target."arch" == "aarch64") || (target."arch" == "arm")) && ((target."os" == "android") || (target."os" == "fuchsia") || (target."os" == "linux"))));
+          }
+          {
+            name = "untrusted";
+            packageId = "untrusted";
+          }
+          {
+            name = "web-sys";
+            packageId = "web-sys";
+            usesDefaultFeatures = false;
+            target = { target, features }: ((target."arch" == "wasm32") && (target."vendor" == "unknown") && (target."os" == "unknown") && (target."env" == ""));
+            features = [ "Crypto" "Window" ];
+          }
+          {
+            name = "winapi";
+            packageId = "winapi";
+            usesDefaultFeatures = false;
+            target = { target, features }: (target."os" == "windows");
+            features = [ "ntsecapi" "wtypesbase" ];
+          }
+        ];
+        buildDependencies = [
+          {
+            name = "cc";
+            packageId = "cc";
+            usesDefaultFeatures = false;
+          }
+        ];
+        devDependencies = [
+          {
+            name = "libc";
+            packageId = "libc";
+            usesDefaultFeatures = false;
+            target = {target, features}: ((target."unix" or false) || (target."windows" or false));
+          }
+        ];
+        features = {
+          "default" = [ "alloc" "dev_urandom_fallback" ];
+          "dev_urandom_fallback" = [ "once_cell" ];
+          "once_cell" = [ "dep:once_cell" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "dev_urandom_fallback" "once_cell" ];
+      };
+      "rsa" = rec {
+        crateName = "rsa";
+        version = "0.5.0";
+        edition = "2018";
+        sha256 = "039676a4mj0875phdi7vc0bd37hv84dh0dql6fmk8dl2w81jcp70";
+        authors = [
+          "RustCrypto Developers"
+          "dignifiedquire <dignifiedquire@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "byteorder";
+            packageId = "byteorder";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "digest";
+            packageId = "digest";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "lazy_static";
+            packageId = "lazy_static";
+            features = [ "spin_no_std" ];
+          }
+          {
+            name = "num-bigint-dig";
+            packageId = "num-bigint-dig";
+            rename = "num-bigint";
+            usesDefaultFeatures = false;
+            features = [ "i128" "u64_digit" "prime" "zeroize" ];
+          }
+          {
+            name = "num-integer";
+            packageId = "num-integer";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "num-iter";
+            packageId = "num-iter";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "num-traits";
+            packageId = "num-traits";
+            usesDefaultFeatures = false;
+            features = [ "libm" ];
+          }
+          {
+            name = "pkcs1";
+            packageId = "pkcs1";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "pkcs8";
+            packageId = "pkcs8";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "rand";
+            packageId = "rand";
+            usesDefaultFeatures = false;
+            features = [ "std_rng" ];
+          }
+          {
+            name = "subtle";
+            packageId = "subtle";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "zeroize";
+            packageId = "zeroize";
+            features = [ "alloc" "zeroize_derive" ];
+          }
+        ];
+        features = {
+          "alloc" = [ "digest/alloc" "pkcs1/alloc" "pkcs8/alloc" "pkcs8/pkcs1" ];
+          "default" = [ "std" "pem" ];
+          "nightly" = [ "subtle/nightly" "num-bigint/nightly" ];
+          "pem" = [ "alloc" "pkcs1/pem" "pkcs8/pem" ];
+          "pkcs5" = [ "pkcs8/encryption" ];
+          "serde" = [ "num-bigint/serde" "serde_crate" ];
+          "serde_crate" = [ "dep:serde_crate" ];
+          "std" = [ "alloc" "digest/std" "pkcs1/std" "pkcs8/std" "rand/std" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "pem" "std" ];
+      };
+      "rusticata-macros" = rec {
+        crateName = "rusticata-macros";
+        version = "4.0.0";
+        edition = "2018";
+        sha256 = "03dmfxhgwzpm1360iwcpcg3y18ddgya0i0hc599am212pdvj7ib5";
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "nom";
+            packageId = "nom";
+            usesDefaultFeatures = false;
+            features = [ "std" ];
+          }
+        ];
+
+      };
+      "smallvec" = rec {
+        crateName = "smallvec";
+        version = "1.8.0";
+        edition = "2018";
+        sha256 = "10zf4fn63p2d6sx8qap3jvyarcfw563308x3431hd4c34r35gpgj";
+        authors = [
+          "The Servo Project Developers"
+        ];
+        features = {
+          "arbitrary" = [ "dep:arbitrary" ];
+          "const_new" = [ "const_generics" ];
+          "serde" = [ "dep:serde" ];
+        };
+      };
+      "spin" = rec {
+        crateName = "spin";
+        version = "0.5.2";
+        edition = "2015";
+        sha256 = "0b84m6dbzrwf2kxylnw82d3dr8w06av7rfkr8s85fb5f43rwyqvf";
+        authors = [
+          "Mathijs van de Nes <git@mathijs.vd-nes.nl>"
+          "John Ericson <git@JohnEricson.me>"
+        ];
+
+      };
+      "spki" = rec {
+        crateName = "spki";
+        version = "0.4.1";
+        edition = "2018";
+        sha256 = "0ckgkcg6db5y94dqhmyikgn8yrsah6pyf4j197hv1c51bp0s00aw";
+        authors = [
+          "RustCrypto Developers"
+        ];
+        dependencies = [
+          {
+            name = "der";
+            packageId = "der";
+            features = [ "oid" ];
+          }
+        ];
+        features = {
+          "std" = [ "der/std" ];
+        };
+      };
+      "subtle" = rec {
+        crateName = "subtle";
+        version = "2.4.1";
+        edition = "2015";
+        sha256 = "00b6jzh9gzb0h9n25g06nqr90z3xzqppfhhb260s1hjhh4pg7pkb";
+        authors = [
+          "Isis Lovecruft <isis@patternsinthevoid.net>"
+          "Henry de Valence <hdevalence@hdevalence.ca>"
+        ];
+        features = {
+          "default" = [ "std" "i128" ];
+        };
+      };
+      "syn" = rec {
+        crateName = "syn";
+        version = "1.0.86";
+        edition = "2018";
+        sha256 = "0sqwa4nqxzm89nj8xd8sk4iz0hbrw3mb17b6hyc2w2d0zzsb6rca";
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+            optional = true;
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "unicode-xid";
+            packageId = "unicode-xid";
+          }
+        ];
+        features = {
+          "default" = [ "derive" "parsing" "printing" "clone-impls" "proc-macro" ];
+          "printing" = [ "quote" ];
+          "proc-macro" = [ "proc-macro2/proc-macro" "quote/proc-macro" ];
+          "quote" = [ "dep:quote" ];
+          "test" = [ "syn-test-suite/all-features" ];
+        };
+        resolvedDefaultFeatures = [ "clone-impls" "default" "derive" "extra-traits" "full" "parsing" "printing" "proc-macro" "quote" "visit" ];
+      };
+      "synstructure" = rec {
+        crateName = "synstructure";
+        version = "0.12.6";
+        edition = "2018";
+        sha256 = "03r1lydbf3japnlpc4wka7y90pmz1i0danaj3f9a7b431akdlszk";
+        authors = [
+          "Nika Layzell <nika@thelayzells.com>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+            usesDefaultFeatures = false;
+            features = [ "derive" "parsing" "printing" "clone-impls" "visit" "extra-traits" ];
+          }
+          {
+            name = "unicode-xid";
+            packageId = "unicode-xid";
+          }
+        ];
+        features = {
+          "default" = [ "proc-macro" ];
+          "proc-macro" = [ "proc-macro2/proc-macro" "syn/proc-macro" "quote/proc-macro" ];
+        };
+        resolvedDefaultFeatures = [ "default" "proc-macro" ];
+      };
+      "thiserror" = rec {
+        crateName = "thiserror";
+        version = "1.0.30";
+        edition = "2018";
+        sha256 = "05y4wm29ck8flwq5k1q6nhwh00a3b30cz3xr0qvnbwad5vjsnjw5";
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "thiserror-impl";
+            packageId = "thiserror-impl";
+          }
+        ];
+
+      };
+      "thiserror-impl" = rec {
+        crateName = "thiserror-impl";
+        version = "1.0.30";
+        edition = "2018";
+        sha256 = "0jviwmvx6wzawsj6c9msic7h419wmsbjagl9dzhpydkzc8zzscma";
+        procMacro = true;
+        authors = [
+          "David Tolnay <dtolnay@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+          }
+        ];
+
+      };
+      "time" = rec {
+        crateName = "time";
+        version = "0.3.7";
+        edition = "2018";
+        sha256 = "0gbmwlkj15dfhbqvxlzji1ffc1lidblpgg1q3b3378hgyfcbqk00";
+        authors = [
+          "Jacob Pratt <open-source@jhpratt.dev>"
+          "Time contributors"
+        ];
+        dependencies = [
+          {
+            name = "itoa";
+            packageId = "itoa";
+            optional = true;
+          }
+          {
+            name = "libc";
+            packageId = "libc";
+            target = { target, features }: (target."family" == "unix");
+          }
+          {
+            name = "num_threads";
+            packageId = "num_threads";
+            target = { target, features }: (target."family" == "unix");
+          }
+          {
+            name = "time-macros";
+            packageId = "time-macros";
+            optional = true;
+          }
+        ];
+        features = {
+          "default" = [ "std" ];
+          "formatting" = [ "itoa" "std" ];
+          "itoa" = [ "dep:itoa" ];
+          "large-dates" = [ "time-macros/large-dates" ];
+          "local-offset" = [ "std" ];
+          "macros" = [ "time-macros" ];
+          "quickcheck" = [ "quickcheck-dep" "alloc" ];
+          "quickcheck-dep" = [ "dep:quickcheck-dep" ];
+          "rand" = [ "dep:rand" ];
+          "serde" = [ "dep:serde" ];
+          "serde-human-readable" = [ "serde" "formatting" "parsing" ];
+          "serde-well-known" = [ "serde/alloc" "formatting" "parsing" ];
+          "std" = [ "alloc" ];
+          "time-macros" = [ "dep:time-macros" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "formatting" "itoa" "macros" "parsing" "std" "time-macros" ];
+      };
+      "time-macros" = rec {
+        crateName = "time-macros";
+        version = "0.2.3";
+        edition = "2018";
+        sha256 = "1mj7pv8y9j2csrh1l8aabras36pgysbnfy18330srh4g8sihrsr5";
+        procMacro = true;
+        authors = [
+          "Jacob Pratt <open-source@jhpratt.dev>"
+          "Time contributors"
+        ];
+        features = {
+        };
+      };
+      "typenum" = rec {
+        crateName = "typenum";
+        version = "1.15.0";
+        edition = "2018";
+        sha256 = "11yrvz1vd43gqv738yw1v75rzngjbs7iwcgzjy3cq5ywkv2imy6w";
+        build = "build/main.rs";
+        authors = [
+          "Paho Lurie-Gregg <paho@paholg.com>"
+          "Andre Bogus <bogusandre@gmail.com>"
+        ];
+        features = {
+          "scale-info" = [ "dep:scale-info" ];
+          "scale_info" = [ "scale-info/derive" ];
+        };
+      };
+      "unicode-xid" = rec {
+        crateName = "unicode-xid";
+        version = "0.2.2";
+        edition = "2015";
+        sha256 = "1wrkgcw557v311dkdb6n2hrix9dm2qdsb1zpw7pn79l03zb85jwc";
+        authors = [
+          "erick.tryzelaar <erick.tryzelaar@gmail.com>"
+          "kwantam <kwantam@gmail.com>"
+          "Manish Goregaokar <manishsmail@gmail.com>"
+        ];
+        features = {
+        };
+        resolvedDefaultFeatures = [ "default" ];
+      };
+      "untrusted" = rec {
+        crateName = "untrusted";
+        version = "0.7.1";
+        edition = "2018";
+        sha256 = "0jkbqaj9d3v5a91pp3wp9mffvng1nhycx6sh4qkdd9qyr62ccmm1";
+        libPath = "src/untrusted.rs";
+        authors = [
+          "Brian Smith <brian@briansmith.org>"
+        ];
+
+      };
+      "vcpkg" = rec {
+        crateName = "vcpkg";
+        version = "0.2.15";
+        edition = "2015";
+        sha256 = "09i4nf5y8lig6xgj3f7fyrvzd3nlaw4znrihw8psidvv5yk4xkdc";
+        authors = [
+          "Jim McGrath <jimmc2@gmail.com>"
+        ];
+
+      };
+      "version_check" = rec {
+        crateName = "version_check";
+        version = "0.9.4";
+        edition = "2015";
+        sha256 = "0gs8grwdlgh0xq660d7wr80x14vxbizmd8dbp29p2pdncx8lp1s9";
+        authors = [
+          "Sergio Benitez <sb@sergio.bz>"
+        ];
+
+      };
+      "wasi" = rec {
+        crateName = "wasi";
+        version = "0.10.2+wasi-snapshot-preview1";
+        edition = "2018";
+        sha256 = "1ii7nff4y1mpcrxzzvbpgxm7a1nn3szjf1n21jnx37c2g6dbsvzx";
+        authors = [
+          "The Cranelift Project Developers"
+        ];
+        features = {
+          "compiler_builtins" = [ "dep:compiler_builtins" ];
+          "core" = [ "dep:core" ];
+          "default" = [ "std" ];
+          "rustc-dep-of-std" = [ "compiler_builtins" "core" "rustc-std-workspace-alloc" ];
+          "rustc-std-workspace-alloc" = [ "dep:rustc-std-workspace-alloc" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" ];
+      };
+      "wasm-bindgen" = rec {
+        crateName = "wasm-bindgen";
+        version = "0.2.79";
+        edition = "2018";
+        sha256 = "01kc4lj2vlf0ra2w63izrgdlv8p6f8p15086hhyqln6q4dsazw95";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "cfg-if";
+            packageId = "cfg-if";
+          }
+          {
+            name = "wasm-bindgen-macro";
+            packageId = "wasm-bindgen-macro";
+          }
+        ];
+        features = {
+          "default" = [ "spans" "std" ];
+          "enable-interning" = [ "std" ];
+          "serde" = [ "dep:serde" ];
+          "serde-serialize" = [ "serde" "serde_json" "std" ];
+          "serde_json" = [ "dep:serde_json" ];
+          "spans" = [ "wasm-bindgen-macro/spans" ];
+          "strict-macro" = [ "wasm-bindgen-macro/strict-macro" ];
+          "xxx_debug_only_print_generated_code" = [ "wasm-bindgen-macro/xxx_debug_only_print_generated_code" ];
+        };
+        resolvedDefaultFeatures = [ "default" "spans" "std" ];
+      };
+      "wasm-bindgen-backend" = rec {
+        crateName = "wasm-bindgen-backend";
+        version = "0.2.79";
+        edition = "2018";
+        sha256 = "1jpdrl5jj01961jxhmvj7v25ws928fyfj8ms7izifnhg0ggw08cb";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "bumpalo";
+            packageId = "bumpalo";
+          }
+          {
+            name = "lazy_static";
+            packageId = "lazy_static";
+          }
+          {
+            name = "log";
+            packageId = "log";
+          }
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+            features = [ "full" ];
+          }
+          {
+            name = "wasm-bindgen-shared";
+            packageId = "wasm-bindgen-shared";
+          }
+        ];
+        features = {
+          "extra-traits" = [ "syn/extra-traits" ];
+        };
+        resolvedDefaultFeatures = [ "spans" ];
+      };
+      "wasm-bindgen-macro" = rec {
+        crateName = "wasm-bindgen-macro";
+        version = "0.2.79";
+        edition = "2018";
+        sha256 = "00gdh0dlf2r77mxwh08q0z01vz2z7mvrllmj4gjjx9a0kvb06hig";
+        procMacro = true;
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "wasm-bindgen-macro-support";
+            packageId = "wasm-bindgen-macro-support";
+          }
+        ];
+        features = {
+          "spans" = [ "wasm-bindgen-macro-support/spans" ];
+          "strict-macro" = [ "wasm-bindgen-macro-support/strict-macro" ];
+        };
+        resolvedDefaultFeatures = [ "spans" ];
+      };
+      "wasm-bindgen-macro-support" = rec {
+        crateName = "wasm-bindgen-macro-support";
+        version = "0.2.79";
+        edition = "2018";
+        sha256 = "1g1fjqvrkrf3j20z8nxsf60cypxg9dfvpbachl2b53908q6s7a5z";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+            features = [ "visit" "full" ];
+          }
+          {
+            name = "wasm-bindgen-backend";
+            packageId = "wasm-bindgen-backend";
+          }
+          {
+            name = "wasm-bindgen-shared";
+            packageId = "wasm-bindgen-shared";
+          }
+        ];
+        features = {
+          "extra-traits" = [ "syn/extra-traits" ];
+          "spans" = [ "wasm-bindgen-backend/spans" ];
+        };
+        resolvedDefaultFeatures = [ "spans" ];
+      };
+      "wasm-bindgen-shared" = rec {
+        crateName = "wasm-bindgen-shared";
+        version = "0.2.79";
+        edition = "2018";
+        sha256 = "18h67l9b9jn06iw9r2p7bh9i0brh24lilcp4f26f4f24bh1qv59x";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+
+      };
+      "web-sys" = rec {
+        crateName = "web-sys";
+        version = "0.3.56";
+        edition = "2018";
+        sha256 = "1sxqmwq773ss5m6vz7z95fdm6bqlix0s2awsy0j5gllxy8cv6q60";
+        authors = [
+          "The wasm-bindgen Developers"
+        ];
+        dependencies = [
+          {
+            name = "js-sys";
+            packageId = "js-sys";
+          }
+          {
+            name = "wasm-bindgen";
+            packageId = "wasm-bindgen";
+          }
+        ];
+        features = {
+          "AbortSignal" = [ "EventTarget" ];
+          "AnalyserNode" = [ "AudioNode" "EventTarget" ];
+          "Animation" = [ "EventTarget" ];
+          "AnimationEvent" = [ "Event" ];
+          "AnimationPlaybackEvent" = [ "Event" ];
+          "Attr" = [ "EventTarget" "Node" ];
+          "AudioBufferSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
+          "AudioContext" = [ "BaseAudioContext" "EventTarget" ];
+          "AudioDestinationNode" = [ "AudioNode" "EventTarget" ];
+          "AudioNode" = [ "EventTarget" ];
+          "AudioProcessingEvent" = [ "Event" ];
+          "AudioScheduledSourceNode" = [ "AudioNode" "EventTarget" ];
+          "AudioStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
+          "AudioTrackList" = [ "EventTarget" ];
+          "AudioWorklet" = [ "Worklet" ];
+          "AudioWorkletGlobalScope" = [ "WorkletGlobalScope" ];
+          "AudioWorkletNode" = [ "AudioNode" "EventTarget" ];
+          "AuthenticatorAssertionResponse" = [ "AuthenticatorResponse" ];
+          "AuthenticatorAttestationResponse" = [ "AuthenticatorResponse" ];
+          "BaseAudioContext" = [ "EventTarget" ];
+          "BatteryManager" = [ "EventTarget" ];
+          "BeforeUnloadEvent" = [ "Event" ];
+          "BiquadFilterNode" = [ "AudioNode" "EventTarget" ];
+          "BlobEvent" = [ "Event" ];
+          "Bluetooth" = [ "EventTarget" ];
+          "BluetoothAdvertisingEvent" = [ "Event" ];
+          "BluetoothDevice" = [ "EventTarget" ];
+          "BluetoothPermissionResult" = [ "EventTarget" "PermissionStatus" ];
+          "BluetoothRemoteGattCharacteristic" = [ "EventTarget" ];
+          "BluetoothRemoteGattService" = [ "EventTarget" ];
+          "BroadcastChannel" = [ "EventTarget" ];
+          "CanvasCaptureMediaStream" = [ "EventTarget" "MediaStream" ];
+          "CdataSection" = [ "CharacterData" "EventTarget" "Node" "Text" ];
+          "ChannelMergerNode" = [ "AudioNode" "EventTarget" ];
+          "ChannelSplitterNode" = [ "AudioNode" "EventTarget" ];
+          "CharacterData" = [ "EventTarget" "Node" ];
+          "ChromeWorker" = [ "EventTarget" "Worker" ];
+          "Clipboard" = [ "EventTarget" ];
+          "ClipboardEvent" = [ "Event" ];
+          "CloseEvent" = [ "Event" ];
+          "Comment" = [ "CharacterData" "EventTarget" "Node" ];
+          "CompositionEvent" = [ "Event" "UiEvent" ];
+          "ConstantSourceNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
+          "ConvolverNode" = [ "AudioNode" "EventTarget" ];
+          "CssAnimation" = [ "Animation" "EventTarget" ];
+          "CssConditionRule" = [ "CssGroupingRule" "CssRule" ];
+          "CssCounterStyleRule" = [ "CssRule" ];
+          "CssFontFaceRule" = [ "CssRule" ];
+          "CssFontFeatureValuesRule" = [ "CssRule" ];
+          "CssGroupingRule" = [ "CssRule" ];
+          "CssImportRule" = [ "CssRule" ];
+          "CssKeyframeRule" = [ "CssRule" ];
+          "CssKeyframesRule" = [ "CssRule" ];
+          "CssMediaRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
+          "CssNamespaceRule" = [ "CssRule" ];
+          "CssPageRule" = [ "CssRule" ];
+          "CssStyleRule" = [ "CssRule" ];
+          "CssStyleSheet" = [ "StyleSheet" ];
+          "CssSupportsRule" = [ "CssConditionRule" "CssGroupingRule" "CssRule" ];
+          "CssTransition" = [ "Animation" "EventTarget" ];
+          "CustomEvent" = [ "Event" ];
+          "DedicatedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
+          "DelayNode" = [ "AudioNode" "EventTarget" ];
+          "DeviceLightEvent" = [ "Event" ];
+          "DeviceMotionEvent" = [ "Event" ];
+          "DeviceOrientationEvent" = [ "Event" ];
+          "DeviceProximityEvent" = [ "Event" ];
+          "Document" = [ "EventTarget" "Node" ];
+          "DocumentFragment" = [ "EventTarget" "Node" ];
+          "DocumentTimeline" = [ "AnimationTimeline" ];
+          "DocumentType" = [ "EventTarget" "Node" ];
+          "DomMatrix" = [ "DomMatrixReadOnly" ];
+          "DomPoint" = [ "DomPointReadOnly" ];
+          "DomRect" = [ "DomRectReadOnly" ];
+          "DomRequest" = [ "EventTarget" ];
+          "DragEvent" = [ "Event" "MouseEvent" "UiEvent" ];
+          "DynamicsCompressorNode" = [ "AudioNode" "EventTarget" ];
+          "Element" = [ "EventTarget" "Node" ];
+          "ErrorEvent" = [ "Event" ];
+          "EventSource" = [ "EventTarget" ];
+          "ExtendableEvent" = [ "Event" ];
+          "ExtendableMessageEvent" = [ "Event" "ExtendableEvent" ];
+          "FetchEvent" = [ "Event" "ExtendableEvent" ];
+          "FetchObserver" = [ "EventTarget" ];
+          "File" = [ "Blob" ];
+          "FileReader" = [ "EventTarget" ];
+          "FileSystemDirectoryEntry" = [ "FileSystemEntry" ];
+          "FileSystemFileEntry" = [ "FileSystemEntry" ];
+          "FocusEvent" = [ "Event" "UiEvent" ];
+          "FontFaceSet" = [ "EventTarget" ];
+          "FontFaceSetLoadEvent" = [ "Event" ];
+          "GainNode" = [ "AudioNode" "EventTarget" ];
+          "GamepadAxisMoveEvent" = [ "Event" "GamepadEvent" ];
+          "GamepadButtonEvent" = [ "Event" "GamepadEvent" ];
+          "GamepadEvent" = [ "Event" ];
+          "GpuDevice" = [ "EventTarget" ];
+          "GpuUncapturedErrorEvent" = [ "Event" ];
+          "HashChangeEvent" = [ "Event" ];
+          "Hid" = [ "EventTarget" ];
+          "HidConnectionEvent" = [ "Event" ];
+          "HidDevice" = [ "EventTarget" ];
+          "HidInputReportEvent" = [ "Event" ];
+          "HtmlAnchorElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlAudioElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
+          "HtmlBaseElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlBodyElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlBrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlButtonElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlCanvasElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDataElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDataListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDetailsElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDialogElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDirectoryElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDivElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlDocument" = [ "Document" "EventTarget" "Node" ];
+          "HtmlElement" = [ "Element" "EventTarget" "Node" ];
+          "HtmlEmbedElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlFieldSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlFontElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlFormControlsCollection" = [ "HtmlCollection" ];
+          "HtmlFormElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlFrameSetElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlHeadElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlHeadingElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlHrElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlHtmlElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlIFrameElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlImageElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlInputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlLabelElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlLegendElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlLiElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlLinkElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMapElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMediaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMenuElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMenuItemElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMetaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlMeterElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlModElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlOListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlObjectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlOptGroupElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlOptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlOptionsCollection" = [ "HtmlCollection" ];
+          "HtmlOutputElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlParagraphElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlParamElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlPictureElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlPreElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlProgressElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlQuoteElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlScriptElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlSelectElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlSlotElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlSourceElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlSpanElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlStyleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableCaptionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableCellElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableColElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableRowElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTableSectionElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTemplateElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTextAreaElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTimeElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTitleElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlTrackElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlUListElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlUnknownElement" = [ "Element" "EventTarget" "HtmlElement" "Node" ];
+          "HtmlVideoElement" = [ "Element" "EventTarget" "HtmlElement" "HtmlMediaElement" "Node" ];
+          "IdbCursorWithValue" = [ "IdbCursor" ];
+          "IdbDatabase" = [ "EventTarget" ];
+          "IdbFileHandle" = [ "EventTarget" ];
+          "IdbFileRequest" = [ "DomRequest" "EventTarget" ];
+          "IdbLocaleAwareKeyRange" = [ "IdbKeyRange" ];
+          "IdbMutableFile" = [ "EventTarget" ];
+          "IdbOpenDbRequest" = [ "EventTarget" "IdbRequest" ];
+          "IdbRequest" = [ "EventTarget" ];
+          "IdbTransaction" = [ "EventTarget" ];
+          "IdbVersionChangeEvent" = [ "Event" ];
+          "IirFilterNode" = [ "AudioNode" "EventTarget" ];
+          "ImageCaptureErrorEvent" = [ "Event" ];
+          "InputEvent" = [ "Event" "UiEvent" ];
+          "KeyboardEvent" = [ "Event" "UiEvent" ];
+          "KeyframeEffect" = [ "AnimationEffect" ];
+          "LocalMediaStream" = [ "EventTarget" "MediaStream" ];
+          "MediaDevices" = [ "EventTarget" ];
+          "MediaElementAudioSourceNode" = [ "AudioNode" "EventTarget" ];
+          "MediaEncryptedEvent" = [ "Event" ];
+          "MediaKeyError" = [ "Event" ];
+          "MediaKeyMessageEvent" = [ "Event" ];
+          "MediaKeySession" = [ "EventTarget" ];
+          "MediaQueryList" = [ "EventTarget" ];
+          "MediaQueryListEvent" = [ "Event" ];
+          "MediaRecorder" = [ "EventTarget" ];
+          "MediaRecorderErrorEvent" = [ "Event" ];
+          "MediaSource" = [ "EventTarget" ];
+          "MediaStream" = [ "EventTarget" ];
+          "MediaStreamAudioDestinationNode" = [ "AudioNode" "EventTarget" ];
+          "MediaStreamAudioSourceNode" = [ "AudioNode" "EventTarget" ];
+          "MediaStreamEvent" = [ "Event" ];
+          "MediaStreamTrack" = [ "EventTarget" ];
+          "MediaStreamTrackEvent" = [ "Event" ];
+          "MessageEvent" = [ "Event" ];
+          "MessagePort" = [ "EventTarget" ];
+          "MidiAccess" = [ "EventTarget" ];
+          "MidiConnectionEvent" = [ "Event" ];
+          "MidiInput" = [ "EventTarget" "MidiPort" ];
+          "MidiMessageEvent" = [ "Event" ];
+          "MidiOutput" = [ "EventTarget" "MidiPort" ];
+          "MidiPort" = [ "EventTarget" ];
+          "MouseEvent" = [ "Event" "UiEvent" ];
+          "MouseScrollEvent" = [ "Event" "MouseEvent" "UiEvent" ];
+          "MutationEvent" = [ "Event" ];
+          "NetworkInformation" = [ "EventTarget" ];
+          "Node" = [ "EventTarget" ];
+          "Notification" = [ "EventTarget" ];
+          "NotificationEvent" = [ "Event" "ExtendableEvent" ];
+          "OfflineAudioCompletionEvent" = [ "Event" ];
+          "OfflineAudioContext" = [ "BaseAudioContext" "EventTarget" ];
+          "OfflineResourceList" = [ "EventTarget" ];
+          "OffscreenCanvas" = [ "EventTarget" ];
+          "OscillatorNode" = [ "AudioNode" "AudioScheduledSourceNode" "EventTarget" ];
+          "PageTransitionEvent" = [ "Event" ];
+          "PaintWorkletGlobalScope" = [ "WorkletGlobalScope" ];
+          "PannerNode" = [ "AudioNode" "EventTarget" ];
+          "PaymentMethodChangeEvent" = [ "Event" "PaymentRequestUpdateEvent" ];
+          "PaymentRequestUpdateEvent" = [ "Event" ];
+          "Performance" = [ "EventTarget" ];
+          "PerformanceMark" = [ "PerformanceEntry" ];
+          "PerformanceMeasure" = [ "PerformanceEntry" ];
+          "PerformanceNavigationTiming" = [ "PerformanceEntry" "PerformanceResourceTiming" ];
+          "PerformanceResourceTiming" = [ "PerformanceEntry" ];
+          "PermissionStatus" = [ "EventTarget" ];
+          "PointerEvent" = [ "Event" "MouseEvent" "UiEvent" ];
+          "PopStateEvent" = [ "Event" ];
+          "PopupBlockedEvent" = [ "Event" ];
+          "PresentationAvailability" = [ "EventTarget" ];
+          "PresentationConnection" = [ "EventTarget" ];
+          "PresentationConnectionAvailableEvent" = [ "Event" ];
+          "PresentationConnectionCloseEvent" = [ "Event" ];
+          "PresentationConnectionList" = [ "EventTarget" ];
+          "PresentationRequest" = [ "EventTarget" ];
+          "ProcessingInstruction" = [ "CharacterData" "EventTarget" "Node" ];
+          "ProgressEvent" = [ "Event" ];
+          "PromiseRejectionEvent" = [ "Event" ];
+          "PublicKeyCredential" = [ "Credential" ];
+          "PushEvent" = [ "Event" "ExtendableEvent" ];
+          "RadioNodeList" = [ "NodeList" ];
+          "RtcDataChannel" = [ "EventTarget" ];
+          "RtcDataChannelEvent" = [ "Event" ];
+          "RtcPeerConnection" = [ "EventTarget" ];
+          "RtcPeerConnectionIceEvent" = [ "Event" ];
+          "RtcTrackEvent" = [ "Event" ];
+          "RtcdtmfSender" = [ "EventTarget" ];
+          "RtcdtmfToneChangeEvent" = [ "Event" ];
+          "Screen" = [ "EventTarget" ];
+          "ScreenOrientation" = [ "EventTarget" ];
+          "ScriptProcessorNode" = [ "AudioNode" "EventTarget" ];
+          "ScrollAreaEvent" = [ "Event" "UiEvent" ];
+          "SecurityPolicyViolationEvent" = [ "Event" ];
+          "ServiceWorker" = [ "EventTarget" ];
+          "ServiceWorkerContainer" = [ "EventTarget" ];
+          "ServiceWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
+          "ServiceWorkerRegistration" = [ "EventTarget" ];
+          "ShadowRoot" = [ "DocumentFragment" "EventTarget" "Node" ];
+          "SharedWorker" = [ "EventTarget" ];
+          "SharedWorkerGlobalScope" = [ "EventTarget" "WorkerGlobalScope" ];
+          "SourceBuffer" = [ "EventTarget" ];
+          "SourceBufferList" = [ "EventTarget" ];
+          "SpeechRecognition" = [ "EventTarget" ];
+          "SpeechRecognitionError" = [ "Event" ];
+          "SpeechRecognitionEvent" = [ "Event" ];
+          "SpeechSynthesis" = [ "EventTarget" ];
+          "SpeechSynthesisErrorEvent" = [ "Event" "SpeechSynthesisEvent" ];
+          "SpeechSynthesisEvent" = [ "Event" ];
+          "SpeechSynthesisUtterance" = [ "EventTarget" ];
+          "StereoPannerNode" = [ "AudioNode" "EventTarget" ];
+          "StorageEvent" = [ "Event" ];
+          "SvgAnimateElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
+          "SvgAnimateMotionElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
+          "SvgAnimateTransformElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
+          "SvgAnimationElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgCircleElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgClipPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgComponentTransferFunctionElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgDefsElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgDescElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgElement" = [ "Element" "EventTarget" "Node" ];
+          "SvgEllipseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgFilterElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgForeignObjectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgGeometryElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgGraphicsElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgLineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgLinearGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
+          "SvgMarkerElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgMaskElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgMetadataElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgPathSegArcAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegArcRel" = [ "SvgPathSeg" ];
+          "SvgPathSegClosePath" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoCubicAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoCubicRel" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoCubicSmoothAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoCubicSmoothRel" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoQuadraticAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoQuadraticRel" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoQuadraticSmoothAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegCurvetoQuadraticSmoothRel" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoHorizontalAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoHorizontalRel" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoRel" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoVerticalAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegLinetoVerticalRel" = [ "SvgPathSeg" ];
+          "SvgPathSegMovetoAbs" = [ "SvgPathSeg" ];
+          "SvgPathSegMovetoRel" = [ "SvgPathSeg" ];
+          "SvgPatternElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgPolygonElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgPolylineElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgRadialGradientElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGradientElement" ];
+          "SvgRectElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGeometryElement" "SvgGraphicsElement" ];
+          "SvgScriptElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgSetElement" = [ "Element" "EventTarget" "Node" "SvgAnimationElement" "SvgElement" ];
+          "SvgStopElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgStyleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgSwitchElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgSymbolElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgTextContentElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgTextElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
+          "SvgTextPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
+          "SvgTextPositioningElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" ];
+          "SvgTitleElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgUseElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgViewElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgaElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgfeBlendElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeColorMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeComponentTransferElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeCompositeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeConvolveMatrixElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeDiffuseLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeDisplacementMapElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeDistantLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeDropShadowElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeFloodElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeFuncAElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
+          "SvgfeFuncBElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
+          "SvgfeFuncGElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
+          "SvgfeFuncRElement" = [ "Element" "EventTarget" "Node" "SvgComponentTransferFunctionElement" "SvgElement" ];
+          "SvgfeGaussianBlurElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeImageElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeMergeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeMergeNodeElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeMorphologyElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeOffsetElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfePointLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeSpecularLightingElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeSpotLightElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeTileElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgfeTurbulenceElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvggElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgmPathElement" = [ "Element" "EventTarget" "Node" "SvgElement" ];
+          "SvgsvgElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" ];
+          "SvgtSpanElement" = [ "Element" "EventTarget" "Node" "SvgElement" "SvgGraphicsElement" "SvgTextContentElement" "SvgTextPositioningElement" ];
+          "TcpServerSocket" = [ "EventTarget" ];
+          "TcpServerSocketEvent" = [ "Event" ];
+          "TcpSocket" = [ "EventTarget" ];
+          "TcpSocketErrorEvent" = [ "Event" ];
+          "TcpSocketEvent" = [ "Event" ];
+          "Text" = [ "CharacterData" "EventTarget" "Node" ];
+          "TextTrack" = [ "EventTarget" ];
+          "TextTrackCue" = [ "EventTarget" ];
+          "TextTrackList" = [ "EventTarget" ];
+          "TimeEvent" = [ "Event" ];
+          "TouchEvent" = [ "Event" "UiEvent" ];
+          "TrackEvent" = [ "Event" ];
+          "TransitionEvent" = [ "Event" ];
+          "UiEvent" = [ "Event" ];
+          "Usb" = [ "EventTarget" ];
+          "UsbConnectionEvent" = [ "Event" ];
+          "UsbPermissionResult" = [ "EventTarget" "PermissionStatus" ];
+          "UserProximityEvent" = [ "Event" ];
+          "ValueEvent" = [ "Event" ];
+          "VideoStreamTrack" = [ "EventTarget" "MediaStreamTrack" ];
+          "VideoTrackList" = [ "EventTarget" ];
+          "VrDisplay" = [ "EventTarget" ];
+          "VttCue" = [ "EventTarget" "TextTrackCue" ];
+          "WakeLockSentinel" = [ "EventTarget" ];
+          "WaveShaperNode" = [ "AudioNode" "EventTarget" ];
+          "WebGlContextEvent" = [ "Event" ];
+          "WebKitCssMatrix" = [ "DomMatrix" "DomMatrixReadOnly" ];
+          "WebSocket" = [ "EventTarget" ];
+          "WheelEvent" = [ "Event" "MouseEvent" "UiEvent" ];
+          "Window" = [ "EventTarget" ];
+          "WindowClient" = [ "Client" ];
+          "Worker" = [ "EventTarget" ];
+          "WorkerDebuggerGlobalScope" = [ "EventTarget" ];
+          "WorkerGlobalScope" = [ "EventTarget" ];
+          "XmlDocument" = [ "Document" "EventTarget" "Node" ];
+          "XmlHttpRequest" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
+          "XmlHttpRequestEventTarget" = [ "EventTarget" ];
+          "XmlHttpRequestUpload" = [ "EventTarget" "XmlHttpRequestEventTarget" ];
+          "Xr" = [ "EventTarget" ];
+          "XrBoundedReferenceSpace" = [ "EventTarget" "XrReferenceSpace" "XrSpace" ];
+          "XrInputSourceEvent" = [ "Event" ];
+          "XrInputSourcesChangeEvent" = [ "Event" ];
+          "XrReferenceSpace" = [ "EventTarget" "XrSpace" ];
+          "XrReferenceSpaceEvent" = [ "Event" ];
+          "XrSession" = [ "EventTarget" ];
+          "XrSessionEvent" = [ "Event" ];
+          "XrSpace" = [ "EventTarget" ];
+          "XrViewerPose" = [ "XrPose" ];
+        };
+        resolvedDefaultFeatures = [ "Crypto" "EventTarget" "Window" ];
+      };
+      "webpki" = rec {
+        crateName = "webpki";
+        version = "0.22.0";
+        edition = "2018";
+        sha256 = "1gd1gxip5kgdwmrvhj5gjxij2mgg2mavq1ych4q1h272ja0xg5gh";
+        authors = [
+          "Brian Smith <brian@briansmith.org>"
+        ];
+        dependencies = [
+          {
+            name = "ring";
+            packageId = "ring";
+            usesDefaultFeatures = false;
+          }
+          {
+            name = "untrusted";
+            packageId = "untrusted";
+          }
+        ];
+        features = {
+          "alloc" = [ "ring/alloc" ];
+          "std" = [ "alloc" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "std" ];
+      };
+      "winapi" = rec {
+        crateName = "winapi";
+        version = "0.3.9";
+        edition = "2015";
+        sha256 = "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw";
+        authors = [
+          "Peter Atashian <retep998@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "winapi-i686-pc-windows-gnu";
+            packageId = "winapi-i686-pc-windows-gnu";
+            target = { target, features }: (stdenv.hostPlatform.config == "i686-pc-windows-gnu");
+          }
+          {
+            name = "winapi-x86_64-pc-windows-gnu";
+            packageId = "winapi-x86_64-pc-windows-gnu";
+            target = { target, features }: (stdenv.hostPlatform.config == "x86_64-pc-windows-gnu");
+          }
+        ];
+        features = {
+          "debug" = [ "impl-debug" ];
+        };
+        resolvedDefaultFeatures = [ "ntsecapi" "wtypesbase" ];
+      };
+      "winapi-i686-pc-windows-gnu" = rec {
+        crateName = "winapi-i686-pc-windows-gnu";
+        version = "0.4.0";
+        edition = "2015";
+        sha256 = "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc";
+        authors = [
+          "Peter Atashian <retep998@gmail.com>"
+        ];
+
+      };
+      "winapi-x86_64-pc-windows-gnu" = rec {
+        crateName = "winapi-x86_64-pc-windows-gnu";
+        version = "0.4.0";
+        edition = "2015";
+        sha256 = "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki";
+        authors = [
+          "Peter Atashian <retep998@gmail.com>"
+        ];
+
+      };
+      "x509-parser" = rec {
+        crateName = "x509-parser";
+        version = "0.13.0";
+        edition = "2018";
+        sha256 = "0f3fqbv92q3a3s51md94sw3vgzs934agl4ii5a6ym364mkdlpwg5";
+        authors = [
+          "Pierre Chifflier <chifflier@wzdftpd.net>"
+        ];
+        dependencies = [
+          {
+            name = "asn1-rs";
+            packageId = "asn1-rs";
+            features = [ "datetime" ];
+          }
+          {
+            name = "base64";
+            packageId = "base64";
+          }
+          {
+            name = "data-encoding";
+            packageId = "data-encoding";
+          }
+          {
+            name = "der-parser";
+            packageId = "der-parser";
+            features = [ "bigint" ];
+          }
+          {
+            name = "lazy_static";
+            packageId = "lazy_static";
+          }
+          {
+            name = "nom";
+            packageId = "nom";
+          }
+          {
+            name = "oid-registry";
+            packageId = "oid-registry";
+            features = [ "crypto" "x509" ];
+          }
+          {
+            name = "ring";
+            packageId = "ring";
+            optional = true;
+          }
+          {
+            name = "rusticata-macros";
+            packageId = "rusticata-macros";
+          }
+          {
+            name = "thiserror";
+            packageId = "thiserror";
+          }
+          {
+            name = "time";
+            packageId = "time";
+            features = [ "formatting" ];
+          }
+        ];
+        features = {
+          "ring" = [ "dep:ring" ];
+          "verify" = [ "ring" ];
+        };
+        resolvedDefaultFeatures = [ "default" "ring" "verify" ];
+      };
+      "yasna" = rec {
+        crateName = "yasna";
+        version = "0.5.0";
+        edition = "2018";
+        sha256 = "0k1gk11hq4rwlppv9f50bz8bnmgr73r66idpp7rybly96si38v9l";
+        authors = [
+          "Masaki Hara <ackie.h.gmai@gmail.com>"
+        ];
+        dependencies = [
+          {
+            name = "time";
+            packageId = "time";
+            optional = true;
+            usesDefaultFeatures = false;
+            features = [ "std" ];
+          }
+        ];
+        features = {
+          "bit-vec" = [ "dep:bit-vec" ];
+          "num-bigint" = [ "dep:num-bigint" ];
+          "time" = [ "dep:time" ];
+        };
+        resolvedDefaultFeatures = [ "default" "std" "time" ];
+      };
+      "zeroize" = rec {
+        crateName = "zeroize";
+        version = "1.4.3";
+        edition = "2018";
+        sha256 = "068nvl3n5hk6lfn5y24grf2c7anzzqfzjjccscq3md7rqp79v3fn";
+        authors = [
+          "The RustCrypto Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "zeroize_derive";
+            packageId = "zeroize_derive";
+            optional = true;
+          }
+        ];
+        features = {
+          "default" = [ "alloc" ];
+          "zeroize_derive" = [ "dep:zeroize_derive" ];
+        };
+        resolvedDefaultFeatures = [ "alloc" "default" "zeroize_derive" ];
+      };
+      "zeroize_derive" = rec {
+        crateName = "zeroize_derive";
+        version = "1.3.1";
+        edition = "2018";
+        sha256 = "1nzdqyryjnqcrqz0vhddpkd8sybhn0bd8rbd6l33rdhhxwzz3s41";
+        procMacro = true;
+        authors = [
+          "The RustCrypto Project Developers"
+        ];
+        dependencies = [
+          {
+            name = "proc-macro2";
+            packageId = "proc-macro2";
+          }
+          {
+            name = "quote";
+            packageId = "quote";
+          }
+          {
+            name = "syn";
+            packageId = "syn";
+          }
+          {
+            name = "synstructure";
+            packageId = "synstructure";
+          }
+        ];
+
+      };
+    };
+
+    #
+# crate2nix/default.nix (excerpt start)
+#
+
+  /* Target (platform) data for conditional dependencies.
+    This corresponds roughly to what buildRustCrate is setting.
+  */
+  defaultTarget = {
+    unix = true;
+    windows = false;
+    fuchsia = true;
+    test = false;
+
+    # This doesn't appear to be officially documented anywhere yet.
+    # See https://github.com/rust-lang-nursery/rust-forge/issues/101.
+    os =
+      if stdenv.hostPlatform.isDarwin
+      then "macos"
+      else stdenv.hostPlatform.parsed.kernel.name;
+    arch = stdenv.hostPlatform.parsed.cpu.name;
+    family = "unix";
+    env = "gnu";
+    endian =
+      if stdenv.hostPlatform.parsed.cpu.significantByte.name == "littleEndian"
+      then "little" else "big";
+    pointer_width = toString stdenv.hostPlatform.parsed.cpu.bits;
+    vendor = stdenv.hostPlatform.parsed.vendor.name;
+    debug_assertions = false;
+  };
+
+  /* Filters common temp files and build files. */
+  # TODO(pkolloch): Substitute with gitignore filter
+  sourceFilter = name: type:
+    let
+      baseName = builtins.baseNameOf (builtins.toString name);
+    in
+      ! (
+        # Filter out git
+        baseName == ".gitignore"
+        || (type == "directory" && baseName == ".git")
+
+        # Filter out build results
+        || (
+          type == "directory" && (
+            baseName == "target"
+            || baseName == "_site"
+            || baseName == ".sass-cache"
+            || baseName == ".jekyll-metadata"
+            || baseName == "build-artifacts"
+          )
+        )
+
+        # Filter out nix-build result symlinks
+        || (
+          type == "symlink" && lib.hasPrefix "result" baseName
+        )
+
+        # Filter out IDE config
+        || (
+          type == "directory" && (
+            baseName == ".idea" || baseName == ".vscode"
+          )
+        ) || lib.hasSuffix ".iml" baseName
+
+        # Filter out nix build files
+        || baseName == "Cargo.nix"
+
+        # Filter out editor backup / swap files.
+        || lib.hasSuffix "~" baseName
+        || builtins.match "^\\.sw[a-z]$$" baseName != null
+        || builtins.match "^\\..*\\.sw[a-z]$$" baseName != null
+        || lib.hasSuffix ".tmp" baseName
+        || lib.hasSuffix ".bak" baseName
+        || baseName == "tests.nix"
+      );
+
+  /* Returns a crate which depends on successful test execution
+    of crate given as the second argument.
+
+    testCrateFlags: list of flags to pass to the test exectuable
+    testInputs: list of packages that should be available during test execution
+  */
+  crateWithTest = { crate, testCrate, testCrateFlags, testInputs, testPreRun, testPostRun }:
+    assert builtins.typeOf testCrateFlags == "list";
+    assert builtins.typeOf testInputs == "list";
+    assert builtins.typeOf testPreRun == "string";
+    assert builtins.typeOf testPostRun == "string";
+    let
+      # override the `crate` so that it will build and execute tests instead of
+      # building the actual lib and bin targets We just have to pass `--test`
+      # to rustc and it will do the right thing.  We execute the tests and copy
+      # their log and the test executables to $out for later inspection.
+      test =
+        let
+          drv = testCrate.override
+            (
+              _: {
+                buildTests = true;
+              }
+            );
+          # If the user hasn't set any pre/post commands, we don't want to
+          # insert empty lines. This means that any existing users of crate2nix
+          # don't get a spurious rebuild unless they set these explicitly.
+          testCommand = pkgs.lib.concatStringsSep "\n"
+            (pkgs.lib.filter (s: s != "") [
+              testPreRun
+              "$f $testCrateFlags 2>&1 | tee -a $out"
+              testPostRun
+            ]);
+        in
+        pkgs.runCommand "run-tests-${testCrate.name}"
+          {
+            inherit testCrateFlags;
+            buildInputs = testInputs;
+          } ''
+          set -ex
+
+          export RUST_BACKTRACE=1
+
+          # recreate a file hierarchy as when running tests with cargo
+
+          # the source for test data
+          ${pkgs.xorg.lndir}/bin/lndir ${crate.src}
+
+          # build outputs
+          testRoot=target/debug
+          mkdir -p $testRoot
+
+          # executables of the crate
+          # we copy to prevent std::env::current_exe() to resolve to a store location
+          for i in ${crate}/bin/*; do
+            cp "$i" "$testRoot"
+          done
+          chmod +w -R .
+
+          # test harness executables are suffixed with a hash, like cargo does
+          # this allows to prevent name collision with the main
+          # executables of the crate
+          hash=$(basename $out)
+          for file in ${drv}/tests/*; do
+            f=$testRoot/$(basename $file)-$hash
+            cp $file $f
+            ${testCommand}
+          done
+        '';
+    in
+    pkgs.runCommand "${crate.name}-linked"
+      {
+        inherit (crate) outputs crateName;
+        passthru = (crate.passthru or { }) // {
+          inherit test;
+        };
+      } ''
+      echo tested by ${test}
+      ${lib.concatMapStringsSep "\n" (output: "ln -s ${crate.${output}} ${"$"}${output}") crate.outputs}
+    '';
+
+  /* A restricted overridable version of builtRustCratesWithFeatures. */
+  buildRustCrateWithFeatures =
+    { packageId
+    , features ? rootFeatures
+    , crateOverrides ? defaultCrateOverrides
+    , buildRustCrateForPkgsFunc ? null
+    , runTests ? false
+    , testCrateFlags ? [ ]
+    , testInputs ? [ ]
+      # Any command to run immediatelly before a test is executed.
+    , testPreRun ? ""
+      # Any command run immediatelly after a test is executed.
+    , testPostRun ? ""
+    }:
+    lib.makeOverridable
+      (
+        { features
+        , crateOverrides
+        , runTests
+        , testCrateFlags
+        , testInputs
+        , testPreRun
+        , testPostRun
+        }:
+        let
+          buildRustCrateForPkgsFuncOverriden =
+            if buildRustCrateForPkgsFunc != null
+            then buildRustCrateForPkgsFunc
+            else
+              (
+                if crateOverrides == pkgs.defaultCrateOverrides
+                then buildRustCrateForPkgs
+                else
+                  pkgs: (buildRustCrateForPkgs pkgs).override {
+                    defaultCrateOverrides = crateOverrides;
+                  }
+              );
+          builtRustCrates = builtRustCratesWithFeatures {
+            inherit packageId features;
+            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
+            runTests = false;
+          };
+          builtTestRustCrates = builtRustCratesWithFeatures {
+            inherit packageId features;
+            buildRustCrateForPkgsFunc = buildRustCrateForPkgsFuncOverriden;
+            runTests = true;
+          };
+          drv = builtRustCrates.crates.${packageId};
+          testDrv = builtTestRustCrates.crates.${packageId};
+          derivation =
+            if runTests then
+              crateWithTest
+                {
+                  crate = drv;
+                  testCrate = testDrv;
+                  inherit testCrateFlags testInputs testPreRun testPostRun;
+                }
+            else drv;
+        in
+        derivation
+      )
+      { inherit features crateOverrides runTests testCrateFlags testInputs testPreRun testPostRun; };
+
+  /* Returns an attr set with packageId mapped to the result of buildRustCrateForPkgsFunc
+    for the corresponding crate.
+  */
+  builtRustCratesWithFeatures =
+    { packageId
+    , features
+    , crateConfigs ? crates
+    , buildRustCrateForPkgsFunc
+    , runTests
+    , target ? defaultTarget
+    } @ args:
+      assert (builtins.isAttrs crateConfigs);
+      assert (builtins.isString packageId);
+      assert (builtins.isList features);
+      assert (builtins.isAttrs target);
+      assert (builtins.isBool runTests);
+      let
+        rootPackageId = packageId;
+        mergedFeatures = mergePackageFeatures
+          (
+            args // {
+              inherit rootPackageId;
+              target = target // { test = runTests; };
+            }
+          );
+        # Memoize built packages so that reappearing packages are only built once.
+        builtByPackageIdByPkgs = mkBuiltByPackageIdByPkgs pkgs;
+        mkBuiltByPackageIdByPkgs = pkgs:
+          let
+            self = {
+              crates = lib.mapAttrs (packageId: value: buildByPackageIdForPkgsImpl self pkgs packageId) crateConfigs;
+              build = mkBuiltByPackageIdByPkgs pkgs.buildPackages;
+            };
+          in
+          self;
+        buildByPackageIdForPkgsImpl = self: pkgs: packageId:
+          let
+            features = mergedFeatures."${packageId}" or [ ];
+            crateConfig' = crateConfigs."${packageId}";
+            crateConfig =
+              builtins.removeAttrs crateConfig' [ "resolvedDefaultFeatures" "devDependencies" ];
+            devDependencies =
+              lib.optionals
+                (runTests && packageId == rootPackageId)
+                (crateConfig'.devDependencies or [ ]);
+            dependencies =
+              dependencyDerivations {
+                inherit features target;
+                buildByPackageId = depPackageId:
+                  # proc_macro crates must be compiled for the build architecture
+                  if crateConfigs.${depPackageId}.procMacro or false
+                  then self.build.crates.${depPackageId}
+                  else self.crates.${depPackageId};
+                dependencies =
+                  (crateConfig.dependencies or [ ])
+                  ++ devDependencies;
+              };
+            buildDependencies =
+              dependencyDerivations {
+                inherit features target;
+                buildByPackageId = depPackageId:
+                  self.build.crates.${depPackageId};
+                dependencies = crateConfig.buildDependencies or [ ];
+              };
+            filterEnabledDependenciesForThis = dependencies: filterEnabledDependencies {
+              inherit dependencies features target;
+            };
+            dependenciesWithRenames =
+              lib.filter (d: d ? "rename")
+                (
+                  filterEnabledDependenciesForThis
+                    (
+                      (crateConfig.buildDependencies or [ ])
+                      ++ (crateConfig.dependencies or [ ])
+                      ++ devDependencies
+                    )
+                );
+            # Crate renames have the form:
+            #
+            # {
+            #    crate_name = [
+            #       { version = "1.2.3"; rename = "crate_name01"; }
+            #    ];
+            #    # ...
+            # }
+            crateRenames =
+              let
+                grouped =
+                  lib.groupBy
+                    (dependency: dependency.name)
+                    dependenciesWithRenames;
+                versionAndRename = dep:
+                  let
+                    package = crateConfigs."${dep.packageId}";
+                  in
+                  { inherit (dep) rename; version = package.version; };
+              in
+              lib.mapAttrs (name: choices: builtins.map versionAndRename choices) grouped;
+          in
+          buildRustCrateForPkgsFunc pkgs
+            (
+              crateConfig // {
+                src = crateConfig.src or (
+                  pkgs.fetchurl rec {
+                    name = "${crateConfig.crateName}-${crateConfig.version}.tar.gz";
+                    # https://www.pietroalbini.org/blog/downloading-crates-io/
+                    # Not rate-limited, CDN URL.
+                    url = "https://static.crates.io/crates/${crateConfig.crateName}/${crateConfig.crateName}-${crateConfig.version}.crate";
+                    sha256 =
+                      assert (lib.assertMsg (crateConfig ? sha256) "Missing sha256 for ${name}");
+                      crateConfig.sha256;
+                  }
+                );
+                extraRustcOpts = lib.lists.optional (targetFeatures != [ ]) "-C target-feature=${lib.concatMapStringsSep "," (x: "+${x}") targetFeatures}";
+                inherit features dependencies buildDependencies crateRenames release;
+              }
+            );
+      in
+      builtByPackageIdByPkgs;
+
+  /* Returns the actual derivations for the given dependencies. */
+  dependencyDerivations =
+    { buildByPackageId
+    , features
+    , dependencies
+    , target
+    }:
+      assert (builtins.isList features);
+      assert (builtins.isList dependencies);
+      assert (builtins.isAttrs target);
+      let
+        enabledDependencies = filterEnabledDependencies {
+          inherit dependencies features target;
+        };
+        depDerivation = dependency: buildByPackageId dependency.packageId;
+      in
+      map depDerivation enabledDependencies;
+
+  /* Returns a sanitized version of val with all values substituted that cannot
+    be serialized as JSON.
+  */
+  sanitizeForJson = val:
+    if builtins.isAttrs val
+    then lib.mapAttrs (n: v: sanitizeForJson v) val
+    else if builtins.isList val
+    then builtins.map sanitizeForJson val
+    else if builtins.isFunction val
+    then "function"
+    else val;
+
+  /* Returns various tools to debug a crate. */
+  debugCrate = { packageId, target ? defaultTarget }:
+    assert (builtins.isString packageId);
+    let
+      debug = rec {
+        # The built tree as passed to buildRustCrate.
+        buildTree = buildRustCrateWithFeatures {
+          buildRustCrateForPkgsFunc = _: lib.id;
+          inherit packageId;
+        };
+        sanitizedBuildTree = sanitizeForJson buildTree;
+        dependencyTree = sanitizeForJson
+          (
+            buildRustCrateWithFeatures {
+              buildRustCrateForPkgsFunc = _: crate: {
+                "01_crateName" = crate.crateName or false;
+                "02_features" = crate.features or [ ];
+                "03_dependencies" = crate.dependencies or [ ];
+              };
+              inherit packageId;
+            }
+          );
+        mergedPackageFeatures = mergePackageFeatures {
+          features = rootFeatures;
+          inherit packageId target;
+        };
+        diffedDefaultPackageFeatures = diffDefaultPackageFeatures {
+          inherit packageId target;
+        };
+      };
+    in
+    { internal = debug; };
+
+  /* Returns differences between cargo default features and crate2nix default
+    features.
+
+    This is useful for verifying the feature resolution in crate2nix.
+  */
+  diffDefaultPackageFeatures =
+    { crateConfigs ? crates
+    , packageId
+    , target
+    }:
+      assert (builtins.isAttrs crateConfigs);
+      let
+        prefixValues = prefix: lib.mapAttrs (n: v: { "${prefix}" = v; });
+        mergedFeatures =
+          prefixValues
+            "crate2nix"
+            (mergePackageFeatures { inherit crateConfigs packageId target; features = [ "default" ]; });
+        configs = prefixValues "cargo" crateConfigs;
+        combined = lib.foldAttrs (a: b: a // b) { } [ mergedFeatures configs ];
+        onlyInCargo =
+          builtins.attrNames
+            (lib.filterAttrs (n: v: !(v ? "crate2nix") && (v ? "cargo")) combined);
+        onlyInCrate2Nix =
+          builtins.attrNames
+            (lib.filterAttrs (n: v: (v ? "crate2nix") && !(v ? "cargo")) combined);
+        differentFeatures = lib.filterAttrs
+          (
+            n: v:
+              (v ? "crate2nix")
+              && (v ? "cargo")
+              && (v.crate2nix.features or [ ]) != (v."cargo".resolved_default_features or [ ])
+          )
+          combined;
+      in
+      builtins.toJSON {
+        inherit onlyInCargo onlyInCrate2Nix differentFeatures;
+      };
+
+  /* Returns an attrset mapping packageId to the list of enabled features.
+
+    If multiple paths to a dependency enable different features, the
+    corresponding feature sets are merged. Features in rust are additive.
+  */
+  mergePackageFeatures =
+    { crateConfigs ? crates
+    , packageId
+    , rootPackageId ? packageId
+    , features ? rootFeatures
+    , dependencyPath ? [ crates.${packageId}.crateName ]
+    , featuresByPackageId ? { }
+    , target
+      # Adds devDependencies to the crate with rootPackageId.
+    , runTests ? false
+    , ...
+    } @ args:
+      assert (builtins.isAttrs crateConfigs);
+      assert (builtins.isString packageId);
+      assert (builtins.isString rootPackageId);
+      assert (builtins.isList features);
+      assert (builtins.isList dependencyPath);
+      assert (builtins.isAttrs featuresByPackageId);
+      assert (builtins.isAttrs target);
+      assert (builtins.isBool runTests);
+      let
+        crateConfig = crateConfigs."${packageId}" or (builtins.throw "Package not found: ${packageId}");
+        expandedFeatures = expandFeatures (crateConfig.features or { }) features;
+        enabledFeatures = enableFeatures (crateConfig.dependencies or [ ]) expandedFeatures;
+        depWithResolvedFeatures = dependency:
+          let
+            packageId = dependency.packageId;
+            features = dependencyFeatures enabledFeatures dependency;
+          in
+          { inherit packageId features; };
+        resolveDependencies = cache: path: dependencies:
+          assert (builtins.isAttrs cache);
+          assert (builtins.isList dependencies);
+          let
+            enabledDependencies = filterEnabledDependencies {
+              inherit dependencies target;
+              features = enabledFeatures;
+            };
+            directDependencies = map depWithResolvedFeatures enabledDependencies;
+            foldOverCache = op: lib.foldl op cache directDependencies;
+          in
+          foldOverCache
+            (
+              cache: { packageId, features }:
+                let
+                  cacheFeatures = cache.${packageId} or [ ];
+                  combinedFeatures = sortedUnique (cacheFeatures ++ features);
+                in
+                if cache ? ${packageId} && cache.${packageId} == combinedFeatures
+                then cache
+                else
+                  mergePackageFeatures {
+                    features = combinedFeatures;
+                    featuresByPackageId = cache;
+                    inherit crateConfigs packageId target runTests rootPackageId;
+                  }
+            );
+        cacheWithSelf =
+          let
+            cacheFeatures = featuresByPackageId.${packageId} or [ ];
+            combinedFeatures = sortedUnique (cacheFeatures ++ enabledFeatures);
+          in
+          featuresByPackageId // {
+            "${packageId}" = combinedFeatures;
+          };
+        cacheWithDependencies =
+          resolveDependencies cacheWithSelf "dep"
+            (
+              crateConfig.dependencies or [ ]
+              ++ lib.optionals
+                (runTests && packageId == rootPackageId)
+                (crateConfig.devDependencies or [ ])
+            );
+        cacheWithAll =
+          resolveDependencies
+            cacheWithDependencies "build"
+            (crateConfig.buildDependencies or [ ]);
+      in
+      cacheWithAll;
+
+  /* Returns the enabled dependencies given the enabled features. */
+  filterEnabledDependencies = { dependencies, features, target }:
+    assert (builtins.isList dependencies);
+    assert (builtins.isList features);
+    assert (builtins.isAttrs target);
+
+    lib.filter
+      (
+        dep:
+        let
+          targetFunc = dep.target or (features: true);
+        in
+        targetFunc { inherit features target; }
+        && (
+          !(dep.optional or false)
+          || builtins.any (doesFeatureEnableDependency dep) features
+        )
+      )
+      dependencies;
+
+  /* Returns whether the given feature should enable the given dependency. */
+  doesFeatureEnableDependency = dependency: feature:
+    let
+      name = dependency.rename or dependency.name;
+      prefix = "${name}/";
+      len = builtins.stringLength prefix;
+      startsWithPrefix = builtins.substring 0 len feature == prefix;
+    in
+    feature == name || startsWithPrefix;
+
+  /* Returns the expanded features for the given inputFeatures by applying the
+    rules in featureMap.
+
+    featureMap is an attribute set which maps feature names to lists of further
+    feature names to enable in case this feature is selected.
+  */
+  expandFeatures = featureMap: inputFeatures:
+    assert (builtins.isAttrs featureMap);
+    assert (builtins.isList inputFeatures);
+    let
+      expandFeature = feature:
+        assert (builtins.isString feature);
+        [ feature ] ++ (expandFeatures featureMap (featureMap."${feature}" or [ ]));
+      outFeatures = lib.concatMap expandFeature inputFeatures;
+    in
+    sortedUnique outFeatures;
+
+  /* This function adds optional dependencies as features if they are enabled
+    indirectly by dependency features. This function mimics Cargo's behavior
+    described in a note at:
+    https://doc.rust-lang.org/nightly/cargo/reference/features.html#dependency-features
+  */
+  enableFeatures = dependencies: features:
+    assert (builtins.isList features);
+    assert (builtins.isList dependencies);
+    let
+      additionalFeatures = lib.concatMap
+        (
+          dependency:
+            assert (builtins.isAttrs dependency);
+            let
+              enabled = builtins.any (doesFeatureEnableDependency dependency) features;
+            in
+            if (dependency.optional or false) && enabled
+            then [ (dependency.rename or dependency.name) ]
+            else [ ]
+        )
+        dependencies;
+    in
+    sortedUnique (features ++ additionalFeatures);
+
+  /*
+    Returns the actual features for the given dependency.
+
+    features: The features of the crate that refers this dependency.
+  */
+  dependencyFeatures = features: dependency:
+    assert (builtins.isList features);
+    assert (builtins.isAttrs dependency);
+    let
+      defaultOrNil =
+        if dependency.usesDefaultFeatures or true
+        then [ "default" ]
+        else [ ];
+      explicitFeatures = dependency.features or [ ];
+      additionalDependencyFeatures =
+        let
+          dependencyPrefix = (dependency.rename or dependency.name) + "/";
+          dependencyFeatures =
+            builtins.filter (f: lib.hasPrefix dependencyPrefix f) features;
+        in
+        builtins.map (lib.removePrefix dependencyPrefix) dependencyFeatures;
+    in
+    defaultOrNil ++ explicitFeatures ++ additionalDependencyFeatures;
+
+  /* Sorts and removes duplicates from a list of strings. */
+  sortedUnique = features:
+    assert (builtins.isList features);
+    assert (builtins.all builtins.isString features);
+    let
+      outFeaturesSet = lib.foldl (set: feature: set // { "${feature}" = 1; }) { } features;
+      outFeaturesUnique = builtins.attrNames outFeaturesSet;
+    in
+    builtins.sort (a: b: a < b) outFeaturesUnique;
+
+  deprecationWarning = message: value:
+    if strictDeprecation
+    then builtins.throw "strictDeprecation enabled, aborting: ${message}"
+    else builtins.trace message value;
+
+  #
+  # crate2nix/default.nix (excerpt end)
+  #
+  };
+}
+
diff --git a/pkgs/build-support/src-only/default.nix b/pkgs/build-support/src-only/default.nix
index c721fdf40c69a..143166cfadd77 100644
--- a/pkgs/build-support/src-only/default.nix
+++ b/pkgs/build-support/src-only/default.nix
@@ -7,25 +7,13 @@
 #
 # > srcOnly pkgs.hello
 #
-{ name
-, src
-, stdenv ? orig.stdenv
-, patches ? []
-, # deprecated, use the nativeBuildInputs
-  buildInputs ? []
-, # used to pass extra unpackers
-  nativeBuildInputs ? []
-, # needed when passing an existing derivation
-  ...
-}:
-stdenv.mkDerivation {
-  inherit
-    buildInputs
-    name
-    nativeBuildInputs
-    patches
-    src
-    ;
+attrs:
+let
+  args = if builtins.hasAttr "drvAttrs" attrs then attrs.drvAttrs else attrs;
+  name = if builtins.hasAttr "name" args then args.name else "${args.pname}-${args.version}";
+in
+stdenv.mkDerivation (args // {
+  name = "${name}-source";
   installPhase = "cp -r . $out";
   phases = ["unpackPhase" "patchPhase" "installPhase"];
-}
+})
diff --git a/pkgs/data/documentation/execline-man-pages/default.nix b/pkgs/data/documentation/execline-man-pages/default.nix
index 1a9d9a87ab921..929ba80d4e890 100644
--- a/pkgs/data/documentation/execline-man-pages/default.nix
+++ b/pkgs/data/documentation/execline-man-pages/default.nix
@@ -2,8 +2,8 @@
 
 buildManPages {
   pname = "execline-man-pages";
-  version = "2.8.1.0.4";
-  sha256 = "1cxi09dlzvjbilmzgmr3xvwvx0l3s1874k3gr85kbjnvp1c1r6cd";
+  version = "2.8.3.0.2";
+  sha256 = "0fzv5as81aqgl8llbz8c5bk5n56iyh4g70r54wmj71rh2d1pihk5";
   description = "Port of the documentation for the execline suite to mdoc";
   maintainers = [ lib.maintainers.sternenseemann ];
 }
diff --git a/pkgs/data/documentation/scheme-manpages/default.nix b/pkgs/data/documentation/scheme-manpages/default.nix
index aaa7007d02624..cfc16e932c78f 100644
--- a/pkgs/data/documentation/scheme-manpages/default.nix
+++ b/pkgs/data/documentation/scheme-manpages/default.nix
@@ -1,14 +1,14 @@
 { lib, stdenv, fetchFromGitHub }:
 
 stdenv.mkDerivation rec {
-  pname = "scheme-manpages-unstable";
-  version = "2022-04-21";
+  pname = "scheme-manpages";
+  version = "unstable-2022-05-14";
 
   src = fetchFromGitHub {
     owner = "schemedoc";
     repo = "manpages";
-    rev = "e3faaa1b80b3493ee644958a105f84f2995a0436";
-    sha256 = "sha256-28e6tFRTqX/PWMhdoUZ4nQU1e/JL2uR+NjVXGBwogMM=";
+    rev = "e4d8e389312a865e350ef88f3e9d69be290705c7";
+    sha256 = "sha256-bYg8XSycbQIaZDsE0G5Xy0bd2JNWHwYEnyL6ThN7XS4=";
   };
 
   dontBuild = true;
diff --git a/pkgs/data/fonts/unifont/default.nix b/pkgs/data/fonts/unifont/default.nix
index 808d96ce446d2..b8a7809646618 100644
--- a/pkgs/data/fonts/unifont/default.nix
+++ b/pkgs/data/fonts/unifont/default.nix
@@ -4,16 +4,16 @@
 
 stdenv.mkDerivation rec {
   pname = "unifont";
-  version = "14.0.03";
+  version = "14.0.04";
 
   ttf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.ttf";
-    sha256 = "1qyc7nqyhjnarwgpkah52qv7hr0yfzak7084ilrj7z0nii4f5y57";
+    hash = "sha256-IR0d3dxWZRHbJUx0bYPfd7ShubJUnN/+Cj6QHkbu/qg=";
   };
 
   pcf = fetchurl {
     url = "mirror://gnu/unifont/${pname}-${version}/${pname}-${version}.pcf.gz";
-    sha256 = "1sgvxpr4ydjnbk70j0lpgxz5x851lmrmxjb5x8lsz0i2hm32jdbc";
+    hash = "sha256-Q5lR7hX4+P+Q9fVDjw9GtLGqUIslsKOWnn8je85fH+0=";
   };
 
   nativeBuildInputs = [ libfaketime fonttosfnt mkfontscale ];
diff --git a/pkgs/data/fonts/unifont_upper/default.nix b/pkgs/data/fonts/unifont_upper/default.nix
index 84a1742b8439f..1020c2f1f1327 100644
--- a/pkgs/data/fonts/unifont_upper/default.nix
+++ b/pkgs/data/fonts/unifont_upper/default.nix
@@ -1,15 +1,19 @@
-{ lib, fetchzip }:
+{ lib, fetchurl }:
 
 let
-  version = "14.0.03";
-in fetchzip rec {
+  version = "14.0.04";
+in fetchurl rec {
   name = "unifont_upper-${version}";
 
   url = "mirror://gnu/unifont/unifont-${version}/${name}.ttf";
 
+  downloadToTemp = true;
+
+  recursiveHash = true;
+
   postFetch = "install -Dm644 $downloadedFile $out/share/fonts/truetype/unifont_upper.ttf";
 
-  sha256 = "1lwx7syb9ij4dlqiiybp6xgvar2sszxphvaqh64vivzj9gp0g0ai";
+  hash = "sha256-cNw+3Y/6h2TD6ZSaGO32NNyiTwCUSJsA3Q5W5/m+eLE=";
 
   meta = with lib; {
     description = "Unicode font for glyphs above the Unicode Basic Multilingual Plane";
diff --git a/pkgs/data/fonts/victor-mono/default.nix b/pkgs/data/fonts/victor-mono/default.nix
index 45873e1b7f96c..11d3f1d25baef 100644
--- a/pkgs/data/fonts/victor-mono/default.nix
+++ b/pkgs/data/fonts/victor-mono/default.nix
@@ -1,10 +1,11 @@
 { lib, fetchzip }:
 
 let
-  version = "1.5.2";
+  version = "1.5.3";
 in
 fetchzip {
   name = "victor-mono-${version}";
+  stripRoot = false;
 
   # Upstream prefers we download from the website,
   # but we really insist on a more versioned resource.
@@ -16,12 +17,15 @@ fetchzip {
   url = "https://github.com/rubjo/victor-mono/raw/v${version}/public/VictorMonoAll.zip";
 
   postFetch = ''
-    mkdir -p $out/share/fonts/
-    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
-    unzip -j $downloadedFile \*.ttf -d $out/share/fonts/truetype
+    mkdir -p "$out/share/fonts/"
+
+    mv $out/OTF $out/share/fonts/opentype
+    mv $out/TTF $out/share/fonts/truetype
+
+    rm -r $out/{EOT,WOFF,WOFF2}
   '';
 
-  sha256 = "sha256-cNDZh0P/enmoKL/6eHzkgl5ghtai2K9cTgWMVmm8GIA=";
+  sha256 = "sha256-3TGpUDBJ24NEJb00oaJAHEbjC58bSthohzqM1klVDGA=";
 
   meta = with lib; {
     description = "Free programming font with cursive italics and ligatures";
diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix
index 9b0a2537f6311..6c764912f4096 100644
--- a/pkgs/data/icons/papirus-icon-theme/default.nix
+++ b/pkgs/data/icons/papirus-icon-theme/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "papirus-icon-theme";
-  version = "20220302";
+  version = "20220606";
 
   src = fetchFromGitHub {
     owner = "PapirusDevelopmentTeam";
     repo = pname;
     rev = version;
-    sha256 = "sha256-X92an2jGRgZ/Q3cr6Q729DA2hs/2y34HoRpB1rxk0hI=";
+    sha256 = "sha256-HJb77ArzwMX9ZYTp0Ffxxtst1/xhPAa+eEP5n950DSs=";
   };
 
   nativeBuildInputs = [ gtk3 ];
diff --git a/pkgs/data/misc/hackage/pin.json b/pkgs/data/misc/hackage/pin.json
index 6002f4fc89d45..d3d11e13385ba 100644
--- a/pkgs/data/misc/hackage/pin.json
+++ b/pkgs/data/misc/hackage/pin.json
@@ -1,6 +1,6 @@
 {
-  "commit": "a4be9679c308459b390768e6195f3f08ae5366db",
-  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/a4be9679c308459b390768e6195f3f08ae5366db.tar.gz",
-  "sha256": "09pr3ag0k1wjiih36p902gcpygxg8f7wqpr5g8j7ka851g0gckqa",
-  "msg": "Update from Hackage at 2022-06-04T09:01:11Z"
+  "commit": "c87d8bf669c0f5da46e44dece7a851e2f9d8c3e9",
+  "url": "https://github.com/commercialhaskell/all-cabal-hashes/archive/c87d8bf669c0f5da46e44dece7a851e2f9d8c3e9.tar.gz",
+  "sha256": "0m1ahg2knm136g2gr66asicsqcy9n80lmszs70nkz550ll51vq8v",
+  "msg": "Update from Hackage at 2022-06-23T03:01:47Z"
 }
diff --git a/pkgs/data/misc/mailcap/default.nix b/pkgs/data/misc/mailcap/default.nix
index 3519b01f54ba0..06c8047e1cab2 100644
--- a/pkgs/data/misc/mailcap/default.nix
+++ b/pkgs/data/misc/mailcap/default.nix
@@ -1,23 +1,25 @@
-{ lib, fetchzip }:
+{ lib, stdenv, fetchurl }:
 
-let
+stdenv.mkDerivation rec {
+  pname = "mailcap";
   version = "2.1.53";
 
-in fetchzip {
-  name = "mailcap-${version}";
+  src = fetchurl {
+    url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
+    sha256 = "sha256-Xuou8XswSXe6PsuHr61DGfoEQPgl5Pb7puj6L/64h4U=";
+  };
 
-  url = "https://releases.pagure.org/mailcap/mailcap-${version}.tar.xz";
-  sha256 = "sha256-6JPj2tZgoTEZ8hNEi9ZZhElBNm9SRTSXifMmCicwiLo=";
+  installPhase = ''
+    runHook preInstall
 
-  postFetch = ''
-    tar -xavf $downloadedFile --strip-components=1
     substituteInPlace mailcap --replace "/usr/bin/" ""
-    gzip mailcap.5
     sh generate-nginx-mimetypes.sh < mime.types > nginx-mime.types
 
     install -D -m0644 nginx-mime.types $out/etc/nginx/mime.types
     install -D -m0644 -t $out/etc mailcap mime.types
-    install -D -m0644 -t $out/share/man/man5 mailcap.5.gz
+    install -D -m0644 -t $out/share/man/man5 mailcap.5
+
+    runHook postInstall
   '';
 
   meta = with lib; {
diff --git a/pkgs/data/misc/mobile-broadband-provider-info/default.nix b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
index 234016175d260..8f5ce0d02025f 100644
--- a/pkgs/data/misc/mobile-broadband-provider-info/default.nix
+++ b/pkgs/data/misc/mobile-broadband-provider-info/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "mobile-broadband-provider-info";
-  version = "20220315";
+  version = "20220511";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-H82sctF52xQnl4Nm9wG+HDx1Nf1aZYvFzIKCR8b2RcY=";
+    sha256 = "sha256-dfk+iGZh8DWYMsPigjyvqG505AgEJbjOCpw7DQqyp3Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/data/misc/v2ray-domain-list-community/default.nix b/pkgs/data/misc/v2ray-domain-list-community/default.nix
index 5e84f479d21bf..a5bbb2b5c013b 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 = "20220528180904";
+    version = "20220624025859";
     src = fetchFromGitHub {
       owner = "v2fly";
       repo = "domain-list-community";
       rev = version;
-      sha256 = "sha256-j1Q7B/U0OADOcgJRJ269Jx9Z5dmmT4T2eaOHeGmUjmc=";
+      sha256 = "sha256-/4wfTtRsBzOCbx3I3H28tB935xDZPPwHOFFmjiV7kEI=";
     };
     vendorSha256 = "sha256-Igx8yGWWVmVEogvbrosaK13LVs+ZZuYLBNji7iSfzdo=";
     meta = with lib; {
diff --git a/pkgs/data/misc/v2ray-geoip/default.nix b/pkgs/data/misc/v2ray-geoip/default.nix
index a6954100d547d..e4ab5df758421 100644
--- a/pkgs/data/misc/v2ray-geoip/default.nix
+++ b/pkgs/data/misc/v2ray-geoip/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "v2ray-geoip";
-  version = "202205260055";
+  version = "202206230045";
 
   src = fetchFromGitHub {
     owner = "v2fly";
     repo = "geoip";
-    rev = "96f4639373709f7560ccaf374d1ff008781aa324";
-    sha256 = "sha256-aFTLeYr+JishhJ2AhGMrD02fKxci2rREkh8HN9HtXLs=";
+    rev = "2e2aba7f3dfb4139e8a882f85350045f2ef522d1";
+    sha256 = "sha256-WFvS51RmkAWivYj0HFAT6S3euJk+GSYLDTN3cmkcCNs=";
   };
 
   installPhase = ''
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 b77c136e4067f..3d0c298cadae7 100644
--- a/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
+++ b/pkgs/data/themes/kwin-decorations/kde-rounded-corners/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "kde-rounded-corners";
-  version = "0.1.1";
+  version = "unstable-2022-06-17";
 
   src = fetchFromGitHub {
     owner = "matinlotfali";
     repo = "KDE-Rounded-Corners";
-    rev = "v${version}";
-    hash = "sha256-cXpJabeOHnat7OljtRzduUdOaA6Z3z6vV3aBKwiIrR0=";
+    rev = "015ef5cd65e9ec89e4a1ae057f2251eda03715e2";
+    hash = "sha256-NJ7icavofSUPPww1Ro7p0yY2EQ78S4KVCuj9yPuYwd8=";
   };
 
   postConfigure = ''
diff --git a/pkgs/data/themes/matcha/default.nix b/pkgs/data/themes/matcha/default.nix
index 4d59a03313a4f..dcf6988f5939e 100644
--- a/pkgs/data/themes/matcha/default.nix
+++ b/pkgs/data/themes/matcha/default.nix
@@ -1,33 +1,50 @@
-{ lib, stdenv, fetchFromGitHub, gdk-pixbuf, librsvg, gtk-engine-murrine }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, gdk-pixbuf
+, gtk-engine-murrine
+, librsvg
+, gitUpdater
+}:
 
 stdenv.mkDerivation rec {
   pname = "matcha-gtk-theme";
-  version = "2021-12-25";
+  version = "2022-06-07";
 
   src = fetchFromGitHub {
     owner = "vinceliuice";
     repo = pname;
     rev = version;
-    sha256 = "1wgq1aypm4cjv7yavlfmqcwahlddvh2gbg2f5ca0djgnpy9vha1g";
+    sha256 = "26xa9EGo2hci08Zw+X/A0Pn0VHxU8yfvRMiRusml+tc=";
   };
 
-  buildInputs = [ gdk-pixbuf librsvg ];
+  buildInputs = [
+    gdk-pixbuf
+    librsvg
+  ];
 
-  propagatedUserEnvPkgs = [ gtk-engine-murrine ];
+  propagatedUserEnvPkgs = [
+    gtk-engine-murrine
+  ];
+
+  postPatch = ''
+    patchShebangs install.sh
+  '';
 
   installPhase = ''
     runHook preInstall
-    patchShebangs .
     mkdir -p $out/share/themes
-    name= ./install.sh -d $out/share/themes
+    name= ./install.sh --dest $out/share/themes
     install -D -t $out/share/gtksourceview-3.0/styles src/extra/gedit/matcha.xml
     mkdir -p $out/share/doc/${pname}
     cp -a src/extra/firefox $out/share/doc/${pname}
     runHook postInstall
   '';
 
+  passthru.updateScript = gitUpdater {inherit pname version; };
+
   meta = with lib; {
-    description = "A stylish flat design theme for GTK based desktop environments";
+    description = "A 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/mojave/default.nix b/pkgs/data/themes/mojave/default.nix
index e8e98ab0ebfef..4fc9b0ab8c024 100644
--- a/pkgs/data/themes/mojave/default.nix
+++ b/pkgs/data/themes/mojave/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , fetchurl
 , glib
+, gnome-shell
 , gtk-engine-murrine
 , gtk_engines
 , inkscape
@@ -30,14 +31,14 @@ lib.checkListOfEnum "${pname}: theme variants" [ "default" "blue" "purple" "pink
 
 stdenv.mkDerivation rec {
   inherit pname;
-  version = "2022-05-12";
+  version = "2022-06-07";
 
   srcs = [
     (fetchFromGitHub {
       owner = "vinceliuice";
       repo = pname;
       rev = version;
-      sha256 = "sha256-VrrxW16J+S21qBoAeVCWs0Q6bRL1jXAK7MOBpdSMJZY=";
+      sha256 = "sha256-OEqB2PSZ5KoxXAUhlyT1PRUzckVz+jTCIoAqP8gVqTk=";
     })
   ]
   ++
@@ -52,6 +53,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     glib
+    gnome-shell
     inkscape
     jdupes
     optipng
@@ -72,7 +74,10 @@ stdenv.mkDerivation rec {
   dontRewriteSymlinks = true;
 
   postPatch = ''
-    patchShebangs .
+    patchShebangs \
+      install.sh \
+      src/main/gtk-3.0/make_gresource_xml.sh \
+      src/main/gtk-4.0/make_gresource_xml.sh
 
     for f in \
       render-assets.sh \
@@ -87,6 +92,7 @@ stdenv.mkDerivation rec {
       src/assets/metacity-1/render-assets.sh \
       src/assets/xfwm4/render-assets.sh
     do
+      patchShebangs $f
       substituteInPlace $f \
         --replace /usr/bin/inkscape ${inkscape}/bin/inkscape \
         --replace /usr/bin/optipng ${optipng}/bin/optipng
diff --git a/pkgs/data/themes/nordic/default.nix b/pkgs/data/themes/nordic/default.nix
index d250de15ca9a0..c29bb69bf7b10 100644
--- a/pkgs/data/themes/nordic/default.nix
+++ b/pkgs/data/themes/nordic/default.nix
@@ -7,70 +7,70 @@
 
 stdenv.mkDerivation rec {
   pname = "nordic";
-  version = "unstable-2022-02-26";
+  version = "unstable-2022-06-21";
 
   srcs = [
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "0da58e462e8ba6c71245d13fbddac950b72018ae";
-      sha256 = "sha256-w7e3DqQV4L/OvntKHJA4+3Dj6dRnlH73SxvW770QIyU=";
+      rev = "bb5e31ec1488b1fd5641aa10f65f36d8714b5dba";
+      sha256 = "sha256-wTWHdao/1RLqUmqh/9gEyhERGymFWHqiC97JD28LSgk=";
       name = "Nordic";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "9daf11acf3419e2f23d0993ce862a1c944fb8519";
-      sha256 = "sha256-zGgw6THLX7q19BDsllPUrWqQcL6FYAewcyqjQdXzLzg=";
+      rev = "e1fb044a14b5c7fe1f6c2de42bfb5fdfb1448415";
+      sha256 = "sha256-oWwc+bzeAf0NoYfA2r2oGpeciVUWFC7yJzlUAYfpdTY=";
       name = "Nordic-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "a40819bd00160f987cdf254ce8c34eabebecf0eb";
-      sha256 = "sha256-rSNLdxTfvzTFzI5723WIGRS+NZ8iqUOUliDpkznZrwE=";
+      rev = "4c7c9f2d670a6f0c9cff1ec31fab67c826fdcc0f";
+      sha256 = "sha256-txKClsygX2IUGF8oOG6gDY6Y3v28kJthjdPrPEOZarQ=";
       name = "Nordic-darker";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "4e69cf6e1798938ab7c5795940c663d866ce8201";
-      sha256 = "sha256-p8VaKeKxEiYX4oVqWoyschAq0j/LvPq9yD/awaHKRZw=";
+      rev = "8abe28ff07c190b8c343aacb6a0ce58e62abbd74";
+      sha256 = "sha256-tk9VZtwpIuBcWu1ERJLnlhM71pkrNEUzu8PDb+IEnpw=";
       name = "Nordic-darker-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "866629583187b914725f05683125fde7f6c280f1";
-      sha256 = "sha256-TQ4G5W87zpTrLU+f+eb5VHwaWuKSbItXCgXSL33U8As=";
+      rev = "9764e0f1af100731f77bf7f15792639d0032e5ed";
+      sha256 = "sha256-3vxrbxUhPj6PKWpjyCruhFxYz9nPfo1DHferYUD7enU=";
       name = "Nordic-bluish-accent";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = pname;
-      rev = "f3702ae02e3caaf74eab0ef9156af9f2a476021b";
-      sha256 = "sha256-drXRfZxCrH2vAXjZSAjWEHcQrehxnM0WLkgbh+cFJhI=";
+      rev = "407316a3fd5e07d183474aea4cae28bb958afa6c";
+      sha256 = "sha256-SvLTqDXjy8c4rZo0cZ83kfuiGd2+hyGvwILxVCz65jQ=";
       name = "Nordic-bluish-accent-standard-buttons";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "4cf3e5c30ebd17a3d53ab0337c191e304feff7b5";
-      sha256 = "sha256-LTCJ7AyABQDTDkjuqcXaKXePFwOpmXeKaW2mWYah4ao=";
+      rev = "1ffa167c4807e4b22e0934aee41403721877bc56";
+      sha256 = "sha256-Xat5YWnxTBnvnUfs1o5EhdmDezmOXtqry97Yc8O+WYM=";
       name = "Nordic-Polar";
     })
 
     (fetchFromGitHub {
       owner = "EliverLara";
       repo = "${pname}-polar";
-      rev = "72cbd567212b21ea20769fe244c148f799435536";
-      sha256 = "sha256-qNIyr+Eo0dzPVh9PxDCHv0e6pswACbf9nLhAG75YEYc=";
+      rev = "9bc68223edf7ad9dc83032d7d51ccc53f9440337";
+      sha256 = "sha256-XjGjijBky/iPcoUGDRrwwoZ5f2gbLchmQizkQN+Opjg=";
       name = "Nordic-Polar-standard-buttons";
     })
   ];
diff --git a/pkgs/data/themes/plasma-overdose-kde-theme/default.nix b/pkgs/data/themes/plasma-overdose-kde-theme/default.nix
new file mode 100644
index 0000000000000..dc80c669804a3
--- /dev/null
+++ b/pkgs/data/themes/plasma-overdose-kde-theme/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "plasma-overdose-kde-theme";
+  version = "unstable-2022-05-30";
+
+  src = fetchFromGitHub {
+    owner = "Notify-ctrl";
+    repo = "Plasma-Overdose";
+    rev = "d8bf078b4819885d590db27cd1d25d8f4f08fe4c";
+    sha256 = "187f6rlvb2wf5sj3mgr69mfwh9fpqchw4yg6nzv54l98msmxc4h0";
+  };
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/share
+    mv colorschemes $out/share/color-schemes
+    mv plasma $out/share/plasma
+
+    mkdir -p $out/share/aurorae
+    mv aurorae $out/share/aurorae/themes
+
+    mkdir -p $out/share/icons/Plasma-Overdose
+    mv cursors/index.theme $out/share/icons/Plasma-Overdose/cursor.theme
+    mv cursors/cursors $out/share/icons/Plasma-Overdose/cursors
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Cute KDE theme inspired by the game Needy Girl Overdose";
+    homepage = "https://github.com/Notify-ctrl/Plasma-Overdose";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ takagiy ];
+  };
+}
diff --git a/pkgs/desktops/gnome/apps/ghex/default.nix b/pkgs/desktops/gnome/apps/ghex/default.nix
index 5a0722af21ced..58659d1748e5c 100644
--- a/pkgs/desktops/gnome/apps/ghex/default.nix
+++ b/pkgs/desktops/gnome/apps/ghex/default.nix
@@ -20,13 +20,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ghex";
-  version = "42.2";
+  version = "42.3";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/ghex/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "Rd6Oa4ofMd5amRC+GMB/CaMo2HU434BAOuxa+IF8ljE=";
+    sha256 = "rdQPirJJIdsw0nvljwAnMgGXfYf9yNeezq36iw41Te8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
index 058984ca7472b..432980300d2d2 100644
--- a/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-calendar/default.nix
@@ -22,11 +22,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-calendar";
-  version = "42.1";
+  version = "42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "0SKBy78a+GxyN1/mrZNG7Q4sLziKHq6FjOzmQGCm66g=";
+    sha256 = "rnzGOq6WoCqlmbbWo0hYX0529ylTbznvt0QwKwW1+70=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
index f14c57cde69c6..faf32952cfc27 100644
--- a/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-text-editor/default.nix
@@ -23,11 +23,11 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-text-editor";
-  version = "42.1";
+  version = "42.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/gnome-text-editor/${lib.versions.major version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-o8hQgDO/tjqLSKBirB5nssMzugFTh5s4xmGWihA60Vw=";
+    sha256 = "sha256-5W1KjNy86KjxwIgbRd55n4slIF7Ay/ImnlMgJXYcxdo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/apps/gnome-todo/default.nix b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
index e9331c08993c0..582a0772a6804 100644
--- a/pkgs/desktops/gnome/apps/gnome-todo/default.nix
+++ b/pkgs/desktops/gnome/apps/gnome-todo/default.nix
@@ -27,14 +27,14 @@
 
 stdenv.mkDerivation rec {
   pname = "gnome-todo";
-  version = "unstable-2022-05-23";
+  version = "unstable-2022-06-12";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = "gnome-todo";
-    rev = "ac1d540de63e2540b4eb8a642054862b5793b40a";
-    sha256 = "7fJOXQpapQ8RqJq5tJEWjOxnY9qExz5SbYMWFDREQlY=";
+    rev = "ad4e15f0b58860caf8c6d497795b83b594a9c3e5";
+    sha256 = "HRufLoZou9ssQ/qoDG8anhOAtl8IYvFpyjq/XJlsotQ=";
   };
 
   patches = [
diff --git a/pkgs/desktops/gnome/apps/vinagre/default.nix b/pkgs/desktops/gnome/apps/vinagre/default.nix
index 31e198783e04f..9445a5683da9c 100644
--- a/pkgs/desktops/gnome/apps/vinagre/default.nix
+++ b/pkgs/desktops/gnome/apps/vinagre/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl, pkg-config, gtk3, gnome, vte, libxml2, gtk-vnc, intltool
+{ lib, stdenv, fetchurl, fetchpatch, pkg-config, gtk3, gnome, vte, libxml2, gtk-vnc, intltool
 , libsecret, itstool, wrapGAppsHook, librsvg }:
 
 stdenv.mkDerivation rec {
@@ -10,6 +10,16 @@ stdenv.mkDerivation rec {
     sha256 = "cd1cdbacca25c8d1debf847455155ee798c3e67a20903df8b228d4ece5505e82";
   };
 
+  patches = [
+    # Pull fix pending upstream inclusion for -fno-common toolchain support:
+    #   https://gitlab.gnome.org/GNOME/vinagre/-/merge_requests/8
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://gitlab.gnome.org/GNOME/vinagre/-/commit/c51662cf4338516773d64776c3c92796917ff2bd.diff";
+      sha256 = "0zn8cd93hjdz6rw2d7gfl1ghzkc9h0x40k9l0jx3n5qfwdq4sir8";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config intltool itstool wrapGAppsHook ];
   buildInputs = [
     gtk3 vte libxml2 gtk-vnc libsecret gnome.adwaita-icon-theme librsvg
diff --git a/pkgs/desktops/gnome/extensions/collisions.json b/pkgs/desktops/gnome/extensions/collisions.json
index 7d3f120e867f8..ff19563f687c5 100644
--- a/pkgs/desktops/gnome/extensions/collisions.json
+++ b/pkgs/desktops/gnome/extensions/collisions.json
@@ -137,6 +137,10 @@
       "fuzzy-clock@keepawayfromfire.co.uk",
       "FuzzyClock@johngoetz"
     ],
+    "panel-date-format": [
+      "panel-date-format@keiii.github.com",
+      "panel-date-format@atareao.es"
+    ],
     "disable-unredirect-fullscreen-windows": [
       "unredirect@vaina.lt",
       "unredirect@aunetx"
@@ -167,6 +171,10 @@
       "lockkeys@vaina.lt",
       "lockkeys@fawtytoo"
     ],
+    "panel-date-format": [
+      "panel-date-format@keiii.github.com",
+      "panel-date-format@atareao.es"
+    ],
     "wireguard-indicator": [
       "wireguard-indicator@gregos.me",
       "wireguard-indicator@atareao.es"
diff --git a/pkgs/desktops/gnome/extensions/extensionRenames.nix b/pkgs/desktops/gnome/extensions/extensionRenames.nix
index fdf82456d0d0e..2ace8a4d0bf42 100644
--- a/pkgs/desktops/gnome/extensions/extensionRenames.nix
+++ b/pkgs/desktops/gnome/extensions/extensionRenames.nix
@@ -12,6 +12,9 @@
   "lockkeys@vaina.lt" = "lock-keys";
   "lockkeys@fawtytoo" = "lock-keys-2";
 
+  "panel-date-format@keiii.github.com" = "panel-date-format";
+  "panel-date-format@atareao.es" = "panel-date-format-2";
+
   "volume_scroller@trflynn89.pm.me" = "volume-scroller";
   "volume_scroller@noskoski" = "volume-scroller-2";
 
@@ -57,9 +60,6 @@
   "SomaFm-Radio@alireza6677.gmail.com" = "somafm-internet-radio";
   "SomaFm-Radio@cajhne.gmail.com" = "somafm-internet-radio-2";
 
-  "panel-date-format@keiii.github.com" = "panel-date-format";
-  "panel-date-format@atareao.es" = "panel-date-format-2";
-
   "extension-list@tu.berry" = "extension-list";
   "screen-lock@garciabaameiro.com" = "screen-lock"; # Don't know why they got 'extension-list' as slug
 
diff --git a/pkgs/desktops/gnome/extensions/extensions.json b/pkgs/desktops/gnome/extensions/extensions.json
index 102033cfc7a5d..c097199027427 100644
--- a/pkgs/desktops/gnome/extensions/extensions.json
+++ b/pkgs/desktops/gnome/extensions/extensions.json
@@ -1,5 +1,5 @@
 [ {"uuid": "Move_Clock@rmy.pobox.com", "name": "Frippery Move Clock", "pname": "move-clock", "description": "Move clock to left of status menu button", "link": "https://extensions.gnome.org/extension/2/move-clock/", "shell_version_map": {"38": {"version": "22", "sha256": "085ardkmrxz6rzh48frpb5z8mjlilqk037gjr84dr39gj9dkb81z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "41": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}, "42": {"version": "26", "sha256": "0jzqq46q0aykdgjah962azrw6m5h7b3lymdb2w2j0cm8rl9yglgv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgY2xvY2sgdG8gbGVmdCBvZiBzdGF0dXMgbWVudSBidXR0b24iLAogICJuYW1lIjogIkZyaXBwZXJ5IE1vdmUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiTW92ZV9DbG9ja0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDI2Cn0="}}}
-, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "41": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "42": {"version": "60", "sha256": "13mbn63c64prm1amyvvq0p0iabqbax81i1wjb2knqiqy0lw8h523", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA2MAp9"}}}
+, {"uuid": "Bottom_Panel@rmy.pobox.com", "name": "Frippery Bottom Panel", "pname": "bottom-panel", "description": "Add a bottom panel to the shell", "link": "https://extensions.gnome.org/extension/3/bottom-panel/", "shell_version_map": {"38": {"version": "49", "sha256": "09gsbnj564z8f7m593iv8j7s6f32230k0ikfsl1dlv1jsfpfn8zv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIkJvdHRvbV9QYW5lbEBybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "40": {"version": "59", "sha256": "1zgkqs8r2pzpiq8vryf6jwlnm5p1h9lkdp8si0xmzvc7wrkjz959", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQm90dG9tX1BhbmVsQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNTkKfQ=="}, "41": {"version": "61", "sha256": "00qp27a887kkd1k19nxsgfx6gmpk8l0vlxiv003gfja2in4h94qk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA2MQp9"}, "42": {"version": "62", "sha256": "05xf8rwa4rsyhfsdc7f8s065africqlgl2rx67li7y5cqsa98ndb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJvdHRvbSBwYW5lbCB0byB0aGUgc2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1ib3R0b20tcGFuZWwiLAogICJuYW1lIjogIkZyaXBwZXJ5IEJvdHRvbSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYm90dG9tLXBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cDovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJCb3R0b21fUGFuZWxAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA2Mgp9"}}}
 , {"uuid": "Panel_Favorites@rmy.pobox.com", "name": "Frippery Panel Favorites", "pname": "panel-favorites", "description": "Add launchers for Favorites to the panel", "link": "https://extensions.gnome.org/extension/4/panel-favorites/", "shell_version_map": {"38": {"version": "39", "sha256": "0jqysp82rhckdlgn1jhf1n6sqqphv97m9dri5pjiqjggvm4ls80j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2ZyaXBwZXJ5Lm9yZy9leHRlbnNpb25zIiwKICAidXVpZCI6ICJQYW5lbF9GYXZvcml0ZXNAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiAzOQp9"}, "40": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "41": {"version": "43", "sha256": "1nic3ds6y8gbrihfbqm9q62258rvrrv0prnkrbg5kx37bbnl2z5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZnJpcHBlcnkub3JnL2V4dGVuc2lvbnMiLAogICJ1dWlkIjogIlBhbmVsX0Zhdm9yaXRlc0BybXkucG9ib3guY29tIiwKICAidmVyc2lvbiI6IDQzCn0="}, "42": {"version": "44", "sha256": "0r2srgkz2zjxr1z2n8xc8ypmzmqd6wwrfqkq3p01sdy01hvg5983", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsYXVuY2hlcnMgZm9yIEZhdm9yaXRlcyB0byB0aGUgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcmlwcGVyeS1wYW5lbC1mYXZvcml0ZXMiLAogICJuYW1lIjogIkZyaXBwZXJ5IFBhbmVsIEZhdm9yaXRlcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkucGFuZWwtZmF2b3JpdGVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiUGFuZWxfRmF2b3JpdGVzQHJteS5wb2JveC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
 , {"uuid": "apps-menu@gnome-shell-extensions.gcampax.github.com", "name": "Applications Menu", "pname": "applications-menu", "description": "Add a category-based menu for applications.\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/6/applications-menu/", "shell_version_map": {"38": {"version": "46", "sha256": "1l5fliypxq3s3b6crv7rc6nl741m7hw48dwl0g7vi3yxyw0vyc0x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhcHBzLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDYKfQ=="}, "40": {"version": "48", "sha256": "0whi4ir3hvz6gby57331hv0a80ssz1b746pj79v43cm15djlsbhv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiYXBwcy1tZW51QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "41": {"version": "50", "sha256": "1x71mysa80n5nlfk79xgcz6k40qmw02g78pqjsvdinxsqlxi9ak6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MAp9"}, "42": {"version": "51", "sha256": "016ngp84g47p904kk9jzfn5mkpy774fj7h70v53dlqc9s7c58r6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNhdGVnb3J5LWJhc2VkIG1lbnUgZm9yIGFwcGxpY2F0aW9ucy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImFwcHMtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBzLW1lbnUiLAogICJuYW1lIjogIkFwcGxpY2F0aW9ucyBNZW51IiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlMjAwMkBiay5ydSIsCiAgICAiZGViYXJzaGlyQGdub21lLm9yZyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwcy1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImFwcHMtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1MQp9"}}}
 , {"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="}, "40": {"version": "47", "sha256": "0sa694y58jx4yhjb16i25d6h1z5d8vzamwpqlrfs35g0bq93ri5s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlJlbW92YWJsZSBEcml2ZSBNZW51IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRyaXZlLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiZHJpdmUtbWVudUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "50", "sha256": "1gwi4xwwjps5mm412nck6nqbvcvll2n3h48wc74p9yi34fpr31dq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTAKfQ=="}, "42": {"version": "51", "sha256": "1mjxrmlcrn1c9plcmvs4pgmm13jxc7c7v3s4d3xbl2bp096878dc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc3RhdHVzIG1lbnUgZm9yIGFjY2Vzc2luZyBhbmQgdW5tb3VudGluZyByZW1vdmFibGUgZGV2aWNlcy4iLAogICJleHRlbnNpb24taWQiOiAiZHJpdmUtbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kcml2ZS1tZW51IiwKICAibmFtZSI6ICJSZW1vdmFibGUgRHJpdmUgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kcml2ZS1tZW51IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImRyaXZlLW1lbnVAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTEKfQ=="}}}
@@ -7,22 +7,23 @@
 , {"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"}, "40": {"version": "54", "sha256": "0y41w3lxbnhb709n7ynq21nhhc9p4j6fvyjzfw0aw8ysjc8f54iv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAid2luZG93TmF2aWdhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphc3BpcmVAcmFtYmxlci5ydSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53aW5kb3dzTmF2aWdhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndpbmRvd3NOYXZpZ2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}, "41": {"version": "56", "sha256": "0k404ig42y94j9ysfyvzk0ca5r7f70digwjyjf2cn3py72bs0slg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU2Cn0="}, "42": {"version": "57", "sha256": "1w3rf6y7l2qgg4ya8cqlj8a6wf8l4yqfjlh17mpmi6gmfzsxplnf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93IGtleWJvYXJkIHNlbGVjdGlvbiBvZiB3aW5kb3dzIGFuZCB3b3Jrc3BhY2VzIGluIG92ZXJsYXkgbW9kZS4gPEN0cmw+bnVtYmVyIHNlbGVjdHMgYSB3b3Jrc3BhY2UsIGFuZCA8QWx0Pm51bWJlciBzZWxlY3RzIGEgd2luZG93LiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3dzTmF2aWdhdG9yIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd3NOYXZpZ2F0b3IiLAogICJuYW1lIjogIndpbmRvd05hdmlnYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJ6YXNwaXJlQHJhbWJsZXIucnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93c05hdmlnYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3aW5kb3dzTmF2aWdhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}}}
 , {"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"}, "40": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "41": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}, "42": {"version": "49", "sha256": "0hh70p32imshy93vyghwwb9fsdxfs95vdmn2khi81jd01lzxrh44", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyBidXR0b24gd2l0aCBhbiBBcHBsaWNhdGlvbnMgbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImZyaXBwZXJ5LWFwcGxpY2F0aW9ucy1tZW51IiwKICAibmFtZSI6ICJGcmlwcGVyeSBBcHBsaWNhdGlvbnMgTWVudSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZnJpcHBlcnkuYXBwbGljYXRpb25zLW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9mcmlwcGVyeS5vcmcvZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAiQXBwbGljYXRpb25zX01lbnVAcm15LnBvYm94LmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
 , {"uuid": "auto-move-windows@gnome-shell-extensions.gcampax.github.com", "name": "Auto Move Windows", "pname": "auto-move-windows", "description": "Move applications to specific workspaces when they create windows.", "link": "https://extensions.gnome.org/extension/16/auto-move-windows/", "shell_version_map": {"38": {"version": "44", "sha256": "05lmpmyzaawxh3kn030a8sanq7p6g87zfh7nzxfvgi8nbpygd59q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ0Cn0="}, "40": {"version": "46", "sha256": "1hr0z7r0mg1xg9b41d71lqbyra813yrl8i80kin0dmwrcx8xqs8m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIkF1dG8gTW92ZSBXaW5kb3dzIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJhbGVzc2FuZHJvLmNyaXNtYW5pQGdtYWlsLmNvbSIsCiAgICAidGhvbWFzLmJvdWZmb25AZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hdXRvLW1vdmUtd2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJhdXRvLW1vdmUtd2luZG93c0Bnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Ngp9"}, "41": {"version": "48", "sha256": "1sbxdz0dly2y0zdy5cla3avsnazvw9w31244yjgq1a7zq3dyd2jw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ4Cn0="}, "42": {"version": "49", "sha256": "031ppsjqv3y81wcjjsm14rqfh0l7vvaavy01hlqfyglpk8vlfvml", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgYXBwbGljYXRpb25zIHRvIHNwZWNpZmljIHdvcmtzcGFjZXMgd2hlbiB0aGV5IGNyZWF0ZSB3aW5kb3dzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhdXRvLW1vdmUtd2luZG93cyIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1hdXRvLW1vdmUtd2luZG93cyIsCiAgIm5hbWUiOiAiQXV0byBNb3ZlIFdpbmRvd3MiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImFsZXNzYW5kcm8uY3Jpc21hbmlAZ21haWwuY29tIiwKICAgICJ0aG9tYXMuYm91ZmZvbkBnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF1dG8tbW92ZS13aW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImF1dG8tbW92ZS13aW5kb3dzQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}}}
-, {"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="}, "40": {"version": "47", "sha256": "1v424l1svrmw5yikxgbi1j14xx307dg9zy21f34rv2il8bf72vk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJuYXRpdmUtd2luZG93LXBsYWNlbWVudEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "49", "sha256": "12yr2pc1qra962lyadryw64naq6pd30haja38g0svcqj84smqb46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "50", "sha256": "0zqqisd0k81i0ydrbr1qrw1gdfs0p5y75dbqcsixn0srf5995xvm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUwCn0="}}}
+, {"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="}, "40": {"version": "47", "sha256": "1v424l1svrmw5yikxgbi1j14xx307dg9zy21f34rv2il8bf72vk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTmF0aXZlIFdpbmRvdyBQbGFjZW1lbnQiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIndlcG1hc2NoZGFAZ214LmRlIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uYXRpdmUtd2luZG93LXBsYWNlbWVudCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJuYXRpdmUtd2luZG93LXBsYWNlbWVudEBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "49", "sha256": "12yr2pc1qra962lyadryw64naq6pd30haja38g0svcqj84smqb46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "51", "sha256": "1i9grnrd07zpsshf1710ag4y0zqwgi1c7rrarb8l55w45slg2254", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFycmFuZ2Ugd2luZG93cyBpbiBvdmVydmlldyBpbiBhIG1vcmUgY29tcGFjdCB3YXkuIiwKICAiZXh0ZW5zaW9uLWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAibmFtZSI6ICJOYXRpdmUgV2luZG93IFBsYWNlbWVudCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAid2VwbWFzY2hkYUBnbXguZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIm5hdGl2ZS13aW5kb3ctcGxhY2VtZW50QGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}}}
 , {"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=="}, "40": {"version": "46", "sha256": "07gbzvbnxah5bws5vc6sivw43j0rgm23n6vsp4a64z7s8s2ay7sm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJVc2VyIFRoZW1lcyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiam9obi5zdG93ZXJzQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudXNlci10aGVtZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ1c2VyLXRoZW1lQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDQ2Cn0="}, "41": {"version": "48", "sha256": "0bbm4vbyrp9n3mmqwbhpb6f7dmlx23x1avnp8pilw4p1wr03p7h8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "42": {"version": "49", "sha256": "0ykaw2602iixn87fc65h6vwxzlcjidpp9hpcsmf66r0f6xibgpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxvYWQgc2hlbGwgdGhlbWVzIGZyb20gdXNlciBkaXJlY3RvcnkuIiwKICAiZXh0ZW5zaW9uLWlkIjogInVzZXItdGhlbWUiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tdXNlci10aGVtZSIsCiAgIm5hbWUiOiAiVXNlciBUaGVtZXMiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgImpvaG4uc3Rvd2Vyc0BnbWFpbC5jb20iCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnVzZXItdGhlbWUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAidXNlci10aGVtZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0OQp9"}}}
 , {"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"}, "40": {"version": "49", "sha256": "0483k1scq0lwfpg3i3yww7kfzv0qwlp6aqyikkacivh0nkq6v2iy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgSW5kaWNhdG9yIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJlcmljay5yZWRAZ21haWwuY29tIgogIF0sCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3JAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDkKfQ=="}, "41": {"version": "51", "sha256": "1s2mkk41vq9nrlsw26317zh592l59y7cldfmkd3f0d4j2mdiy8bw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUxCn0="}, "42": {"version": "52", "sha256": "1i0jm0k3rjk97283p0iv0nx2cclij0kx7dqb35a7kd2pxh89jn8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1dCBhbiBpbmRpY2F0b3Igb24gdGhlIHBhbmVsIHNpZ25hbGluZyBpbiB3aGljaCB3b3Jrc3BhY2UgeW91IGFyZSwgYW5kIGdpdmUgeW91IHRoZSBwb3NzaWJpbGl0eSBvZiBzd2l0Y2hpbmcgdG8gYW5vdGhlciBvbmUuIiwKICAiZXh0ZW5zaW9uLWlkIjogIndvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24td29ya3NwYWNlLWluZGljYXRvciIsCiAgIm5hbWUiOiAiV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAiZXJpY2sucmVkQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmdub21lLm9yZy9HTk9NRS9nbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtaW5kaWNhdG9yQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUyCn0="}}}
-, {"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": "50", "sha256": "0qqbkhj3j5ysv74gbcp9b5jspqyzs5daijd830nf3vgj9hg5l7pd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "40": {"version": "50", "sha256": "0qqbkhj3j5ysv74gbcp9b5jspqyzs5daijd830nf3vgj9hg5l7pd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "41": {"version": "50", "sha256": "0qqbkhj3j5ysv74gbcp9b5jspqyzs5daijd830nf3vgj9hg5l7pd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "42": {"version": "50", "sha256": "0qqbkhj3j5ysv74gbcp9b5jspqyzs5daijd830nf3vgj9hg5l7pd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}}}
+, {"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": "50", "sha256": "0g029vq3sv9vglh0q7idhf69xkcbka0gidad3nipniwx9m0bnfig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUvZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "40": {"version": "50", "sha256": "0g029vq3sv9vglh0q7idhf69xkcbka0gidad3nipniwx9m0bnfig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUvZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "41": {"version": "50", "sha256": "0g029vq3sv9vglh0q7idhf69xkcbka0gidad3nipniwx9m0bnfig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUvZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}, "42": {"version": "50", "sha256": "0g029vq3sv9vglh0q7idhf69xkcbka0gidad3nipniwx9m0bnfig", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpbGUgd2luZG93cyBvbiBhIGdyaWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ3RpbGVAdmlib3UiLAogICJuYW1lIjogImdUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmd0aWxlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ1RpbGUvZ1RpbGUiLAogICJ1dWlkIjogImdUaWxlQHZpYm91IiwKICAidmVyc2lvbiI6IDUwCn0="}}}
 , {"uuid": "lockkeys@vaina.lt", "name": "Lock Keys", "pname": "lock-keys", "description": "Numlock & Capslock status on the panel. Gnome version 3.30 and earlier users please install 44 version of the extension https://extensions.gnome.org/download-extension/lockkeys%40vaina.lt.shell-extension.zip?version_tag=26229 ", "link": "https://extensions.gnome.org/extension/36/lock-keys/", "shell_version_map": {"38": {"version": "47", "sha256": "1lsnmf6lsp92g1clxl190hx30p03a11w4hs3m9v0pav12cq8agfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0Nwp9"}, "40": {"version": "47", "sha256": "1lsnmf6lsp92g1clxl190hx30p03a11w4hs3m9v0pav12cq8agfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0Nwp9"}, "41": {"version": "47", "sha256": "1lsnmf6lsp92g1clxl190hx30p03a11w4hs3m9v0pav12cq8agfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0Nwp9"}, "42": {"version": "47", "sha256": "1lsnmf6lsp92g1clxl190hx30p03a11w4hs3m9v0pav12cq8agfi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk51bWxvY2sgJiBDYXBzbG9jayBzdGF0dXMgb24gdGhlIHBhbmVsLiBHbm9tZSB2ZXJzaW9uIDMuMzAgYW5kIGVhcmxpZXIgdXNlcnMgcGxlYXNlIGluc3RhbGwgNDQgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZG93bmxvYWQtZXh0ZW5zaW9uL2xvY2trZXlzJTQwdmFpbmEubHQuc2hlbGwtZXh0ZW5zaW9uLnppcD92ZXJzaW9uX3RhZz0yNjIyOSAiLAogICJuYW1lIjogIkxvY2sgS2V5cyIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiS2F6aW1pZXJhcyBWYWluYSwgUGllcnJlIE9zc21hbiwgZXJndWlsbGUsIGpvbm5pdXMsIFBoaWxpcHAgV29sZmVyLCBNYXJpdXN6IExpc293c2tpLCBDcmlzdGlhbiBCZXJvaXphLCB3YXJtc3VuMDIyMCwgUmFzbXVzIEthaiwgUGFibG8gTWFydGluLUdvbWV6IEJvdXNrYSwgUmFwaGFcdTAwZWJsIFJvY2hldCwgTHVpeiBOaWNrZWwsIEplc3NlLCBEdVx1MDE2MWFuIEthemlrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2F6eXNtYXN0ZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxvY2trZXlzIiwKICAidXVpZCI6ICJsb2Nra2V5c0B2YWluYS5sdCIsCiAgInZlcnNpb24iOiA0Nwp9"}}}
 , {"uuid": "putWindow@clemens.lab21.org", "name": "Put Windows", "pname": "put-windows", "description": "Fully customizable replacement for the old compiz put plugin. \n * Move windows to left/right side, bottom/top, center or corner \n * Move window to other screen \n * Select focused window using the keyboard \n * Application based window placement \n\n Please check github if your gnome-shell version is not supported", "link": "https://extensions.gnome.org/extension/39/put-windows/", "shell_version_map": {"38": {"version": "32", "sha256": "1n4hk2sqdbcn25lxk02vljc9xxbidragimvc4b6dj2m72625lx67", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZ1bGx5IGN1c3RvbWl6YWJsZSByZXBsYWNlbWVudCBmb3IgdGhlIG9sZCBjb21waXogcHV0IHBsdWdpbi4gXG4gKiBNb3ZlIHdpbmRvd3MgdG8gbGVmdC9yaWdodCBzaWRlLCBib3R0b20vdG9wLCBjZW50ZXIgb3IgY29ybmVyIFxuICogTW92ZSB3aW5kb3cgdG8gb3RoZXIgc2NyZWVuIFxuICogU2VsZWN0IGZvY3VzZWQgd2luZG93IHVzaW5nIHRoZSBrZXlib2FyZCBcbiAqIEFwcGxpY2F0aW9uIGJhc2VkIHdpbmRvdyBwbGFjZW1lbnQgXG5cbiBQbGVhc2UgY2hlY2sgZ2l0aHViIGlmIHlvdXIgZ25vbWUtc2hlbGwgdmVyc2lvbiBpcyBub3Qgc3VwcG9ydGVkIiwKICAiZ2V0dGV4dC1kb21haW4iOiAicHV0V2luZG93IiwKICAibmFtZSI6ICJQdXQgV2luZG93cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcmctbGFiMjEtcHV0d2luZG93IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmVnZXN0aS9nbm9tZS1zaGVsbC1leHRlbnNpb25zLW5lZ2VzdGkiLAogICJ1dWlkIjogInB1dFdpbmRvd0BjbGVtZW5zLmxhYjIxLm9yZyIsCiAgInZlcnNpb24iOiAzMgp9"}}}
 , {"uuid": "permanent-notifications@bonzini.gnu.org", "name": "Permanent notifications", "pname": "permanent-notifications", "description": "Keep notifications on the message tray until clicked", "link": "https://extensions.gnome.org/extension/41/permanent-notifications/", "shell_version_map": {"40": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "13s0h7b9216xi7p6lsnipsm0lrxzr2dc94nm87fn580m43gx24lk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgbm90aWZpY2F0aW9ucyBvbiB0aGUgbWVzc2FnZSB0cmF5IHVudGlsIGNsaWNrZWQiLAogICJsb2NhbGVkaXIiOiAiL3Vzci9zaGFyZS9sb2NhbGUiLAogICJuYW1lIjogIlBlcm1hbmVudCBub3RpZmljYXRpb25zIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJib256aW5pQGdudS5vcmciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjIiLAogICAgIjMuMi4xIiwKICAgICIzLjQiLAogICAgIjMuMy45MCIsCiAgICAiMy4zLjkxIiwKICAgICIzLjMuOTIiLAogICAgIjMuNiIsCiAgICAiMy40LjEiLAogICAgIjMuMy45MyIsCiAgICAiMy4zLjk0IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ib256aW5pL2dub21lLXNoZWxsLXBlcm1hbmVudC1ub3RpZmljYXRpb25zIiwKICAidXVpZCI6ICJwZXJtYW5lbnQtbm90aWZpY2F0aW9uc0Bib256aW5pLmdudS5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "gnome-shell-trash-extension", "name": "Trash", "pname": "trash", "description": "A Trash button for the GNOME shell panel", "link": "https://extensions.gnome.org/extension/48/trash/", "shell_version_map": {"38": {"version": "19", "sha256": "16454yr755s5qsb2dic5afljxy1b1malxv37xvpw7i2f9anxh7hz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JlcnRvbGRpYS9nbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAxOQp9"}, "41": {"version": "19", "sha256": "16454yr755s5qsb2dic5afljxy1b1malxv37xvpw7i2f9anxh7hz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JlcnRvbGRpYS9nbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAxOQp9"}, "42": {"version": "19", "sha256": "16454yr755s5qsb2dic5afljxy1b1malxv37xvpw7i2f9anxh7hz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgVHJhc2ggYnV0dG9uIGZvciB0aGUgR05PTUUgc2hlbGwgcGFuZWwiLAogICJsb2NhbGVkaXIiOiAibG9jYWxlIiwKICAibmFtZSI6ICJUcmFzaCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiQXhlbCB2b24gQmVydG9sZGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2JlcnRvbGRpYS9nbm9tZS1zaGVsbC10cmFzaC1leHRlbnNpb24iLAogICJ1dWlkIjogImdub21lLXNoZWxsLXRyYXNoLWV4dGVuc2lvbiIsCiAgInZlcnNpb24iOiAxOQp9"}}}
 , {"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": {"40": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}, "41": {"version": "20", "sha256": "0ys8lanv0xxbwfmqkfvdqvhbnv4vfjpzvpqjj11c1lxbv4wp2mbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiBmb3IgcmVjZW50bHkgdXNlZCBpdGVtcyBhdCB0aGUgdG9wIHBhbmVsOyBjbGVhciBsaXN0IGJ5IGNsaWNrOyBsZWZ0IGNsaWNrOiBvcGVuIGZpbGUsIHJpZ2h0IGNsaWNrOiBvcGVuIGNvbnRhaW5pbmcgZm9sZGVyOyBTZXR0aW5ncyBmb3I6IG51bWJlciBvZiBpdGVtcywgbnVtYmVyIG9mIGl0ZW1zIHVuZGVyIFwibW9yZVwiIGFuZCBibGFja2xpc3Rpbmcgb3B0aW9ucyBhcmUgZGVmaW5lZCBhdCB0aGUgdG9wIG9mIGV4dGVuc2lvbi5qcyAoc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9iYW5hbmVuZmlzY2gvUmVjZW50SXRlbXMgZm9yIG1vcmUgaW5mb3MpLiIsCiAgIm5hbWUiOiAiUmVjZW50IEl0ZW1zIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuYmFuYW5lbmZpc2NoLm5ldC9nbm9tZSIsCiAgInV1aWQiOiAiUmVjZW50SXRlbXNAYmFuYW5lbmZpc2NoLm5ldCIsCiAgInZlcnNpb24iOiAyMAp9"}}}
 , {"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="}, "42": {"version": "14", "sha256": "1dh02rbq7pfvpjpgjq7rlx7lld2qhq602apn1g17hbxbcpdzz004", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBsb2NrIGljb24gdG8gdGhlIHBhbmVsIGFuZCBsb2NrIHRoZSBzY3JlZW4gaW5zdGVhZCBvZiB1c2luZyBjdHJsLWFsdC1sIiwKICAibmFtZSI6ICJMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiNDAuMCIsCiAgICAiNDIuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NyYW1rcmlzaG5hL2dub21lMy1leHRlbnNpb25zIiwKICAidXVpZCI6ICJsb2Nrc2NyZWVuQHNyaS5yYW1rcmlzaG5hLm1lIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
-, {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "41": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "52", "sha256": "16h395z00isddbs33g27v188b7v5d1pms8c3m91zw3a0wf5m2bv6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNTIKfQ=="}}}
+, {"uuid": "CoverflowAltTab@palatis.blogspot.com", "name": "Coverflow Alt-Tab", "pname": "coverflow-alt-tab", "description": "Replacement of Alt-Tab, iterates through windows in a cover-flow manner.", "link": "https://extensions.gnome.org/extension/97/coverflow-alt-tab/", "shell_version_map": {"38": {"version": "44", "sha256": "18qpriqi0h6la45bl584hglnni0ka2d5q4qv61wdcan28a7kywq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNpbm5hbW9uLXZlcnNpb24iOiBbCiAgICAiMS4yIiwKICAgICIxLjQiLAogICAgIjEuNiIsCiAgICAiMS44IiwKICAgICIxLjkiLAogICAgIjIuMCIsCiAgICAiMi4xIiwKICAgICIyLjIiLAogICAgIjIuMyIsCiAgICAiMi40IiwKICAgICIyLjgiLAogICAgIjMuMCIKICBdLAogICJkZXNjcmlwdGlvbiI6ICJSZXBsYWNlbWVudCBvZiBBbHQtVGFiLCBpdGVyYXRlcyB0aHJvdWdoIHdpbmRvd3MgaW4gYSBjb3Zlci1mbG93IG1hbm5lci4iLAogICJuYW1lIjogIkNvdmVyZmxvdyBBbHQtVGFiIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "40": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "41": {"version": "49", "sha256": "0mmz5qrlx2gjfahpyy6c050wcif3pwwfff7i8wxf7xcmj21nqlwx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2RtbzYwL0NvdmVyZmxvd0FsdFRhYiIsCiAgInV1aWQiOiAiQ292ZXJmbG93QWx0VGFiQHBhbGF0aXMuYmxvZ3Nwb3QuY29tIiwKICAidmVyc2lvbiI6IDQ5Cn0="}, "42": {"version": "54", "sha256": "0hwkalwv6nzb0pzh55qk1m02sf8wlxwbp2l33ndi74arh27rcqk5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VtZW50IG9mIEFsdC1UYWIsIGl0ZXJhdGVzIHRocm91Z2ggd2luZG93cyBpbiBhIGNvdmVyLWZsb3cgbWFubmVyLiIsCiAgIm5hbWUiOiAiQ292ZXJmbG93IEFsdC1UYWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZG1vNjAvQ292ZXJmbG93QWx0VGFiIiwKICAidXVpZCI6ICJDb3ZlcmZsb3dBbHRUYWJAcGFsYXRpcy5ibG9nc3BvdC5jb20iLAogICJ2ZXJzaW9uIjogNTQKfQ=="}}}
 , {"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=="}, "41": {"version": "34", "sha256": "04137rwnnf2mbp228wl9qjcix6i7757cqsdamabdrjwclg147vql", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIEludGVybmV0IFNwZWVkIiwKICAibmFtZSI6ICJOZXRTcGVlZCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJoZWRheWF0eUBnbWFpbC5jb20iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlZGF5YXR5L05ldFNwZWVkIiwKICAidXVpZCI6ICJuZXRzcGVlZEBoZWRheWF0eS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
 , {"uuid": "favorites@cvine.org", "name": "Favorites Menu", "pname": "favorites-menu", "description": "Provide panel menu for favorites", "link": "https://extensions.gnome.org/extension/115/favorites-menu/", "shell_version_map": {"40": {"version": "15", "sha256": "02s0p33dcr6wrxivjd47rwb42whqc6qswr3qdvd7p6jym4zddbi2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHA6Ly93d3cuY3ZpbmUucGx1cy5jb20vZmF2b3JpdGVzL2luZGV4Lmh0bWwiLAogICJ1dWlkIjogImZhdm9yaXRlc0BjdmluZS5vcmciLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "18", "sha256": "1ibamk57121qdd0g0mlbg569sk2qqpap1914vfg1ip3nh1n4fym5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwOi8vd3d3LmN2aW5lLnBsdXMuY29tL2Zhdm9yaXRlcy9pbmRleC5odG1sIiwKICAidXVpZCI6ICJmYXZvcml0ZXNAY3ZpbmUub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "1ibamk57121qdd0g0mlbg569sk2qqpap1914vfg1ip3nh1n4fym5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGUgcGFuZWwgbWVudSBmb3IgZmF2b3JpdGVzIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgTWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwOi8vd3d3LmN2aW5lLnBsdXMuY29tL2Zhdm9yaXRlcy9pbmRleC5odG1sIiwKICAidXVpZCI6ICJmYXZvcml0ZXNAY3ZpbmUub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "system-monitor@paradoxxx.zero.gmail.com", "name": "system-monitor", "pname": "system-monitor", "description": "Display system information in GNOME Shell status bar, such as memory, CPU, disk and battery usages, network rates…", "link": "https://extensions.gnome.org/extension/120/system-monitor/", "shell_version_map": {"40": {"version": "40", "sha256": "05xmpbwwjzax5y7p7a492k6mmv9rjiyinnrfkzrzm16yncn3mbvj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3lzdGVtIGluZm9ybWF0aW9uIGluIEdOT01FIFNoZWxsIHN0YXR1cyBiYXIsIHN1Y2ggYXMgbWVtb3J5LCBDUFUsIGRpc2sgYW5kIGJhdHRlcnkgdXNhZ2VzLCBuZXR3b3JrIHJhdGVzXHUyMDI2IiwKICAiZ2V0dGV4dC1kb21haW4iOiAic3lzdGVtLW1vbml0b3IiLAogICJuYW1lIjogInN5c3RlbS1tb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnN5c3RlbS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BhcmFkb3h4eHplcm8vZ25vbWUtc2hlbGwtc3lzdGVtLW1vbml0b3ItYXBwbGV0IiwKICAidXVpZCI6ICJzeXN0ZW0tbW9uaXRvckBwYXJhZG94eHguemVyby5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "touchpad-indicator@orangeshirt", "name": "Touchpad Indicator", "pname": "touchpad-indicator", "description": "Automatically disable other pointing devices when an external mouse is plugged in.", "link": "https://extensions.gnome.org/extension/131/touchpad-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1rd218zbvv0lw2al02jsizq2w5rxw7xfzwyf808g2d3gn22777s9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGlzYWJsZSBvdGhlciBwb2ludGluZyBkZXZpY2VzIHdoZW4gYW4gZXh0ZXJuYWwgbW91c2UgaXMgcGx1Z2dlZCBpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0b3VjaHBhZC1pbmRpY2F0b3IiLAogICJuYW1lIjogIlRvdWNocGFkIEluZGljYXRvciIsCiAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VzZXI1MDEyNTQvVG91Y2hwYWRJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdXNlcjUwMTI1NC9Ub3VjaHBhZEluZGljYXRvciN0b3VjaHBhZGluZGljYXRvciIsCiAgInV1aWQiOiAidG91Y2hwYWQtaW5kaWNhdG9yQG9yYW5nZXNoaXJ0IiwKICAidmVyc2lvbiI6IDM3Cn0="}, "40": {"version": "37", "sha256": "1rd218zbvv0lw2al02jsizq2w5rxw7xfzwyf808g2d3gn22777s9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgZGlzYWJsZSBvdGhlciBwb2ludGluZyBkZXZpY2VzIHdoZW4gYW4gZXh0ZXJuYWwgbW91c2UgaXMgcGx1Z2dlZCBpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ0b3VjaHBhZC1pbmRpY2F0b3IiLAogICJuYW1lIjogIlRvdWNocGFkIEluZGljYXRvciIsCiAgInJlcG9zaXRvcnkiOiAiaHR0cHM6Ly9naXRodWIuY29tL3VzZXI1MDEyNTQvVG91Y2hwYWRJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdXNlcjUwMTI1NC9Ub3VjaHBhZEluZGljYXRvciN0b3VjaHBhZGluZGljYXRvciIsCiAgInV1aWQiOiAidG91Y2hwYWQtaW5kaWNhdG9yQG9yYW5nZXNoaXJ0IiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
 , {"uuid": "Fuzzy_Clock@dallagi", "name": "Fuzzy Clock", "pname": "fuzzy-clock", "description": "A human-readable clock for the gnome-shell panel", "link": "https://extensions.gnome.org/extension/202/fuzzy-clock/", "shell_version_map": {"38": {"version": "9", "sha256": "1cga3192balji63zmbbyixb4r53j48zhil4hnv57l3b25k4rmk0i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgaHVtYW4tcmVhZGFibGUgY2xvY2sgZm9yIHRoZSBnbm9tZS1zaGVsbCBwYW5lbCIsCiAgIm5hbWUiOiAiRnV6enkgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYWxsYWdpL2dub21lLXNoZWxsLWZ1enp5LWNsb2NrIiwKICAidXVpZCI6ICJGdXp6eV9DbG9ja0BkYWxsYWdpIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
-, {"uuid": "PersianCalendar@oxygenws.com", "name": "Persian Calendar", "pname": "persian-calendar", "description": "Shows Persian date in the top panel.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is a holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri\n5- Events:\n5-1- Official solar events.\n5-2- Official lunar events.\n5-3- Official international events.\n5-4- Traditional Persian events.\n5-5- Persian personages.\n\nPlease \"rate\" here and \"star\" the project in GitHub.\nPlease open an issue in GitHub if you've found something or have an idea!", "link": "https://extensions.gnome.org/extension/240/persian-calendar/", "shell_version_map": {"38": {"version": "73", "sha256": "14p27d2h58jam7h97y06safsc2c8rwmjy74nak5w9cv7s0wx4kar", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA3Mwp9"}, "40": {"version": "92", "sha256": "1cjiy8gswqlc95277yszihy8nr3n5w33amy1167fyfl1gfsr0k6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Mgp9"}, "41": {"version": "92", "sha256": "1cjiy8gswqlc95277yszihy8nr3n5w33amy1167fyfl1gfsr0k6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Mgp9"}, "42": {"version": "92", "sha256": "1cjiy8gswqlc95277yszihy8nr3n5w33amy1167fyfl1gfsr0k6i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEtIFBlcnNpYW4gY2FsZW5kYXJcbjItIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy0gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC0gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LSBFdmVudHM6XG41LTEtIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUtMi0gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS0zLSBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUtNC0gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LTUtIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFwicmF0ZVwiIGhlcmUgYW5kIFwic3RhclwiIHRoZSBwcm9qZWN0IGluIEdpdEh1Yi5cblBsZWFzZSBvcGVuIGFuIGlzc3VlIGluIEdpdEh1YiBpZiB5b3UndmUgZm91bmQgc29tZXRoaW5nIG9yIGhhdmUgYW4gaWRlYSEiLAogICJuYW1lIjogIlBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIk9taWQgTW90dGFnaGkgUmFkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Mgp9"}}}
+, {"uuid": "PersianCalendar@oxygenws.com", "name": "Persian Calendar", "pname": "persian-calendar", "description": "Shows Persian date in the top panel.\n\nIt shows:\n1. Persian calendar\n2. It can show, today is a holiday or not!\n3. Show notification onDayChanged!\n4. Date converter between Persian, Gregorian and Lunar Hijri\n5. Events:\n5.1. Official solar events.\n5.2. Official lunar events.\n5.3. Official international events.\n5.4. Traditional Persian events.\n5.5. Persian personages.\n\nPlease “rate” here and “star” the project on GitHub.\nPlease open an issue on GitHub if you found something or have an idea!", "link": "https://extensions.gnome.org/extension/240/persian-calendar/", "shell_version_map": {"38": {"version": "73", "sha256": "0q2wvlyy95n1h6rhd3955a07a9zvnar2y2ncn7pkb7ib5h1zpvzc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL29taWQvUGVyc2lhbi1DYWxlbmRhci1mb3ItR25vbWUtU2hlbGwiLAogICJ1dWlkIjogIlBlcnNpYW5DYWxlbmRhckBveHlnZW53cy5jb20iLAogICJ2ZXJzaW9uIjogNzMKfQ=="}, "40": {"version": "96", "sha256": "092flw5qnqms4f2bnis3sb98p63vlg48jhfk9zab4bjryd11l6li", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Ngp9"}, "41": {"version": "96", "sha256": "092flw5qnqms4f2bnis3sb98p63vlg48jhfk9zab4bjryd11l6li", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Ngp9"}, "42": {"version": "96", "sha256": "092flw5qnqms4f2bnis3sb98p63vlg48jhfk9zab4bjryd11l6li", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIFBlcnNpYW4gZGF0ZSBpbiB0aGUgdG9wIHBhbmVsLlxuXG5JdCBzaG93czpcbjEuIFBlcnNpYW4gY2FsZW5kYXJcbjIuIEl0IGNhbiBzaG93LCB0b2RheSBpcyBhIGhvbGlkYXkgb3Igbm90IVxuMy4gU2hvdyBub3RpZmljYXRpb24gb25EYXlDaGFuZ2VkIVxuNC4gRGF0ZSBjb252ZXJ0ZXIgYmV0d2VlbiBQZXJzaWFuLCBHcmVnb3JpYW4gYW5kIEx1bmFyIEhpanJpXG41LiBFdmVudHM6XG41LjEuIE9mZmljaWFsIHNvbGFyIGV2ZW50cy5cbjUuMi4gT2ZmaWNpYWwgbHVuYXIgZXZlbnRzLlxuNS4zLiBPZmZpY2lhbCBpbnRlcm5hdGlvbmFsIGV2ZW50cy5cbjUuNC4gVHJhZGl0aW9uYWwgUGVyc2lhbiBldmVudHMuXG41LjUuIFBlcnNpYW4gcGVyc29uYWdlcy5cblxuUGxlYXNlIFx1MjAxY3JhdGVcdTIwMWQgaGVyZSBhbmQgXHUyMDFjc3Rhclx1MjAxZCB0aGUgcHJvamVjdCBvbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBvbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhIiwKICAibmFtZSI6ICJQZXJzaWFuIENhbGVuZGFyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJPbWlkIE1vdHRhZ2hpIFJhZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5wZXJzaWFuLWNhbGVuZGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vb21pZC9QZXJzaWFuLUNhbGVuZGFyLWZvci1Hbm9tZS1TaGVsbCIsCiAgInV1aWQiOiAiUGVyc2lhbkNhbGVuZGFyQG94eWdlbndzLmNvbSIsCiAgInZlcnNpb24iOiA5Ngp9"}}}
 , {"uuid": "kimpanel@kde.org", "name": "Input Method Panel", "pname": "kimpanel", "description": "Input Method Panel using KDE's kimpanel protocol for Gnome-Shell", "link": "https://extensions.gnome.org/extension/261/kimpanel/", "shell_version_map": {"38": {"version": "59", "sha256": "0rh2in9cm9khvmhhzyyw98z6bwvv95v59zcapkjpd7kbs38hqdw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDU5Cn0="}, "40": {"version": "70", "sha256": "05x4ypj25hgmiz3qqq4gb9qnim85x1bxv7cz64l0xzzi4cjzf8wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDcwCn0="}, "41": {"version": "70", "sha256": "05x4ypj25hgmiz3qqq4gb9qnim85x1bxv7cz64l0xzzi4cjzf8wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDcwCn0="}, "42": {"version": "70", "sha256": "05x4ypj25hgmiz3qqq4gb9qnim85x1bxv7cz64l0xzzi4cjzf8wa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklucHV0IE1ldGhvZCBQYW5lbCB1c2luZyBLREUncyBraW1wYW5lbCBwcm90b2NvbCBmb3IgR25vbWUtU2hlbGwiLAogICJleHRlbnNpb24taWQiOiAia2ltcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLWtpbXBhbmVsIiwKICAibG9jYWxlIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJJbnB1dCBNZXRob2QgUGFuZWwiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2ltcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93ZW5neHQvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWtpbXBhbmVsIiwKICAidXVpZCI6ICJraW1wYW5lbEBrZGUub3JnIiwKICAidmVyc2lvbiI6IDcwCn0="}}}
 , {"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": "20", "sha256": "19pr55n6mzxcwbg2cz1kmrk2wmcx22mmfqkdcx7m7rlvnvxs5pgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9nZnhtb25rLm5ldC9kaXN0LzBpbnN0YWxsL2dub21lLXNoZWxsLWltcGF0aWVuY2UueG1sIiwKICAidXVpZCI6ICJpbXBhdGllbmNlQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "19pr55n6mzxcwbg2cz1kmrk2wmcx22mmfqkdcx7m7rlvnvxs5pgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9nZnhtb25rLm5ldC9kaXN0LzBpbnN0YWxsL2dub21lLXNoZWxsLWltcGF0aWVuY2UueG1sIiwKICAidXVpZCI6ICJpbXBhdGllbmNlQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDIwCn0="}, "42": {"version": "20", "sha256": "19pr55n6mzxcwbg2cz1kmrk2wmcx22mmfqkdcx7m7rlvnvxs5pgg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwZWVkIHVwIHRoZSBnbm9tZS1zaGVsbCBhbmltYXRpb24gc3BlZWQiLAogICJuYW1lIjogIkltcGF0aWVuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9nZnhtb25rLm5ldC9kaXN0LzBpbnN0YWxsL2dub21lLXNoZWxsLWltcGF0aWVuY2UueG1sIiwKICAidXVpZCI6ICJpbXBhdGllbmNlQGdmeG1vbmsubmV0IiwKICAidmVyc2lvbiI6IDIwCn0="}}}
 , {"uuid": "windowoverlay-icons@sustmidown.centrum.cz", "name": "WindowOverlay Icons", "pname": "windowoverlay-icons", "description": "Add application icons to window overview", "link": "https://extensions.gnome.org/extension/302/windowoverlay-icons/", "shell_version_map": {"38": {"version": "37", "sha256": "108a5i5v62a9i61av5pib3b0hcpmb6pw3np7c29jfngs25n14wd3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhcHBsaWNhdGlvbiBpY29ucyB0byB3aW5kb3cgb3ZlcnZpZXciLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aW5kb3dvdmVybGF5LWljb25zIiwKICAibmFtZSI6ICJXaW5kb3dPdmVybGF5IEljb25zIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndpbmRvd292ZXJsYXktaWNvbnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdXN0bWkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXdpbmRvd292ZXJsYXktaWNvbnMiLAogICJ1dWlkIjogIndpbmRvd292ZXJsYXktaWNvbnNAc3VzdG1pZG93bi5jZW50cnVtLmN6IiwKICAidmVyc2lvbiI6IDM3Cn0="}}}
@@ -32,7 +33,7 @@
 , {"uuid": "status-area-horizontal-spacing@mathematical.coffee.gmail.com", "name": "Status Area Horizontal Spacing", "pname": "status-area-horizontal-spacing", "description": "Reduce the horizontal spacing between icons in the top-right status area", "link": "https://extensions.gnome.org/extension/355/status-area-horizontal-spacing/", "shell_version_map": {"38": {"version": "16", "sha256": "05hhj10hlcpbgd9sbvq89vxzqj6ndf21syas8zidy6yfy613b6l3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjQiLAogICAgIjMuNiIsCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "40": {"version": "21", "sha256": "1szpxz6ybvq76di2a6bkyv234v0afw2bn12xjcgdzpzvxzr9y3da", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "41": {"version": "21", "sha256": "1szpxz6ybvq76di2a6bkyv234v0afw2bn12xjcgdzpzvxzr9y3da", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}, "42": {"version": "21", "sha256": "1szpxz6ybvq76di2a6bkyv234v0afw2bn12xjcgdzpzvxzr9y3da", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlZHVjZSB0aGUgaG9yaXpvbnRhbCBzcGFjaW5nIGJldHdlZW4gaWNvbnMgaW4gdGhlIHRvcC1yaWdodCBzdGF0dXMgYXJlYSIsCiAgImRldi12ZXJzaW9uIjogIjIuMS40IiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAibmFtZSI6ICJTdGF0dXMgQXJlYSBIb3Jpem9udGFsIFNwYWNpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3RhdHVzLWFyZWEtaG9yaXpvbnRhbC1zcGFjaW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vcDkxcGF1bC9zdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmctZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJzdGF0dXMtYXJlYS1ob3Jpem9udGFsLXNwYWNpbmdAbWF0aGVtYXRpY2FsLmNvZmZlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjEKfQ=="}}}
 , {"uuid": "activities-config@nls1729", "name": "Activities Configurator", "pname": "activities-configurator", "description": "Activities Configurator, activities-config@nls1729 -  Effective March 29, 2021 the extension is NOT MAINTAINED.  I give my permission to anyone who may want to become the maintainer.  I do not have the free time or energy necessary to maintain the extension.\n\nConfigure the Activities Button and Top Panel. Select an icon. Change the text. Disable Hot Corner or set the Hot Corner Threshold. Set Panel Background color and transparency plus much more to enhance your desktop.  Click the icon or text with the secondary mouse button to launch the GS Extension Prefs.", "link": "https://extensions.gnome.org/extension/358/activities-configurator/", "shell_version_map": {"38": {"version": "89", "sha256": "1z00smimg5fj6ri35g80bvfzzy5xxxrgwy4idsakphszdwryi8ny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjdGl2aXRpZXMgQ29uZmlndXJhdG9yLCBhY3Rpdml0aWVzLWNvbmZpZ0BubHMxNzI5IC0gIEVmZmVjdGl2ZSBNYXJjaCAyOSwgMjAyMSB0aGUgZXh0ZW5zaW9uIGlzIE5PVCBNQUlOVEFJTkVELiAgSSBnaXZlIG15IHBlcm1pc3Npb24gdG8gYW55b25lIHdobyBtYXkgd2FudCB0byBiZWNvbWUgdGhlIG1haW50YWluZXIuICBJIGRvIG5vdCBoYXZlIHRoZSBmcmVlIHRpbWUgb3IgZW5lcmd5IG5lY2Vzc2FyeSB0byBtYWludGFpbiB0aGUgZXh0ZW5zaW9uLlxuXG5Db25maWd1cmUgdGhlIEFjdGl2aXRpZXMgQnV0dG9uIGFuZCBUb3AgUGFuZWwuIFNlbGVjdCBhbiBpY29uLiBDaGFuZ2UgdGhlIHRleHQuIERpc2FibGUgSG90IENvcm5lciBvciBzZXQgdGhlIEhvdCBDb3JuZXIgVGhyZXNob2xkLiBTZXQgUGFuZWwgQmFja2dyb3VuZCBjb2xvciBhbmQgdHJhbnNwYXJlbmN5IHBsdXMgbXVjaCBtb3JlIHRvIGVuaGFuY2UgeW91ciBkZXNrdG9wLiAgQ2xpY2sgdGhlIGljb24gb3IgdGV4dCB3aXRoIHRoZSBzZWNvbmRhcnkgbW91c2UgYnV0dG9uIHRvIGxhdW5jaCB0aGUgR1MgRXh0ZW5zaW9uIFByZWZzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJhY3Rpdml0aWVzLWNvbmZpZyIsCiAgImdldHRleHQtZG9tYWluIjogImFjdGl2aXRpZXMtY29uZmlnLWV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQWN0aXZpdGllcyBDb25maWd1cmF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWN0aXZpdGllcy1jb25maWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmxzMTcyOS5naXRodWIuaW8vYWN0aXZpdGllc19jb25maWcuaHRtbCIsCiAgInV1aWQiOiAiYWN0aXZpdGllcy1jb25maWdAbmxzMTcyOSIsCiAgInZlcnNpb24iOiA4OQp9"}}}
 , {"uuid": "calc@danigm.wadobo.com", "name": "calc", "pname": "calc", "description": "Simple run dialog calculation", "link": "https://extensions.gnome.org/extension/388/calc/", "shell_version_map": {"40": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "10", "sha256": "0zp9riszgiagai57mkl9pzj34fwg30l33ib611dddapvvj19y5cg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBydW4gZGlhbG9nIGNhbGN1bGF0aW9uIiwKICAibmFtZSI6ICJjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImNhbGNAZGFuaWdtLndhZG9iby5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
-, {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "14", "sha256": "1bapw3dkwqa4rj85ip68655rid3z1xjch00ds5p6fyhwdxwdkg3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "41": {"version": "14", "sha256": "1bapw3dkwqa4rj85ip68655rid3z1xjch00ds5p6fyhwdxwdkg3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}, "42": {"version": "14", "sha256": "1bapw3dkwqa4rj85ip68655rid3z1xjch00ds5p6fyhwdxwdkg3w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNAp9"}}}
+, {"uuid": "remmina-search-provider@alexmurray.github.com", "name": "Remmina Search Provider", "pname": "remmina-search-provider", "description": "Search for Remmina Remote Desktop Connections\n\nEasily search for and launch connections to remote machines by name and protocol.", "link": "https://extensions.gnome.org/extension/473/remmina-search-provider/", "shell_version_map": {"40": {"version": "15", "sha256": "1z1myqwj9wmz3li7y6zlb3ma1icmj2gpna4qb8nzm6girrkajwda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "1z1myqwj9wmz3li7y6zlb3ma1icmj2gpna4qb8nzm6girrkajwda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "1z1myqwj9wmz3li7y6zlb3ma1icmj2gpna4qb8nzm6girrkajwda", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBmb3IgUmVtbWluYSBSZW1vdGUgRGVza3RvcCBDb25uZWN0aW9uc1xuXG5FYXNpbHkgc2VhcmNoIGZvciBhbmQgbGF1bmNoIGNvbm5lY3Rpb25zIHRvIHJlbW90ZSBtYWNoaW5lcyBieSBuYW1lIGFuZCBwcm90b2NvbC4iLAogICJuYW1lIjogIlJlbW1pbmEgU2VhcmNoIFByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjMyIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleG11cnJheS9yZW1taW5hLXNlYXJjaC1wcm92aWRlci8iLAogICJ1dWlkIjogInJlbW1pbmEtc2VhcmNoLXByb3ZpZGVyQGFsZXhtdXJyYXkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "uptime-indicator@gniourfgniourf.gmail.com", "name": "Uptime Indicator", "pname": "uptime-indicator", "description": "Indicates uptime in status area. When clicked, a popup menu indicates the date when the system was started.", "link": "https://extensions.gnome.org/extension/508/uptime-indicator/", "shell_version_map": {"38": {"version": "19", "sha256": "0028ndjfvsq48fnzpkx353b0nzcj04lqs92fz8fr4il6rmkx8a5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HbmlvdXJmL1VwdGltZS1JbmRpY2F0b3IiLAogICJ1dWlkIjogInVwdGltZS1pbmRpY2F0b3JAZ25pb3VyZmduaW91cmYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "0028ndjfvsq48fnzpkx353b0nzcj04lqs92fz8fr4il6rmkx8a5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HbmlvdXJmL1VwdGltZS1JbmRpY2F0b3IiLAogICJ1dWlkIjogInVwdGltZS1pbmRpY2F0b3JAZ25pb3VyZmduaW91cmYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "19", "sha256": "0028ndjfvsq48fnzpkx353b0nzcj04lqs92fz8fr4il6rmkx8a5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRlcyB1cHRpbWUgaW4gc3RhdHVzIGFyZWEuIFdoZW4gY2xpY2tlZCwgYSBwb3B1cCBtZW51IGluZGljYXRlcyB0aGUgZGF0ZSB3aGVuIHRoZSBzeXN0ZW0gd2FzIHN0YXJ0ZWQuIiwKICAibmFtZSI6ICJVcHRpbWUgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HbmlvdXJmL1VwdGltZS1JbmRpY2F0b3IiLAogICJ1dWlkIjogInVwdGltZS1pbmRpY2F0b3JAZ25pb3VyZmduaW91cmYuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "caffeine@patapon.info", "name": "Caffeine", "pname": "caffeine", "description": "Disable the screensaver and auto suspend", "link": "https://extensions.gnome.org/extension/517/caffeine/", "shell_version_map": {"38": {"version": "37", "sha256": "05g1910jcwkjl9gmvnk57ip20sbzy09mk4v6q2fm0pg8398v0vhf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}, "41": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}, "42": {"version": "41", "sha256": "0b3as6l7gd2k0swrgl0dah92l5gyia2slikllrakp2dfvpvxyd2g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgdGhlIHNjcmVlbnNhdmVyIGFuZCBhdXRvIHN1c3BlbmQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJuYW1lIjogIkNhZmZlaW5lIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmNhZmZlaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW9ucGF0YXBvbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2FmZmVpbmUiLAogICJ1dWlkIjogImNhZmZlaW5lQHBhdGFwb24uaW5mbyIsCiAgInZlcnNpb24iOiA0MQp9"}}}
 , {"uuid": "backslide@codeisland.org", "name": "BackSlide", "pname": "backslide", "description": "Automatic background-image (wallpaper) slideshow for Gnome Shell", "link": "https://extensions.gnome.org/extension/543/backslide/", "shell_version_map": {"38": {"version": "18", "sha256": "1vm4w61cksj9ya5z4xcy7h96bk0wwi5njp0lyhnqa8j2fgsq5iin", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9iaXRidWNrZXQub3JnL0x1a2FzS251dGgvYmFja3NsaWRlIiwKICAidXVpZCI6ICJiYWNrc2xpZGVAY29kZWlzbGFuZC5vcmciLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "0an1w35sbv5w7826xa3k8nl8hc3krxkzc8nhvgcp48z75n2wdksl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpYyBiYWNrZ3JvdW5kLWltYWdlICh3YWxscGFwZXIpIHNsaWRlc2hvdyBmb3IgR25vbWUgU2hlbGwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYWNrc2xpZGUiLAogICJuYW1lIjogIkJhY2tTbGlkZSIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJMdWthcyBLbnV0aCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2JpdGJ1Y2tldC5vcmcvTHVrYXNLbnV0aC9iYWNrc2xpZGUiLAogICJ1dWlkIjogImJhY2tzbGlkZUBjb2RlaXNsYW5kLm9yZyIsCiAgInZlcnNpb24iOiAyNAp9"}}}
@@ -43,11 +44,11 @@
 , {"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=="}}}
 , {"uuid": "autohide-battery@sitnik.ru", "name": "Autohide Battery", "pname": "autohide-battery", "description": "Hide battery icon in top panel, if battery is fully charged and AC is connected", "link": "https://extensions.gnome.org/extension/595/autohide-battery/", "shell_version_map": {"40": {"version": "27", "sha256": "0wgsnqnn5mgrr2sn1bsjrsl028swbwfdmf9zclb7sz859ia88zlp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "41": {"version": "27", "sha256": "0wgsnqnn5mgrr2sn1bsjrsl028swbwfdmf9zclb7sz859ia88zlp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "42": {"version": "27", "sha256": "0wgsnqnn5mgrr2sn1bsjrsl028swbwfdmf9zclb7sz859ia88zlp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgYmF0dGVyeSBpY29uIGluIHRvcCBwYW5lbCwgaWYgYmF0dGVyeSBpcyBmdWxseSBjaGFyZ2VkIGFuZCBBQyBpcyBjb25uZWN0ZWQiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhdXRvaGlkZS1iYXR0ZXJ5IiwKICAibmFtZSI6ICJBdXRvaGlkZSBCYXR0ZXJ5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWkvYXV0b2hpZGUtYmF0dGVyeSIsCiAgInV1aWQiOiAiYXV0b2hpZGUtYmF0dGVyeUBzaXRuaWsucnUiLAogICJ2ZXJzaW9uIjogMjcKfQ=="}}}
 , {"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="}, "40": {"version": "31", "sha256": "0c667wdrpfd8bh2wygglzk1bp63z6xvknhj2rhw8v3vlmhpn8994", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zIiwKICAibmFtZSI6ICJMYXVuY2ggbmV3IGluc3RhbmNlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAibGF1bmNoLW5ldy1pbnN0YW5jZUBnbm9tZS1zaGVsbC1leHRlbnNpb25zLmdjYW1wYXguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAzMQp9"}, "41": {"version": "33", "sha256": "1z2kjrqaziw5v5sig92kng302w3pdkkkcl7dlhwjqlgfhkhpdxlm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "42": {"version": "34", "sha256": "1vx1dbb8sq5ss3ilqah92nja6ivqnijywj2wkg29akz8ijbss19f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsd2F5cyBsYXVuY2ggYSBuZXcgaW5zdGFuY2Ugd2hlbiBjbGlja2luZyBpbiB0aGUgZGFzaCBvciB0aGUgYXBwbGljYXRpb24gdmlldy5cblRoaXMgZXh0ZW5zaW9uIGlzIHBhcnQgb2YgQ2xhc3NpYyBNb2RlIGFuZCBpcyBvZmZpY2lhbGx5IHN1cHBvcnRlZCBieSBHTk9NRS4gUGxlYXNlIGRvIG5vdCByZXBvcnQgYnVncyB1c2luZyB0aGUgZm9ybSBiZWxvdywgdXNlIEdOT01FJ3MgR2l0TGFiIGluc3RhbmNlIGluc3RlYWQuIiwKICAiZXh0ZW5zaW9uLWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2UiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGF1bmNoLW5ldy1pbnN0YW5jZSIsCiAgIm5hbWUiOiAiTGF1bmNoIG5ldyBpbnN0YW5jZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5sYXVuY2gtbmV3LWluc3RhbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogImxhdW5jaC1uZXctaW5zdGFuY2VAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
-, {"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=="}, "40": {"version": "41", "sha256": "16vf0b3wqr5s6fqxqlz3ly28nkvsv3ygvfk1sqxgrpqnw823x8bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "41": {"version": "42", "sha256": "1jhgnzlrpnbhqx4rkr9nf7yrwdbc9h6n46aindfpp7kdgv2spymi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "42": {"version": "43", "sha256": "1dslg2dn48jqjd8mh2bcxrzp98skf1wgfhygw3l9fjaw41jvv1jv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDMKfQ=="}}}
+, {"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=="}, "40": {"version": "41", "sha256": "16vf0b3wqr5s6fqxqlz3ly28nkvsv3ygvfk1sqxgrpqnw823x8bl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDEKfQ=="}, "41": {"version": "42", "sha256": "1jhgnzlrpnbhqx4rkr9nf7yrwdbc9h6n46aindfpp7kdgv2spymi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "42": {"version": "44", "sha256": "1qx4x2hjqq8q8npbana1mkkyv97rkylddqybiyndcivvwwqq96wf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgYSB3aW5kb3cgbGlzdCBhdCB0aGUgYm90dG9tIG9mIHRoZSBzY3JlZW4uXG5UaGlzIGV4dGVuc2lvbiBpcyBwYXJ0IG9mIENsYXNzaWMgTW9kZSBhbmQgaXMgb2ZmaWNpYWxseSBzdXBwb3J0ZWQgYnkgR05PTUUuIFBsZWFzZSBkbyBub3QgcmVwb3J0IGJ1Z3MgdXNpbmcgdGhlIGZvcm0gYmVsb3csIHVzZSBHTk9NRSdzIEdpdExhYiBpbnN0YW5jZSBpbnN0ZWFkLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aW5kb3ctbGlzdCIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi13aW5kb3ctbGlzdCIsCiAgIm5hbWUiOiAiV2luZG93IExpc3QiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMud2luZG93LWxpc3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAid2luZG93LWxpc3RAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}}}
 , {"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="}}}
 , {"uuid": "appindicatorsupport@rgcjonas.gmail.com", "name": "AppIndicator and KStatusNotifierItem Support", "pname": "appindicator-support", "description": "Adds AppIndicator, KStatusNotifierItem and legacy Tray icons support to the Shell", "link": "https://extensions.gnome.org/extension/615/appindicator-support/", "shell_version_map": {"38": {"version": "42", "sha256": "0141f3y8vhk3q9v0w295hb5j679rh04isqnmsnihmsjdnw61b7fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdWJ1bnR1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBpbmRpY2F0b3IiLAogICJ1dWlkIjogImFwcGluZGljYXRvcnN1cHBvcnRAcmdjam9uYXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "40": {"version": "42", "sha256": "0141f3y8vhk3q9v0w295hb5j679rh04isqnmsnihmsjdnw61b7fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdWJ1bnR1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBpbmRpY2F0b3IiLAogICJ1dWlkIjogImFwcGluZGljYXRvcnN1cHBvcnRAcmdjam9uYXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "41": {"version": "42", "sha256": "0141f3y8vhk3q9v0w295hb5j679rh04isqnmsnihmsjdnw61b7fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdWJ1bnR1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBpbmRpY2F0b3IiLAogICJ1dWlkIjogImFwcGluZGljYXRvcnN1cHBvcnRAcmdjam9uYXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "42": {"version": "42", "sha256": "0141f3y8vhk3q9v0w295hb5j679rh04isqnmsnihmsjdnw61b7fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgQXBwSW5kaWNhdG9yLCBLU3RhdHVzTm90aWZpZXJJdGVtIGFuZCBsZWdhY3kgVHJheSBpY29ucyBzdXBwb3J0IHRvIHRoZSBTaGVsbCIsCiAgImdldHRleHQtZG9tYWluIjogIkFwcEluZGljYXRvckV4dGVuc2lvbiIsCiAgIm5hbWUiOiAiQXBwSW5kaWNhdG9yIGFuZCBLU3RhdHVzTm90aWZpZXJJdGVtIFN1cHBvcnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdWJ1bnR1L2dub21lLXNoZWxsLWV4dGVuc2lvbi1hcHBpbmRpY2F0b3IiLAogICJ1dWlkIjogImFwcGluZGljYXRvcnN1cHBvcnRAcmdjam9uYXMuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}}}
 , {"uuid": "bitcoin-markets@ottoallmendinger.github.com", "name": "Bitcoin Markets", "pname": "bitcoin-markets", "description": "Display info on various crypto-currency exchanges.", "link": "https://extensions.gnome.org/extension/648/bitcoin-markets/", "shell_version_map": {"38": {"version": "57", "sha256": "1dbrkr49gi93nps610afvw2q68d1ialkhxsxd0waa8xgwjxwzyxd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjU3IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3R0b0FsbG1lbmRpbmdlci9nbm9tZS1zaGVsbC1iaXRjb2luLW1hcmtldHMvIiwKICAidXVpZCI6ICJiaXRjb2luLW1hcmtldHNAb3R0b2FsbG1lbmRpbmdlci5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDU3Cn0="}, "40": {"version": "65", "sha256": "10jg1ixk0zfb67licr807wf68bzsdiv9fb9j40xjg49li72c6hrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY1IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="}, "41": {"version": "65", "sha256": "10jg1ixk0zfb67licr807wf68bzsdiv9fb9j40xjg49li72c6hrf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY1IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLWJpdGNvaW4tbWFya2V0cy8iLAogICJ1dWlkIjogImJpdGNvaW4tbWFya2V0c0BvdHRvYWxsbWVuZGluZ2VyLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNjUKfQ=="}, "42": {"version": "66", "sha256": "0a1156n4ding1ypjnxm1xz5cqihrf5m2d4bf2zmci29nsjina9c8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgaW5mbyBvbiB2YXJpb3VzIGNyeXB0by1jdXJyZW5jeSBleGNoYW5nZXMuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzIiwKICAiZ2l0LXZlcnNpb24iOiAidjY2IiwKICAibmFtZSI6ICJCaXRjb2luIE1hcmtldHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYml0Y29pbi1tYXJrZXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL090dG9BbGxtZW5kaW5nZXIvZ25vbWUtc2hlbGwtYml0Y29pbi1tYXJrZXRzLyIsCiAgInV1aWQiOiAiYml0Y29pbi1tYXJrZXRzQG90dG9hbGxtZW5kaW5nZXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Ngp9"}}}
-, {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {"38": {"version": "65", "sha256": "0kb7crng8lmkcjjxzd7ma2x0x43rg4j5ygvvpiq5z2j15rx8bcg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy42IiwKICAgICIzLjgiLAogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lbWFzYWIvc2hlbGx0aWxlIiwKICAidXVpZCI6ICJTaGVsbFRpbGVAZW1hc2FiLml0IiwKICAidmVyc2lvbiI6IDY1Cn0="}}}
+, {"uuid": "ShellTile@emasab.it", "name": "ShellTile", "pname": "shelltile", "description": "A tiling window extension for GNOME Shell. Just move a window to the edges of the screen to create a tiling, otherwise move a window over another one, holding down the Control key. Grouped windows minimize, resize, raise and change workspace together. Move or maximize a window to remove it from the group.", "link": "https://extensions.gnome.org/extension/657/shelltile/", "shell_version_map": {"38": {"version": "69", "sha256": "1kpsqaq2fcj1z3jcbvgh23c8k6bv9l6vyl05kpw0fclzsmy60mh1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGlsaW5nIHdpbmRvdyBleHRlbnNpb24gZm9yIEdOT01FIFNoZWxsLiBKdXN0IG1vdmUgYSB3aW5kb3cgdG8gdGhlIGVkZ2VzIG9mIHRoZSBzY3JlZW4gdG8gY3JlYXRlIGEgdGlsaW5nLCBvdGhlcndpc2UgbW92ZSBhIHdpbmRvdyBvdmVyIGFub3RoZXIgb25lLCBob2xkaW5nIGRvd24gdGhlIENvbnRyb2wga2V5LiBHcm91cGVkIHdpbmRvd3MgbWluaW1pemUsIHJlc2l6ZSwgcmFpc2UgYW5kIGNoYW5nZSB3b3Jrc3BhY2UgdG9nZXRoZXIuIE1vdmUgb3IgbWF4aW1pemUgYSB3aW5kb3cgdG8gcmVtb3ZlIGl0IGZyb20gdGhlIGdyb3VwLiIsCiAgImdldHRleHQtZG9tYWluIjogInNoZWxsdGlsZSIsCiAgIm5hbWUiOiAiU2hlbGxUaWxlIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsdGlsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy44IiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZW1hc2FiL3NoZWxsdGlsZSIsCiAgInV1aWQiOiAiU2hlbGxUaWxlQGVtYXNhYi5pdCIsCiAgInZlcnNpb24iOiA2OQp9"}}}
 , {"uuid": "lunarcal@ailin.nemui", "name": "Lunar Calendar 农历", "pname": "lunar-calendar", "description": "Display Chinese Lunar Calendar in panel\n\n⚠⚠⚠ dependency: typelib-1_0-LunarDate-3_0 / gir1.2-lunar-date-2.0", "link": "https://extensions.gnome.org/extension/675/lunar-calendar/", "shell_version_map": {"38": {"version": "25", "sha256": "1pj439wdsqpxim6p4d0y09v40kdjga908hagxfyvq0fzjykc51rn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjUKfQ=="}, "40": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "42": {"version": "28", "sha256": "068y5dy81ykmxy3cxi45xq0a0jg061fp22x9zhd4965kmvzqiq4g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNyZWF0b3IiOiAiTmVpIiwKICAiZGVzY3JpcHRpb24iOiAiRGlzcGxheSBDaGluZXNlIEx1bmFyIENhbGVuZGFyIGluIHBhbmVsXG5cblx1MjZhMFx1MjZhMFx1MjZhMCBkZXBlbmRlbmN5OiB0eXBlbGliLTFfMC1MdW5hckRhdGUtM18wIC8gZ2lyMS4yLWx1bmFyLWRhdGUtMi4wIiwKICAibmFtZSI6ICJMdW5hciBDYWxlbmRhciBcdTUxOWNcdTUzODYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubHVuYXItY2FsZW5kYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibHVuYXJjYWxAYWlsaW4ubmVtdWkiLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
 , {"uuid": "EasyScreenCast@iacopodeenosee.gmail.com", "name": "EasyScreenCast", "pname": "easyscreencast", "description": "This extension simplifies the use of the video recording function integrated in gnome shell, allows quickly to change the various settings of the desktop recording.\n\nSOURCE CODE ->  https://github.com/EasyScreenCast/EasyScreenCast\n\nVIDEO ->  https://youtu.be/81E9AruraKU\n\n**NOTICE**\nif an error occurs during the update is recommended to reload GNOME Shell (Alt + F2, 'r') and reload the extension's installation page.", "link": "https://extensions.gnome.org/extension/690/easyscreencast/", "shell_version_map": {"38": {"version": "45", "sha256": "0plk308mc45py7xp02y5bvsidyg4fgsph9p8wmr2wr0wyz74c0iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "40": {"version": "45", "sha256": "0plk308mc45py7xp02y5bvsidyg4fgsph9p8wmr2wr0wyz74c0iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "41": {"version": "45", "sha256": "0plk308mc45py7xp02y5bvsidyg4fgsph9p8wmr2wr0wyz74c0iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDUKfQ=="}, "42": {"version": "45", "sha256": "0plk308mc45py7xp02y5bvsidyg4fgsph9p8wmr2wr0wyz74c0iq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHNpbXBsaWZpZXMgdGhlIHVzZSBvZiB0aGUgdmlkZW8gcmVjb3JkaW5nIGZ1bmN0aW9uIGludGVncmF0ZWQgaW4gZ25vbWUgc2hlbGwsIGFsbG93cyBxdWlja2x5IHRvIGNoYW5nZSB0aGUgdmFyaW91cyBzZXR0aW5ncyBvZiB0aGUgZGVza3RvcCByZWNvcmRpbmcuXG5cblNPVVJDRSBDT0RFIC0+ICBodHRwczovL2dpdGh1Yi5jb20vRWFzeVNjcmVlbkNhc3QvRWFzeVNjcmVlbkNhc3RcblxuVklERU8gLT4gIGh0dHBzOi8veW91dHUuYmUvODFFOUFydXJhS1VcblxuKipOT1RJQ0UqKlxuaWYgYW4gZXJyb3Igb2NjdXJzIGR1cmluZyB0aGUgdXBkYXRlIGlzIHJlY29tbWVuZGVkIHRvIHJlbG9hZCBHTk9NRSBTaGVsbCAoQWx0ICsgRjIsICdyJykgYW5kIHJlbG9hZCB0aGUgZXh0ZW5zaW9uJ3MgaW5zdGFsbGF0aW9uIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRWFzeVNjcmVlbkNhc3RAaWFjb3BvZGVlbm9zZWUuZ21haWwuY29tIiwKICAibmFtZSI6ICJFYXN5U2NyZWVuQ2FzdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5FYXN5U2NyZWVuQ2FzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Vhc3lTY3JlZW5DYXN0L0Vhc3lTY3JlZW5DYXN0IiwKICAidXVpZCI6ICJFYXN5U2NyZWVuQ2FzdEBpYWNvcG9kZWVub3NlZS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDUKfQ=="}}}
 , {"uuid": "scroll-workspaces@gfxmonk.net", "name": "Top Panel Workspace Scroll", "pname": "top-panel-workspace-scroll", "description": "Change workspaces by scrolling over the top panel", "link": "https://extensions.gnome.org/extension/701/top-panel-workspace-scroll/", "shell_version_map": {"40": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "41": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}, "42": {"version": "31", "sha256": "0zc37qnzmnc4l9j8q23bxl59xxwz31pk4wc3vamzwgz65ncjn469", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB3b3Jrc3BhY2VzIGJ5IHNjcm9sbGluZyBvdmVyIHRoZSB0b3AgcGFuZWwiLAogICJuYW1lIjogIlRvcCBQYW5lbCBXb3Jrc3BhY2UgU2Nyb2xsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ0aW1AZ2Z4bW9uay5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5ldC5nZnhtb25rLnNjcm9sbC13b3Jrc3BhY2VzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2Z4bW9uay9nbm9tZS1zaGVsbC1zY3JvbGwtd29ya3NwYWNlcyIsCiAgInV1aWQiOiAic2Nyb2xsLXdvcmtzcGFjZXNAZ2Z4bW9uay5uZXQiLAogICJ2ZXJzaW9uIjogMzEKfQ=="}}}
@@ -56,26 +57,26 @@
 , {"uuid": "pixel-saver@deadalnix.me", "name": "Pixel Saver", "pname": "pixel-saver", "description": "Pixel Saver is designed to save pixel by fusing activity bar and title bar in a natural way", "link": "https://extensions.gnome.org/extension/723/pixel-saver/", "shell_version_map": {"38": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "40": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "41": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "42": {"version": "26", "sha256": "1i284r5443cypw7jq31rrbc4f075piaq872331qnrrynv4s1k8cn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlBpeGVsIFNhdmVyIGlzIGRlc2lnbmVkIHRvIHNhdmUgcGl4ZWwgYnkgZnVzaW5nIGFjdGl2aXR5IGJhciBhbmQgdGl0bGUgYmFyIGluIGEgbmF0dXJhbCB3YXkiLAogICJuYW1lIjogIlBpeGVsIFNhdmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MC4wIiwKICAgICI0MC4xIiwKICAgICI0MC4yIiwKICAgICI0MC4zIiwKICAgICI0MS4wIiwKICAgICI0Mi4wIiwKICAgICI0MS4xIiwKICAgICI0MS4yIiwKICAgICI0MS4zIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVhZGFsbml4L3BpeGVsLXNhdmVyIiwKICAidXVpZCI6ICJwaXhlbC1zYXZlckBkZWFkYWxuaXgubWUiLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
 , {"uuid": "breakreminder@danielfalk22.gmail.com", "name": "Break Reminder", "pname": "break-reminder", "description": "Get a reminder to take a break", "link": "https://extensions.gnome.org/extension/734/break-reminder/", "shell_version_map": {"38": {"version": "6", "sha256": "0k21wj98ldx52m7s8sgndqziqnn7n0g2j45lsi31kfjydhyj3dmk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBhIHJlbWluZGVyIHRvIHRha2UgYSBicmVhayIsCiAgIm5hbWUiOiAiQnJlYWsgUmVtaW5kZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZWxmYWxrL2dub21lM2JyZWFrcmVtaW5kZXIiLAogICJ1dWlkIjogImJyZWFrcmVtaW5kZXJAZGFuaWVsZmFsazIyLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "Hide_Activities@shay.shayel.org", "name": "Hide Activities Button", "pname": "hide-activities-button", "description": "Hides the Activities button from the status bar (the hot corner and keyboard shortcut keeps working). To disable top left hot corner use 'No Topleft Hot Corner' extension — https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ .", "link": "https://extensions.gnome.org/extension/744/hide-activities-button/", "shell_version_map": {"38": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "0kr8ygb5wv2p2fzkd5gm7v9kcc54mdcrb4v1v3x1sniqgq69d856", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGVzIHRoZSBBY3Rpdml0aWVzIGJ1dHRvbiBmcm9tIHRoZSBzdGF0dXMgYmFyICh0aGUgaG90IGNvcm5lciBhbmQga2V5Ym9hcmQgc2hvcnRjdXQga2VlcHMgd29ya2luZykuIFRvIGRpc2FibGUgdG9wIGxlZnQgaG90IGNvcm5lciB1c2UgJ05vIFRvcGxlZnQgSG90IENvcm5lcicgZXh0ZW5zaW9uIFx1MjAxNCBodHRwczovL2V4dGVuc2lvbnMuZ25vbWUub3JnL2V4dGVuc2lvbi8xMTgvbm8tdG9wbGVmdC1ob3QtY29ybmVyLyAuIiwKICAibmFtZSI6ICJIaWRlIEFjdGl2aXRpZXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkhpZGVfQWN0aXZpdGllc0BzaGF5LnNoYXllbC5vcmciLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
-, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "Display weather information for any location on Earth in the GNOME Shell\n\nIf you get an error after updating, try one of the following:\n- Restart your GNOME session\n- Log out completely and log back in\n- Reboot", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "0z04lg2ym84x838ydcs5v7kfj4zpfi143mya148slvvlvfsynsg4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4tIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uXG4tIExvZyBvdXQgY29tcGxldGVseSBhbmQgbG9nIGJhY2sgaW5cbi0gUmVib290IiwKICAibG9jYWxlZGlyIjogIi91c3IvbG9jYWwvc2hhcmUvbG9jYWxlIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NrcmV3YmFsbC9vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDEwNQp9"}, "40": {"version": "113", "sha256": "15dgsz7675j6pva2dqd43z7lngs0flqbkjyimajqhkfmlybww86b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4tIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uXG4tIExvZyBvdXQgY29tcGxldGVseSBhbmQgbG9nIGJhY2sgaW5cbi0gUmVib290IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW9wZW53ZWF0aGVyIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVud2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NrcmV3YmFsbC9vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDExMwp9"}, "41": {"version": "113", "sha256": "15dgsz7675j6pva2dqd43z7lngs0flqbkjyimajqhkfmlybww86b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4tIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uXG4tIExvZyBvdXQgY29tcGxldGVseSBhbmQgbG9nIGJhY2sgaW5cbi0gUmVib290IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW9wZW53ZWF0aGVyIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVud2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NrcmV3YmFsbC9vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDExMwp9"}, "42": {"version": "113", "sha256": "15dgsz7675j6pva2dqd43z7lngs0flqbkjyimajqhkfmlybww86b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCB0cnkgb25lIG9mIHRoZSBmb2xsb3dpbmc6XG4tIFJlc3RhcnQgeW91ciBHTk9NRSBzZXNzaW9uXG4tIExvZyBvdXQgY29tcGxldGVseSBhbmQgbG9nIGJhY2sgaW5cbi0gUmVib290IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW9wZW53ZWF0aGVyIiwKICAibmFtZSI6ICJPcGVuV2VhdGhlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVud2VhdGhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3NrcmV3YmFsbC9vcGVud2VhdGhlciIsCiAgInV1aWQiOiAib3BlbndlYXRoZXItZXh0ZW5zaW9uQGplbnNsb2R5LmRlIiwKICAidmVyc2lvbiI6IDExMwp9"}}}
+, {"uuid": "openweather-extension@jenslody.de", "name": "OpenWeather", "pname": "openweather", "description": "Display weather information for any location on Earth in the GNOME Shell\n\nIf you get an error after updating: Reboot or logout.", "link": "https://extensions.gnome.org/extension/750/openweather/", "shell_version_map": {"38": {"version": "105", "sha256": "0zmwh4adcw05k2dqhckyjc490d7sbr39d9vfaq6lg2nrkw0bwfdy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nOiBSZWJvb3Qgb3IgbG9nb3V0LiIsCiAgImxvY2FsZWRpciI6ICIvdXNyL2xvY2FsL3NoYXJlL2xvY2FsZSIsCiAgIm5hbWUiOiAiT3BlbldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9za3Jld2JhbGwvb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMDUKfQ=="}, "40": {"version": "114", "sha256": "1z60wzrcrxkkvj7p5a4w16lihy685z7qhhkh0wp4cfn5h2l3hjc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nOiBSZWJvb3Qgb3IgbG9nb3V0LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgIm5hbWUiOiAiT3BlbldlYXRoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9za3Jld2JhbGwvb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="}, "41": {"version": "114", "sha256": "1z60wzrcrxkkvj7p5a4w16lihy685z7qhhkh0wp4cfn5h2l3hjc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nOiBSZWJvb3Qgb3IgbG9nb3V0LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgIm5hbWUiOiAiT3BlbldlYXRoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9za3Jld2JhbGwvb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="}, "42": {"version": "114", "sha256": "1z60wzrcrxkkvj7p5a4w16lihy685z7qhhkh0wp4cfn5h2l3hjc4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgd2VhdGhlciBpbmZvcm1hdGlvbiBmb3IgYW55IGxvY2F0aW9uIG9uIEVhcnRoIGluIHRoZSBHTk9NRSBTaGVsbFxuXG5JZiB5b3UgZ2V0IGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nOiBSZWJvb3Qgb3IgbG9nb3V0LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1vcGVud2VhdGhlciIsCiAgIm5hbWUiOiAiT3BlbldlYXRoZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMub3BlbndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9za3Jld2JhbGwvb3BlbndlYXRoZXIiLAogICJ1dWlkIjogIm9wZW53ZWF0aGVyLWV4dGVuc2lvbkBqZW5zbG9keS5kZSIsCiAgInZlcnNpb24iOiAxMTQKfQ=="}}}
 , {"uuid": "audio-output-switcher@anduchs", "name": "Audio Output Switcher", "pname": "audio-output-switcher", "description": "Adds a switch for choosing audio output to the system menu.", "link": "https://extensions.gnome.org/extension/751/audio-output-switcher/", "shell_version_map": {"38": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "40": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "02z1smlc0k308sr462l9pwf2gsldqdzjalbc364i4b7286qyakxc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBzd2l0Y2ggZm9yIGNob29zaW5nIGF1ZGlvIG91dHB1dCB0byB0aGUgc3lzdGVtIG1lbnUuIiwKICAibmFtZSI6ICJBdWRpbyBPdXRwdXQgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9naXRodWIuY29tL2FkYXhpL2F1ZGlvLW91dHB1dC1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYXVkaW8tb3V0cHV0LXN3aXRjaGVyQGFuZHVjaHMiLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "hibernate-status@dromi", "name": "Hibernate Status Button", "pname": "hibernate-status-button", "description": "Adds a Hibernate button in Status menu. Using Alt modifier, you can also select Hybrid Sleep instead.", "link": "https://extensions.gnome.org/extension/755/hibernate-status-button/", "shell_version_map": {"38": {"version": "27", "sha256": "0yqzg2nz040vsv0ilwkjkza03qxns18gq4055gq0c3k051jy6d4v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAibmFtZSI6ICJIaWJlcm5hdGUgU3RhdHVzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyZWxhbmdlL2dub21lLXNoZWxsLWV4dGVuc2lvbi1oaWJlcm5hdGUtc3RhdHVzIiwKICAidXVpZCI6ICJoaWJlcm5hdGUtc3RhdHVzQGRyb21pIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "40": {"version": "33", "sha256": "181j95bhmrkvxvpam8ysrxzsaznfkgnn92xxfkg86lavvyl1alv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJlbGFuZ2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWhpYmVybmF0ZS1zdGF0dXMiLAogICJ1dWlkIjogImhpYmVybmF0ZS1zdGF0dXNAZHJvbWkiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "41": {"version": "33", "sha256": "181j95bhmrkvxvpam8ysrxzsaznfkgnn92xxfkg86lavvyl1alv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJlbGFuZ2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWhpYmVybmF0ZS1zdGF0dXMiLAogICJ1dWlkIjogImhpYmVybmF0ZS1zdGF0dXNAZHJvbWkiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}, "42": {"version": "33", "sha256": "181j95bhmrkvxvpam8ysrxzsaznfkgnn92xxfkg86lavvyl1alv5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBIaWJlcm5hdGUgYnV0dG9uIGluIFN0YXR1cyBtZW51LiBVc2luZyBBbHQgbW9kaWZpZXIsIHlvdSBjYW4gYWxzbyBzZWxlY3QgSHlicmlkIFNsZWVwIGluc3RlYWQuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiaGliZXJuYXRlLXN0YXR1cy1idXR0b24iLAogICJuYW1lIjogIkhpYmVybmF0ZSBTdGF0dXMgQnV0dG9uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXJlbGFuZ2UvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWhpYmVybmF0ZS1zdGF0dXMiLAogICJ1dWlkIjogImhpYmVybmF0ZS1zdGF0dXNAZHJvbWkiLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
 , {"uuid": "minimizeall@scharlessantos.org", "name": "Minimize All", "pname": "minimize-all", "description": "Minimize all windows in current workspace", "link": "https://extensions.gnome.org/extension/760/minimize-all/", "shell_version_map": {"38": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}, "40": {"version": "20", "sha256": "15v6h4wcznrylip57spjdkz0jk6y7hcp47607pj0yx5dmxjaws86", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmltaXplIGFsbCB3aW5kb3dzIGluIGN1cnJlbnQgd29ya3NwYWNlIiwKICAibmFtZSI6ICJNaW5pbWl6ZSBBbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc2NoYXJsZXNzYW50b3MvbWluaW1pemVhbGwiLAogICJ1dWlkIjogIm1pbmltaXplYWxsQHNjaGFybGVzc2FudG9zLm9yZyIsCiAgInZlcnNpb24iOiAyMAp9"}}}
 , {"uuid": "fq@megh", "name": "Force Quit", "pname": "force-quit", "description": "Adds a force quit button.\nOn accidental click, right click or press [ESC] to undo.\nCustomize position by tweaking line 50 of extension.js", "link": "https://extensions.gnome.org/extension/770/force-quit/", "shell_version_map": {"38": {"version": "18", "sha256": "0xanpg1j01c8sngadxqavbi28187gnpzg32fwwdd091b1ijd235w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJuYW1lIjogIkZvcmNlIFF1aXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "26", "sha256": "0sg0jsyzqabc9qcxp93vj0w52nhca2mlrr8faw9qcrg7a8qpi11v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcUBtZWdoIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "41": {"version": "26", "sha256": "0sg0jsyzqabc9qcxp93vj0w52nhca2mlrr8faw9qcrg7a8qpi11v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcUBtZWdoIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjYKfQ=="}, "42": {"version": "26", "sha256": "0sg0jsyzqabc9qcxp93vj0w52nhca2mlrr8faw9qcrg7a8qpi11v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBmb3JjZSBxdWl0IGJ1dHRvbi5cbk9uIGFjY2lkZW50YWwgY2xpY2ssIHJpZ2h0IGNsaWNrIG9yIHByZXNzIFtFU0NdIHRvIHVuZG8uXG5DdXN0b21pemUgcG9zaXRpb24gYnkgdHdlYWtpbmcgbGluZSA1MCBvZiBleHRlbnNpb24uanMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJmcUBtZWdoIiwKICAibmFtZSI6ICJGb3JjZSBRdWl0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVnaHBya2gvZm9yY2UtcXVpdC8iLAogICJ1dWlkIjogImZxQG1lZ2giLAogICJ2ZXJzaW9uIjogMjYKfQ=="}}}
 , {"uuid": "ProxySwitcher@flannaghan.com", "name": "Proxy Switcher", "pname": "proxy-switcher", "description": "Switches between the system proxy settings profiles defined in Network Settings.", "link": "https://extensions.gnome.org/extension/771/proxy-switcher/", "shell_version_map": {"38": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "0ap55mxnhwzxzv95jfc4l3bz9v6z04yn53yf233vbjsdpx55vh38", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGJldHdlZW4gdGhlIHN5c3RlbSBwcm94eSBzZXR0aW5ncyBwcm9maWxlcyBkZWZpbmVkIGluIE5ldHdvcmsgU2V0dGluZ3MuIiwKICAibmFtZSI6ICJQcm94eSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RvbWZsYW5uYWdoYW4vcHJveHktc3dpdGNoZXIiLAogICJ1dWlkIjogIlByb3h5U3dpdGNoZXJAZmxhbm5hZ2hhbi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "clipboard-indicator@tudmotu.com", "name": "Clipboard Indicator", "pname": "clipboard-indicator", "description": "Clipboard Manager extension for Gnome-Shell - Adds a clipboard indicator to the top panel, and caches clipboard history.\n\nSee contributors here:\nhttps://github.com/Tudmotu/gnome-shell-extension-clipboard-indicator/graphs/contributors", "link": "https://extensions.gnome.org/extension/779/clipboard-indicator/", "shell_version_map": {"38": {"version": "37", "sha256": "1a9b5h4i17m3lmgs6qpmr30v2hjffsiad9rx0lgwcv7915a68pxp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LlxuXG5TZWUgY29udHJpYnV0b3JzIGhlcmU6XG5odHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvci9ncmFwaHMvY29udHJpYnV0b3JzIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAiY2xpcGJvYXJkLWluZGljYXRvckB0dWRtb3R1LmNvbSIsCiAgInZlcnNpb24iOiAzNwp9"}, "40": {"version": "38", "sha256": "1vd51yczzs2yhfql8n0hqnphfw05nkqkqrwnz4wcp1xqslrryi6g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LlxuXG5TZWUgY29udHJpYnV0b3JzIGhlcmU6XG5odHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvci9ncmFwaHMvY29udHJpYnV0b3JzIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogMzgKfQ=="}, "42": {"version": "42", "sha256": "1sgssg61z5dbqdcwychaxv0sv9g8392qa271iyn75p78l8lg03x9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsaXBib2FyZCBNYW5hZ2VyIGV4dGVuc2lvbiBmb3IgR25vbWUtU2hlbGwgLSBBZGRzIGEgY2xpcGJvYXJkIGluZGljYXRvciB0byB0aGUgdG9wIHBhbmVsLCBhbmQgY2FjaGVzIGNsaXBib2FyZCBoaXN0b3J5LlxuXG5TZWUgY29udHJpYnV0b3JzIGhlcmU6XG5odHRwczovL2dpdGh1Yi5jb20vVHVkbW90dS9nbm9tZS1zaGVsbC1leHRlbnNpb24tY2xpcGJvYXJkLWluZGljYXRvci9ncmFwaHMvY29udHJpYnV0b3JzIiwKICAibmFtZSI6ICJDbGlwYm9hcmQgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1R1ZG1vdHUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWNsaXBib2FyZC1pbmRpY2F0b3IiLAogICJ1dWlkIjogImNsaXBib2FyZC1pbmRpY2F0b3JAdHVkbW90dS5jb20iLAogICJ2ZXJzaW9uIjogNDIKfQ=="}}}
-, {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "42", "sha256": "05cs3s6q54la1rrbrmr39dsdfi4ldcp6zrh2h61g2q5ysm38h3rc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "41": {"version": "42", "sha256": "05cs3s6q54la1rrbrmr39dsdfi4ldcp6zrh2h61g2q5ysm38h3rc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}, "42": {"version": "42", "sha256": "05cs3s6q54la1rrbrmr39dsdfi4ldcp6zrh2h61g2q5ysm38h3rc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDIKfQ=="}}}
+, {"uuid": "pidgin@muffinmad", "name": "Pidgin IM integration", "pname": "pidgin-im-integration", "description": "Integrate Pidgin IMs in the Gnome Shell message tray", "link": "https://extensions.gnome.org/extension/782/pidgin-im-integration/", "shell_version_map": {"40": {"version": "43", "sha256": "08646prz1kf6maijn4dw5503j5psaijd6g2zlvc3lhvv2pvwjksx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}, "41": {"version": "43", "sha256": "08646prz1kf6maijn4dw5503j5psaijd6g2zlvc3lhvv2pvwjksx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}, "42": {"version": "43", "sha256": "08646prz1kf6maijn4dw5503j5psaijd6g2zlvc3lhvv2pvwjksx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBQaWRnaW4gSU1zIGluIHRoZSBHbm9tZSBTaGVsbCBtZXNzYWdlIHRyYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tcGlkZ2luIiwKICAibmFtZSI6ICJQaWRnaW4gSU0gaW50ZWdyYXRpb24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucGlkZ2luIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVmZmlubWFkL3BpZGdpbi1pbS1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBpZGdpbkBtdWZmaW5tYWQiLAogICJ2ZXJzaW9uIjogNDMKfQ=="}}}
 , {"uuid": "ShutdownTimer@neumann", "name": "ShutdownTimer", "pname": "shutdowntimer", "description": "Shutdown/suspend the device after a specific time.\n\nMaximum timer value und default slider position can be modified in the settings.", "link": "https://extensions.gnome.org/extension/792/shutdowntimer/", "shell_version_map": {"38": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "40": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}, "41": {"version": "34", "sha256": "1glzjcdv90w5mx0xqj57i0s3qgazr5dcdcin1kwb5mqvc362dd68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNodXRkb3duL3N1c3BlbmQgdGhlIGRldmljZSBhZnRlciBhIHNwZWNpZmljIHRpbWUuXG5cbk1heGltdW0gdGltZXIgdmFsdWUgdW5kIGRlZmF1bHQgc2xpZGVyIHBvc2l0aW9uIGNhbiBiZSBtb2RpZmllZCBpbiB0aGUgc2V0dGluZ3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiU2h1dGRvd25UaW1lciIsCiAgIm5hbWUiOiAiU2h1dGRvd25UaW1lciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV0ZG93bnRpbWVyLW5ldW1hbm4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25ldW1hbm4tZC9TaHV0ZG93blRpbWVyIiwKICAidXVpZCI6ICJTaHV0ZG93blRpbWVyQG5ldW1hbm4iLAogICJ2ZXJzaW9uIjogMzQKfQ=="}}}
 , {"uuid": "hide-dash@xenatt.github.com", "name": "Hide Dash X", "pname": "hide-dash", "description": "Hide the dash from the activities overview.", "link": "https://extensions.gnome.org/extension/805/hide-dash/", "shell_version_map": {"38": {"version": "10", "sha256": "059cy18awzv9qyn803zjyxiznacnf6pai8px2mb9mrbyf98153xz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGRhc2ggZnJvbSB0aGUgYWN0aXZpdGllcyBvdmVydmlldy4iLAogICJuYW1lIjogIkhpZGUgRGFzaCBYIiwKICAib3JpZ2luYWwtYXV0aG9yIjogInphY2JhcnRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0VkZW5ob2Zlci9NaW5pbWFsaXNtLUdub21lLVNoZWxsIiwKICAidXVpZCI6ICJoaWRlLWRhc2hAeGVuYXR0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "hide-workspace@xenatt.github.com", "name": "Hide Workspace Thumbnails", "pname": "hide-workspace-thumbnails", "description": "Hide workspace thumbnails from the overview. But don't worry they are still present and one can switch between them like usual with e.g. shortcuts..", "link": "https://extensions.gnome.org/extension/808/hide-workspace-thumbnails/", "shell_version_map": {"40": {"version": "16", "sha256": "0443zyqr2hwq5fj3h8zch8iav83xzj4bqn1k6qd5f2z46kvzj611", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgd29ya3NwYWNlIHRodW1ibmFpbHMgZnJvbSB0aGUgb3ZlcnZpZXcuIEJ1dCBkb24ndCB3b3JyeSB0aGV5IGFyZSBzdGlsbCBwcmVzZW50IGFuZCBvbmUgY2FuIHN3aXRjaCBiZXR3ZWVuIHRoZW0gbGlrZSB1c3VhbCB3aXRoIGUuZy4gc2hvcnRjdXRzLi4iLAogICJuYW1lIjogIkhpZGUgV29ya3NwYWNlIFRodW1ibmFpbHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTAiLAogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRWRlbmhvZmVyL01pbmltYWxpc20tR25vbWUtU2hlbGwiLAogICJ1dWlkIjogImhpZGUtd29ya3NwYWNlQHhlbmF0dC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"uuid": "keyman@dpoetzsch.github.com", "name": "KeyMan", "pname": "keyman", "description": "Access passwords from the gnome keyring in a convenient way:\nSimply search for your password and copy it to clipboad by clicking it. After a certain amount of time it will be removed automatically (default is 5 seconds). As this only works if the keyrings are unlocked, this extension also provides easy access to lock/unlock keyrings.", "link": "https://extensions.gnome.org/extension/819/keyman/", "shell_version_map": {"40": {"version": "20", "sha256": "1wd76bdnzs7mxwwyvffw0fm8r8chsblz3dinpwiyc5d5kmlnyv5v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBwYXNzd29yZHMgZnJvbSB0aGUgZ25vbWUga2V5cmluZyBpbiBhIGNvbnZlbmllbnQgd2F5OlxuU2ltcGx5IHNlYXJjaCBmb3IgeW91ciBwYXNzd29yZCBhbmQgY29weSBpdCB0byBjbGlwYm9hZCBieSBjbGlja2luZyBpdC4gQWZ0ZXIgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGl0IHdpbGwgYmUgcmVtb3ZlZCBhdXRvbWF0aWNhbGx5IChkZWZhdWx0IGlzIDUgc2Vjb25kcykuIEFzIHRoaXMgb25seSB3b3JrcyBpZiB0aGUga2V5cmluZ3MgYXJlIHVubG9ja2VkLCB0aGlzIGV4dGVuc2lvbiBhbHNvIHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIGxvY2svdW5sb2NrIGtleXJpbmdzLiIsCiAgIm5hbWUiOiAiS2V5TWFuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrZXltYW5AcG9laGUuZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtleW1hbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcG9ldHpzY2gva2V5bWFuIiwKICAidXVpZCI6ICJrZXltYW5AZHBvZXR6c2NoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjAKfQ=="}, "41": {"version": "22", "sha256": "0ijqdsmz6mid30cav7is9ypl0862y2d877zagr75cnq3jshplfbj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFjY2VzcyBwYXNzd29yZHMgZnJvbSB0aGUgZ25vbWUga2V5cmluZyBpbiBhIGNvbnZlbmllbnQgd2F5OlxuU2ltcGx5IHNlYXJjaCBmb3IgeW91ciBwYXNzd29yZCBhbmQgY29weSBpdCB0byBjbGlwYm9hZCBieSBjbGlja2luZyBpdC4gQWZ0ZXIgYSBjZXJ0YWluIGFtb3VudCBvZiB0aW1lIGl0IHdpbGwgYmUgcmVtb3ZlZCBhdXRvbWF0aWNhbGx5IChkZWZhdWx0IGlzIDUgc2Vjb25kcykuIEFzIHRoaXMgb25seSB3b3JrcyBpZiB0aGUga2V5cmluZ3MgYXJlIHVubG9ja2VkLCB0aGlzIGV4dGVuc2lvbiBhbHNvIHByb3ZpZGVzIGVhc3kgYWNjZXNzIHRvIGxvY2svdW5sb2NrIGtleXJpbmdzLiIsCiAgIm5hbWUiOiAiS2V5TWFuIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJrZXltYW5AcG9laGUuZGUiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmtleW1hbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kcG9ldHpzY2gva2V5bWFuIiwKICAidXVpZCI6ICJrZXltYW5AZHBvZXR6c2NoLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}}}
 , {"uuid": "time_tracker_jsnjack@gmail.com", "name": "Time Tracker", "pname": "time-tracker", "description": "Helps track time", "link": "https://extensions.gnome.org/extension/823/time-tracker/", "shell_version_map": {"40": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "41": {"version": "23", "sha256": "1q1jh3s6k6pmjssjmhzajmcr1qxdz4854fyfja0vbwcvxd6a8ff2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHBzIHRyYWNrIHRpbWUiLAogICJuYW1lIjogIlRpbWUgVHJhY2tlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aW1lLXRyYWNrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pzbmphY2svdGltZS10cmFja2VyLyIsCiAgInV1aWQiOiAidGltZV90cmFja2VyX2pzbmphY2tAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}}}
-, {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {"40": {"version": "24", "sha256": "1kcapf1hm7zibjjpfq1qas76xvgvf77snyxm0wy8f35h8g42wc20", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoaWxvbWF1cmVyL3B3Y2FsYyIsCiAgInV1aWQiOiAicHdjYWxjQHRoaWxvbWF1cmVyLmRlIiwKICAidmVyc2lvbiI6IDI0Cn0="}}}
+, {"uuid": "pwcalc@thilomaurer.de", "name": "Password Calculator", "pname": "password-calculator", "description": "This extension calculates strong passwords for each alias from your single secret. No need to remember dozens of passwords any longer. No need for a password manager any longer. Full freedom in choosing aliases and secret, e.g. alias: \"username@google.com#2014\", secret: \"saFe⚿in漢字\". Recent aliases are kept in a easily accessible drop-down. You may choose between HMAC_SHA1 and SHA1. The formula is as simple as \"[secret][alias]\" → SHA1 → BASE64 ", "link": "https://extensions.gnome.org/extension/825/password-calculator/", "shell_version_map": {"40": {"version": "26", "sha256": "18n86hy3a3gs3xfw6f88rag8gpvl742j8fmd6syp4wpgpqpvv7rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGlsb21hdXJlci9wd2NhbGMiLAogICJ1dWlkIjogInB3Y2FsY0B0aGlsb21hdXJlci5kZSIsCiAgInZlcnNpb24iOiAyNgp9"}, "42": {"version": "26", "sha256": "18n86hy3a3gs3xfw6f88rag8gpvl742j8fmd6syp4wpgpqpvv7rx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGNhbGN1bGF0ZXMgc3Ryb25nIHBhc3N3b3JkcyBmb3IgZWFjaCBhbGlhcyBmcm9tIHlvdXIgc2luZ2xlIHNlY3JldC4gTm8gbmVlZCB0byByZW1lbWJlciBkb3plbnMgb2YgcGFzc3dvcmRzIGFueSBsb25nZXIuIE5vIG5lZWQgZm9yIGEgcGFzc3dvcmQgbWFuYWdlciBhbnkgbG9uZ2VyLiBGdWxsIGZyZWVkb20gaW4gY2hvb3NpbmcgYWxpYXNlcyBhbmQgc2VjcmV0LCBlLmcuIGFsaWFzOiBcInVzZXJuYW1lQGdvb2dsZS5jb20jMjAxNFwiLCBzZWNyZXQ6IFwic2FGZVx1MjZiZmluXHU2ZjIyXHU1YjU3XCIuIFJlY2VudCBhbGlhc2VzIGFyZSBrZXB0IGluIGEgZWFzaWx5IGFjY2Vzc2libGUgZHJvcC1kb3duLiBZb3UgbWF5IGNob29zZSBiZXR3ZWVuIEhNQUNfU0hBMSBhbmQgU0hBMS4gVGhlIGZvcm11bGEgaXMgYXMgc2ltcGxlIGFzIFwiW3NlY3JldF1bYWxpYXNdXCIgXHUyMTkyIFNIQTEgXHUyMTkyIEJBU0U2NCAiLAogICJuYW1lIjogIlBhc3N3b3JkIENhbGN1bGF0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMucHdjYWxjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGlsb21hdXJlci9wd2NhbGMiLAogICJ1dWlkIjogInB3Y2FsY0B0aGlsb21hdXJlci5kZSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
 , {"uuid": "SwitchFocusType@romano.rgtti.com", "name": "Switch Focus Type", "pname": "switch-focus-type", "description": "Toggle between focus-follow-mouse and click-to-focus mode", "link": "https://extensions.gnome.org/extension/827/switch-focus-type/", "shell_version_map": {"38": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0fza40yd5ba53725pm82w43r368zams0kci59cddsh2nf8iqkk2y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBiZXR3ZWVuIGZvY3VzLWZvbGxvdy1tb3VzZSBhbmQgY2xpY2stdG8tZm9jdXMgbW9kZSIsCiAgIm5hbWUiOiAiU3dpdGNoIEZvY3VzIFR5cGUiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIlJvbWFubyBHaWFubmV0dGkgPHJvbWFuby5naWFubmV0dGlAZ21haWwuY29tPiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUm1hbm8vZ3NlLXN3aXRjaC1mb2N1cy1tb2RlIiwKICAidXVpZCI6ICJTd2l0Y2hGb2N1c1R5cGVAcm9tYW5vLnJndHRpLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
 , {"uuid": "radio@hslbck.gmail.com", "name": "Internet Radio", "pname": "internet-radio", "description": "Listen to an Internet Radio Stream", "link": "https://extensions.gnome.org/extension/836/internet-radio/", "shell_version_map": {"38": {"version": "14", "sha256": "013wbf3npz7f438i39cd41s6whs4lgaigv4i1zais994n9ybw5y9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "41": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}, "42": {"version": "19", "sha256": "046lh1yhaa2yp64n0ax1abzlw26avnr8z1yc3v6wral9xkz5c94h", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpc3RlbiB0byBhbiBJbnRlcm5ldCBSYWRpbyBTdHJlYW0iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJyYWRpb0Boc2xiY2suZ21haWwuY29tIiwKICAibmFtZSI6ICJJbnRlcm5ldCBSYWRpbyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yYWRpbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzbGJjay9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmFkaW8iLAogICJ1dWlkIjogInJhZGlvQGhzbGJjay5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTkKfQ=="}}}
 , {"uuid": "freon@UshakovVasilii_Github.yahoo.com", "name": "Freon", "pname": "freon", "description": "Shows CPU temperature, disk temperature, video card temperature (NVIDIA/Catalyst/Bumblebee&NVIDIA), voltage and fan RPM (forked from xtranophilist/gnome-shell-extension-sensors)", "link": "https://extensions.gnome.org/extension/841/freon/", "shell_version_map": {"38": {"version": "43", "sha256": "06jj01flj6iyx93aqz8ipzijnrammp6xqpgqwxfh0pf2clr6nwrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0Mwp9"}, "40": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "41": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}, "42": {"version": "48", "sha256": "1hndv511wj15mjhk6xkxy51c7v55wj4lxbxl9iz10j89g0gf8yfh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIENQVSB0ZW1wZXJhdHVyZSwgZGlzayB0ZW1wZXJhdHVyZSwgdmlkZW8gY2FyZCB0ZW1wZXJhdHVyZSAoTlZJRElBL0NhdGFseXN0L0J1bWJsZWJlZSZOVklESUEpLCB2b2x0YWdlIGFuZCBmYW4gUlBNIChmb3JrZWQgZnJvbSB4dHJhbm9waGlsaXN0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1zZW5zb3JzKSIsCiAgImdldHRleHQtZG9tYWluIjogImZyZW9uIiwKICAibmFtZSI6ICJGcmVvbiIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mcmVvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1VzaGFrb3ZWYXNpbGlpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1mcmVvbiIsCiAgInV1aWQiOiAiZnJlb25AVXNoYWtvdlZhc2lsaWlfR2l0aHViLnlhaG9vLmNvbSIsCiAgInZlcnNpb24iOiA0OAp9"}}}
 , {"uuid": "shell-volume-mixer@derhofbauer.at", "name": "Volume Mixer", "pname": "volume-mixer", "description": "Applet allowing separate configuration of PulseAudio mixers.\n\nShell Volume Mixer is an extension for GNOME Shell allowing separate configuration of PulseAudio devices and output switches. It features a profile switcher to quickly switch between pinned profiles and devices.\n\nMiddle mouse click on a slider mutes the selected stream.\n\nPlease file bugs and feature requests on the GitHub page.", "link": "https://extensions.gnome.org/extension/858/volume-mixer/", "shell_version_map": {"38": {"version": "39", "sha256": "1cnyapjvqri5k5m4nbcmbcx97b4akwv32h7ddav2ipahqh1lqqzj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJuYW1lIjogIlZvbHVtZSBNaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZWhvL2dub21lLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgInV1aWQiOiAic2hlbGwtdm9sdW1lLW1peGVyQGRlcmhvZmJhdWVyLmF0IiwKICAidmVyc2lvbiI6IDM5Cn0="}, "40": {"version": "40", "sha256": "1s4jzq1iy006k3m0r28qiayb46135y71qqv583k1sn9sppda5b4d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0MAp9"}, "41": {"version": "44", "sha256": "0pbw1w3y9clq1pmxkblsp85kw5h8znhjf223bplqhjb74g89v80z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxldCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gbWl4ZXJzLlxuXG5TaGVsbCBWb2x1bWUgTWl4ZXIgaXMgYW4gZXh0ZW5zaW9uIGZvciBHTk9NRSBTaGVsbCBhbGxvd2luZyBzZXBhcmF0ZSBjb25maWd1cmF0aW9uIG9mIFB1bHNlQXVkaW8gZGV2aWNlcyBhbmQgb3V0cHV0IHN3aXRjaGVzLiBJdCBmZWF0dXJlcyBhIHByb2ZpbGUgc3dpdGNoZXIgdG8gcXVpY2tseSBzd2l0Y2ggYmV0d2VlbiBwaW5uZWQgcHJvZmlsZXMgYW5kIGRldmljZXMuXG5cbk1pZGRsZSBtb3VzZSBjbGljayBvbiBhIHNsaWRlciBtdXRlcyB0aGUgc2VsZWN0ZWQgc3RyZWFtLlxuXG5QbGVhc2UgZmlsZSBidWdzIGFuZCBmZWF0dXJlIHJlcXVlc3RzIG9uIHRoZSBHaXRIdWIgcGFnZS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb25zLXNoZWxsLXZvbHVtZS1taXhlciIsCiAgIm5hbWUiOiAiVm9sdW1lIE1peGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNoZWxsLXZvbHVtZS1taXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbGVoby9nbm9tZS1zaGVsbC12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInNoZWxsLXZvbHVtZS1taXhlckBkZXJob2ZiYXVlci5hdCIsCiAgInZlcnNpb24iOiA0NAp9"}}}
 , {"uuid": "FRC@jcdubacq.dubacq.fr", "name": "French Republican Calendar", "pname": "french-republican-calendar", "description": "Displays the French Republican Calendar in the top panel", "link": "https://extensions.gnome.org/extension/874/french-republican-calendar/", "shell_version_map": {"38": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "13mypljavdmy6rj00cphnkjiimdxw1hzj7mhzlq8m99x5h8d9ahg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciBpbiB0aGUgdG9wIHBhbmVsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiRlJDIiwKICAibmFtZSI6ICJGcmVuY2ggUmVwdWJsaWNhbiBDYWxlbmRhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOC4xIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJGUkNAamNkdWJhY3EuZHViYWNxLmZyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
-, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "27", "sha256": "0hwnrmbn8aciwbdw9rffrjg5md93bkrvfp8a4gmzrp6v946fd05p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "42": {"version": "28", "sha256": "1b675z6jb1g5kq2qav7b6wajjw9z7zlkh5z0p99cmh7vhz60q3sy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
+, {"uuid": "screenshot-window-sizer@gnome-shell-extensions.gcampax.github.com", "name": "Screenshot Window Sizer", "pname": "screenshot-window-sizer", "description": "Resize windows for GNOME Software screenshots", "link": "https://extensions.gnome.org/extension/881/screenshot-window-sizer/", "shell_version_map": {"38": {"version": "22", "sha256": "18b8f2agv397pdyaicx2qirqfnm0swbnspw43kb2hr0jn8lkzz1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjIKfQ=="}, "40": {"version": "25", "sha256": "0pdf76kf6z7m9wvqsy36v1r02zfk8pgkpf21im2cq9x4qwh9gkf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlNjcmVlbnNob3QgV2luZG93IFNpemVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3Qtd2luZG93LXNpemVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL0dOT01FL2dub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJ1dWlkIjogInNjcmVlbnNob3Qtd2luZG93LXNpemVyQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuZ2NhbXBheC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "41": {"version": "27", "sha256": "0hwnrmbn8aciwbdw9rffrjg5md93bkrvfp8a4gmzrp6v946fd05p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjcKfQ=="}, "42": {"version": "29", "sha256": "1qsqdasff8b3m8h4739y98jcmi5dvv0shq1f4mglkrfh6cx2ry23", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZSB3aW5kb3dzIGZvciBHTk9NRSBTb2Z0d2FyZSBzY3JlZW5zaG90cyIsCiAgImV4dGVuc2lvbi1pZCI6ICJzY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zY3JlZW5zaG90LXdpbmRvdy1zaXplciIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBXaW5kb3cgU2l6ZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuc2hvdC13aW5kb3ctc2l6ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgInV1aWQiOiAic2NyZWVuc2hvdC13aW5kb3ctc2l6ZXJAZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucy5nY2FtcGF4LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMjkKfQ=="}}}
 , {"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=="}, "40": {"version": "21", "sha256": "060lmc6jacjv1p4a6n7c3l0kmfskq012pgrf2gar0kf49lqrp665", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1haWwgaW5kaWNhdG9yIChHTWFpbCwgSU1BUCwgUE9QKSBmb3IgR05PTUUuXG5cblBsZWFzZSBub3RlIHRoYXQgdGhpcyBleHRlbnNpb24gcmVxdWlyZXMgdGhlIG1haWxuYWcgZGFlbW9uLlxuSW5zdGFsbCBpdCBmcm9tIHlvdXIgZGlzdHJvcyBwYWNrYWdlIHJlcG9zaXRvcmllcyBvciBnZXQgaXQgaGVyZTpcbmh0dHBzOi8vZ2l0aHViLmNvbS9wdWxiL21haWxuYWdcblxuUGxlYXNlIGFsc28gbm90ZSB0aGF0IHRoaXMgdmVyc2lvbiBvZiB0aGUgZXh0ZW5zaW9uIGRvZXMgbm90IHN1cHBvcnQgYXZhdGFycyAoYXMgc2hvd24gaW4gdGhlIHNjcmVlbnNob3QpLlxuSWYgeW91IGxpa2UgdG8gaGF2ZSBhdmF0YXIgc3VwcG9ydCBpbnN0YWxsIHRoaXMgZXh0ZW5zaW9uIGZyb20geW91ciBkaXN0cm9zIHBhY2thZ2UgcmVwb3NpdG9yaWVzIG9yIGdldCBhIHBhY2thZ2UgZnJvbSBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbFxuXG5JTVBPUlRBTlQ6XG5JIGRvIG5vdCBnZXQgbm90aWZpY2F0aW9ucyBmb3IgdXNlciBjb21tZW50cy4gUGxlYXNlIGFsd2F5cyByZXBvcnQgYnVncyBoZXJlOlxuaHR0cHM6Ly9naXRodWIuY29tL3B1bGIvbWFpbG5hZy1nbm9tZS1zaGVsbC9pc3N1ZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJtYWlsbmFnLWdub21lLXNoZWxsIiwKICAibmFtZSI6ICJNYWlsbmFnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm1haWxuYWciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm1haWxuYWdAcHVsYi5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}}}
 , {"uuid": "mmod-panel@mmogp.com", "name": "MMOD Panel", "pname": "mmod-panel", "description": "Upgrades the Topbar in Gnome3, creating a customizable panel and providing options for fine-tuning your Desktop Experience.\n\nFeatures include:\n▸ Set comfort levels to provide theme support and fine-tune the overall look and feel of the panel.\n▸ Set the location/position of the panel (bottom by default).\n▸ Add a button to the panel in place of the activities link, using an icon of your preference.\n▸ Auto-hide the panel when not active/in-focus (makes use of pressure/gesture for showing the panel).\n▸ Display and manage your favorites/running apps directly on the panel.\n▸ Move the date menu to the aggregate/tray area.\n▸ Access and manage your extension preferences directly from the aggregate menu.\n▸ Customize behavior of the overview and panel(hot-corners/animations/effects) to suit your preferences.\n▸ More to come soon!\n\nThis project is loosely based on the Panel Settings extension:\nhttps://github.com/eddiefullmetal/gnome-shell-extensions/tree/master/panelSettings%40eddiefullmetal.gr\n\nSadly, Panel Settings has not seen any maintenance in years, though this is why I decided to create MMOD Panel.\n\nI also took inspiration from the following Gnome extensions: System-Monitor, Taskbar, and DashToDock.\n\nFor those of you who are wondering, the theme used in the screen shot is the Zukitwo-Dark-Shell Shell Theme; \neverything else is default Gnome on Debian Buster. However, the author of the aforementioned shell theme has \nchanged the name for various reasons to Ciliora-Prima-Shell - which can be found here:\n\n  http://gnome-look.org/content/show.php?content=165096\n\nFor Gnome-Shell: 3.10, 3.12, 3.12.2, 3.14, 3.14.4, 3.16, 3.16.2, 3.18, 3.20, 3.22, 3.24, 3.26, 3.26.2, 3.28, 3.30, 3.32, 3.34, 3.35, 3.35.91, 3.36, 3.36.3, 3.36.4, 3.36.6, 3.38, 3.38.2, 40.0, 40.5, 41.0 (since version 12.0.0) f\nRik <rik@mmod.co>\n\nGerman Translation(s) for MMOD-Panel courtesy of Jonius Zeidler <jonatan_zeidler@gmx.de>\n\nSource Repository: https://gitlab.com/mmod/mmod-panel/\n", "link": "https://extensions.gnome.org/extension/898/mmod-panel/", "shell_version_map": {"38": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "00sr6dcn7z5a8p9zq2xvvdac828m8f0akz3skb9sb9v8jay0m0hr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZ3JhZGVzIHRoZSBUb3BiYXIgaW4gR25vbWUzLCBjcmVhdGluZyBhIGN1c3RvbWl6YWJsZSBwYW5lbCBhbmQgcHJvdmlkaW5nIG9wdGlvbnMgZm9yIGZpbmUtdHVuaW5nIHlvdXIgRGVza3RvcCBFeHBlcmllbmNlLlxuXG5GZWF0dXJlcyBpbmNsdWRlOlxuXHUyNWI4IFNldCBjb21mb3J0IGxldmVscyB0byBwcm92aWRlIHRoZW1lIHN1cHBvcnQgYW5kIGZpbmUtdHVuZSB0aGUgb3ZlcmFsbCBsb29rIGFuZCBmZWVsIG9mIHRoZSBwYW5lbC5cblx1MjViOCBTZXQgdGhlIGxvY2F0aW9uL3Bvc2l0aW9uIG9mIHRoZSBwYW5lbCAoYm90dG9tIGJ5IGRlZmF1bHQpLlxuXHUyNWI4IEFkZCBhIGJ1dHRvbiB0byB0aGUgcGFuZWwgaW4gcGxhY2Ugb2YgdGhlIGFjdGl2aXRpZXMgbGluaywgdXNpbmcgYW4gaWNvbiBvZiB5b3VyIHByZWZlcmVuY2UuXG5cdTI1YjggQXV0by1oaWRlIHRoZSBwYW5lbCB3aGVuIG5vdCBhY3RpdmUvaW4tZm9jdXMgKG1ha2VzIHVzZSBvZiBwcmVzc3VyZS9nZXN0dXJlIGZvciBzaG93aW5nIHRoZSBwYW5lbCkuXG5cdTI1YjggRGlzcGxheSBhbmQgbWFuYWdlIHlvdXIgZmF2b3JpdGVzL3J1bm5pbmcgYXBwcyBkaXJlY3RseSBvbiB0aGUgcGFuZWwuXG5cdTI1YjggTW92ZSB0aGUgZGF0ZSBtZW51IHRvIHRoZSBhZ2dyZWdhdGUvdHJheSBhcmVhLlxuXHUyNWI4IEFjY2VzcyBhbmQgbWFuYWdlIHlvdXIgZXh0ZW5zaW9uIHByZWZlcmVuY2VzIGRpcmVjdGx5IGZyb20gdGhlIGFnZ3JlZ2F0ZSBtZW51LlxuXHUyNWI4IEN1c3RvbWl6ZSBiZWhhdmlvciBvZiB0aGUgb3ZlcnZpZXcgYW5kIHBhbmVsKGhvdC1jb3JuZXJzL2FuaW1hdGlvbnMvZWZmZWN0cykgdG8gc3VpdCB5b3VyIHByZWZlcmVuY2VzLlxuXHUyNWI4IE1vcmUgdG8gY29tZSBzb29uIVxuXG5UaGlzIHByb2plY3QgaXMgbG9vc2VseSBiYXNlZCBvbiB0aGUgUGFuZWwgU2V0dGluZ3MgZXh0ZW5zaW9uOlxuaHR0cHM6Ly9naXRodWIuY29tL2VkZGllZnVsbG1ldGFsL2dub21lLXNoZWxsLWV4dGVuc2lvbnMvdHJlZS9tYXN0ZXIvcGFuZWxTZXR0aW5ncyU0MGVkZGllZnVsbG1ldGFsLmdyXG5cblNhZGx5LCBQYW5lbCBTZXR0aW5ncyBoYXMgbm90IHNlZW4gYW55IG1haW50ZW5hbmNlIGluIHllYXJzLCB0aG91Z2ggdGhpcyBpcyB3aHkgSSBkZWNpZGVkIHRvIGNyZWF0ZSBNTU9EIFBhbmVsLlxuXG5JIGFsc28gdG9vayBpbnNwaXJhdGlvbiBmcm9tIHRoZSBmb2xsb3dpbmcgR25vbWUgZXh0ZW5zaW9uczogU3lzdGVtLU1vbml0b3IsIFRhc2tiYXIsIGFuZCBEYXNoVG9Eb2NrLlxuXG5Gb3IgdGhvc2Ugb2YgeW91IHdobyBhcmUgd29uZGVyaW5nLCB0aGUgdGhlbWUgdXNlZCBpbiB0aGUgc2NyZWVuIHNob3QgaXMgdGhlIFp1a2l0d28tRGFyay1TaGVsbCBTaGVsbCBUaGVtZTsgXG5ldmVyeXRoaW5nIGVsc2UgaXMgZGVmYXVsdCBHbm9tZSBvbiBEZWJpYW4gQnVzdGVyLiBIb3dldmVyLCB0aGUgYXV0aG9yIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBzaGVsbCB0aGVtZSBoYXMgXG5jaGFuZ2VkIHRoZSBuYW1lIGZvciB2YXJpb3VzIHJlYXNvbnMgdG8gQ2lsaW9yYS1QcmltYS1TaGVsbCAtIHdoaWNoIGNhbiBiZSBmb3VuZCBoZXJlOlxuXG4gIGh0dHA6Ly9nbm9tZS1sb29rLm9yZy9jb250ZW50L3Nob3cucGhwP2NvbnRlbnQ9MTY1MDk2XG5cbkZvciBHbm9tZS1TaGVsbDogMy4xMCwgMy4xMiwgMy4xMi4yLCAzLjE0LCAzLjE0LjQsIDMuMTYsIDMuMTYuMiwgMy4xOCwgMy4yMCwgMy4yMiwgMy4yNCwgMy4yNiwgMy4yNi4yLCAzLjI4LCAzLjMwLCAzLjMyLCAzLjM0LCAzLjM1LCAzLjM1LjkxLCAzLjM2LCAzLjM2LjMsIDMuMzYuNCwgMy4zNi42LCAzLjM4LCAzLjM4LjIsIDQwLjAsIDQwLjUsIDQxLjAgKHNpbmNlIHZlcnNpb24gMTIuMC4wKSBmXG5SaWsgPHJpa0BtbW9kLmNvPlxuXG5HZXJtYW4gVHJhbnNsYXRpb24ocykgZm9yIE1NT0QtUGFuZWwgY291cnRlc3kgb2YgSm9uaXVzIFplaWRsZXIgPGpvbmF0YW5femVpZGxlckBnbXguZGU+XG5cblNvdXJjZSBSZXBvc2l0b3J5OiBodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsL1xuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAibW1vZC1wYW5lbCIsCiAgIm5hbWUiOiAiTU1PRCBQYW5lbCIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJyaWtAbW1vZC5jbyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi4zIiwKICAgICIzLjM2LjQiLAogICAgIjMuMzYuNiIsCiAgICAiMy4zOC4yIiwKICAgICI0MC4wIiwKICAgICI0MS4wIiwKICAgICI0MC41IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbW1vZC9tbW9kLXBhbmVsLyIsCiAgInV1aWQiOiAibW1vZC1wYW5lbEBtbW9ncC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
 , {"uuid": "modern-calc@kaer", "name": "Modern Calc", "pname": "modern-calc", "description": "A full featured calculator for gnome-shell.", "link": "https://extensions.gnome.org/extension/900/modern-calc/", "shell_version_map": {"38": {"version": "11", "sha256": "0f0fmldcr8ywghp8w61wvi2qb29yc82xmgkqb7khj14zgv4l6apw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZnVsbCBmZWF0dXJlZCBjYWxjdWxhdG9yIGZvciBnbm9tZS1zaGVsbC4iLAogICJuYW1lIjogIk1vZGVybiBDYWxjIiwKICAib3JpZ2luYWwtYXV0aG9yIjogIkthZXIgKHRoZS50aGluLmtpbmcud2F5KzIwMTRAZ21haWwuY29tKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5tb2Rlcm4tY2FsYyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2thZXIvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1vZGVybi1jYWxjIiwKICAidXVpZCI6ICJtb2Rlcm4tY2FsY0BrYWVyIiwKICAidmVyc2lvbiI6IDExCn0="}}}
@@ -112,16 +113,16 @@
 , {"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"}, "40": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "41": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}, "42": {"version": "27", "sha256": "08l9xsbndgi7v863x76q4br89gjysaxwx8rhfkcp2nwqw247wfa2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNoZWxsIGluZGljYXRvciBmb3Igc3RhcnRpbmcsIG1vbml0b3JpbmcgYW5kIGNvbnRyb2xsaW5nIHRoZSBTeW5jdGhpbmcgZGFlbW9uIHVzaW5nIFN5c3RlbUQiLAogICJuYW1lIjogIlN5bmN0aGluZyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS8ybnYydS9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3luY3RoaW5nLWluZGljYXRvciIsCiAgInV1aWQiOiAic3luY3RoaW5nQGdub21lLjJudjJ1LmNvbSIsCiAgInZlcnNpb24iOiAyNwp9"}}}
 , {"uuid": "applications-overview-tooltip@RaphaelRochet", "name": "Applications Overview Tooltip", "pname": "applications-overview-tooltip", "description": "Shows a tooltip over applications icons on applications overview with application name and/or description.", "link": "https://extensions.gnome.org/extension/1071/applications-overview-tooltip/", "shell_version_map": {"38": {"version": "11", "sha256": "0alvg0l46hls3jz3a5ic21fgbjbg0kv0nn0pkknzsgjfw5mmwz69", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "41": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}, "42": {"version": "15", "sha256": "1bz8f4n4s4ap736yik7v672c646v1rs493qgrld3fdg47rvksrv2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgdG9vbHRpcCBvdmVyIGFwcGxpY2F0aW9ucyBpY29ucyBvbiBhcHBsaWNhdGlvbnMgb3ZlcnZpZXcgd2l0aCBhcHBsaWNhdGlvbiBuYW1lIGFuZC9vciBkZXNjcmlwdGlvbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcCIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIE92ZXJ2aWV3IFRvb2x0aXAiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXBwbGljYXRpb25zLW92ZXJ2aWV3LXRvb2x0aXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SYXBoYWVsUm9jaGV0L2FwcGxpY2F0aW9ucy1vdmVydmlldy10b29sdGlwIiwKICAidXVpZCI6ICJhcHBsaWNhdGlvbnMtb3ZlcnZpZXctdG9vbHRpcEBSYXBoYWVsUm9jaGV0IiwKICAidmVyc2lvbiI6IDE1Cn0="}}}
 , {"uuid": "TwitchLive_Panel@extensions.maweki.de", "name": "TwitchLive Panel", "pname": "twitchlive-panel", "description": "A panel showing whether your favorite Twitch.tv streamers are streaming.\n\nCycles through the online streamers if multiples are configured. Click on the panel and then on streamer's name to launch the stream with a custom command (your browser or some other application).\n\nNeeds curl and mogrify to fully support streamer logos. For an extension version compatible with shell version 3.30 or earlier visit our github page.", "link": "https://extensions.gnome.org/extension/1078/twitchlive-panel/", "shell_version_map": {"40": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}, "41": {"version": "37", "sha256": "0g1s5f3si8hlgf3m033c1c9fxydhs3wcykf4rr1pkzd54q6a8vq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgcGFuZWwgc2hvd2luZyB3aGV0aGVyIHlvdXIgZmF2b3JpdGUgVHdpdGNoLnR2IHN0cmVhbWVycyBhcmUgc3RyZWFtaW5nLlxuXG5DeWNsZXMgdGhyb3VnaCB0aGUgb25saW5lIHN0cmVhbWVycyBpZiBtdWx0aXBsZXMgYXJlIGNvbmZpZ3VyZWQuIENsaWNrIG9uIHRoZSBwYW5lbCBhbmQgdGhlbiBvbiBzdHJlYW1lcidzIG5hbWUgdG8gbGF1bmNoIHRoZSBzdHJlYW0gd2l0aCBhIGN1c3RvbSBjb21tYW5kICh5b3VyIGJyb3dzZXIgb3Igc29tZSBvdGhlciBhcHBsaWNhdGlvbikuXG5cbk5lZWRzIGN1cmwgYW5kIG1vZ3JpZnkgdG8gZnVsbHkgc3VwcG9ydCBzdHJlYW1lciBsb2dvcy4gRm9yIGFuIGV4dGVuc2lvbiB2ZXJzaW9uIGNvbXBhdGlibGUgd2l0aCBzaGVsbCB2ZXJzaW9uIDMuMzAgb3IgZWFybGllciB2aXNpdCBvdXIgZ2l0aHViIHBhZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHdpdGNobGl2ZSIsCiAgIm5hbWUiOiAiVHdpdGNoTGl2ZSBQYW5lbCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50d2l0Y2hsaXZlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tYXdla2kvdHdpdGNobGl2ZS1leHRlbnNpb24iLAogICJ1dWlkIjogIlR3aXRjaExpdmVfUGFuZWxAZXh0ZW5zaW9ucy5tYXdla2kuZGUiLAogICJ2ZXJzaW9uIjogMzcKfQ=="}}}
-, {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "40": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "41": {"version": "51", "sha256": "1i6lwb82j21qx38gxy1rdv2bgn2rh6qf9hswasbf26g9k3ay3w1n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}}}
+, {"uuid": "cpufreq@konkor", "name": "cpufreq", "pname": "cpufreq", "description": "System Monitor and Power Manager.\n\nThe project is affected by the Russian war in Ukraine. The author lost everything in second time. His family has flee abroad and he's in military reserve waiting for his call.\n\n#HelpUkraine #StopTheWarInUkraine\n\nThis is a lightweight system monitor and power management tool. It needs root permission to able changing governors.\n\nFeatures:\n⚫ Compatible with many hardware architectures;\n⚫ CPU Frequency monitoring;\n⚫ CPU Governor management;\n⚫ CPU Frequency speed limits;\n⚫ CPU Boost supporting;\n⚫ CPU Core Power on/off;\n⚫ Saving/Restoring settings...\n\nFor more information and how-to see README.md", "link": "https://extensions.gnome.org/extension/1082/cpufreq/", "shell_version_map": {"38": {"version": "51", "sha256": "1adm5859k6pjr7mlv8fxdf9g25ijcqdz7a52bj69zpzpainf0xg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGUgcHJvamVjdCBpcyBhZmZlY3RlZCBieSB0aGUgUnVzc2lhbiB3YXIgaW4gVWtyYWluZS4gVGhlIGF1dGhvciBsb3N0IGV2ZXJ5dGhpbmcgaW4gc2Vjb25kIHRpbWUuIEhpcyBmYW1pbHkgaGFzIGZsZWUgYWJyb2FkIGFuZCBoZSdzIGluIG1pbGl0YXJ5IHJlc2VydmUgd2FpdGluZyBmb3IgaGlzIGNhbGwuXG5cbiNIZWxwVWtyYWluZSAjU3RvcFRoZVdhckluVWtyYWluZVxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "40": {"version": "51", "sha256": "1adm5859k6pjr7mlv8fxdf9g25ijcqdz7a52bj69zpzpainf0xg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGUgcHJvamVjdCBpcyBhZmZlY3RlZCBieSB0aGUgUnVzc2lhbiB3YXIgaW4gVWtyYWluZS4gVGhlIGF1dGhvciBsb3N0IGV2ZXJ5dGhpbmcgaW4gc2Vjb25kIHRpbWUuIEhpcyBmYW1pbHkgaGFzIGZsZWUgYWJyb2FkIGFuZCBoZSdzIGluIG1pbGl0YXJ5IHJlc2VydmUgd2FpdGluZyBmb3IgaGlzIGNhbGwuXG5cbiNIZWxwVWtyYWluZSAjU3RvcFRoZVdhckluVWtyYWluZVxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}, "41": {"version": "51", "sha256": "1adm5859k6pjr7mlv8fxdf9g25ijcqdz7a52bj69zpzpainf0xg1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN5c3RlbSBNb25pdG9yIGFuZCBQb3dlciBNYW5hZ2VyLlxuXG5UaGUgcHJvamVjdCBpcyBhZmZlY3RlZCBieSB0aGUgUnVzc2lhbiB3YXIgaW4gVWtyYWluZS4gVGhlIGF1dGhvciBsb3N0IGV2ZXJ5dGhpbmcgaW4gc2Vjb25kIHRpbWUuIEhpcyBmYW1pbHkgaGFzIGZsZWUgYWJyb2FkIGFuZCBoZSdzIGluIG1pbGl0YXJ5IHJlc2VydmUgd2FpdGluZyBmb3IgaGlzIGNhbGwuXG5cbiNIZWxwVWtyYWluZSAjU3RvcFRoZVdhckluVWtyYWluZVxuXG5UaGlzIGlzIGEgbGlnaHR3ZWlnaHQgc3lzdGVtIG1vbml0b3IgYW5kIHBvd2VyIG1hbmFnZW1lbnQgdG9vbC4gSXQgbmVlZHMgcm9vdCBwZXJtaXNzaW9uIHRvIGFibGUgY2hhbmdpbmcgZ292ZXJub3JzLlxuXG5GZWF0dXJlczpcblx1MjZhYiBDb21wYXRpYmxlIHdpdGggbWFueSBoYXJkd2FyZSBhcmNoaXRlY3R1cmVzO1xuXHUyNmFiIENQVSBGcmVxdWVuY3kgbW9uaXRvcmluZztcblx1MjZhYiBDUFUgR292ZXJub3IgbWFuYWdlbWVudDtcblx1MjZhYiBDUFUgRnJlcXVlbmN5IHNwZWVkIGxpbWl0cztcblx1MjZhYiBDUFUgQm9vc3Qgc3VwcG9ydGluZztcblx1MjZhYiBDUFUgQ29yZSBQb3dlciBvbi9vZmY7XG5cdTI2YWIgU2F2aW5nL1Jlc3RvcmluZyBzZXR0aW5ncy4uLlxuXG5Gb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgaG93LXRvIHNlZSBSRUFETUUubWQiLAogICJuYW1lIjogImNwdWZyZXEiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuY3B1ZnJlcSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29ua29yL2NwdWZyZXEiLAogICJ1dWlkIjogImNwdWZyZXFAa29ua29yIiwKICAidmVyc2lvbiI6IDUxCn0="}}}
 , {"uuid": "simplenetspeed@biji.extension", "name": "Simple net speed", "pname": "simple-net-speed", "description": "Simply showing network speed. Left click to change modes:\n\n1. Total net speed in bits per second\n2. Total net speed in Bytes per second\n3. Up & down speed in bits per second\n4. Up & down speed in Bytes per second\n5. Total of downloaded in Bytes (Right click to reset counter)\n\nMiddle click to change font size", "link": "https://extensions.gnome.org/extension/1085/simple-net-speed/", "shell_version_map": {"38": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "40": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "41": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}, "42": {"version": "28", "sha256": "16cilh0rki5pp4kwhd9y51c5602l4l953x4sl4h7sqdnpwxnzibs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBzaG93aW5nIG5ldHdvcmsgc3BlZWQuIExlZnQgY2xpY2sgdG8gY2hhbmdlIG1vZGVzOlxuXG4xLiBUb3RhbCBuZXQgc3BlZWQgaW4gYml0cyBwZXIgc2Vjb25kXG4yLiBUb3RhbCBuZXQgc3BlZWQgaW4gQnl0ZXMgcGVyIHNlY29uZFxuMy4gVXAgJiBkb3duIHNwZWVkIGluIGJpdHMgcGVyIHNlY29uZFxuNC4gVXAgJiBkb3duIHNwZWVkIGluIEJ5dGVzIHBlciBzZWNvbmRcbjUuIFRvdGFsIG9mIGRvd25sb2FkZWQgaW4gQnl0ZXMgKFJpZ2h0IGNsaWNrIHRvIHJlc2V0IGNvdW50ZXIpXG5cbk1pZGRsZSBjbGljayB0byBjaGFuZ2UgZm9udCBzaXplIiwKICAibmFtZSI6ICJTaW1wbGUgbmV0IHNwZWVkIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmlqaS9zaW1wbGVuZXRzcGVlZCIsCiAgInV1aWQiOiAic2ltcGxlbmV0c3BlZWRAYmlqaS5leHRlbnNpb24iLAogICJ2ZXJzaW9uIjogMjgKfQ=="}}}
 , {"uuid": "gnome-shell-go-to-last-workspace@github.com", "name": "Go To Last Workspace", "pname": "go-to-last-workspace", "description": "Quickly toggle between two workspaces with one key", "link": "https://extensions.gnome.org/extension/1089/go-to-last-workspace/", "shell_version_map": {"38": {"version": "9", "sha256": "1gwdnz99qmdzprdbgjw23jf0d6xdiky3fbiy6s3h8xcncd1ac8yb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyamFuL2dub21lLXNoZWxsLWdvLXRvLWxhc3Qtd29ya3NwYWNlIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZUBnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "40": {"version": "9", "sha256": "1gwdnz99qmdzprdbgjw23jf0d6xdiky3fbiy6s3h8xcncd1ac8yb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyamFuL2dub21lLXNoZWxsLWdvLXRvLWxhc3Qtd29ya3NwYWNlIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZUBnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "1gwdnz99qmdzprdbgjw23jf0d6xdiky3fbiy6s3h8xcncd1ac8yb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyamFuL2dub21lLXNoZWxsLWdvLXRvLWxhc3Qtd29ya3NwYWNlIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZUBnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "42": {"version": "9", "sha256": "1gwdnz99qmdzprdbgjw23jf0d6xdiky3fbiy6s3h8xcncd1ac8yb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgdG9nZ2xlIGJldHdlZW4gdHdvIHdvcmtzcGFjZXMgd2l0aCBvbmUga2V5IiwKICAibmFtZSI6ICJHbyBUbyBMYXN0IFdvcmtzcGFjZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nby10by1sYXN0LXdvcmtzcGFjZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FyamFuL2dub21lLXNoZWxsLWdvLXRvLWxhc3Qtd29ya3NwYWNlIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1nby10by1sYXN0LXdvcmtzcGFjZUBnaXRodWIuY29tIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "KeepAwake@jepfa.de", "name": "Keep awake!", "pname": "keep-awake", "description": "Keep your computer awake! Forbid your computer to activate sceensaver, turn off the screen or suspend when it is idle for a while. Click the indicator icon (in the taskbar) once to keep your computer awake for the session. Click again to enable persistance of this setting between restarts (indicated by a small lock icon on the indicator). Switch off by clicking again.", "link": "https://extensions.gnome.org/extension/1097/keep-awake/", "shell_version_map": {"38": {"version": "6", "sha256": "1lmwq4ng14jvpzd3fnwc8bilvyigya46d8il8m16g1596p3hikdk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIktlZXAgeW91ciBjb21wdXRlciBhd2FrZSEgRm9yYmlkIHlvdXIgY29tcHV0ZXIgdG8gYWN0aXZhdGUgc2NlZW5zYXZlciwgdHVybiBvZmYgdGhlIHNjcmVlbiBvciBzdXNwZW5kIHdoZW4gaXQgaXMgaWRsZSBmb3IgYSB3aGlsZS4gQ2xpY2sgdGhlIGluZGljYXRvciBpY29uIChpbiB0aGUgdGFza2Jhcikgb25jZSB0byBrZWVwIHlvdXIgY29tcHV0ZXIgYXdha2UgZm9yIHRoZSBzZXNzaW9uLiBDbGljayBhZ2FpbiB0byBlbmFibGUgcGVyc2lzdGFuY2Ugb2YgdGhpcyBzZXR0aW5nIGJldHdlZW4gcmVzdGFydHMgKGluZGljYXRlZCBieSBhIHNtYWxsIGxvY2sgaWNvbiBvbiB0aGUgaW5kaWNhdG9yKS4gU3dpdGNoIG9mZiBieSBjbGlja2luZyBhZ2Fpbi4iLAogICJuYW1lIjogIktlZXAgYXdha2UhIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy40IiwKICAgICIzLjYiLAogICAgIjMuOCIsCiAgICAiMy4xMCIsCiAgICAiMy4xMiIsCiAgICAiMy4xNCIsCiAgICAiMy4xNiIsCiAgICAiMy4xOCIsCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plbnNwZmFobC9LZWVwQXdha2UiLAogICJ1dWlkIjogIktlZXBBd2FrZUBqZXBmYS5kZSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"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", "link": "https://extensions.gnome.org/extension/1104/section-todo-list/", "shell_version_map": {"38": {"version": "12", "sha256": "1r88kl6vw62pznqva17cf0n4bka5n0hlkr5mb1gybw1mfy63af7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}, "40": {"version": "12", "sha256": "1r88kl6vw62pznqva17cf0n4bka5n0hlkr5mb1gybw1mfy63af7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}, "42": {"version": "12", "sha256": "1r88kl6vw62pznqva17cf0n4bka5n0hlkr5mb1gybw1mfy63af7c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSB0b2RvIGxpc3Qgd2l0aCBhbiBhcHBsZXRcblxuKiBBZGQgYW5kIHJlbW92ZSB0YXNrIG9uIHlvdXIgbGlzdCBpbiBkaWZmZXJlbnQgc2VjdGlvbnMuXG4qIENsaWNrIGFuIGl0ZW0gdG8gcmVuYW1lIGl0LlxuKiBBY2Nlc3MgdGhlIGV4dGVuc2lvbiB1c2luZyBIb3QtS2V5IChkZWZhdWx0OiBDdHJsK1NwYWNlKVxuIiwKICAibmFtZSI6ICJTZWN0aW9uIFRvZG8gTGlzdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdG9tTW9yYWwvVG9Eb0xpc3QiLAogICJ1dWlkIjogInRvZG9saXN0QHRvbU1vcmFsLm9yZyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "add-username-toppanel@brendaw.com", "name": "Add Username to Top Panel", "pname": "add-username-to-top-panel", "description": "Simply add your username to topbar panel aggregate menu.\n\n--\n\nIf you liked this extension and want to reward me somehow, you can warm my heart simply by saying \"thank you\" on the comments below or by buying me a cup of coffee :)\n\nhttps://www.buymeacoffee.com/brendaw (in US Dollars)\nhttps://ko-fi.com/brendaw (in Brazilian Reais)", "link": "https://extensions.gnome.org/extension/1108/add-username-to-top-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "1mym2czsc7gqn1dc858wp31dvpxwzh2wyfvz2v0wfy0ylywvnlka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5cbi0tXG5cbklmIHlvdSBsaWtlZCB0aGlzIGV4dGVuc2lvbiBhbmQgd2FudCB0byByZXdhcmQgbWUgc29tZWhvdywgeW91IGNhbiB3YXJtIG15IGhlYXJ0IHNpbXBseSBieSBzYXlpbmcgXCJ0aGFuayB5b3VcIiBvbiB0aGUgY29tbWVudHMgYmVsb3cgb3IgYnkgYnV5aW5nIG1lIGEgY3VwIG9mIGNvZmZlZSA6KVxuXG5odHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2JyZW5kYXcgKGluIFVTIERvbGxhcnMpXG5odHRwczovL2tvLWZpLmNvbS9icmVuZGF3IChpbiBCcmF6aWxpYW4gUmVhaXMpIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgdG8gVG9wIFBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ3aWxsaWFtYnJlbmRhd0Bwcm90b25tYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMjAuNCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "1mym2czsc7gqn1dc858wp31dvpxwzh2wyfvz2v0wfy0ylywvnlka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5cbi0tXG5cbklmIHlvdSBsaWtlZCB0aGlzIGV4dGVuc2lvbiBhbmQgd2FudCB0byByZXdhcmQgbWUgc29tZWhvdywgeW91IGNhbiB3YXJtIG15IGhlYXJ0IHNpbXBseSBieSBzYXlpbmcgXCJ0aGFuayB5b3VcIiBvbiB0aGUgY29tbWVudHMgYmVsb3cgb3IgYnkgYnV5aW5nIG1lIGEgY3VwIG9mIGNvZmZlZSA6KVxuXG5odHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2JyZW5kYXcgKGluIFVTIERvbGxhcnMpXG5odHRwczovL2tvLWZpLmNvbS9icmVuZGF3IChpbiBCcmF6aWxpYW4gUmVhaXMpIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgdG8gVG9wIFBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ3aWxsaWFtYnJlbmRhd0Bwcm90b25tYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMjAuNCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "1mym2czsc7gqn1dc858wp31dvpxwzh2wyfvz2v0wfy0ylywvnlka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5cbi0tXG5cbklmIHlvdSBsaWtlZCB0aGlzIGV4dGVuc2lvbiBhbmQgd2FudCB0byByZXdhcmQgbWUgc29tZWhvdywgeW91IGNhbiB3YXJtIG15IGhlYXJ0IHNpbXBseSBieSBzYXlpbmcgXCJ0aGFuayB5b3VcIiBvbiB0aGUgY29tbWVudHMgYmVsb3cgb3IgYnkgYnV5aW5nIG1lIGEgY3VwIG9mIGNvZmZlZSA6KVxuXG5odHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2JyZW5kYXcgKGluIFVTIERvbGxhcnMpXG5odHRwczovL2tvLWZpLmNvbS9icmVuZGF3IChpbiBCcmF6aWxpYW4gUmVhaXMpIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgdG8gVG9wIFBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ3aWxsaWFtYnJlbmRhd0Bwcm90b25tYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMjAuNCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "1mym2czsc7gqn1dc858wp31dvpxwzh2wyfvz2v0wfy0ylywvnlka", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBseSBhZGQgeW91ciB1c2VybmFtZSB0byB0b3BiYXIgcGFuZWwgYWdncmVnYXRlIG1lbnUuXG5cbi0tXG5cbklmIHlvdSBsaWtlZCB0aGlzIGV4dGVuc2lvbiBhbmQgd2FudCB0byByZXdhcmQgbWUgc29tZWhvdywgeW91IGNhbiB3YXJtIG15IGhlYXJ0IHNpbXBseSBieSBzYXlpbmcgXCJ0aGFuayB5b3VcIiBvbiB0aGUgY29tbWVudHMgYmVsb3cgb3IgYnkgYnV5aW5nIG1lIGEgY3VwIG9mIGNvZmZlZSA6KVxuXG5odHRwczovL3d3dy5idXltZWFjb2ZmZWUuY29tL2JyZW5kYXcgKGluIFVTIERvbGxhcnMpXG5odHRwczovL2tvLWZpLmNvbS9icmVuZGF3IChpbiBCcmF6aWxpYW4gUmVhaXMpIiwKICAibmFtZSI6ICJBZGQgVXNlcm5hbWUgdG8gVG9wIFBhbmVsIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJ3aWxsaWFtYnJlbmRhd0Bwcm90b25tYWlsLmNvbSIKICBdLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTIiLAogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMjAuNCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAuMCIsCiAgICAiNDAuMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JyZW5kYXcvYWRkLXVzZXJuYW1lLXRvcHBhbmVsIiwKICAidXVpZCI6ICJhZGQtdXNlcm5hbWUtdG9wcGFuZWxAYnJlbmRhdy5jb20iLAogICJ2ZXJzaW9uIjogOAp9"}}}
-, {"uuid": "Hide_Clock@grantmcwilliams.com", "name": "Hide Clock", "pname": "hide-clock", "description": "Hide title bar clock", "link": "https://extensions.gnome.org/extension/1110/hide-clock/", "shell_version_map": {"38": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0vxlc72gzin16xl5h6i0ixlmm6x9ahp3w3phyg0jk8b0q7qdflzq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrIiwKICAibmFtZSI6ICJIaWRlIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiSGlkZV9DbG9ja0BncmFudG1jd2lsbGlhbXMuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "Hide_Clock@grantmcwilliams.com", "name": "Hide Clock", "pname": "hide-clock", "description": "Hide title bar clock\n", "link": "https://extensions.gnome.org/extension/1110/hide-clock/", "shell_version_map": {"38": {"version": "4", "sha256": "0rf0h4ygxgy6jnam4slh281ysa8y1y5l45jbd6w250zaaidi738v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrXG4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJIaWRlX0Nsb2NrQGdyYW50bWN3aWxsaWFtcy5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "0rf0h4ygxgy6jnam4slh281ysa8y1y5l45jbd6w250zaaidi738v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrXG4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJIaWRlX0Nsb2NrQGdyYW50bWN3aWxsaWFtcy5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0rf0h4ygxgy6jnam4slh281ysa8y1y5l45jbd6w250zaaidi738v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGl0bGUgYmFyIGNsb2NrXG4iLAogICJuYW1lIjogIkhpZGUgQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMTQiLAogICAgIjMuMTYiLAogICAgIjMuMTgiLAogICAgIjMuMjAiLAogICAgIjMuMjIiLAogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJIaWRlX0Nsb2NrQGdyYW50bWN3aWxsaWFtcy5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "gnome-shell-screenshot@ttll.de", "name": "Screenshot Tool", "pname": "screenshot-tool", "description": "Conveniently create, copy, store and upload screenshots. Please log out and log in again after updating.", "link": "https://extensions.gnome.org/extension/1112/screenshot-tool/", "shell_version_map": {"38": {"version": "56", "sha256": "1ga2ray64aq1d1vn0rsscfxjiidbiln3vx42rn9i4q2a59b00znq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY1NiIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNTYKfQ=="}, "40": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}, "41": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}, "42": {"version": "68", "sha256": "1py94s1v5vjnf8w7as7ypprbk2504a0kkh6p6ppm9glcr2vl8w2r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnZlbmllbnRseSBjcmVhdGUsIGNvcHksIHN0b3JlIGFuZCB1cGxvYWQgc2NyZWVuc2hvdHMuIFBsZWFzZSBsb2cgb3V0IGFuZCBsb2cgaW4gYWdhaW4gYWZ0ZXIgdXBkYXRpbmcuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtc2NyZWVuc2hvdCIsCiAgImdpdC12ZXJzaW9uIjogInY2OCIsCiAgIm5hbWUiOiAiU2NyZWVuc2hvdCBUb29sIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNjcmVlbnNob3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PdHRvQWxsbWVuZGluZ2VyL2dub21lLXNoZWxsLXNjcmVlbnNob3QvIiwKICAidXVpZCI6ICJnbm9tZS1zaGVsbC1zY3JlZW5zaG90QHR0bGwuZGUiLAogICJ2ZXJzaW9uIjogNjgKfQ=="}}}
 , {"uuid": "nothing-to-say@extensions.gnome.wouter.bolsterl.ee", "name": "Nothing to say", "pname": "nothing-to-say", "description": "Unmute the microphone only when you have something to say.\n\nthis gnome-shell extension always keeps your microphone muted, unless you actually have something to say.\n\ntl;dr:\n\nmicrophone icon in the top bar, only visible when recording is active\none-click mute/unmute using the icon\nkeyboard shortcut to mute/unmute, with push-to-talk\nosd and sound notifications for microphone events\n\nDO NOT REPORT ISSUES HERE. USE GITHUB", "link": "https://extensions.gnome.org/extension/1113/nothing-to-say/", "shell_version_map": {"38": {"version": "8", "sha256": "1rkqn75xrr9wq1szq4jcphcg0qiywfi82mwir8nbrch44671m2g9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS5cblxudGhpcyBnbm9tZS1zaGVsbCBleHRlbnNpb24gYWx3YXlzIGtlZXBzIHlvdXIgbWljcm9waG9uZSBtdXRlZCwgdW5sZXNzIHlvdSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byBzYXkuXG5cbnRsO2RyOlxuXG5taWNyb3Bob25lIGljb24gaW4gdGhlIHRvcCBiYXIsIG9ubHkgdmlzaWJsZSB3aGVuIHJlY29yZGluZyBpcyBhY3RpdmVcbm9uZS1jbGljayBtdXRlL3VubXV0ZSB1c2luZyB0aGUgaWNvblxua2V5Ym9hcmQgc2hvcnRjdXQgdG8gbXV0ZS91bm11dGUsIHdpdGggcHVzaC10by10YWxrXG5vc2QgYW5kIHNvdW5kIG5vdGlmaWNhdGlvbnMgZm9yIG1pY3JvcGhvbmUgZXZlbnRzXG5cbkRPIE5PVCBSRVBPUlQgSVNTVUVTIEhFUkUuIFVTRSBHSVRIVUIiLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vd2JvbHN0ZXIvbm90aGluZy10by1zYXkiLAogICJ1dWlkIjogIm5vdGhpbmctdG8tc2F5QGV4dGVuc2lvbnMuZ25vbWUud291dGVyLmJvbHN0ZXJsLmVlIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "16", "sha256": "1jq60v1x9ny3kbpszp3jqqlzgm17xpr7fp0wj558hyskjd8dkfw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS5cblxudGhpcyBnbm9tZS1zaGVsbCBleHRlbnNpb24gYWx3YXlzIGtlZXBzIHlvdXIgbWljcm9waG9uZSBtdXRlZCwgdW5sZXNzIHlvdSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byBzYXkuXG5cbnRsO2RyOlxuXG5taWNyb3Bob25lIGljb24gaW4gdGhlIHRvcCBiYXIsIG9ubHkgdmlzaWJsZSB3aGVuIHJlY29yZGluZyBpcyBhY3RpdmVcbm9uZS1jbGljayBtdXRlL3VubXV0ZSB1c2luZyB0aGUgaWNvblxua2V5Ym9hcmQgc2hvcnRjdXQgdG8gbXV0ZS91bm11dGUsIHdpdGggcHVzaC10by10YWxrXG5vc2QgYW5kIHNvdW5kIG5vdGlmaWNhdGlvbnMgZm9yIG1pY3JvcGhvbmUgZXZlbnRzXG5cbkRPIE5PVCBSRVBPUlQgSVNTVUVTIEhFUkUuIFVTRSBHSVRIVUIiLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "41": {"version": "16", "sha256": "1jq60v1x9ny3kbpszp3jqqlzgm17xpr7fp0wj558hyskjd8dkfw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS5cblxudGhpcyBnbm9tZS1zaGVsbCBleHRlbnNpb24gYWx3YXlzIGtlZXBzIHlvdXIgbWljcm9waG9uZSBtdXRlZCwgdW5sZXNzIHlvdSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byBzYXkuXG5cbnRsO2RyOlxuXG5taWNyb3Bob25lIGljb24gaW4gdGhlIHRvcCBiYXIsIG9ubHkgdmlzaWJsZSB3aGVuIHJlY29yZGluZyBpcyBhY3RpdmVcbm9uZS1jbGljayBtdXRlL3VubXV0ZSB1c2luZyB0aGUgaWNvblxua2V5Ym9hcmQgc2hvcnRjdXQgdG8gbXV0ZS91bm11dGUsIHdpdGggcHVzaC10by10YWxrXG5vc2QgYW5kIHNvdW5kIG5vdGlmaWNhdGlvbnMgZm9yIG1pY3JvcGhvbmUgZXZlbnRzXG5cbkRPIE5PVCBSRVBPUlQgSVNTVUVTIEhFUkUuIFVTRSBHSVRIVUIiLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}, "42": {"version": "16", "sha256": "1jq60v1x9ny3kbpszp3jqqlzgm17xpr7fp0wj558hyskjd8dkfw7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubXV0ZSB0aGUgbWljcm9waG9uZSBvbmx5IHdoZW4geW91IGhhdmUgc29tZXRoaW5nIHRvIHNheS5cblxudGhpcyBnbm9tZS1zaGVsbCBleHRlbnNpb24gYWx3YXlzIGtlZXBzIHlvdXIgbWljcm9waG9uZSBtdXRlZCwgdW5sZXNzIHlvdSBhY3R1YWxseSBoYXZlIHNvbWV0aGluZyB0byBzYXkuXG5cbnRsO2RyOlxuXG5taWNyb3Bob25lIGljb24gaW4gdGhlIHRvcCBiYXIsIG9ubHkgdmlzaWJsZSB3aGVuIHJlY29yZGluZyBpcyBhY3RpdmVcbm9uZS1jbGljayBtdXRlL3VubXV0ZSB1c2luZyB0aGUgaWNvblxua2V5Ym9hcmQgc2hvcnRjdXQgdG8gbXV0ZS91bm11dGUsIHdpdGggcHVzaC10by10YWxrXG5vc2QgYW5kIHNvdW5kIG5vdGlmaWNhdGlvbnMgZm9yIG1pY3JvcGhvbmUgZXZlbnRzXG5cbkRPIE5PVCBSRVBPUlQgSVNTVUVTIEhFUkUuIFVTRSBHSVRIVUIiLAogICJuYW1lIjogIk5vdGhpbmcgdG8gc2F5IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLm5vdGhpbmctdG8tc2F5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIiwKICAgICIzLjM2LjkiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93Ym9sc3Rlci9ub3RoaW5nLXRvLXNheSIsCiAgInV1aWQiOiAibm90aGluZy10by1zYXlAZXh0ZW5zaW9ucy5nbm9tZS53b3V0ZXIuYm9sc3RlcmwuZWUiLAogICJ2ZXJzaW9uIjogMTYKfQ=="}}}
-, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {"38": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "40": {"version": "7", "sha256": "1zc92s0pffsd6mwsmpy8s8gici0q1wzd5s1vwjld4y1cy34kp2ad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90aGV5Y2h4L1dvcmtzcGFjZVN3aXRjaGVyV3JhcEFyb3VuZCIsCiAgInV1aWQiOiAid29ya3NwYWNlLXN3aXRjaC13cmFwYXJvdW5kQHRoZXljaHgub3JnIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
+, {"uuid": "workspace-switch-wraparound@theychx.org", "name": "Workspace Switch Wraparound", "pname": "workspace-switch-wraparound", "description": "When switching workspaces, going down from the bottom workspace switches to the top workspace. Likewise, up from the top workspace goes to the bottom workspace.", "link": "https://extensions.gnome.org/extension/1116/workspace-switch-wraparound/", "shell_version_map": {"38": {"version": "8", "sha256": "18yncb0jamja0wnxmkk4js5qy8gabqbpp4jxvaixfz1cj4pjqyqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXljaHgvV29ya3NwYWNlU3dpdGNoZXJXcmFwQXJvdW5kIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoLXdyYXBhcm91bmRAdGhleWNoeC5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "18yncb0jamja0wnxmkk4js5qy8gabqbpp4jxvaixfz1cj4pjqyqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXljaHgvV29ya3NwYWNlU3dpdGNoZXJXcmFwQXJvdW5kIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoLXdyYXBhcm91bmRAdGhleWNoeC5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "18yncb0jamja0wnxmkk4js5qy8gabqbpp4jxvaixfz1cj4pjqyqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXljaHgvV29ya3NwYWNlU3dpdGNoZXJXcmFwQXJvdW5kIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoLXdyYXBhcm91bmRAdGhleWNoeC5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "18yncb0jamja0wnxmkk4js5qy8gabqbpp4jxvaixfz1cj4pjqyqr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gc3dpdGNoaW5nIHdvcmtzcGFjZXMsIGdvaW5nIGRvd24gZnJvbSB0aGUgYm90dG9tIHdvcmtzcGFjZSBzd2l0Y2hlcyB0byB0aGUgdG9wIHdvcmtzcGFjZS4gTGlrZXdpc2UsIHVwIGZyb20gdGhlIHRvcCB3b3Jrc3BhY2UgZ29lcyB0byB0aGUgYm90dG9tIHdvcmtzcGFjZS4iLAogICJuYW1lIjogIldvcmtzcGFjZSBTd2l0Y2ggV3JhcGFyb3VuZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3RoZXljaHgvV29ya3NwYWNlU3dpdGNoZXJXcmFwQXJvdW5kIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2Utc3dpdGNoLXdyYXBhcm91bmRAdGhleWNoeC5vcmciLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "ibus-font-setting@ibus.github.com", "name": "ibus font setting", "pname": "ibus-font-setting", "description": "use ibus font setting of ibus setup dialog to enhance the user experience", "link": "https://extensions.gnome.org/extension/1121/ibus-font-setting/", "shell_version_map": {"38": {"version": "9", "sha256": "163byvsc3dj2w9xq498py1xjziyi98icyki1cd6wv7vxaxfmk7y6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL3B3dS5mZWRvcmFwZW9wbGUub3JnL2lidXMvaWJ1cy1mb250LXNldHRpbmciLAogICJ1dWlkIjogImlidXMtZm9udC1zZXR0aW5nQGlidXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "0rgnv7bwqg30ly6zsmzs5sayi45k2ji5r87z4x32nni3wm7vhnhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInVzZSBpYnVzIGZvbnQgc2V0dGluZyBvZiBpYnVzIHNldHVwIGRpYWxvZyB0byBlbmhhbmNlIHRoZSB1c2VyIGV4cGVyaWVuY2UiLAogICJuYW1lIjogImlidXMgZm9udCBzZXR0aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vcHd1LmZlZG9yYXBlb3BsZS5vcmcvaWJ1cy9pYnVzLWZvbnQtc2V0dGluZyIsCiAgInV1aWQiOiAiaWJ1cy1mb250LXNldHRpbmdAaWJ1cy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "github.notifications@alexandre.dufournet.gmail.com", "name": "Github Notifications", "pname": "github-notifications", "description": "Integrate Github's notifications within the gnome desktop environment\nSource code is available here: https://github.com/alexduf/gnome-github-notifications", "link": "https://extensions.gnome.org/extension/1125/github-notifications/", "shell_version_map": {"38": {"version": "17", "sha256": "0ccgbllyak1lyp14ynsg17zngfpxkc5v5asv3zwwmpk44bl984ny", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBHaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yMCIsCiAgICAiMy4yMiIsCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "22", "sha256": "069lbl8f9c5kcj9nwdnh7bqlffw1kgp96pi46xg3pj8hxdibhahc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBHaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}, "41": {"version": "22", "sha256": "069lbl8f9c5kcj9nwdnh7bqlffw1kgp96pi46xg3pj8hxdibhahc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBHaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}, "42": {"version": "22", "sha256": "069lbl8f9c5kcj9nwdnh7bqlffw1kgp96pi46xg3pj8hxdibhahc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZSBHaXRodWIncyBub3RpZmljYXRpb25zIHdpdGhpbiB0aGUgZ25vbWUgZGVza3RvcCBlbnZpcm9ubWVudFxuU291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbGV4ZHVmL2dub21lLWdpdGh1Yi1ub3RpZmljYXRpb25zIiwKICAibmFtZSI6ICJHaXRodWIgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnaXRodWIubm90aWZpY2F0aW9uc0BhbGV4YW5kcmUuZHVmb3VybmV0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyMgp9"}}}
 , {"uuid": "desk-changer@eric.gach.gmail.com", "name": "Desk Changer", "pname": "desk-changer", "description": "Simple wallpaper changer with multiple profile support. Integrates into the shell by providing it's own panel icon. The daemon is written using gjs and runs independently of the extension as a background process.", "link": "https://extensions.gnome.org/extension/1131/desk-changer/", "shell_version_map": {"38": {"version": "24", "sha256": "1icvdlrdg9078xwrawh5wv9z7x4aw65zawjdygsbcd67z158iviw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlnRS9kZXNrLWNoYW5nZXIvIiwKICAidXVpZCI6ICJkZXNrLWNoYW5nZXJAZXJpYy5nYWNoLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "40": {"version": "24", "sha256": "1icvdlrdg9078xwrawh5wv9z7x4aw65zawjdygsbcd67z158iviw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlnRS9kZXNrLWNoYW5nZXIvIiwKICAidXVpZCI6ICJkZXNrLWNoYW5nZXJAZXJpYy5nYWNoLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "41": {"version": "24", "sha256": "1icvdlrdg9078xwrawh5wv9z7x4aw65zawjdygsbcd67z158iviw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlnRS9kZXNrLWNoYW5nZXIvIiwKICAidXVpZCI6ICJkZXNrLWNoYW5nZXJAZXJpYy5nYWNoLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}, "42": {"version": "24", "sha256": "1icvdlrdg9078xwrawh5wv9z7x4aw65zawjdygsbcd67z158iviw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSB3YWxscGFwZXIgY2hhbmdlciB3aXRoIG11bHRpcGxlIHByb2ZpbGUgc3VwcG9ydC4gSW50ZWdyYXRlcyBpbnRvIHRoZSBzaGVsbCBieSBwcm92aWRpbmcgaXQncyBvd24gcGFuZWwgaWNvbi4gVGhlIGRhZW1vbiBpcyB3cml0dGVuIHVzaW5nIGdqcyBhbmQgcnVucyBpbmRlcGVuZGVudGx5IG9mIHRoZSBleHRlbnNpb24gYXMgYSBiYWNrZ3JvdW5kIHByb2Nlc3MuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGVzay1jaGFuZ2VyIiwKICAibmFtZSI6ICJEZXNrIENoYW5nZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGVzay1jaGFuZ2VyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vQmlnRS9kZXNrLWNoYW5nZXIvIiwKICAidXVpZCI6ICJkZXNrLWNoYW5nZXJAZXJpYy5nYWNoLmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAyNAp9"}}}
@@ -190,7 +191,7 @@
 , {"uuid": "Current_screen_only_for_Alternate_Tab@bourcereau.fr", "name": "Current screen only on window switcher", "pname": "current-screen-only-for-alternate-tab", "description": "Limits the windows shown on the switcher to those of the current monitor", "link": "https://extensions.gnome.org/extension/1437/current-screen-only-for-alternate-tab/", "shell_version_map": {"40": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "1808015iaci5pknzdcgh0icakxd2wmina10winii7hf644gxjcdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpbWl0cyB0aGUgd2luZG93cyBzaG93biBvbiB0aGUgc3dpdGNoZXIgdG8gdGhvc2Ugb2YgdGhlIGN1cnJlbnQgbW9uaXRvciIsCiAgIm5hbWUiOiAiQ3VycmVudCBzY3JlZW4gb25seSBvbiB3aW5kb3cgc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzAiLAogICAgIjMuMzIiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9tbWFpL0N1cnJlbnRfc2NyZWVuX29ubHlfb25fd2luZG93X3N3aXRjaGVyIiwKICAidXVpZCI6ICJDdXJyZW50X3NjcmVlbl9vbmx5X2Zvcl9BbHRlcm5hdGVfVGFiQGJvdXJjZXJlYXUuZnIiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "kube_config@vvbogdanov87.gmail.com", "name": "Kube Config", "pname": "kube-config", "description": "Switches kube config context", "link": "https://extensions.gnome.org/extension/1442/kube-config/", "shell_version_map": {"40": {"version": "20", "sha256": "13my8cb8jzmlbb6ny0sk51ckbsdxrggqkvsql3dyzndya3d8bnr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnZib2dkYW5vdjg3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1rdWJlY29uZmlnIiwKICAidXVpZCI6ICJrdWJlX2NvbmZpZ0B2dmJvZ2Rhbm92ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "13my8cb8jzmlbb6ny0sk51ckbsdxrggqkvsql3dyzndya3d8bnr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnZib2dkYW5vdjg3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1rdWJlY29uZmlnIiwKICAidXVpZCI6ICJrdWJlX2NvbmZpZ0B2dmJvZ2Rhbm92ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}, "42": {"version": "20", "sha256": "13my8cb8jzmlbb6ny0sk51ckbsdxrggqkvsql3dyzndya3d8bnr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIGt1YmUgY29uZmlnIGNvbnRleHQiLAogICJuYW1lIjogIkt1YmUgQ29uZmlnIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmt1YmUtY29uZmlnIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdnZib2dkYW5vdjg3L2dub21lLXNoZWxsLWV4dGVuc2lvbi1rdWJlY29uZmlnIiwKICAidXVpZCI6ICJrdWJlX2NvbmZpZ0B2dmJvZ2Rhbm92ODcuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
 , {"uuid": "transparent-window-moving@noobsai.github.com", "name": "Transparent Window Moving", "pname": "transparent-window-moving", "description": "Makes the window semi-transparent when moving or resizing", "link": "https://extensions.gnome.org/extension/1446/transparent-window-moving/", "shell_version_map": {"38": {"version": "6", "sha256": "0vllnrscjaqx77wb44803q6n3wk590dxacjfsw7ympbgqhikzc0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "41": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}, "42": {"version": "10", "sha256": "1cygayp1kaykm7ldsdbn6qpxi80ddipvlhl6i89sca33yrwisz3n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIHRoZSB3aW5kb3cgc2VtaS10cmFuc3BhcmVudCB3aGVuIG1vdmluZyBvciByZXNpemluZyIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiVHJhbnNwYXJlbnQgV2luZG93IE1vdmluZyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTm9vYnNhaS90cmFuc3BhcmVudC13aW5kb3ctbW92aW5nIiwKICAidXVpZCI6ICJ0cmFuc3BhcmVudC13aW5kb3ctbW92aW5nQG5vb2JzYWkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxMAp9"}}}
-, {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "10", "sha256": "0r4wdc5636njkgqclqh26vfik68p4adls08p8rwc5xb0w02jrp6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0r4wdc5636njkgqclqh26vfik68p4adls08p8rwc5xb0w02jrp6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0r4wdc5636njkgqclqh26vfik68p4adls08p8rwc5xb0w02jrp6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "10", "sha256": "0r4wdc5636njkgqclqh26vfik68p4adls08p8rwc5xb0w02jrp6s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
+, {"uuid": "transparent-window@pbxqdown.github.com", "name": "Transparent Window", "pname": "transparent-window", "description": "Change the opacity of windows by compiz-style shortcut Alt+scroll.\nYou can customize hotkey in Preference page if Alt key doesn't work.", "link": "https://extensions.gnome.org/extension/1454/transparent-window/", "shell_version_map": {"38": {"version": "11", "sha256": "07qn7hwpv8pzwbgw60mr87ww10mwcz8x8w3d4gq4zszgynw63nbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "40": {"version": "11", "sha256": "07qn7hwpv8pzwbgw60mr87ww10mwcz8x8w3d4gq4zszgynw63nbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "07qn7hwpv8pzwbgw60mr87ww10mwcz8x8w3d4gq4zszgynw63nbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "07qn7hwpv8pzwbgw60mr87ww10mwcz8x8w3d4gq4zszgynw63nbq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgb3BhY2l0eSBvZiB3aW5kb3dzIGJ5IGNvbXBpei1zdHlsZSBzaG9ydGN1dCBBbHQrc2Nyb2xsLlxuWW91IGNhbiBjdXN0b21pemUgaG90a2V5IGluIFByZWZlcmVuY2UgcGFnZSBpZiBBbHQga2V5IGRvZXNuJ3Qgd29yay4iLAogICJuYW1lIjogIlRyYW5zcGFyZW50IFdpbmRvdyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5UcmFuc3BhcmVudFdpbmRvdyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOC4xIiwKICAgICIzLjM2LjEiLAogICAgIjMuMzguMSIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIsCiAgICAiMy4zOC40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGJ4cWRvd24vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXdpbmRvdyIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtd2luZG93QHBieHFkb3duLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "miniview@thesecretaryofwar.com", "name": "Miniview", "pname": "miniview", "description": "Mini preview of another window (like picture-in-picture on a TV)\n- Left-mouse drag: move preview window\n- Right-mouse drag (or ctrl + left mouse drag): resize preview window\n- Scroll wheel (or shift + click): change target window\n- Double click: raise target window\n- Shift + F12: toggle preview window (this can be changed or disabled in preferences)\n- Ctrl + scroll wheel: adjust opacity", "link": "https://extensions.gnome.org/extension/1459/miniview/", "shell_version_map": {"38": {"version": "13", "sha256": "135mg4d49cm6ba72z9174kv31y49wpvlfddh04pmbj2cy95wai46", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmkgcHJldmlldyBvZiBhbm90aGVyIHdpbmRvdyAobGlrZSBwaWN0dXJlLWluLXBpY3R1cmUgb24gYSBUVilcbi0gTGVmdC1tb3VzZSBkcmFnOiBtb3ZlIHByZXZpZXcgd2luZG93XG4tIFJpZ2h0LW1vdXNlIGRyYWcgKG9yIGN0cmwgKyBsZWZ0IG1vdXNlIGRyYWcpOiByZXNpemUgcHJldmlldyB3aW5kb3dcbi0gU2Nyb2xsIHdoZWVsIChvciBzaGlmdCArIGNsaWNrKTogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "14", "sha256": "0ylnjpwvdzxsdh68k197rk5dhv1211vcrjhc5w9k39hd2mdhw4ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmkgcHJldmlldyBvZiBhbm90aGVyIHdpbmRvdyAobGlrZSBwaWN0dXJlLWluLXBpY3R1cmUgb24gYSBUVilcbi0gTGVmdC1tb3VzZSBkcmFnOiBtb3ZlIHByZXZpZXcgd2luZG93XG4tIFJpZ2h0LW1vdXNlIGRyYWcgKG9yIGN0cmwgKyBsZWZ0IG1vdXNlIGRyYWcpOiByZXNpemUgcHJldmlldyB3aW5kb3dcbi0gU2Nyb2xsIHdoZWVsIChvciBzaGlmdCArIGNsaWNrKTogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "0ylnjpwvdzxsdh68k197rk5dhv1211vcrjhc5w9k39hd2mdhw4ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmkgcHJldmlldyBvZiBhbm90aGVyIHdpbmRvdyAobGlrZSBwaWN0dXJlLWluLXBpY3R1cmUgb24gYSBUVilcbi0gTGVmdC1tb3VzZSBkcmFnOiBtb3ZlIHByZXZpZXcgd2luZG93XG4tIFJpZ2h0LW1vdXNlIGRyYWcgKG9yIGN0cmwgKyBsZWZ0IG1vdXNlIGRyYWcpOiByZXNpemUgcHJldmlldyB3aW5kb3dcbi0gU2Nyb2xsIHdoZWVsIChvciBzaGlmdCArIGNsaWNrKTogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "0ylnjpwvdzxsdh68k197rk5dhv1211vcrjhc5w9k39hd2mdhw4ch", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1pbmkgcHJldmlldyBvZiBhbm90aGVyIHdpbmRvdyAobGlrZSBwaWN0dXJlLWluLXBpY3R1cmUgb24gYSBUVilcbi0gTGVmdC1tb3VzZSBkcmFnOiBtb3ZlIHByZXZpZXcgd2luZG93XG4tIFJpZ2h0LW1vdXNlIGRyYWcgKG9yIGN0cmwgKyBsZWZ0IG1vdXNlIGRyYWcpOiByZXNpemUgcHJldmlldyB3aW5kb3dcbi0gU2Nyb2xsIHdoZWVsIChvciBzaGlmdCArIGNsaWNrKTogY2hhbmdlIHRhcmdldCB3aW5kb3dcbi0gRG91YmxlIGNsaWNrOiByYWlzZSB0YXJnZXQgd2luZG93XG4tIFNoaWZ0ICsgRjEyOiB0b2dnbGUgcHJldmlldyB3aW5kb3cgKHRoaXMgY2FuIGJlIGNoYW5nZWQgb3IgZGlzYWJsZWQgaW4gcHJlZmVyZW5jZXMpXG4tIEN0cmwgKyBzY3JvbGwgd2hlZWw6IGFkanVzdCBvcGFjaXR5IiwKICAiZXh0ZW5zaW9uLWlkIjogIm1pbml2aWV3IiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiTWluaXZpZXciLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgInRoZXNlY3JldGFyeW9md2FyQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubWluaXZpZXciLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pYW1sZW1lYy9taW5pdmlldyIsCiAgInV1aWQiOiAibWluaXZpZXdAdGhlc2VjcmV0YXJ5b2Z3YXIuY29tIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "Vitals@CoreCoding.com", "name": "Vitals", "pname": "vitals", "description": "A glimpse into your computer's temperature, voltage, fan speed, memory usage, processor load, system resources, network speed and storage stats. This is a one stop shop to monitor all of your vital sensors. Uses asynchronous polling to provide a smooth user experience. Feature requests or bugs? Please use GitHub.", "link": "https://extensions.gnome.org/extension/1460/vitals/", "shell_version_map": {"38": {"version": "54", "sha256": "1wfaxzsbzkmnzvszwpapxwj1370idgpxwmyg8a0drvb1jxxq3v1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29yZWNvZGluZy9WaXRhbHMiLAogICJ1dWlkIjogIlZpdGFsc0BDb3JlQ29kaW5nLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"}, "40": {"version": "54", "sha256": "1wfaxzsbzkmnzvszwpapxwj1370idgpxwmyg8a0drvb1jxxq3v1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29yZWNvZGluZy9WaXRhbHMiLAogICJ1dWlkIjogIlZpdGFsc0BDb3JlQ29kaW5nLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"}, "41": {"version": "54", "sha256": "1wfaxzsbzkmnzvszwpapxwj1370idgpxwmyg8a0drvb1jxxq3v1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29yZWNvZGluZy9WaXRhbHMiLAogICJ1dWlkIjogIlZpdGFsc0BDb3JlQ29kaW5nLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"}, "42": {"version": "54", "sha256": "1wfaxzsbzkmnzvszwpapxwj1370idgpxwmyg8a0drvb1jxxq3v1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ2xpbXBzZSBpbnRvIHlvdXIgY29tcHV0ZXIncyB0ZW1wZXJhdHVyZSwgdm9sdGFnZSwgZmFuIHNwZWVkLCBtZW1vcnkgdXNhZ2UsIHByb2Nlc3NvciBsb2FkLCBzeXN0ZW0gcmVzb3VyY2VzLCBuZXR3b3JrIHNwZWVkIGFuZCBzdG9yYWdlIHN0YXRzLiBUaGlzIGlzIGEgb25lIHN0b3Agc2hvcCB0byBtb25pdG9yIGFsbCBvZiB5b3VyIHZpdGFsIHNlbnNvcnMuIFVzZXMgYXN5bmNocm9ub3VzIHBvbGxpbmcgdG8gcHJvdmlkZSBhIHNtb290aCB1c2VyIGV4cGVyaWVuY2UuIEZlYXR1cmUgcmVxdWVzdHMgb3IgYnVncz8gUGxlYXNlIHVzZSBHaXRIdWIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidml0YWxzIiwKICAibmFtZSI6ICJWaXRhbHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudml0YWxzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29yZWNvZGluZy9WaXRhbHMiLAogICJ1dWlkIjogIlZpdGFsc0BDb3JlQ29kaW5nLmNvbSIsCiAgInZlcnNpb24iOiA1NAp9"}}}
 , {"uuid": "panel-date-format@keiii.github.com", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/1462/panel-date-format/", "shell_version_map": {"40": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "42": {"version": "7", "sha256": "0afqf8hkmg1fmnz0nn6jq6k7yl7vs69w0malqhf1bqfsn5w7ksdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJuYW1lIjogIlBhbmVsIERhdGUgRm9ybWF0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vS0VJSUkvZ25vbWUtc2hlbGwtcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGtlaWlpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
@@ -255,7 +256,7 @@
 , {"uuid": "spotify-ad-block@danigm.net", "name": "Mute spotify ads", "pname": "mute-spotify-ads", "description": "Mute spotify ads", "link": "https://extensions.gnome.org/extension/2176/mute-spotify-ads/", "shell_version_map": {"38": {"version": "15", "sha256": "1sxqira8hgdjam2b3fya1zpgdl3539vhy6r87jvss4x4r92r8jyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "40": {"version": "15", "sha256": "1sxqira8hgdjam2b3fya1zpgdl3539vhy6r87jvss4x4r92r8jyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "1sxqira8hgdjam2b3fya1zpgdl3539vhy6r87jvss4x4r92r8jyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "1sxqira8hgdjam2b3fya1zpgdl3539vhy6r87jvss4x4r92r8jyr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJuYW1lIjogIk11dGUgc3BvdGlmeSBhZHMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9kYW5pZ20vc3BvdGlmeS1hZC1ibG9ja2VyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFkLWJsb2NrQGRhbmlnbS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "noannoyance@daase.net", "name": "NoAnnoyance v2", "pname": "noannoyance", "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.", "link": "https://extensions.gnome.org/extension/2182/noannoyance/", "shell_version_map": {"38": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "1wr1wxmaxb569m3wsfdhs0jdpq1zqx3bkk6dgn9iswbbr060bnd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZXh0ZW5zaW9uLCB0aGF0IHJlbW92ZXMgdGhlICdXaW5kb3cgaXMgcmVhZHknIG5vdGlmaWNhdGlvbiBhbmQgcHV0cyB0aGUgd2luZG93IGludG8gZm9jdXMuIEluIGNvbnRyYXN0IHRvIGFsbCB0aGUgb3RoZXIgZXh0ZW5zaW9ucywgdGhpcyB1c2VzIEVTNiBzeW50YXggYW5kIGlzIGFjdGl2ZWx5IG1haW50YWluZWQuIiwKICAibmFtZSI6ICJOb0Fubm95YW5jZSB2MiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0Jqb2VybkRhYXNlL25vYW5ub3lhbmNlIiwKICAidXVpZCI6ICJub2Fubm95YW5jZUBkYWFzZS5uZXQiLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
 , {"uuid": "vim-altTab@kokong.info", "name": "VIM Alt-Tab", "pname": "vim-alt-tab", "description": "Add the ability to switch between windows and applications using vim-like keypresses (h, j, k, l)", "link": "https://extensions.gnome.org/extension/2212/vim-alt-tab/", "shell_version_map": {"38": {"version": "6", "sha256": "0k7k4fa5b8vdvycwwycwisrf5js2c65ixc88hi8x7czwkzml7mgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tva28tbmcvdmltLWFsdFRhYiIsCiAgInV1aWQiOiAidmltLWFsdFRhYkBrb2tvbmcuaW5mbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0k7k4fa5b8vdvycwwycwisrf5js2c65ixc88hi8x7czwkzml7mgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tva28tbmcvdmltLWFsdFRhYiIsCiAgInV1aWQiOiAidmltLWFsdFRhYkBrb2tvbmcuaW5mbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0k7k4fa5b8vdvycwwycwisrf5js2c65ixc88hi8x7czwkzml7mgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tva28tbmcvdmltLWFsdFRhYiIsCiAgInV1aWQiOiAidmltLWFsdFRhYkBrb2tvbmcuaW5mbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0k7k4fa5b8vdvycwwycwisrf5js2c65ixc88hi8x7czwkzml7mgd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB0aGUgYWJpbGl0eSB0byBzd2l0Y2ggYmV0d2VlbiB3aW5kb3dzIGFuZCBhcHBsaWNhdGlvbnMgdXNpbmcgdmltLWxpa2Uga2V5cHJlc3NlcyAoaCwgaiwgaywgbCkiLAogICJleHRlbnNpb24taWQiOiAidmltLWFsdHRhYiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbnMiLAogICJuYW1lIjogIlZJTSBBbHQtVGFiIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJqd0BiYXJnc3Rlbi5vcmciLAogICAgInRob21hcy5ib3VmZm9uQGdtYWlsLmNvbSIsCiAgICAia29rb0Brb2tvbmcuaW5mbyIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudmltLWFsdHRhYiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2tva28tbmcvdmltLWFsdFRhYiIsCiAgInV1aWQiOiAidmltLWFsdFRhYkBrb2tvbmcuaW5mbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"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": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "0k73mbcalr7m614yi4s1395881ci8sb40hfyvhz53cw3slx73b0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"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": "18", "sha256": "1rmari65bq7g6hh8gcvw382d69fkpgni0b4i1w1lz9jw91j9bn56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "40": {"version": "18", "sha256": "1rmari65bq7g6hh8gcvw382d69fkpgni0b4i1w1lz9jw91j9bn56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "1rmari65bq7g6hh8gcvw382d69fkpgni0b4i1w1lz9jw91j9bn56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "42": {"version": "18", "sha256": "1rmari65bq7g6hh8gcvw382d69fkpgni0b4i1w1lz9jw91j9bn56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgZXh0ZW5zaW9uIChHTk9NRSBQYW5lbCBhcHBsZXQpIHRvIGJlIGFibGUgdG8gZ2VuZXJhbGx5IGNvbnRyb2wgeW91ciBhdmFpbGFibGUgRG9ja2VyIGNvbnRhaW5lcnMuIiwKICAibmFtZSI6ICJFYXN5IERvY2tlciBDb250YWluZXJzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUmVkU29mdHdhcmVTeXN0ZW1zL2Vhc3lfZG9ja2VyX2NvbnRhaW5lcnMiLAogICJ1dWlkIjogImVhc3lfZG9ja2VyX2NvbnRhaW5lcnNAcmVkLnNvZnR3YXJlLnN5c3RlbXMiLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"uuid": "nightthemeswitcher@romainvigier.fr", "name": "Night Theme Switcher", "pname": "night-theme-switcher", "description": "Make your desktop easy on the eye, day and night.", "link": "https://extensions.gnome.org/extension/2236/night-theme-switcher/", "shell_version_map": {"38": {"version": "46", "sha256": "05z77ncchmlk3ncvz3pfvqp075xy39g6zrxqlpj1f8cp999czyv0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vbmlnaHR0aGVtZXN3aXRjaGVyLnJvbWFpbnZpZ2llci5mciIsCiAgInV1aWQiOiAibmlnaHR0aGVtZXN3aXRjaGVyQHJvbWFpbnZpZ2llci5mciIsCiAgInZlcnNpb24iOiA0Ngp9"}, "40": {"version": "51", "sha256": "0js9iwmffw7v3libzl8cmxm3p5j79i9a2003j5bg281g4r26rvvr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTEKfQ=="}, "41": {"version": "55", "sha256": "16gqs754g6dy6dz811zkd3vvj3aipd46h8zzxicvr2099dfz83sj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uaWdodHRoZW1lc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL25pZ2h0dGhlbWVzd2l0Y2hlci5yb21haW52aWdpZXIuZnIiLAogICJ1dWlkIjogIm5pZ2h0dGhlbWVzd2l0Y2hlckByb21haW52aWdpZXIuZnIiLAogICJ2ZXJzaW9uIjogNTUKfQ=="}, "42": {"version": "64", "sha256": "1ch8f0hwz1dvxp866cc6fybk5vz8mgrdfjsbnsjk5p8jswygsvgk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgeW91ciBkZXNrdG9wIGVhc3kgb24gdGhlIGV5ZSwgZGF5IGFuZCBuaWdodC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAibmFtZSI6ICJOaWdodCBUaGVtZSBTd2l0Y2hlciIsCiAgInNlc3Npb24tbW9kZXMiOiBbCiAgICAidW5sb2NrLWRpYWxvZyIsCiAgICAidXNlciIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmlnaHR0aGVtZXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9uaWdodHRoZW1lc3dpdGNoZXIucm9tYWludmlnaWVyLmZyIiwKICAidXVpZCI6ICJuaWdodHRoZW1lc3dpdGNoZXJAcm9tYWludmlnaWVyLmZyIiwKICAidmVyc2lvbiI6IDY0Cn0="}}}
 , {"uuid": "binaryclock@vancha.march", "name": "binaryclock", "pname": "binaryclock", "description": "adds a binary clock to the gnome bar", "link": "https://extensions.gnome.org/extension/2284/binaryclock/", "shell_version_map": {"38": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1bvzlqfhwlk1sh9q3538yipjwzgndd4wnn2l8wc3sshb93ggvpg6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFkZHMgYSBiaW5hcnkgY2xvY2sgdG8gdGhlIGdub21lIGJhciIsCiAgIm5hbWUiOiAiYmluYXJ5Y2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjgiLAogICAgIjMuMzQiLAogICAgIjMuMzIuMiIsCiAgICAiMy4zOCIsCiAgICAiMy4zNi43IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3ZhbmNoYS9nbm9tZVNoZWxsQmluYXJ5Q2xvY2svIiwKICAidXVpZCI6ICJiaW5hcnljbG9ja0B2YW5jaGEubWFyY2giLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "lgbutton@glerro.gnome.gitlab.io", "name": "Looking Glass Button", "pname": "looking-glass-button", "description": "Toggle the Looking Glass visibility by clicking on a panel icon.\n\nAnd from version 4 left clicking on the icon show a menu with new features like Restart Gnome Shell (not available on Wayland), Reload Theme, Open Extension Folder and Open Theme Folder (the last two require that xdg-open is installed).\n\nVersion 4 also drop the compatibility with Gnome Shell 3.30.", "link": "https://extensions.gnome.org/extension/2296/looking-glass-button/", "shell_version_map": {"38": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "0rkk1mivq0drvpjbg89gi7plpaza71r08cyvkymygwwi2sfwpy9l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSB0aGUgTG9va2luZyBHbGFzcyB2aXNpYmlsaXR5IGJ5IGNsaWNraW5nIG9uIGEgcGFuZWwgaWNvbi5cblxuQW5kIGZyb20gdmVyc2lvbiA0IGxlZnQgY2xpY2tpbmcgb24gdGhlIGljb24gc2hvdyBhIG1lbnUgd2l0aCBuZXcgZmVhdHVyZXMgbGlrZSBSZXN0YXJ0IEdub21lIFNoZWxsIChub3QgYXZhaWxhYmxlIG9uIFdheWxhbmQpLCBSZWxvYWQgVGhlbWUsIE9wZW4gRXh0ZW5zaW9uIEZvbGRlciBhbmQgT3BlbiBUaGVtZSBGb2xkZXIgKHRoZSBsYXN0IHR3byByZXF1aXJlIHRoYXQgeGRnLW9wZW4gaXMgaW5zdGFsbGVkKS5cblxuVmVyc2lvbiA0IGFsc28gZHJvcCB0aGUgY29tcGF0aWJpbGl0eSB3aXRoIEdub21lIFNoZWxsIDMuMzAuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWxnYnV0dG9uIiwKICAibmFtZSI6ICJMb29raW5nIEdsYXNzIEJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2dsZXJyby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbGdidXR0b24iLAogICJ1dWlkIjogImxnYnV0dG9uQGdsZXJyby5nbm9tZS5naXRsYWIuaW8iLAogICJ2ZXJzaW9uIjogOAp9"}}}
@@ -265,7 +266,7 @@
 , {"uuid": "roundrobintaborder@scottworley.com", "name": "Round Robin Tab Order", "pname": "round-robin-tab-order", "description": "Window switch order becomes round-robin instead of most-recently-used", "link": "https://extensions.gnome.org/extension/2446/round-robin-tab-order/", "shell_version_map": {"40": {"version": "3", "sha256": "0p2qfv6i43pi0hjsyz8xzxkxijr06b0d20q618y8gfj4ar82glv7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldpbmRvdyBzd2l0Y2ggb3JkZXIgYmVjb21lcyByb3VuZC1yb2JpbiBpbnN0ZWFkIG9mIG1vc3QtcmVjZW50bHktdXNlZCIsCiAgIm5hbWUiOiAiUm91bmQgUm9iaW4gVGFiIE9yZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMyIiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuZ25vbWUub3JnL2NodWNrL3JvdW5kLXJvYmluLXRhYi1vcmRlciIsCiAgInV1aWQiOiAicm91bmRyb2JpbnRhYm9yZGVyQHNjb3R0d29ybGV5LmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "bubblemail@razer.framagit.org", "name": "Bubblemail", "pname": "bubblemail", "description": "Indicator for new and unread mail (Yahoo, Gmail, Microsoft, Outlook, Aol, Icloud, Protonmail, Gmx...)\n * Multiple accounts support\n * Local mail support for Maildir and Mbox formats\n * Remote mail support for Pop3, Imap and Exchange protocols\n * Automatic imports of Gnome Online Accounts\n * Plugin support with default ones : spam filter, sound alert, libnotify, user script\n * Avatars provided by the server or default colorized ones\n * Reports for connection errors.\n\nBE AWARE THAT THIS EXTENSION REQUIRES BUBBLEMAIL SERVICE INSTALLATION\nCheck your distribution packaging system for availability.\nPackages for distributions and source tarballs can be found here :\nhttp://bubblemail.free.fr\n\nPlease report any issue on the gitlab pages of the project :\nhttps://framagit.org/razer/bubblemail/issues\nhttps://framagit.org/razer/bubblemail-gnome-shell/issues", "link": "https://extensions.gnome.org/extension/2458/bubblemail/", "shell_version_map": {"38": {"version": "18", "sha256": "1szrwl50wh2xycwb17m00z1pdn3nlh6aji17pjddh5ck0ai7rgsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBmb3IgbmV3IGFuZCB1bnJlYWQgbWFpbCAoWWFob28sIEdtYWlsLCBNaWNyb3NvZnQsIE91dGxvb2ssIEFvbCwgSWNsb3VkLCBQcm90b25tYWlsLCBHbXguLi4pXG4gKiBNdWx0aXBsZSBhY2NvdW50cyBzdXBwb3J0XG4gKiBMb2NhbCBtYWlsIHN1cHBvcnQgZm9yIE1haWxkaXIgYW5kIE1ib3ggZm9ybWF0c1xuICogUmVtb3RlIG1haWwgc3VwcG9ydCBmb3IgUG9wMywgSW1hcCBhbmQgRXhjaGFuZ2UgcHJvdG9jb2xzXG4gKiBBdXRvbWF0aWMgaW1wb3J0cyBvZiBHbm9tZSBPbmxpbmUgQWNjb3VudHNcbiAqIFBsdWdpbiBzdXBwb3J0IHdpdGggZGVmYXVsdCBvbmVzIDogc3BhbSBmaWx0ZXIsIHNvdW5kIGFsZXJ0LCBsaWJub3RpZnksIHVzZXIgc2NyaXB0XG4gKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIgb3IgZGVmYXVsdCBjb2xvcml6ZWQgb25lc1xuICogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbkJFIEFXQVJFIFRIQVQgVEhJUyBFWFRFTlNJT04gUkVRVUlSRVMgQlVCQkxFTUFJTCBTRVJWSUNFIElOU1RBTExBVElPTlxuQ2hlY2sgeW91ciBkaXN0cmlidXRpb24gcGFja2FnaW5nIHN5c3RlbSBmb3IgYXZhaWxhYmlsaXR5LlxuUGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cblBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "1szrwl50wh2xycwb17m00z1pdn3nlh6aji17pjddh5ck0ai7rgsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBmb3IgbmV3IGFuZCB1bnJlYWQgbWFpbCAoWWFob28sIEdtYWlsLCBNaWNyb3NvZnQsIE91dGxvb2ssIEFvbCwgSWNsb3VkLCBQcm90b25tYWlsLCBHbXguLi4pXG4gKiBNdWx0aXBsZSBhY2NvdW50cyBzdXBwb3J0XG4gKiBMb2NhbCBtYWlsIHN1cHBvcnQgZm9yIE1haWxkaXIgYW5kIE1ib3ggZm9ybWF0c1xuICogUmVtb3RlIG1haWwgc3VwcG9ydCBmb3IgUG9wMywgSW1hcCBhbmQgRXhjaGFuZ2UgcHJvdG9jb2xzXG4gKiBBdXRvbWF0aWMgaW1wb3J0cyBvZiBHbm9tZSBPbmxpbmUgQWNjb3VudHNcbiAqIFBsdWdpbiBzdXBwb3J0IHdpdGggZGVmYXVsdCBvbmVzIDogc3BhbSBmaWx0ZXIsIHNvdW5kIGFsZXJ0LCBsaWJub3RpZnksIHVzZXIgc2NyaXB0XG4gKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIgb3IgZGVmYXVsdCBjb2xvcml6ZWQgb25lc1xuICogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbkJFIEFXQVJFIFRIQVQgVEhJUyBFWFRFTlNJT04gUkVRVUlSRVMgQlVCQkxFTUFJTCBTRVJWSUNFIElOU1RBTExBVElPTlxuQ2hlY2sgeW91ciBkaXN0cmlidXRpb24gcGFja2FnaW5nIHN5c3RlbSBmb3IgYXZhaWxhYmlsaXR5LlxuUGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cblBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "1szrwl50wh2xycwb17m00z1pdn3nlh6aji17pjddh5ck0ai7rgsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBmb3IgbmV3IGFuZCB1bnJlYWQgbWFpbCAoWWFob28sIEdtYWlsLCBNaWNyb3NvZnQsIE91dGxvb2ssIEFvbCwgSWNsb3VkLCBQcm90b25tYWlsLCBHbXguLi4pXG4gKiBNdWx0aXBsZSBhY2NvdW50cyBzdXBwb3J0XG4gKiBMb2NhbCBtYWlsIHN1cHBvcnQgZm9yIE1haWxkaXIgYW5kIE1ib3ggZm9ybWF0c1xuICogUmVtb3RlIG1haWwgc3VwcG9ydCBmb3IgUG9wMywgSW1hcCBhbmQgRXhjaGFuZ2UgcHJvdG9jb2xzXG4gKiBBdXRvbWF0aWMgaW1wb3J0cyBvZiBHbm9tZSBPbmxpbmUgQWNjb3VudHNcbiAqIFBsdWdpbiBzdXBwb3J0IHdpdGggZGVmYXVsdCBvbmVzIDogc3BhbSBmaWx0ZXIsIHNvdW5kIGFsZXJ0LCBsaWJub3RpZnksIHVzZXIgc2NyaXB0XG4gKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIgb3IgZGVmYXVsdCBjb2xvcml6ZWQgb25lc1xuICogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbkJFIEFXQVJFIFRIQVQgVEhJUyBFWFRFTlNJT04gUkVRVUlSRVMgQlVCQkxFTUFJTCBTRVJWSUNFIElOU1RBTExBVElPTlxuQ2hlY2sgeW91ciBkaXN0cmlidXRpb24gcGFja2FnaW5nIHN5c3RlbSBmb3IgYXZhaWxhYmlsaXR5LlxuUGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cblBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "1szrwl50wh2xycwb17m00z1pdn3nlh6aji17pjddh5ck0ai7rgsl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkluZGljYXRvciBmb3IgbmV3IGFuZCB1bnJlYWQgbWFpbCAoWWFob28sIEdtYWlsLCBNaWNyb3NvZnQsIE91dGxvb2ssIEFvbCwgSWNsb3VkLCBQcm90b25tYWlsLCBHbXguLi4pXG4gKiBNdWx0aXBsZSBhY2NvdW50cyBzdXBwb3J0XG4gKiBMb2NhbCBtYWlsIHN1cHBvcnQgZm9yIE1haWxkaXIgYW5kIE1ib3ggZm9ybWF0c1xuICogUmVtb3RlIG1haWwgc3VwcG9ydCBmb3IgUG9wMywgSW1hcCBhbmQgRXhjaGFuZ2UgcHJvdG9jb2xzXG4gKiBBdXRvbWF0aWMgaW1wb3J0cyBvZiBHbm9tZSBPbmxpbmUgQWNjb3VudHNcbiAqIFBsdWdpbiBzdXBwb3J0IHdpdGggZGVmYXVsdCBvbmVzIDogc3BhbSBmaWx0ZXIsIHNvdW5kIGFsZXJ0LCBsaWJub3RpZnksIHVzZXIgc2NyaXB0XG4gKiBBdmF0YXJzIHByb3ZpZGVkIGJ5IHRoZSBzZXJ2ZXIgb3IgZGVmYXVsdCBjb2xvcml6ZWQgb25lc1xuICogUmVwb3J0cyBmb3IgY29ubmVjdGlvbiBlcnJvcnMuXG5cbkJFIEFXQVJFIFRIQVQgVEhJUyBFWFRFTlNJT04gUkVRVUlSRVMgQlVCQkxFTUFJTCBTRVJWSUNFIElOU1RBTExBVElPTlxuQ2hlY2sgeW91ciBkaXN0cmlidXRpb24gcGFja2FnaW5nIHN5c3RlbSBmb3IgYXZhaWxhYmlsaXR5LlxuUGFja2FnZXMgZm9yIGRpc3RyaWJ1dGlvbnMgYW5kIHNvdXJjZSB0YXJiYWxscyBjYW4gYmUgZm91bmQgaGVyZSA6XG5odHRwOi8vYnViYmxlbWFpbC5mcmVlLmZyXG5cblBsZWFzZSByZXBvcnQgYW55IGlzc3VlIG9uIHRoZSBnaXRsYWIgcGFnZXMgb2YgdGhlIHByb2plY3QgOlxuaHR0cHM6Ly9mcmFtYWdpdC5vcmcvcmF6ZXIvYnViYmxlbWFpbC9pc3N1ZXNcbmh0dHBzOi8vZnJhbWFnaXQub3JnL3JhemVyL2J1YmJsZW1haWwtZ25vbWUtc2hlbGwvaXNzdWVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYnViYmxlbWFpbC1nbm9tZS1zaGVsbCIsCiAgIm5hbWUiOiAiQnViYmxlbWFpbCIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAicmF6ZXJyYXpAZnJlZS5mciIsCiAgICAienVsdTk5QGdteC5uZXQiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJ1YmJsZW1haWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHA6Ly9idWJibGVtYWlsLmZyZWUuZnIiLAogICJ1dWlkIjogImJ1YmJsZW1haWxAcmF6ZXIuZnJhbWFnaXQub3JnIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
 , {"uuid": "keypadTiling@abakkk.framagit.org", "name": "Keypad Tiling", "pname": "keypad-tiling", "description": "", "link": "https://extensions.gnome.org/extension/2473/keypad-tiling/", "shell_version_map": {"38": {"version": "4", "sha256": "1v0hxg96l482wngrszh0xabgj95q7rmyimd2rxnbkddd2gascnya", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiIsCiAgImdldHRleHQtZG9tYWluIjogImtleXBhZC10aWxpbmciLAogICJuYW1lIjogIktleXBhZCBUaWxpbmciLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2V5cGFkLXRpbGluZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJrZXlwYWRUaWxpbmdAYWJha2trLmZyYW1hZ2l0Lm9yZyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "reminder_alarm_clock@trifonovkv.gmail.com", "name": "Reminder Alarm Clock", "pname": "reminder-alarm-clock", "description": "The reminder alarm clock will remind you of an important event at the appointed time.", "link": "https://extensions.gnome.org/extension/2482/reminder-alarm-clock/", "shell_version_map": {"38": {"version": "40", "sha256": "0yljdig44gly3fky4ls42shbpvf2387kgnn1dfla9zmxxzjdkryq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}}}
+, {"uuid": "reminder_alarm_clock@trifonovkv.gmail.com", "name": "Reminder Alarm Clock", "pname": "reminder-alarm-clock", "description": "The reminder alarm clock will remind you of an important event at the appointed time.", "link": "https://extensions.gnome.org/extension/2482/reminder-alarm-clock/", "shell_version_map": {"38": {"version": "40", "sha256": "0yljdig44gly3fky4ls42shbpvf2387kgnn1dfla9zmxxzjdkryq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4LjEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90cmlmb25vdmt2L1JlbWluZGVyQWxhcm1DbG9jayIsCiAgInV1aWQiOiAicmVtaW5kZXJfYWxhcm1fY2xvY2tAdHJpZm9ub3Zrdi5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNDAKfQ=="}, "40": {"version": "42", "sha256": "05l8rss6nxcdv983iz5pxbqmkmhqwz7c24d7i7w4x40xz6lcn67z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9SZW1pbmRlckFsYXJtQ2xvY2siLAogICJ1dWlkIjogInJlbWluZGVyX2FsYXJtX2Nsb2NrQHRyaWZvbm92a3YuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "41": {"version": "42", "sha256": "05l8rss6nxcdv983iz5pxbqmkmhqwz7c24d7i7w4x40xz6lcn67z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9SZW1pbmRlckFsYXJtQ2xvY2siLAogICJ1dWlkIjogInJlbWluZGVyX2FsYXJtX2Nsb2NrQHRyaWZvbm92a3YuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}, "42": {"version": "42", "sha256": "05l8rss6nxcdv983iz5pxbqmkmhqwz7c24d7i7w4x40xz6lcn67z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSByZW1pbmRlciBhbGFybSBjbG9jayB3aWxsIHJlbWluZCB5b3Ugb2YgYW4gaW1wb3J0YW50IGV2ZW50IGF0IHRoZSBhcHBvaW50ZWQgdGltZS4iLAogICJuYW1lIjogIlJlbWluZGVyIEFsYXJtIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHJpZm9ub3Zrdi9SZW1pbmRlckFsYXJtQ2xvY2siLAogICJ1dWlkIjogInJlbWluZGVyX2FsYXJtX2Nsb2NrQHRyaWZvbm92a3YuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQyCn0="}}}
 , {"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="}, "40": {"version": "8", "sha256": "0a2fwmm1n5n2ifryb6yfzh4nj4h11qkphpxvp876fyll03y9p2m5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiEhISBEZXZlbG9wbWVudCBzdG9wcGVkICEhISEgIExvb2sgYXQgRGFzaCB0byBQYW5lbCBhcyBhbiBhbHRlcm5hdGl2ZTogaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTE2MC9kYXNoLXRvLXBhbmVsL1xuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG5cblRhc2tCYXIgMjAyMCBkaXNwbGF5cyBpY29ucyBvZiBydW5uaW5nIGFwcGxpY2F0aW9ucyBhbmQgZmF2b3JpdGVzIG9uIHRoZSB0b3AgcGFuZWwgb3IgYWx0ZXJuYXRpdmVseSBvbiBhIG5ldyBib3R0b20gcGFuZWwuIEFjdGl2YXRlLCBtaW5pbWl6ZSBvciBjbG9zZSB0YXNrcyB3aXRoIGEgc2ltcGxlIGNsaWNrLiBcblxuVGFza0JhciAyMDIwIGlzIGEgZG9jay1saWtlIHdpbmRvd3MgbGlzdCBvbiB0aGUgdG9wL2JvdHRvbSBiYXIuIFxuXG5Gb3JrIG9mIHpweWRyL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIHRvIHN1cHBvcnQgbmV3ZXIgdmVyc2lvbnMgb2YgR05PTUUiLAogICJuYW1lIjogIlRhc2tCYXIgMjAyMCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jMGxkcGxhc21hL2dub21lLXNoZWxsLWV4dGVuc2lvbi10YXNrYmFyIiwKICAidXVpZCI6ICJUYXNrQmFyQGMwbGRwbGFzbWEiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "kernel-indicator@elboulangero.gitlab.com", "name": "Kernel Indicator", "pname": "kernel-indicator", "description": "Display the kernel version in the top bar", "link": "https://extensions.gnome.org/extension/2512/kernel-indicator/", "shell_version_map": {"40": {"version": "5", "sha256": "11zfmsl5wnvz0lmv5vkfsyd14x3yfiaii70wzxjdwilgxazbhvl9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZWxib3VsYW5nZXJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rZXJuZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJrZXJuZWwtaW5kaWNhdG9yQGVsYm91bGFuZ2Vyby5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "11zfmsl5wnvz0lmv5vkfsyd14x3yfiaii70wzxjdwilgxazbhvl9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZWxib3VsYW5nZXJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rZXJuZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJrZXJuZWwtaW5kaWNhdG9yQGVsYm91bGFuZ2Vyby5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "11zfmsl5wnvz0lmv5vkfsyd14x3yfiaii70wzxjdwilgxazbhvl9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgdGhlIGtlcm5lbCB2ZXJzaW9uIGluIHRoZSB0b3AgYmFyIiwKICAibmFtZSI6ICJLZXJuZWwgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZWxib3VsYW5nZXJvL2dub21lLXNoZWxsLWV4dGVuc2lvbi1rZXJuZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJrZXJuZWwtaW5kaWNhdG9yQGVsYm91bGFuZ2Vyby5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "floatingDock@sun.wxg@gmail.com", "name": "Floating Dock", "pname": "floating-dock", "description": "Move dock anywhere on the desktop\n\nPress Ctrl+Alt+k to vi mode\nPress lowercase alphabet, open new window or active the window\nPress uppercase alphabet, force to open new window\n\nPoint on the main button, change workspace by mouse scroll\nRight click the main button, show some selections", "link": "https://extensions.gnome.org/extension/2542/floating-dock/", "shell_version_map": {"38": {"version": "12", "sha256": "1844hhr0z4wd0wvh29q0sxh6xmwq7chg3kr3sa3c46q8n97i78x2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3N1bnd4Zy9nbm9tZS1zaGVsbC1leHRlbnNpb24tZmxvYXRpbmdEb2NrIiwKICAidXVpZCI6ICJmbG9hdGluZ0RvY2tAc3VuLnd4Z0BnbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "21", "sha256": "0qj1vqd44clpr72j5lccvva48kzaz76zd48k6nxzvnkgh2n5dh29", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIxCn0="}, "41": {"version": "23", "sha256": "0ag8pq9sgk885912mqiyhsacfmgkn9n4jvyp0rk4nw0fghd1mgd9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIzCn0="}, "42": {"version": "30", "sha256": "07bi19lnzfd1nrkdy19d36pbrf24yl5wkxirq7vdbvwng02l7rhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgZG9jayBhbnl3aGVyZSBvbiB0aGUgZGVza3RvcFxuXG5QcmVzcyBDdHJsK0FsdCtrIHRvIHZpIG1vZGVcblByZXNzIGxvd2VyY2FzZSBhbHBoYWJldCwgb3BlbiBuZXcgd2luZG93IG9yIGFjdGl2ZSB0aGUgd2luZG93XG5QcmVzcyB1cHBlcmNhc2UgYWxwaGFiZXQsIGZvcmNlIHRvIG9wZW4gbmV3IHdpbmRvd1xuXG5Qb2ludCBvbiB0aGUgbWFpbiBidXR0b24sIGNoYW5nZSB3b3Jrc3BhY2UgYnkgbW91c2Ugc2Nyb2xsXG5SaWdodCBjbGljayB0aGUgbWFpbiBidXR0b24sIHNob3cgc29tZSBzZWxlY3Rpb25zIiwKICAibmFtZSI6ICJGbG9hdGluZyBEb2NrIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJzdW4ud3hnQGdtYWlsLmNvbSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zdW53eGcvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWZsb2F0aW5nRG9jayIsCiAgInV1aWQiOiAiZmxvYXRpbmdEb2NrQHN1bi53eGdAZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDMwCn0="}}}
@@ -305,7 +306,7 @@
 , {"uuid": "optimus-manager-indicator@andr3slelouch.github.com", "name": "Optimus Manager Indicator", "pname": "optimus-manager-indicator", "description": "Intel/Hybrid/NVIDIA GPU Switch Note: The GPU mode activated doesn't show up in the options, by example: When you turn on the PC you are gonna be in Intel mode so Intel option is not gonna be shown. Note: Optimus Manager Indicator is made(for the moment) for Arch based distributions with optimus-manager.", "link": "https://extensions.gnome.org/extension/2908/optimus-manager-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "1mqgnwfdbd2460ngkkq6wiswvb9bvwgm5n32j7jgvn1xhb3mqn58", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVsL0h5YnJpZC9OVklESUEgR1BVIFN3aXRjaCBOb3RlOiBUaGUgR1BVIG1vZGUgYWN0aXZhdGVkIGRvZXNuJ3Qgc2hvdyB1cCBpbiB0aGUgb3B0aW9ucywgYnkgZXhhbXBsZTogV2hlbiB5b3UgdHVybiBvbiB0aGUgUEMgeW91IGFyZSBnb25uYSBiZSBpbiBJbnRlbCBtb2RlIHNvIEludGVsIG9wdGlvbiBpcyBub3QgZ29ubmEgYmUgc2hvd24uIE5vdGU6IE9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IgaXMgbWFkZShmb3IgdGhlIG1vbWVudCkgZm9yIEFyY2ggYmFzZWQgZGlzdHJpYnV0aW9ucyB3aXRoIG9wdGltdXMtbWFuYWdlci4iLAogICJuYW1lIjogIk9wdGltdXMgTWFuYWdlciBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwLjAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hbmRyM3NsZWxvdWNoL09wdGltdXMtTWFuYWdlci1JbmRpY2F0b3IiLAogICJ1dWlkIjogIm9wdGltdXMtbWFuYWdlci1pbmRpY2F0b3JAYW5kcjNzbGVsb3VjaC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "BringOutSubmenuOfPowerOffLogoutButton@pratap.fastmail.fm", "name": "Bring Out Submenu Of Power Off/Logout Button", "pname": "bring-out-submenu-of-power-offlogout-button", "description": "Bring Out Submenu Of Power Off/Logout Button and Rearrange the Order of System Menu.", "link": "https://extensions.gnome.org/extension/2917/bring-out-submenu-of-power-offlogout-button/", "shell_version_map": {"38": {"version": "29", "sha256": "18b945hcy8a13dm0s2d1x9dc6d8b2pxgmhaqshk8wbcmxjwiv866", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "40": {"version": "29", "sha256": "18b945hcy8a13dm0s2d1x9dc6d8b2pxgmhaqshk8wbcmxjwiv866", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "41": {"version": "29", "sha256": "18b945hcy8a13dm0s2d1x9dc6d8b2pxgmhaqshk8wbcmxjwiv866", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOQp9"}, "42": {"version": "29", "sha256": "18b945hcy8a13dm0s2d1x9dc6d8b2pxgmhaqshk8wbcmxjwiv866", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJyaW5nIE91dCBTdWJtZW51IE9mIFBvd2VyIE9mZi9Mb2dvdXQgQnV0dG9uIGFuZCBSZWFycmFuZ2UgdGhlIE9yZGVyIG9mIFN5c3RlbSBNZW51LiIsCiAgIm5hbWUiOiAiQnJpbmcgT3V0IFN1Ym1lbnUgT2YgUG93ZXIgT2ZmL0xvZ291dCBCdXR0b24iLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYnJuZ291dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9CcmluZy1PdXQtU3VibWVudS1vZi1Qb3dlci1PZmYtTG9nb3V0IiwKICAidXVpZCI6ICJCcmluZ091dFN1Ym1lbnVPZlBvd2VyT2ZmTG9nb3V0QnV0dG9uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAyOQp9"}}}
 , {"uuid": "batterytimepercentagecompact@sagrland.de", "name": "Battery Time (Percentage) Compact", "pname": "battery-time-percentage-compact", "description": "Show the remaining time until fully charged/discharged as well as percentage of battery charge in the panel.", "link": "https://extensions.gnome.org/extension/2929/battery-time-percentage-compact/", "shell_version_map": {"38": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "143gj2xmi1hhma2fjggk6vaq3sx7p0glszayds1jbnz7003xc89q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIHJlbWFpbmluZyB0aW1lIHVudGlsIGZ1bGx5IGNoYXJnZWQvZGlzY2hhcmdlZCBhcyB3ZWxsIGFzIHBlcmNlbnRhZ2Ugb2YgYmF0dGVyeSBjaGFyZ2UgaW4gdGhlIHBhbmVsLiIsCiAgImdldHRleHQtZG9tYWluIjogImJhdHRlcnl0aW1lcGVyY2VudGFnZWNvbXBhY3QiLAogICJuYW1lIjogIkJhdHRlcnkgVGltZSAoUGVyY2VudGFnZSkgQ29tcGFjdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iYXR0ZXJ5dGltZXBlcmNlbnRhZ2Vjb21wYWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2FHckxhbmQvZ25vbWUtc2hlbGwtYmF0dGVyeS10aW1lLXBlcmNlbnRhZ2UtY29tcGFjdCIsCiAgInV1aWQiOiAiYmF0dGVyeXRpbWVwZXJjZW50YWdlY29tcGFjdEBzYWdybGFuZC5kZSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "40": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "41": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}, "42": {"version": "18", "sha256": "0qrpjz455jx4kd82y9wkmdl6mj46kpknbs2bh4fjm5jlvrjb92ak", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE4Cn0="}}}
+, {"uuid": "executor@raujonas.github.io", "name": "Executor", "pname": "executor", "description": "Execute multiple shell commands periodically with separate intervals and display the output in gnome top bar.", "link": "https://extensions.gnome.org/extension/2932/executor/", "shell_version_map": {"38": {"version": "19", "sha256": "0gi36ys3wmh5m2nsw4579wfxh6r3k0hkljwx9bl7kxanqpzgncvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "40": {"version": "19", "sha256": "0gi36ys3wmh5m2nsw4579wfxh6r3k0hkljwx9bl7kxanqpzgncvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "41": {"version": "19", "sha256": "0gi36ys3wmh5m2nsw4579wfxh6r3k0hkljwx9bl7kxanqpzgncvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE5Cn0="}, "42": {"version": "19", "sha256": "0gi36ys3wmh5m2nsw4579wfxh6r3k0hkljwx9bl7kxanqpzgncvl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4ZWN1dGUgbXVsdGlwbGUgc2hlbGwgY29tbWFuZHMgcGVyaW9kaWNhbGx5IHdpdGggc2VwYXJhdGUgaW50ZXJ2YWxzIGFuZCBkaXNwbGF5IHRoZSBvdXRwdXQgaW4gZ25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIkV4ZWN1dG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjMwLjIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9yYXVqb25hcy9leGVjdXRvciIsCiAgInV1aWQiOiAiZXhlY3V0b3JAcmF1am9uYXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE5Cn0="}}}
 , {"uuid": "ControlBlurEffectOnLockScreen@pratap.fastmail.fm", "name": "Control Blur Effect On Lock Screen", "pname": "control-blur-effect-on-lock-screen", "description": "Control the Blur Effect On Lock Screen.", "link": "https://extensions.gnome.org/extension/2935/control-blur-effect-on-lock-screen/", "shell_version_map": {"38": {"version": "14", "sha256": "176qxx2zykzzjq2xf8sf1c83r1skaxa2mzmp51v8bq3vbbxp0wij", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "41": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}, "42": {"version": "18", "sha256": "0wxyfkd9nyrnxzlcp1sp0kb2q0zsjnhs5s0lgg85rnn72x8wnnbn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdGhlIEJsdXIgRWZmZWN0IE9uIExvY2sgU2NyZWVuLiIsCiAgIm5hbWUiOiAiQ29udHJvbCBCbHVyIEVmZmVjdCBPbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9Db250cm9sX0JsdXJfRWZmZWN0X09uX0xvY2tfU2NyZWVuIiwKICAidXVpZCI6ICJDb250cm9sQmx1ckVmZmVjdE9uTG9ja1NjcmVlbkBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTgKfQ=="}}}
 , {"uuid": "compiz-alike-windows-effect@hermes83.github.com", "name": "Compiz alike windows effect", "pname": "compiz-alike-windows-effect", "description": "Wobbly windows effect inspired by the Compiz ones\n\nNB\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n ALTERNATIVE\n-----------------------------------\nalternative extension to obtain an effect more similar to the original:\nhttps://extensions.gnome.org/extension/3210/compiz-windows-effect/", "link": "https://extensions.gnome.org/extension/2950/compiz-alike-windows-effect/", "shell_version_map": {"38": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}, "41": {"version": "22", "sha256": "0zkc9lcirqg224m46jjz2vapfg4lg9x7s0h0kvv57rfmkhrxcgbg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvYmJseSB3aW5kb3dzIGVmZmVjdCBpbnNwaXJlZCBieSB0aGUgQ29tcGl6IG9uZXNcblxuTkJcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIEFMVEVSTkFUSVZFXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuYWx0ZXJuYXRpdmUgZXh0ZW5zaW9uIHRvIG9idGFpbiBhbiBlZmZlY3QgbW9yZSBzaW1pbGFyIHRvIHRoZSBvcmlnaW5hbDpcbmh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzMyMTAvY29tcGl6LXdpbmRvd3MtZWZmZWN0LyIsCiAgIm5hbWUiOiAiQ29tcGl6IGFsaWtlIHdpbmRvd3MgZWZmZWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oZXJtZXM4My9jb21waXotYWxpa2Utd2luZG93cy1lZmZlY3QiLAogICJ1dWlkIjogImNvbXBpei1hbGlrZS13aW5kb3dzLWVmZmVjdEBoZXJtZXM4My5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIyCn0="}}}
 , {"uuid": "light-dict@tuberry.github.io", "name": "Light Dict", "pname": "light-dict", "description": "Lightweight extension for on-the-fly manipulation to primary selections, especially optimized for Dictionary lookups.\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/2959/light-dict/", "shell_version_map": {"38": {"version": "47", "sha256": "1l36l9qmcz7c6i81w5fv083bg01qsgz681c2lan8f87hqdipl4r7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJsaWdodC1kaWN0IiwKICAibmFtZSI6ICJMaWdodCBEaWN0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxpZ2h0LWRpY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L2xpZ2h0LWRpY3QiLAogICJ1dWlkIjogImxpZ2h0LWRpY3RAdHViZXJyeS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNDcKfQ=="}, "40": {"version": "58", "sha256": "0x3rk3p2vlyd2n23jlmwqfc1akbbjfhyn9w1v44byw1nfc3b0n8z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1OAp9"}, "41": {"version": "65", "sha256": "1hjaw62pxrpgismg6dhxqp04qhk1d4xkwlgzymmra7d428qjnxf2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2NQp9"}, "42": {"version": "67", "sha256": "05nxmlsik60nmci7x1zvdfwjymab10ikb4pdgq4cmpim3mrpp3xn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxpZ2h0d2VpZ2h0IGV4dGVuc2lvbiBmb3Igb24tdGhlLWZseSBtYW5pcHVsYXRpb24gdG8gcHJpbWFyeSBzZWxlY3Rpb25zLCBlc3BlY2lhbGx5IG9wdGltaXplZCBmb3IgRGljdGlvbmFyeSBsb29rdXBzLlxuXG5Gb3Igc3VwcG9ydCwgcGxlYXNlIHJlcG9ydCBhbnkgaXNzdWVzIHZpYSB0aGUgaG9tZXBhZ2UgbGluayBiZWxvdy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS1zaGVsbC1leHRlbnNpb24tbGlnaHQtZGljdCIsCiAgIm5hbWUiOiAiTGlnaHQgRGljdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5saWdodC1kaWN0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvbGlnaHQtZGljdCIsCiAgInV1aWQiOiAibGlnaHQtZGljdEB0dWJlcnJ5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Nwp9"}}}
@@ -324,11 +325,12 @@
 , {"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": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "40": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "41": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}, "42": {"version": "11", "sha256": "1cbbdgbgnara45152byr5yx52cbsfd48dpkick93ih2plk1gbm3l", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldyBhbmQgbWF4aW1pemVkIHdpbmRvd3Mgd2lsbCBiZSBtb3ZlZCB0byBlbXB0eSB3b3Jrc3BhY2VzLlxuU3VwcG9ydHMgbXVsdGlwbGUgbW9uaXRvcnMuIiwKICAibmFtZSI6ICJNYXhpbWl6ZSBUbyBFbXB0eSBXb3Jrc3BhY2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9rYWlzZXJhY20vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLW1heGltaXplLXRvLWVtcHR5LXdvcmtzcGFjZSIsCiAgInV1aWQiOiAiTWF4aW1pemVUb0VtcHR5V29ya3NwYWNlLWV4dGVuc2lvbkBrYWlzZXJzaXRlLmRlIiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "eye-extended@als.kz", "name": "Eye and Mouse Extended", "pname": "eye-extended", "description": "Adds an eye to the indicator bar that follows your cursor \nYou can also display the mouse indicator, perhaps it will help you with the problem of displaying the mouse cursor in Skype", "link": "https://extensions.gnome.org/extension/3139/eye-extended/", "shell_version_map": {"38": {"version": "10", "sha256": "15d8w18s0chk5w0b9bfm9xyhnlrwmgkf833yg144wxc1l5c23lrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZEBhbHMua3oiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "15d8w18s0chk5w0b9bfm9xyhnlrwmgkf833yg144wxc1l5c23lrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZEBhbHMua3oiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "15d8w18s0chk5w0b9bfm9xyhnlrwmgkf833yg144wxc1l5c23lrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZEBhbHMua3oiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "10", "sha256": "15d8w18s0chk5w0b9bfm9xyhnlrwmgkf833yg144wxc1l5c23lrz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gZXllIHRvIHRoZSBpbmRpY2F0b3IgYmFyIHRoYXQgZm9sbG93cyB5b3VyIGN1cnNvciBcbllvdSBjYW4gYWxzbyBkaXNwbGF5IHRoZSBtb3VzZSBpbmRpY2F0b3IsIHBlcmhhcHMgaXQgd2lsbCBoZWxwIHlvdSB3aXRoIHRoZSBwcm9ibGVtIG9mIGRpc3BsYXlpbmcgdGhlIG1vdXNlIGN1cnNvciBpbiBTa3lwZSIsCiAgImdldHRleHQtZG9tYWluIjogIkV5ZUV4dGVuZGVkIiwKICAibmFtZSI6ICJFeWUgYW5kIE1vdXNlIEV4dGVuZGVkIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImt6LmFscy5leWUtZXh0ZW5kZWQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMCIsCiAgICAiMy4zOC4wIiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYWxleGV5bG92Y2hpa292L2V5ZS1leHRlbmRlZC1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogImV5ZS1leHRlbmRlZEBhbHMua3oiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "wireguard-indicator@gregos.me", "name": "Wireguard Indicator", "pname": "wireguard-indicator", "description": "Enable, disable, and view details of Wireguard.\nDeveloped by Gregos-Winus.", "link": "https://extensions.gnome.org/extension/3160/wireguard-indicator/", "shell_version_map": {"38": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1r12pw550v3h5f6zxl0psnsx031b5c7sj374f9h078lwqs85wb8w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSwgZGlzYWJsZSwgYW5kIHZpZXcgZGV0YWlscyBvZiBXaXJlZ3VhcmQuXG5EZXZlbG9wZWQgYnkgR3JlZ29zLVdpbnVzLiIsCiAgIm5hbWUiOiAiV2lyZWd1YXJkIEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGdyZWdvcy5tZSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"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": {"38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "42": {"version": "38", "sha256": "1lpy4hqwysqw4yrhm0jp1rm7isniavw12n2n08vbmlfbmgac8dp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQGF1bmV0eC5kZXYiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdXItbXktc2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAzOAp9"}}}
+, {"uuid": "no_activities@yaya.cout", "name": "No activities button", "pname": "no-activities-button", "description": "Hide the activities button", "link": "https://extensions.gnome.org/extension/3184/no-activities-button/", "shell_version_map": {"38": {"version": "3", "sha256": "0l48wr4yx0n86qmbkc3jdxjvnaf22r8glz1q1fiqkz06c4sxsqr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJub19hY3Rpdml0aWVzQHlheWEuY291dCIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "0l48wr4yx0n86qmbkc3jdxjvnaf22r8glz1q1fiqkz06c4sxsqr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJub19hY3Rpdml0aWVzQHlheWEuY291dCIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "0l48wr4yx0n86qmbkc3jdxjvnaf22r8glz1q1fiqkz06c4sxsqr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJub19hY3Rpdml0aWVzQHlheWEuY291dCIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "0l48wr4yx0n86qmbkc3jdxjvnaf22r8glz1q1fiqkz06c4sxsqr2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdGhlIGFjdGl2aXRpZXMgYnV0dG9uIiwKICAibmFtZSI6ICJObyBhY3Rpdml0aWVzIGJ1dHRvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJub19hY3Rpdml0aWVzQHlheWEuY291dCIsCiAgInZlcnNpb24iOiAzCn0="}}}
+, {"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": {"38": {"version": "22", "sha256": "1ss5vhzjkp2bpllxpjlk1l2i8n7p4xjpzkn0q6jg3gd472kkanfx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWJsdXItbXktc2hlbGwiLAogICJ1dWlkIjogImJsdXItbXktc2hlbGxAYXVuZXR4IiwKICAidmVyc2lvbiI6IDIyCn0="}, "40": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "41": {"version": "29", "sha256": "09zflyqk5mlybc4avm812hqr32q0yzrkkw0qy5q4lbkdid7cpqpp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F1bmV0eC9nbm9tZS1zaGVsbC1leHRlbnNpb24tYmx1ci1teS1zaGVsbCIsCiAgInV1aWQiOiAiYmx1ci1teS1zaGVsbEBhdW5ldHgiLAogICJ2ZXJzaW9uIjogMjkKfQ=="}, "42": {"version": "39", "sha256": "0q2fjrz2ib04ykvqshhas5d4ag0dd3wg29zkv53l5sapxs357lz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBibHVyIGxvb2sgdG8gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSBHTk9NRSBTaGVsbCwgaW5jbHVkaW5nIHRoZSB0b3AgcGFuZWwsIGRhc2ggYW5kIG92ZXJ2aWV3LlxuXG5Zb3UgY2FuIHN1cHBvcnQgbXkgd29yayBieSBzcG9uc29yaW5nIG1lIG9uOlxuLSBnaXRodWI6IGh0dHBzOi8vZ2l0aHViLmNvbS9zcG9uc29ycy9hdW5ldHhcbi0ga28tZmk6IGh0dHBzOi8va28tZmkuY29tL2F1bmV0eFxuXG5Ob3RlOiBpZiB0aGUgZXh0ZW5zaW9uIHNob3dzIGFuIGVycm9yIGFmdGVyIHVwZGF0aW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRvIHJlc3RhcnQgeW91ciBzZXNzaW9uIHRvIHNlZSBpZiBpdCBwZXJzaXN0cy4gVGhpcyBpcyBkdWUgdG8gYSBidWcgaW4gZ25vbWUgc2hlbGwsIHdoaWNoIEkgY2FuJ3QgZml4IGJ5IG15c2VsZi4iLAogICJuYW1lIjogIkJsdXIgbXkgU2hlbGwiLAogICJvcmlnaW5hbC1hdXRob3JzIjogWwogICAgIm1lQGF1bmV0eC5kZXYiCiAgXSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdXItbXktc2hlbGwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L2dub21lLXNoZWxsLWV4dGVuc2lvbi1ibHVyLW15LXNoZWxsIiwKICAidXVpZCI6ICJibHVyLW15LXNoZWxsQGF1bmV0eCIsCiAgInZlcnNpb24iOiAzOQp9"}}}
 , {"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"}, "40": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "12jycfdlywlc2gf7hcpa1draqsy8jgb2dgr8sihh2f97b31dk1nh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBPdmVydmlldyB3aXRoIGEgc2luZ2xlIEVTQyBwcmVzcyB3aGVuIHNlYXJjaGJveCBpcyBlbXB0eS5cblxuVGhlIGRlZmF1bHQgZ25vbWUtc2hlbGwgYmVoYXZpb3VyIGlzLCBkdXJpbmcgZmlyc3QgRVNDIHByZXNzLCBjbGVhbiB0aGUgc2VhcmNoYm94LCB0aGVuIHNlY29uZCBFU0MgcHJlc3MgZ2V0IGJhY2sgdG8gQWN0aXZpdGllcyBvdmVydmlldyBhbmQgdGhlbiB0aGlyZCBFU0MgcHJlc3Mgd2lsbCBmaW5hbGx5IGNsb3NlIHRoZSBvdmVydmlldy4iLAogICJuYW1lIjogIkVTQ2FwZSBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3JhZWxnYy9lc2NhcGUtb3ZlcnZpZXciLAogICJ1dWlkIjogImVzY2FwZS1vdmVydmlld0ByYWVsZ2MiLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "compiz-windows-effect@hermes83.github.com", "name": "Compiz windows effect", "pname": "compiz-windows-effect", "description": "Compiz wobbly windows effect thanks to compiz plugin engine.\n\nDoes NOT requires any external library\n\nNB:\nIn case of update error please restart Gnome Shell (on Xorg press ALT+F2 then write r and press enter, on Wayland end the session and log in again)\n\n-----------------------------------\n  Video\n-----------------------------------\nhttps://youtu.be/G8bAVIB9A7A", "link": "https://extensions.gnome.org/extension/3210/compiz-windows-effect/", "shell_version_map": {"38": {"version": "17", "sha256": "1cb0k92gg4jqghxgay8qdafvjqca77mm6cbb73b6bzswa08dgrx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGNvbXBpeiBwbHVnaW4gZW5naW5lLlxuXG5Eb2VzIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeVxuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBWaWRlb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmh0dHBzOi8veW91dHUuYmUvRzhiQVZJQjlBN0EiLAogICJuYW1lIjogIkNvbXBpeiB3aW5kb3dzIGVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "40": {"version": "17", "sha256": "1cb0k92gg4jqghxgay8qdafvjqca77mm6cbb73b6bzswa08dgrx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGNvbXBpeiBwbHVnaW4gZW5naW5lLlxuXG5Eb2VzIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeVxuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBWaWRlb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmh0dHBzOi8veW91dHUuYmUvRzhiQVZJQjlBN0EiLAogICJuYW1lIjogIkNvbXBpeiB3aW5kb3dzIGVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "1cb0k92gg4jqghxgay8qdafvjqca77mm6cbb73b6bzswa08dgrx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGNvbXBpeiBwbHVnaW4gZW5naW5lLlxuXG5Eb2VzIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeVxuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBWaWRlb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmh0dHBzOi8veW91dHUuYmUvRzhiQVZJQjlBN0EiLAogICJuYW1lIjogIkNvbXBpeiB3aW5kb3dzIGVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "1cb0k92gg4jqghxgay8qdafvjqca77mm6cbb73b6bzswa08dgrx2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbXBpeiB3b2JibHkgd2luZG93cyBlZmZlY3QgdGhhbmtzIHRvIGNvbXBpeiBwbHVnaW4gZW5naW5lLlxuXG5Eb2VzIE5PVCByZXF1aXJlcyBhbnkgZXh0ZXJuYWwgbGlicmFyeVxuXG5OQjpcbkluIGNhc2Ugb2YgdXBkYXRlIGVycm9yIHBsZWFzZSByZXN0YXJ0IEdub21lIFNoZWxsIChvbiBYb3JnIHByZXNzIEFMVCtGMiB0aGVuIHdyaXRlIHIgYW5kIHByZXNzIGVudGVyLCBvbiBXYXlsYW5kIGVuZCB0aGUgc2Vzc2lvbiBhbmQgbG9nIGluIGFnYWluKVxuXG4tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICBWaWRlb1xuLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbmh0dHBzOi8veW91dHUuYmUvRzhiQVZJQjlBN0EiLAogICJuYW1lIjogIkNvbXBpeiB3aW5kb3dzIGVmZmVjdCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hlcm1lczgzL2NvbXBpei13aW5kb3dzLWVmZmVjdCIsCiAgInV1aWQiOiAiY29tcGl6LXdpbmRvd3MtZWZmZWN0QGhlcm1lczgzLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "EndSessionTimer@pratap.fastmail.fm", "name": "End Session Timer", "pname": "end-session-timer", "description": "Set End Session Timer between 5 to 60 Seconds", "link": "https://extensions.gnome.org/extension/3216/end-session-timer/", "shell_version_map": {"38": {"version": "7", "sha256": "0c3wfx1iksb67fq3hm8cprhwb2f6xykkr4fv4y4drf78f15sh5gm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBFbmQgU2Vzc2lvbiBUaW1lciBiZXR3ZWVuIDUgdG8gNjAgU2Vjb25kcyIsCiAgIm5hbWUiOiAiRW5kIFNlc3Npb24gVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiRW5kU2Vzc2lvblRpbWVyQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "8", "sha256": "0mm9g2ldl2lw52plx3hpbaniqlci1c10q9blkbdpwcmyv53z1dq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBFbmQgU2Vzc2lvbiBUaW1lciBiZXR3ZWVuIDUgdG8gNjAgU2Vjb25kcyIsCiAgIm5hbWUiOiAiRW5kIFNlc3Npb24gVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkVuZFNlc3Npb25UaW1lckBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogOAp9"}}}
-, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Tested on GNOME Shell version 3.36 - 41 on Fedora 32 - 35. For a higher version see https://github.com/lxylxy123456/cariboublocker#installing-on-high-gnome-shell-version .", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"40": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1bnkwdsmsjr7x9cx31lfzs3dnfqzmdy8cq1zc26hgpvchd02ac60", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDEgb24gRmVkb3JhIDMyIC0gMzUuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x4eWx4eTEyMzQ1Ni9jYXJpYm91YmxvY2tlciIsCiAgInV1aWQiOiAiYmxvY2stY2FyaWJvdS0zNkBseHlseHkxMjM0NTYuZXJjbGkuZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "block-caribou-36@lxylxy123456.ercli.dev", "name": "Block Caribou 36", "pname": "block-caribou-36", "description": "Blocks caribou (the on screen keyboard) from popping up when you use a touchscreen. Even if it's disabled in the accessibility services menu. Continuation of keringar's work. Tested on GNOME Shell version 3.36 - 42 on Fedora 32 - 36. For a higher version see https://github.com/lxylxy123456/cariboublocker#installing-on-high-gnome-shell-version .", "link": "https://extensions.gnome.org/extension/3222/block-caribou-36/", "shell_version_map": {"38": {"version": "5", "sha256": "18hvivfwf3kl0fxwp2f9fbk24l899migcz3jq7n5xh1di2w4xd0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDIgb24gRmVkb3JhIDMyIC0gMzYuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seHlseHkxMjM0NTYvY2FyaWJvdWJsb2NrZXIiLAogICJ1dWlkIjogImJsb2NrLWNhcmlib3UtMzZAbHh5bHh5MTIzNDU2LmVyY2xpLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "18hvivfwf3kl0fxwp2f9fbk24l899migcz3jq7n5xh1di2w4xd0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDIgb24gRmVkb3JhIDMyIC0gMzYuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seHlseHkxMjM0NTYvY2FyaWJvdWJsb2NrZXIiLAogICJ1dWlkIjogImJsb2NrLWNhcmlib3UtMzZAbHh5bHh5MTIzNDU2LmVyY2xpLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "18hvivfwf3kl0fxwp2f9fbk24l899migcz3jq7n5xh1di2w4xd0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDIgb24gRmVkb3JhIDMyIC0gMzYuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seHlseHkxMjM0NTYvY2FyaWJvdWJsb2NrZXIiLAogICJ1dWlkIjogImJsb2NrLWNhcmlib3UtMzZAbHh5bHh5MTIzNDU2LmVyY2xpLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "18hvivfwf3kl0fxwp2f9fbk24l899migcz3jq7n5xh1di2w4xd0q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsb2NrcyBjYXJpYm91ICh0aGUgb24gc2NyZWVuIGtleWJvYXJkKSBmcm9tIHBvcHBpbmcgdXAgd2hlbiB5b3UgdXNlIGEgdG91Y2hzY3JlZW4uIEV2ZW4gaWYgaXQncyBkaXNhYmxlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSBzZXJ2aWNlcyBtZW51LiBDb250aW51YXRpb24gb2Yga2VyaW5nYXIncyB3b3JrLiBUZXN0ZWQgb24gR05PTUUgU2hlbGwgdmVyc2lvbiAzLjM2IC0gNDIgb24gRmVkb3JhIDMyIC0gMzYuIEZvciBhIGhpZ2hlciB2ZXJzaW9uIHNlZSBodHRwczovL2dpdGh1Yi5jb20vbHh5bHh5MTIzNDU2L2Nhcmlib3VibG9ja2VyI2luc3RhbGxpbmctb24taGlnaC1nbm9tZS1zaGVsbC12ZXJzaW9uIC4iLAogICJuYW1lIjogIkJsb2NrIENhcmlib3UgMzYiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9seHlseHkxMjM0NTYvY2FyaWJvdWJsb2NrZXIiLAogICJ1dWlkIjogImJsb2NrLWNhcmlib3UtMzZAbHh5bHh5MTIzNDU2LmVyY2xpLmRldiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "unmaximize_double_click@gonza.gmail.com", "name": "Unmaximize Double Click Panel", "pname": "unmaximize-double-click-panel", "description": "Unmaximize the current window on double click on the top panel. You can also maximize horizontally and vertically with middle and right click.", "link": "https://extensions.gnome.org/extension/3228/unmaximize-double-click-panel/", "shell_version_map": {"38": {"version": "7", "sha256": "1c1ri2qqkxc0aw47yci9ndplgqpx2i1dnpwlsjjrwqszdmm0nxwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "1c1ri2qqkxc0aw47yci9ndplgqpx2i1dnpwlsjjrwqszdmm0nxwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "1c1ri2qqkxc0aw47yci9ndplgqpx2i1dnpwlsjjrwqszdmm0nxwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}, "42": {"version": "7", "sha256": "1c1ri2qqkxc0aw47yci9ndplgqpx2i1dnpwlsjjrwqszdmm0nxwd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVubWF4aW1pemUgdGhlIGN1cnJlbnQgd2luZG93IG9uIGRvdWJsZSBjbGljayBvbiB0aGUgdG9wIHBhbmVsLiBZb3UgY2FuIGFsc28gbWF4aW1pemUgaG9yaXpvbnRhbGx5IGFuZCB2ZXJ0aWNhbGx5IHdpdGggbWlkZGxlIGFuZCByaWdodCBjbGljay4iLAogICJuYW1lIjogIlVubWF4aW1pemUgRG91YmxlIENsaWNrIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ29uemFhcmNyL3VubWF4aW1pemUtZ25vbWUtZXh0IiwKICAidXVpZCI6ICJ1bm1heGltaXplX2RvdWJsZV9jbGlja0Bnb256YS5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "unity-like-appswitcher@gonza.com", "name": "Unity-like App Switcher", "pname": "unity-like-app-switcher", "description": "A bigger and more colourfull AppSwitcher", "link": "https://extensions.gnome.org/extension/3231/unity-like-app-switcher/", "shell_version_map": {"38": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "40": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}, "42": {"version": "13", "sha256": "1f0izmzksy1vf4kaa8gwzz3pkjxihg2mzswn8mw50cybq5p596gi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgYmlnZ2VyIGFuZCBtb3JlIGNvbG91cmZ1bGwgQXBwU3dpdGNoZXIiLAogICJuYW1lIjogIlVuaXR5LWxpa2UgQXBwIFN3aXRjaGVyIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6ICJnb256YSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy51bml0eS13aW5kb3ctc3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb256YWFyY3IvdW5pdHktbGlrZS1zd2l0Y2hlci1nbm9tZS1leHQiLAogICJ1dWlkIjogInVuaXR5LWxpa2UtYXBwc3dpdGNoZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
 , {"uuid": "ssh-quick-connect@ibrokemy.computer", "name": "SSH Quick Connect", "pname": "ssh-quick-connect", "description": "This extension puts an icon in the panel with a simple dropdown menu that launches items from your ssh configs.", "link": "https://extensions.gnome.org/extension/3237/ssh-quick-connect/", "shell_version_map": {"40": {"version": "2", "sha256": "0cl71bwl9hq19wfhawcwn8b3xc41s63jq44sfwy0vpfp6cm94jc3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgd2l0aCBhIHNpbXBsZSBkcm9wZG93biBtZW51IHRoYXQgbGF1bmNoZXMgaXRlbXMgZnJvbSB5b3VyIHNzaCBjb25maWdzLiIsCiAgIm5hbWUiOiAiU1NIIFF1aWNrIENvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vd3d3LmdpdGh1Yi5jb20vaWJyb2tlbXljb21wdXRlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3NoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogInNzaC1xdWljay1jb25uZWN0QGlicm9rZW15LmNvbXB1dGVyIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0cl71bwl9hq19wfhawcwn8b3xc41s63jq44sfwy0vpfp6cm94jc3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgd2l0aCBhIHNpbXBsZSBkcm9wZG93biBtZW51IHRoYXQgbGF1bmNoZXMgaXRlbXMgZnJvbSB5b3VyIHNzaCBjb25maWdzLiIsCiAgIm5hbWUiOiAiU1NIIFF1aWNrIENvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vd3d3LmdpdGh1Yi5jb20vaWJyb2tlbXljb21wdXRlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3NoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogInNzaC1xdWljay1jb25uZWN0QGlicm9rZW15LmNvbXB1dGVyIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "0cl71bwl9hq19wfhawcwn8b3xc41s63jq44sfwy0vpfp6cm94jc3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgd2l0aCBhIHNpbXBsZSBkcm9wZG93biBtZW51IHRoYXQgbGF1bmNoZXMgaXRlbXMgZnJvbSB5b3VyIHNzaCBjb25maWdzLiIsCiAgIm5hbWUiOiAiU1NIIFF1aWNrIENvbm5lY3QiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vd3d3LmdpdGh1Yi5jb20vaWJyb2tlbXljb21wdXRlci9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3NoLXF1aWNrLWNvbm5lY3QiLAogICJ1dWlkIjogInNzaC1xdWljay1jb25uZWN0QGlicm9rZW15LmNvbXB1dGVyIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
@@ -349,9 +351,9 @@
 , {"uuid": "jiggle@jeffchannell.com", "name": "Jiggle", "pname": "jiggle", "description": "Jiggle is a Gnome Shell extension that highlights the cursor position when the mouse is moved rapidly.", "link": "https://extensions.gnome.org/extension/3438/jiggle/", "shell_version_map": {"38": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0f5zwvcqz648sn11nl49r0ki6zy5c2hp4imgba0dlc02fags7pxz", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkppZ2dsZSBpcyBhIEdub21lIFNoZWxsIGV4dGVuc2lvbiB0aGF0IGhpZ2hsaWdodHMgdGhlIGN1cnNvciBwb3NpdGlvbiB3aGVuIHRoZSBtb3VzZSBpcyBtb3ZlZCByYXBpZGx5LiIsCiAgIm5hbWUiOiAiSmlnZ2xlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2LjMiLAogICAgIjMuMzguMSIsCiAgICAiNDAuMCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2plZmZjaGFubmVsbC9qaWdnbGUiLAogICJ1dWlkIjogImppZ2dsZUBqZWZmY2hhbm5lbGwuY29tIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "showtime-horizontal@xenlism.github.io", "name": "Showtime Horizontal - Desktop Widget", "pname": "showtime-horizontal", "description": "Horizontal Style Date &amp; Clock Widget base on Budgie Desktop Widget", "link": "https://extensions.gnome.org/extension/3442/showtime-horizontal/", "shell_version_map": {"38": {"version": "5", "sha256": "1rdf1alxfyi29wnz2bzm20j9k5q8sn3a6d4si841cjbhmvqdcqhj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS94ZW5saXNtL3Nob3d0aW1lIiwKICAidXVpZCI6ICJzaG93dGltZS1ob3Jpem9udGFsQHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "6", "sha256": "1zy7lkkmcjxkc30hys98s0xlmi93cyc6jz6qx7zfv1v7w03iw3ld", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhvcml6b250YWwgU3R5bGUgRGF0ZSAmYW1wOyBDbG9jayBXaWRnZXQgYmFzZSBvbiBCdWRnaWUgRGVza3RvcCBXaWRnZXQiLAogICJleHRlbnNpb24taWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbCIsCiAgIm5hbWUiOiAiU2hvd3RpbWUgSG9yaXpvbnRhbCAtIERlc2t0b3AgV2lkZ2V0IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNob3d0aW1lLWhvcml6b250YWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAic2hvd3RpbWUtaG9yaXpvbnRhbEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "display-switcher@iyadk.com", "name": "Display Switcher 2", "pname": "display-switcher", "description": "This extension allows you to toggle between display modes quickly using Super + I.  You can switch between Extended, Primary, Clone, and Secondary Only modes quickly.  Selecting Extended mode multiple times will flip your secondary monitor's relative position to the primary (to the left or right of it).  This extension was originally developed by Lucas Diedrich - https://extensions.gnome.org/extension/1030/display-switcher/ and has been adapted to support Gnome Shell's v3.36.", "link": "https://extensions.gnome.org/extension/3459/display-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "13vb68xfmcx525yk2vgfny6xvi06nzv103an5zab90hvmj6ggzlj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGFsbG93cyB5b3UgdG8gdG9nZ2xlIGJldHdlZW4gZGlzcGxheSBtb2RlcyBxdWlja2x5IHVzaW5nIFN1cGVyICsgSS4gIFlvdSBjYW4gc3dpdGNoIGJldHdlZW4gRXh0ZW5kZWQsIFByaW1hcnksIENsb25lLCBhbmQgU2Vjb25kYXJ5IE9ubHkgbW9kZXMgcXVpY2tseS4gIFNlbGVjdGluZyBFeHRlbmRlZCBtb2RlIG11bHRpcGxlIHRpbWVzIHdpbGwgZmxpcCB5b3VyIHNlY29uZGFyeSBtb25pdG9yJ3MgcmVsYXRpdmUgcG9zaXRpb24gdG8gdGhlIHByaW1hcnkgKHRvIHRoZSBsZWZ0IG9yIHJpZ2h0IG9mIGl0KS4gIFRoaXMgZXh0ZW5zaW9uIHdhcyBvcmlnaW5hbGx5IGRldmVsb3BlZCBieSBMdWNhcyBEaWVkcmljaCAtIGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzEwMzAvZGlzcGxheS1zd2l0Y2hlci8gYW5kIGhhcyBiZWVuIGFkYXB0ZWQgdG8gc3VwcG9ydCBHbm9tZSBTaGVsbCdzIHYzLjM2LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1kaXNwbGF5LXN3aXRjaGVyIiwKICAibmFtZSI6ICJEaXNwbGF5IFN3aXRjaGVyIDIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAiTHVjYXMgRGllZHJpY2giLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuZGlzcGxheS1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2l5YWRrYW5kYWxhZnQvZ25vbWUtZGlzcGxheS1zd2l0Y2hlciIsCiAgInV1aWQiOiAiZGlzcGxheS1zd2l0Y2hlckBpeWFkay5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "panel-date-format@atareao.es", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/3465/panel-date-format/", "shell_version_map": {"40": {"version": "5", "sha256": "1x6f55d650mnw57fds70bdy9n2h5v7hmb43fsah33m4h4rk1svnc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJleHRlbnNpb24taWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgImdldHRleHQtZG9tYWluIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJpY29uIjogInBhbmVsLWRhdGUtZm9ybWF0IiwKICAibmFtZSI6ICJQYW5lbCBEYXRlIEZvcm1hdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vcGFuZWwtZGF0ZS1mb3JtYXQiLAogICJ1dWlkIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "panel-date-format@atareao.es", "name": "Panel Date Format", "pname": "panel-date-format", "description": "Allows to customize the date format on the panel.", "link": "https://extensions.gnome.org/extension/3465/panel-date-format/", "shell_version_map": {"40": {"version": "6", "sha256": "0lgbfsf729ir7h6zj3bnk4r70z62gpj0jw4dnj7chv7rgczfhswp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJleHRlbnNpb24taWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgImdldHRleHQtZG9tYWluIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJpY29uIjogInBhbmVsLWRhdGUtZm9ybWF0IiwKICAibmFtZSI6ICJQYW5lbCBEYXRlIEZvcm1hdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9wYW5lbC1kYXRlLWZvcm1hdCIsCiAgInV1aWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0lgbfsf729ir7h6zj3bnk4r70z62gpj0jw4dnj7chv7rgczfhswp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJleHRlbnNpb24taWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgImdldHRleHQtZG9tYWluIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJpY29uIjogInBhbmVsLWRhdGUtZm9ybWF0IiwKICAibmFtZSI6ICJQYW5lbCBEYXRlIEZvcm1hdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9wYW5lbC1kYXRlLWZvcm1hdCIsCiAgInV1aWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0lgbfsf729ir7h6zj3bnk4r70z62gpj0jw4dnj7chv7rgczfhswp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyB0byBjdXN0b21pemUgdGhlIGRhdGUgZm9ybWF0IG9uIHRoZSBwYW5lbC4iLAogICJleHRlbnNpb24taWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgImdldHRleHQtZG9tYWluIjogInBhbmVsLWRhdGUtZm9ybWF0QGF0YXJlYW8uZXMiLAogICJpY29uIjogInBhbmVsLWRhdGUtZm9ybWF0IiwKICAibmFtZSI6ICJQYW5lbCBEYXRlIEZvcm1hdCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnBhbmVsLWRhdGUtZm9ybWF0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9wYW5lbC1kYXRlLWZvcm1hdCIsCiAgInV1aWQiOiAicGFuZWwtZGF0ZS1mb3JtYXRAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "myHiddenTopBar@lendoK.github.com", "name": "myHiddenTopBar", "pname": "myhiddentopbar", "description": "really hides the toppanel", "link": "https://extensions.gnome.org/extension/3481/myhiddentopbar/", "shell_version_map": {"38": {"version": "2", "sha256": "1vrj1ih0rvds9xng0i4n2cah9akm2j2vhma3a7zjyvljxmw82w5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "3", "sha256": "0fl9rcdxn2l2lpc8fhcbvzm9lx0i12674kk15rpgbzfj8xn26qkw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MC4wIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIm15SGlkZGVuVG9wQmFyQGxlbmRvSy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "5", "sha256": "01b5d3bza10mcy0dj662dp1lk2if7pl71q3cfr7zwyk1fkkraizy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInJlYWxseSBoaWRlcyB0aGUgdG9wcGFuZWwiLAogICJuYW1lIjogIm15SGlkZGVuVG9wQmFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJteUhpZGRlblRvcEJhckBsZW5kb0suZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
-, {"uuid": "big-avatar@gustavoperedo.org", "name": "Big Avatar", "pname": "big-avatar", "description": "Add your User icon and name to your menu panel. Also access your User Settings or run a custom command.", "link": "https://extensions.gnome.org/extension/3488/big-avatar/", "shell_version_map": {"38": {"version": "6", "sha256": "0jv6g5prdd49padhglxhl18mam400dl23wcdiyf58a8jpwk27nf6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB5b3VyIFVzZXIgaWNvbiBhbmQgbmFtZSB0byB5b3VyIG1lbnUgcGFuZWwuIEFsc28gYWNjZXNzIHlvdXIgVXNlciBTZXR0aW5ncyBvciBydW4gYSBjdXN0b20gY29tbWFuZC4iLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3VzdGF2b1BlcmVkby9CaWctQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlnLWF2YXRhckBndXN0YXZvcGVyZWRvLm9yZyIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "11", "sha256": "1lzkjcdfpa228bgsmvbn8a07qim0lhv1x6xz33xzxpv9n7h6y0zh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB5b3VyIFVzZXIgaWNvbiBhbmQgbmFtZSB0byB5b3VyIG1lbnUgcGFuZWwuIEFsc28gYWNjZXNzIHlvdXIgVXNlciBTZXR0aW5ncyBvciBydW4gYSBjdXN0b20gY29tbWFuZC4iLAogICJleHRlbnNpb24taWQiOiAiYmlnLWF2YXRhciIsCiAgIm5hbWUiOiAiQmlnIEF2YXRhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5iaWctYXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0d1c3Rhdm9QZXJlZG8vQmlnLUF2YXRhci1Hbm9tZS1TaGVsbC1FeHRlbnNpb24iLAogICJ1dWlkIjogImJpZy1hdmF0YXJAZ3VzdGF2b3BlcmVkby5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
+, {"uuid": "big-avatar@gustavoperedo.org", "name": "Big Avatar", "pname": "big-avatar", "description": "Add your username and icon to your menu panel, and run apps or shell commands.", "link": "https://extensions.gnome.org/extension/3488/big-avatar/", "shell_version_map": {"38": {"version": "6", "sha256": "077j74vvyndllbgrz6fsqd2dqmw2smsy93wn0hmaqz059n3f8rj8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB5b3VyIHVzZXJuYW1lIGFuZCBpY29uIHRvIHlvdXIgbWVudSBwYW5lbCwgYW5kIHJ1biBhcHBzIG9yIHNoZWxsIGNvbW1hbmRzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJiaWctYXZhdGFyIiwKICAibmFtZSI6ICJCaWcgQXZhdGFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpZy1hdmF0YXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9HdXN0YXZvUGVyZWRvL0JpZy1BdmF0YXItR25vbWUtU2hlbGwtRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJiaWctYXZhdGFyQGd1c3Rhdm9wZXJlZG8ub3JnIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "11", "sha256": "0yk6zrw7jjkvsdrlams0w2rl9d0yyckfgnx92xqg0s7q2xks809q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCB5b3VyIHVzZXJuYW1lIGFuZCBpY29uIHRvIHlvdXIgbWVudSBwYW5lbCwgYW5kIHJ1biBhcHBzIG9yIHNoZWxsIGNvbW1hbmRzLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJiaWctYXZhdGFyIiwKICAibmFtZSI6ICJCaWcgQXZhdGFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJpZy1hdmF0YXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vR3VzdGF2b1BlcmVkby9CaWctQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYmlnLWF2YXRhckBndXN0YXZvcGVyZWRvLm9yZyIsCiAgInZlcnNpb24iOiAxMQp9"}}}
 , {"uuid": "volume-mixer@evermiss.net", "name": "Application Volume Mixer", "pname": "application-volume-mixer", "description": "Control volume output per-application\n\n\nAfter installing or updating the extension, an error may appear and you will need to log out and back into GNOME to activate the extension.", "link": "https://extensions.gnome.org/extension/3499/application-volume-mixer/", "shell_version_map": {"38": {"version": "10", "sha256": "0y945168sp4ajmzqwvk5siwf5bcg2c2bkzwwcf8gxwiiqxcw2daw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb25cblxuXG5BZnRlciBpbnN0YWxsaW5nIG9yIHVwZGF0aW5nIHRoZSBleHRlbnNpb24sIGFuIGVycm9yIG1heSBhcHBlYXIgYW5kIHlvdSB3aWxsIG5lZWQgdG8gbG9nIG91dCBhbmQgYmFjayBpbnRvIEdOT01FIHRvIGFjdGl2YXRlIHRoZSBleHRlbnNpb24uIiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBWb2x1bWUgTWl4ZXIiLAogICJvcmdpbmFsLWF1dGhvciI6ICJteW1pbmRzdG9ybUBldmVybWlzcy5uZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "40": {"version": "10", "sha256": "0y945168sp4ajmzqwvk5siwf5bcg2c2bkzwwcf8gxwiiqxcw2daw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb25cblxuXG5BZnRlciBpbnN0YWxsaW5nIG9yIHVwZGF0aW5nIHRoZSBleHRlbnNpb24sIGFuIGVycm9yIG1heSBhcHBlYXIgYW5kIHlvdSB3aWxsIG5lZWQgdG8gbG9nIG91dCBhbmQgYmFjayBpbnRvIEdOT01FIHRvIGFjdGl2YXRlIHRoZSBleHRlbnNpb24uIiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBWb2x1bWUgTWl4ZXIiLAogICJvcmdpbmFsLWF1dGhvciI6ICJteW1pbmRzdG9ybUBldmVybWlzcy5uZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "0y945168sp4ajmzqwvk5siwf5bcg2c2bkzwwcf8gxwiiqxcw2daw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb25cblxuXG5BZnRlciBpbnN0YWxsaW5nIG9yIHVwZGF0aW5nIHRoZSBleHRlbnNpb24sIGFuIGVycm9yIG1heSBhcHBlYXIgYW5kIHlvdSB3aWxsIG5lZWQgdG8gbG9nIG91dCBhbmQgYmFjayBpbnRvIEdOT01FIHRvIGFjdGl2YXRlIHRoZSBleHRlbnNpb24uIiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBWb2x1bWUgTWl4ZXIiLAogICJvcmdpbmFsLWF1dGhvciI6ICJteW1pbmRzdG9ybUBldmVybWlzcy5uZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9teW1pbmRzdG9ybS9nbm9tZS12b2x1bWUtbWl4ZXIiLAogICJ1dWlkIjogInZvbHVtZS1taXhlckBldmVybWlzcy5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "11", "sha256": "107y42fn0pqqxxf6g1sc5snkh42gr9w9jr9r7h4mlp1nzmj6hi42", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdm9sdW1lIG91dHB1dCBwZXItYXBwbGljYXRpb25cblxuXG5BZnRlciBpbnN0YWxsaW5nIG9yIHVwZGF0aW5nIHRoZSBleHRlbnNpb24sIGFuIGVycm9yIG1heSBhcHBlYXIgYW5kIHlvdSB3aWxsIG5lZWQgdG8gbG9nIG91dCBhbmQgYmFjayBpbnRvIEdOT01FIHRvIGFjdGl2YXRlIHRoZSBleHRlbnNpb24uIiwKICAibmFtZSI6ICJBcHBsaWNhdGlvbiBWb2x1bWUgTWl4ZXIiLAogICJvcmdpbmFsLWF1dGhvciI6ICJteW1pbmRzdG9ybUBldmVybWlzcy5uZXQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXltaW5kc3Rvcm0vZ25vbWUtdm9sdW1lLW1peGVyIiwKICAidXVpZCI6ICJ2b2x1bWUtbWl4ZXJAZXZlcm1pc3MubmV0IiwKICAidmVyc2lvbiI6IDExCn0="}}}
 , {"uuid": "creative-control@sau.li", "name": "Creative Sound Blaster control", "pname": "creative-sound-blaster-control", "description": "Control Creative Sound Blaster", "link": "https://extensions.gnome.org/extension/3505/creative-sound-blaster-control/", "shell_version_map": {"38": {"version": "2", "sha256": "0pqps21c2p8fqndy9hd77j979h0wjbw0yzbmv6jmwk7rskv6zysg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgQ3JlYXRpdmUgU291bmQgQmxhc3RlciIsCiAgIm5hbWUiOiAiQ3JlYXRpdmUgU291bmQgQmxhc3RlciBjb250cm9sIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNhdWwzMi9nbm9tZS1zaGVsbC1leHRlbnNpb24tY3JlYXRpdmUtY29udHJvbCIsCiAgInV1aWQiOiAiY3JlYXRpdmUtY29udHJvbEBzYXUubGkiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "day-night-wallpaper@swapnilmadavi.github.io", "name": "Day Night Wallpaper", "pname": "day-night-wallpaper", "description": "Set separate wallpapers for day and night time.", "link": "https://extensions.gnome.org/extension/3512/day-night-wallpaper/", "shell_version_map": {"38": {"version": "2", "sha256": "082wrffxsa6qnp120ghlvhkb3isnnf9qizxfk6bbgqbzcvsax059", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNldCBzZXBhcmF0ZSB3YWxscGFwZXJzIGZvciBkYXkgYW5kIG5pZ2h0IHRpbWUuIiwKICAibmFtZSI6ICJEYXkgTmlnaHQgV2FsbHBhcGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmRheS1uaWdodC13YWxscGFwZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zd2FwbmlsbWFkYXZpL2RheS1uaWdodC13YWxscGFwZXItZ25vbWUtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJkYXktbmlnaHQtd2FsbHBhcGVyQHN3YXBuaWxtYWRhdmkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
@@ -366,7 +368,7 @@
 , {"uuid": "oclock@ortega.tech", "name": "OClock", "pname": "oclock", "description": "Shows an analog clock on the panel", "link": "https://extensions.gnome.org/extension/3578/oclock/", "shell_version_map": {"40": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "1pp155a51c1fsmlwfsr1hxsv79xra3sbqrda3fkvhrv4jif7n7s8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJKZXJlbWlhcyBPcnRlZ2EiLAogICJkZXNjcmlwdGlvbiI6ICJTaG93cyBhbiBhbmFsb2cgY2xvY2sgb24gdGhlIHBhbmVsIiwKICAibmFtZSI6ICJPQ2xvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly93d3cuZ2l0aHViLmNvbS9qZXJlLW9ydGVnYTI0L2dub21lLXNoZWxsLWV4dGVuc2lvbi1vY2xvY2svIiwKICAidXVpZCI6ICJvY2xvY2tAb3J0ZWdhLnRlY2giLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "azan@hatem.masmoudi.org", "name": "Azan Islamic Prayer Times", "pname": "azan-islamic-prayer-times", "description": "Azan is an Islamic prayer times extension for Gnome Shell based on the extension by Fahrinh.\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- Moon status icon", "link": "https://extensions.gnome.org/extension/3602/azan-islamic-prayer-times/", "shell_version_map": {"38": {"version": "2", "sha256": "1z58m1w04mdddq9p3102jv852zks41f2l7xbx7j8jcljy4ahiqll", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF6YW4gaXMgYW4gSXNsYW1pYyBwcmF5ZXIgdGltZXMgZXh0ZW5zaW9uIGZvciBHbm9tZSBTaGVsbCBiYXNlZCBvbiB0aGUgZXh0ZW5zaW9uIGJ5IEZhaHJpbmguXG5cbkZlYXR1cmVzXG4tIExpc3QgY29tcHVsc29yeSBwcmF5ZXIgdGltZXNcbiBPcHRpb25hbGx5IGRpc3BsYXkgSW1zYWssIFN1bnJpc2UsIFN1bnNldCBhbmQgTWlkbmlnaHRcbi0gU2hvdyByZW1haW5pbmcgdGltZSBmb3IgdGhlIHVwY29taW5nIHByYXllci5cbi0gU2hvdyBjdXJyZW50IGRhdGUgaW4gSGlqcmkgY2FsZW5kYXIuXG4tIERpc3BsYXkgYSBub3RpZmljYXRpb24gd2hlbiBpdCdzIHRpbWUgZm9yIHByYXllci5cbi0gQXV0b21hdGljIEdlb2NsdWUyIGxvY2F0aW9uIGRldGVjdGlvblxuLSBTaG93IHRpbWVzIGluIDI0IGhvdXIgYW5kIDEyIGhvdXIgZm9ybWF0c1xuLSBIaWpyaSBkYXRlIGFkanVzbWVudFxuLSBNb29uIHN0YXR1cyBpY29uIiwKICAibmFtZSI6ICJBemFuIElzbGFtaWMgUHJheWVyIFRpbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmF6YW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYuMSIsCiAgICAiMy4zOC4wIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vaG1hc21vdWRpL2F6YW4tZ25vbWUtc2hlbGwtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJhemFuQGhhdGVtLm1hc21vdWRpLm9yZyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "blur-provider@corvettecole.github.com", "name": "blur-provider", "pname": "blur-provider", "description": "Provides an easy way for applications to request blur, and allows users to set blur on applications", "link": "https://extensions.gnome.org/extension/3607/blur-provider/", "shell_version_map": {"38": {"version": "2", "sha256": "1p0cyq1bfi18ysk1fvydjvk6qdl87qi9p3kpc165q5i0d4b41ffp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlByb3ZpZGVzIGFuIGVhc3kgd2F5IGZvciBhcHBsaWNhdGlvbnMgdG8gcmVxdWVzdCBibHVyLCBhbmQgYWxsb3dzIHVzZXJzIHRvIHNldCBibHVyIG9uIGFwcGxpY2F0aW9ucyIsCiAgImV4dGVuc2lvbi1pZCI6ICJibHVyLXByb3ZpZGVyIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9ucyIsCiAgIm5hbWUiOiAiYmx1ci1wcm92aWRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ibHVyLXByb3ZpZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY29ydmV0dGVjb2xlL2JsdXItcHJvdmlkZXIiLAogICJ1dWlkIjogImJsdXItcHJvdmlkZXJAY29ydmV0dGVjb2xlLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "42": {"version": "8", "sha256": "0fg5pmy4npdh84yjzbhi6q7zm2vha7n0pyg7fp2286bqs1yk9i05", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
+, {"uuid": "wireguard-indicator@atareao.es", "name": "WireGuard Indicator", "pname": "wireguard-indicator", "description": "Manage WireGuard VPN from Desktop", "link": "https://extensions.gnome.org/extension/3612/wireguard-indicator/", "shell_version_map": {"40": {"version": "9", "sha256": "058sqbzj2is7n6j8nrf23n6g5mxi1agwmdfv2q8lwmi444bl8xjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "058sqbzj2is7n6j8nrf23n6g5mxi1agwmdfv2q8lwmi444bl8xjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "42": {"version": "9", "sha256": "058sqbzj2is7n6j8nrf23n6g5mxi1agwmdfv2q8lwmi444bl8xjx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBXaXJlR3VhcmQgVlBOIGZyb20gRGVza3RvcCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3aXJlZ3VhcmQtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJpY29uIjogIndpcmVndWFyZC1pY29uIiwKICAibmFtZSI6ICJXaXJlR3VhcmQgSW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImVzLmF0YXJlYW8ud2lyZWd1YXJkLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vd2lyZWd1YXJkLWluZGljYXRvciIsCiAgInV1aWQiOiAid2lyZWd1YXJkLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
 , {"uuid": "shamsi-calendar@gnome.scr.ir", "name": "Iranian Persian Calendar", "pname": "shamsi-calendar", "description": "تقویم هجری شمسی،قمری و میلادی در میز‌کار گنوم لینوکس\nقابلیت نمایش اوقات شرعی و پخش اذان\nدرج تعطیلی‌ها و مناسبت‌های رسمی تقویم\nزبان کاملاً فارسی\nتاریخ قمری هلالی ایران\nسازگار با اکثر نسخه‌های گنوم\nدر حال توسعه...\n\nShows Persian + Islamic + Gregorian date in the panel of gnome.\n\nIt shows:\n1- Persian calendar\n2- It can show, today is holiday or not!\n3- Show notification onDayChanged!\n4- Date converter between Persian, Gregorian and Lunar Hijri(Islamic)\n5- Show calendar Events.\n6- Show PrayTimes and play sound (Azan).\n\nPlease \"rate\" here and \"star\" project in GitHub.\nPlease open an issue in GitHub if you found something or have an idea!\nگزارش مشکلات:\nhttps://github.com/SCR-IR/gnome-shamsi-calendar/issues", "link": "https://extensions.gnome.org/extension/3618/shamsi-calendar/", "shell_version_map": {"38": {"version": "20", "sha256": "19642998h9h8m52nmrg2xy36qhjkcrvs8jp8mhrq06lxfib9x5mm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDIwCn0="}, "40": {"version": "20", "sha256": "19642998h9h8m52nmrg2xy36qhjkcrvs8jp8mhrq06lxfib9x5mm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDIwCn0="}, "41": {"version": "20", "sha256": "19642998h9h8m52nmrg2xy36qhjkcrvs8jp8mhrq06lxfib9x5mm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDIwCn0="}, "42": {"version": "20", "sha256": "19642998h9h8m52nmrg2xy36qhjkcrvs8jp8mhrq06lxfib9x5mm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlx1MDYyYVx1MDY0Mlx1MDY0OFx1MDZjY1x1MDY0NSBcdTA2NDdcdTA2MmNcdTA2MzFcdTA2Y2MgXHUwNjM0XHUwNjQ1XHUwNjMzXHUwNmNjXHUwNjBjXHUwNjQyXHUwNjQ1XHUwNjMxXHUwNmNjIFx1MDY0OCBcdTA2NDVcdTA2Y2NcdTA2NDRcdTA2MjdcdTA2MmZcdTA2Y2MgXHUwNjJmXHUwNjMxIFx1MDY0NVx1MDZjY1x1MDYzMlx1MjAwY1x1MDZhOVx1MDYyN1x1MDYzMSBcdTA2YWZcdTA2NDZcdTA2NDhcdTA2NDUgXHUwNjQ0XHUwNmNjXHUwNjQ2XHUwNjQ4XHUwNmE5XHUwNjMzXG5cdTA2NDJcdTA2MjdcdTA2MjhcdTA2NDRcdTA2Y2NcdTA2MmEgXHUwNjQ2XHUwNjQ1XHUwNjI3XHUwNmNjXHUwNjM0IFx1MDYyN1x1MDY0OFx1MDY0Mlx1MDYyN1x1MDYyYSBcdTA2MzRcdTA2MzFcdTA2MzlcdTA2Y2MgXHUwNjQ4IFx1MDY3ZVx1MDYyZVx1MDYzNCBcdTA2MjdcdTA2MzBcdTA2MjdcdTA2NDZcblx1MDYyZlx1MDYzMVx1MDYyYyBcdTA2MmFcdTA2MzlcdTA2MzdcdTA2Y2NcdTA2NDRcdTA2Y2NcdTIwMGNcdTA2NDdcdTA2MjcgXHUwNjQ4IFx1MDY0NVx1MDY0Nlx1MDYyN1x1MDYzM1x1MDYyOFx1MDYyYVx1MjAwY1x1MDY0N1x1MDYyN1x1MDZjYyBcdTA2MzFcdTA2MzNcdTA2NDVcdTA2Y2MgXHUwNjJhXHUwNjQyXHUwNjQ4XHUwNmNjXHUwNjQ1XG5cdTA2MzJcdTA2MjhcdTA2MjdcdTA2NDYgXHUwNmE5XHUwNjI3XHUwNjQ1XHUwNjQ0XHUwNjI3XHUwNjRiIFx1MDY0MVx1MDYyN1x1MDYzMVx1MDYzM1x1MDZjY1xuXHUwNjJhXHUwNjI3XHUwNjMxXHUwNmNjXHUwNjJlIFx1MDY0Mlx1MDY0NVx1MDYzMVx1MDZjYyBcdTA2NDdcdTA2NDRcdTA2MjdcdTA2NDRcdTA2Y2MgXHUwNjI3XHUwNmNjXHUwNjMxXHUwNjI3XHUwNjQ2XG5cdTA2MzNcdTA2MjdcdTA2MzJcdTA2YWZcdTA2MjdcdTA2MzEgXHUwNjI4XHUwNjI3IFx1MDYyN1x1MDZhOVx1MDYyYlx1MDYzMSBcdTA2NDZcdTA2MzNcdTA2MmVcdTA2NDdcdTIwMGNcdTA2NDdcdTA2MjdcdTA2Y2MgXHUwNmFmXHUwNjQ2XHUwNjQ4XHUwNjQ1XG5cdTA2MmZcdTA2MzEgXHUwNjJkXHUwNjI3XHUwNjQ0IFx1MDYyYVx1MDY0OFx1MDYzM1x1MDYzOVx1MDY0Ny4uLlxuXG5TaG93cyBQZXJzaWFuICsgSXNsYW1pYyArIEdyZWdvcmlhbiBkYXRlIGluIHRoZSBwYW5lbCBvZiBnbm9tZS5cblxuSXQgc2hvd3M6XG4xLSBQZXJzaWFuIGNhbGVuZGFyXG4yLSBJdCBjYW4gc2hvdywgdG9kYXkgaXMgaG9saWRheSBvciBub3QhXG4zLSBTaG93IG5vdGlmaWNhdGlvbiBvbkRheUNoYW5nZWQhXG40LSBEYXRlIGNvbnZlcnRlciBiZXR3ZWVuIFBlcnNpYW4sIEdyZWdvcmlhbiBhbmQgTHVuYXIgSGlqcmkoSXNsYW1pYylcbjUtIFNob3cgY2FsZW5kYXIgRXZlbnRzLlxuNi0gU2hvdyBQcmF5VGltZXMgYW5kIHBsYXkgc291bmQgKEF6YW4pLlxuXG5QbGVhc2UgXCJyYXRlXCIgaGVyZSBhbmQgXCJzdGFyXCIgcHJvamVjdCBpbiBHaXRIdWIuXG5QbGVhc2Ugb3BlbiBhbiBpc3N1ZSBpbiBHaXRIdWIgaWYgeW91IGZvdW5kIHNvbWV0aGluZyBvciBoYXZlIGFuIGlkZWEhXG5cdTA2YWZcdTA2MzJcdTA2MjdcdTA2MzFcdTA2MzQgXHUwNjQ1XHUwNjM0XHUwNmE5XHUwNjQ0XHUwNjI3XHUwNjJhOlxuaHR0cHM6Ly9naXRodWIuY29tL1NDUi1JUi9nbm9tZS1zaGFtc2ktY2FsZW5kYXIvaXNzdWVzIiwKICAibmFtZSI6ICJJcmFuaWFuIFBlcnNpYW4gQ2FsZW5kYXIiLAogICJvcmlnaW5hbC1hdXRob3JzIjogImpkZi5zY3IuaXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9zY3ItaXIvZ25vbWUtc2hhbXNpLWNhbGVuZGFyIiwKICAidXVpZCI6ICJzaGFtc2ktY2FsZW5kYXJAZ25vbWUuc2NyLmlyIiwKICAidmVyc2lvbiI6IDIwCn0="}}}
 , {"uuid": "tunnel-indicator@atareao.es", "name": "Tunnel Indicator", "pname": "tunnel-indicator", "description": "Manage SSH Tunnels from Desktop", "link": "https://extensions.gnome.org/extension/3622/tunnel-indicator/", "shell_version_map": {"40": {"version": "2", "sha256": "0ma4a711mgjxyhy4d21p2m7wvbnmmwlfdsf6xk9i36ranjcqs9as", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBTU0ggVHVubmVscyBmcm9tIERlc2t0b3AiLAogICJleHRlbnNpb24taWQiOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHVubmVsLWluZGljYXRvckBhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJ0dW5uZWwtaWNvbiIsCiAgIm5hbWUiOiAiVHVubmVsIEluZGljYXRvciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLnR1bm5lbC1pbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby90dW5uZWwtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJ0dW5uZWwtaW5kaWNhdG9yQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "arcmenu@arcmenu.com", "name": "ArcMenu", "pname": "arcmenu", "description": "Application menu for GNOME Shell\n\nFeatures include: various menu layouts, built in GNOME search, quick access to system shortcuts, and much more!\n\nCommon solutions for ERROR message:\n - Restart your GNOME session after updating ArcMenu.\n - Install one of the following packages: 'gir1.2-gmenu-3.0' or 'gnome-menus'\n\nGeneral Help:\n - Visit https://gitlab.com/arcmenu/ArcMenu/-/wikis/home\n\nPlease report all bugs or issues at https://gitlab.com/arcmenu/ArcMenu", "link": "https://extensions.gnome.org/extension/3628/arcmenu/", "shell_version_map": {"38": {"version": "17", "sha256": "1w6br4q9yvngyprl6w1iddv90nssd89rqqqi5ragsxvpbgd448rc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lXG5cblBsZWFzZSByZXBvcnQgYWxsIGJ1Z3Mgb3IgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJleHRlbnNpb24taWQiOiAiYXJjbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL2FyY21lbnUvQXJjTWVudSIsCiAgInV1aWQiOiAiYXJjbWVudUBhcmNtZW51LmNvbSIsCiAgInZlcnNpb24iOiAxNwp9"}, "40": {"version": "27", "sha256": "01h4r7alddj1fly4l4rxpji17ilmf0v56559rdnsl0sy1lx8bkrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lXG5cblBsZWFzZSByZXBvcnQgYWxsIGJ1Z3Mgb3IgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJleHRlbnNpb24taWQiOiAiYXJjbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "41": {"version": "27", "sha256": "01h4r7alddj1fly4l4rxpji17ilmf0v56559rdnsl0sy1lx8bkrq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lXG5cblBsZWFzZSByZXBvcnQgYWxsIGJ1Z3Mgb3IgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJleHRlbnNpb24taWQiOiAiYXJjbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vYXJjbWVudS9BcmNNZW51IiwKICAidXVpZCI6ICJhcmNtZW51QGFyY21lbnUuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}, "42": {"version": "33", "sha256": "1b093wpcczc7ws8phav9j6j8rvr2j3svvmp29qcgw1n2fhn978pi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFwcGxpY2F0aW9uIG1lbnUgZm9yIEdOT01FIFNoZWxsXG5cbkZlYXR1cmVzIGluY2x1ZGU6IHZhcmlvdXMgbWVudSBsYXlvdXRzLCBidWlsdCBpbiBHTk9NRSBzZWFyY2gsIHF1aWNrIGFjY2VzcyB0byBzeXN0ZW0gc2hvcnRjdXRzLCBhbmQgbXVjaCBtb3JlIVxuXG5Db21tb24gc29sdXRpb25zIGZvciBFUlJPUiBtZXNzYWdlOlxuIC0gUmVzdGFydCB5b3VyIEdOT01FIHNlc3Npb24gYWZ0ZXIgdXBkYXRpbmcgQXJjTWVudS5cbiAtIEluc3RhbGwgb25lIG9mIHRoZSBmb2xsb3dpbmcgcGFja2FnZXM6ICdnaXIxLjItZ21lbnUtMy4wJyBvciAnZ25vbWUtbWVudXMnXG5cbkdlbmVyYWwgSGVscDpcbiAtIFZpc2l0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUvLS93aWtpcy9ob21lXG5cblBsZWFzZSByZXBvcnQgYWxsIGJ1Z3Mgb3IgaXNzdWVzIGF0IGh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJleHRlbnNpb24taWQiOiAiYXJjbWVudSIsCiAgImdldHRleHQtZG9tYWluIjogImFyY21lbnUiLAogICJuYW1lIjogIkFyY01lbnUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYXJjbWVudSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9hcmNtZW51L0FyY01lbnUiLAogICJ1dWlkIjogImFyY21lbnVAYXJjbWVudS5jb20iLAogICJ2ZXJzaW9uIjogMzMKfQ=="}}}
@@ -388,7 +390,7 @@
 , {"uuid": "latency-monitor@gitlab.labsatho.me", "name": "Latency Monitor", "pname": "latency-monitor", "description": "A simple extension for displaying latency information using pings in GNOME Shell.", "link": "https://extensions.gnome.org/extension/3746/latency-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "0k2y1qrq7irkn2c72pk4c5x4fwzaxkfp3jj7qvhzih6zmkifdzcd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGV4dGVuc2lvbiBmb3IgZGlzcGxheWluZyBsYXRlbmN5IGluZm9ybWF0aW9uIHVzaW5nIHBpbmdzIGluIEdOT01FIFNoZWxsLiIsCiAgIm5hbWUiOiAiTGF0ZW5jeSBNb25pdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmxhdGVuY3ktbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL3dhbGthZndhbGthL2dub21lLXNoZWxsLWV4dGVuc2lvbi1sYXRlbmN5LW1vbml0b3IiLAogICJ1dWlkIjogImxhdGVuY3ktbW9uaXRvckBnaXRsYWIubGFic2F0aG8ubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "the-circles-widget@xenlism.github.io", "name": "The Circles - Desktop Widget", "pname": "the-circles-desktop-widget", "description": "Show System Infomations on Desktop as Circles Desktop Widget\n\nmore info \nhttps://www.linuxuprising.com/2020/11/display-clock-ram-and-cpu-usage-as.html", "link": "https://extensions.gnome.org/extension/3748/the-circles-desktop-widget/", "shell_version_map": {"38": {"version": "6", "sha256": "0kxync9gdjgcfq3vfhf5z0065n30jw5y5jl00hdgarsh4pkbji04", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20veGVubGlzbS9zaG93dGltZSIsCiAgInV1aWQiOiAidGhlLWNpcmNsZXMtd2lkZ2V0QHhlbmxpc20uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "12", "sha256": "0ngn00y97dqv667z47xahfv53dlb2asm0jbk9harlv4516jdrg0s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgU3lzdGVtIEluZm9tYXRpb25zIG9uIERlc2t0b3AgYXMgQ2lyY2xlcyBEZXNrdG9wIFdpZGdldFxuXG5tb3JlIGluZm8gXG5odHRwczovL3d3dy5saW51eHVwcmlzaW5nLmNvbS8yMDIwLzExL2Rpc3BsYXktY2xvY2stcmFtLWFuZC1jcHUtdXNhZ2UtYXMuaHRtbCIsCiAgImV4dGVuc2lvbi1pZCI6ICJ0aGUtY2lyY2xlcy13aWRnZXQiLAogICJuYW1lIjogIlRoZSBDaXJjbGVzIC0gRGVza3RvcCBXaWRnZXQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudGhlLWNpcmNsZXMtd2lkZ2V0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3hlbmxpc20vc2hvd3RpbWUiLAogICJ1dWlkIjogInRoZS1jaXJjbGVzLXdpZGdldEB4ZW5saXNtLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAxMgp9"}}}
 , {"uuid": "overview_cleaner@gonza.com", "name": "Cleaner Overview", "pname": "cleaner-overview", "description": "Makes all the windows in the overview the same height and orders them by last recent used.", "link": "https://extensions.gnome.org/extension/3759/cleaner-overview/", "shell_version_map": {"38": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1fgv36inchycwgsykc2mqv1l6jbm4jq2rysd2paknbka14vqx37r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIGFsbCB0aGUgd2luZG93cyBpbiB0aGUgb3ZlcnZpZXcgdGhlIHNhbWUgaGVpZ2h0IGFuZCBvcmRlcnMgdGhlbSBieSBsYXN0IHJlY2VudCB1c2VkLiIsCiAgIm5hbWUiOiAiQ2xlYW5lciBPdmVydmlldyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbnphYXJjci90b3VjaHBhZC13aW5kb3ctc3dpdGNoZXItZ25vbWUtZXh0L2Jsb2IvbWFzdGVyL3RvdWNocGFkX3dpbmRvd19zd2l0Y2hlciU0MGdvbnphLmNvbS9vdmVydmlld0NsZWFuZXIuanMiLAogICJ1dWlkIjogIm92ZXJ2aWV3X2NsZWFuZXJAZ29uemEuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "battery-status@atareao.es", "name": "Battery Status", "pname": "battery-status", "description": "Get information about your battery status", "link": "https://extensions.gnome.org/extension/3763/battery-status/", "shell_version_map": {"40": {"version": "5", "sha256": "0mg30q1cgzmf70ikbm623fflhz392xkan0d8cpslnmkgx0z6nczv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vYmF0dGVyeS1zdGF0dXMiLAogICJ1dWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "battery-status@atareao.es", "name": "Battery Status", "pname": "battery-status", "description": "Get information about your battery status", "link": "https://extensions.gnome.org/extension/3763/battery-status/", "shell_version_map": {"40": {"version": "6", "sha256": "00zz3f00bdr95579250m7blrgavqziwh88dw45x928lq06xb052w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9iYXR0ZXJ5LXN0YXR1cyIsCiAgInV1aWQiOiAiYmF0dGVyeS1zdGF0dXNAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "00zz3f00bdr95579250m7blrgavqziwh88dw45x928lq06xb052w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9iYXR0ZXJ5LXN0YXR1cyIsCiAgInV1aWQiOiAiYmF0dGVyeS1zdGF0dXNAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "00zz3f00bdr95579250m7blrgavqziwh88dw45x928lq06xb052w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdldCBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGJhdHRlcnkgc3RhdHVzIiwKICAiZXh0ZW5zaW9uLWlkIjogImJhdHRlcnktc3RhdHVzQGF0YXJlYW8uZXMiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJiYXR0ZXJ5LXN0YXR1c0BhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJiYXR0ZXJ5LXN0YXR1cy1pY29uIiwKICAibmFtZSI6ICJCYXR0ZXJ5IFN0YXR1cyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJlcy5hdGFyZWFvLmJhdHRlcnktc3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXRhcmVhby9iYXR0ZXJ5LXN0YXR1cyIsCiAgInV1aWQiOiAiYmF0dGVyeS1zdGF0dXNAYXRhcmVhby5lcyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "distinct@sireliah.com", "name": "Distinct Windows", "pname": "distinct-windows", "description": "Visually differentiate windows with colors and symbols", "link": "https://extensions.gnome.org/extension/3769/distinct-windows/", "shell_version_map": {"38": {"version": "4", "sha256": "1iqga92l9mk3ykf8bdy9igvqfx9k78jasdmqsrrz9zcz33d7k4h7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc3VhbGx5IGRpZmZlcmVudGlhdGUgd2luZG93cyB3aXRoIGNvbG9ycyBhbmQgc3ltYm9scyIsCiAgIm5hbWUiOiAiRGlzdGluY3QgV2luZG93cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3NpcmVsaWFoL2Rpc3RpbmN0LXdpbmRvd3MiLAogICJ1dWlkIjogImRpc3RpbmN0QHNpcmVsaWFoLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "miniCal2@breiq", "name": "Minimalist Calendar 2", "pname": "minimalist-calendar-2", "description": "Remove event list and clock/calendar app buttons from the calendar window.", "link": "https://extensions.gnome.org/extension/3775/minimalist-calendar-2/", "shell_version_map": {"38": {"version": "1", "sha256": "1nh10ik3zk3r4jr31mr8nw8nnamgj3mk1f3im06657wv18x9wvam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIiwKICAibmFtZSI6ICJNaW5pbWFsaXN0IENhbGVuZGFyIDIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAibWluaUNhbDJAYnJlaXEiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "ddterm@amezin.github.com", "name": "ddterm", "pname": "ddterm", "description": "Another drop down terminal extension for GNOME Shell. With tabs. Works on Wayland natively", "link": "https://extensions.gnome.org/extension/3780/ddterm/", "shell_version_map": {"38": {"version": "30", "sha256": "1qjqqrhvqwh279f2cwcgy83xp72w37i3i35my0xsd2v8fcsm1j7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "40": {"version": "30", "sha256": "1qjqqrhvqwh279f2cwcgy83xp72w37i3i35my0xsd2v8fcsm1j7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "41": {"version": "30", "sha256": "1qjqqrhvqwh279f2cwcgy83xp72w37i3i35my0xsd2v8fcsm1j7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}, "42": {"version": "30", "sha256": "1qjqqrhvqwh279f2cwcgy83xp72w37i3i35my0xsd2v8fcsm1j7y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFub3RoZXIgZHJvcCBkb3duIHRlcm1pbmFsIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwuIFdpdGggdGFicy4gV29ya3Mgb24gV2F5bGFuZCBuYXRpdmVseSIsCiAgIm5hbWUiOiAiZGR0ZXJtIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImNvbS5naXRodWIuYW1lemluLmRkdGVybSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FtZXppbi9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGR0ZXJtIiwKICAidXVpZCI6ICJkZHRlcm1AYW1lemluLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMzAKfQ=="}}}
@@ -415,21 +417,21 @@
 , {"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": "5", "sha256": "1lzn5ah6djggb8qcj9r70fmnvs5dpd342f5izx1scpk6h48rna8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvc2VwaGxiYXJuZXR0L2F1dG9zZWxlY3RoZWFkc2V0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXV0b3NlbGVjdGhlYWRzZXRAam9zZXBobGJhcm5ldHQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "1lzn5ah6djggb8qcj9r70fmnvs5dpd342f5izx1scpk6h48rna8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvc2VwaGxiYXJuZXR0L2F1dG9zZWxlY3RoZWFkc2V0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXV0b3NlbGVjdGhlYWRzZXRAam9zZXBobGJhcm5ldHQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1lzn5ah6djggb8qcj9r70fmnvs5dpd342f5izx1scpk6h48rna8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvc2VwaGxiYXJuZXR0L2F1dG9zZWxlY3RoZWFkc2V0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXV0b3NlbGVjdGhlYWRzZXRAam9zZXBobGJhcm5ldHQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "1lzn5ah6djggb8qcj9r70fmnvs5dpd342f5izx1scpk6h48rna8q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG8gc2VsZWN0cyBoZWFkc2V0cyB3aGVuIHBvc3NpYmxlIGluc3RlYWQgb2Ygc2hvd2luZyBhIGRpYWxvZyIsCiAgIm5hbWUiOiAiQXV0byBzZWxlY3QgaGVhZHNldCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2pvc2VwaGxiYXJuZXR0L2F1dG9zZWxlY3RoZWFkc2V0LWdub21lLXNoZWxsLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXV0b3NlbGVjdGhlYWRzZXRAam9zZXBobGJhcm5ldHQuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"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=="}, "40": {"version": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "13s25az5g1n500jih7n1n7mprm70c2mg4r9cfdrxvivvmy080s5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGxldHMgeW91IHRvZ2dsZSBuaWdodC1saWdodCBmcm9tIHRoZSB0b3AtYmFyIGJ5IGNsaWNraW5nIGl0LiIsCiAgIm5hbWUiOiAiVG9nZ2xlIE5pZ2h0IExpZ2h0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vY2Fuc296YmlyL2dub21lLXNoZWxsLXRvZ2dsZS1uaWdodC1saWdodC1leHRlbnNpb24iLAogICJ1dWlkIjogInRvZ2dsZS1uaWdodC1saWdodEBjYW5zb3piaXIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "adwaita-theme-switcher@fthx", "name": "Adwaita Theme Switcher", "pname": "adwaita-theme-switcher", "description": "Button in panel: switch between Adwaita dark and light themes.", "link": "https://extensions.gnome.org/extension/3936/adwaita-theme-switcher/", "shell_version_map": {"38": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0015j3vqwvb0fs2n90lz0i66f23nr7mmvqzgwnsah46x8lkm2kpr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gQWR3YWl0YSBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIiwKICAibmFtZSI6ICJBZHdhaXRhIFRoZW1lIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Fkd2FpdGEtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogImFkd2FpdGEtdGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"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": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1nybwgfp354zn1z1lkl3wvvz2zddk6nbm9n2h5f5gbp58vhl8mw4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dvbG9zaHVib3YvZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYiIsCiAgInV1aWQiOiAiZm5sb2NrLXN3aXRjaC10cC1jb21wLXVzYi1rYkBnb2xvc2h1Ym92LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"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": "5", "sha256": "1107mvkcycgk7d6gwrcjyvjz3lh3ikndbrsh0c27lpss5bqvpza9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb2xvc2h1Ym92L2ZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2IiLAogICJ1dWlkIjogImZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2JAZ29sb3NodWJvdi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1107mvkcycgk7d6gwrcjyvjz3lh3ikndbrsh0c27lpss5bqvpza9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb2xvc2h1Ym92L2ZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2IiLAogICJ1dWlkIjogImZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2JAZ29sb3NodWJvdi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1107mvkcycgk7d6gwrcjyvjz3lh3ikndbrsh0c27lpss5bqvpza9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb2xvc2h1Ym92L2ZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2IiLAogICJ1dWlkIjogImZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2JAZ29sb3NodWJvdi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1107mvkcycgk7d6gwrcjyvjz3lh3ikndbrsh0c27lpss5bqvpza9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZuTG9jayBzd2l0Y2ggZm9yIExlbm92byBUaGlua1BhZCBDb21wYWN0IFVTQiBLZXlib2FyZCAiLAogICJuYW1lIjogIkZuTG9jayBzd2l0Y2ggKFRoaW5rUGFkIENvbXBhY3QgVVNCIEtleWJvYXJkKSAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9nb2xvc2h1Ym92L2ZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2IiLAogICJ1dWlkIjogImZubG9jay1zd2l0Y2gtdHAtY29tcC11c2Ita2JAZ29sb3NodWJvdi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"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": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1kz5a8x9fpvilcd4p9pn6cmsj6gvq44cg85yhkgdi9x2qpd52fn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZXMgQWxhY3JpdHR5IHdpbmRvdyB2aWEgaG90a2V5OiBBbHQrelxuXG5JZiBBbGFjcml0dHkgaXMgbm90IGxhdW5jaGVkLCBhdHRlbXB0cyB0byBzdGFydCBpdCAoL3Vzci9iaW4vYWxhY3JpdHR5KVxuXG5Xb3JrcyB1bmRlciBib3RoIFdheWxhbmQgYW5kIFgxMVxuXG5UbyBjaGFuZ2UgaG90a2V5IHBsZWFzZSBmb2xsb3cgaW5zdHJ1Y3Rpb24gaW4gdGhlIFJFQURNRS5tZDoiLAogICJuYW1lIjogIlRvZ2dsZSBBbGFjcml0dHkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMudG9nZ2xlLWFsYWNyaXR0eSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXh4YXB5L2dub21lLWFsYWNyaXR0eS10b2dnbGUiLAogICJ1dWlkIjogInRvZ2dsZS1hbGFjcml0dHlAaXRzdGltZS50ZWNoIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "hide-panel@fthx", "name": "Hide Panel", "pname": "hide-panel", "description": "Hide top panel except in overview. Switch button in panel.\n\nVery very light extension. There is a 1 pixel wide line at the top of the screen that allows to blindly use the panel menus. This is needed to keep the native hot corner active without having to recreate it.", "link": "https://extensions.gnome.org/extension/3948/hide-panel/", "shell_version_map": {"38": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0nrj0kxfdxx7nmw0zai070ca5lv5r43bpgm2binv31xjyh385849", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgdG9wIHBhbmVsIGV4Y2VwdCBpbiBvdmVydmlldy4gU3dpdGNoIGJ1dHRvbiBpbiBwYW5lbC5cblxuVmVyeSB2ZXJ5IGxpZ2h0IGV4dGVuc2lvbi4gVGhlcmUgaXMgYSAxIHBpeGVsIHdpZGUgbGluZSBhdCB0aGUgdG9wIG9mIHRoZSBzY3JlZW4gdGhhdCBhbGxvd3MgdG8gYmxpbmRseSB1c2UgdGhlIHBhbmVsIG1lbnVzLiBUaGlzIGlzIG5lZWRlZCB0byBrZWVwIHRoZSBuYXRpdmUgaG90IGNvcm5lciBhY3RpdmUgd2l0aG91dCBoYXZpbmcgdG8gcmVjcmVhdGUgaXQuIiwKICAibmFtZSI6ICJIaWRlIFBhbmVsIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvaGlkZS1wYW5lbCIsCiAgInV1aWQiOiAiaGlkZS1wYW5lbEBmdGh4IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "persistent-email-notifications@fthx", "name": "Persistent Email Notifications", "pname": "persistent-email-notifications", "description": "Never hide a new mail notification, except if you close it.\n\nVery very light extension. Email clients supported: Thunderbird, Evolution, Geary, Mailspring, TypeApp, BlueMail. Please ask for another email client if needed.", "link": "https://extensions.gnome.org/extension/3951/persistent-email-notifications/", "shell_version_map": {"38": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "06m6fhs50vlrwkgdk6cvkcl5f155a1w8szs1g9pzryf8mmldgmdd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk5ldmVyIGhpZGUgYSBuZXcgbWFpbCBub3RpZmljYXRpb24sIGV4Y2VwdCBpZiB5b3UgY2xvc2UgaXQuXG5cblZlcnkgdmVyeSBsaWdodCBleHRlbnNpb24uIEVtYWlsIGNsaWVudHMgc3VwcG9ydGVkOiBUaHVuZGVyYmlyZCwgRXZvbHV0aW9uLCBHZWFyeSwgTWFpbHNwcmluZywgVHlwZUFwcCwgQmx1ZU1haWwuIFBsZWFzZSBhc2sgZm9yIGFub3RoZXIgZW1haWwgY2xpZW50IGlmIG5lZWRlZC4iLAogICJuYW1lIjogIlBlcnNpc3RlbnQgRW1haWwgTm90aWZpY2F0aW9ucyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L3BlcnNpc3RlbnQtZW1haWwtbm90aWZpY2F0aW9ucyIsCiAgInV1aWQiOiAicGVyc2lzdGVudC1lbWFpbC1ub3RpZmljYXRpb25zQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right. Middle click calls overview.\n\nThere could be an error with the extension after update. The solution is to logout and login again.\n", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "9", "sha256": "09p4jjc00jqb99lpxff4jkpkf7fzaflkljqxa9sf5xld8w7vsh9c", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R0eTIvaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3JAdHR5Mi5pbyIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "13", "sha256": "1mm2y2k30i8j6szcap2dx6jzvfd0dbgdxda1zvdbq28nx25dg3l6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "1mm2y2k30i8j6szcap2dx6jzvfd0dbgdxda1zvdbq28nx25dg3l6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "42": {"version": "13", "sha256": "1mm2y2k30i8j6szcap2dx6jzvfd0dbgdxda1zvdbq28nx25dg3l6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
+, {"uuid": "horizontal-workspace-indicator@tty2.io", "name": "Workspace indicator", "pname": "workspace-indicator", "description": "Workspace indicator shows the amount of opened workspaces and highlights the current one using unicode characters.\n\nYou can use it as an indicator only but widget is clickable. Left button click: move to left, right click: move right. Middle click calls overview.\n\nThere could be an error with the extension after update. The solution is to logout and login again.\n\nIf your indicator looks different from one on screen shot, install DejaVu Sans or Ubuntu font.", "link": "https://extensions.gnome.org/extension/3952/workspace-indicator/", "shell_version_map": {"38": {"version": "9", "sha256": "1inrxf5n2agv94zcqljbkna2lhdj84ppdirfq80035dj6iwpfaz9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG5cbklmIHlvdXIgaW5kaWNhdG9yIGxvb2tzIGRpZmZlcmVudCBmcm9tIG9uZSBvbiBzY3JlZW4gc2hvdCwgaW5zdGFsbCBEZWphVnUgU2FucyBvciBVYnVudHUgZm9udC4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R0eTIvaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3JAdHR5Mi5pbyIsCiAgInZlcnNpb24iOiA5Cn0="}, "40": {"version": "13", "sha256": "1r4zw85wwx2idlqiw9gmrmxb3infjvvy8nz1i47pk0ry81h94y7q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG5cbklmIHlvdXIgaW5kaWNhdG9yIGxvb2tzIGRpZmZlcmVudCBmcm9tIG9uZSBvbiBzY3JlZW4gc2hvdCwgaW5zdGFsbCBEZWphVnUgU2FucyBvciBVYnVudHUgZm9udC4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "41": {"version": "13", "sha256": "1r4zw85wwx2idlqiw9gmrmxb3infjvvy8nz1i47pk0ry81h94y7q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG5cbklmIHlvdXIgaW5kaWNhdG9yIGxvb2tzIGRpZmZlcmVudCBmcm9tIG9uZSBvbiBzY3JlZW4gc2hvdCwgaW5zdGFsbCBEZWphVnUgU2FucyBvciBVYnVudHUgZm9udC4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}, "42": {"version": "13", "sha256": "1r4zw85wwx2idlqiw9gmrmxb3infjvvy8nz1i47pk0ry81h94y7q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0b3Igc2hvd3MgdGhlIGFtb3VudCBvZiBvcGVuZWQgd29ya3NwYWNlcyBhbmQgaGlnaGxpZ2h0cyB0aGUgY3VycmVudCBvbmUgdXNpbmcgdW5pY29kZSBjaGFyYWN0ZXJzLlxuXG5Zb3UgY2FuIHVzZSBpdCBhcyBhbiBpbmRpY2F0b3Igb25seSBidXQgd2lkZ2V0IGlzIGNsaWNrYWJsZS4gTGVmdCBidXR0b24gY2xpY2s6IG1vdmUgdG8gbGVmdCwgcmlnaHQgY2xpY2s6IG1vdmUgcmlnaHQuIE1pZGRsZSBjbGljayBjYWxscyBvdmVydmlldy5cblxuVGhlcmUgY291bGQgYmUgYW4gZXJyb3Igd2l0aCB0aGUgZXh0ZW5zaW9uIGFmdGVyIHVwZGF0ZS4gVGhlIHNvbHV0aW9uIGlzIHRvIGxvZ291dCBhbmQgbG9naW4gYWdhaW4uXG5cbklmIHlvdXIgaW5kaWNhdG9yIGxvb2tzIGRpZmZlcmVudCBmcm9tIG9uZSBvbiBzY3JlZW4gc2hvdCwgaW5zdGFsbCBEZWphVnUgU2FucyBvciBVYnVudHUgZm9udC4iLAogICJuYW1lIjogIldvcmtzcGFjZSBpbmRpY2F0b3IiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaG9yaXpvbnRhbC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vdHR5Mi9ob3Jpem9udGFsLXdvcmtzcGFjZS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImhvcml6b250YWwtd29ya3NwYWNlLWluZGljYXRvckB0dHkyLmlvIiwKICAidmVyc2lvbiI6IDEzCn0="}}}
 , {"uuid": "kitchentimer@blackjackshellac.ca", "name": "Kitchen Timer", "pname": "kitchen-timer", "description": "General purpose timer extension for Gnome Shell\n\nPlease report issues on github\n\nIf updating the extension reports an ERROR, it should work after the next reboot or if you logout and login again.", "link": "https://extensions.gnome.org/extension/3955/kitchen-timer/", "shell_version_map": {"38": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}, "40": {"version": "28", "sha256": "0k1ahswl2ipjz1v1z1j96lndbk26rgfr2ra2g78lvzjiv6j42sdf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdlbmVyYWwgcHVycG9zZSB0aW1lciBleHRlbnNpb24gZm9yIEdub21lIFNoZWxsXG5cblBsZWFzZSByZXBvcnQgaXNzdWVzIG9uIGdpdGh1YlxuXG5JZiB1cGRhdGluZyB0aGUgZXh0ZW5zaW9uIHJlcG9ydHMgYW4gRVJST1IsIGl0IHNob3VsZCB3b3JrIGFmdGVyIHRoZSBuZXh0IHJlYm9vdCBvciBpZiB5b3UgbG9nb3V0IGFuZCBsb2dpbiBhZ2Fpbi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJraXRjaGVuLXRpbWVyLWJsYWNramFja3NoZWxsYWMiLAogICJuYW1lIjogIktpdGNoZW4gVGltZXIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMua2l0Y2hlbi10aW1lci1ibGFja2phY2tzaGVsbGFjIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2JsYWNramFja3NoZWxsYWMva2l0Y2hlblRpbWVyIiwKICAidXVpZCI6ICJraXRjaGVudGltZXJAYmxhY2tqYWNrc2hlbGxhYy5jYSIsCiAgInZlcnNpb24iOiAyOAp9"}}}
 , {"uuid": "gnome-fuzzy-app-search@gnome-shell-extensions.Czarlie.gitlab.com", "name": "GNOME Fuzzy App Search", "pname": "gnome-fuzzy-app-search", "description": "Fuzzy application search results for Gnome Search", "link": "https://extensions.gnome.org/extension/3956/gnome-fuzzy-app-search/", "shell_version_map": {"38": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "40": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "41": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "0yhc4rrxdqkd2in0vi3kxc7q3llbk88r47fqbvvlbcf8viv7blkq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImF1dGhvciI6ICJDemFybGllIDxsZWVlNDlAZ21haWwuY29tPiIsCiAgImF1dGhvci1odG1sIjogIkN6YXJsaWUgJmx0OzxhIGhyZWY9XCJtYWlsdG86bGVlZTQ5Ljd4N0BnbWFpbC5jb21cIj5sZWVlNDkuN3g3QGdtYWlsLmNvbTwvYT4mZ3Q7IiwKICAiZGVzY3JpcHRpb24iOiAiRnV6enkgYXBwbGljYXRpb24gc2VhcmNoIHJlc3VsdHMgZm9yIEdub21lIFNlYXJjaCIsCiAgImRlc2NyaXB0aW9uLWh0bWwiOiAiPGEgaHJlZj1cImh0dHBzOi8vZW4ud2lraXBlZGlhLm9yZy93aWtpL0FwcHJveGltYXRlX3N0cmluZ19tYXRjaGluZ1wiPkZ1enp5PC9hPiBhcHBsaWNhdGlvbiBzZWFyY2ggcmVzdWx0cyBmb3IgPGEgaHJlZj1cImh0dHBzOi8vZGV2ZWxvcGVyLmdub21lLm9yZy9TZWFyY2hQcm92aWRlci9cIj5Hbm9tZSBTZWFyY2g8L2E+LiIsCiAgImVtYWlsIjogImxlZWU0OS43eDdAZ21haWwuY29tIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtZnV6enktYXBwLXNlYXJjaCIsCiAgImxpY2Vuc2UiOiAiR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgdjMuMCIsCiAgImxpY2Vuc2UtaHRtbCI6ICJUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuU2VlIHRoZSA8YSBocmVmPVwiaHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLmh0bWxcIj5HTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2My4wPC9hPiBmb3IgZGV0YWlscy4iLAogICJuYW1lIjogIkdOT01FIEZ1enp5IEFwcCBTZWFyY2giLAogICJvcmlnaW5hbC1hdXRob3IiOiAiRnJhbmpvIEZpbG8gPGZmZmlsbzY2NkBnbWFpbC5jb20+IiwKICAib3JpZ2luYWwtYXV0aG9yLWh0bWwiOiAiRnJhbmpvIEZpbG8gJmx0OzxhIGhyZWY9XCJtYWlsdG86ZmZmaWxvNjY2QGdtYWlsLmNvbVwiPmZmZmlsbzY2NkBnbWFpbC5jb208L2E+Jmd0OyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQ3phcmxpZS9nbm9tZS1mdXp6eS1hcHAtc2VhcmNoIiwKICAidXVpZCI6ICJnbm9tZS1mdXp6eS1hcHAtc2VhcmNoQGdub21lLXNoZWxsLWV4dGVuc2lvbnMuQ3phcmxpZS5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"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=="}}}
 , {"uuid": "transparent-top-bar@ftpix.com", "name": "Transparent Top Bar (Adjustable transparency)", "pname": "transparent-top-bar-adjustable-transparency", "description": "Fork of: https://github.com/zhanghai/gnome-shell-extension-transparent-top-bar\n\nBring back the transparent top bar in GNOME Shell with adjustable transparency.\n\nDoes not work well with custom shell themes.", "link": "https://extensions.gnome.org/extension/3960/transparent-top-bar-adjustable-transparency/", "shell_version_map": {"38": {"version": "5", "sha256": "09mym8h6lpb53b18c72vzl2y7myl1xg1lyg9jryf3nijna9adnr9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbGFtYXJpb3MvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXRyYW5zcGFyZW50LXRvcC1iYXIiLAogICJ1dWlkIjogInRyYW5zcGFyZW50LXRvcC1iYXJAZnRwaXguY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "12", "sha256": "1nxfa4zgxjlp2msq95b4q5asm516bkfca0zzns02ss8696lyg501", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "1nxfa4zgxjlp2msq95b4q5asm516bkfca0zzns02ss8696lyg501", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "1nxfa4zgxjlp2msq95b4q5asm516bkfca0zzns02ss8696lyg501", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZvcmsgb2Y6IGh0dHBzOi8vZ2l0aHViLmNvbS96aGFuZ2hhaS9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhclxuXG5CcmluZyBiYWNrIHRoZSB0cmFuc3BhcmVudCB0b3AgYmFyIGluIEdOT01FIFNoZWxsIHdpdGggYWRqdXN0YWJsZSB0cmFuc3BhcmVuY3kuXG5cbkRvZXMgbm90IHdvcmsgd2VsbCB3aXRoIGN1c3RvbSBzaGVsbCB0aGVtZXMuIiwKICAibmFtZSI6ICJUcmFuc3BhcmVudCBUb3AgQmFyIChBZGp1c3RhYmxlIHRyYW5zcGFyZW5jeSkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sYW1hcmlvcy9nbm9tZS1zaGVsbC1leHRlbnNpb24tdHJhbnNwYXJlbnQtdG9wLWJhciIsCiAgInV1aWQiOiAidHJhbnNwYXJlbnQtdG9wLWJhckBmdHBpeC5jb20iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
-, {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "12", "sha256": "1hk82y5r11hx4bv6gnr0cmzy2mn7dzwsmha6rmy04lrncvfl1r0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "40": {"version": "12", "sha256": "1hk82y5r11hx4bv6gnr0cmzy2mn7dzwsmha6rmy04lrncvfl1r0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "41": {"version": "12", "sha256": "1hk82y5r11hx4bv6gnr0cmzy2mn7dzwsmha6rmy04lrncvfl1r0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}, "42": {"version": "12", "sha256": "1hk82y5r11hx4bv6gnr0cmzy2mn7dzwsmha6rmy04lrncvfl1r0p", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTIKfQ=="}}}
+, {"uuid": "improved-workspace-indicator@michaelaquilina.github.io", "name": "Improved Workspace Indicator", "pname": "improved-workspace-indicator", "description": "Slightly improved workspace indicator that shows both current and in use workspaces similar to i3/sway", "link": "https://extensions.gnome.org/extension/3968/improved-workspace-indicator/", "shell_version_map": {"38": {"version": "13", "sha256": "1vr8qcdr6kmkih8jymxq8kk09gqnb2p5gjbmymjvi6jdp5wkfr8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1vr8qcdr6kmkih8jymxq8kk09gqnb2p5gjbmymjvi6jdp5wkfr8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1vr8qcdr6kmkih8jymxq8kk09gqnb2p5gjbmymjvi6jdp5wkfr8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "42": {"version": "13", "sha256": "1vr8qcdr6kmkih8jymxq8kk09gqnb2p5gjbmymjvi6jdp5wkfr8n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNsaWdodGx5IGltcHJvdmVkIHdvcmtzcGFjZSBpbmRpY2F0b3IgdGhhdCBzaG93cyBib3RoIGN1cnJlbnQgYW5kIGluIHVzZSB3b3Jrc3BhY2VzIHNpbWlsYXIgdG8gaTMvc3dheSIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgV29ya3NwYWNlIEluZGljYXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiBbCiAgICAibWljaGFlbGFxdWlsaW5hQGdtYWlsLmNvbSIKICBdLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaW1wcm92ZWQtd29ya3NwYWNlLWluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01pY2hhZWxBcXVpbGluYS9pbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJpbXByb3ZlZC13b3Jrc3BhY2UtaW5kaWNhdG9yQG1pY2hhZWxhcXVpbGluYS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
 , {"uuid": "gnome4synology@psasse.gmx.de", "name": "Movie Search provider for Synology®", "pname": "gnome-movie-search-provider-for-synology", "description": "search provider for movie titles on Synology® NAS including offline search (yet to come)", "link": "https://extensions.gnome.org/extension/3969/gnome-movie-search-provider-for-synology/", "shell_version_map": {"40": {"version": "14", "sha256": "133jgh7s8mdc4dbcwr623yyrpfb8nv96iggsk2kb18lkw2rcf3xi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogInNlYXJjaCBwcm92aWRlciBmb3IgbW92aWUgdGl0bGVzIG9uIFN5bm9sb2d5XHUwMGFlIE5BUyBpbmNsdWRpbmcgb2ZmbGluZSBzZWFyY2ggKHlldCB0byBjb21lKSIsCiAgIm5hbWUiOiAiTW92aWUgU2VhcmNoIHByb3ZpZGVyIGZvciBTeW5vbG9neVx1MDBhZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wc2Fzc2U3Mi9tb3ZpZXM0c3lub2xvZ3kiLAogICJ1dWlkIjogImdub21lNHN5bm9sb2d5QHBzYXNzZS5nbXguZGUiLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
 , {"uuid": "guillotine@fopdoodle.net", "name": "Guillotine", "pname": "guillotine", "description": "Guillotine is a gnome extension designed for efficiently carrying out executions of commands from a customizable menu. Simply speaking: it is a highly customizable menu that enables you to launch commands and toggle services.", "link": "https://extensions.gnome.org/extension/3981/guillotine/", "shell_version_map": {"38": {"version": "3", "sha256": "0r171an47d1fdhzwiq7kg59hasibmcvvcsv9z9xd1kh5jahzmam5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "41": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}, "42": {"version": "15", "sha256": "10i86kx5j5rd1hamj8b3kn6lhmv9zb9xid98f2l5l1sna74xh161", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkd1aWxsb3RpbmUgaXMgYSBnbm9tZSBleHRlbnNpb24gZGVzaWduZWQgZm9yIGVmZmljaWVudGx5IGNhcnJ5aW5nIG91dCBleGVjdXRpb25zIG9mIGNvbW1hbmRzIGZyb20gYSBjdXN0b21pemFibGUgbWVudS4gU2ltcGx5IHNwZWFraW5nOiBpdCBpcyBhIGhpZ2hseSBjdXN0b21pemFibGUgbWVudSB0aGF0IGVuYWJsZXMgeW91IHRvIGxhdW5jaCBjb21tYW5kcyBhbmQgdG9nZ2xlIHNlcnZpY2VzLiIsCiAgIm5hbWUiOiAiR3VpbGxvdGluZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5ndWlsbG90aW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vZW50ZTc2L2d1aWxsb3RpbmUvIiwKICAidXVpZCI6ICJndWlsbG90aW5lQGZvcGRvb2RsZS5uZXQiLAogICJ2ZXJzaW9uIjogMTUKfQ=="}}}
 , {"uuid": "shuzhi@tuberry", "name": "Shu Zhi", "pname": "shu-zhi", "description": "Wallpaper generation extension for GNOME Shell, inspired by Jizhi\n\nFor support, please report any issues via the homepage link below.", "link": "https://extensions.gnome.org/extension/3985/shu-zhi/", "shell_version_map": {"38": {"version": "7", "sha256": "1yk39q1ydv7kmb8shi4cp7pf5zvpmj99gjl9svack4773dj9rrwi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogInNodXpoaSIsCiAgIm5hbWUiOiAiU2h1IFpoaSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaHV6aGkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS90dWJlcnJ5L3NodXpoaSIsCiAgInV1aWQiOiAic2h1emhpQHR1YmVycnkiLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "17", "sha256": "1n0ajmm6d7y6kify6k9g3j2kc3ass9s7zyif5jhr1djzsi6knpq0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxNwp9"}, "41": {"version": "19", "sha256": "1ib82yf7gh97hygbrxccpsh75jpg65rp834vygi25kyf0b8fykff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAxOQp9"}, "42": {"version": "21", "sha256": "1pbldn51jjfq45d3bl7nfciff1mn3krl7dhiwp9hqrp3hchlassd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldhbGxwYXBlciBnZW5lcmF0aW9uIGV4dGVuc2lvbiBmb3IgR05PTUUgU2hlbGwsIGluc3BpcmVkIGJ5IEppemhpXG5cbkZvciBzdXBwb3J0LCBwbGVhc2UgcmVwb3J0IGFueSBpc3N1ZXMgdmlhIHRoZSBob21lcGFnZSBsaW5rIGJlbG93LiIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1zaHV6aGkiLAogICJuYW1lIjogIlNodSBaaGkiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2h1emhpIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3R1YmVycnkvc2h1emhpIiwKICAidXVpZCI6ICJzaHV6aGlAdHViZXJyeSIsCiAgInZlcnNpb24iOiAyMQp9"}}}
 , {"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": "3", "sha256": "03svlpgsjz8i3a7y75m8whx7yr7pqiv5c2x6vgp399h4wjxdl4br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICI1NTUxMzk0YTFmNmYxMDlkZDgxNzhkNTg5ODNhN2MwMTE1YzVmYmRjIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FwYW5rb3dza2kvemlsZW5jZSIsCiAgInV1aWQiOiAiemlsZW5jZUBhcGFua293c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "03svlpgsjz8i3a7y75m8whx7yr7pqiv5c2x6vgp399h4wjxdl4br", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1pdCI6ICI1NTUxMzk0YTFmNmYxMDlkZDgxNzhkNTg5ODNhN2MwMTE1YzVmYmRjIiwKICAiZGVzY3JpcHRpb24iOiAiVHVybnMgb2ZmIG5vdGlmaWNhdGlvbnMgd2hpbGUgc2hhcmluZyBzY3JlZW4gZHVyaW5nIGEgWm9vbSBjYWxsIiwKICAibmFtZSI6ICJaaWxlbmNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FwYW5rb3dza2kvemlsZW5jZSIsCiAgInV1aWQiOiAiemlsZW5jZUBhcGFua293c2tpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
-, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "40": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "41": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}}}
+, {"uuid": "bluetooth-battery@michalw.github.com", "name": "Bluetooth battery indicator", "pname": "bluetooth-battery", "description": "Bluetooth battery indicator", "link": "https://extensions.gnome.org/extension/3991/bluetooth-battery/", "shell_version_map": {"38": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "40": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "41": {"version": "26", "sha256": "07p56424nlhcs8rmbxyywc86jvhrr83hwzs1xq4jv338kiprp04j", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTWljaGFsVy9nbm9tZS1ibHVldG9vdGgtYmF0dGVyeS1pbmRpY2F0b3IiLAogICJ1dWlkIjogImJsdWV0b290aC1iYXR0ZXJ5QG1pY2hhbHcuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyNgp9"}, "42": {"version": "27", "sha256": "0gibbkzk5806d899csqkbk23dcp9nxawpssnsj7y9ksl11apnphp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJsdWV0b290aCBiYXR0ZXJ5IGluZGljYXRvciIsCiAgImdldHRleHQtZG9tYWluIjogImJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgIm5hbWUiOiAiQmx1ZXRvb3RoIGJhdHRlcnkgaW5kaWNhdG9yIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmJsdWV0b290aF9iYXR0ZXJ5X2luZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NaWNoYWxXL2dub21lLWJsdWV0b290aC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiYmx1ZXRvb3RoLWJhdHRlcnlAbWljaGFsdy5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDI3Cn0="}}}
 , {"uuid": "gnome-extension-all-ip-addresses@havekes.eu", "name": "All IP Addresses", "pname": "all-ip-addresses", "description": "Show IP addresses for LAN, WAN, IPv6 and VPN in the GNOME panel. Click on the address to cycle trough different interfaces.", "link": "https://extensions.gnome.org/extension/3994/all-ip-addresses/", "shell_version_map": {"38": {"version": "8", "sha256": "0yl2fxs1pl9i9yfgks1ypvzdpyzagjf5s51x0lxnw76ciwrrg47v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiwgSVB2NiBhbmQgVlBOIGluIHRoZSBHTk9NRSBwYW5lbC4gQ2xpY2sgb24gdGhlIGFkZHJlc3MgdG8gY3ljbGUgdHJvdWdoIGRpZmZlcmVudCBpbnRlcmZhY2VzLiIsCiAgIm5hbWUiOiAiQWxsIElQIEFkZHJlc3NlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BoYXZla2VzL2dub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3Nlc0BoYXZla2VzLmV1IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "8", "sha256": "0yl2fxs1pl9i9yfgks1ypvzdpyzagjf5s51x0lxnw76ciwrrg47v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiwgSVB2NiBhbmQgVlBOIGluIHRoZSBHTk9NRSBwYW5lbC4gQ2xpY2sgb24gdGhlIGFkZHJlc3MgdG8gY3ljbGUgdHJvdWdoIGRpZmZlcmVudCBpbnRlcmZhY2VzLiIsCiAgIm5hbWUiOiAiQWxsIElQIEFkZHJlc3NlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BoYXZla2VzL2dub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3Nlc0BoYXZla2VzLmV1IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "41": {"version": "8", "sha256": "0yl2fxs1pl9i9yfgks1ypvzdpyzagjf5s51x0lxnw76ciwrrg47v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiwgSVB2NiBhbmQgVlBOIGluIHRoZSBHTk9NRSBwYW5lbC4gQ2xpY2sgb24gdGhlIGFkZHJlc3MgdG8gY3ljbGUgdHJvdWdoIGRpZmZlcmVudCBpbnRlcmZhY2VzLiIsCiAgIm5hbWUiOiAiQWxsIElQIEFkZHJlc3NlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BoYXZla2VzL2dub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3Nlc0BoYXZla2VzLmV1IiwKICAidmVyc2lvbiI6IDgKfQ=="}, "42": {"version": "8", "sha256": "0yl2fxs1pl9i9yfgks1ypvzdpyzagjf5s51x0lxnw76ciwrrg47v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgSVAgYWRkcmVzc2VzIGZvciBMQU4sIFdBTiwgSVB2NiBhbmQgVlBOIGluIHRoZSBHTk9NRSBwYW5lbC4gQ2xpY2sgb24gdGhlIGFkZHJlc3MgdG8gY3ljbGUgdHJvdWdoIGRpZmZlcmVudCBpbnRlcmZhY2VzLiIsCiAgIm5hbWUiOiAiQWxsIElQIEFkZHJlc3NlcyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BoYXZla2VzL2dub21lLWV4dGVuc2lvbi1hbGwtaXAtYWRkcmVzc2VzIiwKICAidXVpZCI6ICJnbm9tZS1leHRlbnNpb24tYWxsLWlwLWFkZHJlc3Nlc0BoYXZla2VzLmV1IiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
 , {"uuid": "app-grid-tweaks@Selenium-H", "name": "App Grid Tweaks", "pname": "app-grid-tweaks", "description": "Customize the application grid view.\n\nSet the rows, columns and the app icon size for a particular configuration to work.\nIf the screen space is out numbered, reduce the icon size to fit all the rows and columns.\nOr reduce the number of rows and columns.\n\nPress the Refresh button on the left of header bar to apply changes", "link": "https://extensions.gnome.org/extension/3997/app-grid-tweaks/", "shell_version_map": {"38": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "17hriwcwhkjp3n20q7bm7iylr8862ghvnagf2xk0ci2hxwwbyc92", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImNvbW1lbnQiOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuIiwKICAiZGVzY3JpcHRpb24iOiAiQ3VzdG9taXplIHRoZSBhcHBsaWNhdGlvbiBncmlkIHZpZXcuXG5cblNldCB0aGUgcm93cywgY29sdW1ucyBhbmQgdGhlIGFwcCBpY29uIHNpemUgZm9yIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uIHRvIHdvcmsuXG5JZiB0aGUgc2NyZWVuIHNwYWNlIGlzIG91dCBudW1iZXJlZCwgcmVkdWNlIHRoZSBpY29uIHNpemUgdG8gZml0IGFsbCB0aGUgcm93cyBhbmQgY29sdW1ucy5cbk9yIHJlZHVjZSB0aGUgbnVtYmVyIG9mIHJvd3MgYW5kIGNvbHVtbnMuXG5cblByZXNzIHRoZSBSZWZyZXNoIGJ1dHRvbiBvbiB0aGUgbGVmdCBvZiBoZWFkZXIgYmFyIHRvIGFwcGx5IGNoYW5nZXMiLAogICJuYW1lIjogIkFwcCBHcmlkIFR3ZWFrcyIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hcHAtZ3JpZC10d2Vha3MiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJzdGF0dXMiOiAiIiwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9TZWxlbml1bS1IL0FwcC1HcmlkLVR3ZWFrcyIsCiAgInV1aWQiOiAiYXBwLWdyaWQtdHdlYWtzQFNlbGVuaXVtLUgiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "babar@fthx", "name": "BaBar Task Bar", "pname": "babar", "description": "Task bar. App grid, favorites, workspaces and tasks in panel. Light extension.\n\n Replace 'Activities' button by all current workspaces and apps buttons. Switch workspace/app or toggle overview by clicking on these buttons. Drag and drop favorite, task, dash item or app grid item to any workspace (you cannot reorder tasks inside a workspace). Persistent window preview with right-click (right-click again or click on preview to close it). You can move this preview anywhere. Change 'Places' label to an icon. Settings in preferences UI.\n\n You can use names for workspaces: there are two ways for that. 1) Edit the string array 'org.gnome.desktop.wm.preferences.workspace-names' gsettings key (through dconf editor, e.g.). 2) Use official GNOME extension Workspaces Indicator's settings. You don't have to write a long enough list: numbers are displayed if no workspace name is defined.\n\n Changelog: https://github.com/fthx/babar/issues/2", "link": "https://extensions.gnome.org/extension/4000/babar/", "shell_version_map": {"38": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "40": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "41": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}, "42": {"version": "58", "sha256": "0sgsz9skc0d3rx9lap6g8fnmb5ki4ylr8s5f8yk5wkpvzvh3gkgy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBBcHAgZ3JpZCwgZmF2b3JpdGVzLCB3b3Jrc3BhY2VzIGFuZCB0YXNrcyBpbiBwYW5lbC4gTGlnaHQgZXh0ZW5zaW9uLlxuXG4gUmVwbGFjZSAnQWN0aXZpdGllcycgYnV0dG9uIGJ5IGFsbCBjdXJyZW50IHdvcmtzcGFjZXMgYW5kIGFwcHMgYnV0dG9ucy4gU3dpdGNoIHdvcmtzcGFjZS9hcHAgb3IgdG9nZ2xlIG92ZXJ2aWV3IGJ5IGNsaWNraW5nIG9uIHRoZXNlIGJ1dHRvbnMuIERyYWcgYW5kIGRyb3AgZmF2b3JpdGUsIHRhc2ssIGRhc2ggaXRlbSBvciBhcHAgZ3JpZCBpdGVtIHRvIGFueSB3b3Jrc3BhY2UgKHlvdSBjYW5ub3QgcmVvcmRlciB0YXNrcyBpbnNpZGUgYSB3b3Jrc3BhY2UpLiBQZXJzaXN0ZW50IHdpbmRvdyBwcmV2aWV3IHdpdGggcmlnaHQtY2xpY2sgKHJpZ2h0LWNsaWNrIGFnYWluIG9yIGNsaWNrIG9uIHByZXZpZXcgdG8gY2xvc2UgaXQpLiBZb3UgY2FuIG1vdmUgdGhpcyBwcmV2aWV3IGFueXdoZXJlLiBDaGFuZ2UgJ1BsYWNlcycgbGFiZWwgdG8gYW4gaWNvbi4gU2V0dGluZ3MgaW4gcHJlZmVyZW5jZXMgVUkuXG5cbiBZb3UgY2FuIHVzZSBuYW1lcyBmb3Igd29ya3NwYWNlczogdGhlcmUgYXJlIHR3byB3YXlzIGZvciB0aGF0LiAxKSBFZGl0IHRoZSBzdHJpbmcgYXJyYXkgJ29yZy5nbm9tZS5kZXNrdG9wLndtLnByZWZlcmVuY2VzLndvcmtzcGFjZS1uYW1lcycgZ3NldHRpbmdzIGtleSAodGhyb3VnaCBkY29uZiBlZGl0b3IsIGUuZy4pLiAyKSBVc2Ugb2ZmaWNpYWwgR05PTUUgZXh0ZW5zaW9uIFdvcmtzcGFjZXMgSW5kaWNhdG9yJ3Mgc2V0dGluZ3MuIFlvdSBkb24ndCBoYXZlIHRvIHdyaXRlIGEgbG9uZyBlbm91Z2ggbGlzdDogbnVtYmVycyBhcmUgZGlzcGxheWVkIGlmIG5vIHdvcmtzcGFjZSBuYW1lIGlzIGRlZmluZWQuXG5cbiBDaGFuZ2Vsb2c6IGh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2JhYmFyL2lzc3Vlcy8yIiwKICAibmFtZSI6ICJCYUJhciBUYXNrIEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2Z0aHgvYmFiYXIiLAogICJ1dWlkIjogImJhYmFyQGZ0aHgiLAogICJ2ZXJzaW9uIjogNTgKfQ=="}}}
@@ -446,14 +448,14 @@
 , {"uuid": "x11gestures@joseexposito.github.io", "name": "X11 Gestures", "pname": "x11-gestures", "description": "Enable GNOME Shell multi-touch gestures on X11.\nRequires Touchégg https://github.com/JoseExposito/touchegg#readme", "link": "https://extensions.gnome.org/extension/4033/x11-gestures/", "shell_version_map": {"38": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "40": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "17jnh27fj32sbmxilbjzl6lra5rgmsbnk0s4s6f3d0ahrxmn6x1d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZSBHTk9NRSBTaGVsbCBtdWx0aS10b3VjaCBnZXN0dXJlcyBvbiBYMTEuXG5SZXF1aXJlcyBUb3VjaFx1MDBlOWdnIGh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vdG91Y2hlZ2cjcmVhZG1lIiwKICAibmFtZSI6ICJYMTEgR2VzdHVyZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9Kb3NlRXhwb3NpdG8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXgxMWdlc3R1cmVzIiwKICAidXVpZCI6ICJ4MTFnZXN0dXJlc0Bqb3NlZXhwb3NpdG8uZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "get-out-of-the-way@michaelmob.com", "name": "Get Out Of The Way!", "pname": "get-out-of-the-way", "description": "Push 'Always-on-Top' windows out of the way of the focused window.", "link": "https://extensions.gnome.org/extension/4034/get-out-of-the-way/", "shell_version_map": {"38": {"version": "1", "sha256": "1jpjqi2l6wjn9zbgpck04gm9vbspi066chby1j6k9km6dwljfbk7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlB1c2ggJ0Fsd2F5cy1vbi1Ub3AnIHdpbmRvd3Mgb3V0IG9mIHRoZSB3YXkgb2YgdGhlIGZvY3VzZWQgd2luZG93LiIsCiAgIm5hbWUiOiAiR2V0IE91dCBPZiBUaGUgV2F5ISIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZXQtb3V0LW9mLXRoZS13YXlAbWljaGFlbG1vYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "VPNStatus@jesusalc@intuivo.com", "name": "VPNStatus Indicator", "pname": "vpnstatus-indicator", "description": "displays the current state of VPNStatus VPN\n\nchecks, if /proc/net/route contains entries for device nmcli?, this is the VPNStatus network device.\n", "link": "https://extensions.gnome.org/extension/4039/vpnstatus-indicator/", "shell_version_map": {"38": {"version": "1", "sha256": "1y4ym6lpwfi03rc6186yjc7mns01q5nrwiqizghls7hiyfg3kqrn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImRpc3BsYXlzIHRoZSBjdXJyZW50IHN0YXRlIG9mIFZQTlN0YXR1cyBWUE5cblxuY2hlY2tzLCBpZiAvcHJvYy9uZXQvcm91dGUgY29udGFpbnMgZW50cmllcyBmb3IgZGV2aWNlIG5tY2xpPywgdGhpcyBpcyB0aGUgVlBOU3RhdHVzIG5ldHdvcmsgZGV2aWNlLlxuIiwKICAibmFtZSI6ICJWUE5TdGF0dXMgSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIlZQTlN0YXR1c0BqZXN1c2FsY0BpbnR1aXZvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0lzr3nx55842w7x60kx20fm8p07gz9gxh1lkqk9sic2784cbydsc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3dpdGNodHdvbGF5b3V0c0BxdG1heC5kZXYiLAogICJ2ZXJzaW9uIjogMwp9"}}}
+, {"uuid": "switchtwolayouts@qtmax.dev", "name": "Switch Two Layouts", "pname": "switch-two-layouts", "description": "This extension makes XKB shortcuts to switch keyboard layouts (such as Caps Lock, Ctrl+Shift, etc.) cycle between the two first layouts. The other ones still can be selected via the menu or using GNOME's shortcuts (Super+Space, Shift+Super+Space). It's useful when you have two primary layouts and more additional, which are used more rarely.", "link": "https://extensions.gnome.org/extension/4042/switch-two-layouts/", "shell_version_map": {"38": {"version": "4", "sha256": "0b38pcdxyx8znhw7bn4f1x07g672f8rm6k7hhrkdr3v676z3s93n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInN3aXRjaHR3b2xheW91dHNAcXRtYXguZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "0b38pcdxyx8znhw7bn4f1x07g672f8rm6k7hhrkdr3v676z3s93n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInN3aXRjaHR3b2xheW91dHNAcXRtYXguZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0b38pcdxyx8znhw7bn4f1x07g672f8rm6k7hhrkdr3v676z3s93n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInN3aXRjaHR3b2xheW91dHNAcXRtYXguZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "0b38pcdxyx8znhw7bn4f1x07g672f8rm6k7hhrkdr3v676z3s93n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIG1ha2VzIFhLQiBzaG9ydGN1dHMgdG8gc3dpdGNoIGtleWJvYXJkIGxheW91dHMgKHN1Y2ggYXMgQ2FwcyBMb2NrLCBDdHJsK1NoaWZ0LCBldGMuKSBjeWNsZSBiZXR3ZWVuIHRoZSB0d28gZmlyc3QgbGF5b3V0cy4gVGhlIG90aGVyIG9uZXMgc3RpbGwgY2FuIGJlIHNlbGVjdGVkIHZpYSB0aGUgbWVudSBvciB1c2luZyBHTk9NRSdzIHNob3J0Y3V0cyAoU3VwZXIrU3BhY2UsIFNoaWZ0K1N1cGVyK1NwYWNlKS4gSXQncyB1c2VmdWwgd2hlbiB5b3UgaGF2ZSB0d28gcHJpbWFyeSBsYXlvdXRzIGFuZCBtb3JlIGFkZGl0aW9uYWwsIHdoaWNoIGFyZSB1c2VkIG1vcmUgcmFyZWx5LiIsCiAgIm5hbWUiOiAiU3dpdGNoIFR3byBMYXlvdXRzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInN3aXRjaHR3b2xheW91dHNAcXRtYXguZGV2IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "notification-dismiss@kronosoul.xyz", "name": "Dismiss Notifications on Right Click", "pname": "dismiss-notifications-on-right-click", "description": "Simple extension that removes notification popups when they are right clicked.", "link": "https://extensions.gnome.org/extension/4048/dismiss-notifications-on-right-click/", "shell_version_map": {"38": {"version": "1", "sha256": "19pdz3lg1ybmgvpahfwzzhwk8fyhm1sr3wawddz5z66i22spcgjj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImFwcGxpY2F0aW9uLWlkIjogIm9yZy5rcm9ub3NvdWwubm90aWZpY2F0aW9uLWRpc21pc3MiLAogICJkZXNjcmlwdGlvbiI6ICJTaW1wbGUgZXh0ZW5zaW9uIHRoYXQgcmVtb3ZlcyBub3RpZmljYXRpb24gcG9wdXBzIHdoZW4gdGhleSBhcmUgcmlnaHQgY2xpY2tlZC4iLAogICJleHRlbnNpb24taWQiOiAiZ2R0b29scyIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzZXRzIiwKICAibmFtZSI6ICJEaXNtaXNzIE5vdGlmaWNhdGlvbnMgb24gUmlnaHQgQ2xpY2siLAogICJvcmlnaW5hbC1hdXRob3IiOiAiYWRtaW5Aa3Jvbm9zb3VsLnh5eiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4wIiwKICAgICIzLjEwIiwKICAgICIzLjEyIiwKICAgICIzLjE0IiwKICAgICIzLjE2IiwKICAgICIzLjE4IiwKICAgICIzLjIwIiwKICAgICIzLjIyIiwKICAgICIzLjI0IiwKICAgICIzLjI2IiwKICAgICIzLjI4IiwKICAgICIzLjMwIiwKICAgICIzLjM0IiwKICAgICIzLjMyIiwKICAgICIzLjM2IiwKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYmxpcGsvIiwKICAidXVpZCI6ICJub3RpZmljYXRpb24tZGlzbWlzc0Brcm9ub3NvdWwueHl6IiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "disable-gestures-2021@verycrazydog.gmail.com", "name": "Disable Gestures 2021", "pname": "disable-gestures-2021", "description": "Disable all GNOME built-in gestures. Useful for kiosks and touch screen apps.", "link": "https://extensions.gnome.org/extension/4049/disable-gestures-2021/", "shell_version_map": {"38": {"version": "4", "sha256": "116icgf3g079f8pibcb9jb1jc3y97hjf6fcqq1yb1bcsrx4wp0w5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "40": {"version": "4", "sha256": "116icgf3g079f8pibcb9jb1jc3y97hjf6fcqq1yb1bcsrx4wp0w5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "116icgf3g079f8pibcb9jb1jc3y97hjf6fcqq1yb1bcsrx4wp0w5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "116icgf3g079f8pibcb9jb1jc3y97hjf6fcqq1yb1bcsrx4wp0w5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc2FibGUgYWxsIEdOT01FIGJ1aWx0LWluIGdlc3R1cmVzLiBVc2VmdWwgZm9yIGtpb3NrcyBhbmQgdG91Y2ggc2NyZWVuIGFwcHMuIiwKICAibmFtZSI6ICJEaXNhYmxlIEdlc3R1cmVzIDIwMjEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9WZXJ5Q3JhenlEb2cvZ25vbWUtZGlzYWJsZS1nZXN0dXJlcyIsCiAgInV1aWQiOiAiZGlzYWJsZS1nZXN0dXJlcy0yMDIxQHZlcnljcmF6eWRvZy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"uuid": "pi-hole@fnxweb.com", "name": "pi-hole", "pname": "pi-hole", "description": "Status and basic controls of local Pi-Hole", "link": "https://extensions.gnome.org/extension/4051/pi-hole/", "shell_version_map": {"38": {"version": "1", "sha256": "0m19lv8zfhh8vqn0ln4a8g4g4hw9p6h98gb656vb0hblp5gsycfm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZueHdlYi9nbm9tZS1zaGVsbC1waS1ob2xlIiwKICAidXVpZCI6ICJwaS1ob2xlQGZueHdlYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "3", "sha256": "1brgdlxr5l4a5w821r0jy8r2k7h6n0cg344a4r00aj899i9wv8dp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm54d2ViL2dub21lLXNoZWxsLXBpLWhvbGUiLAogICJ1dWlkIjogInBpLWhvbGVAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "1brgdlxr5l4a5w821r0jy8r2k7h6n0cg344a4r00aj899i9wv8dp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN0YXR1cyBhbmQgYmFzaWMgY29udHJvbHMgb2YgbG9jYWwgUGktSG9sZSIsCiAgImdldHRleHQtZG9tYWluIjogImdub21lLXNoZWxsLWV4dGVuc2lvbi1mbnh3ZWItcGktaG9sZSIsCiAgIm5hbWUiOiAicGktaG9sZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5mbnh3ZWItcGktaG9sZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZm54d2ViL2dub21lLXNoZWxsLXBpLWhvbGUiLAogICJ1dWlkIjogInBpLWhvbGVAZm54d2ViLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "miniCal3@mtharpe", "name": "Minimalist Calendar 3", "pname": "minimalist-calendar-3", "description": "Remove event list and clock/calendar app buttons from the calendar window. This is just an updated version of v2 by breiq", "link": "https://extensions.gnome.org/extension/4052/minimalist-calendar-3/", "shell_version_map": {"38": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1vmqx1w9aymwb2a09b07fj18kxpki6blvzbvfamvk84b6x2qcxkn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBldmVudCBsaXN0IGFuZCBjbG9jay9jYWxlbmRhciBhcHAgYnV0dG9ucyBmcm9tIHRoZSBjYWxlbmRhciB3aW5kb3cuIFRoaXMgaXMganVzdCBhbiB1cGRhdGVkIHZlcnNpb24gb2YgdjIgYnkgYnJlaXEiLAogICJuYW1lIjogIk1pbmltYWxpc3QgQ2FsZW5kYXIgMyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXRoYXJwZS9nbm9tZS1taW5DYWwzLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAibWluaUNhbDNAbXRoYXJwZSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "spotify-artwork-fixer@wjt.me.uk", "name": "Spotify Artwork Fixer", "pname": "spotify-artwork-fixer", "description": "Fix Spotify artwork missing in media notification", "link": "https://extensions.gnome.org/extension/4055/spotify-artwork-fixer/", "shell_version_map": {"38": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "0jvvz9p576x95l6592icnswcbs2nhm0i01wpb8a45xy6iwb07nfn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkZpeCBTcG90aWZ5IGFydHdvcmsgbWlzc2luZyBpbiBtZWRpYSBub3RpZmljYXRpb24iLAogICJuYW1lIjogIlNwb3RpZnkgQXJ0d29yayBGaXhlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vc3R1YXJ0aGF5aHVyc3QvZ25vbWUtc2hlbGwtc3BvdGlmeS1hcnR3b3JrLWZpeGVyIiwKICAidXVpZCI6ICJzcG90aWZ5LWFydHdvcmstZml4ZXJAd2p0Lm1lLnVrIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "custom-vpn-toggler@giteduberger.fr", "name": "Custom VPN Toggler (and indicator)", "pname": "custom-vpn-toggler", "description": "See the status of a VPN (with its icon) and toggle VPN.", "link": "https://extensions.gnome.org/extension/4061/custom-vpn-toggler/", "shell_version_map": {"38": {"version": "8", "sha256": "18600grli2q1m1pms46900wvzy15i4a5f8m9byz1cyizsri17zpl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSBhbmQgdG9nZ2xlIFZQTi4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAibmFtZSI6ICJDdXN0b20gVlBOIFRvZ2dsZXIgKGFuZCBpbmRpY2F0b3IpIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogImZyLmdpdGVkdWJlcmdlci5jdXN0b20tdnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9YYXZpZXJCZXJnZXIvY3VzdG9tLXZwbi10b2dnbGVyIiwKICAidXVpZCI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAidmVyc2lvbiI6IDgKfQ=="}, "40": {"version": "10", "sha256": "1spmrz280klkgiipnk69182cjfijdhc9hpmkzy7592iryyzi0m02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSBhbmQgdG9nZ2xlIFZQTi4iLAogICJleHRlbnNpb24taWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyLmdpdGVkdWJlcmdlci5mciIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS12cG4tdG9nZ2xlciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20tdnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9YYXZpZXJCZXJnZXIvY3VzdG9tLXZwbi10b2dnbGVyIiwKICAidXVpZCI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "1spmrz280klkgiipnk69182cjfijdhc9hpmkzy7592iryyzi0m02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSBhbmQgdG9nZ2xlIFZQTi4iLAogICJleHRlbnNpb24taWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyLmdpdGVkdWJlcmdlci5mciIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS12cG4tdG9nZ2xlciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20tdnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9YYXZpZXJCZXJnZXIvY3VzdG9tLXZwbi10b2dnbGVyIiwKICAidXVpZCI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "1spmrz280klkgiipnk69182cjfijdhc9hpmkzy7592iryyzi0m02", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSBhbmQgdG9nZ2xlIFZQTi4iLAogICJleHRlbnNpb24taWQiOiAiY3VzdG9tLXZwbi10b2dnbGVyLmdpdGVkdWJlcmdlci5mciIsCiAgImdldHRleHQtZG9tYWluIjogImN1c3RvbS12cG4tdG9nZ2xlciIsCiAgIm5hbWUiOiAiQ3VzdG9tIFZQTiBUb2dnbGVyIChhbmQgaW5kaWNhdG9yKSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5jdXN0b20tdnBuLXRvZ2dsZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9YYXZpZXJCZXJnZXIvY3VzdG9tLXZwbi10b2dnbGVyIiwKICAidXVpZCI6ICJjdXN0b20tdnBuLXRvZ2dsZXJAZ2l0ZWR1YmVyZ2VyLmZyIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
-, {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Show a tray icon for Geary\n\nhttps://github.com/TaylanTatli/geary-tray-icon", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "1", "sha256": "11kv47pz5p69j10r23zf8ls3fmanldx7diwsy34fhyxqfxjcd614", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSB0cmF5IGljb24gZm9yIEdlYXJ5XG5cbmh0dHBzOi8vZ2l0aHViLmNvbS9UYXlsYW5UYXRsaS9nZWFyeS10cmF5LWljb24iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJnZWFyeS10cmF5LWljb25AdGF5bGFudGF0bGkuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "geary-tray-icon@taylantatli.github.com", "name": "Geary Tray Icon", "pname": "geary-tray-icon", "description": "Adds an icon to the panel to open mailbox and creating new mail.", "link": "https://extensions.gnome.org/extension/4073/geary-tray-icon/", "shell_version_map": {"38": {"version": "3", "sha256": "0nq7jf63yln8w4fivflwncdrdzagzky0ds9qzj43s1vhp046wbf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiB0byB0aGUgcGFuZWwgdG8gb3BlbiBtYWlsYm94IGFuZCBjcmVhdGluZyBuZXcgbWFpbC4iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RheWxhblRhdGxpL2dlYXJ5LXRyYXktaWNvbiIsCiAgInV1aWQiOiAiZ2VhcnktdHJheS1pY29uQHRheWxhbnRhdGxpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0nq7jf63yln8w4fivflwncdrdzagzky0ds9qzj43s1vhp046wbf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiB0byB0aGUgcGFuZWwgdG8gb3BlbiBtYWlsYm94IGFuZCBjcmVhdGluZyBuZXcgbWFpbC4iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RheWxhblRhdGxpL2dlYXJ5LXRyYXktaWNvbiIsCiAgInV1aWQiOiAiZ2VhcnktdHJheS1pY29uQHRheWxhbnRhdGxpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0nq7jf63yln8w4fivflwncdrdzagzky0ds9qzj43s1vhp046wbf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiB0byB0aGUgcGFuZWwgdG8gb3BlbiBtYWlsYm94IGFuZCBjcmVhdGluZyBuZXcgbWFpbC4iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RheWxhblRhdGxpL2dlYXJ5LXRyYXktaWNvbiIsCiAgInV1aWQiOiAiZ2VhcnktdHJheS1pY29uQHRheWxhbnRhdGxpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "0nq7jf63yln8w4fivflwncdrdzagzky0ds9qzj43s1vhp046wbf8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYW4gaWNvbiB0byB0aGUgcGFuZWwgdG8gb3BlbiBtYWlsYm94IGFuZCBjcmVhdGluZyBuZXcgbWFpbC4iLAogICJuYW1lIjogIkdlYXJ5IFRyYXkgSWNvbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1RheWxhblRhdGxpL2dlYXJ5LXRyYXktaWNvbiIsCiAgInV1aWQiOiAiZ2VhcnktdHJheS1pY29uQHRheWxhbnRhdGxpLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}}}
 , {"uuid": "shell-restarter@koolskateguy89.github.io", "name": "Shell Restarter", "pname": "shell-restarter", "description": "Tired of pressing Alt+F2+R?\nWell you can restart GNOME Shell with just the press of a button! (May or may not work on Wayland)", "link": "https://extensions.gnome.org/extension/4075/shell-restarter/", "shell_version_map": {"38": {"version": "5", "sha256": "19v3sxbsrk0cskq7cikwz6w95m8q2v56hyrkwj595c8m8i0x6i1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpcmVkIG9mIHByZXNzaW5nIEFsdCtGMitSP1xuV2VsbCB5b3UgY2FuIHJlc3RhcnQgR05PTUUgU2hlbGwgd2l0aCBqdXN0IHRoZSBwcmVzcyBvZiBhIGJ1dHRvbiEgKE1heSBvciBtYXkgbm90IHdvcmsgb24gV2F5bGFuZCkiLAogICJuYW1lIjogIlNoZWxsIFJlc3RhcnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaGVsbC1yZXN0YXJ0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29vbHNrYXRlZ3V5ODkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNoZWxsLXJlc3RhcnRlciIsCiAgInV1aWQiOiAic2hlbGwtcmVzdGFydGVyQGtvb2xza2F0ZWd1eTg5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "19v3sxbsrk0cskq7cikwz6w95m8q2v56hyrkwj595c8m8i0x6i1g", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRpcmVkIG9mIHByZXNzaW5nIEFsdCtGMitSP1xuV2VsbCB5b3UgY2FuIHJlc3RhcnQgR05PTUUgU2hlbGwgd2l0aCBqdXN0IHRoZSBwcmVzcyBvZiBhIGJ1dHRvbiEgKE1heSBvciBtYXkgbm90IHdvcmsgb24gV2F5bGFuZCkiLAogICJuYW1lIjogIlNoZWxsIFJlc3RhcnRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaGVsbC1yZXN0YXJ0ZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va29vbHNrYXRlZ3V5ODkvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXNoZWxsLXJlc3RhcnRlciIsCiAgInV1aWQiOiAic2hlbGwtcmVzdGFydGVyQGtvb2xza2F0ZWd1eTg5LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "iqair@wotmshuaisi_github", "name": "Iqair Gnome Extension", "pname": "iqair-gnome-extension", "description": "Gnome extension for tracking air quality in real-time. data provider: https://iqair.com/. to get an API token: https://www.iqair.com/us/dashboard/api", "link": "https://extensions.gnome.org/extension/4082/iqair-gnome-extension/", "shell_version_map": {"38": {"version": "6", "sha256": "150rn9gk6nzba30g38bjpgjyqr2a25cysg6fd6p1is92w8lknls4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzQiLAogICAgIjMuMzYiLAogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "17", "sha256": "07fv1z9rk9xjdrqrvs9cglmq5dbcnf3dgjfz7dnflabcrb9yqisv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "07fv1z9rk9xjdrqrvs9cglmq5dbcnf3dgjfz7dnflabcrb9yqisv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "07fv1z9rk9xjdrqrvs9cglmq5dbcnf3dgjfz7dnflabcrb9yqisv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkdub21lIGV4dGVuc2lvbiBmb3IgdHJhY2tpbmcgYWlyIHF1YWxpdHkgaW4gcmVhbC10aW1lLiBkYXRhIHByb3ZpZGVyOiBodHRwczovL2lxYWlyLmNvbS8uIHRvIGdldCBhbiBBUEkgdG9rZW46IGh0dHBzOi8vd3d3LmlxYWlyLmNvbS91cy9kYXNoYm9hcmQvYXBpIiwKICAibmFtZSI6ICJJcWFpciBHbm9tZSBFeHRlbnNpb24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS93b3Rtc2h1YWlzaS9pcWFpckdub21lRXh0ZW5zaW9uIiwKICAidXVpZCI6ICJpcWFpckB3b3Rtc2h1YWlzaV9naXRodWIiLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
 , {"uuid": "bigSur-StatusArea@ordissimo.com", "name": "Big Sur Status Area", "pname": "big-sur-status-area", "description": "Move the Power/Network/Volume/User/Date/Notifications menus to the status area. It is a fork of :https://github.com/Fausto-Korpsvart/Big-Sur-StatusArea", "link": "https://extensions.gnome.org/extension/4085/big-sur-status-area/", "shell_version_map": {"38": {"version": "25", "sha256": "0dg2fg98l0wxr4hgaz2lwb30p93asbm5693svm8kq51v3g3wpdw0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9PcmRpc3NpbW8vQmlnLVN1ci1TdGF0dXNBcmVhIiwKICAidXVpZCI6ICJiaWdTdXItU3RhdHVzQXJlYUBvcmRpc3NpbW8uY29tIiwKICAidmVyc2lvbiI6IDI1Cn0="}, "40": {"version": "44", "sha256": "0z8rpw3dfcfjxnk1p42vzpndb33yww6zmbrzc2dz2df5rfgp2lpv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "41": {"version": "44", "sha256": "0z8rpw3dfcfjxnk1p42vzpndb33yww6zmbrzc2dz2df5rfgp2lpv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL09yZGlzc2ltby9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJ1dWlkIjogImJpZ1N1ci1TdGF0dXNBcmVhQG9yZGlzc2ltby5jb20iLAogICJ2ZXJzaW9uIjogNDQKfQ=="}, "42": {"version": "45", "sha256": "0h1l7pc00x1blspf42rzzvrbvy8nw4cbnf4mk875pjpxmsfzzjnp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgdGhlIFBvd2VyL05ldHdvcmsvVm9sdW1lL1VzZXIvRGF0ZS9Ob3RpZmljYXRpb25zIG1lbnVzIHRvIHRoZSBzdGF0dXMgYXJlYS4gSXQgaXMgYSBmb3JrIG9mIDpodHRwczovL2dpdGh1Yi5jb20vRmF1c3RvLUtvcnBzdmFydC9CaWctU3VyLVN0YXR1c0FyZWEiLAogICJuYW1lIjogIkJpZyBTdXIgU3RhdHVzIEFyZWEiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vT3JkaXNzaW1vL0JpZy1TdXItU3RhdHVzQXJlYSIsCiAgInV1aWQiOiAiYmlnU3VyLVN0YXR1c0FyZWFAb3JkaXNzaW1vLmNvbSIsCiAgInZlcnNpb24iOiA0NQp9"}}}
@@ -523,7 +525,7 @@
 , {"uuid": "spindown-harddisk@johannes.bittner.gmail.com", "name": "Spin down hard disk", "pname": "spin-down-hard-disk", "description": "Spins down the hard disk (and keeps it spun down)", "link": "https://extensions.gnome.org/extension/4299/spin-down-hard-disk/", "shell_version_map": {"38": {"version": "2", "sha256": "0cfjjbfk7rbj9dsy56sq8ga6i5wkz5p3xqbykxv16xbhgh4i2n01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwaW5zIGRvd24gdGhlIGhhcmQgZGlzayAoYW5kIGtlZXBzIGl0IHNwdW4gZG93bikiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcGluZG93bi1oYXJkZGlzayIsCiAgIm5hbWUiOiAiU3BpbiBkb3duIGhhcmQgZGlzayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGluZG93bi1oYXJkZGlzayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3BpbmRvd24taGFyZGRpc2tAam9oYW5uZXMuYml0dG5lci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0cfjjbfk7rbj9dsy56sq8ga6i5wkz5p3xqbykxv16xbhgh4i2n01", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNwaW5zIGRvd24gdGhlIGhhcmQgZGlzayAoYW5kIGtlZXBzIGl0IHNwdW4gZG93bikiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzcGluZG93bi1oYXJkZGlzayIsCiAgIm5hbWUiOiAiU3BpbiBkb3duIGhhcmQgZGlzayIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zcGluZG93bi1oYXJkZGlzayIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAic3BpbmRvd24taGFyZGRpc2tAam9oYW5uZXMuYml0dG5lci5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "user-pics@comfy", "name": "User Pics", "pname": "user-pics", "description": "lucasalveslm's User Account Image for gnome-shell 3.38", "link": "https://extensions.gnome.org/extension/4301/user-pics/", "shell_version_map": {"38": {"version": "3", "sha256": "1rv6x551dm3hynfkm291b4c552j9d6q89ixmrq0x97xgw75n14fx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImx1Y2FzYWx2ZXNsbSdzIFVzZXIgQWNjb3VudCBJbWFnZSBmb3IgZ25vbWUtc2hlbGwgMy4zOCIsCiAgIm5hbWUiOiAiVXNlciBQaWNzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInVzZXItcGljc0Bjb21meSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "screendarker@yingshaoxo.github.com", "name": "Screen Darker", "pname": "screen-darker", "description": "Help you do a switch between a darker screen and brighter screen by one click.", "link": "https://extensions.gnome.org/extension/4304/screen-darker/", "shell_version_map": {"38": {"version": "1", "sha256": "1zlncw0y5crq6n0slhq1f9npzvkkcyh0187z88mzycr55nl4rsx8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhlbHAgeW91IGRvIGEgc3dpdGNoIGJldHdlZW4gYSBkYXJrZXIgc2NyZWVuIGFuZCBicmlnaHRlciBzY3JlZW4gYnkgb25lIGNsaWNrLiIsCiAgIm5hbWUiOiAiU2NyZWVuIERhcmtlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3lpbmdzaGFveG8vZ25vbWUtc2hlbGwtc2NyZWVuLWRhcmtlciIsCiAgInV1aWQiOiAic2NyZWVuZGFya2VyQHlpbmdzaGFveG8uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "network-stats@gnome.noroadsleft.xyz", "name": "Network Stats", "pname": "network-stats", "description": "Displays internet upload speed, download speed, bandwidth, data usage. \n\n visit github page for instructions, suggestions and feature requests. \n\n ERROR while updating extension ? restart your system or reload gnome shell. Alt + F2  then  r + Enter", "link": "https://extensions.gnome.org/extension/4308/network-stats/", "shell_version_map": {"38": {"version": "13", "sha256": "1h1gpgcxqx8iilk4dm9708f3p94qv7adz42pgg08njhh9fabapxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9yb2Fkc2xlZnQwMDAvZ25vbWUtbmV0d29yay1zdGF0cyIsCiAgInV1aWQiOiAibmV0d29yay1zdGF0c0Bnbm9tZS5ub3JvYWRzbGVmdC54eXoiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "40": {"version": "13", "sha256": "1h1gpgcxqx8iilk4dm9708f3p94qv7adz42pgg08njhh9fabapxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9yb2Fkc2xlZnQwMDAvZ25vbWUtbmV0d29yay1zdGF0cyIsCiAgInV1aWQiOiAibmV0d29yay1zdGF0c0Bnbm9tZS5ub3JvYWRzbGVmdC54eXoiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}, "41": {"version": "13", "sha256": "1h1gpgcxqx8iilk4dm9708f3p94qv7adz42pgg08njhh9fabapxa", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9yb2Fkc2xlZnQwMDAvZ25vbWUtbmV0d29yay1zdGF0cyIsCiAgInV1aWQiOiAibmV0d29yay1zdGF0c0Bnbm9tZS5ub3JvYWRzbGVmdC54eXoiLAogICJ2ZXJzaW9uIjogMTMKfQ=="}}}
+, {"uuid": "network-stats@gnome.noroadsleft.xyz", "name": "Network Stats", "pname": "network-stats", "description": "Displays internet upload speed, download speed, bandwidth, data usage. \n\n visit github page for instructions, suggestions and feature requests. \n\n ERROR while updating extension ? restart your system or reload gnome shell. Alt + F2  then  r + Enter", "link": "https://extensions.gnome.org/extension/4308/network-stats/", "shell_version_map": {"38": {"version": "14", "sha256": "13kc4ga2wvka3p0kwyy35wjlcnb2zr19xqhkbisn0n36y59cd2f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDE0Cn0="}, "40": {"version": "14", "sha256": "13kc4ga2wvka3p0kwyy35wjlcnb2zr19xqhkbisn0n36y59cd2f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDE0Cn0="}, "41": {"version": "14", "sha256": "13kc4ga2wvka3p0kwyy35wjlcnb2zr19xqhkbisn0n36y59cd2f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDE0Cn0="}, "42": {"version": "14", "sha256": "13kc4ga2wvka3p0kwyy35wjlcnb2zr19xqhkbisn0n36y59cd2f9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIGludGVybmV0IHVwbG9hZCBzcGVlZCwgZG93bmxvYWQgc3BlZWQsIGJhbmR3aWR0aCwgZGF0YSB1c2FnZS4gXG5cbiB2aXNpdCBnaXRodWIgcGFnZSBmb3IgaW5zdHJ1Y3Rpb25zLCBzdWdnZXN0aW9ucyBhbmQgZmVhdHVyZSByZXF1ZXN0cy4gXG5cbiBFUlJPUiB3aGlsZSB1cGRhdGluZyBleHRlbnNpb24gPyByZXN0YXJ0IHlvdXIgc3lzdGVtIG9yIHJlbG9hZCBnbm9tZSBzaGVsbC4gQWx0ICsgRjIgIHRoZW4gIHIgKyBFbnRlciIsCiAgImdldHRleHQtZG9tYWluIjogIm5ldHdvcmstc3RhdHMiLAogICJuYW1lIjogIk5ldHdvcmsgU3RhdHMiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubmV0d29yay1zdGF0cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4yNCIsCiAgICAiMy4yNiIsCiAgICAiMy4yOCIsCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL25vcm9hZHNsZWZ0MDAwL2dub21lLW5ldHdvcmstc3RhdHMiLAogICJ1dWlkIjogIm5ldHdvcmstc3RhdHNAZ25vbWUubm9yb2Fkc2xlZnQueHl6IiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "screen-lock@garciabaameiro.com", "name": "Screen lock", "pname": "extension-list", "description": "Simple gnome shell extension to use xscreensaver in top panel", "link": "https://extensions.gnome.org/extension/4311/extension-list/", "shell_version_map": {"40": {"version": "1", "sha256": "1jas7pcn3a28fnfs3azrbiqf22gx337js6if8v8vsb15994pbak6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBnbm9tZSBzaGVsbCBleHRlbnNpb24gdG8gdXNlIHhzY3JlZW5zYXZlciBpbiB0b3AgcGFuZWwiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJzY3JlZW4tbG9jayIsCiAgIm5hbWUiOiAiU2NyZWVuIGxvY2siLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2NyZWVuLWxvY2siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vU2F3eWVyMTMvc2NyZWVuLWxvY2siLAogICJ1dWlkIjogInNjcmVlbi1sb2NrQGdhcmNpYWJhYW1laXJvLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "force-show-osk@bruh.ltd", "name": "Force Show OSK", "pname": "force-show-osk", "description": "Show the on-screen keyboard regardless of whether the touch mode is enabled", "link": "https://extensions.gnome.org/extension/4316/force-show-osk/", "shell_version_map": {"40": {"version": "4", "sha256": "1lgqiph6mf01w689vnjw7sgp54h2m6pnvccy625nz924mf8xql6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9raXJieWtldmluc29uL2ZvcmNlLXNob3ctb3NrIiwKICAidXVpZCI6ICJmb3JjZS1zaG93LW9za0BicnVoLmx0ZCIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1lgqiph6mf01w689vnjw7sgp54h2m6pnvccy625nz924mf8xql6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9raXJieWtldmluc29uL2ZvcmNlLXNob3ctb3NrIiwKICAidXVpZCI6ICJmb3JjZS1zaG93LW9za0BicnVoLmx0ZCIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1lgqiph6mf01w689vnjw7sgp54h2m6pnvccy625nz924mf8xql6b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgdGhlIG9uLXNjcmVlbiBrZXlib2FyZCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHRvdWNoIG1vZGUgaXMgZW5hYmxlZCIsCiAgIm5hbWUiOiAiRm9yY2UgU2hvdyBPU0siLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9raXJieWtldmluc29uL2ZvcmNlLXNob3ctb3NrIiwKICAidXVpZCI6ICJmb3JjZS1zaG93LW9za0BicnVoLmx0ZCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "asusctl-gex@asus-linux.org", "name": "asusctl-gex", "pname": "asusctl-gex", "description": "asusctl-gex is a frontend for some functionalities of asusctl and supergfxctl that were born inside the asus-linux.org community.\n\nasusctl is not required\nsupergfxctl is required if you have a dual GPU laptop and want to switch between various GPU modes. It is tested on a variaty of laptops including Intel / Nvidia, AMD / Nvidia, Intel / AMD and AMD / AMD GPU combinations.\n\nTo learn more about it, please have a look at:\nhttps://gitlab.com/asus-linux/asusctl\nhttps://gitlab.com/asus-linux/supergfxctl\nhttps://gitlab.com/asus-linux/asusctl-gex\n\nhttps://asus-linux.org/", "link": "https://extensions.gnome.org/extension/4320/asusctl-gex/", "shell_version_map": {"40": {"version": "9", "sha256": "0ivnw4bw494l5zi82yap54zd035kvr4pg6rfkz7ivwccf3y0gfzg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFzdXNjdGwtZ2V4IGlzIGEgZnJvbnRlbmQgZm9yIHNvbWUgZnVuY3Rpb25hbGl0aWVzIG9mIGFzdXNjdGwgYW5kIHN1cGVyZ2Z4Y3RsIHRoYXQgd2VyZSBib3JuIGluc2lkZSB0aGUgYXN1cy1saW51eC5vcmcgY29tbXVuaXR5LlxuXG5hc3VzY3RsIGlzIG5vdCByZXF1aXJlZFxuc3VwZXJnZnhjdGwgaXMgcmVxdWlyZWQgaWYgeW91IGhhdmUgYSBkdWFsIEdQVSBsYXB0b3AgYW5kIHdhbnQgdG8gc3dpdGNoIGJldHdlZW4gdmFyaW91cyBHUFUgbW9kZXMuIEl0IGlzIHRlc3RlZCBvbiBhIHZhcmlhdHkgb2YgbGFwdG9wcyBpbmNsdWRpbmcgSW50ZWwgLyBOdmlkaWEsIEFNRCAvIE52aWRpYSwgSW50ZWwgLyBBTUQgYW5kIEFNRCAvIEFNRCBHUFUgY29tYmluYXRpb25zLlxuXG5UbyBsZWFybiBtb3JlIGFib3V0IGl0LCBwbGVhc2UgaGF2ZSBhIGxvb2sgYXQ6XG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9hc3VzY3RsXG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9zdXBlcmdmeGN0bFxuaHR0cHM6Ly9naXRsYWIuY29tL2FzdXMtbGludXgvYXN1c2N0bC1nZXhcblxuaHR0cHM6Ly9hc3VzLWxpbnV4Lm9yZy8iLAogICJuYW1lIjogImFzdXNjdGwtZ2V4IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzdXNjdGwtZ2V4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFzdXNjdGwtZ2V4QGFzdXMtbGludXgub3JnIiwKICAidXVpZC1kZXYiOiAiYXN1c2N0bC1nZXgtZGV2QGFzdXMtbGludXgub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "41": {"version": "9", "sha256": "0ivnw4bw494l5zi82yap54zd035kvr4pg6rfkz7ivwccf3y0gfzg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFzdXNjdGwtZ2V4IGlzIGEgZnJvbnRlbmQgZm9yIHNvbWUgZnVuY3Rpb25hbGl0aWVzIG9mIGFzdXNjdGwgYW5kIHN1cGVyZ2Z4Y3RsIHRoYXQgd2VyZSBib3JuIGluc2lkZSB0aGUgYXN1cy1saW51eC5vcmcgY29tbXVuaXR5LlxuXG5hc3VzY3RsIGlzIG5vdCByZXF1aXJlZFxuc3VwZXJnZnhjdGwgaXMgcmVxdWlyZWQgaWYgeW91IGhhdmUgYSBkdWFsIEdQVSBsYXB0b3AgYW5kIHdhbnQgdG8gc3dpdGNoIGJldHdlZW4gdmFyaW91cyBHUFUgbW9kZXMuIEl0IGlzIHRlc3RlZCBvbiBhIHZhcmlhdHkgb2YgbGFwdG9wcyBpbmNsdWRpbmcgSW50ZWwgLyBOdmlkaWEsIEFNRCAvIE52aWRpYSwgSW50ZWwgLyBBTUQgYW5kIEFNRCAvIEFNRCBHUFUgY29tYmluYXRpb25zLlxuXG5UbyBsZWFybiBtb3JlIGFib3V0IGl0LCBwbGVhc2UgaGF2ZSBhIGxvb2sgYXQ6XG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9hc3VzY3RsXG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9zdXBlcmdmeGN0bFxuaHR0cHM6Ly9naXRsYWIuY29tL2FzdXMtbGludXgvYXN1c2N0bC1nZXhcblxuaHR0cHM6Ly9hc3VzLWxpbnV4Lm9yZy8iLAogICJuYW1lIjogImFzdXNjdGwtZ2V4IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzdXNjdGwtZ2V4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFzdXNjdGwtZ2V4QGFzdXMtbGludXgub3JnIiwKICAidXVpZC1kZXYiOiAiYXN1c2N0bC1nZXgtZGV2QGFzdXMtbGludXgub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="}, "42": {"version": "9", "sha256": "0ivnw4bw494l5zi82yap54zd035kvr4pg6rfkz7ivwccf3y0gfzg", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImFzdXNjdGwtZ2V4IGlzIGEgZnJvbnRlbmQgZm9yIHNvbWUgZnVuY3Rpb25hbGl0aWVzIG9mIGFzdXNjdGwgYW5kIHN1cGVyZ2Z4Y3RsIHRoYXQgd2VyZSBib3JuIGluc2lkZSB0aGUgYXN1cy1saW51eC5vcmcgY29tbXVuaXR5LlxuXG5hc3VzY3RsIGlzIG5vdCByZXF1aXJlZFxuc3VwZXJnZnhjdGwgaXMgcmVxdWlyZWQgaWYgeW91IGhhdmUgYSBkdWFsIEdQVSBsYXB0b3AgYW5kIHdhbnQgdG8gc3dpdGNoIGJldHdlZW4gdmFyaW91cyBHUFUgbW9kZXMuIEl0IGlzIHRlc3RlZCBvbiBhIHZhcmlhdHkgb2YgbGFwdG9wcyBpbmNsdWRpbmcgSW50ZWwgLyBOdmlkaWEsIEFNRCAvIE52aWRpYSwgSW50ZWwgLyBBTUQgYW5kIEFNRCAvIEFNRCBHUFUgY29tYmluYXRpb25zLlxuXG5UbyBsZWFybiBtb3JlIGFib3V0IGl0LCBwbGVhc2UgaGF2ZSBhIGxvb2sgYXQ6XG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9hc3VzY3RsXG5odHRwczovL2dpdGxhYi5jb20vYXN1cy1saW51eC9zdXBlcmdmeGN0bFxuaHR0cHM6Ly9naXRsYWIuY29tL2FzdXMtbGludXgvYXN1c2N0bC1nZXhcblxuaHR0cHM6Ly9hc3VzLWxpbnV4Lm9yZy8iLAogICJuYW1lIjogImFzdXNjdGwtZ2V4IiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFzdXNjdGwtZ2V4IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFzdXNjdGwtZ2V4QGFzdXMtbGludXgub3JnIiwKICAidXVpZC1kZXYiOiAiYXN1c2N0bC1nZXgtZGV2QGFzdXMtbGludXgub3JnIiwKICAidmVyc2lvbiI6IDkKfQ=="}}}
@@ -556,7 +558,7 @@
 , {"uuid": "replaceActivitiesText@pratap.fastmail.fm", "name": "Replace Activities Text", "pname": "replace-activities-text", "description": "A Simple Extension to Change 'Activities' Label with Logo and Text.\nYou can Keep Either\n1. Logo or\n2. Text or\n3. Both or\n4. None at all", "link": "https://extensions.gnome.org/extension/4405/replace-activities-text/", "shell_version_map": {"38": {"version": "8", "sha256": "04adx4043d3ni510h44pi3gr0k15a4n0zwr4k5fxisr4yjl1510w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1BSQVRBUC1LVU1BUi9BY3Rpdml0aWVzVGV4dCIsCiAgInV1aWQiOiAicmVwbGFjZUFjdGl2aXRpZXNUZXh0QHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "11", "sha256": "0gvmi2np73rq7hvxvzyy4rzn4vsb3ylr67k6r48rmr0axg2nkicx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0gvmi2np73rq7hvxvzyy4rzn4vsb3ylr67k6r48rmr0axg2nkicx", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9QUkFUQVAtS1VNQVIvQWN0aXZpdGllc1RleHQiLAogICJ1dWlkIjogInJlcGxhY2VBY3Rpdml0aWVzVGV4dEBwcmF0YXAuZmFzdG1haWwuZm0iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "12", "sha256": "1k5l5imdxykwa2drqj6vl55d11hiwld0m1j61vrklwyil9z9mkam", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgU2ltcGxlIEV4dGVuc2lvbiB0byBDaGFuZ2UgJ0FjdGl2aXRpZXMnIExhYmVsIHdpdGggTG9nbyBhbmQgVGV4dC5cbllvdSBjYW4gS2VlcCBFaXRoZXJcbjEuIExvZ28gb3JcbjIuIFRleHQgb3JcbjMuIEJvdGggb3JcbjQuIE5vbmUgYXQgYWxsIiwKICAibmFtZSI6ICJSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZXBsYWNlQWN0aXZpdGllc1RleHQiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL0FjdGl2aXRpZXNUZXh0IiwKICAidXVpZCI6ICJyZXBsYWNlQWN0aXZpdGllc1RleHRAcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDEyCn0="}}}
 , {"uuid": "appMenuIcon@pratap.fastmail.fm", "name": "Colored Application Menu Icon", "pname": "app-menu-icon-remove-symbolic", "description": "Remove Symbolic Icons and Saturation Effect for App Menu Icon", "link": "https://extensions.gnome.org/extension/4408/app-menu-icon-remove-symbolic/", "shell_version_map": {"38": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "17rsdh004l1mb2k90w3qp72rcv20q0dr3pmi20whrb420yi5bq4i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlbW92ZSBTeW1ib2xpYyBJY29ucyBhbmQgU2F0dXJhdGlvbiBFZmZlY3QgZm9yIEFwcCBNZW51IEljb24iLAogICJuYW1lIjogIkNvbG9yZWQgQXBwbGljYXRpb24gTWVudSBJY29uIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImFwcE1lbnVJY29uQHByYXRhcC5mYXN0bWFpbC5mbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "gnome-trash@b00f.github.io", "name": "Gnome Trash", "pname": "gnome-trash", "description": "A gnome shell extension to manage your home trash. You can manage trash items from the panel and open or empty the trash.", "link": "https://extensions.gnome.org/extension/4410/gnome-trash/", "shell_version_map": {"38": {"version": "3", "sha256": "03pyala1i21izg5rl4qqh5bxk36fp8d52bs9ggrik2kav420xhhk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "8", "sha256": "0cz2s8mmmvskhia1zr5xyv42sgh8ymz0ylkhcb4qqvpsniv3ybxm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "0cz2s8mmmvskhia1zr5xyv42sgh8ymz0ylkhcb4qqvpsniv3ybxm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "0cz2s8mmmvskhia1zr5xyv42sgh8ymz0ylkhcb4qqvpsniv3ybxm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZ25vbWUgc2hlbGwgZXh0ZW5zaW9uIHRvIG1hbmFnZSB5b3VyIGhvbWUgdHJhc2guIFlvdSBjYW4gbWFuYWdlIHRyYXNoIGl0ZW1zIGZyb20gdGhlIHBhbmVsIGFuZCBvcGVuIG9yIGVtcHR5IHRoZSB0cmFzaC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJnbm9tZS10cmFzaCIsCiAgIm5hbWUiOiAiR25vbWUgVHJhc2giLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9iMDBmL2dub21lLXRyYXNoIiwKICAidXVpZCI6ICJnbm9tZS10cmFzaEBiMDBmLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA4Cn0="}}}
-, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement for the Alt/Super+Tab window/app switchers that offers 'type to search' mode, various filtering and sorting options, navigation between workspaces and monitors, configurable hotkeys for navigation and control over windows and an app launcher.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used as a mouse controlled 'dock'.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of the currently focused application. You can set keyboard shortcuts for all the switchers using the Gnome Settings app.\n\nFollow the link below for more information and bug reports.\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": "14", "sha256": "0z8aj56l1iqf6pzp3nk2165zha6fc9c25f2sblppkiv8w89rnpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgbmF2aWdhdGlvbiBiZXR3ZWVuIHdvcmtzcGFjZXMgYW5kIG1vbml0b3JzLCBjb25maWd1cmFibGUgaG90a2V5cyBmb3IgbmF2aWdhdGlvbiBhbmQgY29udHJvbCBvdmVyIHdpbmRvd3MgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "40": {"version": "14", "sha256": "0z8aj56l1iqf6pzp3nk2165zha6fc9c25f2sblppkiv8w89rnpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgbmF2aWdhdGlvbiBiZXR3ZWVuIHdvcmtzcGFjZXMgYW5kIG1vbml0b3JzLCBjb25maWd1cmFibGUgaG90a2V5cyBmb3IgbmF2aWdhdGlvbiBhbmQgY29udHJvbCBvdmVyIHdpbmRvd3MgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "41": {"version": "14", "sha256": "0z8aj56l1iqf6pzp3nk2165zha6fc9c25f2sblppkiv8w89rnpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgbmF2aWdhdGlvbiBiZXR3ZWVuIHdvcmtzcGFjZXMgYW5kIG1vbml0b3JzLCBjb25maWd1cmFibGUgaG90a2V5cyBmb3IgbmF2aWdhdGlvbiBhbmQgY29udHJvbCBvdmVyIHdpbmRvd3MgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}, "42": {"version": "14", "sha256": "0z8aj56l1iqf6pzp3nk2165zha6fc9c25f2sblppkiv8w89rnpah", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgbmF2aWdhdGlvbiBiZXR3ZWVuIHdvcmtzcGFjZXMgYW5kIG1vbml0b3JzLCBjb25maWd1cmFibGUgaG90a2V5cyBmb3IgbmF2aWdhdGlvbiBhbmQgY29udHJvbCBvdmVyIHdpbmRvd3MgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyB1c2luZyB0aGUgR25vbWUgU2V0dGluZ3MgYXBwLlxuXG5Gb2xsb3cgdGhlIGxpbmsgYmVsb3cgZm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGJ1ZyByZXBvcnRzLlxuXG5LZXl3b3JkczogYWx0dGFiLCBzZWFyY2gsIGZpbmQsIHdpbmRvdyBzZWFyY2gsIHBvcHVwIGRlbGF5LCBhcHBsaWNhdGlvbnMsIGFwcHMsIGRvY2ssIG1vbml0b3IsIHRodW1ibmFpbCwgcHJldmlldywgbW92ZSB3aW5kb3dzLCBsYXVuY2ggYXBwLCBzd2l0Y2gsIFZJTS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgIm5hbWUiOiAiQUFUV1MgLSBBZHZhbmNlZCBBbHQtVGFiIFdpbmRvdyBTd2l0Y2hlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5hZHZhbmNlZC1hbHQtdGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvYWR2YW5jZWQtYWx0dGFiLXdpbmRvdy1zd2l0Y2hlciIsCiAgInV1aWQiOiAiYWR2YW5jZWQtYWx0LXRhYkBHLWRILmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMTQKfQ=="}}}
+, {"uuid": "advanced-alt-tab@G-dH.github.com", "name": "AATWS - Advanced Alt-Tab Window Switcher", "pname": "advanced-alttab-window-switcher", "description": "Highly customizable replacement for the Alt/Super+Tab window/app switchers that offers '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.\nAATWS is compatible with Custom Hot Corners - Extended extension, allows to configure any mouse button and scroll wheel and can be used as a mouse controlled 'dock'.\n\nNote that GNOME has 3 built-in window switcher popups and this extension replaces all of them. The first one is grouping windows by applications and is used as default in vanilla GNOME distributions. The second one offers window list and the third one windows of the currently focused application. You can set keyboard shortcuts for all the switchers in the Gnome Settings.\n\nFollow the link below for more information and bug reports.\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": "15", "sha256": "0v2ly82j3xmvmcjlw7c6wa1g7df72f7k76brnkr78wwv2mc2axvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "40": {"version": "15", "sha256": "0v2ly82j3xmvmcjlw7c6wa1g7df72f7k76brnkr78wwv2mc2axvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "41": {"version": "15", "sha256": "0v2ly82j3xmvmcjlw7c6wa1g7df72f7k76brnkr78wwv2mc2axvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}, "42": {"version": "15", "sha256": "0v2ly82j3xmvmcjlw7c6wa1g7df72f7k76brnkr78wwv2mc2axvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZ2hseSBjdXN0b21pemFibGUgcmVwbGFjZW1lbnQgZm9yIHRoZSBBbHQvU3VwZXIrVGFiIHdpbmRvdy9hcHAgc3dpdGNoZXJzIHRoYXQgb2ZmZXJzICd0eXBlIHRvIHNlYXJjaCcgbW9kZSwgdmFyaW91cyBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgb3B0aW9ucywgd29ya3NwYWNlIGFuZCBtb25pdG9yIG5hdmlnYXRpb24sIGNvbmZpZ3VyYWJsZSBob3RrZXlzIGZvciBuYXZpZ2F0aW9uIGFuZCB3aW5kb3cvYXBwIGNvbnRyb2wgYW5kIGFuIGFwcCBsYXVuY2hlci5cbkFBVFdTIGlzIGNvbXBhdGlibGUgd2l0aCBDdXN0b20gSG90IENvcm5lcnMgLSBFeHRlbmRlZCBleHRlbnNpb24sIGFsbG93cyB0byBjb25maWd1cmUgYW55IG1vdXNlIGJ1dHRvbiBhbmQgc2Nyb2xsIHdoZWVsIGFuZCBjYW4gYmUgdXNlZCBhcyBhIG1vdXNlIGNvbnRyb2xsZWQgJ2RvY2snLlxuXG5Ob3RlIHRoYXQgR05PTUUgaGFzIDMgYnVpbHQtaW4gd2luZG93IHN3aXRjaGVyIHBvcHVwcyBhbmQgdGhpcyBleHRlbnNpb24gcmVwbGFjZXMgYWxsIG9mIHRoZW0uIFRoZSBmaXJzdCBvbmUgaXMgZ3JvdXBpbmcgd2luZG93cyBieSBhcHBsaWNhdGlvbnMgYW5kIGlzIHVzZWQgYXMgZGVmYXVsdCBpbiB2YW5pbGxhIEdOT01FIGRpc3RyaWJ1dGlvbnMuIFRoZSBzZWNvbmQgb25lIG9mZmVycyB3aW5kb3cgbGlzdCBhbmQgdGhlIHRoaXJkIG9uZSB3aW5kb3dzIG9mIHRoZSBjdXJyZW50bHkgZm9jdXNlZCBhcHBsaWNhdGlvbi4gWW91IGNhbiBzZXQga2V5Ym9hcmQgc2hvcnRjdXRzIGZvciBhbGwgdGhlIHN3aXRjaGVycyBpbiB0aGUgR25vbWUgU2V0dGluZ3MuXG5cbkZvbGxvdyB0aGUgbGluayBiZWxvdyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgYnVnIHJlcG9ydHMuXG5cbktleXdvcmRzOiBhbHR0YWIsIHNlYXJjaCwgZmluZCwgd2luZG93IHNlYXJjaCwgcG9wdXAgZGVsYXksIGFwcGxpY2F0aW9ucywgYXBwcywgZG9jaywgbW9uaXRvciwgdGh1bWJuYWlsLCBwcmV2aWV3LCBtb3ZlIHdpbmRvd3MsIGxhdW5jaCBhcHAsIHN3aXRjaCwgVklNLiIsCiAgImdldHRleHQtZG9tYWluIjogImFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAibmFtZSI6ICJBQVRXUyAtIEFkdmFuY2VkIEFsdC1UYWIgV2luZG93IFN3aXRjaGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFkdmFuY2VkLWFsdC10YWItd2luZG93LXN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vRy1kSC9hZHZhbmNlZC1hbHR0YWItd2luZG93LXN3aXRjaGVyIiwKICAidXVpZCI6ICJhZHZhbmNlZC1hbHQtdGFiQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxNQp9"}}}
 , {"uuid": "improvedosk@nick-shmyrev.dev", "name": "Improved OSK", "pname": "improved-osk", "description": "Makes Gnome's onscreen keyboard more useable with e.g. more keys.\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": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "40": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "41": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}, "42": {"version": "8", "sha256": "01n9gllpxvscg56awq8pmyb538mki5zddqyz7cf2c4j2s8glmaz8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdub21lJ3Mgb25zY3JlZW4ga2V5Ym9hcmQgbW9yZSB1c2VhYmxlIHdpdGggZS5nLiBtb3JlIGtleXMuXG5UaGlzIGV4dGVuc2lvbiBpcyBhIGZvcmsgb2YgaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMzMzMC9pbXByb3ZlZC1vbnNjcmVlbi1rZXlib2FyZC8gYnkgU2ViYXN0aWFuTHVlYmtlLiIsCiAgIm5hbWUiOiAiSW1wcm92ZWQgT1NLIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmljay1zaG15cmV2L2ltcHJvdmVkLW9zay1nbm9tZS1leHQiLAogICJ1dWlkIjogImltcHJvdmVkb3NrQG5pY2stc2hteXJldi5kZXYiLAogICJ2ZXJzaW9uIjogOAp9"}}}
 , {"uuid": "fedora-update@pepe386", "name": "Fedora Linux Updates Indicator", "pname": "fedora-linux-updates-indicator", "description": "Update indicator for Fedora Linux and GNOME Shell.", "link": "https://extensions.gnome.org/extension/4415/fedora-linux-updates-indicator/", "shell_version_map": {"40": {"version": "5", "sha256": "1j6q1mgl75mjbr53z88vj2ablnrp4nx0q2a416wdgbiiwdazidbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZXBlMzg2L2ZlZG9yYS11cGRhdGUiLAogICJ1dWlkIjogImZlZG9yYS11cGRhdGVAcGVwZTM4NiIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "1j6q1mgl75mjbr53z88vj2ablnrp4nx0q2a416wdgbiiwdazidbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZXBlMzg2L2ZlZG9yYS11cGRhdGUiLAogICJ1dWlkIjogImZlZG9yYS11cGRhdGVAcGVwZTM4NiIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "1j6q1mgl75mjbr53z88vj2ablnrp4nx0q2a416wdgbiiwdazidbw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVwZGF0ZSBpbmRpY2F0b3IgZm9yIEZlZG9yYSBMaW51eCBhbmQgR05PTUUgU2hlbGwuIiwKICAibmFtZSI6ICJGZWRvcmEgTGludXggVXBkYXRlcyBJbmRpY2F0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wZXBlMzg2L2ZlZG9yYS11cGRhdGUiLAogICJ1dWlkIjogImZlZG9yYS11cGRhdGVAcGVwZTM4NiIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "readingstrip@lupantano.gihthub", "name": "Reading Strip", "pname": "reading-strip", "description": "It is a extension for Gnome-Shell with an equivalent function to a reading guide on the computer, that's really useful for people with dyslexia.", "link": "https://extensions.gnome.org/extension/4419/reading-strip/", "shell_version_map": {"40": {"version": "13", "sha256": "0i9sqjhn1im0b804jby2af8xs3xc0znwxwm21r6m2i4aykixk9ln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1cGFudGFuby9yZWFkaW5nc3RyaXAiLAogICJ1dWlkIjogInJlYWRpbmdzdHJpcEBsdXBhbnRhbm8uZ2lodGh1YiIsCiAgInZlcnNpb24iOiAxMwp9"}, "41": {"version": "13", "sha256": "0i9sqjhn1im0b804jby2af8xs3xc0znwxwm21r6m2i4aykixk9ln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkl0IGlzIGEgZXh0ZW5zaW9uIGZvciBHbm9tZS1TaGVsbCB3aXRoIGFuIGVxdWl2YWxlbnQgZnVuY3Rpb24gdG8gYSByZWFkaW5nIGd1aWRlIG9uIHRoZSBjb21wdXRlciwgdGhhdCdzIHJlYWxseSB1c2VmdWwgZm9yIHBlb3BsZSB3aXRoIGR5c2xleGlhLiIsCiAgIm5hbWUiOiAiUmVhZGluZyBTdHJpcCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5yZWFkaW5nc3RyaXAiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x1cGFudGFuby9yZWFkaW5nc3RyaXAiLAogICJ1dWlkIjogInJlYWRpbmdzdHJpcEBsdXBhbnRhbm8uZ2lodGh1YiIsCiAgInZlcnNpb24iOiAxMwp9"}}}
@@ -602,8 +604,8 @@
 , {"uuid": "pcalc@mgeck64.github.com", "name": "Panel Calculator", "pname": "panel-calculator", "description": "A text-based calculator that lives on the gnome panel, out of the way of your work.", "link": "https://extensions.gnome.org/extension/4567/panel-calculator/", "shell_version_map": {"38": {"version": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "0rr98m2l20165mf8dcc2gwizqmksczkpbk8sqwhsppkvx6racz1m", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgdGV4dC1iYXNlZCBjYWxjdWxhdG9yIHRoYXQgbGl2ZXMgb24gdGhlIGdub21lIHBhbmVsLCBvdXQgb2YgdGhlIHdheSBvZiB5b3VyIHdvcmsuIiwKICAibmFtZSI6ICJQYW5lbCBDYWxjdWxhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21nZWNrNjQvcGNhbGMtbWdlY2s2NC5naXRodWIuY29tIiwKICAidXVpZCI6ICJwY2FsY0BtZ2VjazY0LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "zfs-status-monitor@chris.hubick.com", "name": "ZFS Status Monitor", "pname": "zfs-status-monitor", "description": "Display status of ZFS filesystem pools currently present on the system, updating every 60 seconds.", "link": "https://extensions.gnome.org/extension/4568/zfs-status-monitor/", "shell_version_map": {"40": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "07g6b3y2dpvb41qd0j5rkakxpvyfgwnwcqzfr00h6zfvrx32nnp0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXkgc3RhdHVzIG9mIFpGUyBmaWxlc3lzdGVtIHBvb2xzIGN1cnJlbnRseSBwcmVzZW50IG9uIHRoZSBzeXN0ZW0sIHVwZGF0aW5nIGV2ZXJ5IDYwIHNlY29uZHMuIiwKICAibmFtZSI6ICJaRlMgU3RhdHVzIE1vbml0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1Ymljay9nbm9tZS1zaGVsbC1leHRlbnNpb24temZzLXN0YXR1cy1tb25pdG9yIiwKICAidXVpZCI6ICJ6ZnMtc3RhdHVzLW1vbml0b3JAY2hyaXMuaHViaWNrLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "dollar@dotpyc.com", "name": "Dollar", "pname": "dollar", "description": "Cotações do dólar USD para o real BRL em tempo real.", "link": "https://extensions.gnome.org/extension/4573/dollar/", "shell_version_map": {"38": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "40": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0g2zy1yk5cgfb02mlgznhl2kpy0k6aipjyh8gps4lmc92wihml53", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvdGFcdTAwZTdcdTAwZjVlcyBkbyBkXHUwMGYzbGFyIFVTRCBwYXJhIG8gcmVhbCBCUkwgZW0gdGVtcG8gcmVhbC4iLAogICJuYW1lIjogIkRvbGxhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MS40IgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGFlbGRlbWF0dG9zL2RvbGxhci1kb3RweWMuY29tIiwKICAidXVpZCI6ICJkb2xsYXJAZG90cHljLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "activate_gnome@isjerryxiao", "name": "Activate GNOME", "pname": "activate_gnome", "description": "Shows Activate GNOME watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0dhb8fhzs9gb1blvgswdxvnzf9ac6ix0zdmhkw87cswsj0dgqj0d", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei and Honor laptops WMI functions, such as battery protection, Fn-lock, power unlock and keyboard backlight.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1c19l31bp6viwbc9brp19jnyhqzrjk1jfjfp6b6qbjgbyd1fwa5x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "activate_gnome@isjerryxiao", "name": "Activate GNOME", "pname": "activate_gnome", "description": "Shows Activate GNOME watermark on your screen.", "link": "https://extensions.gnome.org/extension/4574/activate_gnome/", "shell_version_map": {"40": {"version": "7", "sha256": "1gnky1saaai01vnsj664a71whghwr5ca0b1pyw3jf59p7y73b68z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1gnky1saaai01vnsj664a71whghwr5ca0b1pyw3jf59p7y73b68z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "1gnky1saaai01vnsj664a71whghwr5ca0b1pyw3jf59p7y73b68z", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIEFjdGl2YXRlIEdOT01FIHdhdGVybWFyayBvbiB5b3VyIHNjcmVlbi4iLAogICJuYW1lIjogIkFjdGl2YXRlIEdOT01FIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLmFjdGl2YXRlX2dub21lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaXNqZXJyeXhpYW8vZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFjdGl2YXRlLWdub21lIiwKICAidXVpZCI6ICJhY3RpdmF0ZV9nbm9tZUBpc2plcnJ5eGlhbyIsCiAgInZlcnNpb24iOiA3Cn0="}}}
+, {"uuid": "huawei-wmi@apps.sdore.me", "name": "Huawei WMI controls", "pname": "huawei-wmi-controls", "description": "Control various Huawei and Honor laptops WMI functions, such as battery protection, Fn-lock, power unlock and keyboard backlight.", "link": "https://extensions.gnome.org/extension/4580/huawei-wmi-controls/", "shell_version_map": {"40": {"version": "6", "sha256": "1ykx8vi9zhihsqn3wsp72qwxs01g6gv7979aawwkiqa76qjh4pbp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1ykx8vi9zhihsqn3wsp72qwxs01g6gv7979aawwkiqa76qjh4pbp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "1ykx8vi9zhihsqn3wsp72qwxs01g6gv7979aawwkiqa76qjh4pbp", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNvbnRyb2wgdmFyaW91cyBIdWF3ZWkgYW5kIEhvbm9yIGxhcHRvcHMgV01JIGZ1bmN0aW9ucywgc3VjaCBhcyBiYXR0ZXJ5IHByb3RlY3Rpb24sIEZuLWxvY2ssIHBvd2VyIHVubG9jayBhbmQga2V5Ym9hcmQgYmFja2xpZ2h0LiIsCiAgIm5hbWUiOiAiSHVhd2VpIFdNSSBjb250cm9scyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9hcHBzLnNkb3JlLm1lL2dub21lLWV4dGVuc2lvbi1odWF3ZWktd21pIiwKICAidXVpZCI6ICJodWF3ZWktd21pQGFwcHMuc2RvcmUubWUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "username-hotname@it-und-entwicklung-fg.de", "name": "Username and Hostname to panel", "pname": "username-and-hostname-to-panel", "description": "Adds your avatar icon, user displayname und username to the menu panel. Also it adds the hostname to the left of the panel.", "link": "https://extensions.gnome.org/extension/4583/username-and-hostname-to-panel/", "shell_version_map": {"38": {"version": "5", "sha256": "0kydfjc76h3jfaa096jrp1n5dzpxzljck2ikirsa96rw5mwyyaa8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdC1lbnR3aWNrbHVuZy1mZy9Vc2VybmFtZS1hbmQtSG9zdG5hbWUiLAogICJ1dWlkIjogInVzZXJuYW1lLWhvdG5hbWVAaXQtdW5kLWVudHdpY2tsdW5nLWZnLmRlIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "40": {"version": "5", "sha256": "0kydfjc76h3jfaa096jrp1n5dzpxzljck2ikirsa96rw5mwyyaa8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdC1lbnR3aWNrbHVuZy1mZy9Vc2VybmFtZS1hbmQtSG9zdG5hbWUiLAogICJ1dWlkIjogInVzZXJuYW1lLWhvdG5hbWVAaXQtdW5kLWVudHdpY2tsdW5nLWZnLmRlIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "0kydfjc76h3jfaa096jrp1n5dzpxzljck2ikirsa96rw5mwyyaa8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdC1lbnR3aWNrbHVuZy1mZy9Vc2VybmFtZS1hbmQtSG9zdG5hbWUiLAogICJ1dWlkIjogInVzZXJuYW1lLWhvdG5hbWVAaXQtdW5kLWVudHdpY2tsdW5nLWZnLmRlIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "0kydfjc76h3jfaa096jrp1n5dzpxzljck2ikirsa96rw5mwyyaa8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgeW91ciBhdmF0YXIgaWNvbiwgdXNlciBkaXNwbGF5bmFtZSB1bmQgdXNlcm5hbWUgdG8gdGhlIG1lbnUgcGFuZWwuIEFsc28gaXQgYWRkcyB0aGUgaG9zdG5hbWUgdG8gdGhlIGxlZnQgb2YgdGhlIHBhbmVsLiIsCiAgImV4dGVuc2lvbi1pZCI6ICJ1c2VybmFtZS1ob3RuYW1lIiwKICAibmFtZSI6ICJVc2VybmFtZSBhbmQgSG9zdG5hbWUgdG8gcGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pdC1lbnR3aWNrbHVuZy1mZy9Vc2VybmFtZS1hbmQtSG9zdG5hbWUiLAogICJ1dWlkIjogInVzZXJuYW1lLWhvdG5hbWVAaXQtdW5kLWVudHdpY2tsdW5nLWZnLmRlIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "InternetSpeedMonitor@Rishu", "name": "Internet Speed Monitor", "pname": "internet-speed-monitor", "description": "Extension to Monitor Internet Speed and Daily Data Usage minimally.\n It is a fork of InternetSpeedMeter", "link": "https://extensions.gnome.org/extension/4585/internet-speed-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "40": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "41": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}, "42": {"version": "6", "sha256": "1addh1pdb49zijqsjv10xrqs7rp6k8x26h91vkry6pvzdc9arqln", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBNb25pdG9yIEludGVybmV0IFNwZWVkIGFuZCBEYWlseSBEYXRhIFVzYWdlIG1pbmltYWxseS5cbiBJdCBpcyBhIGZvcmsgb2YgSW50ZXJuZXRTcGVlZE1ldGVyIiwKICAibmFtZSI6ICJJbnRlcm5ldCBTcGVlZCBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9JbnRlcm5ldFNwZWVkTW9uaXRvciIsCiAgInV1aWQiOiAiSW50ZXJuZXRTcGVlZE1vbml0b3JAUmlzaHUiLAogICJ2ZXJzaW9uIjogNgp9"}}}
 , {"uuid": "simulate-switching-workspaces-on-active-monitor@micheledaros.com", "name": "Switch workspaces on active monitor", "pname": "switch-workspaces-on-active-monitor", "description": "Simulates switching the workspace on the active monitor only. Ctrl+Alt+q switches to the previous workspace, Ctrl+Alt+a switches to the next", "link": "https://extensions.gnome.org/extension/4586/switch-workspaces-on-active-monitor/", "shell_version_map": {"38": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "40": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "41": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}, "42": {"version": "8", "sha256": "1yakh03r6qz08994bigzr9m5qqgm9ab2c02s1rab5rwym0a4d0vq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBzd2l0Y2hpbmcgdGhlIHdvcmtzcGFjZSBvbiB0aGUgYWN0aXZlIG1vbml0b3Igb25seS4gQ3RybCtBbHQrcSBzd2l0Y2hlcyB0byB0aGUgcHJldmlvdXMgd29ya3NwYWNlLCBDdHJsK0FsdCthIHN3aXRjaGVzIHRvIHRoZSBuZXh0IiwKICAibmFtZSI6ICJTd2l0Y2ggd29ya3NwYWNlcyBvbiBhY3RpdmUgbW9uaXRvciIsCiAgIm9yaWdpbmFsLWF1dGhvcnMiOiAiZGFyb3NtaWNAZ21haWwuY29tIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNpbXVsYXRlLXN3aXRjaGluZy13b3Jrc3BhY2VzLW9uLWFjdGl2ZS1tb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWljaGVsZWRhcm9zL2dub21lLXNoZWxsLWV4dGVuc2lvbi1zaW11bGF0ZS1zd2l0Y2hpbmctd29ya3NwYWNlcy1vbi1hY3RpdmUtbW9uaXRvciIsCiAgInV1aWQiOiAic2ltdWxhdGUtc3dpdGNoaW5nLXdvcmtzcGFjZXMtb24tYWN0aXZlLW1vbml0b3JAbWljaGVsZWRhcm9zLmNvbSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
@@ -627,7 +629,7 @@
 , {"uuid": "date-menu-formatter@marcinjakubowski.github.com", "name": "Date Menu Formatter", "pname": "date-menu-formatter", "description": "Allows customization of the date display in the panel.\n\nMight be especially useful if you're using a horizontal panel which does not at all work well with the default date display.\n\nCHANGELOG\nVersion 5: added support for multiple Dash To Panel panels\nVersion 6: fixed issues on earlier Gnome Shell versions", "link": "https://extensions.gnome.org/extension/4655/date-menu-formatter/", "shell_version_map": {"40": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "41": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "7", "sha256": "0l6fx4dfqr1pkpg7ckiynicwjzjrdn31mcbksk1a199scivkhilk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFsbG93cyBjdXN0b21pemF0aW9uIG9mIHRoZSBkYXRlIGRpc3BsYXkgaW4gdGhlIHBhbmVsLlxuXG5NaWdodCBiZSBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB5b3UncmUgdXNpbmcgYSBob3Jpem9udGFsIHBhbmVsIHdoaWNoIGRvZXMgbm90IGF0IGFsbCB3b3JrIHdlbGwgd2l0aCB0aGUgZGVmYXVsdCBkYXRlIGRpc3BsYXkuXG5cbkNIQU5HRUxPR1xuVmVyc2lvbiA1OiBhZGRlZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBEYXNoIFRvIFBhbmVsIHBhbmVsc1xuVmVyc2lvbiA2OiBmaXhlZCBpc3N1ZXMgb24gZWFybGllciBHbm9tZSBTaGVsbCB2ZXJzaW9ucyIsCiAgIm5hbWUiOiAiRGF0ZSBNZW51IEZvcm1hdHRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXRlLW1lbnUtZm9ybWF0dGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogImRhdGUtbWVudS1mb3JtYXR0ZXJAbWFyY2luamFrdWJvd3NraS5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}}}
 , {"uuid": "surf@diegonz.github.io", "name": "Surf", "pname": "surf", "description": "Visit URL or perform a web search with the terms provided directly from GNOME Shell", "link": "https://extensions.gnome.org/extension/4661/surf/", "shell_version_map": {"38": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "04rs32jzy89vr2fyw44vmjx47l2kkdhqklqms9fqckf8ii3l4h56", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlZpc2l0IFVSTCBvciBwZXJmb3JtIGEgd2ViIHNlYXJjaCB3aXRoIHRoZSB0ZXJtcyBwcm92aWRlZCBkaXJlY3RseSBmcm9tIEdOT01FIFNoZWxsIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLXN1cmYiLAogICJuYW1lIjogIlN1cmYiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc3VyZiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGllZ29uei9nbm9tZS1zaGVsbC1leHRlbnNpb24tc3VyZiIsCiAgInV1aWQiOiAic3VyZkBkaWVnb256LmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "CustomizeClockOnLockScreen@pratap.fastmail.fm", "name": "Customize Clock on Lock Screen", "pname": "customize-clock-on-lock-screen", "description": "Customize Clock on Lock Screen.", "link": "https://extensions.gnome.org/extension/4663/customize-clock-on-lock-screen/", "shell_version_map": {"41": {"version": "5", "sha256": "1nnkyvppbga65dpmszv066hps12p0b5rcaimhn489x2bzhyiycn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL2N1c3RvbWl6ZS1jbG9jay1vbi1sb2NrLXNjcmVlbiIsCiAgInV1aWQiOiAiQ3VzdG9taXplQ2xvY2tPbkxvY2tTY3JlZW5AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "1nnkyvppbga65dpmszv066hps12p0b5rcaimhn489x2bzhyiycn1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbi4iLAogICJuYW1lIjogIkN1c3RvbWl6ZSBDbG9jayBvbiBMb2NrIFNjcmVlbiIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vUFJBVEFQLUtVTUFSL2N1c3RvbWl6ZS1jbG9jay1vbi1sb2NrLXNjcmVlbiIsCiAgInV1aWQiOiAiQ3VzdG9taXplQ2xvY2tPbkxvY2tTY3JlZW5AcHJhdGFwLmZhc3RtYWlsLmZtIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
-, {"uuid": "LeftClock@adityashrivastava.tk", "name": "Left Clock", "pname": "left-clock", "description": "Replaces the activity button with clock and moves it to left side of top bar.", "link": "https://extensions.gnome.org/extension/4667/left-clock/", "shell_version_map": {"40": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "0lsihlkx9is0cisx7wsz9jy5h91gqhcpqqpq3lpl3msvn90dlmj9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiTGVmdENsb2NrQGFkaXR5YXNocml2YXN0YXZhLnRrIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "LeftClock@adityashrivastava.tk", "name": "Left Clock", "pname": "left-clock", "description": "Replaces the activity button with clock and moves it to left side of top bar.", "link": "https://extensions.gnome.org/extension/4667/left-clock/", "shell_version_map": {"40": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0qx71si3vggkh81wdpkl22hsq0kpgjy2b02n47qbxk5m9swyv3ky", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSBhY3Rpdml0eSBidXR0b24gd2l0aCBjbG9jayBhbmQgbW92ZXMgaXQgdG8gbGVmdCBzaWRlIG9mIHRvcCBiYXIuIiwKICAibmFtZSI6ICJMZWZ0IENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogIkxlZnRDbG9ja0BhZGl0eWFzaHJpdmFzdGF2YS50ayIsCiAgInZlcnNpb24iOiA2Cn0="}}}
 , {"uuid": "keyboard-backlight-menu@ophir.dev", "name": "Keyboard Backlight Slider", "pname": "keyboard-backlight-slider", "description": "Allow setting the keyboard backlight brightness with a slider in the main menu", "link": "https://extensions.gnome.org/extension/4669/keyboard-backlight-slider/", "shell_version_map": {"40": {"version": "5", "sha256": "06sp86ffvplyc1k937mg5lmfggbakr7fks74b4klxxg9595lg91q", "metadata": "ewogICJ2ZXJzaW9uIjogMiwKICAibmFtZSI6ICJLZXlib2FyZCBCYWNrbGlnaHQgU2xpZGVyIiwKICAiZGVzY3JpcHRpb24iOiAiQWxsb3cgc2V0dGluZyB0aGUga2V5Ym9hcmQgYmFja2xpZ2h0IGJyaWdodG5lc3Mgd2l0aCBhIHNsaWRlciBpbiB0aGUgbWFpbiBtZW51IiwKICAidXVpZCI6ICJrZXlib2FyZC1iYWNrbGlnaHQtbWVudUBvcGhpci5kZXYiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xvdmFzb2EvZ25vbWUta2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXQp9Cg=="}, "41": {"version": "5", "sha256": "06sp86ffvplyc1k937mg5lmfggbakr7fks74b4klxxg9595lg91q", "metadata": "ewogICJ2ZXJzaW9uIjogMiwKICAibmFtZSI6ICJLZXlib2FyZCBCYWNrbGlnaHQgU2xpZGVyIiwKICAiZGVzY3JpcHRpb24iOiAiQWxsb3cgc2V0dGluZyB0aGUga2V5Ym9hcmQgYmFja2xpZ2h0IGJyaWdodG5lc3Mgd2l0aCBhIHNsaWRlciBpbiB0aGUgbWFpbiBtZW51IiwKICAidXVpZCI6ICJrZXlib2FyZC1iYWNrbGlnaHQtbWVudUBvcGhpci5kZXYiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xvdmFzb2EvZ25vbWUta2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXQp9Cg=="}, "42": {"version": "5", "sha256": "06sp86ffvplyc1k937mg5lmfggbakr7fks74b4klxxg9595lg91q", "metadata": "ewogICJ2ZXJzaW9uIjogMiwKICAibmFtZSI6ICJLZXlib2FyZCBCYWNrbGlnaHQgU2xpZGVyIiwKICAiZGVzY3JpcHRpb24iOiAiQWxsb3cgc2V0dGluZyB0aGUga2V5Ym9hcmQgYmFja2xpZ2h0IGJyaWdodG5lc3Mgd2l0aCBhIHNsaWRlciBpbiB0aGUgbWFpbiBtZW51IiwKICAidXVpZCI6ICJrZXlib2FyZC1iYWNrbGlnaHQtbWVudUBvcGhpci5kZXYiLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2xvdmFzb2EvZ25vbWUta2V5Ym9hcmQtYmFja2xpZ2h0LW1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXQp9Cg=="}}}
 , {"uuid": "cloudflare-warp-gnome@harshan01", "name": "Cloudflare 1.1.1.1 WARP Switcher", "pname": "cloudflare-1111-warp-switcher", "description": "Unofficial Cloudflare 1.1.1.1 WARP Switcher extension for GNOME shell", "link": "https://extensions.gnome.org/extension/4670/cloudflare-1111-warp-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}, "42": {"version": "3", "sha256": "03i5v3g6drhsxs915q4940xnsv4nzpa887lj04gji32dcgb10vr3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlVub2ZmaWNpYWwgQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIgZXh0ZW5zaW9uIGZvciBHTk9NRSBzaGVsbCIsCiAgIm5hbWUiOiAiQ2xvdWRmbGFyZSAxLjEuMS4xIFdBUlAgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9IYXJzaGFuMDEvQ2xvdWRmbGFyZS1XQVJQLUdOT01FLVN3aXRjaGVyIiwKICAidXVpZCI6ICJjbG91ZGZsYXJlLXdhcnAtZ25vbWVAaGFyc2hhbjAxIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
 , {"uuid": "alt-tab-move-mouse@buzztaiki.github.com", "name": "Alt-Tab Move Mouse", "pname": "alt-tab-move-mouse", "description": "Move mouse pointer onto active window after Alt-Tab. This extension is workaround of some sloppy focus problems", "link": "https://extensions.gnome.org/extension/4673/alt-tab-move-mouse/", "shell_version_map": {"40": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "0ncpa84dh632wix9cdfiaykzz3d2k3kz1wsbh7y5kwmsib2rjp1y", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmUgbW91c2UgcG9pbnRlciBvbnRvIGFjdGl2ZSB3aW5kb3cgYWZ0ZXIgQWx0LVRhYi4gVGhpcyBleHRlbnNpb24gaXMgd29ya2Fyb3VuZCBvZiBzb21lIHNsb3BweSBmb2N1cyBwcm9ibGVtcyIsCiAgIm5hbWUiOiAiQWx0LVRhYiBNb3ZlIE1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYnV6enRhaWtpL2dub21lLXNoZWxsLWV4dGVuc2lvbi1hbHQtdGFiLW1vdmUtbW91c2UiLAogICJ1dWlkIjogImFsdC10YWItbW92ZS1tb3VzZUBidXp6dGFpa2kuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
@@ -651,7 +653,7 @@
 , {"uuid": "workspace-dry-names@benmoussatmouad.github.io", "name": "Worksapce Dry Names", "pname": "worksapce-dry-names", "description": "Workspace dry-names is a simple gnome extension that enables tags for desktop workspaces. It shows text labels on the left side of the main panel with randomly generated cities names (or an other category of names). Names can also be modified.\n\nhttps://github.com/benmoussatMouad/gnome-workspace-dry-names.git", "link": "https://extensions.gnome.org/extension/4721/worksapce-dry-names/", "shell_version_map": {"38": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "40": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "0ljprv3ar01p1y24p6j7hc8g7afca7ir0b2zyapjpzndz7mv1zcl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBkcnktbmFtZXMgaXMgYSBzaW1wbGUgZ25vbWUgZXh0ZW5zaW9uIHRoYXQgZW5hYmxlcyB0YWdzIGZvciBkZXNrdG9wIHdvcmtzcGFjZXMuIEl0IHNob3dzIHRleHQgbGFiZWxzIG9uIHRoZSBsZWZ0IHNpZGUgb2YgdGhlIG1haW4gcGFuZWwgd2l0aCByYW5kb21seSBnZW5lcmF0ZWQgY2l0aWVzIG5hbWVzIChvciBhbiBvdGhlciBjYXRlZ29yeSBvZiBuYW1lcykuIE5hbWVzIGNhbiBhbHNvIGJlIG1vZGlmaWVkLlxuXG5odHRwczovL2dpdGh1Yi5jb20vYmVubW91c3NhdE1vdWFkL2dub21lLXdvcmtzcGFjZS1kcnktbmFtZXMuZ2l0IiwKICAibmFtZSI6ICJXb3Jrc2FwY2UgRHJ5IE5hbWVzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndvcmtzcGFjZS1kcnktbmFtZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJ3b3Jrc3BhY2UtZHJ5LW5hbWVzQGJlbm1vdXNzYXRtb3VhZC5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "window-calls@domandoman.xyz", "name": "Window Calls", "pname": "window-calls", "description": "Add new dbus call for windows to get windows list and some of theirs properties", "link": "https://extensions.gnome.org/extension/4724/window-calls/", "shell_version_map": {"41": {"version": "2", "sha256": "02z265maw4a0rkw5y4an2j7spjqif44nxf47q5qr6cwnvmfpw6ci", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBuZXcgZGJ1cyBjYWxsIGZvciB3aW5kb3dzIHRvIGdldCB3aW5kb3dzIGxpc3QgYW5kIHNvbWUgb2YgdGhlaXJzIHByb3BlcnRpZXMiLAogICJuYW1lIjogIldpbmRvdyBDYWxscyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pY2t5aWNreS93aW5kb3ctY2FsbHMiLAogICJ1dWlkIjogIndpbmRvdy1jYWxsc0Bkb21hbmRvbWFuLnh5eiIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "primary_input_on_lockscreen@sagidayan.com", "name": "Primary Input on LockScreen", "pname": "primary-input-on-lockscreen", "description": "Automatically change input layout to primary on lock screen", "link": "https://extensions.gnome.org/extension/4727/primary-input-on-lockscreen/", "shell_version_map": {"40": {"version": "3", "sha256": "00i0wl4yb5gmj35zzj0b8kbdbm7y50b0kls6dlackdxbqgh88ji3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hhbmdlIGlucHV0IGxheW91dCB0byBwcmltYXJ5IG9uIGxvY2sgc2NyZWVuIiwKICAibmFtZSI6ICJQcmltYXJ5IElucHV0IG9uIExvY2tTY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zYWdpZGF5YW4vcHJpbWFyeS1pbnB1dC1vbi1sb2Nrc2NyZWVuIiwKICAidXVpZCI6ICJwcmltYXJ5X2lucHV0X29uX2xvY2tzY3JlZW5Ac2FnaWRheWFuLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "00i0wl4yb5gmj35zzj0b8kbdbm7y50b0kls6dlackdxbqgh88ji3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hhbmdlIGlucHV0IGxheW91dCB0byBwcmltYXJ5IG9uIGxvY2sgc2NyZWVuIiwKICAibmFtZSI6ICJQcmltYXJ5IElucHV0IG9uIExvY2tTY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zYWdpZGF5YW4vcHJpbWFyeS1pbnB1dC1vbi1sb2Nrc2NyZWVuIiwKICAidXVpZCI6ICJwcmltYXJ5X2lucHV0X29uX2xvY2tzY3JlZW5Ac2FnaWRheWFuLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "00i0wl4yb5gmj35zzj0b8kbdbm7y50b0kls6dlackdxbqgh88ji3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hhbmdlIGlucHV0IGxheW91dCB0byBwcmltYXJ5IG9uIGxvY2sgc2NyZWVuIiwKICAibmFtZSI6ICJQcmltYXJ5IElucHV0IG9uIExvY2tTY3JlZW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9zYWdpZGF5YW4vcHJpbWFyeS1pbnB1dC1vbi1sb2Nrc2NyZWVuIiwKICAidXVpZCI6ICJwcmltYXJ5X2lucHV0X29uX2xvY2tzY3JlZW5Ac2FnaWRheWFuLmNvbSIsCiAgInZlcnNpb24iOiAzCn0="}}}
-, {"uuid": "browser-tabs@com.github.harshadgavali", "name": "Browser tabs", "pname": "browser-tabs", "description": "Search provider for browser tabs\n\nSee following github link for installing browser extension and host app for searches to appear!", "link": "https://extensions.gnome.org/extension/4733/browser-tabs/", "shell_version_map": {"40": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1ag30ai0frxbw3s67ir1i5jdxpzx52b9rp47sqpnjcqw46xc97b6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBwcm92aWRlciBmb3IgYnJvd3NlciB0YWJzXG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgYnJvd3NlciBleHRlbnNpb24gYW5kIGhvc3QgYXBwIGZvciBzZWFyY2hlcyB0byBhcHBlYXIhIiwKICAibmFtZSI6ICJCcm93c2VyIHRhYnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9oYXJzaGFkZ2F2YWxpL3NlYXJjaHByb3ZpZGVyLWZvci1icm93c2VyLXRhYnMuZ2l0LyIsCiAgInV1aWQiOiAiYnJvd3Nlci10YWJzQGNvbS5naXRodWIuaGFyc2hhZGdhdmFsaSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "browser-tabs@com.github.harshadgavali", "name": "Browser tabs", "pname": "browser-tabs", "description": "Search and switch to browser tabs using GNOME overview/ArcMenu\n\nSee following github link for installing necessary browser extension and host app!", "link": "https://extensions.gnome.org/extension/4733/browser-tabs/", "shell_version_map": {"40": {"version": "4", "sha256": "1r1m6cfi9pv0sz651b95ji2rk40rhwmdnivq2jaf030w3qrkwysf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgc3dpdGNoIHRvIGJyb3dzZXIgdGFicyB1c2luZyBHTk9NRSBvdmVydmlldy9BcmNNZW51XG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgbmVjZXNzYXJ5IGJyb3dzZXIgZXh0ZW5zaW9uIGFuZCBob3N0IGFwcCEiLAogICJuYW1lIjogIkJyb3dzZXIgdGFicyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoYWRnYXZhbGkvc2VhcmNocHJvdmlkZXItZm9yLWJyb3dzZXItdGFicy5naXQvIiwKICAidXVpZCI6ICJicm93c2VyLXRhYnNAY29tLmdpdGh1Yi5oYXJzaGFkZ2F2YWxpIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1r1m6cfi9pv0sz651b95ji2rk40rhwmdnivq2jaf030w3qrkwysf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgc3dpdGNoIHRvIGJyb3dzZXIgdGFicyB1c2luZyBHTk9NRSBvdmVydmlldy9BcmNNZW51XG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgbmVjZXNzYXJ5IGJyb3dzZXIgZXh0ZW5zaW9uIGFuZCBob3N0IGFwcCEiLAogICJuYW1lIjogIkJyb3dzZXIgdGFicyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoYWRnYXZhbGkvc2VhcmNocHJvdmlkZXItZm9yLWJyb3dzZXItdGFicy5naXQvIiwKICAidXVpZCI6ICJicm93c2VyLXRhYnNAY29tLmdpdGh1Yi5oYXJzaGFkZ2F2YWxpIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1r1m6cfi9pv0sz651b95ji2rk40rhwmdnivq2jaf030w3qrkwysf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlYXJjaCBhbmQgc3dpdGNoIHRvIGJyb3dzZXIgdGFicyB1c2luZyBHTk9NRSBvdmVydmlldy9BcmNNZW51XG5cblNlZSBmb2xsb3dpbmcgZ2l0aHViIGxpbmsgZm9yIGluc3RhbGxpbmcgbmVjZXNzYXJ5IGJyb3dzZXIgZXh0ZW5zaW9uIGFuZCBob3N0IGFwcCEiLAogICJuYW1lIjogIkJyb3dzZXIgdGFicyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hhcnNoYWRnYXZhbGkvc2VhcmNocHJvdmlkZXItZm9yLWJyb3dzZXItdGFicy5naXQvIiwKICAidXVpZCI6ICJicm93c2VyLXRhYnNAY29tLmdpdGh1Yi5oYXJzaGFkZ2F2YWxpIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "smart-auto-move@khimaros.com", "name": "Smart Auto Move", "pname": "smart-auto-move", "description": "Smart Auto Move learns the size and position of your application windows and restores them to the correct place on subsequent launches. Supports Wayland.\n\nNOTE: Optimized for use with static workspaces. For more control, can be set to default IGNORE and then selectively RESTORE only desired apps.", "link": "https://extensions.gnome.org/extension/4736/smart-auto-move/", "shell_version_map": {"41": {"version": "16", "sha256": "1lzz38qplz2qgfrkjnx72mkjixcmv8ydna3kfnysbisr0ab9klh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSB0byB0aGUgY29ycmVjdCBwbGFjZSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBjYW4gYmUgc2V0IHRvIGRlZmF1bHQgSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9zbWFydC1hdXRvLW1vdmUvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNtYXJ0LWF1dG8tbW92ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2hpbWFyb3Mvc21hcnQtYXV0by1tb3ZlIiwKICAidXVpZCI6ICJzbWFydC1hdXRvLW1vdmVAa2hpbWFyb3MuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "1lzz38qplz2qgfrkjnx72mkjixcmv8ydna3kfnysbisr0ab9klh6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNtYXJ0IEF1dG8gTW92ZSBsZWFybnMgdGhlIHNpemUgYW5kIHBvc2l0aW9uIG9mIHlvdXIgYXBwbGljYXRpb24gd2luZG93cyBhbmQgcmVzdG9yZXMgdGhlbSB0byB0aGUgY29ycmVjdCBwbGFjZSBvbiBzdWJzZXF1ZW50IGxhdW5jaGVzLiBTdXBwb3J0cyBXYXlsYW5kLlxuXG5OT1RFOiBPcHRpbWl6ZWQgZm9yIHVzZSB3aXRoIHN0YXRpYyB3b3Jrc3BhY2VzLiBGb3IgbW9yZSBjb250cm9sLCBjYW4gYmUgc2V0IHRvIGRlZmF1bHQgSUdOT1JFIGFuZCB0aGVuIHNlbGVjdGl2ZWx5IFJFU1RPUkUgb25seSBkZXNpcmVkIGFwcHMuIiwKICAibmFtZSI6ICJTbWFydCBBdXRvIE1vdmUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAia2hpbWFyb3MiLAogICJzZXR0aW5ncy1wYXRoIjogIi9vcmcvZ25vbWUvc2hlbGwvZXh0ZW5zaW9ucy9zbWFydC1hdXRvLW1vdmUvIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNtYXJ0LWF1dG8tbW92ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20va2hpbWFyb3Mvc21hcnQtYXV0by1tb3ZlIiwKICAidXVpZCI6ICJzbWFydC1hdXRvLW1vdmVAa2hpbWFyb3MuY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
 , {"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.", "link": "https://extensions.gnome.org/extension/4739/alternate-menu-for-hplip2/", "shell_version_map": {"40": {"version": "5", "sha256": "1r6iv02zlkkcq0h57agirm6sqi17pcqkyjlsd5bn8h4hykc7bwb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "1r6iv02zlkkcq0h57agirm6sqi17pcqkyjlsd5bn8h4hykc7bwb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "1r6iv02zlkkcq0h57agirm6sqi17pcqkyjlsd5bn8h4hykc7bwb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogImNvbnRyb2wgeW91ciBocCBwcmludGVycyBieSBjYWxsaW5nIHRoZSBkZXZpY2UgbWFuYWdlciBocC10b29sYm94LCBhbHNvIHNvbWUgdXNlZnVsIGxpbmtzXG5Nb3RpdmF0aW9uOiB0aGUgaHAtc3lzdHJheSBkb2Vzbid0IHdvcmsgcmVsaWFibHkgdW5kZXIgZ25vbWUgc2hlbGxcbnlvdSBuZWVkIHRvIGhhdmUgaW5zdGFsbGVkIGhwbGlwIGluIG9yZGVyIHRvIHVzZSB0aGlzXG5DaG9pY2Ugb2YgdXNpbmcgYSBwcmludGVyIGljb24gb3IgYSBocF9sb2dvLnBuZyBpZiBpdCdzIGluc3RhbGxlZCBpbiB0aGUgc2FtZSBwbGFjZSBhcyBtaW5lIG9uIFVidW50dVxueW91IGNvdWxkIHVzZSBzeW1ib2xpYyBsaW5rcyB0byBmYWtlIHRoZSBwYXRoLlxuVGhpcyBpcyBhIHJlcGxhY2VtZW50IGZvciB0aGUgb2xkIFwiQWx0ZXJuYXRlIE1lbnUgZm9yIEhwbGlwXCIgd2hpY2ggZG9lc24ndCB3b3JrIHVuZGVyIHRoZSBuZXcgR29tZS1TaGVsbCBJIGhhdmUgY2xlYW5lZCBpdCB1cCBhIGJpdCBhbmQgaXQgaGFzIGEgZmV3IG5ldyBtZW51J3MgYnV0IGl0IGlzIHN0aWxsIGJhc2ljYWxseSB0aGUgc2FtZSB0aGluZy5cbiBBZGRlZCBldmVuIG1vcmUgbWVudXMgYWxsIG1vc3QgYWxsIHN5c3RlbSBzZXR0aW5ncyBvbmVzLlxuXG5Ob3RlOiB0aGUgbWVudSB3aWxsIGJlIHRvbyBiaWcgaWYgeW91ciByZXNvbHV0aW9uIGlzIHdheSB0b28gbG93IGxpa2UgODAweDYwMCBJIGhhdmUgbm8gc29sbiBmb3IgdGhpcyBqdXN0IG5vdy4iLAogICJuYW1lIjogIkFsdGVybmF0ZSBNZW51IGZvciBIcGxpcDIiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuaHBsaXAtbWVudTIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9ncml6emx5c21pdC9ocGxpcC1tZW51Mi1ncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidXVpZCI6ICJocGxpcC1tZW51MkBncml6emx5c21pdC5zbWl0LmlkLmF1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "dash-from-panel@fthx", "name": "Dash from Panel", "pname": "dash-from-panel", "description": "Top 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": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "10lcxqkg9i7gjvgdb01b6fahj5yr7c614yj4jcz9ywi5v571b1hw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvcCBkb2NrIGZvciBHTk9NRSA0MCsuIEhvdmVyIHRvcCBwYW5lbCBhbmQgR05PTUUgU2hlbGwgZGFzaCBhcHBlYXJzIHdpdGhvdXQgb3ZlcnZpZXcuXG5cbiBTY3JvbGwgb24gZG9jayBvciBwYW5lbCBjaGFuZ2VzIHdvcmtzcGFjZS4gUHJlZmVyZW5jZXMgVUkuXG5cbiBEb2VzIHVzZSBuYXRpdmUgR05PTUUgU2hlbGwgRGFzaC4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBQbGVhc2UgcmVwb3J0IGJ1Z3MgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJEYXNoIGZyb20gUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2gtZnJvbS1wYW5lbCIsCiAgInV1aWQiOiAiZGFzaC1mcm9tLXBhbmVsQGZ0aHgiLAogICJ2ZXJzaW9uIjogMwp9"}}}
@@ -666,7 +668,7 @@
 , {"uuid": "clip-note@eexpss.gmail.com", "name": "Clip Note", "pname": "clip-note", "description": "Save clip contents to multiple notes with separate tags. Notes locate at ~/.local/share/clip-note/. Dots in filename means splited tags.", "link": "https://extensions.gnome.org/extension/4774/clip-note/", "shell_version_map": {"40": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "41": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "0bfpxlvyibcpd7vi1a65r5awggmh8i9yc705mfb6vpm92ry7iny3", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNhdmUgY2xpcCBjb250ZW50cyB0byBtdWx0aXBsZSBub3RlcyB3aXRoIHNlcGFyYXRlIHRhZ3MuIE5vdGVzIGxvY2F0ZSBhdCB+Ly5sb2NhbC9zaGFyZS9jbGlwLW5vdGUvLiBEb3RzIGluIGZpbGVuYW1lIG1lYW5zIHNwbGl0ZWQgdGFncy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJjbGlwLW5vdGUiLAogICJuYW1lIjogIkNsaXAgTm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dub21lLXNoZWxsLWNsaXAtbm90ZSIsCiAgInV1aWQiOiAiY2xpcC1ub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"uuid": "ssh-tray@mario.cardia.com.br", "name": "SSH Tray", "pname": "ssh-tray", "description": "Simple SSH extension to allow you to connect to your hosts at ~/.ssh/config and ~/ssh/know_hosts file from Gnome top bar.", "link": "https://extensions.gnome.org/extension/4779/ssh-tray/", "shell_version_map": {"41": {"version": "1", "sha256": "1c7ndcv3bnsc95sijdkq39fshybpaq9fqdk3gvwm1lx40r1ibgih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBTU0ggZXh0ZW5zaW9uIHRvIGFsbG93IHlvdSB0byBjb25uZWN0IHRvIHlvdXIgaG9zdHMgYXQgfi8uc3NoL2NvbmZpZyBhbmQgfi9zc2gva25vd19ob3N0cyBmaWxlIGZyb20gR25vbWUgdG9wIGJhci4iLAogICJuYW1lIjogIlNTSCBUcmF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJzc2gtdHJheUBtYXJpby5jYXJkaWEuY29tLmJyIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "glasa@lyrahgames.github.io", "name": "Glasa", "pname": "glasa", "description": "This extension puts an icon in the panel consisting of two comic-like eyes following the cursor.", "link": "https://extensions.gnome.org/extension/4780/glasa/", "shell_version_map": {"38": {"version": "2", "sha256": "0j45y91xal9vpk5iznkxydhq4dw55hvwqyfhvq48i5zlzxfirrvn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiAyCn0="}, "40": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "1nkv8bjsjdp4scklmpn7f74fhnyqd65dvhlplzn54qad74afdjdj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2x5cmFoZ2FtZXMvZ25vbWUtZXh0ZW5zaW9uLWdsYXNhIiwKICAidXVpZCI6ICJnbGFzYUBseXJhaGdhbWVzLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "8", "sha256": "0g82ks2kcn7a9jc31yj8lqyblbhxqph9h5kh1n8srqgz03lzx8pv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIHB1dHMgYW4gaWNvbiBpbiB0aGUgcGFuZWwgY29uc2lzdGluZyBvZiB0d28gY29taWMtbGlrZSBleWVzIGZvbGxvd2luZyB0aGUgY3Vyc29yLiIsCiAgIm5hbWUiOiAiR2xhc2EiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbHlyYWhnYW1lcy9nbm9tZS1leHRlbnNpb24tZ2xhc2EiLAogICJ1dWlkIjogImdsYXNhQGx5cmFoZ2FtZXMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDgKfQ=="}}}
-, {"uuid": "avatar@pawel.swiszcz.com", "name": "Avatar", "pname": "avatar", "description": "The Avatar Extension can add into the panel: \n * Avatar (horizontal/vertical, shades, visibility of username and hostname) \n * Primary buttons \n * MPRIS \n * Top image (can be Your own image from system) ", "link": "https://extensions.gnome.org/extension/4782/avatar/", "shell_version_map": {"41": {"version": "16", "sha256": "0qcrwh2w34vwm21nls6r2m2dha62342nz5prmq46ww3lbqc3gyff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBdmF0YXIgRXh0ZW5zaW9uIGNhbiBhZGQgaW50byB0aGUgcGFuZWw6IFxuICogQXZhdGFyIChob3Jpem9udGFsL3ZlcnRpY2FsLCBzaGFkZXMsIHZpc2liaWxpdHkgb2YgdXNlcm5hbWUgYW5kIGhvc3RuYW1lKSBcbiAqIFByaW1hcnkgYnV0dG9ucyBcbiAqIE1QUklTIFxuICogVG9wIGltYWdlIChjYW4gYmUgWW91ciBvd24gaW1hZ2UgZnJvbSBzeXN0ZW0pICIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}, "42": {"version": "16", "sha256": "0qcrwh2w34vwm21nls6r2m2dha62342nz5prmq46ww3lbqc3gyff", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoZSBBdmF0YXIgRXh0ZW5zaW9uIGNhbiBhZGQgaW50byB0aGUgcGFuZWw6IFxuICogQXZhdGFyIChob3Jpem9udGFsL3ZlcnRpY2FsLCBzaGFkZXMsIHZpc2liaWxpdHkgb2YgdXNlcm5hbWUgYW5kIGhvc3RuYW1lKSBcbiAqIFByaW1hcnkgYnV0dG9ucyBcbiAqIE1QUklTIFxuICogVG9wIGltYWdlIChjYW4gYmUgWW91ciBvd24gaW1hZ2UgZnJvbSBzeXN0ZW0pICIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wYXdlbHN3aXN6Y3ovQXZhdGFyLUdub21lLVNoZWxsLUV4dGVuc2lvbiIsCiAgInV1aWQiOiAiYXZhdGFyQHBhd2VsLnN3aXN6Y3ouY29tIiwKICAidmVyc2lvbiI6IDE2Cn0="}}}
+, {"uuid": "avatar@pawel.swiszcz.com", "name": "Avatar", "pname": "avatar", "description": "The Avatar Extension can add into the panel: \n * Avatar (horizontal/vertical, shades, visibility of username and hostname) \n * Primary buttons \n * MPRIS \n * Top image (can be Your own image from system) ", "link": "https://extensions.gnome.org/extension/4782/avatar/", "shell_version_map": {"41": {"version": "17", "sha256": "0a3i784bnzi3fc78dic8mikzplh7w8jjjcmjh5i32b6aa1mh7kij", "metadata": "ewogICJ1dWlkIjogImF2YXRhckBwYXdlbC5zd2lzemN6LmNvbSIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAiZGVzY3JpcHRpb24iOiAiVGhlIEF2YXRhciBFeHRlbnNpb24gY2FuIGFkZCBpbnRvIHRoZSBwYW5lbDogXG4gKiBBdmF0YXIgKGhvcml6b250YWwvdmVydGljYWwsIHNoYWRlcywgdmlzaWJpbGl0eSBvZiB1c2VybmFtZSBhbmQgaG9zdG5hbWUpIFxuICogUHJpbWFyeSBidXR0b25zIFxuICogTVBSSVMgXG4gKiBUb3AgaW1hZ2UgKGNhbiBiZSBZb3VyIG93biBpbWFnZSBmcm9tIHN5c3RlbSkgIiwKICAidmVyc2lvbiI6IDE3LAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Bhd2Vsc3dpc3pjei9BdmF0YXItR25vbWUtU2hlbGwtRXh0ZW5zaW9uIgp9Cg=="}, "42": {"version": "17", "sha256": "0a3i784bnzi3fc78dic8mikzplh7w8jjjcmjh5i32b6aa1mh7kij", "metadata": "ewogICJ1dWlkIjogImF2YXRhckBwYXdlbC5zd2lzemN6LmNvbSIsCiAgIm5hbWUiOiAiQXZhdGFyIiwKICAiZGVzY3JpcHRpb24iOiAiVGhlIEF2YXRhciBFeHRlbnNpb24gY2FuIGFkZCBpbnRvIHRoZSBwYW5lbDogXG4gKiBBdmF0YXIgKGhvcml6b250YWwvdmVydGljYWwsIHNoYWRlcywgdmlzaWJpbGl0eSBvZiB1c2VybmFtZSBhbmQgaG9zdG5hbWUpIFxuICogUHJpbWFyeSBidXR0b25zIFxuICogTVBSSVMgXG4gKiBUb3AgaW1hZ2UgKGNhbiBiZSBZb3VyIG93biBpbWFnZSBmcm9tIHN5c3RlbSkgIiwKICAidmVyc2lvbiI6IDE3LAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Bhd2Vsc3dpc3pjei9BdmF0YXItR25vbWUtU2hlbGwtRXh0ZW5zaW9uIgp9Cg=="}}}
 , {"uuid": "default-workspace@mateusrodcosta.com", "name": "Default Workspace", "pname": "default-workspace", "description": "Switches to the specified workspace on login.\nUseful for fixed number of workspace setups where the first workspace isn't the main one.", "link": "https://extensions.gnome.org/extension/4783/default-workspace/", "shell_version_map": {"40": {"version": "2", "sha256": "05s1bzh917vv3j7xfx2gljwfzxkb9lsvp8zgcgch75hfvywvpgb9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "05s1bzh917vv3j7xfx2gljwfzxkb9lsvp8zgcgch75hfvywvpgb9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaGVzIHRvIHRoZSBzcGVjaWZpZWQgd29ya3NwYWNlIG9uIGxvZ2luLlxuVXNlZnVsIGZvciBmaXhlZCBudW1iZXIgb2Ygd29ya3NwYWNlIHNldHVwcyB3aGVyZSB0aGUgZmlyc3Qgd29ya3NwYWNlIGlzbid0IHRoZSBtYWluIG9uZS4iLAogICJuYW1lIjogIkRlZmF1bHQgV29ya3NwYWNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9NYXRldXNSb2RDb3N0YS9nbm9tZS1zaGVsbC1leHRlbnNpb24tZGVmYXVsdC13b3Jrc3BhY2UiLAogICJ1dWlkIjogImRlZmF1bHQtd29ya3NwYWNlQG1hdGV1c3JvZGNvc3RhLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"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="}, "41": {"version": "12", "sha256": "1kcsbvvm6wigw0h2d23rx4vsqdawa7m5gfynjdc9xzxn3q8sxx0b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1hbHQtbW91c2UiLAogICJ1dWlkIjogImFsdC1tb3VzZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEyCn0="}, "42": {"version": "24", "sha256": "1j20kzq4va9s0jpvcm2y91wjk0c772mx4xk1rmr49hy1rb2crdpc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQWx0ICsgTW91c2UgY29udHJvbCB3aW5kb3dcbkRldGFpbGVkIGluc3RydWN0aW9ucyBhcmUgb24gdGhlIGhvbWUgcGFnZSBhbmQgaW4gY29uZmlnIGludGVyZmFjZS4gXG5EaXNhYmxlIGRlc2t0b3AgQmFja2dyb3VuZE1lbnUsIERpc2FibGUgUGFuZWwgZHJhZ01vZGUuIFxuQWRkIGEgZ2FwIGF0IHJpZ2h0IHNjcmVlbiBlZGdlLiBcbkFkZCBUb3AtTGVmdCBhbmQgVG9wLVJpZ2h0IGNvcm5lciBhcyBob3QgY29uZXIuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYWx0LW1vdXNlIiwKICAibmFtZSI6ICJBbHQgTW91c2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuYWx0LW1vdXNlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLWFsdC1tb3VzZSIsCiAgInV1aWQiOiAiYWx0LW1vdXNlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMjQKfQ=="}}}
 , {"uuid": "workspace-switcher-manager@G-dH.github.com", "name": "Workspace Switcher Manager", "pname": "workspace-switcher-manager", "description": "Make the workspace switcher popup useful! Customize your workspace switcher behavior and the content, dimensions, position, orientation and colors of its popup indicator.\n\n- all GNOME workspace related options in one place\n- adds ws switcher Wraparoud and Ignore Last (empty) Workspace options\n- allows to disable or customize switcher popup\n- allows adding content to the workspace switcher popup - Workspace Name, Current Application Name, Workspace Index\n- ws switcher popup appearance customization includes position on screen, timings, size, colors , orientation", "link": "https://extensions.gnome.org/extension/4788/workspace-switcher-manager/", "shell_version_map": {"38": {"version": "7", "sha256": "0395pbs962l7zf7bcfr4wdqi897w0vz48v4qj46b7wdn7f9akvvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "40": {"version": "7", "sha256": "0395pbs962l7zf7bcfr4wdqi897w0vz48v4qj46b7wdn7f9akvvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "41": {"version": "7", "sha256": "0395pbs962l7zf7bcfr4wdqi897w0vz48v4qj46b7wdn7f9akvvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}, "42": {"version": "7", "sha256": "0395pbs962l7zf7bcfr4wdqi897w0vz48v4qj46b7wdn7f9akvvk", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCB1c2VmdWwhIEN1c3RvbWl6ZSB5b3VyIHdvcmtzcGFjZSBzd2l0Y2hlciBiZWhhdmlvciBhbmQgdGhlIGNvbnRlbnQsIGRpbWVuc2lvbnMsIHBvc2l0aW9uLCBvcmllbnRhdGlvbiBhbmQgY29sb3JzIG9mIGl0cyBwb3B1cCBpbmRpY2F0b3IuXG5cbi0gYWxsIEdOT01FIHdvcmtzcGFjZSByZWxhdGVkIG9wdGlvbnMgaW4gb25lIHBsYWNlXG4tIGFkZHMgd3Mgc3dpdGNoZXIgV3JhcGFyb3VkIGFuZCBJZ25vcmUgTGFzdCAoZW1wdHkpIFdvcmtzcGFjZSBvcHRpb25zXG4tIGFsbG93cyB0byBkaXNhYmxlIG9yIGN1c3RvbWl6ZSBzd2l0Y2hlciBwb3B1cFxuLSBhbGxvd3MgYWRkaW5nIGNvbnRlbnQgdG8gdGhlIHdvcmtzcGFjZSBzd2l0Y2hlciBwb3B1cCAtIFdvcmtzcGFjZSBOYW1lLCBDdXJyZW50IEFwcGxpY2F0aW9uIE5hbWUsIFdvcmtzcGFjZSBJbmRleFxuLSB3cyBzd2l0Y2hlciBwb3B1cCBhcHBlYXJhbmNlIGN1c3RvbWl6YXRpb24gaW5jbHVkZXMgcG9zaXRpb24gb24gc2NyZWVuLCB0aW1pbmdzLCBzaXplLCBjb2xvcnMgLCBvcmllbnRhdGlvbiIsCiAgImdldHRleHQtZG9tYWluIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyIiwKICAibmFtZSI6ICJXb3Jrc3BhY2UgU3dpdGNoZXIgTWFuYWdlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy53b3Jrc3BhY2Utc3dpdGNoZXItbWFuYWdlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL0ctZEgvd29ya3NwYWNlLXN3aXRjaGVyLW1hbmFnZXIiLAogICJ1dWlkIjogIndvcmtzcGFjZS1zd2l0Y2hlci1tYW5hZ2VyQEctZEguZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA3Cn0="}}}
@@ -676,9 +678,9 @@
 , {"uuid": "thinkpad-battery-threshold@marcosdalvarez.org", "name": "Thinkpad Battery Threshold", "pname": "thinkpad-battery-threshold", "description": "Enable/Disable battery threshold on Lenovo Thinkpad laptops.\n\nIf you mainly use the system with the AC power adapter connected and only use the battery sporadically, you can increase battery life by setting the maximum charge value to less than 100%. This is useful because batteries that are used sporadically have a longer lifespan when kept at less than full charge.", "link": "https://extensions.gnome.org/extension/4798/thinkpad-battery-threshold/", "shell_version_map": {"41": {"version": "11", "sha256": "1m4d92v7ym8as25kpm3l00dnf5rzp36m2p9jdjmbk3i5xk1dk61a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}, "42": {"version": "11", "sha256": "1m4d92v7ym8as25kpm3l00dnf5rzp36m2p9jdjmbk3i5xk1dk61a", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZS9EaXNhYmxlIGJhdHRlcnkgdGhyZXNob2xkIG9uIExlbm92byBUaGlua3BhZCBsYXB0b3BzLlxuXG5JZiB5b3UgbWFpbmx5IHVzZSB0aGUgc3lzdGVtIHdpdGggdGhlIEFDIHBvd2VyIGFkYXB0ZXIgY29ubmVjdGVkIGFuZCBvbmx5IHVzZSB0aGUgYmF0dGVyeSBzcG9yYWRpY2FsbHksIHlvdSBjYW4gaW5jcmVhc2UgYmF0dGVyeSBsaWZlIGJ5IHNldHRpbmcgdGhlIG1heGltdW0gY2hhcmdlIHZhbHVlIHRvIGxlc3MgdGhhbiAxMDAlLiBUaGlzIGlzIHVzZWZ1bCBiZWNhdXNlIGJhdHRlcmllcyB0aGF0IGFyZSB1c2VkIHNwb3JhZGljYWxseSBoYXZlIGEgbG9uZ2VyIGxpZmVzcGFuIHdoZW4ga2VwdCBhdCBsZXNzIHRoYW4gZnVsbCBjaGFyZ2UuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGRAbWFyY29zZGFsdmFyZXoub3JnIiwKICAibmFtZSI6ICJUaGlua3BhZCBCYXR0ZXJ5IFRocmVzaG9sZCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy50aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vbWFyY29zZGFsdmFyZXovdGhpbmtwYWQtYmF0dGVyeS10aHJlc2hvbGQtZXh0ZW5zaW9uIiwKICAidXVpZCI6ICJ0aGlua3BhZC1iYXR0ZXJ5LXRocmVzaG9sZEBtYXJjb3NkYWx2YXJlei5vcmciLAogICJ2ZXJzaW9uIjogMTEKfQ=="}}}
 , {"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": "2", "sha256": "12q3z5wdbbg9sa570ig5sw6qk70ykhy5zsx7ygvi2zgla52v0hq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9jay1zY3JlZW4tbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQWR2ZW5kcmFEZXN3YW50YS9sb2NrLXNjcmVlbi1tZXNzYWdlIiwKICAidXVpZCI6ICJsb2NrLXNjcmVlbi1tZXNzYWdlQGFkdmVuZHJhZGVzd2FudGEuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "12q3z5wdbbg9sa570ig5sw6qk70ykhy5zsx7ygvi2zgla52v0hq9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBleHRlbnNpb24gdGhhdCBsZXQncyB5b3UgYWRkIHlvdXIgbWVzc2FnZSB0byB0aGUgbG9jayBzY3JlZW4gKHVubG9ja0RpYWxvZykiLAogICJuYW1lIjogIkxvY2sgU2NyZWVuIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubG9jay1zY3JlZW4tbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQWR2ZW5kcmFEZXN3YW50YS9sb2NrLXNjcmVlbi1tZXNzYWdlIiwKICAidXVpZCI6ICJsb2NrLXNjcmVlbi1tZXNzYWdlQGFkdmVuZHJhZGVzd2FudGEuZ2l0bGFiLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "panel-corners@aunetx", "name": "Panel corners", "pname": "panel-corners", "description": "A GNOME shell extension to keep the old topbar corners, which were removed for GNOME 42. It also allows you to customize the rounded corners, even if you use GNOME 40 or 41.\n\nIt is widely based on already existing gnome-shell code, and on a merge request by Alexander Mikhaylenko: https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1328", "link": "https://extensions.gnome.org/extension/4805/panel-corners/", "shell_version_map": {"40": {"version": "3", "sha256": "0piacfxwa5ca5cnvrz0s8pqykfixynmvvdmh1rznfsh407v1kw1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvcGFuZWwtY29ybmVycyIsCiAgInV1aWQiOiAicGFuZWwtY29ybmVyc0BhdW5ldHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0piacfxwa5ca5cnvrz0s8pqykfixynmvvdmh1rznfsh407v1kw1v", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hdW5ldHgvcGFuZWwtY29ybmVycyIsCiAgInV1aWQiOiAicGFuZWwtY29ybmVyc0BhdW5ldHgiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "4", "sha256": "13mc18sds1z0ij1x8plx5d4b4mk4zkwx3hngh3z2ib7db8la7wdw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgc2hlbGwgZXh0ZW5zaW9uIHRvIGtlZXAgdGhlIG9sZCB0b3BiYXIgY29ybmVycywgd2hpY2ggd2VyZSByZW1vdmVkIGZvciBHTk9NRSA0Mi4gSXQgYWxzbyBhbGxvd3MgeW91IHRvIGN1c3RvbWl6ZSB0aGUgcm91bmRlZCBjb3JuZXJzLCBldmVuIGlmIHlvdSB1c2UgR05PTUUgNDAgb3IgNDEuXG5cbkl0IGlzIHdpZGVseSBiYXNlZCBvbiBhbHJlYWR5IGV4aXN0aW5nIGdub21lLXNoZWxsIGNvZGUsIGFuZCBvbiBhIG1lcmdlIHJlcXVlc3QgYnkgQWxleGFuZGVyIE1pa2hheWxlbmtvOiBodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvR05PTUUvZ25vbWUtc2hlbGwvLS9tZXJnZV9yZXF1ZXN0cy8xMzI4IiwKICAibmFtZSI6ICJQYW5lbCBjb3JuZXJzIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnBhbmVsLWNvcm5lcnMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXVuZXR4L3BhbmVsLWNvcm5lcnMiLAogICJ1dWlkIjogInBhbmVsLWNvcm5lcnNAYXVuZXR4IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "WhatWatch@Zappo-II.github.io", "name": "What Watch", "pname": "what-watch", "description": "Shows a customizeable analog desktop clock.\nPlease visit the GitHub repository for documentation and to report any issues.", "link": "https://extensions.gnome.org/extension/4806/what-watch/", "shell_version_map": {"38": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "40": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "1cd9cci0nhpif104x7lc3i5xiqlsnlr0xg764gj0p3hrn0bf9icj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vWmFwcG8tSUkvV2hhdFdhdGNoIiwKICAidXVpZCI6ICJXaGF0V2F0Y2hAWmFwcG8tSUkuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "WhatWatch@Zappo-II.github.io", "name": "What Watch", "pname": "what-watch", "description": "Shows a customizeable analog desktop clock.\nPlease visit the GitHub repository for documentation and to report any issues.", "link": "https://extensions.gnome.org/extension/4806/what-watch/", "shell_version_map": {"38": {"version": "5", "sha256": "0pvbsf7497s9bnvsvk4axh5jynk9axflmc915qla76w1xkinqv9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phcHBvLUlJL1doYXRXYXRjaCIsCiAgInV1aWQiOiAiV2hhdFdhdGNoQFphcHBvLUlJLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0pvbsf7497s9bnvsvk4axh5jynk9axflmc915qla76w1xkinqv9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phcHBvLUlJL1doYXRXYXRjaCIsCiAgInV1aWQiOiAiV2hhdFdhdGNoQFphcHBvLUlJLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0pvbsf7497s9bnvsvk4axh5jynk9axflmc915qla76w1xkinqv9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phcHBvLUlJL1doYXRXYXRjaCIsCiAgInV1aWQiOiAiV2hhdFdhdGNoQFphcHBvLUlJLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "0pvbsf7497s9bnvsvk4axh5jynk9axflmc915qla76w1xkinqv9w", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGEgY3VzdG9taXplYWJsZSBhbmFsb2cgZGVza3RvcCBjbG9jay5cblBsZWFzZSB2aXNpdCB0aGUgR2l0SHViIHJlcG9zaXRvcnkgZm9yIGRvY3VtZW50YXRpb24gYW5kIHRvIHJlcG9ydCBhbnkgaXNzdWVzLiIsCiAgIm5hbWUiOiAiV2hhdCBXYXRjaCIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy56YXBwb2lpLndoYXR3YXRjaCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL1phcHBvLUlJL1doYXRXYXRjaCIsCiAgInV1aWQiOiAiV2hhdFdhdGNoQFphcHBvLUlJLmdpdGh1Yi5pbyIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "cairo@eexpss.gmail.com", "name": "Cairo Clock", "pname": "cairo-clock", "description": "Cairo Clock. \n Click the clock face to set the alarm, click the center circle to enable the alarm.\n Alt + click on main icon, background of icon become green, this enable Popup per hour function. \n Ctrl + click on main icon, can test the alarm effect.\n In case of alarm, the clock will swing dynamically.", "link": "https://extensions.gnome.org/extension/4809/cairo-clock/", "shell_version_map": {"40": {"version": "17", "sha256": "161nflaca6l269m4v0g62yci3ffbahfk0id9f0215wqgnm1paap9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "41": {"version": "17", "sha256": "161nflaca6l269m4v0g62yci3ffbahfk0id9f0215wqgnm1paap9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}, "42": {"version": "17", "sha256": "161nflaca6l269m4v0g62yci3ffbahfk0id9f0215wqgnm1paap9", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNhaXJvIENsb2NrLiBcbiBDbGljayB0aGUgY2xvY2sgZmFjZSB0byBzZXQgdGhlIGFsYXJtLCBjbGljayB0aGUgY2VudGVyIGNpcmNsZSB0byBlbmFibGUgdGhlIGFsYXJtLlxuIEFsdCArIGNsaWNrIG9uIG1haW4gaWNvbiwgYmFja2dyb3VuZCBvZiBpY29uIGJlY29tZSBncmVlbiwgdGhpcyBlbmFibGUgUG9wdXAgcGVyIGhvdXIgZnVuY3Rpb24uIFxuIEN0cmwgKyBjbGljayBvbiBtYWluIGljb24sIGNhbiB0ZXN0IHRoZSBhbGFybSBlZmZlY3QuXG4gSW4gY2FzZSBvZiBhbGFybSwgdGhlIGNsb2NrIHdpbGwgc3dpbmcgZHluYW1pY2FsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiY2Fpcm8tY2xvY2siLAogICJuYW1lIjogIkNhaXJvIENsb2NrIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ25vbWUtc2hlbGwtY2Fpcm8iLAogICJ1dWlkIjogImNhaXJvQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMTcKfQ=="}}}
-, {"uuid": "WallpaperSwitcher@Rishu", "name": "Wallpaper Switcher", "pname": "wallpaper-switcher", "description": "Extension to automatically Change wallpaper after a given interval", "link": "https://extensions.gnome.org/extension/4812/wallpaper-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0a1zkl3dfdbql6d1n7f2l2xi77p8f6vq1f96gyny17vxpjbhghbv", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "4", "sha256": "1ac4wh6rji6c9ydmdvxvhzm27rly42pmyqp7v2hmyfc4f3232rr7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbCIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvV2FsbHBhcGVyU3dpdGNoZXIiLAogICJ1dWlkIjogIldhbGxwYXBlclN3aXRjaGVyQFJpc2h1IiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
+, {"uuid": "WallpaperSwitcher@Rishu", "name": "Wallpaper Switcher", "pname": "wallpaper-switcher", "description": "Extension to automatically Change wallpaper after a given interval\nChangelog:\n* Added option to show the current wallpaper in nautilus\n* Added support for Wallpaper Overlay (gnome extension) so that you have smoother experience when using both extensions together\n* UI changes for prefs window for Gnome42", "link": "https://extensions.gnome.org/extension/4812/wallpaper-switcher/", "shell_version_map": {"38": {"version": "3", "sha256": "1mh86gzk7c1dj23cxqwparwlbg87mysgdpsrgqdqsc8cqyq7dsnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbFxuQ2hhbmdlbG9nOlxuKiBBZGRlZCBvcHRpb24gdG8gc2hvdyB0aGUgY3VycmVudCB3YWxscGFwZXIgaW4gbmF1dGlsdXNcbiogQWRkZWQgc3VwcG9ydCBmb3IgV2FsbHBhcGVyIE92ZXJsYXkgKGdub21lIGV4dGVuc2lvbikgc28gdGhhdCB5b3UgaGF2ZSBzbW9vdGhlciBleHBlcmllbmNlIHdoZW4gdXNpbmcgYm90aCBleHRlbnNpb25zIHRvZ2V0aGVyXG4qIFVJIGNoYW5nZXMgZm9yIHByZWZzIHdpbmRvdyBmb3IgR25vbWU0MiIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "40": {"version": "3", "sha256": "1mh86gzk7c1dj23cxqwparwlbg87mysgdpsrgqdqsc8cqyq7dsnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbFxuQ2hhbmdlbG9nOlxuKiBBZGRlZCBvcHRpb24gdG8gc2hvdyB0aGUgY3VycmVudCB3YWxscGFwZXIgaW4gbmF1dGlsdXNcbiogQWRkZWQgc3VwcG9ydCBmb3IgV2FsbHBhcGVyIE92ZXJsYXkgKGdub21lIGV4dGVuc2lvbikgc28gdGhhdCB5b3UgaGF2ZSBzbW9vdGhlciBleHBlcmllbmNlIHdoZW4gdXNpbmcgYm90aCBleHRlbnNpb25zIHRvZ2V0aGVyXG4qIFVJIGNoYW5nZXMgZm9yIHByZWZzIHdpbmRvdyBmb3IgR25vbWU0MiIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1mh86gzk7c1dj23cxqwparwlbg87mysgdpsrgqdqsc8cqyq7dsnr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbFxuQ2hhbmdlbG9nOlxuKiBBZGRlZCBvcHRpb24gdG8gc2hvdyB0aGUgY3VycmVudCB3YWxscGFwZXIgaW4gbmF1dGlsdXNcbiogQWRkZWQgc3VwcG9ydCBmb3IgV2FsbHBhcGVyIE92ZXJsYXkgKGdub21lIGV4dGVuc2lvbikgc28gdGhhdCB5b3UgaGF2ZSBzbW9vdGhlciBleHBlcmllbmNlIHdoZW4gdXNpbmcgYm90aCBleHRlbnNpb25zIHRvZ2V0aGVyXG4qIFVJIGNoYW5nZXMgZm9yIHByZWZzIHdpbmRvdyBmb3IgR25vbWU0MiIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmlzaHVpbmZpbml0eS9XYWxscGFwZXJTd2l0Y2hlciIsCiAgInV1aWQiOiAiV2FsbHBhcGVyU3dpdGNoZXJAUmlzaHUiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "5", "sha256": "1fvk51lvb572kn240jmllqi2hq3m3q6zdb224ysizll215n6m3i6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhdXRvbWF0aWNhbGx5IENoYW5nZSB3YWxscGFwZXIgYWZ0ZXIgYSBnaXZlbiBpbnRlcnZhbFxuQ2hhbmdlbG9nOlxuKiBBZGRlZCBvcHRpb24gdG8gc2hvdyB0aGUgY3VycmVudCB3YWxscGFwZXIgaW4gbmF1dGlsdXNcbiogQWRkZWQgc3VwcG9ydCBmb3IgV2FsbHBhcGVyIE92ZXJsYXkgKGdub21lIGV4dGVuc2lvbikgc28gdGhhdCB5b3UgaGF2ZSBzbW9vdGhlciBleHBlcmllbmNlIHdoZW4gdXNpbmcgYm90aCBleHRlbnNpb25zIHRvZ2V0aGVyXG4qIFVJIGNoYW5nZXMgZm9yIHByZWZzIHdpbmRvdyBmb3IgR25vbWU0MiIsCiAgIm5hbWUiOiAiV2FsbHBhcGVyIFN3aXRjaGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvV2FsbHBhcGVyU3dpdGNoZXIiLAogICJ1dWlkIjogIldhbGxwYXBlclN3aXRjaGVyQFJpc2h1IiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
 , {"uuid": "areustatus@carissimi.eu", "name": "AREU Status", "pname": "areu-status", "description": "Displays the number of ambulances that are in a mission in Lombardy, Italy", "link": "https://extensions.gnome.org/extension/4814/areu-status/", "shell_version_map": {"38": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "1jycm5xgzp1ph4h9j9m5ki0rn5wabh6gwblc1bc3fn6bx1zplymy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIHRoZSBudW1iZXIgb2YgYW1idWxhbmNlcyB0aGF0IGFyZSBpbiBhIG1pc3Npb24gaW4gTG9tYmFyZHksIEl0YWx5IiwKICAibmFtZSI6ICJBUkVVIFN0YXR1cyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zMCIsCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vci1jYXJpc3NpbWkvYXJldS1zdGF0dXMtZ25vbWUiLAogICJ1dWlkIjogImFyZXVzdGF0dXNAY2FyaXNzaW1pLmV1IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "colorful-battery-indicator@aneruam", "name": "Colorful Battery Indicator", "pname": "colorful-battery-indicator", "description": "Make color of battery indicator change with level of battery charge.\n\nGNOME 42 now supported.", "link": "https://extensions.gnome.org/extension/4817/colorful-battery-indicator/", "shell_version_map": {"38": {"version": "5", "sha256": "0dymvvka5g6qliswd8jayi71y5g12fc08vdy3xyzfvv256j4sxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgY29sb3Igb2YgYmF0dGVyeSBpbmRpY2F0b3IgY2hhbmdlIHdpdGggbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuXG5cbkdOT01FIDQyIG5vdyBzdXBwb3J0ZWQuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZXJ1YS9nbm9tZS1jb2xvcmZ1bC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3JAYW5lcnVhbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0dymvvka5g6qliswd8jayi71y5g12fc08vdy3xyzfvv256j4sxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgY29sb3Igb2YgYmF0dGVyeSBpbmRpY2F0b3IgY2hhbmdlIHdpdGggbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuXG5cbkdOT01FIDQyIG5vdyBzdXBwb3J0ZWQuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZXJ1YS9nbm9tZS1jb2xvcmZ1bC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3JAYW5lcnVhbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0dymvvka5g6qliswd8jayi71y5g12fc08vdy3xyzfvv256j4sxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgY29sb3Igb2YgYmF0dGVyeSBpbmRpY2F0b3IgY2hhbmdlIHdpdGggbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuXG5cbkdOT01FIDQyIG5vdyBzdXBwb3J0ZWQuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZXJ1YS9nbm9tZS1jb2xvcmZ1bC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3JAYW5lcnVhbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "0dymvvka5g6qliswd8jayi71y5g12fc08vdy3xyzfvv256j4sxik", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2UgY29sb3Igb2YgYmF0dGVyeSBpbmRpY2F0b3IgY2hhbmdlIHdpdGggbGV2ZWwgb2YgYmF0dGVyeSBjaGFyZ2UuXG5cbkdOT01FIDQyIG5vdyBzdXBwb3J0ZWQuIiwKICAibmFtZSI6ICJDb2xvcmZ1bCBCYXR0ZXJ5IEluZGljYXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FuZXJ1YS9nbm9tZS1jb2xvcmZ1bC1iYXR0ZXJ5LWluZGljYXRvciIsCiAgInV1aWQiOiAiY29sb3JmdWwtYmF0dGVyeS1pbmRpY2F0b3JAYW5lcnVhbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "inactivity@fedeantuna.github.io", "name": "Inactivity", "pname": "inactivity", "description": "Hide Activities Button on the top panel.", "link": "https://extensions.gnome.org/extension/4818/inactivity/", "shell_version_map": {"41": {"version": "1", "sha256": "1qc16xhgp2wachcxw9ivf8r4nai2k0xj9vph8k0zvc0shwkpjzag", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkluYWN0aXZpdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVkZWFudHVuYS9pbmFjdGl2aXR5IiwKICAidXVpZCI6ICJpbmFjdGl2aXR5QGZlZGVhbnR1bmEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "42": {"version": "4", "sha256": "0capz1lzk9kg7bxaz5ccsnlj3c3sihpxyhx1cys1gq20h76rx9b8", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgQWN0aXZpdGllcyBCdXR0b24gb24gdGhlIHRvcCBwYW5lbC4iLAogICJuYW1lIjogIkluYWN0aXZpdHkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZmVkZWFudHVuYS9pbmFjdGl2aXR5IiwKICAidXVpZCI6ICJpbmFjdGl2aXR5QGZlZGVhbnR1bmEuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
@@ -691,7 +693,7 @@
 , {"uuid": "pop-theme-switcher@dimitris47", "name": "Pop Theme Switcher", "pname": "pop-theme-switcher", "description": "Switch between Pop dark and light themes. It is a fork of adwaita-theme-switcher (https://github.com/fthx/adwaita-theme-switcher).", "link": "https://extensions.gnome.org/extension/4844/pop-theme-switcher/", "shell_version_map": {"38": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0z28xmqdbhvx6cvs4r2rrlyg3r22y5rldlm7dir5hjwyad1qwar2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlN3aXRjaCBiZXR3ZWVuIFBvcCBkYXJrIGFuZCBsaWdodCB0aGVtZXMuIEl0IGlzIGEgZm9yayBvZiBhZHdhaXRhLXRoZW1lLXN3aXRjaGVyIChodHRwczovL2dpdGh1Yi5jb20vZnRoeC9hZHdhaXRhLXRoZW1lLXN3aXRjaGVyKS4iLAogICJuYW1lIjogIlBvcCBUaGVtZSBTd2l0Y2hlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGltaXRyaXM0Ny9wb3AtdGhlbWUtc3dpdGNoZXIiLAogICJ1dWlkIjogInBvcC10aGVtZS1zd2l0Y2hlckBkaW1pdHJpczQ3IiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "dash-to-dock-toggle@kavoyaa.github.com", "name": "Dash to Dock Toggle", "pname": "dash-to-dock-toggle", "description": "Adds a button to top panel to switch Dash to Dock mode between \"always visible\" and \"autohide\".\n\n(Works only with the Dash-to-Dock extension)", "link": "https://extensions.gnome.org/extension/4845/dash-to-dock-toggle/", "shell_version_map": {"40": {"version": "2", "sha256": "0fy9wv78qhipsy5rqdbygi74ycgryvqm98svmpbzhbgg3rb8mdxs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZHMgYSBidXR0b24gdG8gdG9wIHBhbmVsIHRvIHN3aXRjaCBEYXNoIHRvIERvY2sgbW9kZSBiZXR3ZWVuIFwiYWx3YXlzIHZpc2libGVcIiBhbmQgXCJhdXRvaGlkZVwiLlxuXG4oV29ya3Mgb25seSB3aXRoIHRoZSBEYXNoLXRvLURvY2sgZXh0ZW5zaW9uKSIsCiAgIm5hbWUiOiAiRGFzaCB0byBEb2NrIFRvZ2dsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAiZGFzaC10by1kb2NrLXRvZ2dsZUBrYXZveWFhLmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "open@eexpss.gmail.com", "name": "Open Anywhere", "pname": "open-anywhere", "description": "* Copy / Select a full path file / directory name, or incomplete path, or pure file name. Open a context menu to let you choose how to open it, or press Ctrl-Shift-O directlly.", "link": "https://extensions.gnome.org/extension/4848/open-anywhere/", "shell_version_map": {"40": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "41": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "00lcrb7ijn587wq6sxm1x3mlgr02s691l1r7cgl6vmn1i6rsf5rm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQ29weSAvIFNlbGVjdCBhIGZ1bGwgcGF0aCBmaWxlIC8gZGlyZWN0b3J5IG5hbWUsIG9yIGluY29tcGxldGUgcGF0aCwgb3IgcHVyZSBmaWxlIG5hbWUuIE9wZW4gYSBjb250ZXh0IG1lbnUgdG8gbGV0IHlvdSBjaG9vc2UgaG93IHRvIG9wZW4gaXQsIG9yIHByZXNzIEN0cmwtU2hpZnQtTyBkaXJlY3RsbHkuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAib3BlbiIsCiAgIm5hbWUiOiAiT3BlbiBBbnl3aGVyZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5vcGVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtb3BlbiIsCiAgInV1aWQiOiAib3BlbkBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
-, {"uuid": "command-menu@arunk140.com", "name": "Command Menu", "pname": "command-menu", "description": "A GNOME Shell Extension to manage shortcuts in Top Bar (Inspired by Shuttle and SSHMenu). Edit the .commands.json file to add your own shortcuts.\n\nSample Config in the README - https://github.com/arunk140/gnome-command-menu/blob/main/README.md", "link": "https://extensions.gnome.org/extension/4850/command-menu/", "shell_version_map": {"40": {"version": "4", "sha256": "0xqxyryzi1agsfyyp5diawwv6szlk2iygvsgjsn2ngyscz9zcg5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0xqxyryzi1agsfyyp5diawwv6szlk2iygvsgjsn2ngyscz9zcg5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "0xqxyryzi1agsfyyp5diawwv6szlk2iygvsgjsn2ngyscz9zcg5b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
+, {"uuid": "command-menu@arunk140.com", "name": "Command Menu", "pname": "command-menu", "description": "A GNOME Shell Extension to manage shortcuts in Top Bar (Inspired by Shuttle and SSHMenu). Edit the .commands.json file to add your own shortcuts.\n\nSample Config in the README - https://github.com/arunk140/gnome-command-menu/blob/main/README.md", "link": "https://extensions.gnome.org/extension/4850/command-menu/", "shell_version_map": {"40": {"version": "5", "sha256": "1i7ixmnv9g950gqxw1wvz1zq8sp5fi7jg2pwg8rsxijdlm933csn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1i7ixmnv9g950gqxw1wvz1zq8sp5fi7jg2pwg8rsxijdlm933csn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1i7ixmnv9g950gqxw1wvz1zq8sp5fi7jg2pwg8rsxijdlm933csn", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgR05PTUUgU2hlbGwgRXh0ZW5zaW9uIHRvIG1hbmFnZSBzaG9ydGN1dHMgaW4gVG9wIEJhciAoSW5zcGlyZWQgYnkgU2h1dHRsZSBhbmQgU1NITWVudSkuIEVkaXQgdGhlIC5jb21tYW5kcy5qc29uIGZpbGUgdG8gYWRkIHlvdXIgb3duIHNob3J0Y3V0cy5cblxuU2FtcGxlIENvbmZpZyBpbiB0aGUgUkVBRE1FIC0gaHR0cHM6Ly9naXRodWIuY29tL2FydW5rMTQwL2dub21lLWNvbW1hbmQtbWVudS9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJDb21tYW5kIE1lbnUiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9hcnVuazE0MC9nbm9tZS1jb21tYW5kLW1lbnUiLAogICJ1dWlkIjogImNvbW1hbmQtbWVudUBhcnVuazE0MC5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "s76-scheduler@mattjakeman.com", "name": "System76 Scheduler", "pname": "system76-scheduler", "description": "Integrates with System76 Scheduler to prioritise foreground processes.\nNote: system76-scheduler must be installed separately!\nThis extension is not affiliated with nor supported by System76.", "link": "https://extensions.gnome.org/extension/4854/system76-scheduler/", "shell_version_map": {"40": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "0sa3skad3vxbiqq9cy74r6s2nfadxjnjwyl9hnp4p9qwnr5qiwhq", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkludGVncmF0ZXMgd2l0aCBTeXN0ZW03NiBTY2hlZHVsZXIgdG8gcHJpb3JpdGlzZSBmb3JlZ3JvdW5kIHByb2Nlc3Nlcy5cbk5vdGU6IHN5c3RlbTc2LXNjaGVkdWxlciBtdXN0IGJlIGluc3RhbGxlZCBzZXBhcmF0ZWx5IVxuVGhpcyBleHRlbnNpb24gaXMgbm90IGFmZmlsaWF0ZWQgd2l0aCBub3Igc3VwcG9ydGVkIGJ5IFN5c3RlbTc2LiIsCiAgIm5hbWUiOiAiU3lzdGVtNzYgU2NoZWR1bGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWpha2VtYW4vczc2LXNjaGVkdWxlci1wbHVnaW4vIiwKICAidXVpZCI6ICJzNzYtc2NoZWR1bGVyQG1hdHRqYWtlbWFuLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "quarterwindows@troyready.com", "name": "Quarter Windows", "pname": "quarter-windows", "description": "Add additional window management shortcuts.\n\nSee extension homepage for list of shortcuts and commands to customize them.", "link": "https://extensions.gnome.org/extension/4857/quarter-windows/", "shell_version_map": {"41": {"version": "2", "sha256": "00yiqgswcl3psijxi46sb8bxqfxb1a9i93frb90a5292a0x7lmzi", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhZGRpdGlvbmFsIHdpbmRvdyBtYW5hZ2VtZW50IHNob3J0Y3V0cy5cblxuU2VlIGV4dGVuc2lvbiBob21lcGFnZSBmb3IgbGlzdCBvZiBzaG9ydGN1dHMgYW5kIGNvbW1hbmRzIHRvIGN1c3RvbWl6ZSB0aGVtLiIsCiAgIm5hbWUiOiAiUXVhcnRlciBXaW5kb3dzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Ryb3lyZWFkeS9xdWFydGVyd2luZG93cyIsCiAgInV1aWQiOiAicXVhcnRlcndpbmRvd3NAdHJveXJlYWR5LmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 , {"uuid": "batt_consumption_wattmetter@wennaspeedy", "name": "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": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}, "41": {"version": "10", "sha256": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}, "42": {"version": "10", "sha256": "12w9xy5yd8qlqagmzaky4s1c4i6m4pmndncz3lz7299yy913wn6k", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIGFjdHVhbCBjaGFyZ2luZy9kaXNjaGFyZ2luZyBjb25zdW1wdGlvbiAoKy8tKSBpbiBXYXR0IG5leHQgdG8gYmF0dGVyeSBwZXJjZW50YWdlIGxldmVsLlxuRW5hYmxlIHBlcmNlbnRhZ2UgbGFiZWwgd2hlbiBkaXNhYmxlZC5cbkRlZmF1bHQgc3luYyByZWxvYWQgc2V0IHRvIDQgc2Vjb25kcy5cbk5vIGNvbnN1bXB0aW9uIGluZm8gd2hlbiBiYXR0ZXJ5IGlzIGZ1bGwuXG5TZXR0aW5nczogaW50ZXJ2YWwsIHBlcmNlbnRhZ2UgbGFiZWwgKGFsc28gd2hlbiBmdWxsKSwgYmF0dGVyeSBzZWxlY3Rpb24iLAogICJuYW1lIjogIkJhdHRlcnkgQ29uc3VtcHRpb24gV2F0dCBNZXRlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3dlbm5hc3BlZWR5L2JhdHRfY29uc3VtcHRpb25fd2F0dG1ldHRlciIsCiAgInV1aWQiOiAiYmF0dF9jb25zdW1wdGlvbl93YXR0bWV0dGVyQHdlbm5hc3BlZWR5IiwKICAidmVyc2lvbiI6IDEwCn0="}}}
@@ -704,9 +706,9 @@
 , {"uuid": "move-panel@lzbz.gitlab.com", "name": "Move Panel", "pname": "move-panel", "description": "Moves panel to secondary monitor on startup, without changing the primary display. Only works on Wayland.", "link": "https://extensions.gnome.org/extension/4890/move-panel/", "shell_version_map": {"41": {"version": "2", "sha256": "1rr585an3ryfyyfcvkj8g2d76vqk6kr1qr8yzbm7z0aava16syzb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHBhbmVsIHRvIHNlY29uZGFyeSBtb25pdG9yIG9uIHN0YXJ0dXAsIHdpdGhvdXQgY2hhbmdpbmcgdGhlIHByaW1hcnkgZGlzcGxheS4gT25seSB3b3JrcyBvbiBXYXlsYW5kLiIsCiAgIm5hbWUiOiAiTW92ZSBQYW5lbCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDEiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0bGFiLmNvbS9semJ6L21vdmUtcGFuZWwiLAogICJ1dWlkIjogIm1vdmUtcGFuZWxAbHpiei5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "usable-overview@mechtifs", "name": "Usable Overview", "pname": "usable-overview", "description": "Right clicking when activating the top-left hot corner brings up the application grid. It makes way more sense than moving your cursor all  the way down the screen then click that stinky icon.", "link": "https://extensions.gnome.org/extension/4895/usable-overview/", "shell_version_map": {"40": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}, "41": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}, "42": {"version": "1", "sha256": "0pkjsgw8f5m2a9wzph5fim6g4ky842qi5ncfxi5nbcdm7y6gj74f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJpZ2h0IGNsaWNraW5nIHdoZW4gYWN0aXZhdGluZyB0aGUgdG9wLWxlZnQgaG90IGNvcm5lciBicmluZ3MgdXAgdGhlIGFwcGxpY2F0aW9uIGdyaWQuIEl0IG1ha2VzIHdheSBtb3JlIHNlbnNlIHRoYW4gbW92aW5nIHlvdXIgY3Vyc29yIGFsbCAgdGhlIHdheSBkb3duIHRoZSBzY3JlZW4gdGhlbiBjbGljayB0aGF0IHN0aW5reSBpY29uLiIsCiAgIm5hbWUiOiAiVXNhYmxlIE92ZXJ2aWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbWVjaHRpZnMvdXNhYmxlLW92ZXJ2aWV3IiwKICAidXVpZCI6ICJ1c2FibGUtb3ZlcnZpZXdAbWVjaHRpZnMiLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "overview-clicking@mechtifs", "name": "Overview Clicking", "pname": "overview-clicking", "description": "Close the overview or show up application grid by left/right clicking empty space. Forked from click-to-close-overview@l3nn4rt.github.io.", "link": "https://extensions.gnome.org/extension/4898/overview-clicking/", "shell_version_map": {"40": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "10f08rn9m66ynrs5jsgxg4qzrimcjdslgs36s8fgcblr5r31kw8i", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNsb3NlIHRoZSBvdmVydmlldyBvciBzaG93IHVwIGFwcGxpY2F0aW9uIGdyaWQgYnkgbGVmdC9yaWdodCBjbGlja2luZyBlbXB0eSBzcGFjZS4gRm9ya2VkIGZyb20gY2xpY2stdG8tY2xvc2Utb3ZlcnZpZXdAbDNubjRydC5naXRodWIuaW8uIiwKICAibmFtZSI6ICJPdmVydmlldyBDbGlja2luZyIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21lY2h0aWZzL292ZXJ2aWV3LWNsaWNraW5nIiwKICAidXVpZCI6ICJvdmVydmlldy1jbGlja2luZ0BtZWNodGlmcyIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "speed@eexpss.gmail.com", "name": "Screen Net Speed", "pname": "screen-net-speed", "description": "* Animation net speed show on the screen. You can click it to have fun and pass the time. Can be turned on / off at any time.\nScroll Mouse on panel icon, can change the shape.", "link": "https://extensions.gnome.org/extension/4901/screen-net-speed/", "shell_version_map": {"40": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "41": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}, "42": {"version": "5", "sha256": "12qqaadj1wxpwysxndvjsvqr9fk9hk4wkma5gqxhv7rjdq1c4jw2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "speed@eexpss.gmail.com", "name": "Screen Net Speed", "pname": "screen-net-speed", "description": "* Animation net speed show on the screen. You can click it to have fun and pass the time. Can be turned on / off at any time.\nScroll Mouse on panel icon, can change the shape.", "link": "https://extensions.gnome.org/extension/4901/screen-net-speed/", "shell_version_map": {"40": {"version": "6", "sha256": "18wr7jxydm4394bjais986q9qrx8w0kmljyy56z93hmj45pwq0c2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "18wr7jxydm4394bjais986q9qrx8w0kmljyy56z93hmj45pwq0c2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "42": {"version": "6", "sha256": "18wr7jxydm4394bjais986q9qrx8w0kmljyy56z93hmj45pwq0c2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIiogQW5pbWF0aW9uIG5ldCBzcGVlZCBzaG93IG9uIHRoZSBzY3JlZW4uIFlvdSBjYW4gY2xpY2sgaXQgdG8gaGF2ZSBmdW4gYW5kIHBhc3MgdGhlIHRpbWUuIENhbiBiZSB0dXJuZWQgb24gLyBvZmYgYXQgYW55IHRpbWUuXG5TY3JvbGwgTW91c2Ugb24gcGFuZWwgaWNvbiwgY2FuIGNoYW5nZSB0aGUgc2hhcGUuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAic2NyZWVuLW5ldC1zcGVlZCIsCiAgIm5hbWUiOiAiU2NyZWVuIE5ldCBTcGVlZCIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2VleHByZXNzL2dzLXNwZWVkIiwKICAidXVpZCI6ICJzcGVlZEBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "addshutbutton@jerom@olika.ovh", "name": "Add Shutdown Button", "pname": "add-shutdown-button", "description": "Add a button power off", "link": "https://extensions.gnome.org/extension/4905/add-shutdown-button/", "shell_version_map": {"40": {"version": "4", "sha256": "1mjwpm8078d4n2ff5rsq4plp5fhsf91k1f2zar6f5jf650bzz6rh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJ1dHRvbiBwb3dlciBvZmYiLAogICJuYW1lIjogIkFkZCBTaHV0ZG93biBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhZGRzaHV0YnV0dG9uQGplcm9tQG9saWthLm92aCIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "1mjwpm8078d4n2ff5rsq4plp5fhsf91k1f2zar6f5jf650bzz6rh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGJ1dHRvbiBwb3dlciBvZmYiLAogICJuYW1lIjogIkFkZCBTaHV0ZG93biBCdXR0b24iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiIiwKICAidXVpZCI6ICJhZGRzaHV0YnV0dG9uQGplcm9tQG9saWthLm92aCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
-, {"uuid": "eepresetselector@ulville.github.io", "name": "EasyEffects Preset Selector", "pname": "easyeffects-preset-selector", "description": "Quickly show and load EasyEffects Presets", "link": "https://extensions.gnome.org/extension/4907/easyeffects-preset-selector/", "shell_version_map": {"38": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "0p80w0zwwp5d8bgfffszdfa1mklj5w8d7p8wckcvwgc8gbq7i2ih", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
+, {"uuid": "eepresetselector@ulville.github.io", "name": "EasyEffects Preset Selector", "pname": "easyeffects-preset-selector", "description": "Quickly show and load EasyEffects Presets", "link": "https://extensions.gnome.org/extension/4907/easyeffects-preset-selector/", "shell_version_map": {"38": {"version": "7", "sha256": "0bm1n76fhl0ibfac1icshhiw6if5yg5mlmva8sbmjjbri6p5b7ps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "40": {"version": "7", "sha256": "0bm1n76fhl0ibfac1icshhiw6if5yg5mlmva8sbmjjbri6p5b7ps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "41": {"version": "7", "sha256": "0bm1n76fhl0ibfac1icshhiw6if5yg5mlmva8sbmjjbri6p5b7ps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}, "42": {"version": "7", "sha256": "0bm1n76fhl0ibfac1icshhiw6if5yg5mlmva8sbmjjbri6p5b7ps", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgc2hvdyBhbmQgbG9hZCBFYXN5RWZmZWN0cyBQcmVzZXRzIiwKICAibmFtZSI6ICJFYXN5RWZmZWN0cyBQcmVzZXQgU2VsZWN0b3IiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS91bHZpbGxlL2VlcHJlc2V0c2VsZWN0b3IiLAogICJ1dWlkIjogImVlcHJlc2V0c2VsZWN0b3JAdWx2aWxsZS5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "gnomehub@gnome-hub.github.io", "name": "gnomehub", "pname": "gnomehub", "description": "An all in one extension which catagorizes notifications and displays system information", "link": "https://extensions.gnome.org/extension/4913/gnomehub/", "shell_version_map": {"38": {"version": "6", "sha256": "15dgj0jbfhsa0p87gi0ai6c55kj4nj9yz5ydpzamwy69k9jjjcd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "15dgj0jbfhsa0p87gi0ai6c55kj4nj9yz5ydpzamwy69k9jjjcd0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuIGFsbCBpbiBvbmUgZXh0ZW5zaW9uIHdoaWNoIGNhdGFnb3JpemVzIG5vdGlmaWNhdGlvbnMgYW5kIGRpc3BsYXlzIHN5c3RlbSBpbmZvcm1hdGlvbiIsCiAgIm5hbWUiOiAiZ25vbWVodWIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzgiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dub21lLWh1Yi5naXRodWIuaW8vIiwKICAidXVpZCI6ICJnbm9tZWh1YkBnbm9tZS1odWIuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "volume_scroller@noskoski", "name": "Volume Scroller", "pname": "volume-scroller", "description": "Scroll up or down in the Top Bar to adjust volume.", "link": "https://extensions.gnome.org/extension/4916/volume-scroller/", "shell_version_map": {"38": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "40": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}, "42": {"version": "2", "sha256": "0524g5yc4k0sgdy1v6dah5y3nrf95zdl94nmqp5x77nwmdxvdpqm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNjcm9sbCB1cCBvciBkb3duIGluIHRoZSBUb3AgQmFyIHRvIGFkanVzdCB2b2x1bWUuIiwKICAibmFtZSI6ICJWb2x1bWUgU2Nyb2xsZXIiLAogICJvcmlnaW5hbC1hdXRob3IiOiAidHJmbHlubjg5QHBtLm1lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbm9za29za2kvZ25vbWUtc2hlbGwtdm9sdW1lLXNjcm9sbGVyIiwKICAidXVpZCI6ICJ2b2x1bWVfc2Nyb2xsZXJAbm9za29za2kiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "weather@eexpss.gmail.com", "name": "Weather", "pname": "weather", "description": "Animation Weather. \nMouse 1: show weather\nMouse 2: refresh weather\nMouse 3: dismiss\nScrollUp: increase day\nScrollDown: decrease day", "link": "https://extensions.gnome.org/extension/4919/weather/", "shell_version_map": {"40": {"version": "3", "sha256": "0a9sgmpmj0xr9b2bqp0q11n4zzs47vfnbk24428b3g024cfhya75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "0a9sgmpmj0xr9b2bqp0q11n4zzs47vfnbk24428b3g024cfhya75", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJuYW1lIjogIldlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy13ZWF0aGVyIiwKICAidXVpZCI6ICJ3ZWF0aGVyQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "10", "sha256": "0sqqdjhg6i67v8zr7zmf5kflba2vnyk6hnyxkk896sc1rsx8lr16", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGlvbiBXZWF0aGVyLiBcbk1vdXNlIDE6IHNob3cgd2VhdGhlclxuTW91c2UgMjogcmVmcmVzaCB3ZWF0aGVyXG5Nb3VzZSAzOiBkaXNtaXNzXG5TY3JvbGxVcDogaW5jcmVhc2UgZGF5XG5TY3JvbGxEb3duOiBkZWNyZWFzZSBkYXkiLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ3ZWF0aGVyIiwKICAibmFtZSI6ICJXZWF0aGVyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLndlYXRoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3Mtd2VhdGhlciIsCiAgInV1aWQiOiAid2VhdGhlckBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDEwCn0="}}}
@@ -719,7 +721,7 @@
 , {"uuid": "aztaskbar@aztaskbar.gitlab.com", "name": "App Icons Taskbar", "pname": "app-icons-taskbar", "description": "A simple app icon taskbar. Show running apps and favorites on the main panel.", "link": "https://extensions.gnome.org/extension/4944/app-icons-taskbar/", "shell_version_map": {"41": {"version": "7", "sha256": "1slix3771pmzdbhwsacssvbplfgsg7sq1in4xrja3wfz5ffikdb7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRsYWIuY29tL0FuZHJld1phZWNoL2F6dGFza2JhciIsCiAgInV1aWQiOiAiYXp0YXNrYmFyQGF6dGFza2Jhci5naXRsYWIuY29tIiwKICAidmVyc2lvbiI6IDcKfQ=="}, "42": {"version": "10", "sha256": "1jqgxxmbpy707jvbmaqnw49gk3w7mlrvpz6ddk9dvm2y8zr5dspy", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIGFwcCBpY29uIHRhc2tiYXIuIFNob3cgcnVubmluZyBhcHBzIGFuZCBmYXZvcml0ZXMgb24gdGhlIG1haW4gcGFuZWwuIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiYXp0YXNrYmFyIiwKICAibmFtZSI6ICJBcHAgSWNvbnMgVGFza2JhciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5henRhc2tiYXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vQW5kcmV3WmFlY2gvYXp0YXNrYmFyIiwKICAidXVpZCI6ICJhenRhc2tiYXJAYXp0YXNrYmFyLmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMTAKfQ=="}}}
 , {"uuid": "netSpeedMonitor@nidyran.github.io", "name": "net speed monitor", "pname": "net-speed-monitor", "description": "This extension helps tracking and monitoring network speed. \nThere are five modes: \n1 - download speed only. \n2 - upload speed only. \n3 - download speed and upload speed together. \n4 - download speed and upload speed summed. \n5 - total data usage \nTo switch between modes, use left mouse click. \nTo switch between available sources, use right mouse click. \nTo change refresh time 200 - 1000 use middle mouse click. \nThe first source with usage higher than zero will be picked by default. \nThe extension will pick the first source by default, and if no traffic is established it will switch to the next one and so on\nThe source code is available in the link below, update requests are welcome.", "link": "https://extensions.gnome.org/extension/4947/net-speed-monitor/", "shell_version_map": {"38": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "40": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}, "41": {"version": "5", "sha256": "1zvp8zx82kqbf9ck55csgcysld3z1gr3cigkl5y73s5rvqj3ks5n", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRoaXMgZXh0ZW5zaW9uIGhlbHBzIHRyYWNraW5nIGFuZCBtb25pdG9yaW5nIG5ldHdvcmsgc3BlZWQuIFxuVGhlcmUgYXJlIGZpdmUgbW9kZXM6IFxuMSAtIGRvd25sb2FkIHNwZWVkIG9ubHkuIFxuMiAtIHVwbG9hZCBzcGVlZCBvbmx5LiBcbjMgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHRvZ2V0aGVyLiBcbjQgLSBkb3dubG9hZCBzcGVlZCBhbmQgdXBsb2FkIHNwZWVkIHN1bW1lZC4gXG41IC0gdG90YWwgZGF0YSB1c2FnZSBcblRvIHN3aXRjaCBiZXR3ZWVuIG1vZGVzLCB1c2UgbGVmdCBtb3VzZSBjbGljay4gXG5UbyBzd2l0Y2ggYmV0d2VlbiBhdmFpbGFibGUgc291cmNlcywgdXNlIHJpZ2h0IG1vdXNlIGNsaWNrLiBcblRvIGNoYW5nZSByZWZyZXNoIHRpbWUgMjAwIC0gMTAwMCB1c2UgbWlkZGxlIG1vdXNlIGNsaWNrLiBcblRoZSBmaXJzdCBzb3VyY2Ugd2l0aCB1c2FnZSBoaWdoZXIgdGhhbiB6ZXJvIHdpbGwgYmUgcGlja2VkIGJ5IGRlZmF1bHQuIFxuVGhlIGV4dGVuc2lvbiB3aWxsIHBpY2sgdGhlIGZpcnN0IHNvdXJjZSBieSBkZWZhdWx0LCBhbmQgaWYgbm8gdHJhZmZpYyBpcyBlc3RhYmxpc2hlZCBpdCB3aWxsIHN3aXRjaCB0byB0aGUgbmV4dCBvbmUgYW5kIHNvIG9uXG5UaGUgc291cmNlIGNvZGUgaXMgYXZhaWxhYmxlIGluIHRoZSBsaW5rIGJlbG93LCB1cGRhdGUgcmVxdWVzdHMgYXJlIHdlbGNvbWUuIiwKICAibmFtZSI6ICJuZXQgc3BlZWQgbW9uaXRvciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiMy4zNCIsCiAgICAiMy4zMiIsCiAgICAiMy4zNiIsCiAgICAiMy4zOCIsCiAgICAiNDAiLAogICAgIjQxIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbmlkeXJhbi9uZXRTcGVlZE1vbml0b3IvIiwKICAidXVpZCI6ICJuZXRTcGVlZE1vbml0b3JAbmlkeXJhbi5naXRodWIuaW8iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "gradienttopbar@pshow.org", "name": "Gradient Top Bar for Gnome 40+", "pname": "gradient-top-bar", "description": "Makes GNOME's topbar's background gradient. This extension is based on https://extensions.gnome.org/extension/1264/gradient-top-bar/", "link": "https://extensions.gnome.org/extension/4955/gradient-top-bar/", "shell_version_map": {"38": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "40": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "41": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}, "42": {"version": "2", "sha256": "0fljxnp8a6gxw13iaj5p5gh6zd2xy0hk4xc3ia3zl0vgs5jfhbby", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1ha2VzIEdOT01FJ3MgdG9wYmFyJ3MgYmFja2dyb3VuZCBncmFkaWVudC4gVGhpcyBleHRlbnNpb24gaXMgYmFzZWQgb24gaHR0cHM6Ly9leHRlbnNpb25zLmdub21lLm9yZy9leHRlbnNpb24vMTI2NC9ncmFkaWVudC10b3AtYmFyLyIsCiAgIm5hbWUiOiAiR3JhZGllbnQgVG9wIEJhciBmb3IgR25vbWUgNDArIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcGV0YXItdi9ncmFkaWVudHRvcGJhciIsCiAgInV1aWQiOiAiZ3JhZGllbnR0b3BiYXJAcHNob3cub3JnIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
-, {"uuid": "clipman@popov895.ukr.net", "name": "Clipman", "pname": "clipman", "description": "Simple clipboard manager.", "link": "https://extensions.gnome.org/extension/4958/clipman/", "shell_version_map": {"40": {"version": "10", "sha256": "1z0nrwmsf4amp1jhgfwqbvsajjanwvnh0b9hn8giidqaz17fxdk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "1z0nrwmsf4amp1jhgfwqbvsajjanwvnh0b9hn8giidqaz17fxdk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "12", "sha256": "14l1k5157yk3lbcd859f1biifx9lnk340w67lrqkdidyj462fgq4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzZXNzaW9uLW1vZGVzIjogWwogICAgInVzZXIiLAogICAgInVubG9jay1kaWFsb2ciCiAgXSwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3BvcG92ODk1L0NsaXBtYW4iLAogICJ1dWlkIjogImNsaXBtYW5AcG9wb3Y4OTUudWtyLm5ldCIsCiAgInZlcnNpb24iOiAxMgp9"}}}
+, {"uuid": "clipman@popov895.ukr.net", "name": "Clipman", "pname": "clipman", "description": "Simple clipboard manager.", "link": "https://extensions.gnome.org/extension/4958/clipman/", "shell_version_map": {"40": {"version": "10", "sha256": "1z0nrwmsf4amp1jhgfwqbvsajjanwvnh0b9hn8giidqaz17fxdk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "41": {"version": "10", "sha256": "1z0nrwmsf4amp1jhgfwqbvsajjanwvnh0b9hn8giidqaz17fxdk4", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9wb3Bvdjg5NS9DbGlwbWFuIiwKICAidXVpZCI6ICJjbGlwbWFuQHBvcG92ODk1LnVrci5uZXQiLAogICJ2ZXJzaW9uIjogMTAKfQ=="}, "42": {"version": "14", "sha256": "0r1vd0z81fib8zhmcw7fapa5bd3qmnr0d14zlxyrf4wd0l23h5gw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBjbGlwYm9hcmQgbWFuYWdlci4iLAogICJuYW1lIjogIkNsaXBtYW4iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcG9wb3Y4OTUvQ2xpcG1hbiIsCiAgInV1aWQiOiAiY2xpcG1hbkBwb3Bvdjg5NS51a3IubmV0IiwKICAidmVyc2lvbiI6IDE0Cn0="}}}
 , {"uuid": "note@eexpss.gmail.com", "name": "note", "pname": "note", "description": "Add selected text to Note.\n- Notes automatic recognition and sort as 'Directory' 'Command' 'Clipboard'.\n- 'Directory': Mouse 1/2/3 act as 'Open in Files/Open in termianl/Paste dir'. It can be used as a temporary bookmark. And any click will change the working diretory in real time.\n- 'Command': Mouse 1/3 as 'Excute command in Terminal/Paste cmd'.\n- 'Clipboard': Mouse act as 'Paste to Clipboard(PRIMARY)'.\n- Terminal support kgx(new gnome-console) and gnome-terminal.", "link": "https://extensions.gnome.org/extension/4962/note/", "shell_version_map": {"42": {"version": "7", "sha256": "1niwlhls41l92g0bcllp4y4bdhn7k310514xkd36rn61pqz9b7q6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFkZCBzZWxlY3RlZCB0ZXh0IHRvIE5vdGUuXG4tIE5vdGVzIGF1dG9tYXRpYyByZWNvZ25pdGlvbiBhbmQgc29ydCBhcyAnRGlyZWN0b3J5JyAnQ29tbWFuZCcgJ0NsaXBib2FyZCcuXG4tICdEaXJlY3RvcnknOiBNb3VzZSAxLzIvMyBhY3QgYXMgJ09wZW4gaW4gRmlsZXMvT3BlbiBpbiB0ZXJtaWFubC9QYXN0ZSBkaXInLiBJdCBjYW4gYmUgdXNlZCBhcyBhIHRlbXBvcmFyeSBib29rbWFyay4gQW5kIGFueSBjbGljayB3aWxsIGNoYW5nZSB0aGUgd29ya2luZyBkaXJldG9yeSBpbiByZWFsIHRpbWUuXG4tICdDb21tYW5kJzogTW91c2UgMS8zIGFzICdFeGN1dGUgY29tbWFuZCBpbiBUZXJtaW5hbC9QYXN0ZSBjbWQnLlxuLSAnQ2xpcGJvYXJkJzogTW91c2UgYWN0IGFzICdQYXN0ZSB0byBDbGlwYm9hcmQoUFJJTUFSWSknLlxuLSBUZXJtaW5hbCBzdXBwb3J0IGtneChuZXcgZ25vbWUtY29uc29sZSkgYW5kIGdub21lLXRlcm1pbmFsLiIsCiAgImdldHRleHQtZG9tYWluIjogIm5vdGUiLAogICJuYW1lIjogIm5vdGUiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMubm90ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9lZXhwcmVzcy9ncy1ub3RlIiwKICAidXVpZCI6ICJub3RlQGVleHBzcy5nbWFpbC5jb20iLAogICJ2ZXJzaW9uIjogNwp9"}}}
 , {"uuid": "ddnet-friends-panel@hus3h", "name": "DDNet Friends Panel", "pname": "ddnet-friends-panel", "description": "Automatically check for online DDNet friends and join them from your top bar.\n\nThis extension will check for online DDNet friends every 1 minute and show their count in your top bar. You can click the indicator to expand the panel and see more details like what map each friend is playing, you can click on a friend list item to launch the game and connect to the server they are in.\n\nMore details: https://github.com/hus3h/gnome-shell-extension-ddnet-friends-panel", "link": "https://extensions.gnome.org/extension/4965/ddnet-friends-panel/", "shell_version_map": {"40": {"version": "1", "sha256": "1v0axd614hrrrzqps6nkg9daki8fcykfd20w201gxvdnmrvfspkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGFuZCBqb2luIHRoZW0gZnJvbSB5b3VyIHRvcCBiYXIuXG5cblRoaXMgZXh0ZW5zaW9uIHdpbGwgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGV2ZXJ5IDEgbWludXRlIGFuZCBzaG93IHRoZWlyIGNvdW50IGluIHlvdXIgdG9wIGJhci4gWW91IGNhbiBjbGljayB0aGUgaW5kaWNhdG9yIHRvIGV4cGFuZCB0aGUgcGFuZWwgYW5kIHNlZSBtb3JlIGRldGFpbHMgbGlrZSB3aGF0IG1hcCBlYWNoIGZyaWVuZCBpcyBwbGF5aW5nLCB5b3UgY2FuIGNsaWNrIG9uIGEgZnJpZW5kIGxpc3QgaXRlbSB0byBsYXVuY2ggdGhlIGdhbWUgYW5kIGNvbm5lY3QgdG8gdGhlIHNlcnZlciB0aGV5IGFyZSBpbi5cblxuTW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vaHVzM2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkbmV0LWZyaWVuZHMtcGFuZWwiLAogICJuYW1lIjogIkRETmV0IEZyaWVuZHMgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1czNoL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZG5ldC1mcmllbmRzLXBhbmVsIiwKICAidXVpZCI6ICJkZG5ldC1mcmllbmRzLXBhbmVsQGh1czNoIiwKICAidmVyc2lvbiI6IDEKfQ=="}, "41": {"version": "1", "sha256": "1v0axd614hrrrzqps6nkg9daki8fcykfd20w201gxvdnmrvfspkc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpY2FsbHkgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGFuZCBqb2luIHRoZW0gZnJvbSB5b3VyIHRvcCBiYXIuXG5cblRoaXMgZXh0ZW5zaW9uIHdpbGwgY2hlY2sgZm9yIG9ubGluZSBERE5ldCBmcmllbmRzIGV2ZXJ5IDEgbWludXRlIGFuZCBzaG93IHRoZWlyIGNvdW50IGluIHlvdXIgdG9wIGJhci4gWW91IGNhbiBjbGljayB0aGUgaW5kaWNhdG9yIHRvIGV4cGFuZCB0aGUgcGFuZWwgYW5kIHNlZSBtb3JlIGRldGFpbHMgbGlrZSB3aGF0IG1hcCBlYWNoIGZyaWVuZCBpcyBwbGF5aW5nLCB5b3UgY2FuIGNsaWNrIG9uIGEgZnJpZW5kIGxpc3QgaXRlbSB0byBsYXVuY2ggdGhlIGdhbWUgYW5kIGNvbm5lY3QgdG8gdGhlIHNlcnZlciB0aGV5IGFyZSBpbi5cblxuTW9yZSBkZXRhaWxzOiBodHRwczovL2dpdGh1Yi5jb20vaHVzM2gvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWRkbmV0LWZyaWVuZHMtcGFuZWwiLAogICJuYW1lIjogIkRETmV0IEZyaWVuZHMgUGFuZWwiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2h1czNoL2dub21lLXNoZWxsLWV4dGVuc2lvbi1kZG5ldC1mcmllbmRzLXBhbmVsIiwKICAidXVpZCI6ICJkZG5ldC1mcmllbmRzLXBhbmVsQGh1czNoIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"uuid": "theme-switcher@fthx", "name": "Light/Dark Theme Switcher", "pname": "lightdark-theme-switcher", "description": "Button in panel: switch between global dark and light themes. For GNOME Shell 42+.", "link": "https://extensions.gnome.org/extension/4968/lightdark-theme-switcher/", "shell_version_map": {"42": {"version": "4", "sha256": "09chmx04cxs42zpz8i7535nhggd681g11zkawwagq225gsma0yls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkJ1dHRvbiBpbiBwYW5lbDogc3dpdGNoIGJldHdlZW4gZ2xvYmFsIGRhcmsgYW5kIGxpZ2h0IHRoZW1lcy4gRm9yIEdOT01FIFNoZWxsIDQyKy4iLAogICJuYW1lIjogIkxpZ2h0L0RhcmsgVGhlbWUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC90aGVtZS1zd2l0Y2hlciIsCiAgInV1aWQiOiAidGhlbWUtc3dpdGNoZXJAZnRoeCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
@@ -729,15 +731,15 @@
 , {"uuid": "nextcloud-folder@cosinus.org", "name": "Nextcloud Folder", "pname": "nextcloud-folder", "description": "Simple and lightweight GNOME 42+ extension to open Nextcloud folder in one click.", "link": "https://extensions.gnome.org/extension/4983/nextcloud-folder/", "shell_version_map": {"42": {"version": "4", "sha256": "1cdkfd03y0bfh09m40zikl51mcli311sarjqicnnqw6bzj1zqskj", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBhbmQgbGlnaHR3ZWlnaHQgR05PTUUgNDIrIGV4dGVuc2lvbiB0byBvcGVuIE5leHRjbG91ZCBmb2xkZXIgaW4gb25lIGNsaWNrLiIsCiAgIm5hbWUiOiAiTmV4dGNsb3VkIEZvbGRlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5uZXh0Y2xvdWQtZm9sZGVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2FsZXNjZGIvbmV4dGNsb3VkLWZvbGRlciIsCiAgInV1aWQiOiAibmV4dGNsb3VkLWZvbGRlckBjb3NpbnVzLm9yZyIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "php-laravel-valet@rahulhaque", "name": "PHP Laravel Valet", "pname": "php-laravel-valet", "description": "A PHP Laravel Valet status indicator and manager.", "link": "https://extensions.gnome.org/extension/4985/php-laravel-valet/", "shell_version_map": {"40": {"version": "4", "sha256": "0h1hfh8i6sqzi0dy0sbh35s7flncqwpsxha4yr1bgrmg2a0gshzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogNAp9"}, "41": {"version": "4", "sha256": "0h1hfh8i6sqzi0dy0sbh35s7flncqwpsxha4yr1bgrmg2a0gshzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogNAp9"}, "42": {"version": "4", "sha256": "0h1hfh8i6sqzi0dy0sbh35s7flncqwpsxha4yr1bgrmg2a0gshzw", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgUEhQIExhcmF2ZWwgVmFsZXQgc3RhdHVzIGluZGljYXRvciBhbmQgbWFuYWdlci4iLAogICJuYW1lIjogIlBIUCBMYXJhdmVsIFZhbGV0IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vcmFodWxoYXF1ZS9waHAtbGFyYXZlbC12YWxldC1nbm9tZS1zaGVsbC1leHRlbnNpb24iLAogICJ1dWlkIjogInBocC1sYXJhdmVsLXZhbGV0QHJhaHVsaGFxdWUiLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"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="}, "40": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "05cwv23w1438pg38ixhrvm360g3s11vrl8wqk84ai2xgydy94z2f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgc2ltcGxlIEluZGljYXRvciB0aGF0IHNob3dzIG15IGhvbWUtc2VydmVyIHN0YXR1cyAob25saW5lIC8gb2ZmbGluZSkgb24gdGhlIG1haW4gcGFuZWwuIEZ1cnRoZXJtb3JlIGEgd2FrZSBvbiBsYW4gY2FuIGJlIHRyaWdnZXJlZC4gRm9yIFdPTCBmdW5jdGlvbmFsaXR5LCBpdHMgbmVjZXNzYXJ5IHRoYXQgeW91IGhhdmUgJ3dha2VvbmxhbicgaW5zdGFsbGVkLiIsCiAgIm1pbm9yIjogMSwKICAibmFtZSI6ICJIb21lLVNlcnZlciIsCiAgInJldmlzaW9uIjogMSwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLkhvbWUtU2VydmVyIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL3d3dy5zdmVuLWtyYW1lci5ldS9saW51eC9nbm9tZS1zaGVsbC1leHRlbnNpb24vaG9tZS1zZXJ2ZXIvIiwKICAidXVpZCI6ICJIb21lLVNlcnZlckBzdmVuLmtyYW1lciIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "dash2dock-lite@icedman.github.com", "name": "Dash2Dock Lite", "pname": "dash2dock-lite", "description": "minimal implementation of dash to dock", "link": "https://extensions.gnome.org/extension/4994/dash2dock-lite/", "shell_version_map": {"40": {"version": "4", "sha256": "0yy89lar0yzm9kdafxa82nrczbim13jjca4n7lppmnlxpyndfph2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "41": {"version": "4", "sha256": "0yy89lar0yzm9kdafxa82nrczbim13jjca4n7lppmnlxpyndfph2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}, "42": {"version": "4", "sha256": "0yy89lar0yzm9kdafxa82nrczbim13jjca4n7lppmnlxpyndfph2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA0Cn0="}}}
+, {"uuid": "dash2dock-lite@icedman.github.com", "name": "Dash2Dock Lite", "pname": "dash2dock-lite", "description": "minimal implementation of dash to dock", "link": "https://extensions.gnome.org/extension/4994/dash2dock-lite/", "shell_version_map": {"40": {"version": "5", "sha256": "06x55wbmb1jrw6v4kc21lyg05iwzlzpkpgrqxhs5svbglchnird7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "06x55wbmb1jrw6v4kc21lyg05iwzlzpkpgrqxhs5svbglchnird7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "06x55wbmb1jrw6v4kc21lyg05iwzlzpkpgrqxhs5svbglchnird7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIm1pbmltYWwgaW1wbGVtZW50YXRpb24gb2YgZGFzaCB0byBkb2NrIiwKICAiZ2V0dGV4dC1kb21haW4iOiAiZGFzaDJkb2NrLWxpdGUiLAogICJuYW1lIjogIkRhc2gyRG9jayBMaXRlIiwKICAib3JpZ2luYWwtYXV0aG9ycyI6IFsKICAgICJpY2VkbWFuIgogIF0sCiAgInNjaGVtYS1pZCI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5kYXNoMmRvY2stbGl0ZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ljZWRtYW4vZGFzaDJkb2NrLWxpdGUiLAogICJ1dWlkIjogImRhc2gyZG9jay1saXRlQGljZWRtYW4uZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"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=="}, "41": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}, "42": {"version": "4", "sha256": "1p110wz7wdr51z2fsn6z72lcnln13h8lfbw9a00hs9qb0y71qf5q", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFuaW1hdGVkIHNtYWxsIG1hbiBydW4gdGhyb3VnaCB0aGUgc2NyZWVuLiBTY3JvbGwgbW91c2UgY2FuIGNoYW5nZSBkZWZlcmVudCBjaGFyYWN0ZXIuIFlvdSBjYW4gdXNlIHlvdXIgUE5HIGNoYXJhY3RlcnMgaW5zdGVhZCBvZiB0aGUgb3JpZ2luYWwgb25lcy4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJhbmltYXRlIiwKICAibmFtZSI6ICJhbmltYXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWV4cHJlc3MvZ3MtYW5pbWF0ZSIsCiAgInV1aWQiOiAiYW5pbWF0ZUBlZXhwc3MuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"uuid": "legacyschemeautoswitcher@joshimukul29.gmail.com", "name": "Legacy (GTK3) Theme Scheme Auto Switcher", "pname": "legacy-gtk3-theme-scheme-auto-switcher", "description": "Change the GTK3 theme to light/dark variant based on the system color scheme on Gnome 42", "link": "https://extensions.gnome.org/extension/4998/legacy-gtk3-theme-scheme-auto-switcher/", "shell_version_map": {"42": {"version": "2", "sha256": "0wfp9ixy40d63r0c09dfgjdb3yv434yvjlcpk2g5zwzbbyicrv7r", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkNoYW5nZSB0aGUgR1RLMyB0aGVtZSB0byBsaWdodC9kYXJrIHZhcmlhbnQgYmFzZWQgb24gdGhlIHN5c3RlbSBjb2xvciBzY2hlbWUgb24gR25vbWUgNDIiLAogICJuYW1lIjogIkxlZ2FjeSAoR1RLMykgVGhlbWUgU2NoZW1lIEF1dG8gU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vbXVrdWwyOS9sZWdhY3ktdGhlbWUtYXV0by1zd2l0Y2hlci1nbm9tZS1leHRlbnNpb24iLAogICJ1dWlkIjogImxlZ2FjeXNjaGVtZWF1dG9zd2l0Y2hlckBqb3NoaW11a3VsMjkuZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "dash-to-dock-cosmic-@halfmexicanhalfamazing@gmail.com", "name": "Dash to Dock for COSMIC", "pname": "dash-to-dock-for-cosmic", "description": "A Dash to Dock fork for the COSMIC/GNOME Shell, fixes conflict with Cosmic Workspace.  It prevents Cosmic Workspaces from breaking after suspend.", "link": "https://extensions.gnome.org/extension/5004/dash-to-dock-for-cosmic/", "shell_version_map": {"40": {"version": "1", "sha256": "09chdybydr3q3f630w42wx81g0zb4kzp3mnwijj9dqsvjimag8n2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgRGFzaCB0byBEb2NrIGZvcmsgZm9yIHRoZSBDT1NNSUMvR05PTUUgU2hlbGwsIGZpeGVzIGNvbmZsaWN0IHdpdGggQ29zbWljIFdvcmtzcGFjZS4gIEl0IHByZXZlbnRzIENvc21pYyBXb3Jrc3BhY2VzIGZyb20gYnJlYWtpbmcgYWZ0ZXIgc3VzcGVuZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXNodG9kb2NrIiwKICAibmFtZSI6ICJEYXNoIHRvIERvY2sgZm9yIENPU01JQyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJtaWN4Z3hAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFsZm1leGljYW4vZGFzaC10by1kb2NrLXBvcC90cmVlL3VidW50dS1kb2NrIiwKICAidXVpZCI6ICJkYXNoLXRvLWRvY2stY29zbWljLUBoYWxmbWV4aWNhbmhhbGZhbWF6aW5nQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "09chdybydr3q3f630w42wx81g0zb4kzp3mnwijj9dqsvjimag8n2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgRGFzaCB0byBEb2NrIGZvcmsgZm9yIHRoZSBDT1NNSUMvR05PTUUgU2hlbGwsIGZpeGVzIGNvbmZsaWN0IHdpdGggQ29zbWljIFdvcmtzcGFjZS4gIEl0IHByZXZlbnRzIENvc21pYyBXb3Jrc3BhY2VzIGZyb20gYnJlYWtpbmcgYWZ0ZXIgc3VzcGVuZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXNodG9kb2NrIiwKICAibmFtZSI6ICJEYXNoIHRvIERvY2sgZm9yIENPU01JQyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJtaWN4Z3hAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFsZm1leGljYW4vZGFzaC10by1kb2NrLXBvcC90cmVlL3VidW50dS1kb2NrIiwKICAidXVpZCI6ICJkYXNoLXRvLWRvY2stY29zbWljLUBoYWxmbWV4aWNhbmhhbGZhbWF6aW5nQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "09chdybydr3q3f630w42wx81g0zb4kzp3mnwijj9dqsvjimag8n2", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgRGFzaCB0byBEb2NrIGZvcmsgZm9yIHRoZSBDT1NNSUMvR05PTUUgU2hlbGwsIGZpeGVzIGNvbmZsaWN0IHdpdGggQ29zbWljIFdvcmtzcGFjZS4gIEl0IHByZXZlbnRzIENvc21pYyBXb3Jrc3BhY2VzIGZyb20gYnJlYWtpbmcgYWZ0ZXIgc3VzcGVuZC4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJkYXNodG9kb2NrIiwKICAibmFtZSI6ICJEYXNoIHRvIERvY2sgZm9yIENPU01JQyIsCiAgIm9yaWdpbmFsLWF1dGhvciI6ICJtaWN4Z3hAZ21haWwuY29tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaGFsZm1leGljYW4vZGFzaC10by1kb2NrLXBvcC90cmVlL3VidW50dS1kb2NrIiwKICAidXVpZCI6ICJkYXNoLXRvLWRvY2stY29zbWljLUBoYWxmbWV4aWNhbmhhbGZhbWF6aW5nQGdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
-, {"uuid": "rclone-manager@germanztz.com", "name": "rclone-manager", "pname": "rclone-manager", "description": "Is like Dropbox sync client but for more than 30 services, adds an indicator to the top panel so you can manage the rclone profiles configured in your system, perform operations such as mount as remote, watch for file modifications, sync with remote storage, navigate it's main folder. Also, it shows the status of each profile so you can supervise the operations, and provides an easy access log of events. Backup and restore the rclone configuration file, so you won't have to configure all your devices one by one", "link": "https://extensions.gnome.org/extension/5006/rclone-manager/", "shell_version_map": {"40": {"version": "1", "sha256": "0r9k51xhhbpvjlxl5zz560mgpqh4s327sckgqmvhamps2fx0zcd6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMjQiLAogICAgIjMuMjYiLAogICAgIjMuMjgiLAogICAgIjMuMzAiLAogICAgIjMuMzQiLAogICAgIjMuMzIiLAogICAgIjMuMzYiLAogICAgIjQwIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZ2VybWFuenR6L2dub21lLXNoZWxsLWV4dGVuc2lvbi1yY2xvbmUtbWFuYWdlciIsCiAgInV1aWQiOiAicmNsb25lLW1hbmFnZXJAZ2VybWFuenR6LmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "rclone-manager@germanztz.com", "name": "rclone-manager", "pname": "rclone-manager", "description": "Is like Dropbox sync client but for more than 30 services, adds an indicator to the top panel so you can manage the rclone profiles configured in your system, perform operations such as mount as remote, watch for file modifications, sync with remote storage, navigate it's main folder. Also, it shows the status of each profile so you can supervise the operations, and provides an easy access log of events. Backup and restore the rclone configuration file, so you won't have to configure all your devices one by one", "link": "https://extensions.gnome.org/extension/5006/rclone-manager/", "shell_version_map": {"40": {"version": "5", "sha256": "1zl4m9mqy8xxxxqa47z40w0rhyspj39rzaav3q1mlm23r0aj5gni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlcm1hbnp0ei9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmNsb25lLW1hbmFnZXIiLAogICJ1dWlkIjogInJjbG9uZS1tYW5hZ2VyQGdlcm1hbnp0ei5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}, "42": {"version": "5", "sha256": "1zl4m9mqy8xxxxqa47z40w0rhyspj39rzaav3q1mlm23r0aj5gni", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIklzIGxpa2UgRHJvcGJveCBzeW5jIGNsaWVudCBidXQgZm9yIG1vcmUgdGhhbiAzMCBzZXJ2aWNlcywgYWRkcyBhbiBpbmRpY2F0b3IgdG8gdGhlIHRvcCBwYW5lbCBzbyB5b3UgY2FuIG1hbmFnZSB0aGUgcmNsb25lIHByb2ZpbGVzIGNvbmZpZ3VyZWQgaW4geW91ciBzeXN0ZW0sIHBlcmZvcm0gb3BlcmF0aW9ucyBzdWNoIGFzIG1vdW50IGFzIHJlbW90ZSwgd2F0Y2ggZm9yIGZpbGUgbW9kaWZpY2F0aW9ucywgc3luYyB3aXRoIHJlbW90ZSBzdG9yYWdlLCBuYXZpZ2F0ZSBpdCdzIG1haW4gZm9sZGVyLiBBbHNvLCBpdCBzaG93cyB0aGUgc3RhdHVzIG9mIGVhY2ggcHJvZmlsZSBzbyB5b3UgY2FuIHN1cGVydmlzZSB0aGUgb3BlcmF0aW9ucywgYW5kIHByb3ZpZGVzIGFuIGVhc3kgYWNjZXNzIGxvZyBvZiBldmVudHMuIEJhY2t1cCBhbmQgcmVzdG9yZSB0aGUgcmNsb25lIGNvbmZpZ3VyYXRpb24gZmlsZSwgc28geW91IHdvbid0IGhhdmUgdG8gY29uZmlndXJlIGFsbCB5b3VyIGRldmljZXMgb25lIGJ5IG9uZSIsCiAgIm5hbWUiOiAicmNsb25lLW1hbmFnZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjMuMzYiLAogICAgIjQwIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2dlcm1hbnp0ei9nbm9tZS1zaGVsbC1leHRlbnNpb24tcmNsb25lLW1hbmFnZXIiLAogICJ1dWlkIjogInJjbG9uZS1tYW5hZ2VyQGdlcm1hbnp0ei5jb20iLAogICJ2ZXJzaW9uIjogNQp9"}}}
 , {"uuid": "GPU_profile_selector@lorenzo9904.gmail.com", "name": "GPU profile selector", "pname": "gpu-profile-selector", "description": "You need also envycontrol(https://github.com/geminis3/envycontrol) for making this extension working. A simple gnome shell extension for switching GPU profiles on Nvidia Optimus systems (i.e laptops with Intel + Nvidia or AMD + Nvidia configurations). In particular this extension is a graphic interface for envycontrol (https://github.com/geminis3/envycontrol) program.", "link": "https://extensions.gnome.org/extension/5009/gpu-profile-selector/", "shell_version_map": {"38": {"version": "5", "sha256": "0mw1w8zccrnv2xrk5601sv2ax5qbahznp1q5h607sp6b79jv7cfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIGFsc28gZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIEEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3Igc3dpdGNoaW5nIEdQVSBwcm9maWxlcyBvbiBOdmlkaWEgT3B0aW11cyBzeXN0ZW1zIChpLmUgbGFwdG9wcyB3aXRoIEludGVsICsgTnZpZGlhIG9yIEFNRCArIE52aWRpYSBjb25maWd1cmF0aW9ucykuIEluIHBhcnRpY3VsYXIgdGhpcyBleHRlbnNpb24gaXMgYSBncmFwaGljIGludGVyZmFjZSBmb3IgZW52eWNvbnRyb2wgKGh0dHBzOi8vZ2l0aHViLmNvbS9nZW1pbmlzMy9lbnZ5Y29udHJvbCkgcHJvZ3JhbS4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "40": {"version": "5", "sha256": "0mw1w8zccrnv2xrk5601sv2ax5qbahznp1q5h607sp6b79jv7cfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIGFsc28gZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIEEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3Igc3dpdGNoaW5nIEdQVSBwcm9maWxlcyBvbiBOdmlkaWEgT3B0aW11cyBzeXN0ZW1zIChpLmUgbGFwdG9wcyB3aXRoIEludGVsICsgTnZpZGlhIG9yIEFNRCArIE52aWRpYSBjb25maWd1cmF0aW9ucykuIEluIHBhcnRpY3VsYXIgdGhpcyBleHRlbnNpb24gaXMgYSBncmFwaGljIGludGVyZmFjZSBmb3IgZW52eWNvbnRyb2wgKGh0dHBzOi8vZ2l0aHViLmNvbS9nZW1pbmlzMy9lbnZ5Y29udHJvbCkgcHJvZ3JhbS4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "41": {"version": "5", "sha256": "0mw1w8zccrnv2xrk5601sv2ax5qbahznp1q5h607sp6b79jv7cfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIGFsc28gZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIEEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3Igc3dpdGNoaW5nIEdQVSBwcm9maWxlcyBvbiBOdmlkaWEgT3B0aW11cyBzeXN0ZW1zIChpLmUgbGFwdG9wcyB3aXRoIEludGVsICsgTnZpZGlhIG9yIEFNRCArIE52aWRpYSBjb25maWd1cmF0aW9ucykuIEluIHBhcnRpY3VsYXIgdGhpcyBleHRlbnNpb24gaXMgYSBncmFwaGljIGludGVyZmFjZSBmb3IgZW52eWNvbnRyb2wgKGh0dHBzOi8vZ2l0aHViLmNvbS9nZW1pbmlzMy9lbnZ5Y29udHJvbCkgcHJvZ3JhbS4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}, "42": {"version": "5", "sha256": "0mw1w8zccrnv2xrk5601sv2ax5qbahznp1q5h607sp6b79jv7cfb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdSBuZWVkIGFsc28gZW52eWNvbnRyb2woaHR0cHM6Ly9naXRodWIuY29tL2dlbWluaXMzL2Vudnljb250cm9sKSBmb3IgbWFraW5nIHRoaXMgZXh0ZW5zaW9uIHdvcmtpbmcuIEEgc2ltcGxlIGdub21lIHNoZWxsIGV4dGVuc2lvbiBmb3Igc3dpdGNoaW5nIEdQVSBwcm9maWxlcyBvbiBOdmlkaWEgT3B0aW11cyBzeXN0ZW1zIChpLmUgbGFwdG9wcyB3aXRoIEludGVsICsgTnZpZGlhIG9yIEFNRCArIE52aWRpYSBjb25maWd1cmF0aW9ucykuIEluIHBhcnRpY3VsYXIgdGhpcyBleHRlbnNpb24gaXMgYSBncmFwaGljIGludGVyZmFjZSBmb3IgZW52eWNvbnRyb2wgKGh0dHBzOi8vZ2l0aHViLmNvbS9nZW1pbmlzMy9lbnZ5Y29udHJvbCkgcHJvZ3JhbS4iLAogICJuYW1lIjogIkdQVSBwcm9maWxlIHNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vTG9yZW56b01vcmVsbGkvR1BVX3Byb2ZpbGVfc2VsZWN0b3IiLAogICJ1dWlkIjogIkdQVV9wcm9maWxlX3NlbGVjdG9yQGxvcmVuem85OTA0LmdtYWlsLmNvbSIsCiAgInZlcnNpb24iOiA1Cn0="}}}
 , {"uuid": "username-to-activities@deserts", "name": "Replace Activities text with username", "pname": "replce-activities-text-with-username", "description": "Replace Activities text with username.\nThis is a fork of Replace Activities Text by pratap@fastmail.fm", "link": "https://extensions.gnome.org/extension/5010/replce-activities-text-with-username/", "shell_version_map": {"38": {"version": "3", "sha256": "1zmg8xlwfcf82cd2l226b4kqcybcs8nrx916i3sqbpwdnwpc0d68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUuXG5UaGlzIGlzIGEgZm9yayBvZiBSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCBieSBwcmF0YXBAZmFzdG1haWwuZm0iLAogICJuYW1lIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAicHJhdGFwQGZhc3RtYWlsLmZtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVzZXJ0c3RzdW5nL3VzZXJuYW1lLXRvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogInVzZXJuYW1lLXRvLWFjdGl2aXRpZXNAZGVzZXJ0cyIsCiAgInZlcnNpb24iOiAzCn0="}, "40": {"version": "3", "sha256": "1zmg8xlwfcf82cd2l226b4kqcybcs8nrx916i3sqbpwdnwpc0d68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUuXG5UaGlzIGlzIGEgZm9yayBvZiBSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCBieSBwcmF0YXBAZmFzdG1haWwuZm0iLAogICJuYW1lIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAicHJhdGFwQGZhc3RtYWlsLmZtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVzZXJ0c3RzdW5nL3VzZXJuYW1lLXRvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogInVzZXJuYW1lLXRvLWFjdGl2aXRpZXNAZGVzZXJ0cyIsCiAgInZlcnNpb24iOiAzCn0="}, "41": {"version": "3", "sha256": "1zmg8xlwfcf82cd2l226b4kqcybcs8nrx916i3sqbpwdnwpc0d68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUuXG5UaGlzIGlzIGEgZm9yayBvZiBSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCBieSBwcmF0YXBAZmFzdG1haWwuZm0iLAogICJuYW1lIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAicHJhdGFwQGZhc3RtYWlsLmZtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVzZXJ0c3RzdW5nL3VzZXJuYW1lLXRvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogInVzZXJuYW1lLXRvLWFjdGl2aXRpZXNAZGVzZXJ0cyIsCiAgInZlcnNpb24iOiAzCn0="}, "42": {"version": "3", "sha256": "1zmg8xlwfcf82cd2l226b4kqcybcs8nrx916i3sqbpwdnwpc0d68", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUuXG5UaGlzIGlzIGEgZm9yayBvZiBSZXBsYWNlIEFjdGl2aXRpZXMgVGV4dCBieSBwcmF0YXBAZmFzdG1haWwuZm0iLAogICJuYW1lIjogIlJlcGxhY2UgQWN0aXZpdGllcyB0ZXh0IHdpdGggdXNlcm5hbWUiLAogICJvcmlnaW5hbC1hdXRob3IiOiAicHJhdGFwQGZhc3RtYWlsLmZtIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZGVzZXJ0c3RzdW5nL3VzZXJuYW1lLXRvLWFjdGl2aXRpZXMiLAogICJ1dWlkIjogInVzZXJuYW1lLXRvLWFjdGl2aXRpZXNAZGVzZXJ0cyIsCiAgInZlcnNpb24iOiAzCn0="}}}
 , {"uuid": "overview-dash-hide@rokenz05.github.com", "name": "Overview Dash Hide", "pname": "overview-dash-hide", "description": "Hide dash to dock in activities overview", "link": "https://extensions.gnome.org/extension/5013/overview-dash-hide/", "shell_version_map": {"42": {"version": "1", "sha256": "1i0s0gjyml0q8lz08pwh1nva2yrf5vydpcrz2ncz46qvpjhik7dm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkhpZGUgZGFzaCB0byBkb2NrIGluIGFjdGl2aXRpZXMgb3ZlcnZpZXciLAogICJuYW1lIjogIk92ZXJ2aWV3IERhc2ggSGlkZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogIiIsCiAgInV1aWQiOiAib3ZlcnZpZXctZGFzaC1oaWRlQHJva2VuejA1LmdpdGh1Yi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
-, {"uuid": "simple-message@freddez", "name": "Simple Message", "pname": "simple-message", "description": "Show simple message on top bar", "link": "https://extensions.gnome.org/extension/5018/simple-message/", "shell_version_map": {"40": {"version": "3", "sha256": "1h0r025bwy73m8yqm5cr5qzwhxcj4p859rpw6rk49if3jn2f3c3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIG1lc3NhZ2Ugb24gdG9wIGJhciIsCiAgIm5hbWUiOiAiU2ltcGxlIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltcGxlLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1h0r025bwy73m8yqm5cr5qzwhxcj4p859rpw6rk49if3jn2f3c3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIG1lc3NhZ2Ugb24gdG9wIGJhciIsCiAgIm5hbWUiOiAiU2ltcGxlIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltcGxlLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "42": {"version": "3", "sha256": "1h0r025bwy73m8yqm5cr5qzwhxcj4p859rpw6rk49if3jn2f3c3x", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgc2ltcGxlIG1lc3NhZ2Ugb24gdG9wIGJhciIsCiAgIm5hbWUiOiAiU2ltcGxlIE1lc3NhZ2UiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAib3JnLmdub21lLnNoZWxsLmV4dGVuc2lvbnMuc2ltcGxlLW1lc3NhZ2UiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mcmVkZGV6L2dub21lLXNoZWxsLXNpbXBsZS1tZXNzYWdlIiwKICAidXVpZCI6ICJzaW1wbGUtbWVzc2FnZUBmcmVkZGV6IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "simple-message@freddez", "name": "Simple Message", "pname": "simple-message", "description": "Show a message written by the user on the top bar.", "link": "https://extensions.gnome.org/extension/5018/simple-message/", "shell_version_map": {"40": {"version": "9", "sha256": "19k4s70kfaixwmxgla6dnpg934f0arbi4qv1mj2wzkf08fa007wr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJTaW1wbGUgTWVzc2FnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaW1wbGUtbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "19k4s70kfaixwmxgla6dnpg934f0arbi4qv1mj2wzkf08fa007wr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJTaW1wbGUgTWVzc2FnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaW1wbGUtbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "19k4s70kfaixwmxgla6dnpg934f0arbi4qv1mj2wzkf08fa007wr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgYSBtZXNzYWdlIHdyaXR0ZW4gYnkgdGhlIHVzZXIgb24gdGhlIHRvcCBiYXIuIiwKICAibmFtZSI6ICJTaW1wbGUgTWVzc2FnZSIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy5zaW1wbGUtbWVzc2FnZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDAiLAogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWRkZXovZ25vbWUtc2hlbGwtc2ltcGxlLW1lc3NhZ2UiLAogICJ1dWlkIjogInNpbXBsZS1tZXNzYWdlQGZyZWRkZXoiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"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": "2", "sha256": "0w1msr6lk87vv3rkldn2mkz15l4lk5wnilf4vhx2cak95b2ycvbh", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4cG9zZSBhIEQtQnVzIGludGVyZmFjZSB0byBhY3RpdmF0ZSBhIHdpbmRvdyBieSBpdHMgdGl0bGUgb3IgV01fQ0xBU1MiLAogICJuYW1lIjogIkFjdGl2YXRlIFdpbmRvdyBCeSBUaXRsZSIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9sdWNhc3dlcmttZWlzdGVyL2FjdGl2YXRlLXdpbmRvdy1ieS10aXRsZSIsCiAgInV1aWQiOiAiYWN0aXZhdGUtd2luZG93LWJ5LXRpdGxlQGx1Y2Fzd2Vya21laXN0ZXIuZGUiLAogICJ2ZXJzaW9uIjogMgp9"}}}
 , {"uuid": "nano-system-monitor@eeeeeio", "name": "Nano System Monitor", "pname": "nano-system-monitor", "description": "Show current status on GNOME Shell panel\n\nbar shows CPU|memory|swap usages,then the download|upload speed and CPU temperature and fan speed\n\nDifferent colors represent different percentage states and CPU temperature\n\nplease use monospaced font for best experience", "link": "https://extensions.gnome.org/extension/5037/nano-system-monitor/", "shell_version_map": {"38": {"version": "6", "sha256": "1kd3c9bml1qh6djjmd4qr393z4zp7il0p3sz9bb7qv2smsg582lf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBzdGF0dXMgb24gR05PTUUgU2hlbGwgcGFuZWxcblxuYmFyIHNob3dzIENQVXxtZW1vcnl8c3dhcCB1c2FnZXMsdGhlbiB0aGUgZG93bmxvYWR8dXBsb2FkIHNwZWVkIGFuZCBDUFUgdGVtcGVyYXR1cmUgYW5kIGZhbiBzcGVlZFxuXG5EaWZmZXJlbnQgY29sb3JzIHJlcHJlc2VudCBkaWZmZXJlbnQgcGVyY2VudGFnZSBzdGF0ZXMgYW5kIENQVSB0ZW1wZXJhdHVyZVxuXG5wbGVhc2UgdXNlIG1vbm9zcGFjZWQgZm9udCBmb3IgYmVzdCBleHBlcmllbmNlIiwKICAibmFtZSI6ICJOYW5vIFN5c3RlbSBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWVlZWVpby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFuby1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAibmFuby1zeXN0ZW0tbW9uaXRvckBlZWVlZWlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "40": {"version": "6", "sha256": "1kd3c9bml1qh6djjmd4qr393z4zp7il0p3sz9bb7qv2smsg582lf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBzdGF0dXMgb24gR05PTUUgU2hlbGwgcGFuZWxcblxuYmFyIHNob3dzIENQVXxtZW1vcnl8c3dhcCB1c2FnZXMsdGhlbiB0aGUgZG93bmxvYWR8dXBsb2FkIHNwZWVkIGFuZCBDUFUgdGVtcGVyYXR1cmUgYW5kIGZhbiBzcGVlZFxuXG5EaWZmZXJlbnQgY29sb3JzIHJlcHJlc2VudCBkaWZmZXJlbnQgcGVyY2VudGFnZSBzdGF0ZXMgYW5kIENQVSB0ZW1wZXJhdHVyZVxuXG5wbGVhc2UgdXNlIG1vbm9zcGFjZWQgZm9udCBmb3IgYmVzdCBleHBlcmllbmNlIiwKICAibmFtZSI6ICJOYW5vIFN5c3RlbSBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWVlZWVpby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFuby1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAibmFuby1zeXN0ZW0tbW9uaXRvckBlZWVlZWlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "41": {"version": "6", "sha256": "1kd3c9bml1qh6djjmd4qr393z4zp7il0p3sz9bb7qv2smsg582lf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBzdGF0dXMgb24gR05PTUUgU2hlbGwgcGFuZWxcblxuYmFyIHNob3dzIENQVXxtZW1vcnl8c3dhcCB1c2FnZXMsdGhlbiB0aGUgZG93bmxvYWR8dXBsb2FkIHNwZWVkIGFuZCBDUFUgdGVtcGVyYXR1cmUgYW5kIGZhbiBzcGVlZFxuXG5EaWZmZXJlbnQgY29sb3JzIHJlcHJlc2VudCBkaWZmZXJlbnQgcGVyY2VudGFnZSBzdGF0ZXMgYW5kIENQVSB0ZW1wZXJhdHVyZVxuXG5wbGVhc2UgdXNlIG1vbm9zcGFjZWQgZm9udCBmb3IgYmVzdCBleHBlcmllbmNlIiwKICAibmFtZSI6ICJOYW5vIFN5c3RlbSBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWVlZWVpby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFuby1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAibmFuby1zeXN0ZW0tbW9uaXRvckBlZWVlZWlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}, "42": {"version": "6", "sha256": "1kd3c9bml1qh6djjmd4qr393z4zp7il0p3sz9bb7qv2smsg582lf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3cgY3VycmVudCBzdGF0dXMgb24gR05PTUUgU2hlbGwgcGFuZWxcblxuYmFyIHNob3dzIENQVXxtZW1vcnl8c3dhcCB1c2FnZXMsdGhlbiB0aGUgZG93bmxvYWR8dXBsb2FkIHNwZWVkIGFuZCBDUFUgdGVtcGVyYXR1cmUgYW5kIGZhbiBzcGVlZFxuXG5EaWZmZXJlbnQgY29sb3JzIHJlcHJlc2VudCBkaWZmZXJlbnQgcGVyY2VudGFnZSBzdGF0ZXMgYW5kIENQVSB0ZW1wZXJhdHVyZVxuXG5wbGVhc2UgdXNlIG1vbm9zcGFjZWQgZm9udCBmb3IgYmVzdCBleHBlcmllbmNlIiwKICAibmFtZSI6ICJOYW5vIFN5c3RlbSBNb25pdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM0IiwKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZWVlZWVpby9nbm9tZS1zaGVsbC1leHRlbnNpb24tbmFuby1zeXN0ZW0tbW9uaXRvciIsCiAgInV1aWQiOiAibmFuby1zeXN0ZW0tbW9uaXRvckBlZWVlZWlvIiwKICAidmVyc2lvbiI6IDYKfQ=="}}}
 , {"uuid": "start-overlay-in-application-view@Hex_cz", "name": "Start Overlay in Application View", "pname": "start-overlay-in-application-view", "description": "When activating overview (Super button), the application view is shown instead of the view with the windows.", "link": "https://extensions.gnome.org/extension/5040/start-overlay-in-application-view/", "shell_version_map": {"40": {"version": "3", "sha256": "1mk058ayvyiank9iisvdwkhlwh1sgm17viax4jd0kwfjwf7vvxvb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGV4Y3ovU3RhcnQtT3ZlcmxheS1pbi1BcHBsaWNhdGlvbi1WaWV3LWZvci1Hbm9tZS00MC0iLAogICJ1dWlkIjogInN0YXJ0LW92ZXJsYXktaW4tYXBwbGljYXRpb24tdmlld0BIZXhfY3oiLAogICJ2ZXJzaW9uIjogMwp9"}, "41": {"version": "3", "sha256": "1mk058ayvyiank9iisvdwkhlwh1sgm17viax4jd0kwfjwf7vvxvb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGV4Y3ovU3RhcnQtT3ZlcmxheS1pbi1BcHBsaWNhdGlvbi1WaWV3LWZvci1Hbm9tZS00MC0iLAogICJ1dWlkIjogInN0YXJ0LW92ZXJsYXktaW4tYXBwbGljYXRpb24tdmlld0BIZXhfY3oiLAogICJ2ZXJzaW9uIjogMwp9"}, "42": {"version": "3", "sha256": "1mk058ayvyiank9iisvdwkhlwh1sgm17viax4jd0kwfjwf7vvxvb", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldoZW4gYWN0aXZhdGluZyBvdmVydmlldyAoU3VwZXIgYnV0dG9uKSwgdGhlIGFwcGxpY2F0aW9uIHZpZXcgaXMgc2hvd24gaW5zdGVhZCBvZiB0aGUgdmlldyB3aXRoIHRoZSB3aW5kb3dzLiIsCiAgIm5hbWUiOiAiU3RhcnQgT3ZlcmxheSBpbiBBcHBsaWNhdGlvbiBWaWV3IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vSGV4Y3ovU3RhcnQtT3ZlcmxheS1pbi1BcHBsaWNhdGlvbi1WaWV3LWZvci1Hbm9tZS00MC0iLAogICJ1dWlkIjogInN0YXJ0LW92ZXJsYXktaW4tYXBwbGljYXRpb24tdmlld0BIZXhfY3oiLAogICJ2ZXJzaW9uIjogMwp9"}}}
@@ -751,15 +753,23 @@
 , {"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/).\nVPN 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": "2", "sha256": "1xxxqzr8q6zjrvkdhlkq8nfa5nv56sdnm1fyl3nxv453hfhdqmzs", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkEgZm9ya2VkIHZlcnNpb24gb2YgKGh0dHBzOi8vZXh0ZW5zaW9ucy5nbm9tZS5vcmcvZXh0ZW5zaW9uLzQwNjEvY3VzdG9tLXZwbi10b2dnbGVyLykuXG5WUE4gVG9nZ2xlciAoYW5kIGluZGljYXRvcikgYWxsb3dzIHRvIHNlZSB0aGUgc3RhdHVzIG9mIGEgVlBOICh3aXRoIGl0cyBpY29uKSwgc2VlIElQIGFkZHJlc3MgYXNzb2NpYXRlZCBhbmQgcGVybWl0IHRvIHN0YXJ0IGFuZCBzdG9wIFZQTiAoZnJvbSBhIG1lbnUpLlxuXG5UaGlzIHBsdWdpbiByZXF1aXJlZCBhbiBhZGRpdGlvbmFsIHNjcmlwdCB0byBpbnRlcmFjdCB3aXRoIFZQTi4gXG5BbiBleGFtcGxlIGZvciBPcGVuIFZQTiBpcyBhdmFpbGFibGUgb24gZXh0ZW5zaW9uIHJlcG9zaXRvcnkuIFxuRm9sbG93IHRoZSBsaW5rIHRvIEV4dGVuc2lvbiBXZWIgU2l0ZSBhbmQgc2VlIFJFQURNRS4iLAogICJnZXR0ZXh0LWRvbWFpbiI6ICJ2cG4tdG9nZ2xlckByaGVkZGVzLm5sIiwKICAibmFtZSI6ICJWUE4gVG9nZ2xlciIsCiAgInNldHRpbmdzLXNjaGVtYSI6ICJvcmcuZ25vbWUuc2hlbGwuZXh0ZW5zaW9ucy52cG4tdG9nZ2xlciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9SaGVkZGVzL3Zwbi10b2dnbGVyIiwKICAidXVpZCI6ICJ2cG4tdG9nZ2xlckByaGVkZGVzLm5sIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
 , {"uuid": "mozillavpn@inytar.github.com", "name": "Mozilla VPN Indicator", "pname": "mozilla-vpn-indicator", "description": "Toggle Mozilla VPN\n\nA simple indicator that can be used together with the Mozilla VPN linuxdaemon (https://github.com/mozilla-mobile/mozilla-vpn-client) to activate and deactivate the VPN.\n\nThis extension is in no way associated with Mozilla.", "link": "https://extensions.gnome.org/extension/5078/mozilla-vpn-indicator/", "shell_version_map": {"40": {"version": "1", "sha256": "18wq3m5ifvzwhj3pidfs2vnx0pj7w602iqizfgvp572qpxj6xayd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBNb3ppbGxhIFZQTlxuXG5BIHNpbXBsZSBpbmRpY2F0b3IgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBNb3ppbGxhIFZQTiBsaW51eGRhZW1vbiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEtbW9iaWxlL21vemlsbGEtdnBuLWNsaWVudCkgdG8gYWN0aXZhdGUgYW5kIGRlYWN0aXZhdGUgdGhlIFZQTi5cblxuVGhpcyBleHRlbnNpb24gaXMgaW4gbm8gd2F5IGFzc29jaWF0ZWQgd2l0aCBNb3ppbGxhLiIsCiAgIm5hbWUiOiAiTW96aWxsYSBWUE4gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW55dGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3ppbGxhLXZwbiIsCiAgInV1aWQiOiAibW96aWxsYXZwbkBpbnl0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "41": {"version": "1", "sha256": "18wq3m5ifvzwhj3pidfs2vnx0pj7w602iqizfgvp572qpxj6xayd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBNb3ppbGxhIFZQTlxuXG5BIHNpbXBsZSBpbmRpY2F0b3IgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBNb3ppbGxhIFZQTiBsaW51eGRhZW1vbiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEtbW9iaWxlL21vemlsbGEtdnBuLWNsaWVudCkgdG8gYWN0aXZhdGUgYW5kIGRlYWN0aXZhdGUgdGhlIFZQTi5cblxuVGhpcyBleHRlbnNpb24gaXMgaW4gbm8gd2F5IGFzc29jaWF0ZWQgd2l0aCBNb3ppbGxhLiIsCiAgIm5hbWUiOiAiTW96aWxsYSBWUE4gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW55dGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3ppbGxhLXZwbiIsCiAgInV1aWQiOiAibW96aWxsYXZwbkBpbnl0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "18wq3m5ifvzwhj3pidfs2vnx0pj7w602iqizfgvp572qpxj6xayd", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRvZ2dsZSBNb3ppbGxhIFZQTlxuXG5BIHNpbXBsZSBpbmRpY2F0b3IgdGhhdCBjYW4gYmUgdXNlZCB0b2dldGhlciB3aXRoIHRoZSBNb3ppbGxhIFZQTiBsaW51eGRhZW1vbiAoaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEtbW9iaWxlL21vemlsbGEtdnBuLWNsaWVudCkgdG8gYWN0aXZhdGUgYW5kIGRlYWN0aXZhdGUgdGhlIFZQTi5cblxuVGhpcyBleHRlbnNpb24gaXMgaW4gbm8gd2F5IGFzc29jaWF0ZWQgd2l0aCBNb3ppbGxhLiIsCiAgIm5hbWUiOiAiTW96aWxsYSBWUE4gSW5kaWNhdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaW55dGFyL2dub21lLXNoZWxsLWV4dGVuc2lvbi1tb3ppbGxhLXZwbiIsCiAgInV1aWQiOiAibW96aWxsYXZwbkBpbnl0YXIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
 , {"uuid": "this.simple-indication-of-workspaces@azate.email", "name": "Simple indication of workspaces", "pname": "simple-indication-of-workspaces", "description": "Workspace indication with an i3/polybar style.", "link": "https://extensions.gnome.org/extension/5081/simple-indication-of-workspaces/", "shell_version_map": {"42": {"version": "2", "sha256": "00lh574s9zcvxfqkrlf7acaz1k0fz2c5gj0hvjfmwg4l7mmyqiy7", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIldvcmtzcGFjZSBpbmRpY2F0aW9uIHdpdGggYW4gaTMvcG9seWJhciBzdHlsZS4iLAogICJuYW1lIjogIlNpbXBsZSBpbmRpY2F0aW9uIG9mIHdvcmtzcGFjZXMiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vYXphdGUvc2ltcGxlLWluZGljYXRpb24tb2Ytd29ya3NwYWNlcyIsCiAgInV1aWQiOiAidGhpcy5zaW1wbGUtaW5kaWNhdGlvbi1vZi13b3Jrc3BhY2VzQGF6YXRlLmVtYWlsIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "WallpaperOverlay@Rishu", "name": "Wallpaper Overlay", "pname": "wallpaper-overlay", "description": "Extension to apply overlays on wallpaper\nFeatures:\n* Option to choose primary colour of the overlay\n* Apply multiple overlays at once\n* You can use custom overlays (png or svg file) and apply it on your wallpaper\n* Option to auto-apply whenever the desktop wallpaper changes\n* Compatible with Wallpaper Switcher(gnome extension) so as to provide smooth experience\n* You can download more custom overlays from https://rishuinfinity.github.io/wallpaper-overlays-collection/", "link": "https://extensions.gnome.org/extension/5082/wallpaper-overlay/", "shell_version_map": {"42": {"version": "8", "sha256": "1vi03i533pxzd1r2wjaqka9jg55v49irwxnbp5gk85kvky6zccks", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkV4dGVuc2lvbiB0byBhcHBseSBvdmVybGF5cyBvbiB3YWxscGFwZXJcbkZlYXR1cmVzOlxuKiBPcHRpb24gdG8gY2hvb3NlIHByaW1hcnkgY29sb3VyIG9mIHRoZSBvdmVybGF5XG4qIEFwcGx5IG11bHRpcGxlIG92ZXJsYXlzIGF0IG9uY2VcbiogWW91IGNhbiB1c2UgY3VzdG9tIG92ZXJsYXlzIChwbmcgb3Igc3ZnIGZpbGUpIGFuZCBhcHBseSBpdCBvbiB5b3VyIHdhbGxwYXBlclxuKiBPcHRpb24gdG8gYXV0by1hcHBseSB3aGVuZXZlciB0aGUgZGVza3RvcCB3YWxscGFwZXIgY2hhbmdlc1xuKiBDb21wYXRpYmxlIHdpdGggV2FsbHBhcGVyIFN3aXRjaGVyKGdub21lIGV4dGVuc2lvbikgc28gYXMgdG8gcHJvdmlkZSBzbW9vdGggZXhwZXJpZW5jZVxuKiBZb3UgY2FuIGRvd25sb2FkIG1vcmUgY3VzdG9tIG92ZXJsYXlzIGZyb20gaHR0cHM6Ly9yaXNodWluZmluaXR5LmdpdGh1Yi5pby93YWxscGFwZXItb3ZlcmxheXMtY29sbGVjdGlvbi8iLAogICJuYW1lIjogIldhbGxwYXBlciBPdmVybGF5IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3Jpc2h1aW5maW5pdHkvV2FsbHBhcGVyT3ZlcmxheSIsCiAgInV1aWQiOiAiV2FsbHBhcGVyT3ZlcmxheUBSaXNodSIsCiAgInZlcnNpb24iOiA4Cn0="}}}
 , {"uuid": "startup-measure@marco.trevi.me", "name": "Applications Startup Time Measure", "pname": "startup-measure", "description": "Shows startup time of an application", "link": "https://extensions.gnome.org/extension/5087/startup-measure/", "shell_version_map": {"38": {"version": "9", "sha256": "1a5vm06awhqj21rvn93k8kywfn5zbi5gazvnghnv46mma2riga7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHN0YXJ0dXAgdGltZSBvZiBhbiBhcHBsaWNhdGlvbiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIFN0YXJ0dXAgVGltZSBNZWFzdXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvM3YxbjAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcHMtc3RhcnR1cC1tZWFzdXJlIiwKICAidXVpZCI6ICJzdGFydHVwLW1lYXN1cmVAbWFyY28udHJldmkubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "40": {"version": "9", "sha256": "1a5vm06awhqj21rvn93k8kywfn5zbi5gazvnghnv46mma2riga7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHN0YXJ0dXAgdGltZSBvZiBhbiBhcHBsaWNhdGlvbiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIFN0YXJ0dXAgVGltZSBNZWFzdXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvM3YxbjAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcHMtc3RhcnR1cC1tZWFzdXJlIiwKICAidXVpZCI6ICJzdGFydHVwLW1lYXN1cmVAbWFyY28udHJldmkubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "41": {"version": "9", "sha256": "1a5vm06awhqj21rvn93k8kywfn5zbi5gazvnghnv46mma2riga7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHN0YXJ0dXAgdGltZSBvZiBhbiBhcHBsaWNhdGlvbiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIFN0YXJ0dXAgVGltZSBNZWFzdXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvM3YxbjAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcHMtc3RhcnR1cC1tZWFzdXJlIiwKICAidXVpZCI6ICJzdGFydHVwLW1lYXN1cmVAbWFyY28udHJldmkubWUiLAogICJ2ZXJzaW9uIjogOQp9"}, "42": {"version": "9", "sha256": "1a5vm06awhqj21rvn93k8kywfn5zbi5gazvnghnv46mma2riga7f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNob3dzIHN0YXJ0dXAgdGltZSBvZiBhbiBhcHBsaWNhdGlvbiIsCiAgIm5hbWUiOiAiQXBwbGljYXRpb25zIFN0YXJ0dXAgVGltZSBNZWFzdXJlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5nbm9tZS5vcmcvM3YxbjAvZ25vbWUtc2hlbGwtZXh0ZW5zaW9uLWFwcHMtc3RhcnR1cC1tZWFzdXJlIiwKICAidXVpZCI6ICJzdGFydHVwLW1lYXN1cmVAbWFyY28udHJldmkubWUiLAogICJ2ZXJzaW9uIjogOQp9"}}}
 , {"uuid": "mute-unmute@mcast.gnomext.com", "name": "Mute/Unmute", "pname": "muteunmute", "description": "Let mute/unmute audio by clicking the audio output icon of the volume slider. It uses mute/unmute API so that the system remember unmuted volume level.", "link": "https://extensions.gnome.org/extension/5088/muteunmute/", "shell_version_map": {"38": {"version": "6", "sha256": "0kd538gjp2ghii59zjnar6yjsw1q3l0whwivfp3q9knglgx6wm3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gb2YgdGhlIHZvbHVtZSBzbGlkZXIuIEl0IHVzZXMgbXV0ZS91bm11dGUgQVBJIHNvIHRoYXQgdGhlIHN5c3RlbSByZW1lbWJlciB1bm11dGVkIHZvbHVtZSBsZXZlbC4iLAogICJuYW1lIjogIk11dGUvVW5tdXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWhwbGVkL211dGUtdW5tdXRlIiwKICAidXVpZCI6ICJtdXRlLXVubXV0ZUBtY2FzdC5nbm9tZXh0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "40": {"version": "6", "sha256": "0kd538gjp2ghii59zjnar6yjsw1q3l0whwivfp3q9knglgx6wm3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gb2YgdGhlIHZvbHVtZSBzbGlkZXIuIEl0IHVzZXMgbXV0ZS91bm11dGUgQVBJIHNvIHRoYXQgdGhlIHN5c3RlbSByZW1lbWJlciB1bm11dGVkIHZvbHVtZSBsZXZlbC4iLAogICJuYW1lIjogIk11dGUvVW5tdXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWhwbGVkL211dGUtdW5tdXRlIiwKICAidXVpZCI6ICJtdXRlLXVubXV0ZUBtY2FzdC5nbm9tZXh0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "41": {"version": "6", "sha256": "0kd538gjp2ghii59zjnar6yjsw1q3l0whwivfp3q9knglgx6wm3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gb2YgdGhlIHZvbHVtZSBzbGlkZXIuIEl0IHVzZXMgbXV0ZS91bm11dGUgQVBJIHNvIHRoYXQgdGhlIHN5c3RlbSByZW1lbWJlciB1bm11dGVkIHZvbHVtZSBsZXZlbC4iLAogICJuYW1lIjogIk11dGUvVW5tdXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWhwbGVkL211dGUtdW5tdXRlIiwKICAidXVpZCI6ICJtdXRlLXVubXV0ZUBtY2FzdC5nbm9tZXh0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}, "42": {"version": "6", "sha256": "0kd538gjp2ghii59zjnar6yjsw1q3l0whwivfp3q9knglgx6wm3b", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkxldCBtdXRlL3VubXV0ZSBhdWRpbyBieSBjbGlja2luZyB0aGUgYXVkaW8gb3V0cHV0IGljb24gb2YgdGhlIHZvbHVtZSBzbGlkZXIuIEl0IHVzZXMgbXV0ZS91bm11dGUgQVBJIHNvIHRoYXQgdGhlIHN5c3RlbSByZW1lbWJlciB1bm11dGVkIHZvbHVtZSBsZXZlbC4iLAogICJuYW1lIjogIk11dGUvVW5tdXRlIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vaWhwbGVkL211dGUtdW5tdXRlIiwKICAidXVpZCI6ICJtdXRlLXVubXV0ZUBtY2FzdC5nbm9tZXh0LmNvbSIsCiAgInZlcnNpb24iOiA2Cn0="}}}
-, {"uuid": "space-bar@luchrioh", "name": "Space Bar", "pname": "space-bar", "description": "Replaces the 'Activities' button with an i3-like workspaces bar.\n\nOriginally a fork of the extension Workspaces Bar by fthx, this extension grew into a more comprehensive set of features to support a workspace-based workflow.\n\nFeatures:\n-   First class support for static and dynamic workspaces as well as multi-monitor setups\n-   Add, remove, and rename workspaces\n-   Rearrange workspaces via drag and drop\n-   Automatically updates workspace names to reflect changes of workspaces\n-   Automatically assign workspace names based on started applications\n-   Keyboard shortcuts extend and refine system shortcuts\n-   Scroll through workspaces by mouse wheel over the panel\n\nLimitations:\n-   Adding workspaces by dragging a window in overview between existing workspaces is not recognized and will confuse workspace names", "link": "https://extensions.gnome.org/extension/5090/space-bar/", "shell_version_map": {"42": {"version": "3", "sha256": "0wdvyrm6ghbyqiz43l3pbppjvnb8wkb285pk6i9nif5yb20zspdl", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgd29ya3NwYWNlIG5hbWVzIHRvIHJlZmxlY3QgY2hhbmdlcyBvZiB3b3Jrc3BhY2VzXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG5cbkxpbWl0YXRpb25zOlxuLSAgIEFkZGluZyB3b3Jrc3BhY2VzIGJ5IGRyYWdnaW5nIGEgd2luZG93IGluIG92ZXJ2aWV3IGJldHdlZW4gZXhpc3Rpbmcgd29ya3NwYWNlcyBpcyBub3QgcmVjb2duaXplZCBhbmQgd2lsbCBjb25mdXNlIHdvcmtzcGFjZSBuYW1lcyIsCiAgIm5hbWUiOiAiU3BhY2UgQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "space-bar@luchrioh", "name": "Space Bar", "pname": "space-bar", "description": "Replaces the 'Activities' button with an i3-like workspaces bar.\n\nOriginally a fork of the extension Workspaces Bar by fthx, this extension grew into a more comprehensive set of features to support a workspace-based workflow.\n\nFeatures:\n-   First class support for static and dynamic workspaces as well as multi-monitor setups\n-   Add, remove, and rename workspaces\n-   Rearrange workspaces via drag and drop\n-   Automatically updates workspace names to reflect changes of workspaces\n-   Automatically assign workspace names based on started applications\n-   Keyboard shortcuts extend and refine system shortcuts\n-   Scroll through workspaces by mouse wheel over the panel\n\nLimitations:\n-   Adding workspaces by dragging a window in overview between existing workspaces is not recognized and will confuse workspace names", "link": "https://extensions.gnome.org/extension/5090/space-bar/", "shell_version_map": {"42": {"version": "4", "sha256": "1jaz9zhsx38s4jsb7n2l6czmx7lpvk80jqa5s36lap0ibdr6c4ls", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlcGxhY2VzIHRoZSAnQWN0aXZpdGllcycgYnV0dG9uIHdpdGggYW4gaTMtbGlrZSB3b3Jrc3BhY2VzIGJhci5cblxuT3JpZ2luYWxseSBhIGZvcmsgb2YgdGhlIGV4dGVuc2lvbiBXb3Jrc3BhY2VzIEJhciBieSBmdGh4LCB0aGlzIGV4dGVuc2lvbiBncmV3IGludG8gYSBtb3JlIGNvbXByZWhlbnNpdmUgc2V0IG9mIGZlYXR1cmVzIHRvIHN1cHBvcnQgYSB3b3Jrc3BhY2UtYmFzZWQgd29ya2Zsb3cuXG5cbkZlYXR1cmVzOlxuLSAgIEZpcnN0IGNsYXNzIHN1cHBvcnQgZm9yIHN0YXRpYyBhbmQgZHluYW1pYyB3b3Jrc3BhY2VzIGFzIHdlbGwgYXMgbXVsdGktbW9uaXRvciBzZXR1cHNcbi0gICBBZGQsIHJlbW92ZSwgYW5kIHJlbmFtZSB3b3Jrc3BhY2VzXG4tICAgUmVhcnJhbmdlIHdvcmtzcGFjZXMgdmlhIGRyYWcgYW5kIGRyb3Bcbi0gICBBdXRvbWF0aWNhbGx5IHVwZGF0ZXMgd29ya3NwYWNlIG5hbWVzIHRvIHJlZmxlY3QgY2hhbmdlcyBvZiB3b3Jrc3BhY2VzXG4tICAgQXV0b21hdGljYWxseSBhc3NpZ24gd29ya3NwYWNlIG5hbWVzIGJhc2VkIG9uIHN0YXJ0ZWQgYXBwbGljYXRpb25zXG4tICAgS2V5Ym9hcmQgc2hvcnRjdXRzIGV4dGVuZCBhbmQgcmVmaW5lIHN5c3RlbSBzaG9ydGN1dHNcbi0gICBTY3JvbGwgdGhyb3VnaCB3b3Jrc3BhY2VzIGJ5IG1vdXNlIHdoZWVsIG92ZXIgdGhlIHBhbmVsXG5cbkxpbWl0YXRpb25zOlxuLSAgIEFkZGluZyB3b3Jrc3BhY2VzIGJ5IGRyYWdnaW5nIGEgd2luZG93IGluIG92ZXJ2aWV3IGJldHdlZW4gZXhpc3Rpbmcgd29ya3NwYWNlcyBpcyBub3QgcmVjb2duaXplZCBhbmQgd2lsbCBjb25mdXNlIHdvcmtzcGFjZSBuYW1lcyIsCiAgIm5hbWUiOiAiU3BhY2UgQmFyIiwKICAic2V0dGluZ3Mtc2NoZW1hIjogIm9yZy5nbm9tZS5zaGVsbC5leHRlbnNpb25zLnNwYWNlLWJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9jaHJpc3RvcGhlci1sL3NwYWNlLWJhciIsCiAgInV1aWQiOiAic3BhY2UtYmFyQGx1Y2hyaW9oIiwKICAidmVyc2lvbiI6IDQKfQ=="}}}
 , {"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"}}}
 , {"uuid": "favorites-apps-indicator@zecarneiro.pt", "name": "Favorites Apps Indicator", "pname": "favorites-apps-indicator", "description": "Your favorites commands and Apps Menu Indicator", "link": "https://extensions.gnome.org/extension/5096/favorites-apps-indicator/", "shell_version_map": {"42": {"version": "4", "sha256": "1hxb94bniwk0gvd4dk193rhjsqhawpcm3x5vi5djflqhc37bjzp6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIllvdXIgZmF2b3JpdGVzIGNvbW1hbmRzIGFuZCBBcHBzIE1lbnUgSW5kaWNhdG9yIiwKICAibmFtZSI6ICJGYXZvcml0ZXMgQXBwcyBJbmRpY2F0b3IiLAogICJvcmlnaW5hbC1hdXRob3JzIjogIkpvc1x1MDBlOSBNLiBDLiBOb3JvbmhhIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL3plY2FybmVpcm8vZmF2b3JpdGVzLWFwcHMtaW5kaWNhdG9yIiwKICAidXVpZCI6ICJmYXZvcml0ZXMtYXBwcy1pbmRpY2F0b3JAemVjYXJuZWlyby5wdCIsCiAgInZlcnNpb24iOiA0Cn0="}}}
 , {"uuid": "hot-bottom@fthx", "name": "Hot Bottom", "pname": "hot-bottom", "description": "Enter overview when you hover the bottom of the screen. Very light extension.\n\n For GNOME Shell 40+. The width of the show zone is the same as the Gnome Shell dash.\n\n I'm not notified of messages here, please report bugs only through GitHub.", "link": "https://extensions.gnome.org/extension/5099/hot-bottom/", "shell_version_map": {"40": {"version": "2", "sha256": "0xarbsardhqzpcwxa59vyb11v90fl9qj03kdrn8sqmcjs48xir3f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVudGVyIG92ZXJ2aWV3IHdoZW4geW91IGhvdmVyIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBGb3IgR05PTUUgU2hlbGwgNDArLiBUaGUgd2lkdGggb2YgdGhlIHNob3cgem9uZSBpcyB0aGUgc2FtZSBhcyB0aGUgR25vbWUgU2hlbGwgZGFzaC5cblxuIEknbSBub3Qgbm90aWZpZWQgb2YgbWVzc2FnZXMgaGVyZSwgcGxlYXNlIHJlcG9ydCBidWdzIG9ubHkgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJIb3QgQm90dG9tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9ob3QtYm90dG9tIiwKICAidXVpZCI6ICJob3QtYm90dG9tQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}, "41": {"version": "2", "sha256": "0xarbsardhqzpcwxa59vyb11v90fl9qj03kdrn8sqmcjs48xir3f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVudGVyIG92ZXJ2aWV3IHdoZW4geW91IGhvdmVyIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBGb3IgR05PTUUgU2hlbGwgNDArLiBUaGUgd2lkdGggb2YgdGhlIHNob3cgem9uZSBpcyB0aGUgc2FtZSBhcyB0aGUgR25vbWUgU2hlbGwgZGFzaC5cblxuIEknbSBub3Qgbm90aWZpZWQgb2YgbWVzc2FnZXMgaGVyZSwgcGxlYXNlIHJlcG9ydCBidWdzIG9ubHkgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJIb3QgQm90dG9tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9ob3QtYm90dG9tIiwKICAidXVpZCI6ICJob3QtYm90dG9tQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}, "42": {"version": "2", "sha256": "0xarbsardhqzpcwxa59vyb11v90fl9qj03kdrn8sqmcjs48xir3f", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVudGVyIG92ZXJ2aWV3IHdoZW4geW91IGhvdmVyIHRoZSBib3R0b20gb2YgdGhlIHNjcmVlbi4gVmVyeSBsaWdodCBleHRlbnNpb24uXG5cbiBGb3IgR05PTUUgU2hlbGwgNDArLiBUaGUgd2lkdGggb2YgdGhlIHNob3cgem9uZSBpcyB0aGUgc2FtZSBhcyB0aGUgR25vbWUgU2hlbGwgZGFzaC5cblxuIEknbSBub3Qgbm90aWZpZWQgb2YgbWVzc2FnZXMgaGVyZSwgcGxlYXNlIHJlcG9ydCBidWdzIG9ubHkgdGhyb3VnaCBHaXRIdWIuIiwKICAibmFtZSI6ICJIb3QgQm90dG9tIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGh1Yi5jb20vZnRoeC9ob3QtYm90dG9tIiwKICAidXVpZCI6ICJob3QtYm90dG9tQGZ0aHgiLAogICJ2ZXJzaW9uIjogMgp9"}}}
-, {"uuid": "docker@stickman_0x00.com", "name": "Docker", "pname": "docker", "description": "Quick access to docker.", "link": "https://extensions.gnome.org/extension/5103/docker/", "shell_version_map": {"42": {"version": "2", "sha256": "0izcxzss7gzgp6mjaa5vlwy1qv30wb5cavmhzwxmv0lngad5mxad", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBkb2NrZXIuIiwKICAibmFtZSI6ICJEb2NrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogMgp9"}}}
+, {"uuid": "docker@stickman_0x00.com", "name": "Docker", "pname": "docker", "description": "Quick access to docker.", "link": "https://extensions.gnome.org/extension/5103/docker/", "shell_version_map": {"42": {"version": "4", "sha256": "15ill7r434rdd9y5pxby3fky0wlcj9ldq4ry6n25hg7lgr1hv0my", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrIGFjY2VzcyB0byBkb2NrZXIuIiwKICAibmFtZSI6ICJEb2NrZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vc3RpY2ttYW5fMHgwMC9nbm9tZV9zaGVsbF9leHRlbnNpb25fZG9ja2VyIiwKICAidXVpZCI6ICJkb2NrZXJAc3RpY2ttYW5fMHgwMC5jb20iLAogICJ2ZXJzaW9uIjogNAp9"}}}
 , {"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": "1", "sha256": "0rd7y3w76kx8l94n586xjq329vsis4iw0a03lvlc9s5ki8fmlbf0", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlJlYm9vdCBzeXN0ZW0gaW50byBVRUZJIiwKICAibmFtZSI6ICJSZWJvb3RUb1VFRkkiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICIiLAogICJ1dWlkIjogInJlYm9vdHRvdWVmaUB1YmF5Z2QuY29tIiwKICAidmVyc2lvbiI6IDEKfQ=="}}}
 , {"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="}}}
 , {"uuid": "display-scale-switcher@knokelmaat.gitlab.com", "name": "Display Scale Switcher", "pname": "display-scale-switcher", "description": "Quickly change the display scaling factor from the system menu. (Currently only supports single display)\n", "link": "https://extensions.gnome.org/extension/5111/display-scale-switcher/", "shell_version_map": {"42": {"version": "1", "sha256": "06sh5j6achhy13v1vprivpndwwv2h3y0x5qg17s1lkhbdyy4fxm5", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlF1aWNrbHkgY2hhbmdlIHRoZSBkaXNwbGF5IHNjYWxpbmcgZmFjdG9yIGZyb20gdGhlIHN5c3RlbSBtZW51LiAoQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgc2luZ2xlIGRpc3BsYXkpXG4iLAogICJuYW1lIjogIkRpc3BsYXkgU2NhbGUgU3dpdGNoZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20va25va2VsbWFhdC9kaXNwbGF5LXNjYWxlLXN3aXRjaGVyLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAiZGlzcGxheS1zY2FsZS1zd2l0Y2hlckBrbm9rZWxtYWF0LmdpdGxhYi5jb20iLAogICJ2ZXJzaW9uIjogMQp9"}}}
 , {"uuid": "tailscale-status@maxgallup.github.com", "name": "Tailscale Status", "pname": "tailscale-status", "description": "Manage Tailscale connections and check status from desktop read more at https://github.com/maxgallup/tailscale-status/blob/main/README.md", "link": "https://extensions.gnome.org/extension/5112/tailscale-status/", "shell_version_map": {"42": {"version": "2", "sha256": "1653jhafqcni2bwkyn01zq272rgipj9bfwzl99rwfyr91b2c0vz6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIk1hbmFnZSBUYWlsc2NhbGUgY29ubmVjdGlvbnMgYW5kIGNoZWNrIHN0YXR1cyBmcm9tIGRlc2t0b3AgcmVhZCBtb3JlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9tYXhnYWxsdXAvdGFpbHNjYWxlLXN0YXR1cy9ibG9iL21haW4vUkVBRE1FLm1kIiwKICAibmFtZSI6ICJUYWlsc2NhbGUgU3RhdHVzIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL21heGdhbGx1cC90YWlsc2NhbGUtc3RhdHVzIiwKICAidXVpZCI6ICJ0YWlsc2NhbGUtc3RhdHVzQG1heGdhbGx1cC5naXRodWIuY29tIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "simple-timer@majortomvr.github.com", "name": "Simple Timer", "pname": "simple-timer", "description": "Simple Timer is a Gnome Shell Extension that adds a Timer to the Panel.", "link": "https://extensions.gnome.org/extension/5115/simple-timer/", "shell_version_map": {"41": {"version": "1", "sha256": "1k1qxygahg7h5x5g2b6c13j0hnv0sy9k82nw45ixjkzmfrx99pr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBUaW1lciBpcyBhIEdub21lIFNoZWxsIEV4dGVuc2lvbiB0aGF0IGFkZHMgYSBUaW1lciB0byB0aGUgUGFuZWwuIiwKICAibmFtZSI6ICJTaW1wbGUgVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01ham9ydG9tVlIvc2ltcGxlLXRpbWVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2ltcGxlLXRpbWVyQG1ham9ydG9tdnIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}, "42": {"version": "1", "sha256": "1k1qxygahg7h5x5g2b6c13j0hnv0sy9k82nw45ixjkzmfrx99pr6", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNpbXBsZSBUaW1lciBpcyBhIEdub21lIFNoZWxsIEV4dGVuc2lvbiB0aGF0IGFkZHMgYSBUaW1lciB0byB0aGUgUGFuZWwuIiwKICAibmFtZSI6ICJTaW1wbGUgVGltZXIiLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQxIiwKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL01ham9ydG9tVlIvc2ltcGxlLXRpbWVyLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic2ltcGxlLXRpbWVyQG1ham9ydG9tdnIuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAxCn0="}}}
+, {"uuid": "translate-assistant@atareao.es", "name": "Translate assistant", "pname": "translate-assistant", "description": "Translate with DeepL Translator", "link": "https://extensions.gnome.org/extension/5124/translate-assistant/", "shell_version_map": {"42": {"version": "2", "sha256": "1j7srn3wns8b1aq97r8hb5h2ajmrxnqbjjcv2zcr74zvkz12psbc", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRyYW5zbGF0ZSB3aXRoIERlZXBMIFRyYW5zbGF0b3IiLAogICJleHRlbnNpb24taWQiOiAidHJhbnNsYXRlLWFzc2lzdGFudEBhdGFyZWFvLmVzIiwKICAiZ2V0dGV4dC1kb21haW4iOiAidHJhbnNsYXRlLWFzc2lzdGFudEBhdGFyZWFvLmVzIiwKICAiaWNvbiI6ICJ0cmFuc2xhdGUtYXNzaXN0YW50LWljb24iLAogICJuYW1lIjogIlRyYW5zbGF0ZSBhc3Npc3RhbnQiLAogICJzZXR0aW5ncy1zY2hlbWEiOiAiZXMuYXRhcmVhby50cmFuc2xhdGUtYXNzaXN0YW50IiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2F0YXJlYW8vdHJhbnNsYXRlLWFzc2lzdGFudCIsCiAgInV1aWQiOiAidHJhbnNsYXRlLWFzc2lzdGFudEBhdGFyZWFvLmVzIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "stand-with-ukraine@vshut", "name": "Stand With Ukraine", "pname": "stand-with-ukraine", "description": "Displays Ukraine emoji flag in the top panel and provides menu with useful links.", "link": "https://extensions.gnome.org/extension/5126/stand-with-ukraine/", "shell_version_map": {"38": {"version": "3", "sha256": "1iqhy6jf6l74dig8lfd5kyqn6rc0f1f43qr9xk3396f2l1wjy6vf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIFVrcmFpbmUgZW1vamkgZmxhZyBpbiB0aGUgdG9wIHBhbmVsIGFuZCBwcm92aWRlcyBtZW51IHdpdGggdXNlZnVsIGxpbmtzLiIsCiAgIm5hbWUiOiAiU3RhbmQgV2l0aCBVa3JhaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vdmxhZHNodXQvc3RhbmQtd2l0aC11a3JhaW5lLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhbmQtd2l0aC11a3JhaW5lQHZzaHV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "40": {"version": "3", "sha256": "1iqhy6jf6l74dig8lfd5kyqn6rc0f1f43qr9xk3396f2l1wjy6vf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIFVrcmFpbmUgZW1vamkgZmxhZyBpbiB0aGUgdG9wIHBhbmVsIGFuZCBwcm92aWRlcyBtZW51IHdpdGggdXNlZnVsIGxpbmtzLiIsCiAgIm5hbWUiOiAiU3RhbmQgV2l0aCBVa3JhaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vdmxhZHNodXQvc3RhbmQtd2l0aC11a3JhaW5lLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhbmQtd2l0aC11a3JhaW5lQHZzaHV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "41": {"version": "3", "sha256": "1iqhy6jf6l74dig8lfd5kyqn6rc0f1f43qr9xk3396f2l1wjy6vf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIFVrcmFpbmUgZW1vamkgZmxhZyBpbiB0aGUgdG9wIHBhbmVsIGFuZCBwcm92aWRlcyBtZW51IHdpdGggdXNlZnVsIGxpbmtzLiIsCiAgIm5hbWUiOiAiU3RhbmQgV2l0aCBVa3JhaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vdmxhZHNodXQvc3RhbmQtd2l0aC11a3JhaW5lLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhbmQtd2l0aC11a3JhaW5lQHZzaHV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}, "42": {"version": "3", "sha256": "1iqhy6jf6l74dig8lfd5kyqn6rc0f1f43qr9xk3396f2l1wjy6vf", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkRpc3BsYXlzIFVrcmFpbmUgZW1vamkgZmxhZyBpbiB0aGUgdG9wIHBhbmVsIGFuZCBwcm92aWRlcyBtZW51IHdpdGggdXNlZnVsIGxpbmtzLiIsCiAgIm5hbWUiOiAiU3RhbmQgV2l0aCBVa3JhaW5lIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICIzLjM2IiwKICAgICIzLjM4IiwKICAgICI0MCIsCiAgICAiNDEiLAogICAgIjQyIgogIF0sCiAgInVybCI6ICJodHRwczovL2dpdGxhYi5jb20vdmxhZHNodXQvc3RhbmQtd2l0aC11a3JhaW5lLWdub21lLWV4dGVuc2lvbiIsCiAgInV1aWQiOiAic3RhbmQtd2l0aC11a3JhaW5lQHZzaHV0IiwKICAidmVyc2lvbiI6IDMKfQ=="}}}
+, {"uuid": "audio-selector@harald65.simon.gmail.com", "name": "Audio Selector", "pname": "audio-selector", "description": "Select audio output and/or input port", "link": "https://extensions.gnome.org/extension/5135/audio-selector/", "shell_version_map": {"42": {"version": "5", "sha256": "00ww12j34fpbrqlxkc6d47s0i542byz6r39yrshyf8xrcs8r7ifm", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlNlbGVjdCBhdWRpbyBvdXRwdXQgYW5kL29yIGlucHV0IHBvcnQiLAogICJuYW1lIjogIkF1ZGlvIFNlbGVjdG9yIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2hzNjUvR25vbWUtU2hlbGwtRXh0ZW5zaW9uLUF1ZGlvLVNlbGVjdG9yLmdpdCIsCiAgInV1aWQiOiAiYXVkaW8tc2VsZWN0b3JAaGFyYWxkNjUuc2ltb24uZ21haWwuY29tIiwKICAidmVyc2lvbiI6IDUKfQ=="}}}
+, {"uuid": "dashbar@fthx", "name": "DashBar", "pname": "dashbar", "description": "Task bar. Very light extension.\n\n Features:\n\n - Hide overview at start-up.\n\n - Scroll on taskbar to change workspace.\n\n - Show desktop button. Left click to minimize all windows. Right click to activate all windows.\n\n - Show apps button. Left click to enter overview. Right click to show apps overview.\n\n - GNOME Shell dash items in top bar. Left click to toggle (or overview if many app windows). Right click to show app menu. Middle click to open new window. Drag'n'drop favorites.\n\n - Remove 'Activities' button.\n\n - Change 'Places' extension label to an icon.\n\n No settings. If you want customization through preferences UI, please consider BaBar or Dash to Panel.\n\n ----------\n\n Please report any bug only through GitHub, I'm not notified here.", "link": "https://extensions.gnome.org/extension/5143/dashbar/", "shell_version_map": {"42": {"version": "2", "sha256": "1g4jbafqy27z04wfrl5fp0pmw9jwbsc9fxyrj6s8129m0hkydwrr", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIlRhc2sgYmFyLiBWZXJ5IGxpZ2h0IGV4dGVuc2lvbi5cblxuIEZlYXR1cmVzOlxuXG4gLSBIaWRlIG92ZXJ2aWV3IGF0IHN0YXJ0LXVwLlxuXG4gLSBTY3JvbGwgb24gdGFza2JhciB0byBjaGFuZ2Ugd29ya3NwYWNlLlxuXG4gLSBTaG93IGRlc2t0b3AgYnV0dG9uLiBMZWZ0IGNsaWNrIHRvIG1pbmltaXplIGFsbCB3aW5kb3dzLiBSaWdodCBjbGljayB0byBhY3RpdmF0ZSBhbGwgd2luZG93cy5cblxuIC0gU2hvdyBhcHBzIGJ1dHRvbi4gTGVmdCBjbGljayB0byBlbnRlciBvdmVydmlldy4gUmlnaHQgY2xpY2sgdG8gc2hvdyBhcHBzIG92ZXJ2aWV3LlxuXG4gLSBHTk9NRSBTaGVsbCBkYXNoIGl0ZW1zIGluIHRvcCBiYXIuIExlZnQgY2xpY2sgdG8gdG9nZ2xlIChvciBvdmVydmlldyBpZiBtYW55IGFwcCB3aW5kb3dzKS4gUmlnaHQgY2xpY2sgdG8gc2hvdyBhcHAgbWVudS4gTWlkZGxlIGNsaWNrIHRvIG9wZW4gbmV3IHdpbmRvdy4gRHJhZyduJ2Ryb3AgZmF2b3JpdGVzLlxuXG4gLSBSZW1vdmUgJ0FjdGl2aXRpZXMnIGJ1dHRvbi5cblxuIC0gQ2hhbmdlICdQbGFjZXMnIGV4dGVuc2lvbiBsYWJlbCB0byBhbiBpY29uLlxuXG4gTm8gc2V0dGluZ3MuIElmIHlvdSB3YW50IGN1c3RvbWl6YXRpb24gdGhyb3VnaCBwcmVmZXJlbmNlcyBVSSwgcGxlYXNlIGNvbnNpZGVyIEJhQmFyIG9yIERhc2ggdG8gUGFuZWwuXG5cbiAtLS0tLS0tLS0tXG5cbiBQbGVhc2UgcmVwb3J0IGFueSBidWcgb25seSB0aHJvdWdoIEdpdEh1YiwgSSdtIG5vdCBub3RpZmllZCBoZXJlLiIsCiAgIm5hbWUiOiAiRGFzaEJhciIsCiAgInNoZWxsLXZlcnNpb24iOiBbCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9mdGh4L2Rhc2hiYXIiLAogICJ1dWlkIjogImRhc2hiYXJAZnRoeCIsCiAgInZlcnNpb24iOiAyCn0="}}}
+, {"uuid": "extended-screen@free-bots.github.io", "name": "Extended Screen", "pname": "extended-screen", "description": "Enables Gnome 42 hidden extending screen feature", "link": "https://extensions.gnome.org/extension/5146/extended-screen/", "shell_version_map": {"42": {"version": "2", "sha256": "0ydrxyyck598f3qzqksvh65wfidibyb0zy0rd7abh6i2ys1b684s", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkVuYWJsZXMgR25vbWUgNDIgaGlkZGVuIGV4dGVuZGluZyBzY3JlZW4gZmVhdHVyZSIsCiAgIm5hbWUiOiAiRXh0ZW5kZWQgU2NyZWVuIiwKICAic2hlbGwtdmVyc2lvbiI6IFsKICAgICI0MiIKICBdLAogICJ1cmwiOiAiaHR0cHM6Ly9naXRodWIuY29tL2ZyZWUtYm90cy9leHRlbmRlZC1zY3JlZW4iLAogICJ1dWlkIjogImV4dGVuZGVkLXNjcmVlbkBmcmVlLWJvdHMuZ2l0aHViLmlvIiwKICAidmVyc2lvbiI6IDIKfQ=="}}}
+, {"uuid": "waylandorx11@injcristianrojas.github.com", "name": "Wayland or X11?", "pname": "wayland-or-x11", "description": "Am I using Wayland or X11?\n\nSimple extension that shows if you are using GNOME on Wayland or X11.\n\nIssues? Drop them at https://github.com/injcristianrojas/waylandorx11/issues", "link": "https://extensions.gnome.org/extension/5149/wayland-or-x11/", "shell_version_map": {"40": {"version": "2", "sha256": "179glvkmnb24qnsnggmdc9pn3xvvn8i874d5l6416k352vk677k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFtIEkgdXNpbmcgV2F5bGFuZCBvciBYMTE/XG5cblNpbXBsZSBleHRlbnNpb24gdGhhdCBzaG93cyBpZiB5b3UgYXJlIHVzaW5nIEdOT01FIG9uIFdheWxhbmQgb3IgWDExLlxuXG5Jc3N1ZXM/IERyb3AgdGhlbSBhdCBodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy93YXlsYW5kb3J4MTEvaXNzdWVzIiwKICAibmFtZSI6ICJXYXlsYW5kIG9yIFgxMT8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL3dheWxhbmRvcngxMSIsCiAgInV1aWQiOiAid2F5bGFuZG9yeDExQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "41": {"version": "2", "sha256": "179glvkmnb24qnsnggmdc9pn3xvvn8i874d5l6416k352vk677k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFtIEkgdXNpbmcgV2F5bGFuZCBvciBYMTE/XG5cblNpbXBsZSBleHRlbnNpb24gdGhhdCBzaG93cyBpZiB5b3UgYXJlIHVzaW5nIEdOT01FIG9uIFdheWxhbmQgb3IgWDExLlxuXG5Jc3N1ZXM/IERyb3AgdGhlbSBhdCBodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy93YXlsYW5kb3J4MTEvaXNzdWVzIiwKICAibmFtZSI6ICJXYXlsYW5kIG9yIFgxMT8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL3dheWxhbmRvcngxMSIsCiAgInV1aWQiOiAid2F5bGFuZG9yeDExQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}, "42": {"version": "2", "sha256": "179glvkmnb24qnsnggmdc9pn3xvvn8i874d5l6416k352vk677k1", "metadata": "ewogICJfZ2VuZXJhdGVkIjogIkdlbmVyYXRlZCBieSBTd2VldFRvb3RoLCBkbyBub3QgZWRpdCIsCiAgImRlc2NyaXB0aW9uIjogIkFtIEkgdXNpbmcgV2F5bGFuZCBvciBYMTE/XG5cblNpbXBsZSBleHRlbnNpb24gdGhhdCBzaG93cyBpZiB5b3UgYXJlIHVzaW5nIEdOT01FIG9uIFdheWxhbmQgb3IgWDExLlxuXG5Jc3N1ZXM/IERyb3AgdGhlbSBhdCBodHRwczovL2dpdGh1Yi5jb20vaW5qY3Jpc3RpYW5yb2phcy93YXlsYW5kb3J4MTEvaXNzdWVzIiwKICAibmFtZSI6ICJXYXlsYW5kIG9yIFgxMT8iLAogICJzaGVsbC12ZXJzaW9uIjogWwogICAgIjQwIiwKICAgICI0MSIsCiAgICAiNDIiCiAgXSwKICAidXJsIjogImh0dHBzOi8vZ2l0aHViLmNvbS9pbmpjcmlzdGlhbnJvamFzL3dheWxhbmRvcngxMSIsCiAgInV1aWQiOiAid2F5bGFuZG9yeDExQGluamNyaXN0aWFucm9qYXMuZ2l0aHViLmNvbSIsCiAgInZlcnNpb24iOiAyCn0="}}}
 ]
diff --git a/pkgs/desktops/gnome/games/aisleriot/default.nix b/pkgs/desktops/gnome/games/aisleriot/default.nix
index 9876ee6526045..d06761e66c5ee 100644
--- a/pkgs/desktops/gnome/games/aisleriot/default.nix
+++ b/pkgs/desktops/gnome/games/aisleriot/default.nix
@@ -19,14 +19,14 @@
 
 stdenv.mkDerivation rec {
   pname = "aisleriot";
-  version = "3.22.23";
+  version = "3.22.24";
 
   src = fetchFromGitLab {
     domain = "gitlab.gnome.org";
     owner = "GNOME";
     repo = pname;
     rev = version;
-    sha256 = "sha256-s7z1bR2ZG3YxJcqNrhH+O5PfGeFoPWeWSI26VCCe33Y=";
+    sha256 = "sha256-G3JSqrHc2ca32RZOO6gFY8iVlEFX+kukZDcTb8O5UHk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome/misc/nautilus-python/default.nix b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
index ed1fd365ebc64..c1d58e2dbda98 100644
--- a/pkgs/desktops/gnome/misc/nautilus-python/default.nix
+++ b/pkgs/desktops/gnome/misc/nautilus-python/default.nix
@@ -51,6 +51,13 @@ stdenv.mkDerivation rec {
     gtk3 # required by libnautilus-extension
   ];
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: nautilus-python-object.o:src/nautilus-python.h:61: multiple definition of
+  #     `_PyNautilusMenu_Type'; nautilus-python.o:src/nautilus-python.h:61: first defined here
+  # TODO: remove it once upstream fixes and releases:
+  #   https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/7
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   makeFlags = [
     "PYTHON_LIB_LOC=${python3}/lib"
   ];
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 9147324b88674..312be10811b18 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -5,7 +5,6 @@
 , pkg-config
 , meson
 , ninja
-, gettext
 , vala
 , python3
 , desktop-file-utils
@@ -21,7 +20,6 @@
 , bamf
 , sqlite
 , zeitgeist
-, glib-networking
 , libcloudproviders
 , libgit2-glib
 , wrapGAppsHook
@@ -30,7 +28,7 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-files";
-  version = "6.1.2";
+  version = "6.1.3";
 
   outputs = [ "out" "dev" ];
 
@@ -38,13 +36,11 @@ stdenv.mkDerivation rec {
     owner = "elementary";
     repo = "files";
     rev = version;
-    sha256 = "sha256-g9g4wJXjjudk4Qt96XGUiV/X86Ae2lqhM+psh9h+XFE=";
+    sha256 = "sha256-aA3cerBKvxrh5vmDrLeWyLfbz7YjeN0aoTCX9NnVWhQ=";
   };
 
   nativeBuildInputs = [
     desktop-file-utils
-    gettext
-    glib-networking
     meson
     ninja
     pkg-config
diff --git a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
index c101e57e1ace6..7efd7e99da284 100644
--- a/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-tasks/default.nix
@@ -2,8 +2,6 @@
 , stdenv
 , fetchFromGitHub
 , nix-update-script
-, appstream
-, desktop-file-utils
 , meson
 , ninja
 , pkg-config
@@ -25,18 +23,16 @@
 
 stdenv.mkDerivation rec {
   pname = "elementary-tasks";
-  version = "6.2.0";
+  version = "6.3.0";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = "tasks";
     rev = version;
-    sha256 = "sha256-eHaWXntLkk5G+cR5uFwWsIvbSPsbrvpglYBh91ta/M0=";
+    sha256 = "sha256-kW36bKA0uzW98Xl2bjbTkcfLm4SeQR8VB2FyKOqfPnM=";
   };
 
   nativeBuildInputs = [
-    appstream
-    desktop-file-utils
     meson
     ninja
     pkg-config
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index cc719e65dfa94..7d030050f9d45 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -11,23 +11,21 @@
 , libgee
 , libhandy
 , granite
-, gettext
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
-  version = "6.0.1";
+  version = "6.0.2";
 
   src = fetchFromGitHub {
     owner = "elementary";
     repo = pname;
     rev = version;
-    sha256 = "sha256-QMh9m6Xc0BeprZHrOgcmSireWb8Ja7Td0COYMgYw+5M=";
+    sha256 = "sha256-2c+anQ17lrdFy+cbjoYY94EFxYUcS+4mZrwbrLohfUg=";
   };
 
   nativeBuildInputs = [
-    gettext
     meson
     ninja
     pkg-config
diff --git a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
index afde58c5f5095..98fda866d6ca2 100644
--- a/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-notifications/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , pkg-config
@@ -50,6 +51,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "GTK notification server for Pantheon";
     homepage = "https://github.com/elementary/notifications";
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index a57d14d2f40ce..04dc119c52e94 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, nix-update-script
 , meson
 , ninja
 , pkg-config
@@ -57,6 +58,12 @@ stdenv.mkDerivation rec {
     patchShebangs meson/post_install.py
   '';
 
+  passthru = {
+    updateScript = nix-update-script {
+      attrPath = "pantheon.${pname}";
+    };
+  };
+
   meta = with lib; {
     description = "Settings daemon for Pantheon";
     homepage = "https://github.com/elementary/settings-daemon";
diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix
index 87f89330afe0d..41cdc298e9875 100644
--- a/pkgs/desktops/plasma-5/default.nix
+++ b/pkgs/desktops/plasma-5/default.nix
@@ -124,7 +124,6 @@ let
       ksystemstats = callPackage ./ksystemstats.nix {};
       kwallet-pam = callPackage ./kwallet-pam.nix {};
       kwayland-integration = callPackage ./kwayland-integration.nix {};
-      kwayland-server = callPackage ./kwayland-server {};
       kwin = callPackage ./kwin {};
       kwrited = callPackage ./kwrited.nix {};
       layer-shell-qt = callPackage ./layer-shell-qt.nix {};
diff --git a/pkgs/desktops/plasma-5/fetch.sh b/pkgs/desktops/plasma-5/fetch.sh
index 77129d3430768..f58b02da6fb9f 100644
--- a/pkgs/desktops/plasma-5/fetch.sh
+++ b/pkgs/desktops/plasma-5/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/plasma/5.24.5/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/plasma/5.25.1/ -A '*.tar.xz' )
diff --git a/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch b/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
deleted file mode 100644
index 771e093bb9e88..0000000000000
--- a/pkgs/desktops/plasma-5/kwayland-server/0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 80bca7370d4b8bafcf18abcda30f02e190f419a4 Mon Sep 17 00:00:00 2001
-From: Tom Hall <tahall256@protonmail.ch>
-Date: Sat, 29 Aug 2020 19:14:30 +0100
-Subject: [PATCH] Use KDE_INSTALL_TARGETS_DEFAULT_ARGS when installing targets
-
----
- src/server/CMakeLists.txt | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/server/CMakeLists.txt b/src/server/CMakeLists.txt
-index 0f99682..35e3601 100644
---- a/src/server/CMakeLists.txt
-+++ b/src/server/CMakeLists.txt
-@@ -356,7 +356,7 @@ set_target_properties(KWaylandServer PROPERTIES VERSION   ${KWAYLANDSERVER_VERSI
-                                                 SOVERSION ${KWAYLANDSERVER_SOVERSION}
- )
- 
--install(TARGETS KWaylandServer EXPORT KWaylandServerTargets ${KF5_INSTALL_TARGETS_DEFAULT_ARGS})
-+install(TARGETS KWaylandServer EXPORT KWaylandServerTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
- 
- set(SERVER_LIB_HEADERS
-   ${CMAKE_CURRENT_BINARY_DIR}/KWaylandServer/kwaylandserver_export.h
--- 
-2.26.2
-
diff --git a/pkgs/desktops/plasma-5/kwayland-server/default.nix b/pkgs/desktops/plasma-5/kwayland-server/default.nix
deleted file mode 100644
index e71b98b1b9468..0000000000000
--- a/pkgs/desktops/plasma-5/kwayland-server/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
-  mkDerivation, lib, cmake,
-  extra-cmake-modules, kdoctools,
-  kwayland, plasma-wayland-protocols,
-  wayland, wayland-protocols, qtbase
-}:
-
-mkDerivation {
-  pname = "kwayland-server";
-  nativeBuildInputs = [
-    cmake
-    extra-cmake-modules #kdoctools
-  ];
-  buildInputs = [
-    kwayland plasma-wayland-protocols wayland wayland-protocols
-  ];
-  patches = [ ./0001-Use-KDE_INSTALL_TARGETS_DEFAULT_ARGS-when-installing.patch ];
-}
diff --git a/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch b/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
index 9bade4eab6a9c..cdc8245ce5b5a 100644
--- a/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
+++ b/pkgs/desktops/plasma-5/kwin/0001-NixOS-Unwrap-executable-name-for-.desktop-search.patch
@@ -13,7 +13,7 @@ Co-authored-by: Yaroslav Bolyukin <iam@lach.pw>
 ---
  src/nixos_utils.h     | 41 +++++++++++++++++++++++++++++++++++++++++
  src/service_utils.h   |  4 +++-
- src/waylandclient.cpp |  5 ++++-
+ src/waylandwindow.cpp |  5 ++++-
  3 files changed, 48 insertions(+), 2 deletions(-)
  create mode 100644 src/nixos_utils.h
 
@@ -87,10 +87,10 @@ index 8a70c1f..475b15d 100644
      // needed to be able to use the logging category in a header static function
      static QLoggingCategory KWIN_UTILS ("KWIN_UTILS", QtWarningMsg);
      const auto servicesFound = KApplicationTrader::query([&executablePath] (const KService::Ptr &service) {
-diff --git a/src/waylandclient.cpp b/src/waylandclient.cpp
+diff --git a/src/waylandwindow.cpp b/src/waylandwindow.cpp
 index fd2c0c1..ae8cf96 100644
---- a/src/waylandclient.cpp
-+++ b/src/waylandclient.cpp
+--- a/src/waylandwindow.cpp
++++ b/src/waylandwindow.cpp
 @@ -10,6 +10,7 @@
  #include "screens.h"
  #include "wayland_server.h"
@@ -99,9 +99,9 @@ index fd2c0c1..ae8cf96 100644
  
  #include <KWaylandServer/display.h>
  #include <KWaylandServer/clientbuffer.h>
-@@ -173,7 +174,9 @@ void WaylandClient::updateIcon()
+@@ -173,7 +174,9 @@ void WaylandWindow::updateIcon()
  
- void WaylandClient::updateResourceName()
+ void WaylandWindow::updateResourceName()
  {
 -    const QFileInfo fileInfo(surface()->client()->executablePath());
 +    const QString in_path = surface()->client()->executablePath();
diff --git a/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch b/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
index 9e37d51c49963..dfd25e727f940 100644
--- a/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
+++ b/pkgs/desktops/plasma-5/kwin/0002-xwayland.patch
@@ -4,22 +4,22 @@ Date: Mon, 27 Jan 2020 05:31:23 -0600
 Subject: [PATCH 2/3] xwayland
 
 ---
- src/xwl/xwayland.cpp | 2 +-
+ src/xwayland/xwaylandlauncher.cpp | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-diff --git a/src/xwl/xwayland.cpp b/src/xwl/xwayland.cpp
+diff --git a/src/xwayland/xwaylandlauncher.cpp b/src/xwayland/xwaylandlauncher.cpp
 index 57efdde..a211a58 100644
---- a/src/xwl/xwayland.cpp
-+++ b/src/xwl/xwayland.cpp
-@@ -124,7 +124,7 @@ void Xwayland::start()
+--- a/src/xwayland/xwaylandlauncher.cpp
++++ b/src/xwayland/xwaylandlauncher.cpp
+@@ -163,7 +163,7 @@ void Xwayland::start()
  
-     m_xwaylandProcess = new Process(this);
+     m_xwaylandProcess = new QProcess(this);
      m_xwaylandProcess->setProcessChannelMode(QProcess::ForwardedErrorChannel);
 -    m_xwaylandProcess->setProgram(QStringLiteral("Xwayland"));
 +    m_xwaylandProcess->setProgram(QLatin1String(NIXPKGS_XWAYLAND));
-     QProcessEnvironment env = m_app->processStartupEnvironment();
+     QProcessEnvironment env = QProcessEnvironment::systemEnvironment();
      env.insert("WAYLAND_SOCKET", QByteArray::number(wlfd));
-     env.insert("EGL_PLATFORM", QByteArrayLiteral("DRM"));
+     if (qEnvironmentVariableIsSet("KWIN_XWAYLAND_DEBUG")) {
 -- 
 2.29.2
 
diff --git a/pkgs/desktops/plasma-5/kwin/default.nix b/pkgs/desktops/plasma-5/kwin/default.nix
index db0485db8873d..847ef41ee88b7 100644
--- a/pkgs/desktops/plasma-5/kwin/default.nix
+++ b/pkgs/desktops/plasma-5/kwin/default.nix
@@ -4,6 +4,7 @@
 
   libepoxy, lcms2, libICE, libSM, libcap, libdrm, libinput, libxkbcommon, mesa,
   pipewire, udev, wayland, xcb-util-cursor, xwayland,
+  plasma-wayland-protocols, wayland-protocols, libxcvt,
 
   qtdeclarative, qtmultimedia, qtquickcontrols2, qtscript, qtsensors,
   qtvirtualkeyboard, qtx11extras,
@@ -11,8 +12,9 @@
   breeze-qt5, kactivities, kcompletion, kcmutils, kconfig, kconfigwidgets,
   kcoreaddons, kcrash, kdeclarative, kdecoration, kglobalaccel, ki18n,
   kiconthemes, kidletime, kinit, kio, knewstuff, knotifications, kpackage,
-  krunner, kscreenlocker, kservice, kwayland, kwayland-server, kwidgetsaddons,
+  krunner, kscreenlocker, kservice, kwayland, kwidgetsaddons,
   kwindowsystem, kxmlgui, plasma-framework, libqaccessibilityclient,
+  python3
 }:
 
 # TODO (ttuegel): investigate qmlplugindump failure
@@ -23,6 +25,7 @@ mkDerivation {
   buildInputs = [
     libepoxy lcms2 libICE libSM libcap libdrm libinput libxkbcommon mesa pipewire
     udev wayland xcb-util-cursor xwayland
+    libxcvt plasma-wayland-protocols wayland-protocols
 
     qtdeclarative qtmultimedia qtquickcontrols2 qtscript qtsensors
     qtvirtualkeyboard qtx11extras
@@ -30,11 +33,16 @@ mkDerivation {
     breeze-qt5 kactivities kcmutils kcompletion kconfig kconfigwidgets
     kcoreaddons kcrash kdeclarative kdecoration kglobalaccel ki18n kiconthemes
     kidletime kinit kio knewstuff knotifications kpackage krunner kscreenlocker
-    kservice kwayland kwayland-server kwidgetsaddons kwindowsystem kxmlgui
+    kservice kwayland kwidgetsaddons kwindowsystem kxmlgui
     plasma-framework libqaccessibilityclient
 
   ];
   outputs = [ "out" "dev" ];
+
+  postPatch = ''
+    patchShebangs src/effects/strip-effect-metadata.py
+  '';
+
   patches = [
     ./0001-follow-symlinks.patch
     ./0002-xwayland.patch
diff --git a/pkgs/desktops/plasma-5/plasma-integration/default.nix b/pkgs/desktops/plasma-5/plasma-integration/default.nix
index 9febc5172d48a..2c6bd8337ff17 100644
--- a/pkgs/desktops/plasma-5/plasma-integration/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-integration/default.nix
@@ -2,7 +2,8 @@
   mkDerivation,
   extra-cmake-modules,
   breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, knotifications,
-  kwayland, libXcursor, qtquickcontrols2
+  kwayland, libXcursor, qtquickcontrols2, wayland, wayland-protocols,
+  plasma-wayland-protocols
 }:
 
 # TODO: install Noto Sans and Oxygen Mono fonts with plasma-integration
@@ -12,6 +13,7 @@ mkDerivation {
   nativeBuildInputs = [ extra-cmake-modules ];
   buildInputs = [
     breeze-qt5 kconfig kconfigwidgets kiconthemes kio knotifications kwayland
-    libXcursor qtquickcontrols2
+    libXcursor qtquickcontrols2 wayland wayland-protocols
+    plasma-wayland-protocols
   ];
 }
diff --git a/pkgs/desktops/plasma-5/plasma-mobile/default.nix b/pkgs/desktops/plasma-5/plasma-mobile/default.nix
index be628de65408b..7ce5f827589a9 100644
--- a/pkgs/desktops/plasma-5/plasma-mobile/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-mobile/default.nix
@@ -23,7 +23,7 @@ mkDerivation {
     appstream libdbusmenu pam wayland
     kdeclarative kdelibs4support kpeople kconfig krunner kinit kwayland kwin
     plasma-framework telepathy libphonenumber protobuf libqofono modemmanager-qt
-    networkmanager-qt maliit-framework maliit-keyboard
+    networkmanager-qt maliit-framework maliit-keyboard plasma-workspace
   ];
 
   postPatch = ''
diff --git a/pkgs/desktops/plasma-5/plasma-workspace/default.nix b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
index 68b6d1d675fef..f785ee9165c00 100644
--- a/pkgs/desktops/plasma-5/plasma-workspace/default.nix
+++ b/pkgs/desktops/plasma-5/plasma-workspace/default.nix
@@ -57,7 +57,7 @@ mkDerivation {
   # QT_INSTALL_BINS refers to qtbase, and qdbus is in qttools
   postPatch = ''
     substituteInPlace CMakeLists.txt \
-      --replace 'query_qmake(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")'
+      --replace 'ecm_query_qt(QtBinariesDir QT_INSTALL_BINS)' 'set(QtBinariesDir "${lib.getBin qttools}/bin")'
   '';
 
   NIX_CFLAGS_COMPILE = [
diff --git a/pkgs/desktops/plasma-5/powerdevil.nix b/pkgs/desktops/plasma-5/powerdevil.nix
index 47551cedfb2c1..bb511c21ba67f 100644
--- a/pkgs/desktops/plasma-5/powerdevil.nix
+++ b/pkgs/desktops/plasma-5/powerdevil.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation, fetchpatch,
+  mkDerivation,
   extra-cmake-modules, kdoctools,
   bluez-qt, kactivities, kauth, kconfig, kdbusaddons,
   kglobalaccel, ki18n, kidletime, kio, knotifyconfig, kwayland, libkscreen,
diff --git a/pkgs/desktops/plasma-5/srcs.nix b/pkgs/desktops/plasma-5/srcs.nix
index d4369a9073551..73298c78399e9 100644
--- a/pkgs/desktops/plasma-5/srcs.nix
+++ b/pkgs/desktops/plasma-5/srcs.nix
@@ -4,427 +4,427 @@
 
 {
   bluedevil = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/bluedevil-5.24.5.tar.xz";
-      sha256 = "1yhynfpgm2cwvimh63hihg5dm0hzjp20364bvjyyh108830rjsf9";
-      name = "bluedevil-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/bluedevil-5.25.1.tar.xz";
+      sha256 = "1fdbxz2lk43svp6f0srjhpfhipfimf0nqjnvv62bqzpasv74p13g";
+      name = "bluedevil-5.25.1.tar.xz";
     };
   };
   breeze = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/breeze-5.24.5.tar.xz";
-      sha256 = "18zhm9my0vhwiq95v3p48z8s5m4a5c7kw8n144ykqlm51nssc9c5";
-      name = "breeze-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/breeze-5.25.1.tar.xz";
+      sha256 = "13qwxvbdmf3qx7nfarr33q22rn43xsby7l8bjjfn6862l7pqhash";
+      name = "breeze-5.25.1.tar.xz";
     };
   };
   breeze-grub = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/breeze-grub-5.24.5.tar.xz";
-      sha256 = "02lcv23l3zr0g6nggmrxz4pgq852fir9yramhaxmcg634pxiacni";
-      name = "breeze-grub-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/breeze-grub-5.25.1.tar.xz";
+      sha256 = "11ic3cjfvgs2jkwbkzr2xd568ym7x2l99w488qhdhw9fzkk56rrh";
+      name = "breeze-grub-5.25.1.tar.xz";
     };
   };
   breeze-gtk = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/breeze-gtk-5.24.5.tar.xz";
-      sha256 = "0c25z69lyjczm05jraqk2f09sipkhpsz5zirwzqdq3apip06qw93";
-      name = "breeze-gtk-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/breeze-gtk-5.25.1.tar.xz";
+      sha256 = "0lzh7lrqiw537phfkz6bvqfbyqc4h4rb5bkxcb4s1ryynamy36yh";
+      name = "breeze-gtk-5.25.1.tar.xz";
     };
   };
   breeze-plymouth = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/breeze-plymouth-5.24.5.tar.xz";
-      sha256 = "044sbffr4sqvgkfbraa4rvlsih7zz9b300hipp33mwhpzyjjcpdc";
-      name = "breeze-plymouth-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/breeze-plymouth-5.25.1.tar.xz";
+      sha256 = "0xprjl0bszs2dmn27pvklwxx5qbcsdmrr256jlvljvq5hs5vd9ly";
+      name = "breeze-plymouth-5.25.1.tar.xz";
     };
   };
   discover = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/discover-5.24.5.tar.xz";
-      sha256 = "18a8z9ifyyjmmc620dsh491vb1q3q9bxd8gfjf5k87mgwmg1wmwk";
-      name = "discover-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/discover-5.25.1.tar.xz";
+      sha256 = "1cpmi4qfxlprvj5qamjkxj4lq8038fv1fyldsfhnyi9s4zw6ww9s";
+      name = "discover-5.25.1.tar.xz";
     };
   };
   drkonqi = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/drkonqi-5.24.5.tar.xz";
-      sha256 = "1ps1p8pvp51rswynbv337qr3qj2z7r7kd9qpxgcrha9pql01h5gy";
-      name = "drkonqi-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/drkonqi-5.25.1.tar.xz";
+      sha256 = "147azxas0idb0ymcwg15davb5p84czysmsfxmcbrcqlxjkby3dy0";
+      name = "drkonqi-5.25.1.tar.xz";
     };
   };
   kactivitymanagerd = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kactivitymanagerd-5.24.5.tar.xz";
-      sha256 = "0j6d50cjry4j3vzxb6hd4w95y2h3l0yfhyrhl693njr64aq7d4pa";
-      name = "kactivitymanagerd-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kactivitymanagerd-5.25.1.tar.xz";
+      sha256 = "1jjby09p8hak52syjzaf4wz9hyjz8rylz4jzranrkk3n85znqwk0";
+      name = "kactivitymanagerd-5.25.1.tar.xz";
     };
   };
   kde-cli-tools = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kde-cli-tools-5.24.5.tar.xz";
-      sha256 = "0afksrxd6mq9rcvh3g8y05kl0la4wmn1yksif8p1bcxpd4sdvw77";
-      name = "kde-cli-tools-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kde-cli-tools-5.25.1.tar.xz";
+      sha256 = "03v7ws48ywjkaqj87zcw7d0dfi36abpz9bnv9s9qp2y4mnk9x198";
+      name = "kde-cli-tools-5.25.1.tar.xz";
     };
   };
   kde-gtk-config = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kde-gtk-config-5.24.5.tar.xz";
-      sha256 = "0sg8kqlkklvjhj69z5wzhvi0hddxa192j4vc4wc9hmfl1wirr8cq";
-      name = "kde-gtk-config-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kde-gtk-config-5.25.1.tar.xz";
+      sha256 = "17sqznjz5sn3xih6l83sx62p0s2sk3p1svqg297x3jq67a9299yj";
+      name = "kde-gtk-config-5.25.1.tar.xz";
     };
   };
   kdecoration = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kdecoration-5.24.5.tar.xz";
-      sha256 = "1hjjl6k09zi8n9nblbcm69c3br6d4dhzaw55xyygglaz6kb8fc17";
-      name = "kdecoration-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kdecoration-5.25.1.tar.xz";
+      sha256 = "15gik2c0370f2rmd7jv3pbxbsjng25g6cwzamq3xaa3gqh6l2b33";
+      name = "kdecoration-5.25.1.tar.xz";
     };
   };
   kdeplasma-addons = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kdeplasma-addons-5.24.5.tar.xz";
-      sha256 = "03p8wmsb5nl7j6kwl6j8nwlf6v7snh933jyglgp2vnclqp1jpd9x";
-      name = "kdeplasma-addons-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kdeplasma-addons-5.25.1.tar.xz";
+      sha256 = "14p69kpyaszir8y4zxnyhxmall291rwcy770w4d0mlc04difki8d";
+      name = "kdeplasma-addons-5.25.1.tar.xz";
     };
   };
   kgamma5 = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kgamma5-5.24.5.tar.xz";
-      sha256 = "1i7i3dc5qfb3v9hz9w9hszr8jbbdbfq0b59a4bh1p6xakxx8k1l0";
-      name = "kgamma5-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kgamma5-5.25.1.tar.xz";
+      sha256 = "1pc8abx3j91iqb93rsc13bq8sr610zxa91dhy8hr301fmvv9dbg2";
+      name = "kgamma5-5.25.1.tar.xz";
     };
   };
   khotkeys = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/khotkeys-5.24.5.tar.xz";
-      sha256 = "06m7yrs75arwdfrkpkn9b5kiz2xlrsxlpsjr18j1pjhxras0f8vs";
-      name = "khotkeys-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/khotkeys-5.25.1.tar.xz";
+      sha256 = "14i9bdqjf5myacybsplsais70x3rnjnfj9807xxgwnqy5dqbz8hg";
+      name = "khotkeys-5.25.1.tar.xz";
     };
   };
   kinfocenter = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kinfocenter-5.24.5.tar.xz";
-      sha256 = "0c2bq7m8c9r17s8qalp4cdz1qimzwnvh9wrba4rqcmxwbv043ln1";
-      name = "kinfocenter-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kinfocenter-5.25.1.tar.xz";
+      sha256 = "0pyirq0zz8y1pvznw5idjsxwslp0bchfjp72l855z5bwfwh7dmfq";
+      name = "kinfocenter-5.25.1.tar.xz";
     };
   };
   kmenuedit = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kmenuedit-5.24.5.tar.xz";
-      sha256 = "02il6bhayjni0jsx1d1cnmxv5yc7r0d02s2v6cs87fbdrnl7d9vq";
-      name = "kmenuedit-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kmenuedit-5.25.1.tar.xz";
+      sha256 = "0v7k9dcawylgdbjklmjn4mv10z6cm6hhp3za9ni88wlgb2vh9mmk";
+      name = "kmenuedit-5.25.1.tar.xz";
     };
   };
   kscreen = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kscreen-5.24.5.tar.xz";
-      sha256 = "1g5mlc78giq8zrpyq6d2jhqgyj6yh2nhbqv6wjm9cdbq4nnm3hyr";
-      name = "kscreen-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kscreen-5.25.1.tar.xz";
+      sha256 = "1dflaaba001wk5r9n523b1mxib7pd0x5b6dnhis62zn9v5apqhaa";
+      name = "kscreen-5.25.1.tar.xz";
     };
   };
   kscreenlocker = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kscreenlocker-5.24.5.tar.xz";
-      sha256 = "13prkdwxd200ps4cy6rf2n4g9ll6fp1f93dk1njr9ilzbj2a2w1j";
-      name = "kscreenlocker-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kscreenlocker-5.25.1.tar.xz";
+      sha256 = "1bhl8a1jhzr2iycq6fzkj1sb4bybyqlnxs8rnfw0s4mmcs17lmm7";
+      name = "kscreenlocker-5.25.1.tar.xz";
     };
   };
   ksshaskpass = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/ksshaskpass-5.24.5.tar.xz";
-      sha256 = "1jw3hfnlplqsss1h49p5f3722qc22ln22sahs5ypsxszmqihpqiz";
-      name = "ksshaskpass-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/ksshaskpass-5.25.1.tar.xz";
+      sha256 = "1mxmjiprcckqn4sgqyj9nk32prvgymscmpv0kfkcsg60phqyz91m";
+      name = "ksshaskpass-5.25.1.tar.xz";
     };
   };
   ksystemstats = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/ksystemstats-5.24.5.tar.xz";
-      sha256 = "1xsrlwm1hhagwjyjm240bfmri24z88v95m9pz95dpbcllkwdib0b";
-      name = "ksystemstats-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/ksystemstats-5.25.1.tar.xz";
+      sha256 = "0cp6hsy24g2yhijiyavx5av5djdrypvwrcpzswp8mr86p6b1ii8n";
+      name = "ksystemstats-5.25.1.tar.xz";
     };
   };
   kwallet-pam = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kwallet-pam-5.24.5.tar.xz";
-      sha256 = "1smclklxcfbxxxi3lgw2p6wmvj50fg40323j1b8p5z731ywdk3i3";
-      name = "kwallet-pam-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kwallet-pam-5.25.1.tar.xz";
+      sha256 = "1n9bnlsm4l051hp73hsp9wa14q77pplr855w3j620qz0az2zxwwx";
+      name = "kwallet-pam-5.25.1.tar.xz";
     };
   };
   kwayland-integration = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kwayland-integration-5.24.5.tar.xz";
-      sha256 = "1v12631xdjdp2wkjvyls8g0sv18amy7g4mddrh45pybhpc3rcsl0";
-      name = "kwayland-integration-5.24.5.tar.xz";
-    };
-  };
-  kwayland-server = {
-    version = "5.24.5";
-    src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kwayland-server-5.24.5.tar.xz";
-      sha256 = "0ydj6p489psqblqd88lk04q62qn1spa1m0zdjq8d32a4g4lvxnid";
-      name = "kwayland-server-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kwayland-integration-5.25.1.tar.xz";
+      sha256 = "1r80rj7f8xskiwp7lfzxp92q39gm2y6xy3ip4hv0sgjr2014fb21";
+      name = "kwayland-integration-5.25.1.tar.xz";
     };
   };
   kwin = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kwin-5.24.5.tar.xz";
-      sha256 = "10mgbs1mbhjzbwx07q77wdzhj11yc156j75fbvy8mszb9hjiappk";
-      name = "kwin-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kwin-5.25.1.tar.xz";
+      sha256 = "1srwdx1pw8kjcdmj531f43789fqsa0wj1kkhp0g42wbwj0y9af8x";
+      name = "kwin-5.25.1.tar.xz";
     };
   };
   kwrited = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/kwrited-5.24.5.tar.xz";
-      sha256 = "0gfjvj8wnfgb3s2daz7xpg9flc8xv6hk12z6ckbchq71w4gs6132";
-      name = "kwrited-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/kwrited-5.25.1.tar.xz";
+      sha256 = "0gpql9kzwvv0n2ccq6jwwf9agd1abxc8q45plj48sv09b31bxvhz";
+      name = "kwrited-5.25.1.tar.xz";
     };
   };
   layer-shell-qt = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/layer-shell-qt-5.24.5.tar.xz";
-      sha256 = "0ydjfxrkmpi052gfhkccsp9m5az3z6qiggb5wx6cjz39q06614gm";
-      name = "layer-shell-qt-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/layer-shell-qt-5.25.1.tar.xz";
+      sha256 = "0lh1dy1z08k6c40xdxcbmpdzzm18dq98gb14q6b6snh1jcrvg95c";
+      name = "layer-shell-qt-5.25.1.tar.xz";
     };
   };
   libkscreen = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/libkscreen-5.24.5.tar.xz";
-      sha256 = "1jbgq1ddl0q5y8cx4m7k5q38gl0kxv929wxr3hn3vr906fpiiwbz";
-      name = "libkscreen-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/libkscreen-5.25.1.tar.xz";
+      sha256 = "1zbdbacmbnczskk8cpr99ph9cn28izvr25x5v5l455dk077qf25g";
+      name = "libkscreen-5.25.1.tar.xz";
     };
   };
   libksysguard = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/libksysguard-5.24.5.tar.xz";
-      sha256 = "1v21xckvwx6xkiqihv3pc2ps5mmc4ahp5vadxm3lrh0pdqxb6v5h";
-      name = "libksysguard-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/libksysguard-5.25.1.tar.xz";
+      sha256 = "1xn454ch9ggx67c69hjvhhykprrdys38ych1ap8l3b1j2731vyn6";
+      name = "libksysguard-5.25.1.tar.xz";
     };
   };
   milou = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/milou-5.24.5.tar.xz";
-      sha256 = "1rh5zy1x427cv07zmikmh0rmviz7vcvnz2pyravyfzaxay5lwnf1";
-      name = "milou-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/milou-5.25.1.tar.xz";
+      sha256 = "0al6d26b96j3kx37p34gmqamc1pz7l3shyqf7dxf7j71hh0mrk09";
+      name = "milou-5.25.1.tar.xz";
     };
   };
   oxygen = {
-    version = "5.24.5";
+    version = "5.25.1";
+    src = fetchurl {
+      url = "${mirror}/stable/plasma/5.25.1/oxygen-5.25.1.tar.xz";
+      sha256 = "1ax0vw7mzlln09aajis5vc78snbi3508lg6qbx6vw9m59lpq140v";
+      name = "oxygen-5.25.1.tar.xz";
+    };
+  };
+  oxygen-sounds = {
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/oxygen-5.24.5.tar.xz";
-      sha256 = "1gh06wwm6gdjpsbjlxnrrlgsfd5w7lb0pddcml9l2w0dvlgfyn1v";
-      name = "oxygen-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/oxygen-sounds-5.25.1.tar.xz";
+      sha256 = "14z23yzqcvwjyy0qbm20xgijrndiw8pk1xf4wdbslny454k0l1q7";
+      name = "oxygen-sounds-5.25.1.tar.xz";
     };
   };
   plasma-browser-integration = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-browser-integration-5.24.5.tar.xz";
-      sha256 = "1xybyn6vsahr5j0g57bsfxmz78w35ibzavcax1inrdlnb7sblrqv";
-      name = "plasma-browser-integration-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-browser-integration-5.25.1.tar.xz";
+      sha256 = "140j74dbsx0jicz1407h4n1hqsnnvh3mk07w4y7slvf3392fqp6i";
+      name = "plasma-browser-integration-5.25.1.tar.xz";
     };
   };
   plasma-desktop = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-desktop-5.24.5.tar.xz";
-      sha256 = "0iic01iwg4bkp8sfp4mbm5lvbj98wjcyi0k79jfr1sx78dn7jn5g";
-      name = "plasma-desktop-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-desktop-5.25.1.tar.xz";
+      sha256 = "1j1d0j4sdnyfcpv9z4ch6z5z0d7ylkbqcwkhwx0qqs7if8p6f355";
+      name = "plasma-desktop-5.25.1.tar.xz";
     };
   };
   plasma-disks = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-disks-5.24.5.tar.xz";
-      sha256 = "1x3lm5cnwa51i8kcmp7pq29fpa9za3ypsmmldf2jbisawjnrb50k";
-      name = "plasma-disks-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-disks-5.25.1.tar.xz";
+      sha256 = "1ji4gkm36zk4ybdnqzynni0q66nniryfa4p60wqmqr7x97h4376s";
+      name = "plasma-disks-5.25.1.tar.xz";
     };
   };
   plasma-firewall = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-firewall-5.24.5.tar.xz";
-      sha256 = "0mk9plb1rwng77qy55c7y7ga4fkafan89bf4vqsc4i9nfn49d944";
-      name = "plasma-firewall-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-firewall-5.25.1.tar.xz";
+      sha256 = "0vip17v0860grmqh9sv7vjisnxgpxqs5hw8yw0fdign0dp3yjn33";
+      name = "plasma-firewall-5.25.1.tar.xz";
     };
   };
   plasma-integration = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-integration-5.24.5.tar.xz";
-      sha256 = "0ynzx99jn4fqzbrv9mav0sw06rzf7mm1rv17g17vsxijwbhr0i6d";
-      name = "plasma-integration-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-integration-5.25.1.tar.xz";
+      sha256 = "09xpbjp5k28bjvs8nszkzk9mw72zv0v171y495ffn8af6yq35cgj";
+      name = "plasma-integration-5.25.1.tar.xz";
     };
   };
   plasma-mobile = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-mobile-5.24.5.tar.xz";
-      sha256 = "0400rwx4pbz4kfy06f2vxchlf9vr6dx71wsi6vir3vdmvl43yazd";
-      name = "plasma-mobile-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-mobile-5.25.1.tar.xz";
+      sha256 = "04dg6xyzj9zg9g80f6l1chg8f9pj0wz4c8szj3mx1cs98lp3bvcy";
+      name = "plasma-mobile-5.25.1.tar.xz";
     };
   };
   plasma-nano = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-nano-5.24.5.tar.xz";
-      sha256 = "0zxvqzg1p6ci6581bh4nhsq2p6pq66pmvs93zlj89ml4am176213";
-      name = "plasma-nano-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-nano-5.25.1.tar.xz";
+      sha256 = "0acdz8qqkk4rwsfglk06am8s89zyz0jafhqq574bw83znq13xhfy";
+      name = "plasma-nano-5.25.1.tar.xz";
     };
   };
   plasma-nm = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-nm-5.24.5.tar.xz";
-      sha256 = "0adl5wfrz16hc7j64830cx1ga0bh9zd8bff95a30zdiggp7jc45f";
-      name = "plasma-nm-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-nm-5.25.1.tar.xz";
+      sha256 = "011i4d612ljvy2b9vv4lqr2ad5yq0qv18nqqjdy3wmj7w1nm4ww9";
+      name = "plasma-nm-5.25.1.tar.xz";
     };
   };
   plasma-pa = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-pa-5.24.5.tar.xz";
-      sha256 = "1lgq2lydl65bh01043ji7kkignrb5lfcvbhy0g4g7lw778whv3q6";
-      name = "plasma-pa-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-pa-5.25.1.tar.xz";
+      sha256 = "1nrsw3f2dj1sd3ibyym7142shwxnsi72j4nkhx02206fcjm5p9d1";
+      name = "plasma-pa-5.25.1.tar.xz";
     };
   };
   plasma-sdk = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-sdk-5.24.5.tar.xz";
-      sha256 = "0d35sckjvi77b3475pfh1ixdsdx0m7b0hbsx5rbjgj4b05cdpm0w";
-      name = "plasma-sdk-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-sdk-5.25.1.tar.xz";
+      sha256 = "1cy9c4h6yxqjnylnpy2ai7vsx3c1b9p6ga3771jdb1zgqw55lgg7";
+      name = "plasma-sdk-5.25.1.tar.xz";
     };
   };
   plasma-systemmonitor = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-systemmonitor-5.24.5.tar.xz";
-      sha256 = "1vx0w5kmnp3chhydas7ijy8h1xf6dggd1ryhbr3k9qz2qihxfsqm";
-      name = "plasma-systemmonitor-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-systemmonitor-5.25.1.tar.xz";
+      sha256 = "1l6m5jnqk56r20mv24s567qj4fbv6ixnzsw75pssngn5zmccm6xy";
+      name = "plasma-systemmonitor-5.25.1.tar.xz";
     };
   };
   plasma-tests = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-tests-5.24.5.tar.xz";
-      sha256 = "1aqmmix0ds9vg4cjj8dagaya10ainhcciixamdylz1p7vgzpsrkx";
-      name = "plasma-tests-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-tests-5.25.1.tar.xz";
+      sha256 = "1vdvyirk53xv77mdj9kd3n8sk9rfgrz7c31h93bs1hybpbkqbc4g";
+      name = "plasma-tests-5.25.1.tar.xz";
     };
   };
   plasma-thunderbolt = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-thunderbolt-5.24.5.tar.xz";
-      sha256 = "1q0r9l2b06qkbyxa25lvqdwz0rgcjvp48gwkw0xhhaf6fyaai1cl";
-      name = "plasma-thunderbolt-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-thunderbolt-5.25.1.tar.xz";
+      sha256 = "19wjs5sapq4v4wwmhd4fk1pdc4zkn0p0w91vc29mzw7vy51id5w0";
+      name = "plasma-thunderbolt-5.25.1.tar.xz";
     };
   };
   plasma-vault = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-vault-5.24.5.tar.xz";
-      sha256 = "16cyzyfzwqwqsg7hhg576acvxvbd12b7mznvicrrqnyf4wvw68l1";
-      name = "plasma-vault-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-vault-5.25.1.tar.xz";
+      sha256 = "15pad4p9lf6z4nkm0zk82k1zn0x724l68hajvwrhw4qjrr8p2p68";
+      name = "plasma-vault-5.25.1.tar.xz";
     };
   };
   plasma-workspace = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-workspace-5.24.5.tar.xz";
-      sha256 = "1xk4424az7sgb0kyysr1s2x756vj4km50xxzkn1s1kxyw28jd4dr";
-      name = "plasma-workspace-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-workspace-5.25.1.tar.xz";
+      sha256 = "1pin9x3sz0x39af0cvfna518sx383sr2564f85c7znvyw4qdys0k";
+      name = "plasma-workspace-5.25.1.tar.xz";
     };
   };
   plasma-workspace-wallpapers = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plasma-workspace-wallpapers-5.24.5.tar.xz";
-      sha256 = "0aabmd4zswmzdy958y1yq0yp1v9i8kzl959d6r4pwi0lmhr6g6qi";
-      name = "plasma-workspace-wallpapers-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plasma-workspace-wallpapers-5.25.1.tar.xz";
+      sha256 = "0cpqgp45rbsaynasf1k974fvwwrfv93r68hn6bvka99nh6j4vpki";
+      name = "plasma-workspace-wallpapers-5.25.1.tar.xz";
     };
   };
   plymouth-kcm = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/plymouth-kcm-5.24.5.tar.xz";
-      sha256 = "04m4129hxgq4g9v8gvi8q0hzhqzd866j3j1ffxs5vfd27r155wcr";
-      name = "plymouth-kcm-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/plymouth-kcm-5.25.1.tar.xz";
+      sha256 = "08sf692fsdffaj91kgw3mg4bgxyy080kx992zb6drnkjmxq6pi93";
+      name = "plymouth-kcm-5.25.1.tar.xz";
     };
   };
   polkit-kde-agent = {
-    version = "1-5.24.5";
+    version = "1-5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/polkit-kde-agent-1-5.24.5.tar.xz";
-      sha256 = "0w78c59nm71xnd5prm035z94r5bzlqr0fyri43a8vrfyyb21r9l9";
-      name = "polkit-kde-agent-1-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/polkit-kde-agent-1-5.25.1.tar.xz";
+      sha256 = "0aawaq09l1ifn7wd9ggj50vv19vj30w8bmfdzwjhj9zgym2s8dc4";
+      name = "polkit-kde-agent-1-5.25.1.tar.xz";
     };
   };
   powerdevil = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/powerdevil-5.24.5.tar.xz";
-      sha256 = "1wr3rk318j93rnyh24icl4yxdj40zasymlddc71ram80fswa2k4n";
-      name = "powerdevil-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/powerdevil-5.25.1.tar.xz";
+      sha256 = "0m57mp577liv3cmd4afm834mif688akdir9i89xjmvwdg8cws7n4";
+      name = "powerdevil-5.25.1.tar.xz";
     };
   };
   qqc2-breeze-style = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/qqc2-breeze-style-5.24.5.tar.xz";
-      sha256 = "1m0xnx46zkv1dlwkgns1ibgsl934jbcfz35jlm4p8l6n1y2jcjyg";
-      name = "qqc2-breeze-style-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/qqc2-breeze-style-5.25.1.tar.xz";
+      sha256 = "00ij7ci9xh125g9n8f1qmlpjjy93hydqi3gf29bfz4vh2lnvfd4l";
+      name = "qqc2-breeze-style-5.25.1.tar.xz";
     };
   };
   sddm-kcm = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/sddm-kcm-5.24.5.tar.xz";
-      sha256 = "15z5hfpczi73vqjfj9z2ai2r4187fyrvfnikcfb18g2bdh1n54ng";
-      name = "sddm-kcm-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/sddm-kcm-5.25.1.tar.xz";
+      sha256 = "1m371dqj72f3lxyn8bjz0bgxycrz5ik1byzqqhrjkfy3an68vs36";
+      name = "sddm-kcm-5.25.1.tar.xz";
     };
   };
   systemsettings = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/systemsettings-5.24.5.tar.xz";
-      sha256 = "1rg9zx7fhrg91nlarv0cz384agbik47sccj7hhshnxnq1czvawjv";
-      name = "systemsettings-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/systemsettings-5.25.1.tar.xz";
+      sha256 = "1kichbhmsnr3kmlzic4dp3ajbkwrn8q9idjwwffnr48rz1pnb3j3";
+      name = "systemsettings-5.25.1.tar.xz";
     };
   };
   xdg-desktop-portal-kde = {
-    version = "5.24.5";
+    version = "5.25.1";
     src = fetchurl {
-      url = "${mirror}/stable/plasma/5.24.5/xdg-desktop-portal-kde-5.24.5.tar.xz";
-      sha256 = "1zn6wln8pccj1x3labms7xippn6xgv4aamwpmzk2rvwss9jwz75m";
-      name = "xdg-desktop-portal-kde-5.24.5.tar.xz";
+      url = "${mirror}/stable/plasma/5.25.1/xdg-desktop-portal-kde-5.25.1.tar.xz";
+      sha256 = "15b9wradlqlcipn9q09czc698xsb4q7j6pwgnv8fbaq5na6xgh0s";
+      name = "xdg-desktop-portal-kde-5.25.1.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index 3efc0f1ceab39..6aeaeac8a1ead 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,18 +1,52 @@
-{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten }:
+{ lib, stdenv, cmake, python3, fetchFromGitHub, emscripten,
+  gtest, lit, nodejs, filecheck, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   pname = "binaryen";
-  version = "102";
+  version = "109";
 
   src = fetchFromGitHub {
     owner = "WebAssembly";
     repo = "binaryen";
     rev = "version_${version}";
-    sha256 = "sha256-UlktpY9tyjYNkmiBZM42QGg67kcPo7VDy2B4Ty1YIew=";
+    sha256 = "sha256-HMPoiuTvYhTDaBUfSOfh/Dt4FdO9jGqUaFpi92pnscI=";
   };
 
+  patches = [
+    # https://github.com/WebAssembly/binaryen/pull/4321
+    (fetchpatch {
+      url = "https://github.com/WebAssembly/binaryen/commit/93b8849d9f98ef7ed812938ff0b3219819c2be77.patch";
+      sha256 = "sha256-Duan/B9A+occ5Lj2SbRX793xIfhzHbdYPI5PyTNCZoU=";
+    })
+  ];
+
   nativeBuildInputs = [ cmake python3 ];
 
+  preConfigure = ''
+    if [ $doCheck -eq 1 ]; then
+      sed -i '/googletest/d' third_party/CMakeLists.txt
+    else
+      cmakeFlagsArray=($cmakeFlagsArray -DBUILD_TESTS=0)
+    fi
+  '';
+
+  checkInputs = [ gtest lit nodejs filecheck ];
+  checkPhase = ''
+    LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$PWD/lib python3 ../check.py $tests
+  '';
+
+  tests = [
+    "version" "wasm-opt" "wasm-dis"
+    "crash" "dylink" "ctor-eval"
+    "wasm-metadce" "wasm-reduce" "spec"
+    "lld" "wasm2js" "validator"
+    "example" "unit"
+    # "binaryenjs" "binaryenjs_wasm" # not building this
+    "lit" "gtest"
+  ];
+  doCheck = stdenv.isLinux;
+
   meta = with lib; {
     homepage = "https://github.com/WebAssembly/binaryen";
     description = "Compiler infrastructure and toolchain library for WebAssembly, in C++";
diff --git a/pkgs/development/compilers/bs-platform/ocaml.nix b/pkgs/development/compilers/bs-platform/ocaml.nix
index 05fb8b6b17eac..3fe0e0b2eede5 100644
--- a/pkgs/development/compilers/bs-platform/ocaml.nix
+++ b/pkgs/development/compilers/bs-platform/ocaml.nix
@@ -5,6 +5,13 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     ./configure -prefix $out
   '';
+
+  # Workaround ocaml-4.06 limitation of duplicate definitions.
+  #   ld: libcamlrun.a(minor_gc.o):/build/ocaml/byterun/caml/major_gc.h:67: multiple definition of
+  #     `caml_major_ring'; libcamlrun.a(stacks.o):/build/ocaml/byterun/caml/major_gc.h:67: first defined here
+  # Match -fcommon workaround in ocaml-4.06 itself.
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   buildPhase = ''
     make -j9 world.opt
   '';
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index a2c555aa5306f..4565128f52b0a 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -109,6 +109,10 @@ stdenv.mkDerivation rec {
     rm dmd/test/runnable/gdb15729.sh
     rm dmd/test/runnable/gdb4149.d
     rm dmd/test/runnable/gdb4181.d
+
+    # Grep'd string changed with gdb 12
+    substituteInPlace druntime/test/exceptions/Makefile \
+      --replace 'in D main (' 'in _Dmain ('
   ''
 
   + lib.optionalString stdenv.isLinux ''
diff --git a/pkgs/development/compilers/dotnet/default.nix b/pkgs/development/compilers/dotnet/default.nix
index 0da74fbb3657b..9097604e428ed 100644
--- a/pkgs/development/compilers/dotnet/default.nix
+++ b/pkgs/development/compilers/dotnet/default.nix
@@ -22,60 +22,60 @@ rec {
 
   ##### Following attributes with urls and hashes should be auto-generated by print-hashes.sh #####
 
-  # v3.1 (lts)
+  # v3.1 (maintenance)
   aspnetcore_3_1 = buildAspNetCore {
     icu = icu70;
-    version = "3.1.21";
+    version = "3.1.26";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/c4565012-97e8-4a5a-9edf-8d6c94f0ac5c/dd227c01d532bcb731b026243a51f55f/aspnetcore-runtime-3.1.21-linux-x64.tar.gz";
-        sha512  = "f59252166dbfe11a78373226222d6a34484b9132e24283222aea8a950a5e9657da2e4d4e9ff8cbcc2fd7c7705e13bf42a31232a6012d1e247efc718e3d8e2df1";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6f72adf7-0e78-48ea-85ef-e72a39a1f8a1/1ec0238c236c3757e5628563a329fdc4/aspnetcore-runtime-3.1.26-linux-x64.tar.gz";
+        sha512  = "8bbf06012cdd2cff23c592e0d3c49d032d77add4dda8fba1d7ba73e6cc4ae97b1676908b14cdc7fc2fe723302e1efd27a44b48190a91d69c0e41bb5edb47501f";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/5d245f70-4e8f-457a-9c4f-d4140136e496/56193e7de38e0f4101eb6f3fd2c60c41/aspnetcore-runtime-3.1.21-linux-arm64.tar.gz";
-        sha512  = "f3d014431064362c29361e3d3b33b7aaaffe46e22f324cd42ba6fc6a6d5b712153e9ec82f10cf1bee416360a68fb4520dc9c0b0a8860316c4c9fce75f1adae80";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6b68a14a-b4dd-4a75-bb32-26c08d19190f/1d6b637e290775f668701f8f6092ab35/aspnetcore-runtime-3.1.26-linux-arm64.tar.gz";
+        sha512  = "757ff6cbc31b1c8743077288d7fa621c73fa7f4d155d636ad100cda6e1f601e31d2f842d5cfef3dec5daa4c8c3efbcf76f02afd1c518cae7b67b2a46a9faab08";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/dd423a05-c133-464d-a117-d2e73d6dfeb5/a2d7c629802b8a283819a445a3024944/aspnetcore-runtime-3.1.21-osx-x64.tar.gz";
-        sha512  = "477912671e21c7c61f5666323ad9e9c246550d40b4d127ccc71bcb296c86e07051e3c75251beef11806f198eebd0cd4b36790950f24c730dc6723156c0dc11b5";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/33e8be5c-5e6a-4dc2-9aa8-846aaffa6897/fe9d96af1d75f8d5f4cba4bff95f2fae/aspnetcore-runtime-3.1.26-osx-x64.tar.gz";
+        sha512  = "0657d8b11a58357f5374e5d8201b401e55f9f4710794be565f7b9022d10639c2e72aebc6b7433b34fd24a03e8e12541c998fad28b5263de4439b3d31a8252c4c";
       };
     };
   };
 
   runtime_3_1 = buildNetRuntime {
     icu = icu70;
-    version = "3.1.21";
+    version = "3.1.26";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/286e526e-282b-47e5-afeb-4f99ee481972/495908d6a6019e47249bd05f8346aeb5/dotnet-runtime-3.1.21-linux-x64.tar.gz";
-        sha512  = "cc4b2fef46e94df88bf0fc11cb15439e79bd48da524561dffde80d3cd6db218133468ad2f6785803cf0c13f000d95ff71eb258cec76dd8eb809676ec1cb38fac";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a14c8e4d-a22b-47f8-953c-bb4337634513/58017d103d432f7106c44b0891936aba/dotnet-runtime-3.1.26-linux-x64.tar.gz";
+        sha512  = "03676885ec4d1f5ba184678a6b774f8e385abfff800a6bcee6f85557b39e9cdde500be49b5d6c956fc95cdfb9f33d31e467548bb498a52bc4fd639b3cb87c8d0";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/45b3ad17-6ce6-4cd6-a975-d4f152203750/c6df44d802c52e65ad5d9c783ccd46ab/dotnet-runtime-3.1.21-linux-arm64.tar.gz";
-        sha512  = "80971125650a2fa0163e39a2de98bc2e871c295b723559e6081a3ab59d99195aa5b794450f8182c5eb4e7e472ca1c13340ef1cc8a5588114c494bbb5981f19c4";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cb0e8b4b-7b2b-40cc-b7a6-30f0d4fabe6c/f5cb06cbb1b1b5d198792333b3db235a/dotnet-runtime-3.1.26-linux-arm64.tar.gz";
+        sha512  = "574409616f5cbef35a2bd6fd1a2f0bcb3bdaa81457aea3af5e0e237ba768ced5214c51a3045697fe7478e8211e2045fc2072e382d6f456509a8f2923e9b1fc26";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/3896eba4-4ef4-47a7-846c-8acb44b15feb/4920ee69b26772423edc686e499da061/dotnet-runtime-3.1.21-osx-x64.tar.gz";
-        sha512  = "049257f680fe7dfb8e98a2ae4da6aa184f171b04b81c506e7a83509e46b1ea81ea6000c4d01c5bed46d5495328c6d9a0eeecbc0dc7c2c698296251fb04b5e855";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/6bedea65-b104-45b8-abe9-36cefbeedadf/05f4e472ec2395dad7103fda9ed278b2/dotnet-runtime-3.1.26-osx-x64.tar.gz";
+        sha512  = "7957b5e697db7548964c399197ae8e61cc31f15374df384b6db9b47472a7d6f1b5b3e256c191e203c4d18c18cc8bdb6c4a331c5875bd37bd6415f3c83b8062da";
       };
     };
   };
 
   sdk_3_1 = buildNetSdk {
     icu = icu70;
-    version = "3.1.415";
+    version = "3.1.420";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/6425056e-bfd5-48be-8b00-223c03a4d0f3/08a801489b7f18e9e73a1378082fbe66/dotnet-sdk-3.1.415-linux-x64.tar.gz";
-        sha512  = "df7a6d1abed609c382799a8f69f129ec72ce68236b2faecf01aed4c957a40a9cfbbc9126381bf517dff3dbe0e488f1092188582701dd0fef09a68b8c5707c747";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/5424da8c-ce12-46de-a51a-8fa61aefdde6/52a9d6b5718ea40863db96901c780d4b/dotnet-sdk-3.1.420-linux-x64.tar.gz";
+        sha512  = "b3bdd964182f9edc3c2976541e657fcc43b0eaf9bc97197597c7ecb8b784d79e3efb9e0405c84e1dcb434cf4cd38ddc4af628c5df486c3d7ae8a23e5254796e3";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/4a78a923-e891-40fe-88d2-4bff2c90519f/126bee4399caeabde4f34f4ace7f44e3/dotnet-sdk-3.1.415-linux-arm64.tar.gz";
-        sha512  = "7a5b9922988bcbde63d39f97e283ca1d373d5521cca0ab8946e2f86deaef6e21f00244228a0d5d8c38c2b9634b38bc7338b61984f0e12dd8fdb8b2e6eed5dd34";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/a84bf296-ee6e-4e66-9694-90d3da7af2b4/b00b2efe2432938e5a19c45d3759d80f/dotnet-sdk-3.1.420-linux-arm64.tar.gz";
+        sha512  = "ac66b1544fe178153bb85c2e5be584464374ce4c036fc95720547c231c2730312018fbdfc735f9071579749415bc54e1f6b8f080cc2b08d5799a0da941e8a5f5";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7d663efa-2180-4562-8735-be11d8ba465d/605910e63a687d8c9e72ba108ffb1da4/dotnet-sdk-3.1.415-osx-x64.tar.gz";
-        sha512  = "e26529714021d1828687c404dd0800c61eb267c9da62ee629b91f5ffa8af77d156911bd3c1a58bf11e5c589cfe4a852a95c14a7cb25f731e92a484348868964d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/bb0efe58-450c-4e28-81c1-4081acd6ffa4/1d0eaf8b624dff000c8b10ea0497e731/dotnet-sdk-3.1.420-osx-x64.tar.gz";
+        sha512  = "370cba4685e07d1cdb5d7f9b754812b237802ace679c9b9985c6e5c4dc09f500580f1413679a288615079bd155b68b362adb00151b2b8f5ca7c3718ab9e16194";
       };
     };
   };
@@ -141,69 +141,69 @@ rec {
   # v6.0 (lts)
   aspnetcore_6_0 = buildAspNetCore {
     inherit icu;
-    version = "6.0.5";
+    version = "6.0.6";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/a0e9ceb8-04eb-4510-876c-795a6a123dda/6141e57558eddc2d4629c7c14c2c6fa1/aspnetcore-runtime-6.0.5-linux-x64.tar.gz";
-        sha512  = "3a2169051da22f3faebba319101c3fb86b1cf8575e3715ebfb82b673e14417370d00b958a252c740a6b0e11a8624e4d4ee41fbfd29a4e73af79752dbbeb1477b";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/afd5344f-a9e9-45f9-85b5-de4551c53736/c30996daa407f9bb540ebc5edfcf16fc/aspnetcore-runtime-6.0.6-linux-x64.tar.gz";
+        sha512  = "1a5c0f85820f0eb589700df94de6dbff45fe4089a37f1cd5b1fac33476a2cbd8d5c6f129e55b3716f5a7a2616f1a5a720c52238f21b28a510a3e5c8bcb8c516c";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8ba7087e-4513-41e5-8359-a4bcd2a3661f/e6828f0d8cf1ecc63074c9ff57685e27/aspnetcore-runtime-6.0.5-linux-arm64.tar.gz";
-        sha512  = "fecc864acff305550944fc20c18570d8323b56eefafd07cacf7f03169700265af7c3b5024fffb5a1742b8a7e792a849319e9180a92e04b79644d674f883e7578";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/94553ccb-ce1a-401c-8840-bdffb4e9d0cb/ab8a0024df90506d953904ac38b5a978/aspnetcore-runtime-6.0.6-linux-arm64.tar.gz";
+        sha512  = "a3bd7ce99ffb9b87766c49fcf28d802f4072af1d55f1d53ef4043a1a0b038a0fc8046669bbd82f64fb37e4c73703fa8f54a460caaa473d952baf941d23341c90";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/ec3ae29d-ea2a-44ec-8ef4-a114a0efc818/401eca540c50187f8da95c430099ea2e/aspnetcore-runtime-6.0.5-osx-x64.tar.gz";
-        sha512  = "44985a9c47d63d2b9cadae66bd81f73775301a7d1708786cc3b7ac31b7ad2164dc5cb40682836c2e5e7d1a28bbf199c9418d0024b576962dd4f220db238e82e9";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/0f5eb01e-6b46-4ef3-8c1c-7b99657a36df/7d4807a527cd5bc5a6a864f1fcd354e7/aspnetcore-runtime-6.0.6-osx-x64.tar.gz";
+        sha512  = "d1a469a5d27afd2f035f9865a295b8948bb2fcefd0e734c61ea8d0fe1b272fd1e0ba3aa4ad414aa68491fc611695c8d94064d1bb02d62cf1e7ea071a73a844da";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/dc366dc7-c30a-4c75-868d-9d7dad64f7db/05ee16d359acd131b4c8ef41bb62ebaf/aspnetcore-runtime-6.0.5-osx-arm64.tar.gz";
-        sha512  = "862afb12e3755adf7db3c774ac5fbc6b5fe0c005c8b46378c12120a0604492fa17a226e21fe1b542601c15543644442438b9a0a7b1a756e495bff823e45dde6d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/550f6609-521f-42e4-9b53-ff6c88bbe26a/1abbac456fe075a1b6f0f578716e0c4a/aspnetcore-runtime-6.0.6-osx-arm64.tar.gz";
+        sha512  = "0d62c151b4d25d606becbc0a99d4ed3988aaae97a95990a8d5b6e0e220bdf661e3f7fad64dad6a479f8c9bbd42971d6e5fab7dca43b74ca7ccbc423fa5b200af";
       };
     };
   };
 
   runtime_6_0 = buildNetRuntime {
     inherit icu;
-    version = "6.0.5";
+    version = "6.0.6";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/56d9250f-97df-4786-b33e-a8e34b349e86/dcf054ca00899a70a80aa1a7d3072b52/dotnet-runtime-6.0.5-linux-x64.tar.gz";
-        sha512  = "c228f0ba0ecc4ccda708e97529b248dd6d70f7f747ead6453623be77e8e1529b54db52f5df1b5e00b5b7f92b73389560832f80607fc07e50879d55ce905afcf7";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/ec4172e3-077a-42c0-859d-349e517d7935/82d945cdc4c33fbe440a86a240a58a41/dotnet-runtime-6.0.6-linux-x64.tar.gz";
+        sha512  = "4fe090f934f0ba4e64a63dfccbac97d49b19a913f2a7d73abe85efd604ee5577cefd65d6e0dc02086e9fa28be4ce2bbaecb33ea70d022714138ed54deea58c72";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/b7bfeef6-3df9-46a1-8cc9-5b2a3121a1d7/44287ecada25d3f0bd8610550e08246d/dotnet-runtime-6.0.5-linux-arm64.tar.gz";
-        sha512  = "bed49b74ad60d2701ddd638c61c215ad48f5c6eb88df140545d29901df60c6667474ca9d3bed6583dba605282ec64989ff2b431f098f0afc6ed155af59f7126d";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/44ed3398-9838-4fd0-b225-60d5aadfb00e/00fd4a320d09a380753b45106e2a8e94/dotnet-runtime-6.0.6-linux-arm64.tar.gz";
+        sha512  = "659bf64c5f2e11f2b8cf01dc595a4280d1960bf484fc379d3a382660eea7adb6e69ace49d84522a85920ed53fa2ffb95a3b0ca0ebf63dc909b865028174ed29f";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/8796f054-9724-4783-838d-90fec5a178d5/9ee66f0b62f19d765a1332c03823c490/dotnet-runtime-6.0.5-osx-x64.tar.gz";
-        sha512  = "fc26668071b989739fc139a06db9895602c179779f5051a01dc3543285239b0c50da0003f0daac2215b502c8a91170f55b748440fe711817ef3cad08266af9d1";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/30056482-998a-42ed-b3a7-8fc057977e2e/698c75b7f2429e796dd3c13f980e4188/dotnet-runtime-6.0.6-osx-x64.tar.gz";
+        sha512  = "efe5b6287c4a62688bc94aae2d4ed8831ca5d62280ba477bb3efa49666c9fdbb9b091980837882b1b52ddfba566a8ab0071746cbfa63efea99a0bb3ebf19a2a1";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/2f9e7817-fe7f-4f68-ada2-171d4907190b/a579270395021e1d42c79761000c64d1/dotnet-runtime-6.0.5-osx-arm64.tar.gz";
-        sha512  = "3222c366e7da30e39f00eb27c7ac75094b7f294daf105a5ba85cc7f046eb35bdda1c561f3234da3ea2aefbbd1701940557d4e3b31a1e03eda890c9b0b49effde";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/f91e108d-487b-4a47-b6e9-52bcc56df7ed/d722468512150e73489f2cee0b2d7087/dotnet-runtime-6.0.6-osx-arm64.tar.gz";
+        sha512  = "0cb4f3c808ae5476ebdbc18840846fb625a51ac5ce53688e83c3ae22a062095f9012c066dbcce231eca50ca3f057d7a29721d4b9cd04c9891ca26fc0c1c4a481";
       };
     };
   };
 
   sdk_6_0 = buildNetSdk {
     inherit icu;
-    version = "6.0.300";
+    version = "6.0.301";
     srcs = {
       x86_64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/dc930bff-ef3d-4f6f-8799-6eb60390f5b4/1efee2a8ea0180c94aff8f15eb3af981/dotnet-sdk-6.0.300-linux-x64.tar.gz";
-        sha512  = "52d720e90cfb889a92d605d64e6d0e90b96209e1bd7eab00dab1d567017d7a5a4ff4adbc55aff4cffcea4b1bf92bb8d351859d00d8eb65059eec5e449886c938";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/77d472e5-194c-421e-992d-e4ca1d08e6cc/56c61ac303ddf1b12026151f4f000a2b/dotnet-sdk-6.0.301-linux-x64.tar.gz";
+        sha512  = "2f434ea4860ee637e9cf19991a80e1febb1105531dd96b4fbc728d538ca0ab202a0bdff128fd13b269fac3ba3bc9d5f9c49039a6e0d7d32751e8a2bb6d790446";
       };
       aarch64-linux = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/7c62b503-4ede-4ff2-bc38-50f250a86d89/3b5e9db04cbe0169e852cb050a0dffce/dotnet-sdk-6.0.300-linux-arm64.tar.gz";
-        sha512  = "67eb088ccad197a39f104af60f3e6d12ea9b17560e059c0f7c8e956005d919d00bf0f3e487b06280be63ad57aa8895f16ebc8c92107c5019c9cf47bd620ea925";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/06c4ee8e-bf2c-4e46-ab1c-e14dd72311c1/f7bc6c9677eaccadd1d0e76c55d361ea/dotnet-sdk-6.0.301-linux-arm64.tar.gz";
+        sha512  = "978dd04f78ac3d6b594c47f1482bba0abe93f0b37379c1c46a2b9b33bdf5188576b055250546295de39bb22cba93ea9b31c31bb026a319ad1b3fc507db44481f";
       };
       x86_64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/5c55a0f8-8f53-4b62-8fc5-9f428b8679a5/af7a2e2804c6cad414e6a686866baad7/dotnet-sdk-6.0.300-osx-x64.tar.gz";
-        sha512  = "36118673ce1a49cf31658444f29b67dfc338b78eb46847a43f38de0ae68cf2e4d72039b1813a8972de31cd8cfea13a9861d075384e67b86f98ff6abb90f4bd2e";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/cf3e1c73-a9a9-4e08-8607-8f9edae5f3f2/40a021a98a6b6e430a1f170037735f6f/dotnet-sdk-6.0.301-osx-x64.tar.gz";
+        sha512  = "027328a353b65fad0618d1e5abeb973c9f05787d9432631bf9ab5fafe636ea2f494f70c0704e81a1664fe7a3519174bd269dbc795b651b14e9a86c83f8e3adec";
       };
       aarch64-darwin = {
-        url     = "https://download.visualstudio.microsoft.com/download/pr/da2f2a2c-df3a-4866-a248-a8ff14d1c515/5136a4e95ecbbe2c8a44c07a7043edaa/dotnet-sdk-6.0.300-osx-arm64.tar.gz";
-        sha512  = "174cecbfdfcd1187ca71e5b741eadacc0e103cea75262f7dd15fdab6845226cec8def75cf4cbec3dc07bd085d003ac456670115b2f2a4a88f902be8a5c3bb3ae";
+        url     = "https://download.visualstudio.microsoft.com/download/pr/3859fff3-f8a9-4e05-87cd-bd6db75833f5/64ec1099d45f85d14099da3c1f92a5c3/dotnet-sdk-6.0.301-osx-arm64.tar.gz";
+        sha512  = "899558be856769ad6ccc4606f3a9f996327a7395a72acb18a5fb0899e0c4c4ba8c90b94f16771439193f87a974e1e884dd55a9fc6649fe929ebe47ef19cb4efc";
       };
     };
   };
diff --git a/pkgs/development/compilers/dtc/default.nix b/pkgs/development/compilers/dtc/default.nix
index f64579dc583c1..78290cfc42312 100644
--- a/pkgs/development/compilers/dtc/default.nix
+++ b/pkgs/development/compilers/dtc/default.nix
@@ -1,5 +1,15 @@
-{ stdenv, lib, fetchgit, flex, bison, pkg-config, which
-, pythonSupport ? false, python ? null, swig, libyaml
+{ stdenv
+, lib
+, fetchgit
+, fetchpatch
+, flex
+, bison
+, pkg-config
+, which
+, pythonSupport ? false
+, python ? null
+, swig
+, libyaml
 }:
 
 stdenv.mkDerivation rec {
@@ -12,8 +22,17 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-gx9LG3U9etWhPxm7Ox7rOu9X5272qGeHqZtOe68zFs4=";
   };
 
+  patches = [
+    # fix python 3.10 compatibility
+    # based on without requiring the setup.py rework
+    # https://git.kernel.org/pub/scm/utils/dtc/dtc.git/commit/?id=383e148b70a47ab15f97a19bb999d54f9c3e810f
+    ./python-3.10.patch
+  ];
+
+  nativeBuildInputs = [ flex bison pkg-config which ]
+    ++ lib.optionals pythonSupport [ python swig ];
+
   buildInputs = [ libyaml ];
-  nativeBuildInputs = [ flex bison pkg-config which ] ++ lib.optionals pythonSupport [ python swig ];
 
   postPatch = ''
     patchShebangs pylibfdt/
diff --git a/pkgs/development/compilers/dtc/python-3.10.patch b/pkgs/development/compilers/dtc/python-3.10.patch
new file mode 100644
index 0000000000000..e6725a6831f12
--- /dev/null
+++ b/pkgs/development/compilers/dtc/python-3.10.patch
@@ -0,0 +1,28 @@
+diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i
+index 51ee801..075ef70 100644
+--- a/pylibfdt/libfdt.i
++++ b/pylibfdt/libfdt.i
+@@ -1044,9 +1044,9 @@ typedef uint32_t fdt32_t;
+ 		$result = Py_None;
+ 	else
+         %#if PY_VERSION_HEX >= 0x03000000
+-            $result = Py_BuildValue("y#", $1, *arg4);
++            $result = Py_BuildValue("y#", $1, (Py_ssize_t)*arg4);
+         %#else
+-            $result = Py_BuildValue("s#", $1, *arg4);
++            $result = Py_BuildValue("s#", $1, (Py_ssize_t)*arg4);
+         %#endif
+ }
+ 
+diff --git a/pylibfdt/setup.py b/pylibfdt/setup.py
+index ef40f15..81e161a 100755
+--- a/pylibfdt/setup.py
++++ b/pylibfdt/setup.py
+@@ -42,6 +42,7 @@ def get_version():
+ libfdt_module = Extension(
+     '_libfdt',
+     sources=[os.path.join(srcdir, 'libfdt.i')],
++    define_macros=[('PY_SSIZE_T_CLEAN', None)],
+     include_dirs=[os.path.join(srcdir, '../libfdt')],
+     libraries=['fdt'],
+     library_dirs=[os.path.join(top_builddir, 'libfdt')],
diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix
index af78b56c097f3..0a99fa170b779 100644
--- a/pkgs/development/compilers/emscripten/default.nix
+++ b/pkgs/development/compilers/emscripten/default.nix
@@ -7,7 +7,7 @@
 
 stdenv.mkDerivation rec {
   pname = "emscripten";
-  version = "3.0.0";
+  version = "3.1.14";
 
   llvmEnv = symlinkJoin {
     name = "emscripten-llvm-${version}";
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "emscripten-core";
     repo = "emscripten";
-    sha256 = "sha256-HlXcPKlmBTwEKgTfeMg6QoMKMbK++bpv2fu1DyolrHs=";
+    sha256 = "sha256-CVFC278ibwUMib2F64Uc7FP+D1JPUJ/9/3w0wz1PWqg=";
     rev = version;
   };
 
@@ -92,7 +92,7 @@ stdenv.mkDerivation rec {
 
     # precompile libc (etc.) in all variants:
     pushd $TMPDIR
-    echo 'int main() { return 42; }' >test.c
+    echo 'int __main_argc_argv() { return 42; }' >test.c
     for LTO in -flto ""; do
       # wasm2c doesn't work with PIC
       $out/bin/emcc -s WASM2C -s STANDALONE_WASM $LTO test.c
diff --git a/pkgs/development/compilers/emscripten/package.json b/pkgs/development/compilers/emscripten/package.json
index 1102fd62ef2ad..dfd416c3b5a68 100644
--- a/pkgs/development/compilers/emscripten/package.json
+++ b/pkgs/development/compilers/emscripten/package.json
@@ -1,21 +1,21 @@
 {
   "name": "emscripten",
-  "version": "2.0.26",
+  "version": "3.1.14",
   "private": true,
   "devDependencies": {
-    "es-check": "^5.2.4",
-    "eslint": "^7.29.0",
+    "es-check": "^6.2.1",
+    "eslint": "^8.16.0",
     "eslint-config-google": "^0.14.0",
-    "source-map": "0.5.7",
-    "ws": "~0.4.28"
+    "source-map": "0.7.3",
+    "ws": "^8.6.0"
   },
   "dependencies": {
-    "acorn": "8.4.1",
-    "google-closure-compiler": "20210601.0.0",
-    "html-minifier-terser": "5.1.1",
+    "acorn": "^8.7.1",
+    "google-closure-compiler": "20220502.0.0",
+    "html-minifier-terser": "6.1.0",
     "wasm2c": "1.0.0"
   },
   "scripts": {
-    "lint": "eslint src/parseTools.js"
+    "lint": "eslint ."
   }
 }
diff --git a/pkgs/development/compilers/emscripten/yarn.lock b/pkgs/development/compilers/emscripten/yarn.lock
index 0e8853952950d..6b4e1011f947f 100644
--- a/pkgs/development/compilers/emscripten/yarn.lock
+++ b/pkgs/development/compilers/emscripten/yarn.lock
@@ -2,63 +2,176 @@
 # yarn lockfile v1
 
 
-"@babel/code-frame@7.12.11":
-  version "7.12.11"
-  resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
-  integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==
+"@caporal/core@^2.0.2":
+  version "2.0.2"
+  resolved "https://registry.yarnpkg.com/@caporal/core/-/core-2.0.2.tgz#b7dd808cc58caa45786cf4b5b1603b37bf77ac72"
+  integrity sha512-o3J5aZINFWkkL+sL0DUs1dPHJjaetAAdwMRLbJ4U8aJW3K81E323IFMkFNYcOwTiPVhNzllC3USxZbU6xWFjFg==
+  dependencies:
+    "@types/glob" "^7.1.1"
+    "@types/lodash" "4.14.149"
+    "@types/node" "13.9.3"
+    "@types/table" "5.0.0"
+    "@types/tabtab" "^3.0.1"
+    "@types/wrap-ansi" "^3.0.0"
+    chalk "3.0.0"
+    glob "^7.1.6"
+    lodash "4.17.15"
+    table "5.4.6"
+    tabtab "^3.0.2"
+    winston "3.2.1"
+    wrap-ansi "^6.2.0"
+
+"@colors/colors@1.5.0":
+  version "1.5.0"
+  resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9"
+  integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==
+
+"@eslint/eslintrc@^1.3.0":
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz#29f92c30bb3e771e4a2048c95fa6855392dfac4f"
+  integrity sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==
+  dependencies:
+    ajv "^6.12.4"
+    debug "^4.3.2"
+    espree "^9.3.2"
+    globals "^13.15.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"
+
+"@humanwhocodes/config-array@^0.9.2":
+  version "0.9.5"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz#2cbaf9a89460da24b5ca6531b8bbfc23e1df50c7"
+  integrity sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==
   dependencies:
-    "@babel/highlight" "^7.10.4"
+    "@humanwhocodes/object-schema" "^1.2.1"
+    debug "^4.1.1"
+    minimatch "^3.0.4"
 
-"@babel/helper-validator-identifier@^7.14.5":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz#d0f0e277c512e0c938277faa85a3968c9a44c0e8"
-  integrity sha512-5lsetuxCLilmVGyiLEfoHBRX8UCFD+1m2x3Rj97WrW3V7H3u4RWRXA4evMjImCsin2J2YT0QaVDGf+z8ondbAg==
+"@humanwhocodes/object-schema@^1.2.1":
+  version "1.2.1"
+  resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
+  integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
 
-"@babel/highlight@^7.10.4":
-  version "7.14.5"
-  resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9"
-  integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg==
+"@jridgewell/gen-mapping@^0.3.0":
+  version "0.3.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9"
+  integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==
   dependencies:
-    "@babel/helper-validator-identifier" "^7.14.5"
-    chalk "^2.0.0"
-    js-tokens "^4.0.0"
+    "@jridgewell/set-array" "^1.0.0"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+    "@jridgewell/trace-mapping" "^0.3.9"
+
+"@jridgewell/resolve-uri@^3.0.3":
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz#30cd49820a962aff48c8fffc5cd760151fca61fe"
+  integrity sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==
 
-"@eslint/eslintrc@^0.4.2":
-  version "0.4.2"
-  resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz#f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179"
-  integrity sha512-8nmGq/4ycLpIwzvhI4tNDmQztZ8sp+hI7cyG8i1nQDhkAbRzHpXPidRAHlNvCZQpJTKw5ItIpMw9RSToGF00mg==
+"@jridgewell/set-array@^1.0.0":
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz#36a6acc93987adcf0ba50c66908bd0b70de8afea"
+  integrity sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==
+
+"@jridgewell/source-map@^0.3.2":
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb"
+  integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==
   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"
+    "@jridgewell/gen-mapping" "^0.3.0"
+    "@jridgewell/trace-mapping" "^0.3.9"
 
-acorn-jsx@^5.3.1:
-  version "5.3.1"
-  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
-  integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
+"@jridgewell/sourcemap-codec@^1.4.10":
+  version "1.4.13"
+  resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz#b6461fb0c2964356c469e115f504c95ad97ab88c"
+  integrity sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==
 
-acorn@8.4.1:
-  version "8.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c"
-  integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA==
+"@jridgewell/trace-mapping@^0.3.9":
+  version "0.3.13"
+  resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz#dcfe3e95f224c8fe97a87a5235defec999aa92ea"
+  integrity sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==
+  dependencies:
+    "@jridgewell/resolve-uri" "^3.0.3"
+    "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@nodelib/fs.scandir@2.1.5":
+  version "2.1.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
+  integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==
+  dependencies:
+    "@nodelib/fs.stat" "2.0.5"
+    run-parallel "^1.1.9"
+
+"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
+  version "2.0.5"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b"
+  integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
+
+"@nodelib/fs.walk@^1.2.3":
+  version "1.2.8"
+  resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a"
+  integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==
+  dependencies:
+    "@nodelib/fs.scandir" "2.1.5"
+    fastq "^1.6.0"
+
+"@types/glob@^7.1.1":
+  version "7.2.0"
+  resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb"
+  integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==
+  dependencies:
+    "@types/minimatch" "*"
+    "@types/node" "*"
+
+"@types/lodash@4.14.149":
+  version "4.14.149"
+  resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz#1342d63d948c6062838fbf961012f74d4e638440"
+  integrity sha512-ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==
+
+"@types/minimatch@*":
+  version "3.0.5"
+  resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
+  integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
+
+"@types/node@*":
+  version "18.0.0"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz#67c7b724e1bcdd7a8821ce0d5ee184d3b4dd525a"
+  integrity sha512-cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==
+
+"@types/node@13.9.3":
+  version "13.9.3"
+  resolved "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz#6356df2647de9eac569f9a52eda3480fa9e70b4d"
+  integrity sha512-01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==
+
+"@types/table@5.0.0":
+  version "5.0.0"
+  resolved "https://registry.yarnpkg.com/@types/table/-/table-5.0.0.tgz#67c3821138eb41d538c3d9286771c6cdeeac7172"
+  integrity sha512-fQLtGLZXor264zUPWI95WNDsZ3QV43/c0lJpR/h1hhLJumXRmHNsrvBfEzW2YMhb0EWCsn4U6h82IgwsajAuTA==
+
+"@types/tabtab@^3.0.1":
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/@types/tabtab/-/tabtab-3.0.2.tgz#047657fdeb98a13bfd38c6d92d8327066759695c"
+  integrity sha512-d8aOSJPS3SEGZevyr7vbAVUNPWGFmdFlk13vbPPK87vz+gYGM57L8T11k4wK2mOgQYZjEVYQEqmCTvupPoQBWw==
+  dependencies:
+    "@types/node" "*"
+
+"@types/wrap-ansi@^3.0.0":
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz#18b97a972f94f60a679fd5c796d96421b9abb9fd"
+  integrity sha512-ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==
 
-acorn@^6.4.1:
-  version "6.4.2"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6"
-  integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==
+acorn-jsx@^5.3.2:
+  version "5.3.2"
+  resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937"
+  integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
 
-acorn@^7.4.0:
-  version "7.4.1"
-  resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
-  integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
+acorn@^8.5.0, acorn@^8.7.0, acorn@^8.7.1:
+  version "8.7.1"
+  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
+  integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
 
-ajv@^6.10.0, ajv@^6.12.4:
+ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4:
   version "6.12.6"
   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
   integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -68,47 +181,27 @@ ajv@^6.10.0, ajv@^6.12.4:
     json-schema-traverse "^0.4.1"
     uri-js "^4.2.2"
 
-ajv@^8.0.1:
-  version "8.6.0"
-  resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz#60cc45d9c46a477d80d92c48076d972c342e5720"
-  integrity sha512-cnUG4NSBiM4YFBxgZIj/In3/6KX+rQ2l2YPRVcvAMQGWEPKuXoPIhxzwqh31jA3IPbI4qEOp/5ILI4ynioXsGQ==
-  dependencies:
-    fast-deep-equal "^3.1.1"
-    json-schema-traverse "^1.0.0"
-    require-from-string "^2.0.2"
-    uri-js "^4.2.2"
-
-ansi-colors@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348"
-  integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==
-
-ansi-escapes@^1.1.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e"
-  integrity sha1-06ioOzGapneTZisT52HHkRQiMG4=
-
-ansi-regex@^2.0.0:
-  version "2.1.1"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
-  integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8=
+ansi-escapes@^3.2.0:
+  version "3.2.0"
+  resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
+  integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
 
 ansi-regex@^3.0.0:
-  version "3.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998"
-  integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1"
+  integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==
 
-ansi-regex@^5.0.0:
-  version "5.0.0"
-  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75"
-  integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==
+ansi-regex@^4.1.0:
+  version "4.1.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed"
+  integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==
 
-ansi-styles@^2.2.1:
-  version "2.2.1"
-  resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe"
-  integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=
+ansi-regex@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
+  integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
 
-ansi-styles@^3.2.1:
+ansi-styles@^3.2.0, ansi-styles@^3.2.1:
   version "3.2.1"
   resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d"
   integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==
@@ -122,46 +215,28 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
   dependencies:
     color-convert "^2.0.1"
 
-ansi@^0.3.0, ansi@~0.3.1:
-  version "0.3.1"
-  resolved "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz#0c42d4fb17160d5a9af1e484bace1c66922c1b21"
-  integrity sha1-DELU+xcWDVqa8eSEus4cZpIsGyE=
+argparse@^2.0.1:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38"
+  integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==
 
-are-we-there-yet@~1.1.2:
-  version "1.1.5"
-  resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21"
-  integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==
-  dependencies:
-    delegates "^1.0.0"
-    readable-stream "^2.0.6"
+astral-regex@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9"
+  integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==
 
-argparse@^1.0.7:
-  version "1.0.10"
-  resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
-  integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==
+async@^2.6.1:
+  version "2.6.4"
+  resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
+  integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
   dependencies:
-    sprintf-js "~1.0.2"
-
-astral-regex@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31"
-  integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
-
-async@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz#f8fc04ca3a13784ade9e1641af98578cfbd647a9"
-  integrity sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=
+    lodash "^4.17.14"
 
 balanced-match@^1.0.0:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
   integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
 
-bluebird@^3.4.7:
-  version "3.7.2"
-  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
-  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-
 brace-expansion@^1.1.7:
   version "1.1.11"
   resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -170,17 +245,24 @@ brace-expansion@^1.1.7:
     balanced-match "^1.0.0"
     concat-map "0.0.1"
 
+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==
+  dependencies:
+    fill-range "^7.0.1"
+
 buffer-from@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
-  integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+  version "1.1.2"
+  resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+  integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
 
 callsites@^3.0.0:
   version "3.1.0"
   resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
   integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
 
-camel-case@^4.1.1:
+camel-case@^4.1.2:
   version "4.1.2"
   resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a"
   integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==
@@ -188,22 +270,7 @@ camel-case@^4.1.1:
     pascal-case "^3.1.2"
     tslib "^2.0.3"
 
-caporal@1.4.0:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/caporal/-/caporal-1.4.0.tgz#d6087b815e3df97c3a0f55dbb82850fae29ed585"
-  integrity sha512-3pWfIwKVdIbB/gWmpLloO6iGAXTRi9mcTinPOwvHfzH3BYjOhLgq2XRG3hKtp+F6vBcBXxMgCobUzBAx1d8T4A==
-  dependencies:
-    bluebird "^3.4.7"
-    cli-table3 "^0.5.0"
-    colorette "^1.0.1"
-    fast-levenshtein "^2.0.6"
-    lodash "^4.17.14"
-    micromist "1.1.0"
-    prettyjson "^1.2.1"
-    tabtab "^2.2.2"
-    winston "^2.3.1"
-
-chalk@2.x, chalk@^2.0.0:
+chalk@2.x, chalk@^2.4.2:
   version "2.4.2"
   resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
   integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -212,48 +279,40 @@ chalk@2.x, chalk@^2.0.0:
     escape-string-regexp "^1.0.5"
     supports-color "^5.3.0"
 
-chalk@^1.0.0:
-  version "1.1.3"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98"
-  integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=
+chalk@3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4"
+  integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==
   dependencies:
-    ansi-styles "^2.2.1"
-    escape-string-regexp "^1.0.2"
-    has-ansi "^2.0.0"
-    strip-ansi "^3.0.0"
-    supports-color "^2.0.0"
+    ansi-styles "^4.1.0"
+    supports-color "^7.1.0"
 
 chalk@^4.0.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz#c80b3fab28bf6371e6863325eee67e618b77e6ad"
-  integrity sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==
+  version "4.1.2"
+  resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+  integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
   dependencies:
     ansi-styles "^4.1.0"
     supports-color "^7.1.0"
 
-clean-css@^4.2.3:
-  version "4.2.3"
-  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz#507b5de7d97b48ee53d84adb0160ff6216380f78"
-  integrity sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==
-  dependencies:
-    source-map "~0.6.0"
+chardet@^0.7.0:
+  version "0.7.0"
+  resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e"
+  integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==
 
-cli-cursor@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987"
-  integrity sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=
+clean-css@^5.2.2:
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz#ad3d8238d5f3549e83d5f87205189494bc7cbb59"
+  integrity sha512-YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==
   dependencies:
-    restore-cursor "^1.0.1"
+    source-map "~0.6.0"
 
-cli-table3@^0.5.0:
-  version "0.5.1"
-  resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202"
-  integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw==
+cli-cursor@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5"
+  integrity sha512-8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==
   dependencies:
-    object-assign "^4.1.0"
-    string-width "^2.1.1"
-  optionalDependencies:
-    colors "^1.1.2"
+    restore-cursor "^2.0.0"
 
 cli-width@^2.0.0:
   version "2.2.1"
@@ -263,17 +322,17 @@ cli-width@^2.0.0:
 clone-buffer@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58"
-  integrity sha1-4+JbIHrE5wGvch4staFnksrD3Fg=
+  integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==
 
 clone-stats@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680"
-  integrity sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=
+  integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==
 
 clone@^2.1.1:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f"
-  integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=
+  integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==
 
 cloneable-readable@^1.0.0:
   version "1.1.3"
@@ -284,12 +343,7 @@ cloneable-readable@^1.0.0:
     process-nextick-args "^2.0.0"
     readable-stream "^2.3.5"
 
-code-point-at@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"
-  integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=
-
-color-convert@^1.9.0:
+color-convert@^1.9.0, color-convert@^1.9.3:
   version "1.9.3"
   resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8"
   integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==
@@ -306,62 +360,61 @@ color-convert@^2.0.1:
 color-name@1.1.3:
   version "1.1.3"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25"
-  integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=
+  integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
 
-color-name@~1.1.4:
+color-name@^1.0.0, color-name@~1.1.4:
   version "1.1.4"
   resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
   integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
 
-colorette@^1.0.1:
-  version "1.2.2"
-  resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94"
-  integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==
+color-string@^1.6.0:
+  version "1.9.1"
+  resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4"
+  integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==
+  dependencies:
+    color-name "^1.0.0"
+    simple-swizzle "^0.2.2"
 
-colors@1.0.x:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b"
-  integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=
+color@^3.1.3:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164"
+  integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==
+  dependencies:
+    color-convert "^1.9.3"
+    color-string "^1.6.0"
 
-colors@^1.1.2:
-  version "1.4.0"
-  resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78"
-  integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==
+colornames@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz#f8889030685c7c4ff9e2a559f5077eb76a816f96"
+  integrity sha512-/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==
+
+colorspace@1.1.x:
+  version "1.1.4"
+  resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243"
+  integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==
+  dependencies:
+    color "^3.1.3"
+    text-hex "1.0.x"
 
 commander@^2.20.0:
   version "2.20.3"
   resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33"
   integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
 
-commander@^4.1.1:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068"
-  integrity sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==
-
-commander@~2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz#d121bbae860d9992a3d517ba96f56588e47c6781"
-  integrity sha1-0SG7roYNmZKj1Re6lvVliOR8Z4E=
+commander@^8.3.0:
+  version "8.3.0"
+  resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66"
+  integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==
 
 concat-map@0.0.1:
   version "0.0.1"
   resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
-  integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
-
-concat-stream@^1.4.7:
-  version "1.6.2"
-  resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34"
-  integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==
-  dependencies:
-    buffer-from "^1.0.0"
-    inherits "^2.0.3"
-    readable-stream "^2.2.2"
-    typedarray "^0.0.6"
+  integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
 
 core-util-is@~1.0.0:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
-  integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
+  version "1.0.3"
+  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
+  integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
 
 cross-spawn@^7.0.2:
   version "7.0.3"
@@ -372,34 +425,26 @@ cross-spawn@^7.0.2:
     shebang-command "^2.0.0"
     which "^2.0.1"
 
-cycle@1.0.x:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz#21e80b2be8580f98b468f379430662b046c34ad2"
-  integrity sha1-IegLK+hYD5i0aPN5QwZisEbDStI=
-
-debug@^2.2.0:
-  version "2.6.9"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
-  integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==
-  dependencies:
-    ms "2.0.0"
-
-debug@^4.0.1, debug@^4.1.1:
-  version "4.3.1"
-  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee"
-  integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==
+debug@^4.0.1, debug@^4.1.1, debug@^4.3.2:
+  version "4.3.4"
+  resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
+  integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
   dependencies:
     ms "2.1.2"
 
 deep-is@^0.1.3:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
-  integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=
+  version "0.1.4"
+  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
+  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
 
-delegates@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
-  integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
+diagnostics@^1.1.1:
+  version "1.1.1"
+  resolved "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz#cab6ac33df70c9d9a727490ae43ac995a769b22a"
+  integrity sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==
+  dependencies:
+    colorspace "1.1.x"
+    enabled "1.0.x"
+    kuler "1.0.x"
 
 doctrine@^3.0.0:
   version "3.0.0"
@@ -416,31 +461,46 @@ dot-case@^3.0.4:
     no-case "^3.0.4"
     tslib "^2.0.3"
 
+emoji-regex@^7.0.1:
+  version "7.0.3"
+  resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156"
+  integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==
+
 emoji-regex@^8.0.0:
   version "8.0.0"
   resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37"
   integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==
 
-enquirer@^2.3.5:
-  version "2.3.6"
-  resolved "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz#2a7fe5dd634a1e4125a975ec994ff5456dc3734d"
-  integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
+enabled@1.0.x:
+  version "1.0.2"
+  resolved "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz#965f6513d2c2d1c5f4652b64a2e3396467fc2f93"
+  integrity sha512-nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==
   dependencies:
-    ansi-colors "^4.1.1"
+    env-variable "0.0.x"
 
-es-check@^5.2.4:
-  version "5.2.4"
-  resolved "https://registry.yarnpkg.com/es-check/-/es-check-5.2.4.tgz#76fe2d96ad238bd8ec1d9c3b3d0e98ddbcc723e7"
-  integrity sha512-FZ3qAJ9hwguqPvGGagaKAVDnusSkezeHbiKNM5rOepOjloeVuX2e6meMxQ+mKcnWbAFucCG7fszNrzUT8bvHcQ==
+env-variable@0.0.x:
+  version "0.0.6"
+  resolved "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz#74ab20b3786c545b62b4a4813ab8cf22726c9808"
+  integrity sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==
+
+es-check@^6.2.1:
+  version "6.2.1"
+  resolved "https://registry.yarnpkg.com/es-check/-/es-check-6.2.1.tgz#08d6f5de2045da5d8f1535c66eac39bb611b2b65"
+  integrity sha512-IPiRXUlwSTd2yMklIf9yEGe6GK5wCS8Sz1aTNHm1QSiYzI4aiq19giYbLi95tb+e0JJVKmcU0iQXQWW60a8V9A==
   dependencies:
-    acorn "^6.4.1"
-    caporal "1.4.0"
-    glob "^7.1.2"
+    "@caporal/core" "^2.0.2"
+    acorn "^8.7.0"
+    fast-glob "^3.2.11"
+
+es6-promisify@^6.0.0:
+  version "6.1.1"
+  resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz#46837651b7b06bf6fff893d03f29393668d01621"
+  integrity sha512-HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==
 
-escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
+escape-string-regexp@^1.0.5:
   version "1.0.5"
   resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
-  integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=
+  integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==
 
 escape-string-regexp@^4.0.0:
   version "4.0.0"
@@ -452,89 +512,80 @@ eslint-config-google@^0.14.0:
   resolved "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz#4f5f8759ba6e11b424294a219dbfa18c508bcc1a"
   integrity sha512-WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==
 
-eslint-scope@^5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
-  integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+eslint-scope@^7.1.1:
+  version "7.1.1"
+  resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz#fff34894c2f65e5226d3041ac480b4513a163642"
+  integrity sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==
   dependencies:
     esrecurse "^4.3.0"
-    estraverse "^4.1.1"
+    estraverse "^5.2.0"
 
-eslint-utils@^2.1.0:
-  version "2.1.0"
-  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
-  integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==
+eslint-utils@^3.0.0:
+  version "3.0.0"
+  resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672"
+  integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==
   dependencies:
-    eslint-visitor-keys "^1.1.0"
-
-eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
-  version "1.3.0"
-  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
-  integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
+    eslint-visitor-keys "^2.0.0"
 
 eslint-visitor-keys@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
   integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
 
-eslint@^7.29.0:
-  version "7.29.0"
-  resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz#ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0"
-  integrity sha512-82G/JToB9qIy/ArBzIWG9xvvwL3R86AlCjtGw+A29OMZDqhTybz/MByORSukGxeI+YPCR4coYyITKk8BFH9nDA==
+eslint-visitor-keys@^3.3.0:
+  version "3.3.0"
+  resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
+  integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
+
+eslint@^8.16.0:
+  version "8.18.0"
+  resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz#78d565d16c993d0b73968c523c0446b13da784fd"
+  integrity sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==
   dependencies:
-    "@babel/code-frame" "7.12.11"
-    "@eslint/eslintrc" "^0.4.2"
+    "@eslint/eslintrc" "^1.3.0"
+    "@humanwhocodes/config-array" "^0.9.2"
     ajv "^6.10.0"
     chalk "^4.0.0"
     cross-spawn "^7.0.2"
-    debug "^4.0.1"
+    debug "^4.3.2"
     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"
+    eslint-scope "^7.1.1"
+    eslint-utils "^3.0.0"
+    eslint-visitor-keys "^3.3.0"
+    espree "^9.3.2"
     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"
+    glob-parent "^6.0.1"
+    globals "^13.15.0"
+    ignore "^5.2.0"
     import-fresh "^3.0.0"
     imurmurhash "^0.1.4"
     is-glob "^4.0.0"
-    js-yaml "^3.13.1"
+    js-yaml "^4.1.0"
     json-stable-stringify-without-jsonify "^1.0.1"
     levn "^0.4.1"
     lodash.merge "^4.6.2"
-    minimatch "^3.0.4"
+    minimatch "^3.1.2"
     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"
+    regexpp "^3.2.0"
+    strip-ansi "^6.0.1"
     strip-json-comments "^3.1.0"
-    table "^6.0.9"
     text-table "^0.2.0"
     v8-compile-cache "^2.0.3"
 
-espree@^7.3.0, espree@^7.3.1:
-  version "7.3.1"
-  resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6"
-  integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==
+espree@^9.3.2:
+  version "9.3.2"
+  resolved "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz#f58f77bd334731182801ced3380a8cc859091596"
+  integrity sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==
   dependencies:
-    acorn "^7.4.0"
-    acorn-jsx "^5.3.1"
-    eslint-visitor-keys "^1.3.0"
-
-esprima@^4.0.0:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71"
-  integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==
+    acorn "^8.7.1"
+    acorn-jsx "^5.3.2"
+    eslint-visitor-keys "^3.3.0"
 
 esquery@^1.4.0:
   version "1.4.0"
@@ -550,50 +601,41 @@ esrecurse@^4.3.0:
   dependencies:
     estraverse "^5.2.0"
 
-estraverse@^4.1.1:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d"
-  integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==
-
 estraverse@^5.1.0, estraverse@^5.2.0:
-  version "5.2.0"
-  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880"
-  integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==
+  version "5.3.0"
+  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
+  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 
 esutils@^2.0.2:
   version "2.0.3"
   resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
   integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==
 
-exit-hook@^1.0.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8"
-  integrity sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=
-
-extend@^3.0.0:
-  version "3.0.2"
-  resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa"
-  integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==
-
-external-editor@^1.1.0:
-  version "1.1.1"
-  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz#12d7b0db850f7ff7e7081baf4005700060c4600b"
-  integrity sha1-Etew24UPf/fnCBuvQAVwAGDEYAs=
+external-editor@^3.0.3:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495"
+  integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==
   dependencies:
-    extend "^3.0.0"
-    spawn-sync "^1.0.15"
-    tmp "^0.0.29"
-
-eyes@0.1.x:
-  version "0.1.8"
-  resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0"
-  integrity sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=
+    chardet "^0.7.0"
+    iconv-lite "^0.4.24"
+    tmp "^0.0.33"
 
 fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
   version "3.1.3"
   resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
   integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
 
+fast-glob@^3.2.11:
+  version "3.2.11"
+  resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
+  integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
+  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"
+
 fast-json-stable-stringify@^2.0.0:
   version "2.1.0"
   resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
@@ -602,15 +644,26 @@ fast-json-stable-stringify@^2.0.0:
 fast-levenshtein@^2.0.6:
   version "2.0.6"
   resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
-  integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+  integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==
 
-figures@^1.3.5:
-  version "1.7.0"
-  resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e"
-  integrity sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=
+fastq@^1.6.0:
+  version "1.13.0"
+  resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz#616760f88a7526bdfc596b7cab8c18938c36b98c"
+  integrity sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==
+  dependencies:
+    reusify "^1.0.4"
+
+fecha@^4.2.0:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd"
+  integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==
+
+figures@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962"
+  integrity sha512-Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==
   dependencies:
     escape-string-regexp "^1.0.5"
-    object-assign "^4.1.0"
 
 file-entry-cache@^6.0.1:
   version "6.0.1"
@@ -619,6 +672,13 @@ file-entry-cache@^6.0.1:
   dependencies:
     flat-cache "^3.0.4"
 
+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==
+  dependencies:
+    to-regex-range "^5.0.1"
+
 flat-cache@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11"
@@ -628,30 +688,19 @@ flat-cache@^3.0.4:
     rimraf "^3.0.2"
 
 flatted@^3.1.0:
-  version "3.1.1"
-  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469"
-  integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==
+  version "3.2.5"
+  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz#76c8584f4fc843db64702a6bd04ab7a8bd666da3"
+  integrity sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==
 
 fs.realpath@^1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
-  integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
+  integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
 
 functional-red-black-tree@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
-  integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-
-gauge@~1.2.5:
-  version "1.2.7"
-  resolved "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz#e9cec5483d3d4ee0ef44b60a7d99e4935e136d93"
-  integrity sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=
-  dependencies:
-    ansi "^0.3.0"
-    has-unicode "^2.0.0"
-    lodash.pad "^4.1.0"
-    lodash.padend "^4.1.0"
-    lodash.padstart "^4.1.0"
+  integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==
 
 glob-parent@^5.1.2:
   version "5.1.2"
@@ -660,104 +709,106 @@ glob-parent@^5.1.2:
   dependencies:
     is-glob "^4.0.1"
 
-glob@^7.1.2, glob@^7.1.3:
-  version "7.1.7"
-  resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90"
-  integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==
+glob-parent@^6.0.1:
+  version "6.0.2"
+  resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3"
+  integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==
+  dependencies:
+    is-glob "^4.0.3"
+
+glob@^7.1.3, glob@^7.1.6:
+  version "7.2.3"
+  resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
+  integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
   dependencies:
     fs.realpath "^1.0.0"
     inflight "^1.0.4"
     inherits "2"
-    minimatch "^3.0.4"
+    minimatch "^3.1.1"
     once "^1.3.0"
     path-is-absolute "^1.0.0"
 
-globals@^13.6.0, globals@^13.9.0:
-  version "13.9.0"
-  resolved "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz#4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb"
-  integrity sha512-74/FduwI/JaIrr1H8e71UbDE+5x7pIPs1C2rrwC52SszOo043CsWOZEMW7o2Y58xwm9b+0RBKDxY5n2sUpEFxA==
+globals@^13.15.0:
+  version "13.15.0"
+  resolved "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz#38113218c907d2f7e98658af246cef8b77e90bac"
+  integrity sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==
   dependencies:
     type-fest "^0.20.2"
 
-google-closure-compiler-java@^20210601.0.0:
-  version "20210601.0.0"
-  resolved "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20210601.0.0.tgz#88dc11b334bee6a704d9674c5143fd2e0d553517"
-  integrity sha512-bH6nIwOmp4qDWvlbXx5/DE3XA2aDGQoCpmRYZJGONY1Sy6Xfbq0ioXRHH9eBDP9hxhCJ5Sd/K89A0NZ8Nz9RJA==
+google-closure-compiler-java@^20220502.0.0:
+  version "20220502.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20220502.0.0.tgz#a92696bfc05489738dc06f797041985bbfb334be"
+  integrity sha512-XDXw1v+1zcNHuEUXQg24eD9MUF2XTHnEDKCwF0P0zQe+8TWQajKvjsekdJnO6JH/Lqcu8XKc7dxO5+SMijr0sw==
 
-google-closure-compiler-linux@^20210601.0.0:
-  version "20210601.0.0"
-  resolved "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20210601.0.0.tgz#6e5dd7b00b96dc1fd1ba30e3401af85558768322"
-  integrity sha512-rnEQt7zz/1P1SfPhJiHQpfCgMPrsVVyEgDs09h67xn6+LXa9L0RP+hrJDEHqSWwjDPz0BkfUUv6zkqZvp1h/lw==
+google-closure-compiler-linux@^20220502.0.0:
+  version "20220502.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20220502.0.0.tgz#64a3c1723f102e047433d85ec1dfd1d101a84b4f"
+  integrity sha512-T+2p/Qj02yGZHxymhj1oZsiHudNvI9sQKfCLoIH0wi0ikDiVIOh/dsH+57lsaGDJ+XTP/ur5Ozl8GIOjv1Efrw==
 
-google-closure-compiler-osx@^20210601.0.0:
-  version "20210601.0.0"
-  resolved "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20210601.0.0.tgz#e23356bc9ef6e68c2980f60a207f603767b50b21"
-  integrity sha512-A5r4s/WthR2iLMM0mxsluw8EW2AcOomC5ri/H6FjzpMq0RVEnLTgaGYdXolUAfEzH/7XtJJT2+JkYk3HSLCtrg==
+google-closure-compiler-osx@^20220502.0.0:
+  version "20220502.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20220502.0.0.tgz#b5e40b2adf737622d435d9bfc99d0912a75f967e"
+  integrity sha512-VwEncD4I1gfkF3zyHlRcUsx2o/poC0qzHjBv+g3Z09wHy9tuqjQ4EP8LmN/GMuV2Hai6gQvkKC0XjYnZTFx2mQ==
 
-google-closure-compiler-windows@^20210601.0.0:
-  version "20210601.0.0"
-  resolved "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20210601.0.0.tgz#b5400d06bbf0bbd2602ee3ae0c2bc7ebd5829692"
-  integrity sha512-6r94bPShnB0XXh9+5/qXGDHJN2PQGhF9yJPcgBZj+FAZlQGzlYkT0pkyp+loZT3lG+YRbjD28Lgo7xMcY4xgkA==
+google-closure-compiler-windows@^20220502.0.0:
+  version "20220502.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20220502.0.0.tgz#6c07ebeddd70e138135ae9382b0ced50aea5add6"
+  integrity sha512-ssdAUS2VZxJAyciVrbhpnYymvm//V4CHyg8aLvMisUfWRDeUSsOCC5mNXy6D8f9i9bYHs3cFV3itIRUfnYCEWg==
 
-google-closure-compiler@20210601.0.0:
-  version "20210601.0.0"
-  resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20210601.0.0.tgz#34597c33c9285ebd3a5364f5299f6c9ddc9fc88a"
-  integrity sha512-lzzEoG2VTB7uUjnWnMyeZMU163w69HJpM27yh8Up9Ha5McHZeESjt3NRwU8cWMbCRdY06nFbRCDIVCRcadHCiw==
+google-closure-compiler@20220502.0.0:
+  version "20220502.0.0"
+  resolved "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20220502.0.0.tgz#94d793f60be006236b174f8e1bc3c1a493ed86f1"
+  integrity sha512-i9Qdve2v3jlerkHzlm00bpYds+kfAlIdeaOQ+acK/pHPHeLjhiXS+EyIpegVnH8+TY3I1QAMZFuVEXkMVJqpBQ==
   dependencies:
     chalk "2.x"
-    google-closure-compiler-java "^20210601.0.0"
+    google-closure-compiler-java "^20220502.0.0"
     minimist "1.x"
     vinyl "2.x"
     vinyl-sourcemaps-apply "^0.2.0"
   optionalDependencies:
-    google-closure-compiler-linux "^20210601.0.0"
-    google-closure-compiler-osx "^20210601.0.0"
-    google-closure-compiler-windows "^20210601.0.0"
-
-has-ansi@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
-  integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=
-  dependencies:
-    ansi-regex "^2.0.0"
+    google-closure-compiler-linux "^20220502.0.0"
+    google-closure-compiler-osx "^20220502.0.0"
+    google-closure-compiler-windows "^20220502.0.0"
 
 has-flag@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd"
-  integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0=
+  integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==
 
 has-flag@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b"
   integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==
 
-has-unicode@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
-  integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=
-
 he@^1.2.0:
   version "1.2.0"
   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 
-html-minifier-terser@5.1.1:
-  version "5.1.1"
-  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz#922e96f1f3bb60832c2634b79884096389b1f054"
-  integrity sha512-ZPr5MNObqnV/T9akshPKbVgyOqLmy+Bxo7juKCfTfnjNniTAMdy4hz21YQqoofMBJD2kdREaqPPdThoR78Tgxg==
+html-minifier-terser@6.1.0:
+  version "6.1.0"
+  resolved "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#bfc818934cc07918f6b3669f5774ecdfd48f32ab"
+  integrity sha512-YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==
   dependencies:
-    camel-case "^4.1.1"
-    clean-css "^4.2.3"
-    commander "^4.1.1"
+    camel-case "^4.1.2"
+    clean-css "^5.2.2"
+    commander "^8.3.0"
     he "^1.2.0"
-    param-case "^3.0.3"
+    param-case "^3.0.4"
     relateurl "^0.2.7"
-    terser "^4.6.3"
+    terser "^5.10.0"
 
-ignore@^4.0.6:
-  version "4.0.6"
-  resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc"
-  integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==
+iconv-lite@^0.4.24:
+  version "0.4.24"
+  resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
+  integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
+  dependencies:
+    safer-buffer ">= 2.1.2 < 3"
+
+ignore@^5.2.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz#6d3bac8fa7fe0d45d9f9be7bac2fc279577e345a"
+  integrity sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==
 
 import-fresh@^3.0.0, import-fresh@^3.2.1:
   version "3.3.0"
@@ -770,12 +821,12 @@ import-fresh@^3.0.0, import-fresh@^3.2.1:
 imurmurhash@^0.1.4:
   version "0.1.4"
   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
-  integrity sha1-khi5srkoojixPcT7a21XbyMUU+o=
+  integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
 
 inflight@^1.0.4:
   version "1.0.6"
   resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
-  integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
+  integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
   dependencies:
     once "^1.3.0"
     wrappy "1"
@@ -785,97 +836,95 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.3:
   resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
   integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
 
-inquirer@^1.0.2:
-  version "1.2.3"
-  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz#4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918"
-  integrity sha1-TexvMvN+97sLLtPx0aXD9UUHSRg=
+inquirer@^6.0.0:
+  version "6.5.2"
+  resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca"
+  integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==
   dependencies:
-    ansi-escapes "^1.1.0"
-    chalk "^1.0.0"
-    cli-cursor "^1.0.1"
+    ansi-escapes "^3.2.0"
+    chalk "^2.4.2"
+    cli-cursor "^2.1.0"
     cli-width "^2.0.0"
-    external-editor "^1.1.0"
-    figures "^1.3.5"
-    lodash "^4.3.0"
-    mute-stream "0.0.6"
-    pinkie-promise "^2.0.0"
+    external-editor "^3.0.3"
+    figures "^2.0.0"
+    lodash "^4.17.12"
+    mute-stream "0.0.7"
     run-async "^2.2.0"
-    rx "^4.1.0"
-    string-width "^1.0.1"
-    strip-ansi "^3.0.0"
+    rxjs "^6.4.0"
+    string-width "^2.1.0"
+    strip-ansi "^5.1.0"
     through "^2.3.6"
 
+is-arrayish@^0.3.1:
+  version "0.3.2"
+  resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03"
+  integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==
+
 is-extglob@^2.1.1:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
-  integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
-
-is-fullwidth-code-point@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb"
-  integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs=
-  dependencies:
-    number-is-nan "^1.0.0"
+  integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
 
 is-fullwidth-code-point@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f"
-  integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=
+  integrity sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==
 
 is-fullwidth-code-point@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d"
   integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==
 
-is-glob@^4.0.0, is-glob@^4.0.1:
-  version "4.0.1"
-  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc"
-  integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==
+is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3:
+  version "4.0.3"
+  resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084"
+  integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==
   dependencies:
     is-extglob "^2.1.1"
 
+is-number@^7.0.0:
+  version "7.0.0"
+  resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
+  integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+
+is-stream@^1.1.0:
+  version "1.1.0"
+  resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
+  integrity sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==
+
 isarray@~1.0.0:
   version "1.0.0"
   resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
-  integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
+  integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
 
 isexe@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
-  integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
-
-isstream@0.1.x:
-  version "0.1.2"
-  resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a"
-  integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=
+  integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==
 
-js-tokens@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
-  integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==
-
-js-yaml@^3.13.1:
-  version "3.14.1"
-  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537"
-  integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==
+js-yaml@^4.1.0:
+  version "4.1.0"
+  resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602"
+  integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==
   dependencies:
-    argparse "^1.0.7"
-    esprima "^4.0.0"
+    argparse "^2.0.1"
 
 json-schema-traverse@^0.4.1:
   version "0.4.1"
   resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
   integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==
 
-json-schema-traverse@^1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
-  integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
-
 json-stable-stringify-without-jsonify@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
-  integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=
+  integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
+
+kuler@1.0.x:
+  version "1.0.1"
+  resolved "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz#ef7c784f36c9fb6e16dd3150d152677b2b0228a6"
+  integrity sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==
+  dependencies:
+    colornames "^1.1.1"
 
 levn@^0.4.1:
   version "0.4.1"
@@ -885,56 +934,32 @@ levn@^0.4.1:
     prelude-ls "^1.2.1"
     type-check "~0.4.0"
 
-lodash.camelcase@^4.3.0:
-  version "4.3.0"
-  resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6"
-  integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY=
-
-lodash.clonedeep@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
-  integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
-lodash.difference@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz#9ccb4e505d486b91651345772885a2df27fd017c"
-  integrity sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=
-
 lodash.merge@^4.6.2:
   version "4.6.2"
   resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
   integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
 
-lodash.pad@^4.1.0:
-  version "4.5.1"
-  resolved "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz#4330949a833a7c8da22cc20f6a26c4d59debba70"
-  integrity sha1-QzCUmoM6fI2iLMIPaibE1Z3runA=
-
-lodash.padend@^4.1.0:
-  version "4.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz#53ccba047d06e158d311f45da625f4e49e6f166e"
-  integrity sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4=
-
-lodash.padstart@^4.1.0:
-  version "4.6.1"
-  resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b"
-  integrity sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs=
-
-lodash.truncate@^4.4.2:
-  version "4.4.2"
-  resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
-  integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM=
+lodash@4.17.15:
+  version "4.17.15"
+  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548"
+  integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==
 
-lodash.uniq@^4.5.0:
-  version "4.5.0"
-  resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
-  integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
-
-lodash@^4.17.14, lodash@^4.3.0:
+lodash@^4.17.12, lodash@^4.17.14:
   version "4.17.21"
   resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
   integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 
+logform@^2.1.1, logform@^2.3.2:
+  version "2.4.1"
+  resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.1.tgz#512c9eaef738044d1c619790ba0f806c80d9d3a9"
+  integrity sha512-7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A==
+  dependencies:
+    "@colors/colors" "1.5.0"
+    fecha "^4.2.0"
+    ms "^2.1.1"
+    safe-stable-stringify "^2.3.1"
+    triple-beam "^1.3.0"
+
 lower-case@^2.0.2:
   version "2.0.2"
   resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28"
@@ -942,63 +967,62 @@ lower-case@^2.0.2:
   dependencies:
     tslib "^2.0.3"
 
-lru-cache@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
-  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
-  dependencies:
-    yallist "^4.0.0"
+merge2@^1.3.0:
+  version "1.4.1"
+  resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae"
+  integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
 
-micromist@1.1.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/micromist/-/micromist-1.1.0.tgz#a490bcf9a4b918ad9eed8e52d0ec98b9c3b2d3c8"
-  integrity sha512-+CQ76pabE9egniSEdmDuH+j2cYyIBKP97kujG8ZLZyLCRq5ExwtIy4DPHPFrq4jVbhMRBnyjuH50KU9Ohs8QCg==
+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==
   dependencies:
-    lodash.camelcase "^4.3.0"
+    braces "^3.0.2"
+    picomatch "^2.3.1"
 
-minimatch@^3.0.4:
-  version "3.0.4"
-  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
-  integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
+mimic-fn@^1.0.0:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022"
+  integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==
+
+minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2:
+  version "3.1.2"
+  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
+  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
   dependencies:
     brace-expansion "^1.1.7"
 
-minimist@1.x, minimist@^1.2.0, minimist@^1.2.5:
-  version "1.2.5"
-  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602"
-  integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==
+minimist@1.x, minimist@^1.2.0, minimist@^1.2.6:
+  version "1.2.6"
+  resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44"
+  integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==
 
 mkdirp@^0.5.1:
-  version "0.5.5"
-  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def"
-  integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==
+  version "0.5.6"
+  resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6"
+  integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==
   dependencies:
-    minimist "^1.2.5"
-
-ms@2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
-  integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
+    minimist "^1.2.6"
 
 ms@2.1.2:
   version "2.1.2"
   resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
   integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
 
-mute-stream@0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz#48962b19e169fd1dfc240b3f1e7317627bbc47db"
-  integrity sha1-SJYrGeFp/R38JAs/HnMXYnu8R9s=
+ms@^2.1.1:
+  version "2.1.3"
+  resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
+  integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
 
-nan@~1.0.0:
-  version "1.0.0"
-  resolved "https://registry.yarnpkg.com/nan/-/nan-1.0.0.tgz#ae24f8850818d662fcab5acf7f3b95bfaa2ccf38"
-  integrity sha1-riT4hQgY1mL8q1rPfzuVv6oszzg=
+mute-stream@0.0.7:
+  version "0.0.7"
+  resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
+  integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==
 
 natural-compare@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
-  integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
+  integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==
 
 no-case@^3.0.4:
   version "3.0.4"
@@ -1008,36 +1032,24 @@ no-case@^3.0.4:
     lower-case "^2.0.2"
     tslib "^2.0.3"
 
-npmlog@^2.0.3:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz#98b52530f2514ca90d09ec5b22c8846722375692"
-  integrity sha1-mLUlMPJRTKkNCexbIsiEZyI3VpI=
-  dependencies:
-    ansi "~0.3.1"
-    are-we-there-yet "~1.1.2"
-    gauge "~1.2.5"
-
-number-is-nan@^1.0.0:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
-  integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=
-
-object-assign@^4.1.0:
-  version "4.1.1"
-  resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
-  integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
-
 once@^1.3.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
-  integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
+  integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
   dependencies:
     wrappy "1"
 
-onetime@^1.0.0:
-  version "1.1.0"
-  resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789"
-  integrity sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=
+one-time@0.0.4:
+  version "0.0.4"
+  resolved "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz#f8cdf77884826fe4dff93e3a9cc37b1e4480742e"
+  integrity sha512-qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ==
+
+onetime@^2.0.0:
+  version "2.0.1"
+  resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4"
+  integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==
+  dependencies:
+    mimic-fn "^1.0.0"
 
 optionator@^0.9.1:
   version "0.9.1"
@@ -1051,22 +1063,12 @@ optionator@^0.9.1:
     type-check "^0.4.0"
     word-wrap "^1.2.3"
 
-options@>=0.0.5:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f"
-  integrity sha1-7CLTEoBrtT5zF3Pnza788cZDEo8=
-
-os-shim@^0.1.2:
-  version "0.1.3"
-  resolved "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz#6b62c3791cf7909ea35ed46e17658bb417cb3917"
-  integrity sha1-a2LDeRz3kJ6jXtRuF2WLtBfLORc=
-
-os-tmpdir@~1.0.1:
+os-tmpdir@~1.0.2:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274"
-  integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=
+  integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==
 
-param-case@^3.0.3:
+param-case@^3.0.4:
   version "3.0.4"
   resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5"
   integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==
@@ -1092,54 +1094,39 @@ pascal-case@^3.1.2:
 path-is-absolute@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
-  integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
+  integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
 
 path-key@^3.1.0:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
   integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
 
-pinkie-promise@^2.0.0:
-  version "2.0.1"
-  resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
-  integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o=
-  dependencies:
-    pinkie "^2.0.0"
-
-pinkie@^2.0.0:
-  version "2.0.4"
-  resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
-  integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA=
+picomatch@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+  integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
 
 prelude-ls@^1.2.1:
   version "1.2.1"
   resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
   integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
 
-prettyjson@^1.2.1:
-  version "1.2.1"
-  resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289"
-  integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok=
-  dependencies:
-    colors "^1.1.2"
-    minimist "^1.2.0"
-
 process-nextick-args@^2.0.0, process-nextick-args@~2.0.0:
   version "2.0.1"
   resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
   integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
 
-progress@^2.0.0:
-  version "2.0.3"
-  resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8"
-  integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==
-
 punycode@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
   integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==
 
-readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5:
+queue-microtask@^1.2.2:
+  version "1.2.3"
+  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
+  integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==
+
+readable-stream@^2.3.5:
   version "2.3.7"
   resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
   integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
@@ -1152,7 +1139,16 @@ readable-stream@^2.0.6, readable-stream@^2.2.2, readable-stream@^2.3.5:
     string_decoder "~1.1.1"
     util-deprecate "~1.0.1"
 
-regexpp@^3.1.0:
+readable-stream@^3.1.1, readable-stream@^3.6.0:
+  version "3.6.0"
+  resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
+  integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
+  dependencies:
+    inherits "^2.0.3"
+    string_decoder "^1.1.1"
+    util-deprecate "^1.0.1"
+
+regexpp@^3.2.0:
   version "3.2.0"
   resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2"
   integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==
@@ -1160,35 +1156,35 @@ regexpp@^3.1.0:
 relateurl@^0.2.7:
   version "0.2.7"
   resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9"
-  integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=
+  integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==
 
 remove-trailing-separator@^1.0.1:
   version "1.1.0"
   resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
-  integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8=
+  integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==
 
 replace-ext@^1.0.0:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a"
   integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==
 
-require-from-string@^2.0.2:
-  version "2.0.2"
-  resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909"
-  integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==
-
 resolve-from@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6"
   integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==
 
-restore-cursor@^1.0.1:
-  version "1.0.1"
-  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541"
-  integrity sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=
+restore-cursor@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf"
+  integrity sha512-6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==
   dependencies:
-    exit-hook "^1.0.0"
-    onetime "^1.0.0"
+    onetime "^2.0.0"
+    signal-exit "^3.0.2"
+
+reusify@^1.0.4:
+  version "1.0.4"
+  resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
+  integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
 
 rimraf@^3.0.2:
   version "3.0.2"
@@ -1202,22 +1198,39 @@ run-async@^2.2.0:
   resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455"
   integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==
 
-rx@^4.1.0:
-  version "4.1.0"
-  resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782"
-  integrity sha1-pfE/957zt0D+MKqAP7CfmIBdR4I=
+run-parallel@^1.1.9:
+  version "1.2.0"
+  resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
+  integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==
+  dependencies:
+    queue-microtask "^1.2.2"
+
+rxjs@^6.4.0:
+  version "6.6.7"
+  resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9"
+  integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==
+  dependencies:
+    tslib "^1.9.0"
 
 safe-buffer@~5.1.0, safe-buffer@~5.1.1:
   version "5.1.2"
   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
 
-semver@^7.2.1:
-  version "7.3.5"
-  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
-  integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
-  dependencies:
-    lru-cache "^6.0.0"
+safe-buffer@~5.2.0:
+  version "5.2.1"
+  resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6"
+  integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==
+
+safe-stable-stringify@^2.3.1:
+  version "2.3.1"
+  resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz#ab67cbe1fe7d40603ca641c5e765cb942d04fc73"
+  integrity sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==
+
+"safer-buffer@>= 2.1.2 < 3":
+  version "2.1.2"
+  resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a"
+  integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
 
 shebang-command@^2.0.0:
   version "2.0.0"
@@ -1231,61 +1244,56 @@ shebang-regex@^3.0.0:
   resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
   integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
 
-slice-ansi@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b"
-  integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==
+signal-exit@^3.0.2:
+  version "3.0.7"
+  resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9"
+  integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==
+
+simple-swizzle@^0.2.2:
+  version "0.2.2"
+  resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a"
+  integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==
   dependencies:
-    ansi-styles "^4.0.0"
-    astral-regex "^2.0.0"
-    is-fullwidth-code-point "^3.0.0"
+    is-arrayish "^0.3.1"
+
+slice-ansi@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636"
+  integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==
+  dependencies:
+    ansi-styles "^3.2.0"
+    astral-regex "^1.0.0"
+    is-fullwidth-code-point "^2.0.0"
 
-source-map-support@~0.5.12:
-  version "0.5.19"
-  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
-  integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+source-map-support@~0.5.20:
+  version "0.5.21"
+  resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+  integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
   dependencies:
     buffer-from "^1.0.0"
     source-map "^0.6.0"
 
-source-map@0.5.7, source-map@^0.5.1:
+source-map@0.7.3:
+  version "0.7.3"
+  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
+  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+
+source-map@^0.5.1:
   version "0.5.7"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc"
-  integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=
+  integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==
 
-source-map@^0.6.0, source-map@~0.6.0, source-map@~0.6.1:
+source-map@^0.6.0, source-map@~0.6.0:
   version "0.6.1"
   resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
   integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
 
-spawn-sync@^1.0.15:
-  version "1.0.15"
-  resolved "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz#b00799557eb7fb0c8376c29d44e8a1ea67e57476"
-  integrity sha1-sAeZVX63+wyDdsKdROih6mfldHY=
-  dependencies:
-    concat-stream "^1.4.7"
-    os-shim "^0.1.2"
-
-sprintf-js@~1.0.2:
-  version "1.0.3"
-  resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
-  integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=
-
 stack-trace@0.0.x:
   version "0.0.10"
   resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0"
-  integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=
+  integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==
 
-string-width@^1.0.1:
-  version "1.0.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"
-  integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=
-  dependencies:
-    code-point-at "^1.0.0"
-    is-fullwidth-code-point "^1.0.0"
-    strip-ansi "^3.0.0"
-
-string-width@^2.1.1:
+string-width@^2.1.0:
   version "2.1.1"
   resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e"
   integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==
@@ -1293,14 +1301,30 @@ string-width@^2.1.1:
     is-fullwidth-code-point "^2.0.0"
     strip-ansi "^4.0.0"
 
-string-width@^4.2.0:
-  version "4.2.2"
-  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5"
-  integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==
+string-width@^3.0.0:
+  version "3.1.0"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961"
+  integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==
+  dependencies:
+    emoji-regex "^7.0.1"
+    is-fullwidth-code-point "^2.0.0"
+    strip-ansi "^5.1.0"
+
+string-width@^4.1.0:
+  version "4.2.3"
+  resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
+  integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
   dependencies:
     emoji-regex "^8.0.0"
     is-fullwidth-code-point "^3.0.0"
-    strip-ansi "^6.0.0"
+    strip-ansi "^6.0.1"
+
+string_decoder@^1.1.1:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e"
+  integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==
+  dependencies:
+    safe-buffer "~5.2.0"
 
 string_decoder@~1.1.1:
   version "1.1.1"
@@ -1309,37 +1333,32 @@ string_decoder@~1.1.1:
   dependencies:
     safe-buffer "~5.1.0"
 
-strip-ansi@^3.0.0:
-  version "3.0.1"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
-  integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=
-  dependencies:
-    ansi-regex "^2.0.0"
-
 strip-ansi@^4.0.0:
   version "4.0.0"
   resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f"
-  integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8=
+  integrity sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==
   dependencies:
     ansi-regex "^3.0.0"
 
-strip-ansi@^6.0.0:
-  version "6.0.0"
-  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
-  integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
+strip-ansi@^5.1.0:
+  version "5.2.0"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae"
+  integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==
   dependencies:
-    ansi-regex "^5.0.0"
+    ansi-regex "^4.1.0"
+
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
+  version "6.0.1"
+  resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
+  integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
+  dependencies:
+    ansi-regex "^5.0.1"
 
 strip-json-comments@^3.1.0, strip-json-comments@^3.1.1:
   version "3.1.1"
   resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006"
   integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==
 
-supports-color@^2.0.0:
-  version "2.0.0"
-  resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
-  integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=
-
 supports-color@^5.3.0:
   version "5.5.0"
   resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f"
@@ -1354,67 +1373,81 @@ supports-color@^7.1.0:
   dependencies:
     has-flag "^4.0.0"
 
-table@^6.0.9:
-  version "6.7.1"
-  resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
-  integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
+table@5.4.6:
+  version "5.4.6"
+  resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e"
+  integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==
   dependencies:
-    ajv "^8.0.1"
-    lodash.clonedeep "^4.5.0"
-    lodash.truncate "^4.4.2"
-    slice-ansi "^4.0.0"
-    string-width "^4.2.0"
-    strip-ansi "^6.0.0"
+    ajv "^6.10.2"
+    lodash "^4.17.14"
+    slice-ansi "^2.1.0"
+    string-width "^3.0.0"
 
-tabtab@^2.2.2:
-  version "2.2.2"
-  resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-2.2.2.tgz#7a047f143b010b4cbd31f857e82961512cbf4e14"
-  integrity sha1-egR/FDsBC0y9MfhX6ClhUSy/ThQ=
+tabtab@^3.0.2:
+  version "3.0.2"
+  resolved "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz#a2cea0f1035f88d145d7da77eaabbd3fe03e1ec9"
+  integrity sha512-jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==
   dependencies:
-    debug "^2.2.0"
-    inquirer "^1.0.2"
-    lodash.difference "^4.5.0"
-    lodash.uniq "^4.5.0"
+    debug "^4.0.1"
+    es6-promisify "^6.0.0"
+    inquirer "^6.0.0"
     minimist "^1.2.0"
     mkdirp "^0.5.1"
-    npmlog "^2.0.3"
-    object-assign "^4.1.0"
+    untildify "^3.0.3"
 
-terser@^4.6.3:
-  version "4.8.0"
-  resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
-  integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+terser@^5.10.0:
+  version "5.14.1"
+  resolved "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz#7c95eec36436cb11cf1902cc79ac564741d19eca"
+  integrity sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==
   dependencies:
+    "@jridgewell/source-map" "^0.3.2"
+    acorn "^8.5.0"
     commander "^2.20.0"
-    source-map "~0.6.1"
-    source-map-support "~0.5.12"
+    source-map-support "~0.5.20"
+
+text-hex@1.0.x:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5"
+  integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==
 
 text-table@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
-  integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
+  integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==
 
 through@^2.3.6:
   version "2.3.8"
   resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
-  integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=
+  integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==
 
-tinycolor@0.x:
-  version "0.0.1"
-  resolved "https://registry.yarnpkg.com/tinycolor/-/tinycolor-0.0.1.tgz#320b5a52d83abb5978d81a3e887d4aefb15a6164"
-  integrity sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ=
+tmp@^0.0.33:
+  version "0.0.33"
+  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9"
+  integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==
+  dependencies:
+    os-tmpdir "~1.0.2"
 
-tmp@^0.0.29:
-  version "0.0.29"
-  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz#f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0"
-  integrity sha1-8lEl/w3Z2jzLDC3Tce4SiLuRKMA=
+to-regex-range@^5.0.1:
+  version "5.0.1"
+  resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4"
+  integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==
   dependencies:
-    os-tmpdir "~1.0.1"
+    is-number "^7.0.0"
+
+triple-beam@^1.3.0:
+  version "1.3.0"
+  resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9"
+  integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==
+
+tslib@^1.9.0:
+  version "1.14.1"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
+  integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
 
 tslib@^2.0.3:
-  version "2.3.0"
-  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz#803b8cdab3e12ba581a4ca41c8839bbb0dacb09e"
-  integrity sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==
+  version "2.4.0"
+  resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
+  integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==
 
 type-check@^0.4.0, type-check@~0.4.0:
   version "0.4.0"
@@ -1428,10 +1461,10 @@ type-fest@^0.20.2:
   resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4"
   integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==
 
-typedarray@^0.0.6:
-  version "0.0.6"
-  resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
-  integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
+untildify@^3.0.3:
+  version "3.0.3"
+  resolved "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz#1e7b42b140bcfd922b22e70ca1265bfe3634c7c9"
+  integrity sha512-iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==
 
 uri-js@^4.2.2:
   version "4.4.1"
@@ -1440,10 +1473,10 @@ uri-js@^4.2.2:
   dependencies:
     punycode "^2.1.0"
 
-util-deprecate@~1.0.1:
+util-deprecate@^1.0.1, util-deprecate@~1.0.1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
-  integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
+  integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
 
 v8-compile-cache@^2.0.3:
   version "2.3.0"
@@ -1453,7 +1486,7 @@ v8-compile-cache@^2.0.3:
 vinyl-sourcemaps-apply@^0.2.0:
   version "0.2.1"
   resolved "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz#ab6549d61d172c2b1b87be5c508d239c8ef87705"
-  integrity sha1-q2VJ1h0XLCsbh75cUI0jnI74dwU=
+  integrity sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==
   dependencies:
     source-map "^0.5.1"
 
@@ -1481,39 +1514,50 @@ which@^2.0.1:
   dependencies:
     isexe "^2.0.0"
 
-winston@^2.3.1:
-  version "2.4.5"
-  resolved "https://registry.yarnpkg.com/winston/-/winston-2.4.5.tgz#f2e431d56154c4ea765545fc1003bd340c95b59a"
-  integrity sha512-TWoamHt5yYvsMarGlGEQE59SbJHqGsZV8/lwC+iCcGeAe0vUaOh+Lv6SYM17ouzC/a/LB1/hz/7sxFBtlu1l4A==
+winston-transport@^4.3.0:
+  version "4.5.0"
+  resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa"
+  integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==
   dependencies:
-    async "~1.0.0"
-    colors "1.0.x"
-    cycle "1.0.x"
-    eyes "0.1.x"
-    isstream "0.1.x"
+    logform "^2.3.2"
+    readable-stream "^3.6.0"
+    triple-beam "^1.3.0"
+
+winston@3.2.1:
+  version "3.2.1"
+  resolved "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz#63061377976c73584028be2490a1846055f77f07"
+  integrity sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==
+  dependencies:
+    async "^2.6.1"
+    diagnostics "^1.1.1"
+    is-stream "^1.1.0"
+    logform "^2.1.1"
+    one-time "0.0.4"
+    readable-stream "^3.1.1"
     stack-trace "0.0.x"
+    triple-beam "^1.3.0"
+    winston-transport "^4.3.0"
 
 word-wrap@^1.2.3:
   version "1.2.3"
   resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
   integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
 
+wrap-ansi@^6.2.0:
+  version "6.2.0"
+  resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53"
+  integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==
+  dependencies:
+    ansi-styles "^4.0.0"
+    string-width "^4.1.0"
+    strip-ansi "^6.0.0"
+
 wrappy@1:
   version "1.0.2"
   resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
-  integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-
-ws@~0.4.28:
-  version "0.4.32"
-  resolved "https://registry.yarnpkg.com/ws/-/ws-0.4.32.tgz#787a6154414f3c99ed83c5772153b20feb0cec32"
-  integrity sha1-eHphVEFPPJntg8V3IVOyD+sM7DI=
-  dependencies:
-    commander "~2.1.0"
-    nan "~1.0.0"
-    options ">=0.0.5"
-    tinycolor "0.x"
+  integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
 
-yallist@^4.0.0:
-  version "4.0.0"
-  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
-  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
+ws@^8.6.0:
+  version "8.8.0"
+  resolved "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz#8e71c75e2f6348dbf8d78005107297056cb77769"
+  integrity sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==
diff --git a/pkgs/development/compilers/emscripten/yarn.nix b/pkgs/development/compilers/emscripten/yarn.nix
index e4281f4856adf..d22d1c7d615b5 100644
--- a/pkgs/development/compilers/emscripten/yarn.nix
+++ b/pkgs/development/compilers/emscripten/yarn.nix
@@ -2,203 +2,283 @@
   offline_cache = linkFarm "offline" packages;
   packages = [
     {
-      name = "_babel_code_frame___code_frame_7.12.11.tgz";
+      name = "_caporal_core___core_2.0.2.tgz";
       path = fetchurl {
-        name = "_babel_code_frame___code_frame_7.12.11.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz";
-        sha1 = "f4ad435aa263db935b8f10f2c552d23fb716a63f";
+        name = "_caporal_core___core_2.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@caporal/core/-/core-2.0.2.tgz";
+        sha512 = "o3J5aZINFWkkL+sL0DUs1dPHJjaetAAdwMRLbJ4U8aJW3K81E323IFMkFNYcOwTiPVhNzllC3USxZbU6xWFjFg==";
       };
     }
     {
-      name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.5.tgz";
+      name = "_colors_colors___colors_1.5.0.tgz";
       path = fetchurl {
-        name = "_babel_helper_validator_identifier___helper_validator_identifier_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.5.tgz";
-        sha1 = "d0f0e277c512e0c938277faa85a3968c9a44c0e8";
+        name = "_colors_colors___colors_1.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz";
+        sha512 = "ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==";
       };
     }
     {
-      name = "_babel_highlight___highlight_7.14.5.tgz";
+      name = "_eslint_eslintrc___eslintrc_1.3.0.tgz";
       path = fetchurl {
-        name = "_babel_highlight___highlight_7.14.5.tgz";
-        url  = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz";
-        sha1 = "6861a52f03966405001f6aa534a01a24d99e8cd9";
+        name = "_eslint_eslintrc___eslintrc_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.0.tgz";
+        sha512 = "UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==";
       };
     }
     {
-      name = "_eslint_eslintrc___eslintrc_0.4.2.tgz";
+      name = "_humanwhocodes_config_array___config_array_0.9.5.tgz";
       path = fetchurl {
-        name = "_eslint_eslintrc___eslintrc_0.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.2.tgz";
-        sha1 = "f63d0ef06f5c0c57d76c4ab5f63d3835c51b0179";
+        name = "_humanwhocodes_config_array___config_array_0.9.5.tgz";
+        url  = "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.5.tgz";
+        sha512 = "ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==";
       };
     }
     {
-      name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
+      name = "_humanwhocodes_object_schema___object_schema_1.2.1.tgz";
       path = fetchurl {
-        name = "acorn_jsx___acorn_jsx_5.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz";
-        sha1 = "fc8661e11b7ac1539c47dbfea2e72b3af34d267b";
+        name = "_humanwhocodes_object_schema___object_schema_1.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz";
+        sha512 = "ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==";
       };
     }
     {
-      name = "acorn___acorn_8.4.1.tgz";
+      name = "_jridgewell_gen_mapping___gen_mapping_0.3.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_8.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz";
-        sha1 = "56c36251fc7cabc7096adc18f05afe814321a28c";
+        name = "_jridgewell_gen_mapping___gen_mapping_0.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz";
+        sha512 = "GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==";
       };
     }
     {
-      name = "acorn___acorn_6.4.2.tgz";
+      name = "_jridgewell_resolve_uri___resolve_uri_3.0.7.tgz";
       path = fetchurl {
-        name = "acorn___acorn_6.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz";
-        sha1 = "35866fd710528e92de10cf06016498e47e39e1e6";
+        name = "_jridgewell_resolve_uri___resolve_uri_3.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz";
+        sha512 = "8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==";
       };
     }
     {
-      name = "acorn___acorn_7.4.1.tgz";
+      name = "_jridgewell_set_array___set_array_1.1.1.tgz";
       path = fetchurl {
-        name = "acorn___acorn_7.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz";
-        sha1 = "feaed255973d2e77555b83dbc08851a6c63520fa";
+        name = "_jridgewell_set_array___set_array_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.1.tgz";
+        sha512 = "Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==";
       };
     }
     {
-      name = "ajv___ajv_6.12.6.tgz";
+      name = "_jridgewell_source_map___source_map_0.3.2.tgz";
       path = fetchurl {
-        name = "ajv___ajv_6.12.6.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
-        sha1 = "baf5a62e802b07d977034586f8c3baf5adf26df4";
+        name = "_jridgewell_source_map___source_map_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz";
+        sha512 = "m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==";
       };
     }
     {
-      name = "ajv___ajv_8.6.0.tgz";
+      name = "_jridgewell_sourcemap_codec___sourcemap_codec_1.4.13.tgz";
       path = fetchurl {
-        name = "ajv___ajv_8.6.0.tgz";
-        url  = "https://registry.yarnpkg.com/ajv/-/ajv-8.6.0.tgz";
-        sha1 = "60cc45d9c46a477d80d92c48076d972c342e5720";
+        name = "_jridgewell_sourcemap_codec___sourcemap_codec_1.4.13.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz";
+        sha512 = "GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w==";
       };
     }
     {
-      name = "ansi_colors___ansi_colors_4.1.1.tgz";
+      name = "_jridgewell_trace_mapping___trace_mapping_0.3.13.tgz";
       path = fetchurl {
-        name = "ansi_colors___ansi_colors_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
-        sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+        name = "_jridgewell_trace_mapping___trace_mapping_0.3.13.tgz";
+        url  = "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz";
+        sha512 = "o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==";
       };
     }
     {
-      name = "ansi_escapes___ansi_escapes_1.4.0.tgz";
+      name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
       path = fetchurl {
-        name = "ansi_escapes___ansi_escapes_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz";
-        sha1 = "d3a8a83b319aa67793662b13e761c7911422306e";
+        name = "_nodelib_fs.scandir___fs.scandir_2.1.5.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz";
+        sha512 = "vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==";
       };
     }
     {
-      name = "ansi_regex___ansi_regex_2.1.1.tgz";
+      name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
       path = fetchurl {
-        name = "ansi_regex___ansi_regex_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz";
-        sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df";
+        name = "_nodelib_fs.stat___fs.stat_2.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz";
+        sha512 = "RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==";
       };
     }
     {
-      name = "ansi_regex___ansi_regex_3.0.0.tgz";
+      name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz";
       path = fetchurl {
-        name = "ansi_regex___ansi_regex_3.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz";
-        sha1 = "ed0317c322064f79466c02966bddb605ab37d998";
+        name = "_nodelib_fs.walk___fs.walk_1.2.8.tgz";
+        url  = "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz";
+        sha512 = "oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==";
       };
     }
     {
-      name = "ansi_regex___ansi_regex_5.0.0.tgz";
+      name = "_types_glob___glob_7.2.0.tgz";
       path = fetchurl {
-        name = "ansi_regex___ansi_regex_5.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz";
-        sha1 = "388539f55179bf39339c81af30a654d69f87cb75";
+        name = "_types_glob___glob_7.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz";
+        sha512 = "ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==";
       };
     }
     {
-      name = "ansi_styles___ansi_styles_2.2.1.tgz";
+      name = "_types_lodash___lodash_4.14.149.tgz";
       path = fetchurl {
-        name = "ansi_styles___ansi_styles_2.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz";
-        sha1 = "b432dd3358b634cf75e1e4664368240533c1ddbe";
+        name = "_types_lodash___lodash_4.14.149.tgz";
+        url  = "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.149.tgz";
+        sha512 = "ijGqzZt/b7BfzcK9vTrS6MFljQRPn5BFWOx8oE0GYxribu6uV+aA9zZuXI1zc/etK9E8nrgdoF2+LgUw7+9tJQ==";
       };
     }
     {
-      name = "ansi_styles___ansi_styles_3.2.1.tgz";
+      name = "_types_minimatch___minimatch_3.0.5.tgz";
       path = fetchurl {
-        name = "ansi_styles___ansi_styles_3.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
-        sha1 = "41fbb20243e50b12be0f04b8dedbf07520ce841d";
+        name = "_types_minimatch___minimatch_3.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz";
+        sha512 = "Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==";
       };
     }
     {
-      name = "ansi_styles___ansi_styles_4.3.0.tgz";
+      name = "_types_node___node_18.0.0.tgz";
       path = fetchurl {
-        name = "ansi_styles___ansi_styles_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
-        sha1 = "edd803628ae71c04c85ae7a0906edad34b648937";
+        name = "_types_node___node_18.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-18.0.0.tgz";
+        sha512 = "cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==";
       };
     }
     {
-      name = "ansi___ansi_0.3.1.tgz";
+      name = "_types_node___node_13.9.3.tgz";
       path = fetchurl {
-        name = "ansi___ansi_0.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/ansi/-/ansi-0.3.1.tgz";
-        sha1 = "0c42d4fb17160d5a9af1e484bace1c66922c1b21";
+        name = "_types_node___node_13.9.3.tgz";
+        url  = "https://registry.yarnpkg.com/@types/node/-/node-13.9.3.tgz";
+        sha512 = "01s+ac4qerwd6RHD+mVbOEsraDHSgUaefQlEdBbUolnQFjKwCr7luvAlEwW1RFojh67u0z4OUTjPn9LEl4zIkA==";
       };
     }
     {
-      name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
+      name = "_types_table___table_5.0.0.tgz";
       path = fetchurl {
-        name = "are_we_there_yet___are_we_there_yet_1.1.5.tgz";
-        url  = "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz";
-        sha1 = "4b35c2944f062a8bfcda66410760350fe9ddfc21";
+        name = "_types_table___table_5.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/table/-/table-5.0.0.tgz";
+        sha512 = "fQLtGLZXor264zUPWI95WNDsZ3QV43/c0lJpR/h1hhLJumXRmHNsrvBfEzW2YMhb0EWCsn4U6h82IgwsajAuTA==";
       };
     }
     {
-      name = "argparse___argparse_1.0.10.tgz";
+      name = "_types_tabtab___tabtab_3.0.2.tgz";
       path = fetchurl {
-        name = "argparse___argparse_1.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz";
-        sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
+        name = "_types_tabtab___tabtab_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/@types/tabtab/-/tabtab-3.0.2.tgz";
+        sha512 = "d8aOSJPS3SEGZevyr7vbAVUNPWGFmdFlk13vbPPK87vz+gYGM57L8T11k4wK2mOgQYZjEVYQEqmCTvupPoQBWw==";
       };
     }
     {
-      name = "astral_regex___astral_regex_2.0.0.tgz";
+      name = "_types_wrap_ansi___wrap_ansi_3.0.0.tgz";
       path = fetchurl {
-        name = "astral_regex___astral_regex_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz";
-        sha1 = "483143c567aeed4785759c0865786dc77d7d2e31";
+        name = "_types_wrap_ansi___wrap_ansi_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/@types/wrap-ansi/-/wrap-ansi-3.0.0.tgz";
+        sha512 = "ltIpx+kM7g/MLRZfkbL7EsCEjfzCcScLpkg37eXEtx5kmrAKBkTJwd1GIAjDSL8wTpM6Hzn5YO4pSb91BEwu1g==";
       };
     }
     {
-      name = "async___async_1.0.0.tgz";
+      name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
       path = fetchurl {
-        name = "async___async_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/async/-/async-1.0.0.tgz";
-        sha1 = "f8fc04ca3a13784ade9e1641af98578cfbd647a9";
+        name = "acorn_jsx___acorn_jsx_5.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz";
+        sha512 = "rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==";
       };
     }
     {
-      name = "balanced_match___balanced_match_1.0.2.tgz";
+      name = "acorn___acorn_8.7.1.tgz";
       path = fetchurl {
-        name = "balanced_match___balanced_match_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
-        sha1 = "e83e3a7e3f300b34cb9d87f615fa0cbf357690ee";
+        name = "acorn___acorn_8.7.1.tgz";
+        url  = "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz";
+        sha512 = "Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==";
+      };
+    }
+    {
+      name = "ajv___ajv_6.12.6.tgz";
+      path = fetchurl {
+        name = "ajv___ajv_6.12.6.tgz";
+        url  = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz";
+        sha512 = "j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==";
+      };
+    }
+    {
+      name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+      path = fetchurl {
+        name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
+        sha512 = "cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_3.0.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_3.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz";
+        sha512 = "+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_4.1.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_4.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz";
+        sha512 = "ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==";
+      };
+    }
+    {
+      name = "ansi_regex___ansi_regex_5.0.1.tgz";
+      path = fetchurl {
+        name = "ansi_regex___ansi_regex_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz";
+        sha512 = "quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==";
       };
     }
     {
-      name = "bluebird___bluebird_3.7.2.tgz";
+      name = "ansi_styles___ansi_styles_3.2.1.tgz";
       path = fetchurl {
-        name = "bluebird___bluebird_3.7.2.tgz";
-        url  = "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz";
-        sha1 = "9f229c15be272454ffa973ace0dbee79a1b0c36f";
+        name = "ansi_styles___ansi_styles_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz";
+        sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==";
+      };
+    }
+    {
+      name = "ansi_styles___ansi_styles_4.3.0.tgz";
+      path = fetchurl {
+        name = "ansi_styles___ansi_styles_4.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz";
+        sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==";
+      };
+    }
+    {
+      name = "argparse___argparse_2.0.1.tgz";
+      path = fetchurl {
+        name = "argparse___argparse_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz";
+        sha512 = "8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==";
+      };
+    }
+    {
+      name = "astral_regex___astral_regex_1.0.0.tgz";
+      path = fetchurl {
+        name = "astral_regex___astral_regex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz";
+        sha512 = "+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==";
+      };
+    }
+    {
+      name = "async___async_2.6.4.tgz";
+      path = fetchurl {
+        name = "async___async_2.6.4.tgz";
+        url  = "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz";
+        sha512 = "mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==";
+      };
+    }
+    {
+      name = "balanced_match___balanced_match_1.0.2.tgz";
+      path = fetchurl {
+        name = "balanced_match___balanced_match_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz";
+        sha512 = "3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==";
       };
     }
     {
@@ -206,15 +286,23 @@
       path = fetchurl {
         name = "brace_expansion___brace_expansion_1.1.11.tgz";
         url  = "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz";
-        sha1 = "3c7fcbf529d87226f3d2f52b966ff5271eb441dd";
+        sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==";
+      };
+    }
+    {
+      name = "braces___braces_3.0.2.tgz";
+      path = fetchurl {
+        name = "braces___braces_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz";
+        sha512 = "b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==";
       };
     }
     {
-      name = "buffer_from___buffer_from_1.1.1.tgz";
+      name = "buffer_from___buffer_from_1.1.2.tgz";
       path = fetchurl {
-        name = "buffer_from___buffer_from_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz";
-        sha1 = "32713bc028f75c02fdb710d7c7bcec1f2c6070ef";
+        name = "buffer_from___buffer_from_1.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz";
+        sha512 = "E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==";
       };
     }
     {
@@ -222,7 +310,7 @@
       path = fetchurl {
         name = "callsites___callsites_3.1.0.tgz";
         url  = "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz";
-        sha1 = "b3630abd8943432f54b3f0519238e33cd7df2f73";
+        sha512 = "P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==";
       };
     }
     {
@@ -230,15 +318,7 @@
       path = fetchurl {
         name = "camel_case___camel_case_4.1.2.tgz";
         url  = "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz";
-        sha1 = "9728072a954f805228225a6deea6b38461e1bd5a";
-      };
-    }
-    {
-      name = "caporal___caporal_1.4.0.tgz";
-      path = fetchurl {
-        name = "caporal___caporal_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/caporal/-/caporal-1.4.0.tgz";
-        sha1 = "d6087b815e3df97c3a0f55dbb82850fae29ed585";
+        sha512 = "gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==";
       };
     }
     {
@@ -246,47 +326,47 @@
       path = fetchurl {
         name = "chalk___chalk_2.4.2.tgz";
         url  = "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz";
-        sha1 = "cd42541677a54333cf541a49108c1432b44c9424";
+        sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==";
       };
     }
     {
-      name = "chalk___chalk_1.1.3.tgz";
+      name = "chalk___chalk_3.0.0.tgz";
       path = fetchurl {
-        name = "chalk___chalk_1.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz";
-        sha1 = "a8115c55e4a702fe4d150abd3872822a7e09fc98";
+        name = "chalk___chalk_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz";
+        sha512 = "4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==";
       };
     }
     {
-      name = "chalk___chalk_4.1.1.tgz";
+      name = "chalk___chalk_4.1.2.tgz";
       path = fetchurl {
-        name = "chalk___chalk_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.1.tgz";
-        sha1 = "c80b3fab28bf6371e6863325eee67e618b77e6ad";
+        name = "chalk___chalk_4.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz";
+        sha512 = "oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==";
       };
     }
     {
-      name = "clean_css___clean_css_4.2.3.tgz";
+      name = "chardet___chardet_0.7.0.tgz";
       path = fetchurl {
-        name = "clean_css___clean_css_4.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-4.2.3.tgz";
-        sha1 = "507b5de7d97b48ee53d84adb0160ff6216380f78";
+        name = "chardet___chardet_0.7.0.tgz";
+        url  = "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz";
+        sha512 = "mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==";
       };
     }
     {
-      name = "cli_cursor___cli_cursor_1.0.2.tgz";
+      name = "clean_css___clean_css_5.3.0.tgz";
       path = fetchurl {
-        name = "cli_cursor___cli_cursor_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz";
-        sha1 = "64da3f7d56a54412e59794bd62dc35295e8f2987";
+        name = "clean_css___clean_css_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/clean-css/-/clean-css-5.3.0.tgz";
+        sha512 = "YYuuxv4H/iNb1Z/5IbMRoxgrzjWGhOEFfd+groZ5dMCVkpENiMZmwspdrzBo9286JjM1gZJPAyL7ZIdzuvu2AQ==";
       };
     }
     {
-      name = "cli_table3___cli_table3_0.5.1.tgz";
+      name = "cli_cursor___cli_cursor_2.1.0.tgz";
       path = fetchurl {
-        name = "cli_table3___cli_table3_0.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz";
-        sha1 = "0252372d94dfc40dbd8df06005f48f31f656f202";
+        name = "cli_cursor___cli_cursor_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
+        sha512 = "8lgKz8LmCRYZZQDpRyT2m5rKJ08TnU4tR9FFFW2rxpxR1FzWi4PQ/NfyODchAatHaUgnSPVcx/R5w6NuTBzFiw==";
       };
     }
     {
@@ -294,7 +374,7 @@
       path = fetchurl {
         name = "cli_width___cli_width_2.2.1.tgz";
         url  = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz";
-        sha1 = "b0433d0b4e9c847ef18868a4ef16fd5fc8271c48";
+        sha512 = "GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==";
       };
     }
     {
@@ -302,7 +382,7 @@
       path = fetchurl {
         name = "clone_buffer___clone_buffer_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz";
-        sha1 = "e3e25b207ac4e701af721e2cb5a16792cac3dc58";
+        sha512 = "KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g==";
       };
     }
     {
@@ -310,7 +390,7 @@
       path = fetchurl {
         name = "clone_stats___clone_stats_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz";
-        sha1 = "b3782dff8bb5474e18b9b6bf0fdfe782f8777680";
+        sha512 = "au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag==";
       };
     }
     {
@@ -318,7 +398,7 @@
       path = fetchurl {
         name = "clone___clone_2.1.2.tgz";
         url  = "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz";
-        sha1 = "1b7f4b9f591f1e8f83670401600345a02887435f";
+        sha512 = "3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==";
       };
     }
     {
@@ -326,15 +406,7 @@
       path = fetchurl {
         name = "cloneable_readable___cloneable_readable_1.1.3.tgz";
         url  = "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz";
-        sha1 = "120a00cb053bfb63a222e709f9683ea2e11d8cec";
-      };
-    }
-    {
-      name = "code_point_at___code_point_at_1.1.0.tgz";
-      path = fetchurl {
-        name = "code_point_at___code_point_at_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz";
-        sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77";
+        sha512 = "2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ==";
       };
     }
     {
@@ -342,7 +414,7 @@
       path = fetchurl {
         name = "color_convert___color_convert_1.9.3.tgz";
         url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz";
-        sha1 = "bb71850690e1f136567de629d2d5471deda4c1e8";
+        sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==";
       };
     }
     {
@@ -350,7 +422,7 @@
       path = fetchurl {
         name = "color_convert___color_convert_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz";
-        sha1 = "72d3a68d598c9bdb3af2ad1e84f21d896abd4de3";
+        sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==";
       };
     }
     {
@@ -358,7 +430,7 @@
       path = fetchurl {
         name = "color_name___color_name_1.1.3.tgz";
         url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz";
-        sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25";
+        sha512 = "72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==";
       };
     }
     {
@@ -366,55 +438,55 @@
       path = fetchurl {
         name = "color_name___color_name_1.1.4.tgz";
         url  = "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz";
-        sha1 = "c2a09a87acbde69543de6f63fa3995c826c536a2";
+        sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==";
       };
     }
     {
-      name = "colorette___colorette_1.2.2.tgz";
+      name = "color_string___color_string_1.9.1.tgz";
       path = fetchurl {
-        name = "colorette___colorette_1.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz";
-        sha1 = "cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94";
+        name = "color_string___color_string_1.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz";
+        sha512 = "shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==";
       };
     }
     {
-      name = "colors___colors_1.0.3.tgz";
+      name = "color___color_3.2.1.tgz";
       path = fetchurl {
-        name = "colors___colors_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz";
-        sha1 = "0433f44d809680fdeb60ed260f1b0c262e82a40b";
+        name = "color___color_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz";
+        sha512 = "aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==";
       };
     }
     {
-      name = "colors___colors_1.4.0.tgz";
+      name = "colornames___colornames_1.1.1.tgz";
       path = fetchurl {
-        name = "colors___colors_1.4.0.tgz";
-        url  = "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz";
-        sha1 = "c50491479d4c1bdaed2c9ced32cf7c7dc2360f78";
+        name = "colornames___colornames_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/colornames/-/colornames-1.1.1.tgz";
+        sha512 = "/pyV40IrsdulWv+wFPmERh9k/mjsPZ64yUMDmWrtj/k1nmgrzzIENWKdaVKyBbvFdQWqkcaRxr+polCo3VMe7A==";
       };
     }
     {
-      name = "commander___commander_2.20.3.tgz";
+      name = "colorspace___colorspace_1.1.4.tgz";
       path = fetchurl {
-        name = "commander___commander_2.20.3.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
-        sha1 = "fd485e84c03eb4881c20722ba48035e8531aeb33";
+        name = "colorspace___colorspace_1.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz";
+        sha512 = "BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==";
       };
     }
     {
-      name = "commander___commander_4.1.1.tgz";
+      name = "commander___commander_2.20.3.tgz";
       path = fetchurl {
-        name = "commander___commander_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz";
-        sha1 = "9fd602bd936294e9e9ef46a3f4d6964044b18068";
+        name = "commander___commander_2.20.3.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz";
+        sha512 = "GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==";
       };
     }
     {
-      name = "commander___commander_2.1.0.tgz";
+      name = "commander___commander_8.3.0.tgz";
       path = fetchurl {
-        name = "commander___commander_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/commander/-/commander-2.1.0.tgz";
-        sha1 = "d121bbae860d9992a3d517ba96f56588e47c6781";
+        name = "commander___commander_8.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz";
+        sha512 = "OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==";
       };
     }
     {
@@ -422,23 +494,15 @@
       path = fetchurl {
         name = "concat_map___concat_map_0.0.1.tgz";
         url  = "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz";
-        sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b";
-      };
-    }
-    {
-      name = "concat_stream___concat_stream_1.6.2.tgz";
-      path = fetchurl {
-        name = "concat_stream___concat_stream_1.6.2.tgz";
-        url  = "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz";
-        sha1 = "904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34";
+        sha512 = "/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==";
       };
     }
     {
-      name = "core_util_is___core_util_is_1.0.2.tgz";
+      name = "core_util_is___core_util_is_1.0.3.tgz";
       path = fetchurl {
-        name = "core_util_is___core_util_is_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz";
-        sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7";
+        name = "core_util_is___core_util_is_1.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz";
+        sha512 = "ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==";
       };
     }
     {
@@ -446,47 +510,31 @@
       path = fetchurl {
         name = "cross_spawn___cross_spawn_7.0.3.tgz";
         url  = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
-        sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
-      };
-    }
-    {
-      name = "cycle___cycle_1.0.3.tgz";
-      path = fetchurl {
-        name = "cycle___cycle_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/cycle/-/cycle-1.0.3.tgz";
-        sha1 = "21e80b2be8580f98b468f379430662b046c34ad2";
-      };
-    }
-    {
-      name = "debug___debug_2.6.9.tgz";
-      path = fetchurl {
-        name = "debug___debug_2.6.9.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
-        sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+        sha512 = "iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==";
       };
     }
     {
-      name = "debug___debug_4.3.1.tgz";
+      name = "debug___debug_4.3.4.tgz";
       path = fetchurl {
-        name = "debug___debug_4.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz";
-        sha1 = "f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee";
+        name = "debug___debug_4.3.4.tgz";
+        url  = "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz";
+        sha512 = "PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==";
       };
     }
     {
-      name = "deep_is___deep_is_0.1.3.tgz";
+      name = "deep_is___deep_is_0.1.4.tgz";
       path = fetchurl {
-        name = "deep_is___deep_is_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz";
-        sha1 = "b369d6fb5dbc13eecf524f91b070feedc357cf34";
+        name = "deep_is___deep_is_0.1.4.tgz";
+        url  = "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz";
+        sha512 = "oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==";
       };
     }
     {
-      name = "delegates___delegates_1.0.0.tgz";
+      name = "diagnostics___diagnostics_1.1.1.tgz";
       path = fetchurl {
-        name = "delegates___delegates_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz";
-        sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a";
+        name = "diagnostics___diagnostics_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/diagnostics/-/diagnostics-1.1.1.tgz";
+        sha512 = "8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==";
       };
     }
     {
@@ -494,7 +542,7 @@
       path = fetchurl {
         name = "doctrine___doctrine_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz";
-        sha1 = "addebead72a6574db783639dc87a121773973961";
+        sha512 = "yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==";
       };
     }
     {
@@ -502,7 +550,15 @@
       path = fetchurl {
         name = "dot_case___dot_case_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz";
-        sha1 = "9b2b670d00a431667a8a75ba29cd1b98809ce751";
+        sha512 = "Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==";
+      };
+    }
+    {
+      name = "emoji_regex___emoji_regex_7.0.3.tgz";
+      path = fetchurl {
+        name = "emoji_regex___emoji_regex_7.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz";
+        sha512 = "CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==";
       };
     }
     {
@@ -510,23 +566,39 @@
       path = fetchurl {
         name = "emoji_regex___emoji_regex_8.0.0.tgz";
         url  = "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz";
-        sha1 = "e818fd69ce5ccfcb404594f842963bf53164cc37";
+        sha512 = "MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==";
       };
     }
     {
-      name = "enquirer___enquirer_2.3.6.tgz";
+      name = "enabled___enabled_1.0.2.tgz";
       path = fetchurl {
-        name = "enquirer___enquirer_2.3.6.tgz";
-        url  = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
-        sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+        name = "enabled___enabled_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/enabled/-/enabled-1.0.2.tgz";
+        sha512 = "nnzgVSpB35qKrUN8358SjO1bYAmxoThECTWw9s3J0x5G8A9hokKHVDFzBjVpCoSryo6MhN8woVyascN5jheaNA==";
       };
     }
     {
-      name = "es_check___es_check_5.2.4.tgz";
+      name = "env_variable___env_variable_0.0.6.tgz";
       path = fetchurl {
-        name = "es_check___es_check_5.2.4.tgz";
-        url  = "https://registry.yarnpkg.com/es-check/-/es-check-5.2.4.tgz";
-        sha1 = "76fe2d96ad238bd8ec1d9c3b3d0e98ddbcc723e7";
+        name = "env_variable___env_variable_0.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/env-variable/-/env-variable-0.0.6.tgz";
+        sha512 = "bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg==";
+      };
+    }
+    {
+      name = "es_check___es_check_6.2.1.tgz";
+      path = fetchurl {
+        name = "es_check___es_check_6.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/es-check/-/es-check-6.2.1.tgz";
+        sha512 = "IPiRXUlwSTd2yMklIf9yEGe6GK5wCS8Sz1aTNHm1QSiYzI4aiq19giYbLi95tb+e0JJVKmcU0iQXQWW60a8V9A==";
+      };
+    }
+    {
+      name = "es6_promisify___es6_promisify_6.1.1.tgz";
+      path = fetchurl {
+        name = "es6_promisify___es6_promisify_6.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.1.tgz";
+        sha512 = "HBL8I3mIki5C1Cc9QjKUenHtnG0A5/xA8Q/AllRcfiwl2CZFXGK7ddBiCoRwAix4i2KxcQfjtIVcrVbB3vbmwg==";
       };
     }
     {
@@ -534,7 +606,7 @@
       path = fetchurl {
         name = "escape_string_regexp___escape_string_regexp_1.0.5.tgz";
         url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz";
-        sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
+        sha512 = "vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==";
       };
     }
     {
@@ -542,7 +614,7 @@
       path = fetchurl {
         name = "escape_string_regexp___escape_string_regexp_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz";
-        sha1 = "14ba83a5d373e3d311e5afca29cf5bfad965bf34";
+        sha512 = "TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==";
       };
     }
     {
@@ -550,31 +622,23 @@
       path = fetchurl {
         name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
         url  = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
-        sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
+        sha512 = "WsbX4WbjuMvTdeVL6+J3rK1RGhCTqjsFjX7UMSMgZiyxxaNLkoJENbrGExzERFeoTpGw3F3FypTiWAP9ZXzkEw==";
       };
     }
     {
-      name = "eslint_scope___eslint_scope_5.1.1.tgz";
+      name = "eslint_scope___eslint_scope_7.1.1.tgz";
       path = fetchurl {
-        name = "eslint_scope___eslint_scope_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz";
-        sha1 = "e786e59a66cb92b3f6c1fb0d508aab174848f48c";
+        name = "eslint_scope___eslint_scope_7.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.1.tgz";
+        sha512 = "QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==";
       };
     }
     {
-      name = "eslint_utils___eslint_utils_2.1.0.tgz";
+      name = "eslint_utils___eslint_utils_3.0.0.tgz";
       path = fetchurl {
-        name = "eslint_utils___eslint_utils_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
-        sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
-      };
-    }
-    {
-      name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
-      path = fetchurl {
-        name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
-        sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
+        name = "eslint_utils___eslint_utils_3.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz";
+        sha512 = "uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==";
       };
     }
     {
@@ -582,31 +646,31 @@
       path = fetchurl {
         name = "eslint_visitor_keys___eslint_visitor_keys_2.1.0.tgz";
         url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz";
-        sha1 = "f65328259305927392c938ed44eb0a5c9b2bd303";
+        sha512 = "0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==";
       };
     }
     {
-      name = "eslint___eslint_7.29.0.tgz";
+      name = "eslint_visitor_keys___eslint_visitor_keys_3.3.0.tgz";
       path = fetchurl {
-        name = "eslint___eslint_7.29.0.tgz";
-        url  = "https://registry.yarnpkg.com/eslint/-/eslint-7.29.0.tgz";
-        sha1 = "ee2a7648f2e729485e4d0bd6383ec1deabc8b3c0";
+        name = "eslint_visitor_keys___eslint_visitor_keys_3.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz";
+        sha512 = "mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==";
       };
     }
     {
-      name = "espree___espree_7.3.1.tgz";
+      name = "eslint___eslint_8.18.0.tgz";
       path = fetchurl {
-        name = "espree___espree_7.3.1.tgz";
-        url  = "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz";
-        sha1 = "f2df330b752c6f55019f8bd89b7660039c1bbbb6";
+        name = "eslint___eslint_8.18.0.tgz";
+        url  = "https://registry.yarnpkg.com/eslint/-/eslint-8.18.0.tgz";
+        sha512 = "As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==";
       };
     }
     {
-      name = "esprima___esprima_4.0.1.tgz";
+      name = "espree___espree_9.3.2.tgz";
       path = fetchurl {
-        name = "esprima___esprima_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz";
-        sha1 = "13b04cdb3e6c5d19df91ab6987a8695619b0aa71";
+        name = "espree___espree_9.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/espree/-/espree-9.3.2.tgz";
+        sha512 = "D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==";
       };
     }
     {
@@ -614,7 +678,7 @@
       path = fetchurl {
         name = "esquery___esquery_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz";
-        sha1 = "2148ffc38b82e8c7057dfed48425b3e61f0f24a5";
+        sha512 = "cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==";
       };
     }
     {
@@ -622,23 +686,15 @@
       path = fetchurl {
         name = "esrecurse___esrecurse_4.3.0.tgz";
         url  = "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz";
-        sha1 = "7ad7964d679abb28bee72cec63758b1c5d2c9921";
-      };
-    }
-    {
-      name = "estraverse___estraverse_4.3.0.tgz";
-      path = fetchurl {
-        name = "estraverse___estraverse_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz";
-        sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
+        sha512 = "KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==";
       };
     }
     {
-      name = "estraverse___estraverse_5.2.0.tgz";
+      name = "estraverse___estraverse_5.3.0.tgz";
       path = fetchurl {
-        name = "estraverse___estraverse_5.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz";
-        sha1 = "307df42547e6cc7324d3cf03c155d5cdb8c53880";
+        name = "estraverse___estraverse_5.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz";
+        sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
       };
     }
     {
@@ -646,71 +702,71 @@
       path = fetchurl {
         name = "esutils___esutils_2.0.3.tgz";
         url  = "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz";
-        sha1 = "74d2eb4de0b8da1293711910d50775b9b710ef64";
+        sha512 = "kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==";
       };
     }
     {
-      name = "exit_hook___exit_hook_1.1.1.tgz";
+      name = "external_editor___external_editor_3.1.0.tgz";
       path = fetchurl {
-        name = "exit_hook___exit_hook_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz";
-        sha1 = "f05ca233b48c05d54fff07765df8507e95c02ff8";
+        name = "external_editor___external_editor_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz";
+        sha512 = "hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==";
       };
     }
     {
-      name = "extend___extend_3.0.2.tgz";
+      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
       path = fetchurl {
-        name = "extend___extend_3.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz";
-        sha1 = "f8b1136b4071fbd8eb140aff858b1019ec2915fa";
+        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
+        sha512 = "f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==";
       };
     }
     {
-      name = "external_editor___external_editor_1.1.1.tgz";
+      name = "fast_glob___fast_glob_3.2.11.tgz";
       path = fetchurl {
-        name = "external_editor___external_editor_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/external-editor/-/external-editor-1.1.1.tgz";
-        sha1 = "12d7b0db850f7ff7e7081baf4005700060c4600b";
+        name = "fast_glob___fast_glob_3.2.11.tgz";
+        url  = "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz";
+        sha512 = "xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==";
       };
     }
     {
-      name = "eyes___eyes_0.1.8.tgz";
+      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
       path = fetchurl {
-        name = "eyes___eyes_0.1.8.tgz";
-        url  = "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz";
-        sha1 = "62cf120234c683785d902348a800ef3e0cc20bc0";
+        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
+        sha512 = "lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==";
       };
     }
     {
-      name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
+      name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
       path = fetchurl {
-        name = "fast_deep_equal___fast_deep_equal_3.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz";
-        sha1 = "3a7d56b559d6cbc3eb512325244e619a65c6c525";
+        name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
+        sha512 = "DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==";
       };
     }
     {
-      name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
+      name = "fastq___fastq_1.13.0.tgz";
       path = fetchurl {
-        name = "fast_json_stable_stringify___fast_json_stable_stringify_2.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz";
-        sha1 = "874bf69c6f404c2b5d99c481341399fd55892633";
+        name = "fastq___fastq_1.13.0.tgz";
+        url  = "https://registry.yarnpkg.com/fastq/-/fastq-1.13.0.tgz";
+        sha512 = "YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==";
       };
     }
     {
-      name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
+      name = "fecha___fecha_4.2.3.tgz";
       path = fetchurl {
-        name = "fast_levenshtein___fast_levenshtein_2.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz";
-        sha1 = "3d8a5c66883a16a30ca8643e851f19baa7797917";
+        name = "fecha___fecha_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz";
+        sha512 = "OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==";
       };
     }
     {
-      name = "figures___figures_1.7.0.tgz";
+      name = "figures___figures_2.0.0.tgz";
       path = fetchurl {
-        name = "figures___figures_1.7.0.tgz";
-        url  = "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz";
-        sha1 = "cbe1e3affcf1cd44b80cadfed28dc793a9701d2e";
+        name = "figures___figures_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
+        sha512 = "Oa2M9atig69ZkfwiApY8F2Yy+tzMbazyvqv21R0NsSC8floSOC09BbT1ITWAdoMGQvJ/aZnR1KMwdx9tvHnTNA==";
       };
     }
     {
@@ -718,7 +774,15 @@
       path = fetchurl {
         name = "file_entry_cache___file_entry_cache_6.0.1.tgz";
         url  = "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz";
-        sha1 = "211b2dd9659cb0394b073e7323ac3c933d522027";
+        sha512 = "7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==";
+      };
+    }
+    {
+      name = "fill_range___fill_range_7.0.1.tgz";
+      path = fetchurl {
+        name = "fill_range___fill_range_7.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz";
+        sha512 = "qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==";
       };
     }
     {
@@ -726,15 +790,15 @@
       path = fetchurl {
         name = "flat_cache___flat_cache_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz";
-        sha1 = "61b0338302b2fe9f957dcc32fc2a87f1c3048b11";
+        sha512 = "dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==";
       };
     }
     {
-      name = "flatted___flatted_3.1.1.tgz";
+      name = "flatted___flatted_3.2.5.tgz";
       path = fetchurl {
-        name = "flatted___flatted_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz";
-        sha1 = "c4b489e80096d9df1dfc97c79871aea7c617c469";
+        name = "flatted___flatted_3.2.5.tgz";
+        url  = "https://registry.yarnpkg.com/flatted/-/flatted-3.2.5.tgz";
+        sha512 = "WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==";
       };
     }
     {
@@ -742,7 +806,7 @@
       path = fetchurl {
         name = "fs.realpath___fs.realpath_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz";
-        sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f";
+        sha512 = "OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==";
       };
     }
     {
@@ -750,15 +814,7 @@
       path = fetchurl {
         name = "functional_red_black_tree___functional_red_black_tree_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz";
-        sha1 = "1b0ab3bd553b2a0d6399d29c0e3ea0b252078327";
-      };
-    }
-    {
-      name = "gauge___gauge_1.2.7.tgz";
-      path = fetchurl {
-        name = "gauge___gauge_1.2.7.tgz";
-        url  = "https://registry.yarnpkg.com/gauge/-/gauge-1.2.7.tgz";
-        sha1 = "e9cec5483d3d4ee0ef44b60a7d99e4935e136d93";
+        sha512 = "dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==";
       };
     }
     {
@@ -766,71 +822,71 @@
       path = fetchurl {
         name = "glob_parent___glob_parent_5.1.2.tgz";
         url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz";
-        sha1 = "869832c58034fe68a4093c17dc15e8340d8401c4";
+        sha512 = "AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==";
       };
     }
     {
-      name = "glob___glob_7.1.7.tgz";
+      name = "glob_parent___glob_parent_6.0.2.tgz";
       path = fetchurl {
-        name = "glob___glob_7.1.7.tgz";
-        url  = "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz";
-        sha1 = "3b193e9233f01d42d0b3f78294bbeeb418f94a90";
+        name = "glob_parent___glob_parent_6.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz";
+        sha512 = "XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==";
       };
     }
     {
-      name = "globals___globals_13.9.0.tgz";
+      name = "glob___glob_7.2.3.tgz";
       path = fetchurl {
-        name = "globals___globals_13.9.0.tgz";
-        url  = "https://registry.yarnpkg.com/globals/-/globals-13.9.0.tgz";
-        sha1 = "4bf2bf635b334a173fb1daf7c5e6b218ecdc06cb";
+        name = "glob___glob_7.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz";
+        sha512 = "nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==";
       };
     }
     {
-      name = "google_closure_compiler_java___google_closure_compiler_java_20210601.0.0.tgz";
+      name = "globals___globals_13.15.0.tgz";
       path = fetchurl {
-        name = "google_closure_compiler_java___google_closure_compiler_java_20210601.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20210601.0.0.tgz";
-        sha1 = "88dc11b334bee6a704d9674c5143fd2e0d553517";
+        name = "globals___globals_13.15.0.tgz";
+        url  = "https://registry.yarnpkg.com/globals/-/globals-13.15.0.tgz";
+        sha512 = "bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==";
       };
     }
     {
-      name = "google_closure_compiler_linux___google_closure_compiler_linux_20210601.0.0.tgz";
+      name = "google_closure_compiler_java___google_closure_compiler_java_20220502.0.0.tgz";
       path = fetchurl {
-        name = "google_closure_compiler_linux___google_closure_compiler_linux_20210601.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20210601.0.0.tgz";
-        sha1 = "6e5dd7b00b96dc1fd1ba30e3401af85558768322";
+        name = "google_closure_compiler_java___google_closure_compiler_java_20220502.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-java/-/google-closure-compiler-java-20220502.0.0.tgz";
+        sha512 = "XDXw1v+1zcNHuEUXQg24eD9MUF2XTHnEDKCwF0P0zQe+8TWQajKvjsekdJnO6JH/Lqcu8XKc7dxO5+SMijr0sw==";
       };
     }
     {
-      name = "google_closure_compiler_osx___google_closure_compiler_osx_20210601.0.0.tgz";
+      name = "google_closure_compiler_linux___google_closure_compiler_linux_20220502.0.0.tgz";
       path = fetchurl {
-        name = "google_closure_compiler_osx___google_closure_compiler_osx_20210601.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20210601.0.0.tgz";
-        sha1 = "e23356bc9ef6e68c2980f60a207f603767b50b21";
+        name = "google_closure_compiler_linux___google_closure_compiler_linux_20220502.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-linux/-/google-closure-compiler-linux-20220502.0.0.tgz";
+        sha512 = "T+2p/Qj02yGZHxymhj1oZsiHudNvI9sQKfCLoIH0wi0ikDiVIOh/dsH+57lsaGDJ+XTP/ur5Ozl8GIOjv1Efrw==";
       };
     }
     {
-      name = "google_closure_compiler_windows___google_closure_compiler_windows_20210601.0.0.tgz";
+      name = "google_closure_compiler_osx___google_closure_compiler_osx_20220502.0.0.tgz";
       path = fetchurl {
-        name = "google_closure_compiler_windows___google_closure_compiler_windows_20210601.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20210601.0.0.tgz";
-        sha1 = "b5400d06bbf0bbd2602ee3ae0c2bc7ebd5829692";
+        name = "google_closure_compiler_osx___google_closure_compiler_osx_20220502.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-osx/-/google-closure-compiler-osx-20220502.0.0.tgz";
+        sha512 = "VwEncD4I1gfkF3zyHlRcUsx2o/poC0qzHjBv+g3Z09wHy9tuqjQ4EP8LmN/GMuV2Hai6gQvkKC0XjYnZTFx2mQ==";
       };
     }
     {
-      name = "google_closure_compiler___google_closure_compiler_20210601.0.0.tgz";
+      name = "google_closure_compiler_windows___google_closure_compiler_windows_20220502.0.0.tgz";
       path = fetchurl {
-        name = "google_closure_compiler___google_closure_compiler_20210601.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20210601.0.0.tgz";
-        sha1 = "34597c33c9285ebd3a5364f5299f6c9ddc9fc88a";
+        name = "google_closure_compiler_windows___google_closure_compiler_windows_20220502.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler-windows/-/google-closure-compiler-windows-20220502.0.0.tgz";
+        sha512 = "ssdAUS2VZxJAyciVrbhpnYymvm//V4CHyg8aLvMisUfWRDeUSsOCC5mNXy6D8f9i9bYHs3cFV3itIRUfnYCEWg==";
       };
     }
     {
-      name = "has_ansi___has_ansi_2.0.0.tgz";
+      name = "google_closure_compiler___google_closure_compiler_20220502.0.0.tgz";
       path = fetchurl {
-        name = "has_ansi___has_ansi_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz";
-        sha1 = "34f5049ce1ecdf2b0649af3ef24e45ed35416d91";
+        name = "google_closure_compiler___google_closure_compiler_20220502.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/google-closure-compiler/-/google-closure-compiler-20220502.0.0.tgz";
+        sha512 = "i9Qdve2v3jlerkHzlm00bpYds+kfAlIdeaOQ+acK/pHPHeLjhiXS+EyIpegVnH8+TY3I1QAMZFuVEXkMVJqpBQ==";
       };
     }
     {
@@ -838,7 +894,7 @@
       path = fetchurl {
         name = "has_flag___has_flag_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz";
-        sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd";
+        sha512 = "sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==";
       };
     }
     {
@@ -846,39 +902,39 @@
       path = fetchurl {
         name = "has_flag___has_flag_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz";
-        sha1 = "944771fd9c81c81265c4d6941860da06bb59479b";
+        sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==";
       };
     }
     {
-      name = "has_unicode___has_unicode_2.0.1.tgz";
+      name = "he___he_1.2.0.tgz";
       path = fetchurl {
-        name = "has_unicode___has_unicode_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz";
-        sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9";
+        name = "he___he_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
+        sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==";
       };
     }
     {
-      name = "he___he_1.2.0.tgz";
+      name = "html_minifier_terser___html_minifier_terser_6.1.0.tgz";
       path = fetchurl {
-        name = "he___he_1.2.0.tgz";
-        url  = "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz";
-        sha1 = "84ae65fa7eafb165fddb61566ae14baf05664f0f";
+        name = "html_minifier_terser___html_minifier_terser_6.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz";
+        sha512 = "YXxSlJBZTP7RS3tWnQw74ooKa6L9b9i9QYXY21eUEvhZ3u9XLfv6OnFsQq6RxkhHygsaUMvYsZRV5rU/OVNZxw==";
       };
     }
     {
-      name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
+      name = "iconv_lite___iconv_lite_0.4.24.tgz";
       path = fetchurl {
-        name = "html_minifier_terser___html_minifier_terser_5.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz";
-        sha1 = "922e96f1f3bb60832c2634b79884096389b1f054";
+        name = "iconv_lite___iconv_lite_0.4.24.tgz";
+        url  = "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz";
+        sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==";
       };
     }
     {
-      name = "ignore___ignore_4.0.6.tgz";
+      name = "ignore___ignore_5.2.0.tgz";
       path = fetchurl {
-        name = "ignore___ignore_4.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz";
-        sha1 = "750e3db5862087b4737ebac8207ffd1ef27b25fc";
+        name = "ignore___ignore_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/ignore/-/ignore-5.2.0.tgz";
+        sha512 = "CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==";
       };
     }
     {
@@ -886,7 +942,7 @@
       path = fetchurl {
         name = "import_fresh___import_fresh_3.3.0.tgz";
         url  = "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz";
-        sha1 = "37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b";
+        sha512 = "veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==";
       };
     }
     {
@@ -894,7 +950,7 @@
       path = fetchurl {
         name = "imurmurhash___imurmurhash_0.1.4.tgz";
         url  = "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz";
-        sha1 = "9218b9b2b928a238b13dc4fb6b6d576f231453ea";
+        sha512 = "JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==";
       };
     }
     {
@@ -902,7 +958,7 @@
       path = fetchurl {
         name = "inflight___inflight_1.0.6.tgz";
         url  = "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz";
-        sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9";
+        sha512 = "k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==";
       };
     }
     {
@@ -910,31 +966,31 @@
       path = fetchurl {
         name = "inherits___inherits_2.0.4.tgz";
         url  = "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz";
-        sha1 = "0fa2c64f932917c3433a0ded55363aae37416b7c";
+        sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==";
       };
     }
     {
-      name = "inquirer___inquirer_1.2.3.tgz";
+      name = "inquirer___inquirer_6.5.2.tgz";
       path = fetchurl {
-        name = "inquirer___inquirer_1.2.3.tgz";
-        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-1.2.3.tgz";
-        sha1 = "4dec6f32f37ef7bb0b2ed3f1d1a5c3f545074918";
+        name = "inquirer___inquirer_6.5.2.tgz";
+        url  = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
+        sha512 = "cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==";
       };
     }
     {
-      name = "is_extglob___is_extglob_2.1.1.tgz";
+      name = "is_arrayish___is_arrayish_0.3.2.tgz";
       path = fetchurl {
-        name = "is_extglob___is_extglob_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
-        sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+        name = "is_arrayish___is_arrayish_0.3.2.tgz";
+        url  = "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz";
+        sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==";
       };
     }
     {
-      name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
+      name = "is_extglob___is_extglob_2.1.1.tgz";
       path = fetchurl {
-        name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz";
-        sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb";
+        name = "is_extglob___is_extglob_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+        sha512 = "SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==";
       };
     }
     {
@@ -942,7 +998,7 @@
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz";
-        sha1 = "a3b30a5c4f199183167aaab93beefae3ddfb654f";
+        sha512 = "VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==";
       };
     }
     {
@@ -950,55 +1006,55 @@
       path = fetchurl {
         name = "is_fullwidth_code_point___is_fullwidth_code_point_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz";
-        sha1 = "f116f8064fe90b3f7844a38997c0b75051269f1d";
+        sha512 = "zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==";
       };
     }
     {
-      name = "is_glob___is_glob_4.0.1.tgz";
+      name = "is_glob___is_glob_4.0.3.tgz";
       path = fetchurl {
-        name = "is_glob___is_glob_4.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
-        sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+        name = "is_glob___is_glob_4.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz";
+        sha512 = "xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==";
       };
     }
     {
-      name = "isarray___isarray_1.0.0.tgz";
+      name = "is_number___is_number_7.0.0.tgz";
       path = fetchurl {
-        name = "isarray___isarray_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
-        sha1 = "bb935d48582cba168c06834957a54a3e07124f11";
+        name = "is_number___is_number_7.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz";
+        sha512 = "41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==";
       };
     }
     {
-      name = "isexe___isexe_2.0.0.tgz";
+      name = "is_stream___is_stream_1.1.0.tgz";
       path = fetchurl {
-        name = "isexe___isexe_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
-        sha1 = "e8fbf374dc556ff8947a10dcb0572d633f2cfa10";
+        name = "is_stream___is_stream_1.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz";
+        sha512 = "uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==";
       };
     }
     {
-      name = "isstream___isstream_0.1.2.tgz";
+      name = "isarray___isarray_1.0.0.tgz";
       path = fetchurl {
-        name = "isstream___isstream_0.1.2.tgz";
-        url  = "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz";
-        sha1 = "47e63f7af55afa6f92e1500e690eb8b8529c099a";
+        name = "isarray___isarray_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz";
+        sha512 = "VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==";
       };
     }
     {
-      name = "js_tokens___js_tokens_4.0.0.tgz";
+      name = "isexe___isexe_2.0.0.tgz";
       path = fetchurl {
-        name = "js_tokens___js_tokens_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz";
-        sha1 = "19203fb59991df98e3a287050d4647cdeaf32499";
+        name = "isexe___isexe_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz";
+        sha512 = "RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==";
       };
     }
     {
-      name = "js_yaml___js_yaml_3.14.1.tgz";
+      name = "js_yaml___js_yaml_4.1.0.tgz";
       path = fetchurl {
-        name = "js_yaml___js_yaml_3.14.1.tgz";
-        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz";
-        sha1 = "dae812fdb3825fa306609a8717383c50c36a0537";
+        name = "js_yaml___js_yaml_4.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz";
+        sha512 = "wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==";
       };
     }
     {
@@ -1006,15 +1062,7 @@
       path = fetchurl {
         name = "json_schema_traverse___json_schema_traverse_0.4.1.tgz";
         url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz";
-        sha1 = "69f6a87d9513ab8bb8fe63bdb0979c448e684660";
-      };
-    }
-    {
-      name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
-      path = fetchurl {
-        name = "json_schema_traverse___json_schema_traverse_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz";
-        sha1 = "ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2";
+        sha512 = "xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==";
       };
     }
     {
@@ -1022,39 +1070,23 @@
       path = fetchurl {
         name = "json_stable_stringify_without_jsonify___json_stable_stringify_without_jsonify_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz";
-        sha1 = "9db7b59496ad3f3cfef30a75142d2d930ad72651";
-      };
-    }
-    {
-      name = "levn___levn_0.4.1.tgz";
-      path = fetchurl {
-        name = "levn___levn_0.4.1.tgz";
-        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
-        sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
-      };
-    }
-    {
-      name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-      path = fetchurl {
-        name = "lodash.camelcase___lodash.camelcase_4.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz";
-        sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6";
+        sha512 = "Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==";
       };
     }
     {
-      name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
+      name = "kuler___kuler_1.0.1.tgz";
       path = fetchurl {
-        name = "lodash.clonedeep___lodash.clonedeep_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz";
-        sha1 = "e23f3f9c4f8fbdde872529c1071857a086e5ccef";
+        name = "kuler___kuler_1.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/kuler/-/kuler-1.0.1.tgz";
+        sha512 = "J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==";
       };
     }
     {
-      name = "lodash.difference___lodash.difference_4.5.0.tgz";
+      name = "levn___levn_0.4.1.tgz";
       path = fetchurl {
-        name = "lodash.difference___lodash.difference_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.difference/-/lodash.difference-4.5.0.tgz";
-        sha1 = "9ccb4e505d486b91651345772885a2df27fd017c";
+        name = "levn___levn_0.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+        sha512 = "+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==";
       };
     }
     {
@@ -1062,55 +1094,31 @@
       path = fetchurl {
         name = "lodash.merge___lodash.merge_4.6.2.tgz";
         url  = "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz";
-        sha1 = "558aa53b43b661e1925a0afdfa36a9a1085fe57a";
-      };
-    }
-    {
-      name = "lodash.pad___lodash.pad_4.5.1.tgz";
-      path = fetchurl {
-        name = "lodash.pad___lodash.pad_4.5.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.pad/-/lodash.pad-4.5.1.tgz";
-        sha1 = "4330949a833a7c8da22cc20f6a26c4d59debba70";
-      };
-    }
-    {
-      name = "lodash.padend___lodash.padend_4.6.1.tgz";
-      path = fetchurl {
-        name = "lodash.padend___lodash.padend_4.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.padend/-/lodash.padend-4.6.1.tgz";
-        sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e";
+        sha512 = "0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==";
       };
     }
     {
-      name = "lodash.padstart___lodash.padstart_4.6.1.tgz";
+      name = "lodash___lodash_4.17.15.tgz";
       path = fetchurl {
-        name = "lodash.padstart___lodash.padstart_4.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz";
-        sha1 = "d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b";
+        name = "lodash___lodash_4.17.15.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+        sha512 = "8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==";
       };
     }
     {
-      name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
+      name = "lodash___lodash_4.17.21.tgz";
       path = fetchurl {
-        name = "lodash.truncate___lodash.truncate_4.4.2.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz";
-        sha1 = "5a350da0b1113b837ecfffd5812cbe58d6eae193";
+        name = "lodash___lodash_4.17.21.tgz";
+        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
+        sha512 = "v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==";
       };
     }
     {
-      name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
+      name = "logform___logform_2.4.1.tgz";
       path = fetchurl {
-        name = "lodash.uniq___lodash.uniq_4.5.0.tgz";
-        url  = "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz";
-        sha1 = "d0225373aeb652adc1bc82e4945339a842754773";
-      };
-    }
-    {
-      name = "lodash___lodash_4.17.21.tgz";
-      path = fetchurl {
-        name = "lodash___lodash_4.17.21.tgz";
-        url  = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz";
-        sha1 = "679591c564c3bffaae8454cf0b3df370c3d6911c";
+        name = "logform___logform_2.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/logform/-/logform-2.4.1.tgz";
+        sha512 = "7XB/tqc3VRbri9pRjU6E97mQ8vC27ivJ3lct4jhyT+n0JNDd4YKldFl0D75NqDp46hk8RC7Ma1Vjv/UPf67S+A==";
       };
     }
     {
@@ -1118,55 +1126,55 @@
       path = fetchurl {
         name = "lower_case___lower_case_2.0.2.tgz";
         url  = "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz";
-        sha1 = "6fa237c63dbdc4a82ca0fd882e4722dc5e634e28";
+        sha512 = "7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==";
       };
     }
     {
-      name = "lru_cache___lru_cache_6.0.0.tgz";
+      name = "merge2___merge2_1.4.1.tgz";
       path = fetchurl {
-        name = "lru_cache___lru_cache_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz";
-        sha1 = "6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94";
+        name = "merge2___merge2_1.4.1.tgz";
+        url  = "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz";
+        sha512 = "8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==";
       };
     }
     {
-      name = "micromist___micromist_1.1.0.tgz";
+      name = "micromatch___micromatch_4.0.5.tgz";
       path = fetchurl {
-        name = "micromist___micromist_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/micromist/-/micromist-1.1.0.tgz";
-        sha1 = "a490bcf9a4b918ad9eed8e52d0ec98b9c3b2d3c8";
+        name = "micromatch___micromatch_4.0.5.tgz";
+        url  = "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz";
+        sha512 = "DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==";
       };
     }
     {
-      name = "minimatch___minimatch_3.0.4.tgz";
+      name = "mimic_fn___mimic_fn_1.2.0.tgz";
       path = fetchurl {
-        name = "minimatch___minimatch_3.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz";
-        sha1 = "5166e286457f03306064be5497e8dbb0c3d32083";
+        name = "mimic_fn___mimic_fn_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz";
+        sha512 = "jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==";
       };
     }
     {
-      name = "minimist___minimist_1.2.5.tgz";
+      name = "minimatch___minimatch_3.1.2.tgz";
       path = fetchurl {
-        name = "minimist___minimist_1.2.5.tgz";
-        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz";
-        sha1 = "67d66014b66a6a8aaa0c083c5fd58df4e4e97602";
+        name = "minimatch___minimatch_3.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz";
+        sha512 = "J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==";
       };
     }
     {
-      name = "mkdirp___mkdirp_0.5.5.tgz";
+      name = "minimist___minimist_1.2.6.tgz";
       path = fetchurl {
-        name = "mkdirp___mkdirp_0.5.5.tgz";
-        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz";
-        sha1 = "d91cefd62d1436ca0f41620e251288d420099def";
+        name = "minimist___minimist_1.2.6.tgz";
+        url  = "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz";
+        sha512 = "Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==";
       };
     }
     {
-      name = "ms___ms_2.0.0.tgz";
+      name = "mkdirp___mkdirp_0.5.6.tgz";
       path = fetchurl {
-        name = "ms___ms_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz";
-        sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8";
+        name = "mkdirp___mkdirp_0.5.6.tgz";
+        url  = "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz";
+        sha512 = "FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==";
       };
     }
     {
@@ -1174,23 +1182,23 @@
       path = fetchurl {
         name = "ms___ms_2.1.2.tgz";
         url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz";
-        sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
+        sha512 = "sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==";
       };
     }
     {
-      name = "mute_stream___mute_stream_0.0.6.tgz";
+      name = "ms___ms_2.1.3.tgz";
       path = fetchurl {
-        name = "mute_stream___mute_stream_0.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.6.tgz";
-        sha1 = "48962b19e169fd1dfc240b3f1e7317627bbc47db";
+        name = "ms___ms_2.1.3.tgz";
+        url  = "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz";
+        sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==";
       };
     }
     {
-      name = "nan___nan_1.0.0.tgz";
+      name = "mute_stream___mute_stream_0.0.7.tgz";
       path = fetchurl {
-        name = "nan___nan_1.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/nan/-/nan-1.0.0.tgz";
-        sha1 = "ae24f8850818d662fcab5acf7f3b95bfaa2ccf38";
+        name = "mute_stream___mute_stream_0.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
+        sha512 = "r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==";
       };
     }
     {
@@ -1198,7 +1206,7 @@
       path = fetchurl {
         name = "natural_compare___natural_compare_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz";
-        sha1 = "4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7";
+        sha512 = "OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==";
       };
     }
     {
@@ -1206,31 +1214,7 @@
       path = fetchurl {
         name = "no_case___no_case_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz";
-        sha1 = "d361fd5c9800f558551a8369fc0dcd4662b6124d";
-      };
-    }
-    {
-      name = "npmlog___npmlog_2.0.4.tgz";
-      path = fetchurl {
-        name = "npmlog___npmlog_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/npmlog/-/npmlog-2.0.4.tgz";
-        sha1 = "98b52530f2514ca90d09ec5b22c8846722375692";
-      };
-    }
-    {
-      name = "number_is_nan___number_is_nan_1.0.1.tgz";
-      path = fetchurl {
-        name = "number_is_nan___number_is_nan_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz";
-        sha1 = "097b602b53422a522c1afb8790318336941a011d";
-      };
-    }
-    {
-      name = "object_assign___object_assign_4.1.1.tgz";
-      path = fetchurl {
-        name = "object_assign___object_assign_4.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz";
-        sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863";
+        sha512 = "fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==";
       };
     }
     {
@@ -1238,39 +1222,31 @@
       path = fetchurl {
         name = "once___once_1.4.0.tgz";
         url  = "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz";
-        sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1";
+        sha512 = "lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==";
       };
     }
     {
-      name = "onetime___onetime_1.1.0.tgz";
+      name = "one_time___one_time_0.0.4.tgz";
       path = fetchurl {
-        name = "onetime___onetime_1.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz";
-        sha1 = "a1f7838f8314c516f05ecefcbc4ccfe04b4ed789";
+        name = "one_time___one_time_0.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/one-time/-/one-time-0.0.4.tgz";
+        sha512 = "qAMrwuk2xLEutlASoiPiAMW3EN3K96Ka/ilSXYr6qR1zSVXw2j7+yDSqGTC4T9apfLYxM3tLLjKvgPdAUK7kYQ==";
       };
     }
     {
-      name = "optionator___optionator_0.9.1.tgz";
+      name = "onetime___onetime_2.0.1.tgz";
       path = fetchurl {
-        name = "optionator___optionator_0.9.1.tgz";
-        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
-        sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+        name = "onetime___onetime_2.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
+        sha512 = "oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==";
       };
     }
     {
-      name = "options___options_0.0.6.tgz";
-      path = fetchurl {
-        name = "options___options_0.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz";
-        sha1 = "ec22d312806bb53e731773e7cdaefcf1c643128f";
-      };
-    }
-    {
-      name = "os_shim___os_shim_0.1.3.tgz";
+      name = "optionator___optionator_0.9.1.tgz";
       path = fetchurl {
-        name = "os_shim___os_shim_0.1.3.tgz";
-        url  = "https://registry.yarnpkg.com/os-shim/-/os-shim-0.1.3.tgz";
-        sha1 = "6b62c3791cf7909ea35ed46e17658bb417cb3917";
+        name = "optionator___optionator_0.9.1.tgz";
+        url  = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+        sha512 = "74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==";
       };
     }
     {
@@ -1278,7 +1254,7 @@
       path = fetchurl {
         name = "os_tmpdir___os_tmpdir_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz";
-        sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274";
+        sha512 = "D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==";
       };
     }
     {
@@ -1286,7 +1262,7 @@
       path = fetchurl {
         name = "param_case___param_case_3.0.4.tgz";
         url  = "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz";
-        sha1 = "7d17fe4aa12bde34d4a77d91acfb6219caad01c5";
+        sha512 = "RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==";
       };
     }
     {
@@ -1294,7 +1270,7 @@
       path = fetchurl {
         name = "parent_module___parent_module_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz";
-        sha1 = "691d2709e78c79fae3a156622452d00762caaaa2";
+        sha512 = "GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==";
       };
     }
     {
@@ -1302,7 +1278,7 @@
       path = fetchurl {
         name = "pascal_case___pascal_case_3.1.2.tgz";
         url  = "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz";
-        sha1 = "b48e0ef2b98e205e7c1dae747d0b1508237660eb";
+        sha512 = "uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==";
       };
     }
     {
@@ -1310,7 +1286,7 @@
       path = fetchurl {
         name = "path_is_absolute___path_is_absolute_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz";
-        sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f";
+        sha512 = "AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==";
       };
     }
     {
@@ -1318,23 +1294,15 @@
       path = fetchurl {
         name = "path_key___path_key_3.1.1.tgz";
         url  = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
-        sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+        sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     }
     {
-      name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
+      name = "picomatch___picomatch_2.3.1.tgz";
       path = fetchurl {
-        name = "pinkie_promise___pinkie_promise_2.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz";
-        sha1 = "2135d6dfa7a358c069ac9b178776288228450ffa";
-      };
-    }
-    {
-      name = "pinkie___pinkie_2.0.4.tgz";
-      path = fetchurl {
-        name = "pinkie___pinkie_2.0.4.tgz";
-        url  = "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz";
-        sha1 = "72556b80cfa0d48a974e80e77248e80ed4f7f870";
+        name = "picomatch___picomatch_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz";
+        sha512 = "JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==";
       };
     }
     {
@@ -1342,15 +1310,7 @@
       path = fetchurl {
         name = "prelude_ls___prelude_ls_1.2.1.tgz";
         url  = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
-        sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
-      };
-    }
-    {
-      name = "prettyjson___prettyjson_1.2.1.tgz";
-      path = fetchurl {
-        name = "prettyjson___prettyjson_1.2.1.tgz";
-        url  = "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz";
-        sha1 = "fcffab41d19cab4dfae5e575e64246619b12d289";
+        sha512 = "vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==";
       };
     }
     {
@@ -1358,23 +1318,23 @@
       path = fetchurl {
         name = "process_nextick_args___process_nextick_args_2.0.1.tgz";
         url  = "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz";
-        sha1 = "7820d9b16120cc55ca9ae7792680ae7dba6d7fe2";
+        sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==";
       };
     }
     {
-      name = "progress___progress_2.0.3.tgz";
+      name = "punycode___punycode_2.1.1.tgz";
       path = fetchurl {
-        name = "progress___progress_2.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz";
-        sha1 = "7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8";
+        name = "punycode___punycode_2.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
+        sha512 = "XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==";
       };
     }
     {
-      name = "punycode___punycode_2.1.1.tgz";
+      name = "queue_microtask___queue_microtask_1.2.3.tgz";
       path = fetchurl {
-        name = "punycode___punycode_2.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz";
-        sha1 = "b58b010ac40c22c5657616c8d2c2c02c7bf479ec";
+        name = "queue_microtask___queue_microtask_1.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz";
+        sha512 = "NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==";
       };
     }
     {
@@ -1382,7 +1342,15 @@
       path = fetchurl {
         name = "readable_stream___readable_stream_2.3.7.tgz";
         url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz";
-        sha1 = "1eca1cf711aef814c04f62252a36a62f6cb23b57";
+        sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==";
+      };
+    }
+    {
+      name = "readable_stream___readable_stream_3.6.0.tgz";
+      path = fetchurl {
+        name = "readable_stream___readable_stream_3.6.0.tgz";
+        url  = "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz";
+        sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     }
     {
@@ -1390,7 +1358,7 @@
       path = fetchurl {
         name = "regexpp___regexpp_3.2.0.tgz";
         url  = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz";
-        sha1 = "0425a2768d8f23bad70ca4b90461fa2f1213e1b2";
+        sha512 = "pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==";
       };
     }
     {
@@ -1398,7 +1366,7 @@
       path = fetchurl {
         name = "relateurl___relateurl_0.2.7.tgz";
         url  = "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz";
-        sha1 = "54dbf377e51440aca90a4cd274600d3ff2d888a9";
+        sha512 = "G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==";
       };
     }
     {
@@ -1406,7 +1374,7 @@
       path = fetchurl {
         name = "remove_trailing_separator___remove_trailing_separator_1.1.0.tgz";
         url  = "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz";
-        sha1 = "c24bce2a283adad5bc3f58e0d48249b92379d8ef";
+        sha512 = "/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==";
       };
     }
     {
@@ -1414,31 +1382,31 @@
       path = fetchurl {
         name = "replace_ext___replace_ext_1.0.1.tgz";
         url  = "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz";
-        sha1 = "2d6d996d04a15855d967443631dd5f77825b016a";
+        sha512 = "yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw==";
       };
     }
     {
-      name = "require_from_string___require_from_string_2.0.2.tgz";
+      name = "resolve_from___resolve_from_4.0.0.tgz";
       path = fetchurl {
-        name = "require_from_string___require_from_string_2.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz";
-        sha1 = "89a7fdd938261267318eafe14f9c32e598c36909";
+        name = "resolve_from___resolve_from_4.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
+        sha512 = "pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==";
       };
     }
     {
-      name = "resolve_from___resolve_from_4.0.0.tgz";
+      name = "restore_cursor___restore_cursor_2.0.0.tgz";
       path = fetchurl {
-        name = "resolve_from___resolve_from_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz";
-        sha1 = "4abcd852ad32dd7baabfe9b40e00a36db5f392e6";
+        name = "restore_cursor___restore_cursor_2.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
+        sha512 = "6IzJLuGi4+R14vwagDHX+JrXmPVtPpn4mffDJ1UdR7/Edm87fl6yi8mMBIVvFtJaNTUvjughmW4hwLhRG7gC1Q==";
       };
     }
     {
-      name = "restore_cursor___restore_cursor_1.0.1.tgz";
+      name = "reusify___reusify_1.0.4.tgz";
       path = fetchurl {
-        name = "restore_cursor___restore_cursor_1.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz";
-        sha1 = "34661f46886327fed2991479152252df92daa541";
+        name = "reusify___reusify_1.0.4.tgz";
+        url  = "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz";
+        sha512 = "U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==";
       };
     }
     {
@@ -1446,7 +1414,7 @@
       path = fetchurl {
         name = "rimraf___rimraf_3.0.2.tgz";
         url  = "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz";
-        sha1 = "f1a5402ba6220ad52cc1282bac1ae3aa49fd061a";
+        sha512 = "JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==";
       };
     }
     {
@@ -1454,15 +1422,23 @@
       path = fetchurl {
         name = "run_async___run_async_2.4.1.tgz";
         url  = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
-        sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
+        sha512 = "tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==";
       };
     }
     {
-      name = "rx___rx_4.1.0.tgz";
+      name = "run_parallel___run_parallel_1.2.0.tgz";
       path = fetchurl {
-        name = "rx___rx_4.1.0.tgz";
-        url  = "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz";
-        sha1 = "a5f13ff79ef3b740fe30aa803fb09f98805d4782";
+        name = "run_parallel___run_parallel_1.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz";
+        sha512 = "5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==";
+      };
+    }
+    {
+      name = "rxjs___rxjs_6.6.7.tgz";
+      path = fetchurl {
+        name = "rxjs___rxjs_6.6.7.tgz";
+        url  = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz";
+        sha512 = "hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==";
       };
     }
     {
@@ -1470,15 +1446,31 @@
       path = fetchurl {
         name = "safe_buffer___safe_buffer_5.1.2.tgz";
         url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz";
-        sha1 = "991ec69d296e0313747d59bdfd2b745c35f8828d";
+        sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==";
+      };
+    }
+    {
+      name = "safe_buffer___safe_buffer_5.2.1.tgz";
+      path = fetchurl {
+        name = "safe_buffer___safe_buffer_5.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz";
+        sha512 = "rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==";
       };
     }
     {
-      name = "semver___semver_7.3.5.tgz";
+      name = "safe_stable_stringify___safe_stable_stringify_2.3.1.tgz";
       path = fetchurl {
-        name = "semver___semver_7.3.5.tgz";
-        url  = "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz";
-        sha1 = "0b621c879348d8998e4b0e4be94b3f12e6018ef7";
+        name = "safe_stable_stringify___safe_stable_stringify_2.3.1.tgz";
+        url  = "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz";
+        sha512 = "kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==";
+      };
+    }
+    {
+      name = "safer_buffer___safer_buffer_2.1.2.tgz";
+      path = fetchurl {
+        name = "safer_buffer___safer_buffer_2.1.2.tgz";
+        url  = "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz";
+        sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==";
       };
     }
     {
@@ -1486,7 +1478,7 @@
       path = fetchurl {
         name = "shebang_command___shebang_command_2.0.0.tgz";
         url  = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
-        sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+        sha512 = "kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==";
       };
     }
     {
@@ -1494,71 +1486,71 @@
       path = fetchurl {
         name = "shebang_regex___shebang_regex_3.0.0.tgz";
         url  = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
-        sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+        sha512 = "7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==";
       };
     }
     {
-      name = "slice_ansi___slice_ansi_4.0.0.tgz";
+      name = "signal_exit___signal_exit_3.0.7.tgz";
       path = fetchurl {
-        name = "slice_ansi___slice_ansi_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz";
-        sha1 = "500e8dd0fd55b05815086255b3195adf2a45fe6b";
+        name = "signal_exit___signal_exit_3.0.7.tgz";
+        url  = "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz";
+        sha512 = "wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==";
       };
     }
     {
-      name = "source_map_support___source_map_support_0.5.19.tgz";
+      name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
       path = fetchurl {
-        name = "source_map_support___source_map_support_0.5.19.tgz";
-        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz";
-        sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
+        name = "simple_swizzle___simple_swizzle_0.2.2.tgz";
+        url  = "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz";
+        sha512 = "JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==";
       };
     }
     {
-      name = "source_map___source_map_0.5.7.tgz";
+      name = "slice_ansi___slice_ansi_2.1.0.tgz";
       path = fetchurl {
-        name = "source_map___source_map_0.5.7.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
-        sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+        name = "slice_ansi___slice_ansi_2.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz";
+        sha512 = "Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==";
       };
     }
     {
-      name = "source_map___source_map_0.6.1.tgz";
+      name = "source_map_support___source_map_support_0.5.21.tgz";
       path = fetchurl {
-        name = "source_map___source_map_0.6.1.tgz";
-        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
-        sha1 = "74722af32e9614e9c287a8d0bbde48b5e2f1a263";
+        name = "source_map_support___source_map_support_0.5.21.tgz";
+        url  = "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz";
+        sha512 = "uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==";
       };
     }
     {
-      name = "spawn_sync___spawn_sync_1.0.15.tgz";
+      name = "source_map___source_map_0.7.3.tgz";
       path = fetchurl {
-        name = "spawn_sync___spawn_sync_1.0.15.tgz";
-        url  = "https://registry.yarnpkg.com/spawn-sync/-/spawn-sync-1.0.15.tgz";
-        sha1 = "b00799557eb7fb0c8376c29d44e8a1ea67e57476";
+        name = "source_map___source_map_0.7.3.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz";
+        sha512 = "CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==";
       };
     }
     {
-      name = "sprintf_js___sprintf_js_1.0.3.tgz";
+      name = "source_map___source_map_0.5.7.tgz";
       path = fetchurl {
-        name = "sprintf_js___sprintf_js_1.0.3.tgz";
-        url  = "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz";
-        sha1 = "04e6926f662895354f3dd015203633b857297e2c";
+        name = "source_map___source_map_0.5.7.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+        sha512 = "LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==";
       };
     }
     {
-      name = "stack_trace___stack_trace_0.0.10.tgz";
+      name = "source_map___source_map_0.6.1.tgz";
       path = fetchurl {
-        name = "stack_trace___stack_trace_0.0.10.tgz";
-        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
-        sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0";
+        name = "source_map___source_map_0.6.1.tgz";
+        url  = "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz";
+        sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==";
       };
     }
     {
-      name = "string_width___string_width_1.0.2.tgz";
+      name = "stack_trace___stack_trace_0.0.10.tgz";
       path = fetchurl {
-        name = "string_width___string_width_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+        name = "stack_trace___stack_trace_0.0.10.tgz";
+        url  = "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz";
+        sha512 = "KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==";
       };
     }
     {
@@ -1566,31 +1558,39 @@
       path = fetchurl {
         name = "string_width___string_width_2.1.1.tgz";
         url  = "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz";
-        sha1 = "ab93f27a8dc13d28cac815c462143a6d9012ae9e";
+        sha512 = "nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==";
       };
     }
     {
-      name = "string_width___string_width_4.2.2.tgz";
+      name = "string_width___string_width_3.1.0.tgz";
       path = fetchurl {
-        name = "string_width___string_width_4.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz";
-        sha1 = "dafd4f9559a7585cfba529c6a0a4f73488ebd4c5";
+        name = "string_width___string_width_3.1.0.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz";
+        sha512 = "vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==";
       };
     }
     {
-      name = "string_decoder___string_decoder_1.1.1.tgz";
+      name = "string_width___string_width_4.2.3.tgz";
       path = fetchurl {
-        name = "string_decoder___string_decoder_1.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
-        sha1 = "9cf1611ba62685d7030ae9e4ba34149c3af03fc8";
+        name = "string_width___string_width_4.2.3.tgz";
+        url  = "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz";
+        sha512 = "wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==";
+      };
+    }
+    {
+      name = "string_decoder___string_decoder_1.3.0.tgz";
+      path = fetchurl {
+        name = "string_decoder___string_decoder_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz";
+        sha512 = "hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==";
       };
     }
     {
-      name = "strip_ansi___strip_ansi_3.0.1.tgz";
+      name = "string_decoder___string_decoder_1.1.1.tgz";
       path = fetchurl {
-        name = "strip_ansi___strip_ansi_3.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+        name = "string_decoder___string_decoder_1.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz";
+        sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==";
       };
     }
     {
@@ -1598,31 +1598,31 @@
       path = fetchurl {
         name = "strip_ansi___strip_ansi_4.0.0.tgz";
         url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+        sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==";
       };
     }
     {
-      name = "strip_ansi___strip_ansi_6.0.0.tgz";
+      name = "strip_ansi___strip_ansi_5.2.0.tgz";
       path = fetchurl {
-        name = "strip_ansi___strip_ansi_6.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz";
-        sha1 = "0b1571dd7669ccd4f3e06e14ef1eed26225ae532";
+        name = "strip_ansi___strip_ansi_5.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz";
+        sha512 = "DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==";
       };
     }
     {
-      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+      name = "strip_ansi___strip_ansi_6.0.1.tgz";
       path = fetchurl {
-        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
-        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
-        sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+        name = "strip_ansi___strip_ansi_6.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz";
+        sha512 = "Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==";
       };
     }
     {
-      name = "supports_color___supports_color_2.0.0.tgz";
+      name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
       path = fetchurl {
-        name = "supports_color___supports_color_2.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+        name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+        url  = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+        sha512 = "6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==";
       };
     }
     {
@@ -1630,7 +1630,7 @@
       path = fetchurl {
         name = "supports_color___supports_color_5.5.0.tgz";
         url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz";
-        sha1 = "e2e69a44ac8772f78a1ec0b35b689df6530efc8f";
+        sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==";
       };
     }
     {
@@ -1638,31 +1638,39 @@
       path = fetchurl {
         name = "supports_color___supports_color_7.2.0.tgz";
         url  = "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz";
-        sha1 = "1b7dcdcb32b8138801b3e478ba6a51caa89648da";
+        sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==";
       };
     }
     {
-      name = "table___table_6.7.1.tgz";
+      name = "table___table_5.4.6.tgz";
       path = fetchurl {
-        name = "table___table_6.7.1.tgz";
-        url  = "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz";
-        sha1 = "ee05592b7143831a8c94f3cee6aae4c1ccef33e2";
+        name = "table___table_5.4.6.tgz";
+        url  = "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz";
+        sha512 = "wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==";
       };
     }
     {
-      name = "tabtab___tabtab_2.2.2.tgz";
+      name = "tabtab___tabtab_3.0.2.tgz";
       path = fetchurl {
-        name = "tabtab___tabtab_2.2.2.tgz";
-        url  = "https://registry.yarnpkg.com/tabtab/-/tabtab-2.2.2.tgz";
-        sha1 = "7a047f143b010b4cbd31f857e82961512cbf4e14";
+        name = "tabtab___tabtab_3.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/tabtab/-/tabtab-3.0.2.tgz";
+        sha512 = "jANKmUe0sIQc/zTALTBy186PoM/k6aPrh3A7p6AaAfF6WPSbTx1JYeGIGH162btpH+mmVEXln+UxwViZHO2Jhg==";
       };
     }
     {
-      name = "terser___terser_4.8.0.tgz";
+      name = "terser___terser_5.14.1.tgz";
       path = fetchurl {
-        name = "terser___terser_4.8.0.tgz";
-        url  = "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz";
-        sha1 = "63056343d7c70bb29f3af665865a46fe03a0df17";
+        name = "terser___terser_5.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/terser/-/terser-5.14.1.tgz";
+        sha512 = "+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==";
+      };
+    }
+    {
+      name = "text_hex___text_hex_1.0.0.tgz";
+      path = fetchurl {
+        name = "text_hex___text_hex_1.0.0.tgz";
+        url  = "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz";
+        sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==";
       };
     }
     {
@@ -1670,7 +1678,7 @@
       path = fetchurl {
         name = "text_table___text_table_0.2.0.tgz";
         url  = "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz";
-        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+        sha512 = "N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==";
       };
     }
     {
@@ -1678,31 +1686,47 @@
       path = fetchurl {
         name = "through___through_2.3.8.tgz";
         url  = "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        sha512 = "w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==";
+      };
+    }
+    {
+      name = "tmp___tmp_0.0.33.tgz";
+      path = fetchurl {
+        name = "tmp___tmp_0.0.33.tgz";
+        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz";
+        sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
       };
     }
     {
-      name = "tinycolor___tinycolor_0.0.1.tgz";
+      name = "to_regex_range___to_regex_range_5.0.1.tgz";
       path = fetchurl {
-        name = "tinycolor___tinycolor_0.0.1.tgz";
-        url  = "https://registry.yarnpkg.com/tinycolor/-/tinycolor-0.0.1.tgz";
-        sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
+        name = "to_regex_range___to_regex_range_5.0.1.tgz";
+        url  = "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz";
+        sha512 = "65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==";
       };
     }
     {
-      name = "tmp___tmp_0.0.29.tgz";
+      name = "triple_beam___triple_beam_1.3.0.tgz";
       path = fetchurl {
-        name = "tmp___tmp_0.0.29.tgz";
-        url  = "https://registry.yarnpkg.com/tmp/-/tmp-0.0.29.tgz";
-        sha1 = "f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0";
+        name = "triple_beam___triple_beam_1.3.0.tgz";
+        url  = "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz";
+        sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==";
       };
     }
     {
-      name = "tslib___tslib_2.3.0.tgz";
+      name = "tslib___tslib_1.14.1.tgz";
       path = fetchurl {
-        name = "tslib___tslib_2.3.0.tgz";
-        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.3.0.tgz";
-        sha1 = "803b8cdab3e12ba581a4ca41c8839bbb0dacb09e";
+        name = "tslib___tslib_1.14.1.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz";
+        sha512 = "Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==";
+      };
+    }
+    {
+      name = "tslib___tslib_2.4.0.tgz";
+      path = fetchurl {
+        name = "tslib___tslib_2.4.0.tgz";
+        url  = "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz";
+        sha512 = "d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==";
       };
     }
     {
@@ -1710,7 +1734,7 @@
       path = fetchurl {
         name = "type_check___type_check_0.4.0.tgz";
         url  = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
-        sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+        sha512 = "XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==";
       };
     }
     {
@@ -1718,15 +1742,15 @@
       path = fetchurl {
         name = "type_fest___type_fest_0.20.2.tgz";
         url  = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz";
-        sha1 = "1bf207f4b28f91583666cb5fbd327887301cd5f4";
+        sha512 = "Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==";
       };
     }
     {
-      name = "typedarray___typedarray_0.0.6.tgz";
+      name = "untildify___untildify_3.0.3.tgz";
       path = fetchurl {
-        name = "typedarray___typedarray_0.0.6.tgz";
-        url  = "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+        name = "untildify___untildify_3.0.3.tgz";
+        url  = "https://registry.yarnpkg.com/untildify/-/untildify-3.0.3.tgz";
+        sha512 = "iSk/J8efr8uPT/Z4eSUywnqyrQU7DSdMfdqK4iWEaUVVmcP5JcnpRqmVMwcwcnmI1ATFNgC5V90u09tBynNFKA==";
       };
     }
     {
@@ -1734,7 +1758,7 @@
       path = fetchurl {
         name = "uri_js___uri_js_4.4.1.tgz";
         url  = "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz";
-        sha1 = "9b1a52595225859e55f669d928f88c6c57f2a77e";
+        sha512 = "7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==";
       };
     }
     {
@@ -1742,7 +1766,7 @@
       path = fetchurl {
         name = "util_deprecate___util_deprecate_1.0.2.tgz";
         url  = "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+        sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
       };
     }
     {
@@ -1750,7 +1774,7 @@
       path = fetchurl {
         name = "v8_compile_cache___v8_compile_cache_2.3.0.tgz";
         url  = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz";
-        sha1 = "2de19618c66dc247dcfb6f99338035d8245a2cee";
+        sha512 = "l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==";
       };
     }
     {
@@ -1758,7 +1782,7 @@
       path = fetchurl {
         name = "vinyl_sourcemaps_apply___vinyl_sourcemaps_apply_0.2.1.tgz";
         url  = "https://registry.yarnpkg.com/vinyl-sourcemaps-apply/-/vinyl-sourcemaps-apply-0.2.1.tgz";
-        sha1 = "ab6549d61d172c2b1b87be5c508d239c8ef87705";
+        sha512 = "+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==";
       };
     }
     {
@@ -1766,7 +1790,7 @@
       path = fetchurl {
         name = "vinyl___vinyl_2.2.1.tgz";
         url  = "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz";
-        sha1 = "23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974";
+        sha512 = "LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==";
       };
     }
     {
@@ -1774,7 +1798,7 @@
       path = fetchurl {
         name = "wasm2c___wasm2c_1.0.0.tgz";
         url  = "https://registry.yarnpkg.com/wasm2c/-/wasm2c-1.0.0.tgz";
-        sha1 = "761671e141c46b8a7c6c54429db1e6bfa3cd0ec0";
+        sha512 = "4SIESF2JNxrry6XFa/UQcsQibn+bxPkQ/oqixiXz2o8fsMl8J4vtvhH/evgbi8vZajAlaukuihEcQTWb9tVLUA==";
       };
     }
     {
@@ -1782,15 +1806,23 @@
       path = fetchurl {
         name = "which___which_2.0.2.tgz";
         url  = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
-        sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+        sha512 = "BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==";
       };
     }
     {
-      name = "winston___winston_2.4.5.tgz";
+      name = "winston_transport___winston_transport_4.5.0.tgz";
       path = fetchurl {
-        name = "winston___winston_2.4.5.tgz";
-        url  = "https://registry.yarnpkg.com/winston/-/winston-2.4.5.tgz";
-        sha1 = "f2e431d56154c4ea765545fc1003bd340c95b59a";
+        name = "winston_transport___winston_transport_4.5.0.tgz";
+        url  = "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz";
+        sha512 = "YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==";
+      };
+    }
+    {
+      name = "winston___winston_3.2.1.tgz";
+      path = fetchurl {
+        name = "winston___winston_3.2.1.tgz";
+        url  = "https://registry.yarnpkg.com/winston/-/winston-3.2.1.tgz";
+        sha512 = "zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==";
       };
     }
     {
@@ -1798,31 +1830,31 @@
       path = fetchurl {
         name = "word_wrap___word_wrap_1.2.3.tgz";
         url  = "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz";
-        sha1 = "610636f6b1f703891bd34771ccb17fb93b47079c";
+        sha512 = "Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==";
       };
     }
     {
-      name = "wrappy___wrappy_1.0.2.tgz";
+      name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
       path = fetchurl {
-        name = "wrappy___wrappy_1.0.2.tgz";
-        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+        name = "wrap_ansi___wrap_ansi_6.2.0.tgz";
+        url  = "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz";
+        sha512 = "r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==";
       };
     }
     {
-      name = "ws___ws_0.4.32.tgz";
+      name = "wrappy___wrappy_1.0.2.tgz";
       path = fetchurl {
-        name = "ws___ws_0.4.32.tgz";
-        url  = "https://registry.yarnpkg.com/ws/-/ws-0.4.32.tgz";
-        sha1 = "787a6154414f3c99ed83c5772153b20feb0cec32";
+        name = "wrappy___wrappy_1.0.2.tgz";
+        url  = "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz";
+        sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
       };
     }
     {
-      name = "yallist___yallist_4.0.0.tgz";
+      name = "ws___ws_8.8.0.tgz";
       path = fetchurl {
-        name = "yallist___yallist_4.0.0.tgz";
-        url  = "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz";
-        sha1 = "9bb92790d9c0effec63be73519e11a35019a3a72";
+        name = "ws___ws_8.8.0.tgz";
+        url  = "https://registry.yarnpkg.com/ws/-/ws-8.8.0.tgz";
+        sha512 = "JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==";
       };
     }
   ];
diff --git a/pkgs/development/compilers/fpc/binary.nix b/pkgs/development/compilers/fpc/binary.nix
index c7e3ec30b49f1..e7afa7c7698a5 100644
--- a/pkgs/development/compilers/fpc/binary.nix
+++ b/pkgs/development/compilers/fpc/binary.nix
@@ -2,23 +2,23 @@
 
 stdenv.mkDerivation rec {
   pname = "fpc-binary";
-  version = "3.2.0";
+  version = "3.2.2";
 
   src =
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchurl {
         url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.i386-linux.tar";
-        sha256 = "0y0510b2fbxbqz28967xx8b023k6q9fv5yclfrc1yc9mg8fyn411";
+        sha256 = "f62980ac0b2861221f79fdbff67836aa6912a4256d4192cfa4dfa0ac5b419958";
       }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
-        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}-x86_64-linux.tar";
-        sha256 = "0gfbwjvjqlx0562ayyl08khagslrws758al2yhbi4bz5rzk554ni";
+        url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.x86_64-linux.tar";
+        sha256 = "5adac308a5534b6a76446d8311fc340747cbb7edeaacfe6b651493ff3fe31e83";
       }
     else if stdenv.hostPlatform.system == "aarch64-linux" then
       fetchurl {
         url = "mirror://sourceforge/project/freepascal/Linux/${version}/fpc-${version}.aarch64-linux.tar";
-        sha256 = "1h481ngg3m8nlsg9mw7rr1bn2c4sj4wzqny9bxyq3xvcral12r71";
+        sha256 = "b39470f9b6b5b82f50fc8680a5da37d2834f2129c65c24c5628a80894d565451";
       }
     else throw "Not supported on ${stdenv.hostPlatform.system}.";
 
diff --git a/pkgs/development/compilers/fpc/default.nix b/pkgs/development/compilers/fpc/default.nix
index b2c09d8068267..2b14e48ba4b4b 100644
--- a/pkgs/development/compilers/fpc/default.nix
+++ b/pkgs/development/compilers/fpc/default.nix
@@ -3,12 +3,12 @@
 let startFPC = import ./binary.nix { inherit stdenv fetchurl; }; in
 
 stdenv.mkDerivation rec {
-  version = "3.2.0";
+  version = "3.2.2";
   pname = "fpc";
 
   src = fetchurl {
     url = "mirror://sourceforge/freepascal/fpcbuild-${version}.tar.gz";
-    sha256 = "0f38glyn3ffmqww432snhx2b8wyrq0yj1njkp4zh56lqrvm19fgr";
+    sha256 = "85ef993043bb83f999e2212f1bca766eb71f6f973d362e2290475dbaaf50161f";
   };
 
   buildInputs = [ startFPC gawk ];
diff --git a/pkgs/development/compilers/fpc/lazarus.nix b/pkgs/development/compilers/fpc/lazarus.nix
index 5ddaa7c429f28..54b81b80e994c 100644
--- a/pkgs/development/compilers/fpc/lazarus.nix
+++ b/pkgs/development/compilers/fpc/lazarus.nix
@@ -9,7 +9,7 @@
 #  1. the build date is embedded in the binary through `$I %DATE%` - we should dump that
 
 let
-  version = "2.0.12";
+  version = "2.2.2-0";
 
   # as of 2.0.10 a suffix is being added. That may or may not disappear and then
   # come back, so just leave this here.
@@ -30,7 +30,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/lazarus/Lazarus%20Zip%20_%20GZip/Lazarus%20${majorMinorPatch version}/lazarus-${version}.tar.gz";
-    sha256 = "sha256-umzvf4I6LSgWYimYLvySYDnUIxPEDiL+DGd2wT0AFbI=";
+    sha256 = "a9832004cffec8aca69de87290441d54772bf95d5d04372249d5a5491fb674c4";
   };
 
   postPatch = ''
diff --git a/pkgs/development/compilers/fpc/mark-paths.patch b/pkgs/development/compilers/fpc/mark-paths.patch
index 707c5352de7fd..145339fe41ceb 100644
--- a/pkgs/development/compilers/fpc/mark-paths.patch
+++ b/pkgs/development/compilers/fpc/mark-paths.patch
@@ -19,16 +19,16 @@ index a7398fb9..8e46fec0 100644
  {$else powerpc64}
        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/lib;=/usr/lib;=/usr/X11R6/lib',true);
  {$endif powerpc64}
-@@ -164,7 +164,7 @@ begin
-       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/i386-linux-gnu',true);
+@@ -165,7 +165,7 @@ begin
  {$endif i386}
  {$ifdef aarch64}
+       LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib64',true);
 -      LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/aarch64-linux-gnu',true);
 +      LibrarySearchPath.AddLibraryPath(sysrootpath,'=@syslibpath@',true);
  {$endif aarch64}
  {$ifdef powerpc}
        LibrarySearchPath.AddLibraryPath(sysrootpath,'=/usr/lib/powerpc-linux-gnu',true);
-@@ -185,53 +185,53 @@ begin
+@@ -186,53 +186,53 @@ begin
  end;
  
  {$ifdef m68k}
@@ -95,7 +95,7 @@ index a7398fb9..8e46fec0 100644
  {$endif sparc64}
  
  
-@@ -266,9 +266,9 @@ begin
+@@ -267,9 +267,9 @@ begin
        libctype:=uclibc;
      end
  {$ifdef i386}
diff --git a/pkgs/development/compilers/gcc/4.9/default.nix b/pkgs/development/compilers/gcc/4.9/default.nix
index b3d0f8d5d502e..571d0b023124c 100644
--- a/pkgs/development/compilers/gcc/4.9/default.nix
+++ b/pkgs/development/compilers/gcc/4.9/default.nix
@@ -154,7 +154,10 @@ stdenv.mkDerivation ({
 
   hardeningDisable = [ "format" "pie" ];
 
-  outputs = if langJava || langGo then ["out" "man" "info"]
+  # When targetting darwin, libgcc_ext.10.{4,5}.dylib are created as
+  # MH_DYLIB_STUB files, which install_name_tool can't change, so we
+  # get a cycle between $out and $lib.
+  outputs = if langJava || langGo || targetPlatform.isDarwin then ["out" "man" "info"]
     else [ "out" "lib" "man" "info" ];
   setOutputFlags = false;
   NIX_NO_SELF_RPATH = true;
@@ -328,7 +331,6 @@ stdenv.mkDerivation ({
     maintainers = with lib.maintainers; [ veprbl ];
 
     platforms = lib.platforms.unix;
-    badPlatforms = lib.platforms.darwin;
   };
 }
 
diff --git a/pkgs/development/compilers/gcc/9/default.nix b/pkgs/development/compilers/gcc/9/default.nix
index 2ecfa1bb1cf08..30ae18e49173f 100644
--- a/pkgs/development/compilers/gcc/9/default.nix
+++ b/pkgs/development/compilers/gcc/9/default.nix
@@ -58,22 +58,12 @@ with lib;
 with builtins;
 
 let majorVersion = "9";
-    /*
-      If you update, please build on aarch64-linux
-      and check braces adjacent to `cplusplus` lines in file
-      ./result/lib/gcc/aarch64-unknown-linux-gnu/9.*.0/include/arm_acle.h
-    */
-    version = "${majorVersion}.3.0";
+    version = "${majorVersion}.5.0";
 
     inherit (stdenv) buildPlatform hostPlatform targetPlatform;
 
     patches =
-      # Fix ICE: Max. number of generated reload insns per insn is achieved (90)
-      #
-      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=96796
-      #
-      # This patch can most likely be removed by a post 9.3.0-release.
-      [ ./avoid-cycling-subreg-reloads.patch ./gcc9-asan-glibc-2.34.patch ]
+      [ ]
       ++ optional (targetPlatform != hostPlatform) ../libstdc++-target.patch
       ++ optional targetPlatform.isNetBSD ../libstdc++-netbsd-ctypes.patch
       ++ optional noSysDirs ../no-sys-dirs.patch
@@ -83,19 +73,13 @@ let majorVersion = "9";
         sha256 = ""; # TODO: uncomment and check hash when available.
       }) */
       ++ optional langAda ../gnat-cflags.patch
-      ++ optional langAda (fetchpatch {
-        name = "gnat-glibc-234.diff";
-        url = "https://github.com/gcc-mirror/gcc/commit/331763de7d4850702a0f67298f36017c73cdb103.diff";
-        sha256 = "eS4B7vJasnv2N+5v5yB8/iDpKPX8CJDAy2xabWWj+aU=";
-      })
       ++ optional langD ../libphobos.patch
       ++ optional langFortran ../gfortran-driving.patch
       ++ optional (targetPlatform.libc == "musl" && targetPlatform.isPower) ../ppc-musl.patch
 
       # Obtain latest patch with ../update-mcfgthread-patches.sh
       ++ optional (!crossStageStatic && targetPlatform.isMinGW) ./Added-mcf-thread-model-support-from-mcfgthread.patch
-
-      ++ [ ../libsanitizer-no-cyclades-9.patch ];
+      ;
 
     /* Cross-gcc settings (build == host != target) */
     crossMingw = targetPlatform != hostPlatform && targetPlatform.libc == "msvcrt";
@@ -112,7 +96,7 @@ stdenv.mkDerivation ({
 
   src = fetchurl {
     url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.xz";
-    sha256 = "1la2yy27ziasyf0jvzk58y1i5b5bq2h176qil550bxhifs39gqbi";
+    sha256 = "13ygjmd938m0wmy946pxdhz9i1wq7z4w10l6pvidak0xxxj9yxi7";
   };
 
   inherit patches;
diff --git a/pkgs/development/compilers/gcc/common/pre-configure.nix b/pkgs/development/compilers/gcc/common/pre-configure.nix
index d9977e0ba2f9e..310e7f8b574bd 100644
--- a/pkgs/development/compilers/gcc/common/pre-configure.nix
+++ b/pkgs/development/compilers/gcc/common/pre-configure.nix
@@ -6,14 +6,16 @@
 , langGo }:
 
 assert langJava -> lib.versionOlder version "7";
-assert langAda -> gnatboot != null;
-
-lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
+assert langAda -> gnatboot != null; let
+  needsLib
+    =  (lib.versionOlder version "7" && (langJava || langGo))
+    || (lib.versions.major version == "4" && lib.versions.minor version == "9" && targetPlatform.isDarwin);
+in lib.optionalString (hostPlatform.isSunOS && hostPlatform.is64bit) ''
   export NIX_LDFLAGS=`echo $NIX_LDFLAGS | sed -e s~$prefix/lib~$prefix/lib/amd64~g`
   export LDFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $LDFLAGS_FOR_TARGET"
   export CXXFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CXXFLAGS_FOR_TARGET"
   export CFLAGS_FOR_TARGET="-Wl,-rpath,$prefix/lib/amd64 $CFLAGS_FOR_TARGET"
-'' + lib.optionalString (lib.versionOlder version "7" && (langJava || langGo)) ''
+'' + lib.optionalString needsLib ''
   export lib=$out;
 '' + lib.optionalString langAda ''
   export PATH=${gnatboot}/bin:$PATH
diff --git a/pkgs/development/compilers/ghc/8.10.7.nix b/pkgs/development/compilers/ghc/8.10.7.nix
index 981dfee88b863..e2cd496640f1a 100644
--- a/pkgs/development/compilers/ghc/8.10.7.nix
+++ b/pkgs/development/compilers/ghc/8.10.7.nix
@@ -96,6 +96,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     INTEGER_LIBRARY = ${if enableIntegerSimple then "integer-simple" else "integer-gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/ghc/9.0.2.nix b/pkgs/development/compilers/ghc/9.0.2.nix
index 7b3f213ed333b..b998176af9749 100644
--- a/pkgs/development/compilers/ghc/9.0.2.nix
+++ b/pkgs/development/compilers/ghc/9.0.2.nix
@@ -99,6 +99,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/ghc/9.2.2-binary.nix b/pkgs/development/compilers/ghc/9.2.2-binary.nix
new file mode 100644
index 0000000000000..53b56b0447963
--- /dev/null
+++ b/pkgs/development/compilers/ghc/9.2.2-binary.nix
@@ -0,0 +1,448 @@
+{ lib, stdenv
+, fetchurl, perl, gcc
+, ncurses5
+, ncurses6, gmp, libiconv, numactl, libffi
+, llvmPackages
+, coreutils
+, targetPackages
+
+  # minimal = true; will remove files that aren't strictly necessary for
+  # regular builds and GHC bootstrapping.
+  # This is "useful" for staying within hydra's output limits for at least the
+  # aarch64-linux architecture.
+, minimal ? false
+}:
+
+# Prebuilt only does native
+assert stdenv.targetPlatform == stdenv.hostPlatform;
+
+let
+  downloadsUrl = "https://downloads.haskell.org/ghc";
+
+  # Copy sha256 from https://downloads.haskell.org/~ghc/9.2.2/SHA256SUMS
+  version = "9.2.2";
+
+  # Information about available bindists that we use in the build.
+  #
+  # # Bindist library checking
+  #
+  # The field `archSpecificLibraries` also provides a way for us get notified
+  # early when the upstream bindist changes its dependencies (e.g. because a
+  # newer Debian version is used that uses a new `ncurses` version).
+  #
+  # Usage:
+  #
+  # * You can find the `fileToCheckFor` of libraries by running `readelf -d`
+  #   on the compiler binary (`exePathForLibraryCheck`).
+  # * To skip library checking for an architecture,
+  #   set `exePathForLibraryCheck = null`.
+  # * To skip file checking for a specific arch specfic library,
+  #   set `fileToCheckFor = null`.
+  ghcBinDists = {
+    # Binary distributions for the default libc (e.g. glibc, or libSystem on Darwin)
+    # nixpkgs uses for the respective system.
+    defaultLibc = {
+      i686-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-i386-deb9-linux.tar.xz";
+          sha256 = "24234486ed4508161c6f88f4750a36d38b135b0c6e5fe78efe2d85c612ecaf9e";
+        };
+        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          # The i686-linux bindist provided by GHC HQ is currently built on Debian 9,
+          # which link it against `libtinfo.so.5` (ncurses 5).
+          # Other bindists are linked `libtinfo.so.6` (ncurses 6).
+          { nixPackage = ncurses5; fileToCheckFor = "libtinfo.so.5"; }
+        ];
+      };
+      x86_64-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-deb10-linux.tar.xz";
+          sha256 = "fb61dea556a2023dc2d50ee61a22144bb23e4229a378e533065124c218f40cfc";
+        };
+        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
+        ];
+      };
+      armv7l-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-armv7-deb10-linux.tar.xz";
+          sha256 = "ce5a7c3beb19d8c13a9e60bd39d3ba8ef0060b954ea42eb23f1ef8d077fa9e8b";
+        };
+        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
+        ];
+      };
+      aarch64-linux = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-deb10-linux.tar.xz";
+          sha256 = "f3621ccba7ae48fcd67a9505f61bb5ccfb05c4cbfecd5a6ea65fe3f150af0e98";
+        };
+        exePathForLibraryCheck = "ghc/stage2/build/tmp/ghc-stage2";
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = "libtinfo.so.6"; }
+          { nixPackage = numactl; fileToCheckFor = null; }
+        ];
+      };
+      x86_64-darwin = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-apple-darwin.tar.xz";
+          sha256 = "934abbd6083d3aeb5ff081955682d7711d9e79db57b1613eb229c325dd06f83f";
+        };
+        exePathForLibraryCheck = null; # we don't have a library check for darwin yet
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = null; }
+          { nixPackage = libiconv; fileToCheckFor = null; }
+        ];
+      };
+      aarch64-darwin = {
+        variantSuffix = "";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-aarch64-apple-darwin.tar.xz";
+          sha256 = "d1f04f7cc062ed134f863305c67dfe2c42df46ed658dd34f9dd552186f194e5c";
+        };
+        exePathForLibraryCheck = null; # we don't have a library check for darwin yet
+        archSpecificLibraries = [
+          { nixPackage = gmp; fileToCheckFor = null; }
+          { nixPackage = ncurses6; fileToCheckFor = null; }
+          { nixPackage = libiconv; fileToCheckFor = null; }
+        ];
+      };
+    };
+    # Binary distributions for the musl libc for the respective system.
+    musl = {
+      x86_64-linux = {
+        variantSuffix = "-musl";
+        src = {
+          url = "${downloadsUrl}/${version}/ghc-${version}-x86_64-alpine3.12-linux-gmp.tar.xz";
+          sha256 = "624523826e24eae33c03490267cddecc1d80c047f2a3f4b03580f1040112d5c0";
+        };
+        isStatic = true;
+        # We can't check the RPATH for statically linked executable
+        exePathForLibraryCheck = null;
+        archSpecificLibraries = [
+          { nixPackage = gmp.override { withStatic = true; }; fileToCheckFor = null; }
+        ];
+      };
+    };
+  };
+
+  distSetName = if stdenv.hostPlatform.isMusl then "musl" else "defaultLibc";
+
+  binDistUsed = ghcBinDists.${distSetName}.${stdenv.hostPlatform.system}
+    or (throw "cannot bootstrap GHC on this platform ('${stdenv.hostPlatform.system}' with libc '${distSetName}')");
+
+  gmpUsed = (builtins.head (
+    builtins.filter (
+      drv: lib.hasPrefix "gmp" (drv.nixPackage.name or "")
+    ) binDistUsed.archSpecificLibraries
+  )).nixPackage;
+
+  # GHC has other native backends (like PowerPC), but here only the ones
+  # we ship bindists for matter.
+  useLLVM = !(stdenv.targetPlatform.isx86
+    || (stdenv.targetPlatform.isAarch64 && stdenv.targetPlatform.isDarwin));
+
+  libPath =
+    lib.makeLibraryPath (
+      # Add arch-specific libraries.
+      map ({ nixPackage, ... }: nixPackage) binDistUsed.archSpecificLibraries
+    );
+
+  libEnvVar = lib.optionalString stdenv.hostPlatform.isDarwin "DY"
+    + "LD_LIBRARY_PATH";
+
+  runtimeDeps = [
+    targetPackages.stdenv.cc
+    targetPackages.stdenv.cc.bintools
+    coreutils # for cat
+  ]
+  ++ lib.optionals useLLVM [
+    (lib.getBin llvmPackages.llvm)
+  ]
+  # On darwin, we need unwrapped bintools as well (for otool)
+  ++ lib.optionals (stdenv.targetPlatform.linker == "cctools") [
+    targetPackages.stdenv.cc.bintools.bintools
+  ];
+
+in
+
+stdenv.mkDerivation rec {
+  inherit version;
+  pname = "ghc-binary${binDistUsed.variantSuffix}";
+
+  src = fetchurl binDistUsed.src;
+
+  nativeBuildInputs = [ perl ];
+
+  # Set LD_LIBRARY_PATH or equivalent so that the programs running as part
+  # of the bindist installer can find the libraries they expect.
+  # Cannot patchelf beforehand due to relative RPATHs that anticipate
+  # the final install location.
+  ${libEnvVar} = libPath;
+
+  postUnpack =
+    # Verify our assumptions of which `libtinfo.so` (ncurses) version is used,
+    # so that we know when ghc bindists upgrade that and we need to update the
+    # version used in `libPath`.
+    lib.optionalString
+      (binDistUsed.exePathForLibraryCheck != null)
+      # Note the `*` glob because some GHCs have a suffix when unpacked, e.g.
+      # the musl bindist has dir `ghc-VERSION-x86_64-unknown-linux/`.
+      # As a result, don't shell-quote this glob when splicing the string.
+      (let buildExeGlob = ''ghc-${version}*/"${binDistUsed.exePathForLibraryCheck}"''; in
+        lib.concatStringsSep "\n" [
+          (''
+            echo "Checking that ghc binary exists in bindist at ${buildExeGlob}"
+            if ! test -e ${buildExeGlob}; then
+              echo >&2 "GHC binary ${binDistUsed.exePathForLibraryCheck} could not be found in the bindist build directory (at ${buildExeGlob}) for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+            fi
+          '')
+          (lib.concatMapStringsSep
+            "\n"
+            ({ fileToCheckFor, nixPackage }:
+              lib.optionalString (fileToCheckFor != null) ''
+                echo "Checking bindist for ${fileToCheckFor} to ensure that is still used"
+                if ! readelf -d ${buildExeGlob} | grep "${fileToCheckFor}"; then
+                  echo >&2 "File ${fileToCheckFor} could not be found in ${binDistUsed.exePathForLibraryCheck} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+                fi
+
+                echo "Checking that the nix package ${nixPackage} contains ${fileToCheckFor}"
+                if ! test -e "${lib.getLib nixPackage}/lib/${fileToCheckFor}"; then
+                  echo >&2 "Nix package ${nixPackage} did not contain ${fileToCheckFor} for arch ${stdenv.hostPlatform.system}, please check that ghcBinDists correctly reflect the bindist dependencies!"; exit 1;
+                fi
+              ''
+            )
+            binDistUsed.archSpecificLibraries
+          )
+        ])
+    # GHC has dtrace probes, which causes ld to try to open /usr/lib/libdtrace.dylib
+    # during linking
+    + lib.optionalString stdenv.isDarwin ''
+      export NIX_LDFLAGS+=" -no_dtrace_dof"
+      # not enough room in the object files for the full path to libiconv :(
+      for exe in $(find . -type f -executable); do
+        isScript $exe && continue
+        ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+        install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+      done
+    '' +
+
+    # Some scripts used during the build need to have their shebangs patched
+    ''
+      patchShebangs ghc-${version}/utils/
+      patchShebangs ghc-${version}/configure
+    '' +
+    # We have to patch the GMP paths for the integer-gmp package.
+    ''
+      find . -name ghc-bignum.buildinfo \
+          -exec sed -i "s@extra-lib-dirs: @extra-lib-dirs: ${lib.getLib gmpUsed}/lib@" {} \;
+
+      # we need to modify the package db directly for hadrian bindists
+      find . -name 'ghc-bignum*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib gmpUsed}/lib' -i {} \;
+    '' + lib.optionalString stdenv.isDarwin ''
+      # we need to modify the package db directly for hadrian bindists
+      # (all darwin bindists are hadrian-based for 9.2.2)
+      find . -name 'base*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib libiconv}/lib' -i {} \;
+
+      # To link RTS in the end we also need libffi now
+      find . -name 'rts*.conf' \
+          -exec sed -e '/^[a-z-]*library-dirs/a \    ${lib.getLib libffi}/lib' \
+                    -e 's@/Library/Developer/.*/usr/include/ffi@${lib.getDev libffi}/include@' \
+                    -i {} \;
+    '' +
+    # aarch64 does HAVE_NUMA so -lnuma requires it in library-dirs in rts/package.conf.in
+    # FFI_LIB_DIR is a good indication of places it must be needed.
+    lib.optionalString (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) ''
+      find . -name package.conf.in \
+          -exec sed -i "s@FFI_LIB_DIR@FFI_LIB_DIR ${numactl.out}/lib@g" {} \;
+    '' +
+    # Rename needed libraries and binaries, fix interpreter
+    lib.optionalString stdenv.isLinux ''
+      find . -type f -executable -exec patchelf \
+          --interpreter ${stdenv.cc.bintools.dynamicLinker} {} \;
+    '' +
+    # The hadrian install Makefile uses 'xxx' as a temporary placeholder in path
+    # substitution. Which can break the build if the store path / prefix happens
+    # to contain this string. This will be fixed with 9.2.3 bindists.
+    # https://gitlab.haskell.org/ghc/ghc/-/issues/21402
+    ''
+      # Detect hadrian Makefile by checking for the target that has the problem
+      if grep '^update_package_db' ghc-${version}*/Makefile > /dev/null; then
+        echo Hadrian bindist, applying workaround for xxx path substitution.
+        # based on https://gitlab.haskell.org/ghc/ghc/-/commit/dd5fecb0e2990b192d92f4dfd7519ecb33164fad.patch
+        substituteInPlace ghc-${version}*/Makefile --replace 'xxx' '\0xxx\0'
+      else
+        echo Not a hadrian bindist, not applying xxx path workaround.
+      fi
+    '';
+
+  # fix for `configure: error: Your linker is affected by binutils #16177`
+  preConfigure = lib.optionalString
+    stdenv.targetPlatform.isAarch32
+    "LD=ld.gold";
+
+  configurePlatforms = [ ];
+  configureFlags = [
+    "--with-gmp-includes=${lib.getDev gmpUsed}/include"
+    # Note `--with-gmp-libraries` does nothing for GHC bindists:
+    # https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6124
+  ] ++ lib.optional stdenv.isDarwin "--with-gcc=${./gcc-clang-wrapper.sh}"
+    # From: https://github.com/NixOS/nixpkgs/pull/43369/commits
+    ++ lib.optional stdenv.hostPlatform.isMusl "--disable-ld-override";
+
+  # No building is necessary, but calling make without flags ironically
+  # calls install-strip ...
+  dontBuild = true;
+
+  # Patch scripts to include runtime dependencies in $PATH.
+  postInstall = ''
+    for i in "$out/bin/"*; do
+      test ! -h "$i" || continue
+      isScript "$i" || continue
+      sed -i -e '2i export PATH="${lib.makeBinPath runtimeDeps}:$PATH"' "$i"
+    done
+  '';
+
+  # Apparently necessary for the ghc Alpine (musl) bindist:
+  # When we strip, and then run the
+  #     patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
+  # below, running ghc (e.g. during `installCheckPhase)` gives some apparently
+  # corrupted rpath or whatever makes the loader work on nonsensical strings:
+  #     running install tests
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: : symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: ir6zf6c9f86pfx8sr30n2vjy-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: y/lib/ghc-8.10.5/bin/../lib/x86_64-linux-ghc-8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 8.10.5/libHStemplate-haskell-2.16.0.0-ghc8.10.5.so: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: �?: symbol not found
+  #     Error relocating /nix/store/...-ghc-8.10.2-binary/lib/ghc-8.10.5/bin/ghc: 64-linux-ghc-8.10.5/libHSexceptions-0.10.4-ghc8.10.5.so: symbol not found
+  # This is extremely bogus and should be investigated.
+  dontStrip = if stdenv.hostPlatform.isMusl then true else false; # `if` for explicitness
+
+  # On Linux, use patchelf to modify the executables so that they can
+  # find editline/gmp.
+  postFixup = lib.optionalString (stdenv.isLinux && !(binDistUsed.isStatic or false))
+    (if stdenv.hostPlatform.isAarch64 then
+      # Keep rpath as small as possible on aarch64 for patchelf#244.  All Elfs
+      # are 2 directories deep from $out/lib, so pooling symlinks there makes
+      # a short rpath.
+      ''
+      (cd $out/lib; ln -s ${ncurses6.out}/lib/libtinfo.so.6)
+      (cd $out/lib; ln -s ${lib.getLib gmpUsed}/lib/libgmp.so.10)
+      (cd $out/lib; ln -s ${numactl.out}/lib/libnuma.so.1)
+      for p in $(find "$out/lib" -type f -name "*\.so*"); do
+        (cd $out/lib; ln -s $p)
+      done
+
+      for p in $(find "$out/lib" -type f -executable); do
+        if isELF "$p"; then
+          echo "Patchelfing $p"
+          patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." $p
+        fi
+      done
+      ''
+    else
+      ''
+      for p in $(find "$out" -type f -executable); do
+        if isELF "$p"; then
+          echo "Patchelfing $p"
+          patchelf --set-rpath "${libPath}:$(patchelf --print-rpath $p)" $p
+        fi
+      done
+    '') + lib.optionalString stdenv.isDarwin ''
+    # not enough room in the object files for the full path to libiconv :(
+    for exe in $(find "$out" -type f -executable); do
+      isScript $exe && continue
+      ln -fs ${libiconv}/lib/libiconv.dylib $(dirname $exe)/libiconv.dylib
+      install_name_tool -change /usr/lib/libiconv.2.dylib @executable_path/libiconv.dylib -change /usr/local/lib/gcc/6/libgcc_s.1.dylib ${gcc.cc.lib}/lib/libgcc_s.1.dylib $exe
+    done
+
+    for file in $(find "$out" -name setup-config); do
+      substituteInPlace $file --replace /usr/bin/ranlib "$(type -P ranlib)"
+    done
+  '' +
+  lib.optionalString minimal ''
+    # Remove profiling files
+    find $out -type f -name '*.p_o' -delete
+    find $out -type f -name '*.p_hi' -delete
+    find $out -type f -name '*_p.a' -delete
+    # `-f` because e.g. musl bindist does not have this file.
+    rm -f $out/lib/ghc-*/bin/ghc-iserv-prof
+    # Hydra will redistribute this derivation, so we have to keep the docs for
+    # legal reasons (retaining the legal notices etc)
+    # As a last resort we could unpack the docs separately and symlink them in.
+    # They're in $out/share/{doc,man}.
+  ''
+  # Recache package db which needs to happen for Hadrian bindists
+  # where we modify the package db before installing
+  + ''
+    "$out/bin/ghc-pkg" --package-db="$out/lib/"ghc-*/package.conf.d recache
+  '';
+
+  # In nixpkgs, musl based builds currently enable `pie` hardening by default
+  # (see `defaultHardeningFlags` in `make-derivation.nix`).
+  # But GHC cannot currently produce outputs that are ready for `-pie` linking.
+  # Thus, disable `pie` hardening, otherwise `recompile with -fPIE` errors appear.
+  # See:
+  # * https://github.com/NixOS/nixpkgs/issues/129247
+  # * https://gitlab.haskell.org/ghc/ghc/-/issues/19580
+  hardeningDisable = lib.optional stdenv.targetPlatform.isMusl "pie";
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    # Sanity check, can ghc create executables?
+    cd $TMP
+    mkdir test-ghc; cd test-ghc
+    cat > main.hs << EOF
+      {-# LANGUAGE TemplateHaskell #-}
+      module Main where
+      main = putStrLn \$([|"yes"|])
+    EOF
+    env -i $out/bin/ghc --make main.hs || exit 1
+    echo compilation ok
+    [ $(./main) == "yes" ]
+  '';
+
+  passthru = {
+    targetPrefix = "";
+    enableShared = true;
+
+    inherit llvmPackages;
+
+    # Our Cabal compiler name
+    haskellCompilerName = "ghc-${version}";
+  };
+
+  meta = rec {
+    homepage = "http://haskell.org/ghc";
+    description = "The 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
+    # in order to avoid eval errors with musl which supports less
+    # platforms than the default libcs (i. e. glibc / libSystem).
+    # This is done for the benefit of Hydra, so `packagePlatforms`
+    # won't return any platforms that would cause an evaluation
+    # failure for `pkgsMusl.haskell.compiler.ghc922Binary`, as
+    # long as the evaluator runs on a platform that supports
+    # `pkgsMusl`.
+    platforms = builtins.attrNames ghcBinDists.${distSetName};
+    hydraPlatforms = builtins.filter (p: minimal || p != "aarch64-linux") platforms;
+    maintainers = lib.teams.haskell.members;
+  };
+}
diff --git a/pkgs/development/compilers/ghc/9.2.3.nix b/pkgs/development/compilers/ghc/9.2.3.nix
index 016b7df90ce13..7803a50525590 100644
--- a/pkgs/development/compilers/ghc/9.2.3.nix
+++ b/pkgs/development/compilers/ghc/9.2.3.nix
@@ -101,6 +101,9 @@ let
   # build the haddock program (removing the `enableHaddockProgram` option).
   ''
     HADDOCK_DOCS = ${if enableHaddockProgram then "YES" else "NO"}
+    # Build haddocks for boot packages with hyperlinking
+    EXTRA_HADDOCK_OPTS += --hyperlinked-source --quickjump
+
     DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"}
     BIGNUM_BACKEND = ${if enableNativeBignum then "native" else "gmp"}
   '' + lib.optionalString (targetPlatform != hostPlatform) ''
diff --git a/pkgs/development/compilers/ghcjs/ghcjs-base.nix b/pkgs/development/compilers/ghcjs/ghcjs-base.nix
index b0c604a4aeac4..9c09412b027e9 100644
--- a/pkgs/development/compilers/ghcjs/ghcjs-base.nix
+++ b/pkgs/development/compilers/ghcjs/ghcjs-base.nix
@@ -8,12 +8,14 @@
 }:
 mkDerivation {
   pname = "ghcjs-base";
-  version = "0.2.0.3";
+  version = "0.2.1.0";
+  # This is the release 0.2.1.0, but the hackage release misses test source files,
+  # so lets use github https://github.com/ghcjs/ghcjs-base/issues/132
   src = fetchFromGitHub {
     owner = "ghcjs";
     repo = "ghcjs-base";
-    rev = "85e31beab9beffc3ea91b954b61a5d04e708b8f2";
-    sha256 = "sha256-YDOfi/WZz/602OtbY8wL5jX3X+9oiGL1WhceCraczZU=";
+    rev = "fbaae59b05b020e91783df122249095e168df53f";
+    sha256 = "sha256-x6eCAK1Hne0QkV3Loi9YpxbleNHU593E4AO8cbk2vUc=";
   };
   libraryHaskellDepends = [
     aeson attoparsec base binary bytestring containers deepseq dlist
diff --git a/pkgs/development/compilers/go/1.17.nix b/pkgs/development/compilers/go/1.17.nix
index a2c0d3d16b91f..94d3472ca69e4 100644
--- a/pkgs/development/compilers/go/1.17.nix
+++ b/pkgs/development/compilers/go/1.17.nix
@@ -60,11 +60,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.17.10";
+  version = "1.17.11";
 
   src = fetchurl {
     url = "https://dl.google.com/go/go${version}.src.tar.gz";
-    sha256 = "sha256-KZ5VrzDxVpGwFdjc+OyuckEkElaeWy7OIDYXU6RW8vk=";
+    sha256 = "sha256-rCZJpllExqWr5VBUAA7uPXcZaIDaNqNVX2LgZUDo61Q=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/go/1.18.nix b/pkgs/development/compilers/go/1.18.nix
index 6f6e690e35452..f5659dd92b774 100644
--- a/pkgs/development/compilers/go/1.18.nix
+++ b/pkgs/development/compilers/go/1.18.nix
@@ -60,11 +60,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "go";
-  version = "1.18.2";
+  version = "1.18.3";
 
   src = fetchurl {
     url = "https://go.dev/dl/go${version}.src.tar.gz";
-    sha256 = "sha256-LETQPqLDQJITerkZumAvLCYaA40I60aFKKPzoo5WZ+I=";
+    sha256 = "sha256-ABI4bdy7XzNQ5AfGeZI4EdvSg/zcQhckkxYUqELsvC0=";
   };
 
   strictDeps = true;
diff --git a/pkgs/development/compilers/go/go-1.9-skip-flaky-20072.patch b/pkgs/development/compilers/go/go-1.9-skip-flaky-20072.patch
deleted file mode 100644
index 13db40ababc36..0000000000000
--- a/pkgs/development/compilers/go/go-1.9-skip-flaky-20072.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/src/sync/waitgroup_test.go b/src/sync/waitgroup_test.go
-index e3e3096..f80d1e2 100644
---- a/src/sync/waitgroup_test.go
-+++ b/src/sync/waitgroup_test.go
-@@ -6,6 +6,7 @@ package sync_test
- 
- import (
- 	"internal/race"
-+	"internal/testenv"
- 	"runtime"
- 	. "sync"
- 	"sync/atomic"
-@@ -73,6 +74,7 @@ func TestWaitGroupMisuse2(t *testing.T) {
- 	if runtime.NumCPU() <= 4 {
- 		t.Skip("NumCPU<=4, skipping: this test requires parallelism")
- 	}
-+	testenv.SkipFlaky(t, 20072)
- 	defer func() {
- 		err := recover()
- 		if err != "sync: negative WaitGroup counter" &&
diff --git a/pkgs/development/compilers/hare/disable-failing-test-cases.patch b/pkgs/development/compilers/hare/disable-failing-test-cases.patch
new file mode 100644
index 0000000000000..4f8ba6056046d
--- /dev/null
+++ b/pkgs/development/compilers/hare/disable-failing-test-cases.patch
@@ -0,0 +1,37 @@
+diff --git a/math/complex/+test.ha b/math/complex/+test.ha
+index a1cc0916..705a0a41 100644
+--- a/math/complex/+test.ha
++++ b/math/complex/+test.ha
+@@ -567,8 +567,8 @@ const TEST_COSSC: [](c128, c128) = [
+ 		(math::INF, math::NAN)), // real sign unspecified
+ 	((math::INF, math::NAN),
+ 		(math::NAN, math::NAN)),
+-	((math::NAN, 0f64),
+-		(math::NAN, -0f64)), // imaginary sign unspecified
++//	((math::NAN, 0f64),
++//		(math::NAN, -0f64)), // imaginary sign unspecified
+ 	((math::NAN, 1f64),
+ 		(math::NAN, math::NAN)),
+ 	((math::NAN, math::INF),
+@@ -583,8 +583,8 @@ const TEST_COSHSC: [](c128, c128) = [
+ 		(1f64, 0f64)),
+ 	((0f64, math::INF),
+ 		(math::NAN, 0f64)), // imaginary sign unspecified
+-	((0f64, math::NAN),
+-		(math::NAN, 0f64)), // imaginary sign unspecified
++//	((0f64, math::NAN),
++//		(math::NAN, 0f64)), // imaginary sign unspecified
+ 	((1f64, math::INF),
+ 		(math::NAN, math::NAN)),
+ 	((1f64, math::NAN),
+@@ -627,8 +627,8 @@ const TEST_EXPSC: [](c128, c128) = [
+ 		(0f64, 0f64)), // real and imaginary sign unspecified
+ 	((math::INF, math::INF),
+ 		(math::INF, math::NAN)), // real sign unspecified
+-	((-math::INF, math::NAN),
+-		(0f64, 0f64)), // real and imaginary sign unspecified
++//	((-math::INF, math::NAN),
++//		(0f64, 0f64)), // real and imaginary sign unspecified
+ 	((math::INF, math::NAN),
+ 		(math::INF, math::NAN)), // real sign unspecified
+ 	((math::NAN, 0f64),
diff --git a/pkgs/development/compilers/hare/hare.nix b/pkgs/development/compilers/hare/hare.nix
index f5c0cd8e405f5..e24fc68ab4228 100644
--- a/pkgs/development/compilers/hare/hare.nix
+++ b/pkgs/development/compilers/hare/hare.nix
@@ -11,16 +11,18 @@
 
 stdenv.mkDerivation rec {
   pname = "hare";
-  version = "0.pre+date=2022-04-27";
+  version = "unstable-2022-06-18";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
-    rev = "1bfb2e6dee850c675a8831b41420800d3c62c2a0";
-    hash = "sha256-1b7U5u3PM3jmnH/OnY9O++GTPyVOdFkJ0fwJBoDZgSU=";
+    rev = "ac9b2c35c09d555e09dbd81c5ed95bdfa14313ba";
+    hash = "sha256-eeS14LGkbi9IamvKzK+HF0Rvk9NFp4QVYcrHwNSNBx4=";
   };
 
+  patches = [ ./disable-failing-test-cases.patch ];
+
   nativeBuildInputs = [
     binutils-unwrapped
     harec
@@ -35,6 +37,7 @@ stdenv.mkDerivation rec {
     qbe
   ];
 
+  setupHook = ./setup-hook.sh;
   strictDeps = true;
 
   configurePhase =
@@ -59,6 +62,7 @@ stdenv.mkDerivation rec {
         runHook preConfigure
 
         export HARECACHE="$NIX_BUILD_TOP/.harecache"
+        export BINOUT="$NIX_BUILD_TOP/.bin"
         cat ${config-file} > config.mk
 
         runHook postConfigure
diff --git a/pkgs/development/compilers/hare/harec.nix b/pkgs/development/compilers/hare/harec.nix
index a3ad53350b094..4c77a77bd0d1a 100644
--- a/pkgs/development/compilers/hare/harec.nix
+++ b/pkgs/development/compilers/hare/harec.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "harec";
-  version = "0.pre+date=2022-04-26";
+  version = "unstable-2022-06-20";
 
   src = fetchFromSourcehut {
     name = pname + "-src";
     owner = "~sircmpwn";
     repo = pname;
-    rev = "e5fb5176ba629e98ace5fcb3aa427b2c25d8fdf0";
-    hash = "sha256-sqt3q6sarzrpyJ/1QYM1WTukrZpflAmAYq6pQwAwe18=";
+    rev = "2eccbc4b959a590dda91143c8487edda841106d9";
+    hash = "sha256-pwy7cNxAqIbhx9kpcjfgk7sCEns9oA6zhKSQJdHLZCM=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/compilers/hare/setup-hook.sh b/pkgs/development/compilers/hare/setup-hook.sh
new file mode 100644
index 0000000000000..999b91df122fa
--- /dev/null
+++ b/pkgs/development/compilers/hare/setup-hook.sh
@@ -0,0 +1,11 @@
+export HARECACHE="$NIX_BUILD_TOP/.harecache"
+
+addHarepath () {
+    for haredir in third-party stdlib; do
+        if [[ -d "$1/src/hare/$haredir" ]]; then
+            addToSearchPath HAREPATH "$1/src/hare/$haredir"
+        fi
+    done
+}
+
+addEnvHooks "$hostOffset" addHarepath
diff --git a/pkgs/development/compilers/inklecate/deps-darwin.nix b/pkgs/development/compilers/inklecate/deps-darwin.nix
index 689a54034535a..0d6f9f5afa5fc 100644
--- a/pkgs/development/compilers/inklecate/deps-darwin.nix
+++ b/pkgs/development/compilers/inklecate/deps-darwin.nix
@@ -1,6 +1,6 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.25"; sha256 = "1b4wphq3ipah78a4ifrkslqsb76d34xnq6z3zcr41py0y76synyi"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.26"; sha256 = "1vk4dr2z72nmjg2skqvy2m2h5brqp21v51pnd7ldpm7asgr5ck8n"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
diff --git a/pkgs/development/compilers/inklecate/deps-linux.nix b/pkgs/development/compilers/inklecate/deps-linux.nix
index 32356f0dabc56..9252dc6061841 100644
--- a/pkgs/development/compilers/inklecate/deps-linux.nix
+++ b/pkgs/development/compilers/inklecate/deps-linux.nix
@@ -1,6 +1,6 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.25"; sha256 = "1dxk7v29wr736hlz8nfm2xv8dxmdl59w8w56kqjrvdw1lvgm411v"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.26"; sha256 = "1xyha28nvy9zqanb4ciscm60jls2fcc4c93k1ma6z3hgk6g9nfqr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
diff --git a/pkgs/development/compilers/juniper/default.nix b/pkgs/development/compilers/juniper/default.nix
index 3db60dc17bcfb..ff6751104ac02 100644
--- a/pkgs/development/compilers/juniper/default.nix
+++ b/pkgs/development/compilers/juniper/default.nix
@@ -35,7 +35,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.juniper-lang.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [ wunderbrick ];
+    maintainers = with maintainers; [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch b/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch
deleted file mode 100644
index 120cfe6feb2a6..0000000000000
--- a/pkgs/development/compilers/llvm/14/compiler-rt/armv7l.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff -ur compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake
---- compiler-rt-10.0.0.src/cmake/builtin-config-ix.cmake	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/cmake/builtin-config-ix.cmake	2020-05-10 03:42:00.883450706 +0900
-@@ -24,7 +24,7 @@
- 
- 
- set(ARM64 aarch64)
--set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k)
-+set(ARM32 arm armhf armv6m armv7m armv7em armv7 armv7s armv7k armv7l)
- set(HEXAGON hexagon)
- set(X86 i386)
- set(X86_64 x86_64)
-diff -ur compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt
---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt	2020-03-24 00:01:02.000000000 +0900
-+++ compiler-rt-10.0.0.src-patched/lib/builtins/CMakeLists.txt	2020-05-10 03:44:49.468579650 +0900
-@@ -474,6 +474,7 @@
- set(armv7_SOURCES ${arm_SOURCES})
- set(armv7s_SOURCES ${arm_SOURCES})
- set(armv7k_SOURCES ${arm_SOURCES})
-+set(armv7l_SOURCES ${arm_SOURCES})
- set(arm64_SOURCES ${aarch64_SOURCES})
- 
- # macho_embedded archs
-@@ -595,7 +596,7 @@
-   foreach (arch ${BUILTIN_SUPPORTED_ARCH})
-     if (CAN_TARGET_${arch})
-       # For ARM archs, exclude any VFP builtins if VFP is not supported
--      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7m|armv7em)$")
-+      if (${arch} MATCHES "^(arm|armhf|armv7|armv7s|armv7k|armv7l|armv7m|armv7em)$")
-         string(REPLACE ";" " " _TARGET_${arch}_CFLAGS "${TARGET_${arch}_CFLAGS}")
-         check_compile_definition(__VFP_FP__ "${CMAKE_C_FLAGS} ${_TARGET_${arch}_CFLAGS}" COMPILER_RT_HAS_${arch}_VFP)
-         if(NOT COMPILER_RT_HAS_${arch}_VFP)
diff --git a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
index 59ca5348fed44..cddfd5c23806b 100644
--- a/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
+++ b/pkgs/development/compilers/llvm/14/compiler-rt/default.nix
@@ -73,8 +73,7 @@ stdenv.mkDerivation {
     # extra `/`.
     ./normalize-var.patch
   ] # Prevent a compilation error on darwin
-    ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch
-    ++ lib.optional stdenv.hostPlatform.isAarch32 ./armv7l.patch;
+    ++ lib.optional stdenv.hostPlatform.isDarwin ./darwin-targetconditionals.patch;
 
   # TSAN requires XPC on Darwin, which we have no public/free source files for. We can depend on the Apple frameworks
   # to get it, but they're unfree. Since LLVM is rather central to the stdenv, we patch out TSAN support so that Hydra
diff --git a/pkgs/development/compilers/vyper/default.nix b/pkgs/development/compilers/vyper/default.nix
index ee24cc646e492..00d39d6f93e6a 100644
--- a/pkgs/development/compilers/vyper/default.nix
+++ b/pkgs/development/compilers/vyper/default.nix
@@ -69,5 +69,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/vyperlang/vyper";
     license = licenses.asl20;
     maintainers = with maintainers; [ siraben ];
+    knownVulnerabilities = [
+      "CVE-2022-29255"
+    ];
   };
 }
diff --git a/pkgs/development/compilers/yosys/default.nix b/pkgs/development/compilers/yosys/default.nix
index a48d5319b5ce3..564ada5d6c070 100644
--- a/pkgs/development/compilers/yosys/default.nix
+++ b/pkgs/development/compilers/yosys/default.nix
@@ -72,13 +72,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname   = "yosys";
-  version = "0.16";
+  version = "0.18";
 
   src = fetchFromGitHub {
     owner = "YosysHQ";
     repo  = "yosys";
     rev   = "${pname}-${version}";
-    hash  = "sha256-X1yygoat6ezJt9jLO+W528ryf381nKGDQ3cfrG1ZbIk=";
+    hash  = "sha256-uvJYL7cUhf6gTvfeIVKWMB2DH5qcYzhB2WPeJf1rCTI=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/coq-modules/hierarchy-builder/default.nix b/pkgs/development/coq-modules/hierarchy-builder/default.nix
index fb7de66f16e67..3eb5b4d476f5f 100644
--- a/pkgs/development/coq-modules/hierarchy-builder/default.nix
+++ b/pkgs/development/coq-modules/hierarchy-builder/default.nix
@@ -32,4 +32,7 @@ with lib; let hb = mkCoqDerivation {
 hb.overrideAttrs (o:
   optionalAttrs (versions.isGe "1.2.0" o.version || o.version == "dev")
     { buildPhase = "make build"; }
+  //
+  optionalAttrs (versions.isGe "1.1.0" o.version || o.version == "dev")
+  { installFlags = [ "DESTDIR=$(out)" ] ++ o.installFlags; }
 )
diff --git a/pkgs/development/coq-modules/paramcoq/default.nix b/pkgs/development/coq-modules/paramcoq/default.nix
index 7f65e6643c55e..e03f44320cf9c 100644
--- a/pkgs/development/coq-modules/paramcoq/default.nix
+++ b/pkgs/development/coq-modules/paramcoq/default.nix
@@ -4,10 +4,11 @@ with lib; mkCoqDerivation {
   pname = "paramcoq";
   inherit version;
   defaultVersion = with versions; switch coq.version [
-    { case = range "8.10" "8.15"; out = "1.1.3+coq${coq.coq-version}"; }
+    { case = range "8.10" "8.16"; out = "1.1.3+coq${coq.coq-version}"; }
     { case = range "8.7"  "8.13"; out = "1.1.2+coq${coq.coq-version}"; }
   ] null;
   displayVersion = { paramcoq = "..."; };
+  release."1.1.3+coq8.16".sha256 = "sha256-K7/8hXH6DwiW7Gw41sgQF8UDAO3c32xBGWQQapzG8Mo=";
   release."1.1.3+coq8.15".sha256 = "0sl7ihznwz05d2x2v78w1zd4q55c1sgy06vxasbcls4v2pkw53hl";
   release."1.1.3+coq8.14".sha256 = "00zqq9dc2p5v0ib1jgizl25xkwxrs9mrlylvy0zvb96dpridjc71";
   release."1.1.3+coq8.13".sha256 = "06ndly736k4pmdn4baqa7fblp6lx7a9pxm9gvz1vzd6ic51825wp";
diff --git a/pkgs/development/dotnet-modules/python-language-server/deps.nix b/pkgs/development/dotnet-modules/python-language-server/deps.nix
index 1a1ac569bb2ab..3f4e4fa3f2aa2 100644
--- a/pkgs/development/dotnet-modules/python-language-server/deps.nix
+++ b/pkgs/development/dotnet-modules/python-language-server/deps.nix
@@ -2,19 +2,19 @@
   (fetchNuGet { pname = "MessagePack"; version = "2.1.90"; sha256 = "1j5wjl7aq7nn5ga3j6zaaivdf2wlfyd7w66ak0i7krgrmv26lb8i"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.1.90"; sha256 = "08sghhwbz8h7ji9lg0klhwcyndxg6v11pq9jac975sb38samnm11"; })
   (fetchNuGet { pname = "MicroBuild.Core"; version = "0.3.0"; sha256 = "190d755l60j3l5m1661wj19gj9w6ngza56q3vkijkkmbbabdmqln"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "056g9nv8a7n8zdbgzmyzmn3pbg52yq2kv5d1rcp7h6plwzgpiwql"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "0akdzi35497v8yxr3a9q1g26cnx9vxnwv81kwxi293jklwnx8gsr"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "16kya6xvi7k42sr8bxgpbz9116dj7g3i18ylpvji9qngdx41891v"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "0rd3w3i6fzwhi71jcr8i0mchgfgpp1a0qhancg4dxsva032as4s6"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "0rib2121wri6wj6h4f6w4yqw9qp2xsad3ind63fmp1sr649jifyh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0z29rrhc87g0bi273lcqd608f7ngd16nv85v8549231yvf99n60x"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "0pbm6hpibsvq5w8hyvvllz4qns287x3l8bc07krffv23yfbv8zwy"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.26"; sha256 = "1kiahv55qyqy7g772m0v731yb5jfpqxqb0wlyp5wa0jppkhdnqxc"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.0.0"; sha256 = "00dx5armvkqjxvkldz3invdlck9nj7w21dlsr2aqp1rqbyrbsbbh"; })
   (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "3.1.8"; sha256 = "1v2lr0vbssqayzgxvdwb54jmvz7mvlih4l9h7i71gm3c62nlbq8y"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.21"; sha256 = "1s5g9gk0hvs268q2zpc32m0my2m2ivlmsmza86797a9vkxr6pzw6"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.21"; sha256 = "0dl4yakfmdkx6xr18f09cdnl11b4fyp23jg3msr8a25zqdqvcr29"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.21"; sha256 = "1l5wh5c9bgnzph07cd72q08mr87lsczwl0vy0rzrsi7xpzryvw7l"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.21"; sha256 = "13692wqcww0w6x4nhyxpxwprdg6mx9xmlvv38m6fvp6g0m27r43v"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.21"; sha256 = "1p7fpcmx4m2374zjfh53i3mv4lkr8xrkz5lnawv95s7j005m07pc"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.21"; sha256 = "02zgxzf8l607mh17900n7msga0yfcnqgd70rj1rlwj23plifykx1"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.21"; sha256 = "1gsrajdhlyndwb0s1c03cbm7wh1yfiwpk075nrlfvicbc4m7h347"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.26"; sha256 = "1vk4dr2z72nmjg2skqvy2m2h5brqp21v51pnd7ldpm7asgr5ck8n"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.26"; sha256 = "0l5yfnpbd36n38rjlmhsnq4bniq1fcssv4qh8kb9h3qigz40qxj9"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.26"; sha256 = "0z8g5jp18r0k4klw4jch17ps4f78vxaxkcmnmj8wrr7qdp81jy44"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "1h9b8fwgwbycvn1ngxnpdz3s1zh59wi2iy8n4y2nfkmz2rbldrrm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0y06qz4pgflwia222mljg19nlfmhcg0qs1a8wm3zwj602wzy3nll"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "1half7rywhxb1x19gzddvjqbll4whx9wmwdlk57iy68djas95lmy"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.26"; sha256 = "09grar210h1r6af15ng418vx6ln3pi4x22vn5n2889xldf4x2n56"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.1"; sha256 = "164wycgng4mi9zqi2pnsf1pq6gccbqvw6ib916mqizgjmd8f44pj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
diff --git a/pkgs/development/em-modules/generic/default.nix b/pkgs/development/em-modules/generic/default.nix
index a859720294160..2f8d7d878a8e0 100644
--- a/pkgs/development/em-modules/generic/default.nix
+++ b/pkgs/development/em-modules/generic/default.nix
@@ -18,6 +18,9 @@ pkgs.stdenv.mkDerivation (
   # fake conftest results with emscripten's python magic
   EMCONFIGURE_JS=2;
 
+  # removes archive indices
+  dontStrip = args.dontStrip or true;
+
   configurePhase = args.configurePhase or ''
     # FIXME: Some tests require writing at $HOME
     HOME=$TMPDIR
diff --git a/pkgs/development/embedded/arduino/arduino-core/default.nix b/pkgs/development/embedded/arduino/arduino-core/default.nix
index 34f427d4fa71d..91c2792f9be1a 100644
--- a/pkgs/development/embedded/arduino/arduino-core/default.nix
+++ b/pkgs/development/embedded/arduino/arduino-core/default.nix
@@ -244,7 +244,10 @@ stdenv.mkDerivation rec {
     description = "Open-source electronics prototyping platform";
     homepage = "https://www.arduino.cc/";
     license = if withTeensyduino then licenses.unfreeRedistributable else licenses.gpl2;
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ antono auntie robberer bjornfor bergey ];
   };
diff --git a/pkgs/development/haskell-modules/cabal2nix-unstable.nix b/pkgs/development/haskell-modules/cabal2nix-unstable.nix
index a12c20c63c52c..8e9ec97be0c8d 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-2022-04-27";
+  version = "unstable-2022-06-20";
   src = fetchzip {
-    url = "https://github.com/NixOS/cabal2nix/archive/40823c793b4b8588fcfedc8fb147c1a92cfa577d.tar.gz";
-    sha256 = "0gr8hafa282m4qw5y5wrqiwm1a3fl3b7xicnzixss6nlmxmi2skp";
+    url = "https://github.com/NixOS/cabal2nix/archive/9d18320d76e3f29f1787a8377125812150c59021.tar.gz";
+    sha256 = "1gykznb1fl9d9cqksbxc4qsyspp9xazamv57hmv3jpljzl8lq2aq";
   };
   isLibrary = true;
   isExecutable = true;
diff --git a/pkgs/development/haskell-modules/configuration-arm.nix b/pkgs/development/haskell-modules/configuration-arm.nix
index 38a176c3db32f..c7bbe3c6137d8 100644
--- a/pkgs/development/haskell-modules/configuration-arm.nix
+++ b/pkgs/development/haskell-modules/configuration-arm.nix
@@ -112,6 +112,7 @@ self: super: {
   hls-haddock-comments-plugin = dontCheck super.hls-haddock-comments-plugin;
   hls-rename-plugin = dontCheck super.hls-rename-plugin;
   hls-fourmolu-plugin = dontCheck super.hls-fourmolu-plugin;
+  hls-floskell-plugin = dontCheck super.hls-floskell-plugin;
 } // lib.optionalAttrs pkgs.stdenv.hostPlatform.isAarch32 {
   # AARCH32-SPECIFIC OVERRIDES
 
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index e55f32231cfa0..f3396bd24a19c 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -238,10 +238,16 @@ self: super: {
   digit = doJailbreak super.digit;
 
   # 2020-06-05: HACK: does not pass own build suite - `dontCheck`
-  hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck super.hnix);
+  # 2022-06-17: Use hnix-store 0.5 until hnix 0.17
+  hnix = generateOptparseApplicativeCompletion "hnix" (dontCheck (
+    super.hnix.overrideScope (hself: hsuper: {
+      hnix-store-core = hself.hnix-store-core_0_5_0_0;
+      hnix-store-remote = hself.hnix-store-remote_0_5_0_0;
+    })
+  ));
   # Too strict bounds on algebraic-graphs
   # https://github.com/haskell-nix/hnix-store/issues/180
-  hnix-store-core = doJailbreak super.hnix-store-core;
+  hnix-store-core_0_5_0_0 = doJailbreak super.hnix-store-core_0_5_0_0;
 
   # Fails for non-obvious reasons while attempting to use doctest.
   focuslist = dontCheck super.focuslist;
@@ -672,9 +678,6 @@ self: super: {
   # https://github.com/pxqr/base32-bytestring/issues/4
   base32-bytestring = dontCheck super.base32-bytestring;
 
-  # 2022-03-24: Strict aeson bound:
-  arch-web = throwIfNot (super.arch-web.version == "0.1.0") "arch-web: remove jailbreak after update"  doJailbreak super.arch-web;
-
   # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
   # https://github.com/augustss/djinn/pull/8
   djinn = appendPatch (fetchpatch {
@@ -1158,17 +1161,6 @@ self: super: {
   # https://github.com/elliottt/hsopenid/issues/15
   openid = markBroken super.openid;
 
-  # Version constraints on test dependency tasty-golden need to be relaxed:
-  # https://github.com/nomeata/arbtt/pull/146
-  arbtt = doJailbreak (overrideCabal (drv: {
-    # The test suite needs the packages's executables in $PATH to succeed.
-    preCheck = ''
-      for i in $PWD/dist/build/*; do
-        export PATH="$i:$PATH"
-      done
-    '';
-  }) super.arbtt);
-
   # https://github.com/erikd/hjsmin/issues/32
   hjsmin = dontCheck super.hjsmin;
 
@@ -1322,19 +1314,6 @@ self: super: {
   x509-validation = dontCheck super.x509-validation;
   tls = dontCheck super.tls;
 
-  patch = appendPatches [
-    # 2022-02-27: https://github.com/reflex-frp/patch/pull/40 for bump bounds
-    (fetchpatch {
-      url = "https://github.com/reflex-frp/patch/commit/15ea4956e04264b9be2fe4644119a709b196708f.patch";
-      sha256 = "sha256-la97DCjeVu82AaQv2my+UhmB/jBmMyxxpRAwhEB1RGc=";
-    })
-    # 2022-03-13: https://github.com/reflex-frp/patch/pull/41 for ghc 9.0 compat
-    (fetchpatch {
-      url = "https://github.com/reflex-frp/patch/commit/fee3addcfc982c7b70489a8a64f208ab2360bdb7.patch";
-      sha256 = "sha256-/CTiHSs+Z4dyL5EJx949XD0zzSAy5s4hzchmNkb0YOk=";
-    })
-  ] super.patch;
-
   # 2022-03-16: lens bound can be loosened https://github.com/ghcjs/jsaddle-dom/issues/19
   jsaddle-dom = overrideCabal (old: {
     postPatch = old.postPatch or "" + ''
@@ -1634,20 +1613,8 @@ self: super: {
 
   reflex-dom-pandoc = super.reflex-dom-pandoc.override { clay = dontCheck self.clay_0_13_3; };
 
-  # 2022-03-16: Pull request for ghc 9 compat: https://github.com/reflex-frp/reflex/pull/467
-  reflex = overrideCabal (drv: {
-    patches = drv.patches or [] ++ [
-      (fetchpatch {
-        url = "https://github.com/reflex-frp/reflex/compare/469b4ab4a755cad76b8d4d6c9ad482d02686b4ae.patch";
-        sha256 = "04sxzxpx7xhr6p4n76rg1ci8zjfzs19lr21ziwsfig8zmdg22i7q";
-      })
-    ];
-    doCheck = false;
-    # hackage revision seems to have DOS newlines
-    prePatch = drv.prePatch or "" + ''
-      ${pkgs.buildPackages.dos2unix}/bin/dos2unix reflex.cabal
-    '';
-  }) super.reflex;
+  # 2022-06-19: Disable checks because of https://github.com/reflex-frp/reflex/issues/475
+  reflex = dontCheck super.reflex;
 
   # 2020-11-19: jailbreaking because of pretty-simple bound out of date
   # https://github.com/kowainik/stan/issues/408
@@ -1695,11 +1662,7 @@ self: super: {
   # waiting for aeson bump
   servant-swagger-ui-core = doJailbreak super.servant-swagger-ui-core;
 
-  hercules-ci-agent =
-    assert super.hercules-ci-agent.version == "0.9.5"; # >0.9.5: remove source override as sdist will be fixed
-    overrideSrc
-      { src = pkgs.fetchFromGitHub { owner = "hercules-ci"; repo = "hercules-ci-agent"; rev = "hercules-ci-agent-0.9.5"; sha256 = "sha256-7d8lf4g8CWHTzIOmma8UKvFIi1Og6RqPH9Lt+6iA4pw="; } + "/hercules-ci-agent"; }
-      (generateOptparseApplicativeCompletion "hercules-ci-agent" super.hercules-ci-agent);
+  hercules-ci-agent = generateOptparseApplicativeCompletion "hercules-ci-agent" super.hercules-ci-agent;
 
   # Test suite doesn't compile with aeson 2.0
   # https://github.com/hercules-ci/hercules-ci-agent/pull/387
@@ -2096,15 +2059,18 @@ self: super: {
     };
   } self.haskell-ci;
 
-  large-hashable = lib.pipe super.large-hashable [
-    # 2022-03-21: use version from git which includes support for GHC 9.0.1
+  large-hashable = lib.pipe (super.large-hashable.override {
+    # https://github.com/factisresearch/large-hashable/commit/5ec9d2c7233fc4445303564047c992b693e1155c
+    utf8-light = null;
+  }) [
+    # 2022-03-21: use version from git which supports GHC 9.{0,2} and aeson 2.0
     (assert super.large-hashable.version == "0.1.0.4"; overrideSrc {
-      version = "unstable-2021-11-01";
+      version = "unstable-2022-06-10";
       src = pkgs.fetchFromGitHub {
         owner = "factisresearch";
         repo = "large-hashable";
-        rev = "b4e6b3d23c2b1af965ffcc055f5405ff673e66cf";
-        sha256 = "1bgf37qfzdyjhpgnj9aipwzpa06nc7b1g4f64xsmknyds7ffhixz";
+        rev = "4d149c828c185bcf05556d1660f79ff1aec7eaa1";
+        sha256 = "141349qcw3m93jw95jcha9rsg2y8sn5ca5j59cv8xmci38k2nam0";
       };
     })
     # Provide newly added dependencies
@@ -2117,15 +2083,12 @@ self: super: {
         self.inspection-testing
       ];
     }))
-    # 2022-03-21: patch for aeson 2.0
-    # https://github.com/factisresearch/large-hashable/pull/22
-    (appendPatches [
-      (fetchpatch {
-        name = "large-hashable-aeson-2.0.patch";
-        url = "https://github.com/factisresearch/large-hashable/commit/7094ef0ba55b4848cb57bae73d119acfb496a4c9.patch";
-        sha256 = "0ckiii0s697h817z65jwlmjzqw2ckpm815wqcnxjigf6v9kxps8j";
-      })
-    ])
+    # https://github.com/factisresearch/large-hashable/issues/24
+    (overrideCabal (drv: {
+      testFlags = drv.testFlags or [] ++ [
+        "-n" "^Data.LargeHashable.Tests.Inspection:genericSumGetsOptimized$"
+      ];
+    }))
   ];
 
   # BSON defaults to requiring network instead of network-bsd which is
@@ -2179,10 +2142,10 @@ self: super: {
   # 2022-03-21: Newest stylish-haskell needs ghc-lib-parser-9_2
   stylish-haskell = (super.stylish-haskell.override {
     ghc-lib-parser = super.ghc-lib-parser_9_2_3_20220527;
-    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
+    ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_1_0;
   });
 
-  ghc-lib-parser-ex_9_2_0_4 = super.ghc-lib-parser-ex_9_2_0_4.override {
+  ghc-lib-parser-ex_9_2_1_0 = super.ghc-lib-parser-ex_9_2_1_0.override {
     ghc-lib-parser = super.ghc-lib-parser_9_2_3_20220527;
   };
 
diff --git a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
index 02fe3d6a61a0d..6014e5907b8c1 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-9.2.x.nix
@@ -102,7 +102,7 @@ self: super: {
   }) super.ghc-exactprint;
   ghc-lib = self.ghc-lib_9_2_3_20220527;
   ghc-lib-parser = self.ghc-lib-parser_9_2_3_20220527;
-  ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_0_4;
+  ghc-lib-parser-ex = self.ghc-lib-parser-ex_9_2_1_0;
   hackage-security = doJailbreak super.hackage-security;
   hashable = super.hashable_1_4_0_2;
   hashable-time = doJailbreak super.hashable-time;
diff --git a/pkgs/development/haskell-modules/configuration-ghcjs.nix b/pkgs/development/haskell-modules/configuration-ghcjs.nix
index bab115ce64178..94a173c049bcf 100644
--- a/pkgs/development/haskell-modules/configuration-ghcjs.nix
+++ b/pkgs/development/haskell-modules/configuration-ghcjs.nix
@@ -18,8 +18,10 @@ self: super:
   inherit (self.ghc.bootPkgs)
     jailbreak-cabal alex happy gtk2hs-buildtools rehoo hoogle;
 
+  # Test suite fails; https://github.com/ghcjs/ghcjs-base/issues/133
   ghcjs-base = dontCheck (self.callPackage ../compilers/ghcjs/ghcjs-base.nix {
     fetchFromGitHub = pkgs.buildPackages.fetchFromGitHub;
+    aeson = self.aeson_1_5_6_0;
   });
 
   # GHCJS does not ship with the same core packages as GHC.
@@ -35,6 +37,9 @@ self: super:
   # nodejs crashes during test
   ChasingBottoms = dontCheck super.ChasingBottoms;
 
+  # runs forever
+  text-short = dontCheck super.text-short;
+
   # doctest doesn't work on ghcjs, but sometimes dontCheck doesn't seem to get rid of the dependency
   doctest = pkgs.lib.warn "ignoring dependency on doctest" null;
 
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
index 0dc367e6e2e00..6c882587c5791 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/broken.yaml
@@ -262,7 +262,6 @@ broken-packages:
   - authenticate-ldap
   - authinfo-hs
   - auto
-  - autodocodec
   - autom
   - autonix-deps
   - autopack
@@ -359,6 +358,7 @@ broken-packages:
   - binary-derive
   - binary-ext
   - binary-indexed-tree
+  - binary-io
   - binary-protocol
   - binary-tree
   - binary-typed
@@ -367,6 +367,7 @@ broken-packages:
   - bindings-apr
   - bindings-bfd
   - bindings-cctools
+  - bindings-common
   - bindings-dc1394
   - bindings-eskit
   - bindings-EsounD
@@ -494,6 +495,7 @@ broken-packages:
   - buster
   - Buster
   - butter
+  - buttplug-hs-core
   - bv-little
   - byline
   - bytearray-parsing
@@ -519,6 +521,7 @@ broken-packages:
   - cabal2doap
   - cabal2ebuild
   - cabal2ghci
+  - cabal2json
   - cabal-audit
   - cabal-auto-expose
   - cabal-bundle-clib
@@ -610,6 +613,7 @@ broken-packages:
   - category-traced
   - catnplus
   - cautious-file
+  - cautious-gen
   - cayene-lpp
   - cayley-client
   - cblrepo
@@ -865,6 +869,7 @@ broken-packages:
   - CoreDump
   - CoreErlang
   - core-haskell
+  - core-telemetry
   - core-webserver-warp
   - Coroutine
   - coroutine-object
@@ -929,6 +934,7 @@ broken-packages:
   - ctemplate
   - ctkl
   - cuboid
+  - cuckoo
   - cuckoo-filter
   - curl-aeson
   - curl-runnings
@@ -1361,6 +1367,7 @@ broken-packages:
   - except-exceptions
   - exceptional
   - exceptionfree-readfile
+  - exchangerates
   - execs
   - executor
   - exh
@@ -1476,6 +1483,7 @@ broken-packages:
   - fixed-storable-array
   - fixed-timestep
   - fixed-width
+  - fixer
   - fixfile
   - fixie
   - fix-symbols-gitit
@@ -1771,6 +1779,7 @@ broken-packages:
   - goatee
   - gochan
   - godot-haskell
+  - godot-megaparsec
   - gofer-prelude
   - gogol-core
   - gooey
@@ -2060,6 +2069,7 @@ broken-packages:
   - hasql-explain-tests
   - hasql-generic
   - hasql-implicits
+  - hasql-resource-pool
   - hasql-simple
   - hasql-streams-example
   - hasql-url
@@ -2210,7 +2220,6 @@ broken-packages:
   - higgledy
   - higherorder
   - highjson
-  - highlight
   - highlight-versions
   - highWaterMark
   - himg
@@ -2326,6 +2335,7 @@ broken-packages:
   - houseman
   - hp2any-core
   - hpack-convert
+  - hpapi
   - hpasteit
   - HPath
   - hpc-coveralls
@@ -2552,6 +2562,7 @@ broken-packages:
   - hweblib
   - hw-fingertree-strict
   - hwhile
+  - hw-lazy
   - hw-mquery
   - hworker
   - hw-playground-linear
@@ -2660,6 +2671,7 @@ broken-packages:
   - interruptible
   - interval
   - interval-algebra
+  - interval-patterns
   - IntFormats
   - int-multimap
   - intricacy
@@ -2697,6 +2709,7 @@ broken-packages:
   - IsNull
   - iso8601-duration
   - isobmff
+  - isomorphism-class
   - isotope
   - itcli
   - itemfield
@@ -2744,7 +2757,6 @@ broken-packages:
   - joy-rewrite
   - jpeg
   - jsaddle-clib
-  - jsaddle-warp
   - jsaddle-wkwebview
   - js-good-parts
   - json2
@@ -2813,6 +2825,7 @@ broken-packages:
   - kawaii
   - Kawaii-Parser
   - kawhi
+  - kazura-queue
   - kdesrc-build-extra
   - kdt
   - kd-tree
@@ -2860,6 +2873,7 @@ broken-packages:
   - lambdabot-utils
   - lambdabot-xmpp
   - lambda-bridge
+  - lambda-calculator
   - lambda-canvas
   - lambdacms-core
   - lambda-cube
@@ -3096,6 +3110,7 @@ broken-packages:
   - lushtags
   - luthor
   - lvmlib
+  - lvmrun
   - lxd-client
   - lye
   - lz4-frame-conduit
@@ -3129,6 +3144,7 @@ broken-packages:
   - make-hard-links
   - make-monofoldable-foldable
   - mallard
+  - managed-functions
   - mandulia
   - mangopay
   - Map
@@ -3204,6 +3220,7 @@ broken-packages:
   - menoh
   - menshen
   - mergeful
+  - mergeless-persistent
   - merkle-tree
   - messagepack-rpc
   - messente
@@ -3603,6 +3620,7 @@ broken-packages:
   - open-adt
   - OpenAFP
   - openai-servant
+  - openapi3-code-generator
   - openapi-petstore
   - openapi-typed
   - opench-meteo
@@ -3944,6 +3962,7 @@ broken-packages:
   - polynom
   - polynomial-algebra
   - polysemy-check
+  - polysemy-http
   - polysemy-keyed-state
   - polysemy-kvstore-jsonfile
   - polysemy-managed
@@ -4084,6 +4103,7 @@ broken-packages:
   - proto-lens-combinators
   - proto-lens-jsonpb
   - protolude-lifted
+  - proton
   - proton-haskell
   - prototype
   - prove-everywhere-server
@@ -4141,6 +4161,7 @@ broken-packages:
   - quenya-verb
   - querystring-pickle
   - questioner
+  - quibble-core
   - QuickAnnotate
   - quickcheck-arbitrary-template
   - quickcheck-property-comb
@@ -4222,6 +4243,7 @@ broken-packages:
   - reason-export
   - record
   - record-encode
+  - record-impl
   - records
   - record-wrangler
   - recursion-schemes-ext
@@ -4597,7 +4619,11 @@ broken-packages:
   - shorten-strings
   - short-vec
   - show-prettyprint
+  - Shpadoinkle-backend-pardiff
+  - Shpadoinkle-backend-snabbdom
+  - Shpadoinkle-backend-static
   - Shpadoinkle-console
+  - Shpadoinkle-html
   - Shpadoinkle-isreal
   - shwifty
   - sifflet
@@ -4937,6 +4963,7 @@ broken-packages:
   - supernova
   - supero
   - superrecord
+  - super-user-spark
   - supervisor
   - supervisors
   - supplemented
@@ -4960,6 +4987,11 @@ broken-packages:
   - sws
   - syb-extras
   - syb-with-class
+  - sydtest-hedis
+  - sydtest-mongo
+  - sydtest-persistent-postgresql
+  - sydtest-rabbitmq
+  - sydtest-yesod
   - syfco
   - sym
   - symantic
@@ -5429,7 +5461,6 @@ broken-packages:
   - validated-types
   - Validation
   - validations
-  - validity-aeson
   - valid-names
   - value-supply
   - vampire
@@ -5608,6 +5639,7 @@ broken-packages:
   - winery
   - wires
   - wiring
+  - witness
   - witty
   - wkt
   - wkt-geom
@@ -5716,6 +5748,7 @@ broken-packages:
   - YamlReference
   - yaml-rpc
   - yaml-union
+  - yaml-unscrambler
   - yampa2048
   - yampa-glfw
   - yampa-gloss
@@ -5805,7 +5838,9 @@ broken-packages:
   - zendesk-api
   - zeno
   - zeolite-lang
+  - zeromq4-clone-pattern
   - zeromq4-conduit
+  - zeromq4-patterns
   - zeromq-haskell
   - zettelkast
   - ZFS
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
index 05ab12f129404..d61854cf5bcc1 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/main.yaml
@@ -135,6 +135,8 @@ extra-packages:
   - hspec-discover < 2.8                # 2022-04-07: Needed for tasty-hspec 1.1.6
   - bower-json == 1.0.0.1               # 2022-05-21: Needed for spago 0.20.9
   - fourmolu == 0.6.0.0                 # 2022-06-05: Last fourmolu version compatible with hls 1.7/ hls-fourmolu-plugin 1.0.3.0
+  - hnix-store-core == 0.5.0.0          # 2022-06-17: Until hnix 0.17
+  - hnix-store-remote == 0.5.0.0        # 2022-06-17: Until hnix 0.17
 
 package-maintainers:
   abbradar:
@@ -347,9 +349,16 @@ package-maintainers:
     - lentil
   sorki:
     - cayenne-lpp
+    - blockfrost-client
+    - data-lens-light
     - data-stm32
     - gcodehs
+    - hnix
+    - hnix-store-core
+    - hnix-store-remote
+    - implicit
     - nix-derivation
+    - nix-diff
     - nix-narinfo
     - ttn
     - ttn-client
@@ -397,150 +406,159 @@ package-maintainers:
     - nix-tree
 
 unsupported-platforms:
-  Allure:                                       [ x86_64-darwin, aarch64-darwin ]
-  alsa-mixer:                                   [ x86_64-darwin, aarch64-darwin ]
-  alsa-pcm:                                     [ x86_64-darwin, aarch64-darwin ]
-  alsa-seq:                                     [ x86_64-darwin, aarch64-darwin ]
-  AWin32Console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  barbly:                                       [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  bdcs-api:                                     [ x86_64-darwin, aarch64-darwin ]
-  bindings-directfb:                            [ x86_64-darwin, aarch64-darwin ]
-  bindings-parport:                             [ x86_64-darwin, aarch64-darwin ] # parport is a linux kernel component
-  bindings-sane:                                [ x86_64-darwin, aarch64-darwin ]
-  btrfs:                                        [ x86_64-darwin, aarch64-darwin ] # depends on linux
-  bustle:                                       [ x86_64-darwin, aarch64-darwin ] # uses glibc-specific ptsname_r
+  Allure:                                       [ platforms.darwin ]
+  bdcs-api:                                     [ platforms.darwin ]
+  bindings-directfb:                            [ platforms.darwin ]
+  bindings-sane:                                [ platforms.darwin ]
+  bustle:                                       [ platforms.darwin ] # uses glibc-specific ptsname_r
   camfort:                                      [ aarch64-linux ]
   charsetdetect:                                [ aarch64-linux ] # not supported by vendored lib / not configured properly https://github.com/batterseapower/libcharsetdetect/issues/3
-  cut-the-crap:                                 [ x86_64-darwin, aarch64-darwin ]
-  d3d11binding:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  DirectSound:                                  [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9base:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3d:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  dx9d3dx:                                      [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Euterpea:                                     [ x86_64-darwin, aarch64-darwin ]
-  essence-of-live-coding-PortMidi:              [ x86_64-darwin, aarch64-darwin ]
-  follow-file:                                  [ x86_64-darwin, aarch64-darwin ]
-  freenect:                                     [ x86_64-darwin, aarch64-darwin ]
-  FTGL:                                         [ x86_64-darwin, aarch64-darwin ]
-  fuzzytime:                                    [ x86_64-darwin, aarch64-darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
-  ghcjs-dom-hello:                              [ x86_64-darwin, aarch64-darwin ]
-  gi-adwaita:                                   [ x86_64-darwin, aarch64-darwin ]
-  gi-dbusmenugtk3:                              [ x86_64-darwin, aarch64-darwin ]
-  gi-dbusmenu:                                  [ x86_64-darwin, aarch64-darwin ]
-  gi-ggit:                                      [ x86_64-darwin, aarch64-darwin ]
-  gi-gtkosxapplication:                         [ x86_64-linux, aarch64-linux ]
-  gi-ibus:                                      [ x86_64-darwin, aarch64-darwin ]
-  gi-javascriptcore:                            [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-ostree:                                    [ x86_64-darwin, aarch64-darwin ]
-  gi-vte:                                       [ x86_64-darwin, aarch64-darwin ]
-  gi-webkit2webextension:                       [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-webkit2:                                   [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  gi-wnck:                                      [ x86_64-darwin, aarch64-darwin ]
-  gnome-keyring:                                [ x86_64-darwin, aarch64-darwin ]
-  grid-proto:                                   [ x86_64-darwin, aarch64-darwin ]
-  gtk3-mac-integration:                         [ x86_64-linux, aarch64-linux ]
-  gtk-mac-integration:                          [ i686-linux, x86_64-linux, aarch64-linux, armv7l-linux ]
-  gtk-sni-tray:                                 [ x86_64-darwin, aarch64-darwin ]
-  haskell-snake:                                [ x86_64-darwin, aarch64-darwin ]
-  hbro-contrib:                                 [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  hbro:                                         [ x86_64-darwin, aarch64-darwin ] # webkitgtk marked broken on darwin
-  hcwiid:                                       [ x86_64-darwin, aarch64-darwin ]
-  HDRUtils:                                     [ x86_64-darwin, aarch64-darwin ]
-  HFuse:                                        [ x86_64-darwin, aarch64-darwin ]
-  hidapi:                                       [ x86_64-darwin, aarch64-darwin ]
-  hinotify-bytestring:                          [ x86_64-darwin, aarch64-darwin ]
-  hommage-ds:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  honk:                                         [ x86_64-darwin, aarch64-darwin ]
-  hpapi:                                        [ x86_64-darwin, aarch64-darwin ]
+  cut-the-crap:                                 [ platforms.darwin ]
+  essence-of-live-coding-PortMidi:              [ platforms.darwin ]
+  Euterpea:                                     [ platforms.darwin ]
+  follow-file:                                  [ platforms.darwin ]
+  freenect:                                     [ platforms.darwin ]
+  FTGL:                                         [ platforms.darwin ]
+  fuzzytime:                                    [ platforms.darwin ] # https://github.com/kamwitsta/fuzzytime/issues/2
+  ghcjs-dom-hello:                              [ platforms.darwin ]
+  gi-adwaita:                                   [ platforms.darwin ]
+  gi-dbusmenugtk3:                              [ platforms.darwin ]
+  gi-dbusmenu:                                  [ platforms.darwin ]
+  gi-ggit:                                      [ platforms.darwin ]
+  gi-ibus:                                      [ platforms.darwin ]
+  gi-javascriptcore:                            [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-ostree:                                    [ platforms.darwin ]
+  gi-vte:                                       [ platforms.darwin ]
+  gi-webkit2webextension:                       [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-webkit2:                                   [ platforms.darwin ] # webkitgtk marked broken on darwin
+  gi-wnck:                                      [ platforms.darwin ]
+  gnome-keyring:                                [ platforms.darwin ]
+  grid-proto:                                   [ platforms.darwin ]
+  gtk-sni-tray:                                 [ platforms.darwin ]
+  haskell-snake:                                [ platforms.darwin ]
+  hcwiid:                                       [ platforms.darwin ]
+  HDRUtils:                                     [ platforms.darwin ]
+  hidapi:                                       [ platforms.darwin ]
+  hinotify-bytestring:                          [ platforms.darwin ]
+  honk:                                         [ platforms.darwin ]
   HQu:                                          [ aarch64-linux, armv7l-linux ] # unsupported by vendored C++ library, TODO: explicitly list supported platforms
-  HSoM:                                         [ x86_64-darwin, aarch64-darwin ]
-  iwlib:                                        [ x86_64-darwin, aarch64-darwin ]
-  Jazzkell:                                     [ x86_64-darwin, aarch64-darwin ] # depends on Euterpea
-  jsaddle-webkit2gtk:                           [ x86_64-darwin, aarch64-darwin ]
+  HSoM:                                         [ platforms.darwin ]
+  iwlib:                                        [ platforms.darwin ]
+  Jazzkell:                                     [ platforms.darwin ] # depends on Euterpea
+  jsaddle-hello:                                [ platforms.darwin ] # depends on jsaddle-webkit2gtk
+  jsaddle-webkit2gtk:                           [ platforms.darwin ]
   keid-core:                                    [ aarch64-linux ]
   keid-geometry:                                [ aarch64-linux ]
   keid-render-basic:                            [ aarch64-linux ]
   keid-sound-openal:                            [ aarch64-linux ]
   keid-ui-dearimgui:                            [ aarch64-linux ]
-  kqueue:                                       [ x86_64-linux, aarch64-linux, i686-linux, armv7l-linux ] # BSD / Darwin only API
-  Kulitta:                                      [ x86_64-darwin, aarch64-darwin ] # depends on Euterpea
-  LambdaHack:                                   [ x86_64-darwin, aarch64-darwin ]
+  Kulitta:                                      [ platforms.darwin ] # depends on Euterpea
+  LambdaHack:                                   [ platforms.darwin ]
   large-hashable:                               [ aarch64-linux ] # https://github.com/factisresearch/large-hashable/issues/17
-  libmodbus:                                    [ x86_64-darwin, aarch64-darwin ]
-  libsystemd-journal:                           [ x86_64-darwin, aarch64-darwin ]
-  libtelnet:                                    [ x86_64-darwin, aarch64-darwin ]
-  libvirt-hs:                                   [ x86_64-darwin ] # spidermonkey is not supported on darwin
-  libzfs:                                       [ x86_64-darwin, aarch64-darwin ]
+  libmodbus:                                    [ platforms.darwin ]
+  libsystemd-journal:                           [ platforms.darwin ]
+  libtelnet:                                    [ platforms.darwin ]
+  libvirt-hs:                                   [ platforms.darwin ] # spidermonkey is not supported on darwin
+  libzfs:                                       [ platforms.darwin ]
   linearEqSolver:                               [ aarch64-linux ]
-  linux-evdev:                                  [ x86_64-darwin, aarch64-darwin ]
-  linux-file-extents:                           [ x86_64-darwin, aarch64-darwin ]
-  linux-inotify:                                [ x86_64-darwin, aarch64-darwin ]
-  linux-mount:                                  [ x86_64-darwin, aarch64-darwin ]
-  linux-namespaces:                             [ x86_64-darwin, aarch64-darwin ]
-  lio-fs:                                       [ x86_64-darwin, aarch64-darwin ]
-  logging-facade-journald:                      [ x86_64-darwin, aarch64-darwin ]
+  lio-fs:                                       [ platforms.darwin ]
+  logging-facade-journald:                      [ platforms.darwin ]
   longshot:                                     [ aarch64-linux ]
-  lxc:                                          [ x86_64-darwin, aarch64-darwin ]
-  midi-alsa:                                    [ x86_64-darwin, aarch64-darwin ]
-  mpi-hs:                                       [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-binary:                                [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-cereal:                                [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
-  mpi-hs-store:                                 [ aarch64-linux, x86_64-darwin, aarch64-darwin ]
+  mpi-hs:                                       [ aarch64-linux, platforms.darwin ]
+  mpi-hs-binary:                                [ aarch64-linux, platforms.darwin ]
+  mpi-hs-cereal:                                [ aarch64-linux, platforms.darwin ]
+  mpi-hs-store:                                 [ aarch64-linux, platforms.darwin ]
   mplayer-spot:                                 [ aarch64-linux ]
-  mptcp-pm:                                     [ x86_64-darwin, aarch64-darwin ]
-  netlink:                                      [ x86_64-darwin, aarch64-darwin ]
-  notifications-tray-icon:                      [ x86_64-darwin, aarch64-darwin ] # depends on gi-dbusmenu
-  oculus:                                       [ x86_64-darwin, aarch64-darwin ]
-  pam:                                          [ x86_64-darwin, aarch64-darwin ]
-  parport:                                      [ x86_64-darwin, aarch64-darwin ]
+  mptcp-pm:                                     [ platforms.darwin ]
+  netlink:                                      [ platforms.darwin ]
+  notifications-tray-icon:                      [ platforms.darwin ] # depends on gi-dbusmenu
+  oculus:                                       [ platforms.darwin ]
+  pam:                                          [ platforms.darwin ]
+  parport:                                      [ platforms.darwin ]
   password:                                     [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   password-instances:                           [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   persist-state:                                [ aarch64-linux, armv7l-linux ] # https://github.com/minad/persist-state/blob/6fd68c0b8b93dec78218f6d5a1f4fa06ced4e896/src/Data/PersistState.hs#L122-L128
-  piyo:                                         [ x86_64-darwin, aarch64-darwin ]
-  PortMidi-simple:                              [ x86_64-darwin, aarch64-darwin ]
-  PortMidi:                                     [ x86_64-darwin, aarch64-darwin ]
-  posix-api:                                    [ x86_64-darwin, aarch64-darwin ]
-  Raincat:                                      [ x86_64-darwin, aarch64-darwin ]
-  reactive-balsa:                               [ x86_64-darwin, aarch64-darwin ] # depends on alsa-core
-  reactivity:                                   [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  reflex-dom-fragment-shader-canvas:            [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  reflex-dom:                                   [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  reflex-localize-dom:                          [ x86_64-darwin, aarch64-darwin, aarch64-linux ]
-  rtlsdr:                                       [ x86_64-darwin, aarch64-darwin ]
-  rubberband:                                   [ x86_64-darwin, aarch64-darwin ]
+  piyo:                                         [ platforms.darwin ]
+  PortMidi-simple:                              [ platforms.darwin ]
+  PortMidi:                                     [ platforms.darwin ]
+  posix-api:                                    [ platforms.darwin ]
+  Raincat:                                      [ platforms.darwin ]
+  reactive-balsa:                               [ platforms.darwin ] # depends on alsa-core
+  reflex-dom-fragment-shader-canvas:            [ platforms.darwin, aarch64-linux ]
+  reflex-dom:                                   [ platforms.darwin, aarch64-linux ]
+  reflex-localize-dom:                          [ platforms.darwin, aarch64-linux ]
+  rtlsdr:                                       [ platforms.darwin ]
+  rubberband:                                   [ platforms.darwin ]
   scat:                                         [ aarch64-linux, armv7l-linux ] # uses scrypt, which requries x86
   scrypt:                                       [ aarch64-linux, armv7l-linux ] # https://github.com/informatikr/scrypt/issues/8
-  sdl2-mixer:                                   [ x86_64-darwin, aarch64-darwin ]
-  sdl2-ttf:                                     [ x86_64-darwin, aarch64-darwin ]
-  sensei:                                       [ x86_64-darwin ]
-  synthesizer-alsa:                             [ x86_64-darwin, aarch64-darwin ]
-  taffybar:                                     [ x86_64-darwin, aarch64-darwin ]
-  termonad:                                     [ x86_64-darwin, aarch64-darwin ]
-  tokyotyrant-haskell:                          [ x86_64-darwin, aarch64-darwin ]
-  udev:                                         [ x86_64-darwin, aarch64-darwin ]
-  Unixutils-shadow:                             [ x86_64-darwin, aarch64-darwin ]
+  sdl2-mixer:                                   [ platforms.darwin ]
+  sdl2-ttf:                                     [ platforms.darwin ]
+  sensei:                                       [ platforms.darwin ]
+  synthesizer-alsa:                             [ platforms.darwin ]
+  taffybar:                                     [ platforms.darwin ]
+  termonad:                                     [ platforms.darwin ]
+  tokyotyrant-haskell:                          [ platforms.darwin ]
+  Unixutils-shadow:                             [ platforms.darwin ]
   verifiable-expressions:                       [ aarch64-linux ]
-  vrpn:                                         [ x86_64-darwin, aarch64-darwin ]
-  vulkan:                                       [ i686-linux, armv7l-linux, x86_64-darwin, aarch64-darwin ]
-  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux, x86_64-darwin, aarch64-darwin ]
-  vulkan-utils:                                 [ x86_64-darwin, aarch64-darwin ]
-  webkit2gtk3-javascriptcore:                   [ x86_64-darwin, aarch64-darwin ]
-  Win32-console:                                [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-dhcp-server:                            [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-errors:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-extras:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32:                                        [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-junction-point:                         [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-notify:                                 [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-security:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services:                               [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  Win32-services-wrapper:                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  xattr:                                        [ x86_64-darwin, aarch64-darwin ]
+  vrpn:                                         [ platforms.darwin ]
+  vulkan:                                       [ i686-linux, armv7l-linux, platforms.darwin ]
+  VulkanMemoryAllocator:                        [ i686-linux, armv7l-linux, platforms.darwin ]
+  vulkan-utils:                                 [ platforms.darwin ]
+  webkit2gtk3-javascriptcore:                   [ platforms.darwin ]
+  xattr:                                        [ platforms.darwin ]
   xgboost-haskell:                              [ aarch64-linux, armv7l-linux ]
-  XInput:                                       [ i686-linux, x86_64-linux, x86_64-darwin, aarch64-darwin, aarch64-linux, armv7l-linux ]
-  xmobar:                                       [ x86_64-darwin, aarch64-darwin ]
-  xmonad-extras:                                [ x86_64-darwin, aarch64-darwin ]
-  xmonad-volume:                                [ x86_64-darwin, aarch64-darwin ]
+  xmobar:                                       [ platforms.darwin ]
+  xmonad-extras:                                [ platforms.darwin ]
+  xmonad-volume:                                [ platforms.darwin ]
+
+supported-platforms:
+  AWin32Console:                                [ platforms.windows ]
+  alsa-mixer:                                   [ platforms.linux ]
+  alsa-pcm:                                     [ platforms.linux ]
+  alsa-seq:                                     [ platforms.linux ]
+  barbly:                                       [ platforms.darwin ]
+  bindings-parport:                             [ platforms.linux ] # parport is a linux kernel component
+  blake3:                                       [ platforms.x86 ] # uses x86 intrinsics
+  btrfs:                                        [ platforms.linux ] # depends on linux
+  cpuid:                                        [ platforms.x86 ] # needs to be i386 compatible (IA-32)
+  crc32c:                                       [ platforms.x86 ] # uses x86 intrinsics
+  d3d11binding:                                 [ platforms.windows ]
+  DirectSound:                                  [ platforms.windows ]
+  dx9base:                                      [ platforms.windows ]
+  dx9d3d:                                       [ platforms.windows ]
+  dx9d3dx:                                      [ platforms.windows ]
+  geomancy:                                     [ platforms.x86 ] # x86 intrinsics
+  gi-gtkosxapplication:                         [ platforms.darwin ]
+  gtk-mac-integration:                          [ platforms.darwin ]
+  gtk3-mac-integration:                         [ platforms.darwin ]
+  hommage-ds:                                   [ platforms.windows ]
+  hpapi:                                        [ platforms.linux ] # limited by pkgs.papi
+  hsignal:                                      [ platforms.x86 ] # -msse2
+  HFuse:                                        [ platforms.linux ]
+  hw-prim-bits:                                 [ platforms.x86 ] # x86 assembler
+  inline-asm:                                   [ platforms.x86 ] # x86 assembler
+  kqueue:                                       [ platforms.netbsd, platforms.freebsd, platforms.openbsd, platforms.darwin ]
+  linux-evdev:                                  [ platforms.linux ]
+  linux-file-extents:                           [ platforms.linux ]
+  linux-inotify:                                [ platforms.linux ]
+  linux-mount:                                  [ platforms.linux ]
+  linux-namespaces:                             [ platforms.linux ]
+  lxc:                                          [ platforms.linux ]
+  midi-alsa:                                    [ platforms.linux ]
+  reactivity:                                   [ platforms.windows ]
+  seqalign:                                     [ platforms.x86 ] # x86 intrinsics
+  udev:                                         [ platforms.linux ]
+  Win32-console:                                [ platforms.windows ]
+  Win32-dhcp-server:                            [ platforms.windows ]
+  Win32-errors:                                 [ platforms.windows ]
+  Win32-extras:                                 [ platforms.windows ]
+  Win32-junction-point:                         [ platforms.windows ]
+  Win32-notify:                                 [ platforms.windows ]
+  Win32:                                        [ platforms.windows ]
+  Win32-security:                               [ platforms.windows ]
+  Win32-services:                               [ platforms.windows ]
+  Win32-services-wrapper:                       [ platforms.windows ]
+  XInput:                                       [ platforms.windows ]
 
 dont-distribute-packages:
   # Depends on shine, which is a ghcjs project.
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
index a6a478fb37f4e..a7f461652b7ed 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/stackage.yaml
@@ -1,4 +1,4 @@
-# Stackage LTS 19.9
+# Stackage LTS 19.12
 # This file is auto-generated by
 # maintainers/scripts/haskell/update-stackage.sh
 default-package-overrides:
@@ -8,10 +8,10 @@ default-package-overrides:
   - AC-Angle ==1.0
   - acc ==0.2.0.1
   - ace ==0.6
-  - acid-state ==0.16.1
+  - acid-state ==0.16.1.1
   - action-permutations ==0.0.0.1
   - active ==0.2.0.15
-  - ad ==4.5.1
+  - ad ==4.5.2
   - ad-delcont ==0.3.0.0
   - adjunctions ==4.4.1
   - adler32 ==0.1.2.0
@@ -25,7 +25,7 @@ default-package-overrides:
   - aeson-commit ==1.4
   - aeson-compat ==0.3.10
   - aeson-diff ==1.1.0.13
-  - aeson-extra ==0.5.1
+  - aeson-extra ==0.5.1.1
   - aeson-generic-compat ==0.0.1.3
   - aeson-optics ==1.1.1
   - aeson-pretty ==0.8.9
@@ -42,7 +42,7 @@ default-package-overrides:
   - alex ==3.2.7.1
   - alex-meta ==0.3.0.13
   - algebra ==4.3.1
-  - algebraic-graphs ==0.6
+  - algebraic-graphs ==0.6.1
   - align-audio ==0.0
   - Allure ==0.11.0.0
   - almost-fix ==0.0.2
@@ -231,7 +231,7 @@ default-package-overrides:
   - brick ==0.68.1
   - brittany ==0.14.0.2
   - broadcast-chan ==0.2.1.2
-  - brotli ==0.0.0.0
+  - brotli ==0.0.0.1
   - brotli-streams ==0.0.0.0
   - bsb-http-chunked ==0.0.0.4
   - bson ==0.4.0.1
@@ -239,9 +239,9 @@ default-package-overrides:
   - buffer-builder ==0.2.4.8
   - buffer-pipe ==0.0
   - bugsnag-haskell ==0.0.4.4
-  - bugsnag-hs ==0.2.0.8
+  - bugsnag-hs ==0.2.0.9
   - bugzilla-redhat ==1.0.0
-  - burrito ==2.0.1.0
+  - burrito ==2.0.1.1
   - butcher ==1.3.3.2
   - buttplug-hs-core ==0.1.0.1
   - bv ==0.5
@@ -256,7 +256,7 @@ default-package-overrides:
   - bytestring-conversion ==0.3.2
   - bytestring-lexing ==0.5.0.8
   - bytestring-mmap ==0.2.2
-  - bytestring-strict-builder ==0.4.5.5
+  - bytestring-strict-builder ==0.4.5.6
   - bytestring-to-vector ==0.3.0.1
   - bytestring-tree-builder ==0.2.7.9
   - bytestring-trie ==0.2.7
@@ -279,7 +279,7 @@ default-package-overrides:
   - cached-json-file ==0.1.1
   - cacophony ==0.10.1
   - calendar-recycling ==0.0.0.1
-  - call-alloy ==0.3
+  - call-alloy ==0.3.0.1
   - call-stack ==0.4.0
   - can-i-haz ==0.3.1.0
   - capability ==0.5.0.1
@@ -373,7 +373,7 @@ default-package-overrides:
   - comfort-fftw ==0.0
   - comfort-graph ==0.0.3.2
   - commonmark ==0.2.2
-  - commonmark-extensions ==0.2.3.1
+  - commonmark-extensions ==0.2.3.2
   - commonmark-pandoc ==0.2.1.2
   - commutative ==0.0.2
   - comonad ==5.0.8
@@ -429,9 +429,9 @@ default-package-overrides:
   - convertible ==1.1.1.1
   - cookie ==0.4.5
   - copr-api ==0.1.0
-  - core-data ==0.3.2.2
+  - core-data ==0.3.3.1
   - core-program ==0.4.6.4
-  - core-text ==0.3.7.1
+  - core-text ==0.3.7.2
   - countable ==1.0
   - covariance ==0.1.0.6
   - cpphs ==1.20.9.1
@@ -580,7 +580,7 @@ default-package-overrides:
   - dimensional ==1.4
   - di-monad ==1.3.1
   - directory-tree ==0.12.1
-  - direct-sqlite ==2.3.26
+  - direct-sqlite ==2.3.27
   - dirichlet ==0.1.0.6
   - discount ==0.1.1
   - discover-instances ==0.1.0.0
@@ -645,6 +645,7 @@ default-package-overrides:
   - either ==5.0.2
   - either-both ==0.1.1.1
   - either-unwrap ==1.1
+  - ekg-core ==0.1.1.7
   - elerea ==2.9.0
   - elf ==0.31
   - eliminators ==0.8
@@ -682,7 +683,7 @@ default-package-overrides:
   - errors ==2.3.0
   - errors-ext ==0.4.2
   - ersatz ==0.4.11
-  - esqueleto ==3.5.4.1
+  - esqueleto ==3.5.5.0
   - essence-of-live-coding ==0.2.6
   - essence-of-live-coding-gloss ==0.2.6
   - essence-of-live-coding-pulse ==0.2.6
@@ -812,7 +813,7 @@ default-package-overrides:
   - function-builder ==0.3.0.1
   - functor-classes-compat ==2.0.0.2
   - functor-combinators ==0.4.1.0
-  - fused-effects ==1.1.1.2
+  - fused-effects ==1.1.1.3
   - fusion-plugin ==0.2.4
   - fusion-plugin-types ==0.1.0
   - fuzzcheck ==0.1.1
@@ -824,7 +825,7 @@ default-package-overrides:
   - gd ==3000.7.3
   - gdp ==0.0.3.0
   - general-games ==1.1.1
-  - generic-aeson ==0.2.0.13
+  - generic-aeson ==0.2.0.14
   - generic-arbitrary ==0.2.2
   - generic-constraints ==1.1.1.1
   - generic-data ==0.9.2.1
@@ -914,7 +915,7 @@ default-package-overrides:
   - gi-pango ==1.0.25
   - githash ==0.1.6.2
   - github ==0.27
-  - github-release ==2.0.0.0
+  - github-release ==2.0.0.1
   - github-rest ==1.1.2
   - github-types ==0.2.1
   - github-webhooks ==0.15.0
@@ -1003,10 +1004,10 @@ default-package-overrides:
   - haskintex ==0.8.0.0
   - haskoin-core ==0.21.2
   - hasktags ==0.72.0
-  - hasql ==1.5.0.2
+  - hasql ==1.5.0.3
   - hasql-migration ==0.3.0
-  - hasql-notifications ==0.2.0.0
-  - hasql-optparse-applicative ==0.3.0.8
+  - hasql-notifications ==0.2.0.1
+  - hasql-optparse-applicative ==0.3.0.9
   - hasql-pool ==0.5.2.2
   - hasql-queue ==1.2.0.2
   - hasql-th ==0.4.0.14
@@ -1181,7 +1182,7 @@ default-package-overrides:
   - http-common ==0.8.3.4
   - http-conduit ==2.3.8
   - http-date ==0.0.11
-  - http-directory ==0.1.9
+  - http-directory ==0.1.10
   - http-download ==0.2.0.0
   - httpd-shed ==0.4.1.1
   - http-io-streams ==0.1.6.1
@@ -1196,7 +1197,7 @@ default-package-overrides:
   - HUnit-approx ==1.1.1.1
   - hunit-dejafu ==2.0.0.5
   - hvect ==0.4.0.1
-  - hvega ==0.12.0.2
+  - hvega ==0.12.0.3
   - hw-balancedparens ==0.4.1.2
   - hw-bits ==0.7.2.2
   - hw-conduit ==0.2.1.1
@@ -1247,7 +1248,7 @@ default-package-overrides:
   - if ==0.1.0.0
   - iff ==0.0.6
   - ihaskell ==0.10.2.2
-  - ihaskell-hvega ==0.5.0.2
+  - ihaskell-hvega ==0.5.0.3
   - ihs ==0.1.0.3
   - ilist ==0.4.0.1
   - imagesize-conduit ==1.1
@@ -1300,7 +1301,7 @@ default-package-overrides:
   - io-streams ==1.5.2.1
   - ip6addr ==1.0.3
   - iproute ==1.7.12
-  - IPv6Addr ==2.0.4
+  - IPv6Addr ==2.0.5
   - ipynb ==0.2
   - ipython-kernel ==0.10.2.2
   - irc ==0.6.1.0
@@ -1325,8 +1326,8 @@ default-package-overrides:
   - js-flot ==0.8.3
   - js-jquery ==3.3.1
   - json ==0.10
-  - json-feed ==2.0.0.1
-  - jsonifier ==0.2.0.1
+  - json-feed ==2.0.0.3
+  - jsonifier ==0.2.1.1
   - jsonpath ==0.2.1.0
   - json-stream ==0.4.4.1
   - JuicyPixels ==3.3.7
@@ -1340,9 +1341,9 @@ default-package-overrides:
   - kanji ==3.5.0
   - katip ==0.8.7.2
   - katip-logstash ==0.1.0.2
-  - katip-wai ==0.1.1.0
+  - katip-wai ==0.1.2.0
   - kazura-queue ==0.1.0.4
-  - keep-alive ==0.2.0.0
+  - keep-alive ==0.2.1.0
   - keycode ==0.2.2
   - keys ==3.12.3
   - ki ==0.2.0.1
@@ -1355,7 +1356,7 @@ default-package-overrides:
   - krank ==0.2.3
   - l10n ==0.1.0.1
   - labels ==0.3.3
-  - lackey ==2.0.0.1
+  - lackey ==2.0.0.2
   - LambdaHack ==0.11.0.0
   - lame ==0.2.0
   - language-bash ==0.9.2
@@ -1512,6 +1513,7 @@ default-package-overrides:
   - messagepack ==0.5.5
   - metrics ==0.4.1.1
   - mfsolve ==0.3.2.1
+  - microaeson ==0.1.0.1
   - microlens ==0.4.12.0
   - microlens-aeson ==2.4.1
   - microlens-contra ==0.1.0.2
@@ -1531,6 +1533,7 @@ default-package-overrides:
   - mime-types ==0.1.0.9
   - minimal-configuration ==0.1.4
   - minimorph ==0.3.0.0
+  - minio-hs ==1.6.0
   - miniutter ==0.5.1.1
   - min-max-pqueue ==0.1.0.2
   - mintty ==0.1.3
@@ -1611,14 +1614,14 @@ default-package-overrides:
   - mwc-random-monad ==0.7.3.1
   - mx-state-codes ==1.0.0.0
   - mysql ==0.2.1
-  - mysql-simple ==0.4.8
+  - mysql-simple ==0.4.8.1
   - n2o ==0.11.1
   - n2o-nitro ==0.11.2
   - nagios-check ==0.3.2
   - named ==0.3.0.1
   - names-th ==0.3.0.1
   - nano-erl ==0.1.0.1
-  - NanoID ==3.2.0
+  - NanoID ==3.2.1
   - nanospec ==0.2.2
   - nanovg ==0.8.0.0
   - nats ==1.1.2
@@ -1689,7 +1692,7 @@ default-package-overrides:
   - NumInstances ==1.4
   - numtype-dk ==0.5.0.3
   - nuxeo ==0.3.2
-  - nvim-hs ==2.2.0.1
+  - nvim-hs ==2.2.0.2
   - ObjectName ==1.1.0.2
   - ochintin-daicho ==0.3.4.2
   - o-clock ==1.2.1.1
@@ -1746,7 +1749,7 @@ default-package-overrides:
   - pandoc ==2.17.1.1
   - pandoc-csv2table ==1.0.9
   - pandoc-dhall-decoder ==0.1.0.1
-  - pandoc-lua-marshal ==0.1.5.1
+  - pandoc-lua-marshal ==0.1.6.1
   - pandoc-plot ==1.4.1
   - pandoc-throw ==0.1.0.0
   - pandoc-types ==1.22.2
@@ -1796,7 +1799,7 @@ default-package-overrides:
   - peano ==0.1.0.1
   - pem ==0.2.4
   - percent-format ==0.0.2
-  - peregrin ==0.3.2
+  - peregrin ==0.3.3
   - perf ==0.9.0
   - perfect-hash-generator ==0.2.0.6
   - persist ==0.1.1.5
@@ -1948,7 +1951,7 @@ default-package-overrides:
   - pulse-simple ==0.1.14
   - pureMD5 ==2.1.4
   - purescript-bridge ==0.14.0.0
-  - pusher-http-haskell ==2.1.0.9
+  - pusher-http-haskell ==2.1.0.10
   - pvar ==1.0.0.0
   - PyF ==0.10.2.0
   - qchas ==1.1.0.1
@@ -1979,7 +1982,7 @@ default-package-overrides:
   - rainbow ==0.34.2.2
   - rainbox ==0.26.0.0
   - ral ==0.2.1
-  - rampart ==2.0.0.0
+  - rampart ==2.0.0.1
   - ramus ==0.1.2
   - rando ==0.0.0.4
   - random ==1.2.1.1
@@ -1995,7 +1998,7 @@ default-package-overrides:
   - rank2classes ==1.4.4
   - Rasterific ==0.7.5.4
   - rasterific-svg ==0.3.3.2
-  - ratel ==2.0.0.0
+  - ratel ==2.0.0.3
   - rate-limit ==1.4.2
   - ratel-wai ==2.0.0.0
   - rattle ==0.2
@@ -2088,7 +2091,7 @@ default-package-overrides:
   - rope-utf16-splay ==0.3.2.0
   - rosezipper ==0.2
   - rot13 ==0.2.0.1
-  - rpmbuild-order ==0.4.5
+  - rpmbuild-order ==0.4.8
   - rpm-nvr ==0.1.2
   - rp-tree ==0.7.1
   - RSA ==2.4.1
@@ -2213,7 +2216,7 @@ default-package-overrides:
   - ShellCheck ==0.8.0
   - shell-conduit ==5.0.0
   - shell-escape ==0.2.0
-  - shellmet ==0.0.4.0
+  - shellmet ==0.0.4.1
   - shelltestrunner ==1.9
   - shell-utility ==0.1
   - shelly ==1.10.0
@@ -2244,7 +2247,7 @@ default-package-overrides:
   - siphash ==1.0.3
   - Sit ==0.2022.3.18
   - sitemap-gen ==0.1.0.0
-  - sized ==1.0.0.0
+  - sized ==1.0.0.1
   - skein ==1.0.9.4
   - skews ==0.1.0.3
   - skip-var ==0.1.1.0
@@ -2295,7 +2298,7 @@ default-package-overrides:
   - spreadsheet ==0.1.3.8
   - sqlcli ==0.2.2.0
   - sqlcli-odbc ==0.2.0.1
-  - sqlite-simple ==0.4.18.0
+  - sqlite-simple ==0.4.18.2
   - sql-words ==0.1.6.4
   - squeather ==0.8.0.0
   - srcloc ==0.6.0.1
@@ -2367,7 +2370,7 @@ default-package-overrides:
   - stripe-scotty ==1.1.0.2
   - stripe-signature ==1.0.0.14
   - stripe-wreq ==1.0.1.14
-  - strive ==6.0.0.2
+  - strive ==6.0.0.3
   - strong-path ==1.1.4.0
   - structs ==0.1.6
   - structured ==0.1.1
@@ -2379,7 +2382,7 @@ default-package-overrides:
   - svg-builder ==0.1.1
   - SVGFonts ==1.8.0.1
   - svg-tree ==0.6.2.4
-  - swagger2 ==2.8.2
+  - swagger2 ==2.8.4
   - swish ==0.10.2.0
   - syb ==0.7.2.1
   - sydtest-discover ==0.0.0.1
@@ -2444,7 +2447,7 @@ default-package-overrides:
   - tdigest ==0.2.1.1
   - teardown ==0.5.0.1
   - telegram-bot-simple ==0.4.5
-  - template-haskell-compat-v0208 ==0.1.7
+  - template-haskell-compat-v0208 ==0.1.9
   - temporary ==1.3
   - temporary-rc ==1.2.0.3
   - temporary-resourcet ==0.1.0.1
@@ -2532,7 +2535,7 @@ default-package-overrides:
   - tinylog ==0.15.0
   - titlecase ==1.0.1
   - tldr ==0.9.2
-  - tls ==1.5.7
+  - tls ==1.5.8
   - tls-debug ==0.4.8
   - tls-session-manager ==0.0.4
   - tlynx ==0.6.1.1
@@ -2544,7 +2547,7 @@ default-package-overrides:
   - topograph ==1.0.0.1
   - torsor ==0.1
   - tostring ==0.2.1.1
-  - tracing ==0.0.7.2
+  - tracing ==0.0.7.3
   - tracing-control ==0.0.7.3
   - transaction ==0.1.1.3
   - transformers-base ==0.4.6
@@ -2575,7 +2578,7 @@ default-package-overrides:
   - twitter-types ==0.11.0
   - twitter-types-lens ==0.11.0
   - TypeCompose ==0.9.14
-  - typed-process ==0.2.8.0
+  - typed-process ==0.2.10.1
   - type-equality ==1
   - type-errors ==0.2.0.0
   - type-errors-pretty ==0.0.1.2
@@ -2584,7 +2587,7 @@ default-package-overrides:
   - type-level-integers ==0.0.1
   - type-level-kv-list ==1.1.0
   - type-level-natural-number ==2.0
-  - type-level-numbers ==0.1.1.1
+  - type-level-numbers ==0.1.1.2
   - typelits-witnesses ==0.4.0.0
   - type-map ==0.1.7.0
   - type-natural ==1.1.0.1
@@ -2638,7 +2641,7 @@ default-package-overrides:
   - unliftio ==0.2.22.0
   - unliftio-core ==0.2.0.1
   - unliftio-path ==0.0.2.0
-  - unliftio-pool ==0.2.1.1
+  - unliftio-pool ==0.2.2.0
   - unliftio-streams ==0.1.1.1
   - unlit ==0.4.0.0
   - unordered-containers ==0.2.17.0
@@ -2715,7 +2718,7 @@ default-package-overrides:
   - wai-enforce-https ==1.0.0.0
   - wai-eventsource ==3.0.0
   - wai-extra ==3.1.12.1
-  - wai-feature-flags ==0.1.0.3
+  - wai-feature-flags ==0.1.0.4
   - wai-handler-launch ==3.0.3.1
   - wai-logger ==2.4.0
   - wai-middleware-caching ==0.1.0.2
@@ -2742,9 +2745,9 @@ default-package-overrides:
   - wcwidth ==0.0.2
   - webex-teams-api ==0.2.0.1
   - webex-teams-conduit ==0.2.0.1
-  - webgear-core ==1.0.1
-  - webgear-openapi ==1.0.1
-  - webgear-server ==1.0.1
+  - webgear-core ==1.0.2
+  - webgear-openapi ==1.0.2
+  - webgear-server ==1.0.2
   - webpage ==0.0.5.1
   - web-plugins ==0.4.1
   - web-routes ==0.27.14.4
@@ -2765,6 +2768,7 @@ default-package-overrides:
   - windns ==0.1.0.1
   - wire-streams ==0.1.1.0
   - witch ==1.0.0.2
+with-compiler: ghc-9.0.2
   - withdependencies ==0.3.0
   - witherable ==0.4.2
   - within ==0.2.0.1
@@ -2792,7 +2796,7 @@ default-package-overrides:
   - X11 ==1.10.2
   - X11-xft ==0.3.4
   - x11-xim ==0.0.9.0
-  - x509 ==1.7.6
+  - x509 ==1.7.7
   - x509-store ==1.6.9
   - x509-system ==1.6.7
   - x509-validation ==1.6.12
@@ -2847,7 +2851,7 @@ default-package-overrides:
   - yesod-markdown ==0.12.6.13
   - yesod-newsfeed ==1.7.0.0
   - yesod-page-cursor ==2.0.1.0
-  - yesod-paginator ==1.1.2.1
+  - yesod-paginator ==1.1.2.2
   - yesod-persistent ==1.6.0.8
   - yesod-recaptcha2 ==1.0.2
   - yesod-routes-flow ==3.0.0.2
diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
index d0668b13a404e..fe20afdc4e712 100644
--- a/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
+++ b/pkgs/development/haskell-modules/configuration-hackage2nix/transitive-broken.yaml
@@ -338,17 +338,10 @@ dont-distribute-packages:
  - Shellac-haskeline
  - Shellac-readline
  - ShortestPathProblems
- - Shpadoinkle
- - Shpadoinkle-backend-pardiff
- - Shpadoinkle-backend-snabbdom
- - Shpadoinkle-backend-static
  - Shpadoinkle-developer-tools
  - Shpadoinkle-disembodied
  - Shpadoinkle-examples
- - Shpadoinkle-html
- - Shpadoinkle-lens
  - Shpadoinkle-router
- - Shpadoinkle-streaming
  - Shpadoinkle-template
  - Shpadoinkle-widgets
  - SimpleGL
@@ -650,7 +643,6 @@ dont-distribute-packages:
  - apiary-websockets
  - apis
  - apotiki
- - appendful-persistent
  - approx-rand-test
  - arbor-monad-metric-datadog
  - archive-tar-bytestring
@@ -692,10 +684,6 @@ dont-distribute-packages:
  - audiovisual
  - aura
  - authoring
- - autodocodec-openapi3
- - autodocodec-schema
- - autodocodec-swagger2
- - autodocodec-yaml
  - automata
  - autonix-deps-kf5
  - avers
@@ -878,7 +866,6 @@ dont-distribute-packages:
  - cabal-query
  - cabal-test
  - cabal2arch
- - cabal2json
  - cabalmdvrpm
  - cabalrpmdeps
  - cabocha
@@ -923,7 +910,6 @@ dont-distribute-packages:
  - categorical-algebra
  - category
  - category-extras
- - cautious-gen
  - cctools-workqueue
  - cef3-simple
  - ceilometer-common
@@ -1040,7 +1026,6 @@ dont-distribute-packages:
  - commsec-keyexchange
  - comonad-random
  - compact-mutable
- - compactable
  - compdata-automata
  - compdata-dags
  - compdata-param
@@ -1140,7 +1125,6 @@ dont-distribute-packages:
  - csv-enumerator
  - ctpl
  - cube
- - cuckoo
  - curryer-rpc
  - cursedcsv
  - cv-combinators
@@ -1291,6 +1275,9 @@ dont-distribute-packages:
  - dobutokO4
  - doc-review
  - dom-parser
+ - domain
+ - domain-aeson
+ - domain-cereal
  - dormouse-client
  - dotparse
  - doublezip
@@ -1387,7 +1374,6 @@ dont-distribute-packages:
  - eventsource-stub-store
  - every-bit-counts
  - exception-monads-fd
- - exchangerates
  - exference
  - exinst-aeson
  - exinst-bytes
@@ -1445,7 +1431,6 @@ dont-distribute-packages:
  - feed-translator
  - feed2lj
  - feed2twitter
- - feedback
  - fei-base
  - fei-dataiter
  - fei-datasets
@@ -1474,7 +1459,6 @@ dont-distribute-packages:
  - fixed-point-vector
  - fixed-point-vector-space
  - fixed-precision
- - fixer
  - fixhs
  - flac-picture
  - flashblast
@@ -1573,17 +1557,7 @@ dont-distribute-packages:
  - geni-util
  - geniconvert
  - geniserver
- - genvalidity-aeson
- - genvalidity-appendful
- - genvalidity-hspec-aeson
  - genvalidity-mergeful
- - genvalidity-mergeless
- - genvalidity-sydtest
- - genvalidity-sydtest-aeson
- - genvalidity-sydtest-hashable
- - genvalidity-sydtest-lens
- - genvalidity-sydtest-persistent
- - genvalidity-typed-uuid
  - geodetic
  - geolite-csv
  - getemx
@@ -1598,7 +1572,6 @@ dont-distribute-packages:
  - ghc-session
  - ghc-tags-plugin
  - ghci-pretty
- - ghcjs-dom-hello
  - ghcjs-dom-webkit
  - ghcjs-fetch
  - ghcjs-hplay
@@ -1964,12 +1937,13 @@ dont-distribute-packages:
  - hascat-setup
  - hascat-system
  - hashable-accelerate
- - hashes
  - hashflare
  - hask-home
  - haskades
  - haskdeep
  - haskeem
+ - haskell-admin
+ - haskell-admin-managed-functions
  - haskell-aliyun
  - haskell-bitmex-client
  - haskell-docs
@@ -2200,6 +2174,7 @@ dont-distribute-packages:
  - hranker
  - hreq-client
  - hreq-conduit
+ - hriemann
  - hs
  - hs-blake2
  - hs-ffmpeg
@@ -2207,6 +2182,7 @@ dont-distribute-packages:
  - hs-ix
  - hs-opentelemetry-exporter-in-memory
  - hs-opentelemetry-exporter-otlp
+ - hs-opentelemetry-instrumentation-cloudflare
  - hs-opentelemetry-instrumentation-conduit
  - hs-opentelemetry-instrumentation-http-client
  - hs-opentelemetry-instrumentation-persistent
@@ -2433,7 +2409,6 @@ dont-distribute-packages:
  - jobqueue
  - join
  - jordan-openapi
- - jsaddle-hello
  - jsc
  - jsmw
  - json-ast-json-encoder
@@ -2521,7 +2496,6 @@ dont-distribute-packages:
  - labyrinth
  - labyrinth-server
  - laika
- - lambda-calculator
  - lambda-devs
  - lambda-options
  - lambdaFeed
@@ -2703,6 +2677,8 @@ dont-distribute-packages:
  - majordomo
  - majority
  - make-package
+ - managed-functions-http-connector
+ - managed-functions-json
  - manatee
  - manatee-all
  - manatee-anything
@@ -2751,7 +2727,6 @@ dont-distribute-packages:
  - memis
  - memory-hexstring
  - mergeful-persistent
- - mergeless-persistent
  - merkle-patricia-db
  - meta-par-accelerate
  - metaplug
@@ -2987,7 +2962,6 @@ dont-distribute-packages:
  - opc-xml-da-client
  - open-adt-tutorial
  - openai-hs
- - openapi3-code-generator
  - opencv-extra
  - openpgp-Crypto
  - openpgp-crypto-api
@@ -3200,7 +3174,6 @@ dont-distribute-packages:
  - proto3-wire
  - protobuf-native
  - protocol-buffers-descriptor-fork
- - proton
  - psc-ide
  - psql
  - ptera
@@ -3348,6 +3321,7 @@ dont-distribute-packages:
  - regions-monadsfd
  - regions-monadstf
  - regions-mtl
+ - registry-aeson
  - registry-hedgehog
  - registry-hedgehog-aeson
  - registry-messagepack
@@ -3452,9 +3426,6 @@ dont-distribute-packages:
  - runtime-arbitrary
  - rv
  - s-expression
- - safe-coloured-text-gen
- - safe-coloured-text-layout
- - safe-coloured-text-layout-gen
  - safe-coupling
  - safe-plugins
  - safer-file-handles
@@ -3762,7 +3733,6 @@ dont-distribute-packages:
  - sump
  - sunroof-examples
  - sunroof-server
- - super-user-spark
  - supercollider-ht
  - supercollider-midi
  - superconstraints
@@ -3775,25 +3745,10 @@ dont-distribute-packages:
  - sweet-egison
  - switch
  - syb-with-class-instances-text
- - sydtest
- - sydtest-aeson
  - sydtest-amqp
- - sydtest-hedgehog
- - sydtest-hedis
- - sydtest-hspec
- - sydtest-mongo
- - sydtest-persistent
- - sydtest-persistent-postgresql
- - sydtest-persistent-sqlite
- - sydtest-process
- - sydtest-rabbitmq
- - sydtest-servant
- - sydtest-typed-process
- - sydtest-wai
  - sydtest-webdriver
  - sydtest-webdriver-screenshot
  - sydtest-webdriver-yesod
- - sydtest-yesod
  - sylvia
  - sym-plot
  - symantic-atom
@@ -3855,6 +3810,7 @@ dont-distribute-packages:
  - test-simple
  - testbench
  - text-all
+ - text-builder-dev_0_3_3
  - text-generic-pretty
  - text-json-qq
  - text-locale-encoding
@@ -3895,7 +3851,6 @@ dont-distribute-packages:
  - to-string-instances
  - toboggan
  - todos
- - token-limiter-concurrent
  - toktok
  - tomlcheck
  - tonatona
@@ -3977,7 +3932,6 @@ dont-distribute-packages:
  - typed-admin
  - typed-encoding-encoding
  - typed-streams
- - typed-uuid
  - typelevel
  - typelevel-rewrite-rules
  - typesafe-precure
diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix
index f1396fd0dd78a..ba5d70682a8c3 100644
--- a/pkgs/development/haskell-modules/configuration-nix.nix
+++ b/pkgs/development/haskell-modules/configuration-nix.nix
@@ -99,6 +99,19 @@ self: super: builtins.intersectAttrs super {
   ormolu = enableSeparateBinOutput super.ormolu;
   ghcid = enableSeparateBinOutput super.ghcid;
 
+  arbtt = overrideCabal (drv: {
+    # The test suite needs the packages's executables in $PATH to succeed.
+    preCheck = ''
+      for i in $PWD/dist/build/*; do
+        export PATH="$i:$PATH"
+      done
+    '';
+    # One test uses timezone data
+    testToolDepends = drv.testToolDepends or [] ++ [
+      pkgs.tzdata
+    ];
+  }) super.arbtt;
+
   hzk = overrideCabal (drv: {
     preConfigure = "sed -i -e /include-dirs/d hzk.cabal";
     configureFlags = [ "--extra-include-dirs=${pkgs.zookeeper_mt}/include/zookeeper" ];
@@ -759,40 +772,9 @@ self: super: builtins.intersectAttrs super {
     })
     (generateOptparseApplicativeCompletion "pnbackup" super.pinboard-notes-backup);
 
-  # set more accurate set of platforms instead of maintaining
-  # an ever growing list of platforms to exclude via unsupported-platforms
-  cpuid = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.cpuid;
-
   # Pass the correct libarchive into the package.
   streamly-archive = super.streamly-archive.override { archive = pkgs.libarchive; };
 
-  # passes the -msse2 flag which only works on x86 platforms
-  hsignal = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.hsignal;
-
-  # uses x86 intrinsics
-  blake3 = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.blake3;
-
-  # uses x86 intrinsics, see also https://github.com/NixOS/nixpkgs/issues/122014
-  crc32c = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.crc32c;
-
-  # uses x86 intrinsics
-  seqalign = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.seqalign;
-
-  # uses x86 intrinsics
-  geomancy = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.geomancy;
-
   hlint = overrideCabal (drv: {
     postInstall = ''
       install -Dm644 data/hlint.1 -t "$out/share/man/man1"
@@ -811,16 +793,6 @@ self: super: builtins.intersectAttrs super {
     ] ++ (drv.librarySystemDepends or []);
   }) super.taglib;
 
-  # uses x86 assembler
-  inline-asm = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.inline-asm;
-
-  # uses x86 assembler in C bits
-  hw-prim-bits = overrideCabal {
-    platforms = pkgs.lib.platforms.x86;
-  } super.hw-prim-bits;
-
   # random 1.2.0 has tests that indirectly depend on
   # itself causing an infinite recursion at evaluation
   # time
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index 2ddaee1319272..706c6a36ee211 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -66,6 +66,7 @@ self: {
        description = "A tetris-like game (works with GHC 6.8.3 and Gtk2hs 0.9.13)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "4Blocks";
      }) {};
 
   "AAI" = callPackage
@@ -382,6 +383,7 @@ self: {
        description = "foundational type classes for approximating exact real numbers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toolAERN-bench-csv-to-gnuplot";
        broken = true;
      }) {};
 
@@ -616,7 +618,7 @@ self: {
        libraryHaskellDepends = [ base regex-compat Win32 ];
        description = "A binding to a part of the ANSI escape code for the console";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "AbortT-monadstf" = callPackage
@@ -684,6 +686,7 @@ self: {
        description = "An easy-to-use video game framework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "actionkid";
        broken = true;
      }) {};
 
@@ -701,6 +704,7 @@ self: {
        description = "Library for incremental computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spreadsheet";
        broken = true;
      }) {};
 
@@ -717,6 +721,7 @@ self: {
        description = "Library for incremental computing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spreadsheet";
        broken = true;
      }) {};
 
@@ -732,6 +737,7 @@ self: {
        description = "Lisperati's adventure game in Lisp translated to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "advgame";
      }) {};
 
   "Advise-me" = callPackage
@@ -817,6 +823,8 @@ self: {
        pname = "Agda";
        version = "2.6.2.2";
        sha256 = "0yjjbhc593ylrm4mq4j01nkdvh7xqsg5in30wxj4y53vf5hkggp5";
+       revision = "1";
+       editedCabalFile = "0ahdsyrcrj0qm4zwsmcjrpq3a8w2yxp2hgpsjfl9b7a2b7k05pz2";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -835,7 +843,7 @@ self: {
        executableToolDepends = [ emacs ];
        description = "A dependently typed functional programming language and proof assistant";
        license = "unknown";
-       maintainers = with lib.maintainers; [ abbradar turion ];
+       maintainers = [ lib.maintainers.abbradar lib.maintainers.turion ];
      }) {inherit (pkgs) emacs;};
 
   "Agda-executable" = callPackage
@@ -850,6 +858,7 @@ self: {
        description = "Command-line program for type-checking and compiling Agda programs";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda";
        broken = true;
      }) {};
 
@@ -919,6 +928,7 @@ self: {
        description = "Algorithmic music composition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-exe";
      }) {};
 
   "AlgorithmW" = callPackage
@@ -933,6 +943,7 @@ self: {
        description = "Example implementation of Algorithm W for Hindley-Milner type inference";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "AlgorithmW";
        broken = true;
      }) {};
 
@@ -978,10 +989,9 @@ self: {
        ];
        description = "Near-future Sci-Fi roguelike and tactical squad combat game";
        license = lib.licenses.agpl3Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Allure";
      }) {};
 
   "AndroidViewHierarchyImporter" = callPackage
@@ -1002,6 +1012,7 @@ self: {
        description = "Android view hierarchy importer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "AndroidViewHierarchyImporter";
      }) {};
 
   "Animas" = callPackage
@@ -1041,6 +1052,7 @@ self: {
        executableHaskellDepends = [ base mtl parsec xhtml ];
        description = "Convert ANSI Terminal Sequences to nice HTML markup";
        license = lib.licenses.bsd3;
+       mainProgram = "ansi2html";
      }) {};
 
   "Aoide" = callPackage
@@ -1076,6 +1088,7 @@ self: {
        description = "Library for Apple Push Notification Service";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "applepushtest";
      }) {};
 
   "AppleScript" = callPackage
@@ -1202,6 +1215,7 @@ self: {
        description = "Visualisation of Strange Attractors in 3-Dimensions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Attrac";
        broken = true;
      }) {};
 
@@ -1217,6 +1231,7 @@ self: {
        description = "Yet another parser generator for C/C++";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Aurochs";
        broken = true;
      }) {};
 
@@ -1285,6 +1300,7 @@ self: {
        description = "Big Contact Map Tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bcmtools";
        broken = true;
      }) {};
 
@@ -1314,6 +1330,7 @@ self: {
        testToolDepends = [ alex happy hspec-discover ];
        description = "A compiler front-end generator";
        license = lib.licenses.bsd3;
+       mainProgram = "bnfc";
      }) {};
 
   "BNFC-meta" = callPackage
@@ -1359,6 +1376,7 @@ self: {
        description = "Translations of classic Truth Maintenance Systems";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbps";
        broken = true;
      }) {};
 
@@ -1421,6 +1439,7 @@ self: {
        description = "An ad-hoc P2P chat program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Barracuda";
      }) {};
 
   "Befunge93" = callPackage
@@ -1435,6 +1454,7 @@ self: {
        description = "An interpreter for the Befunge-93 Programming Language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Befunge93";
        broken = true;
      }) {};
 
@@ -1525,6 +1545,7 @@ self: {
        executableHaskellDepends = [ array base bmp bytestring gloss ];
        description = "Image editor for pixel art";
        license = lib.licenses.bsd3;
+       mainProgram = "BigPixel";
      }) {};
 
   "BinderAnn" = callPackage
@@ -1722,6 +1743,7 @@ self: {
        ];
        description = "streaming FASTA parser";
        license = lib.licenses.bsd3;
+       mainProgram = "fastaextract";
      }) {};
 
   "BiobaseHTTP" = callPackage
@@ -1800,6 +1822,7 @@ self: {
        description = "Infernal data structures and tools";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmsearchFilter";
      }) {};
 
   "BiobaseMAF" = callPackage
@@ -1840,6 +1863,7 @@ self: {
        description = "Newick file format parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TestForestStructure";
        broken = true;
      }) {};
 
@@ -1861,6 +1885,7 @@ self: {
        description = "RNA folding training data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MkTrainingData";
      }) {};
 
   "BiobaseTurner" = callPackage
@@ -1970,6 +1995,7 @@ self: {
        ];
        description = "Efficient RNA/DNA/Protein Primary/Secondary Structure";
        license = lib.licenses.bsd3;
+       mainProgram = "SubOptDistance";
      }) {};
 
   "BirdPP" = callPackage
@@ -1984,6 +2010,7 @@ self: {
        description = "A preprocessor for Bird-style Literate Haskell comments with Haddock markup";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BirdPP";
      }) {};
 
   "BitStringRandomMonad" = callPackage
@@ -2034,6 +2061,27 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "Blammo" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, case-insensitive, clock
+     , containers, envparse, exceptions, fast-logger, hspec, http-types
+     , lens, markdown-unlit, monad-logger-aeson, text, time
+     , unliftio-core, unordered-containers, vector, wai
+     }:
+     mkDerivation {
+       pname = "Blammo";
+       version = "1.0.1.1";
+       sha256 = "1ysfy8crdm6j3l80hw9rdr4rqsxyhywp3rf8m9yjygmhrndx38ih";
+       libraryHaskellDepends = [
+         aeson base bytestring case-insensitive clock containers envparse
+         exceptions fast-logger http-types lens monad-logger-aeson text time
+         unliftio-core unordered-containers vector wai
+       ];
+       testHaskellDepends = [ aeson base hspec markdown-unlit text ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Batteries-included Structured Logging library";
+       license = lib.licenses.mit;
+     }) {};
+
   "BlastHTTP" = callPackage
     ({ mkDerivation, base, BiobaseBlast, BiobaseFasta, bytestring
      , conduit, either-unwrap, HTTP, http-conduit, hxt, mtl, network
@@ -2072,6 +2120,7 @@ self: {
        description = "Diagram editor";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blobs";
      }) {};
 
   "BlogLiterately" = callPackage
@@ -2096,6 +2145,7 @@ self: {
        executableHaskellDepends = [ base cmdargs ];
        description = "A tool for posting Haskelly articles to blogs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "BlogLiterately";
      }) {};
 
   "BlogLiterately-diagrams" = callPackage
@@ -2118,6 +2168,7 @@ self: {
        description = "Include images in blog posts with inline diagrams code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BlogLiteratelyD";
      }) {};
 
   "Blogdown" = callPackage
@@ -2147,6 +2198,7 @@ self: {
        description = "A markdown-like markup language designed for blog posts";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Blogdown";
        broken = true;
      }) {};
 
@@ -2193,6 +2245,7 @@ self: {
        description = "A simple document organizer with some wiki functionality";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bookshelf";
      }) {};
 
   "Boolean" = callPackage
@@ -2271,6 +2324,7 @@ self: {
        description = "Hits a set of urls periodically to bust caches";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buster";
        broken = true;
      }) {};
 
@@ -2412,6 +2466,7 @@ self: {
        description = "preprocessor and library for Causal Commutative Arrows (CCA)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ccap";
        broken = true;
      }) {};
 
@@ -2477,6 +2532,7 @@ self: {
        description = "Infernal covariance model comparison";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "CMCompare";
      }) {};
 
   "CMQ" = callPackage
@@ -2522,6 +2578,7 @@ self: {
        description = "A simple Brainfuck interpretter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bf";
      }) {};
 
   "CPL" = callPackage
@@ -2537,6 +2594,7 @@ self: {
        ];
        description = "An interpreter of Hagino's Categorical Programming Language (CPL)";
        license = lib.licenses.bsd3;
+       mainProgram = "cpl";
      }) {};
 
   "CSPM-CoreLanguage" = callPackage
@@ -2642,6 +2700,7 @@ self: {
        description = "cspm command line tool for analyzing CSPM specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cspm";
      }) {};
 
   "CTRex" = callPackage
@@ -2891,6 +2950,7 @@ self: {
        description = "Search cabal packages by name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalsearch";
        broken = true;
      }) {};
 
@@ -2945,6 +3005,7 @@ self: {
        description = "A translation from the Carneades argumentation model into Dung's AFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caell";
      }) {};
 
   "Cartesian" = callPackage
@@ -3173,6 +3234,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Tests of the Charts library";
        license = lib.licenses.bsd3;
+       mainProgram = "chart-harness";
      }) {};
 
   "ChasingBottoms" = callPackage
@@ -3205,6 +3267,7 @@ self: {
        executableHaskellDepends = [ base containers directory ];
        description = "A Haskell cheat sheet in PDF and literate formats";
        license = lib.licenses.bsd3;
+       mainProgram = "cheatsheet";
      }) {};
 
   "Checked" = callPackage
@@ -3232,6 +3295,7 @@ self: {
        description = "A platform independent mechanism to render graphics using vnc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Chitra";
        broken = true;
      }) {};
 
@@ -3356,6 +3420,7 @@ self: {
        description = "Libary for parsing Clustal tools output";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ClustalParserTest";
      }) {};
 
   "Coadjute" = callPackage
@@ -3443,6 +3508,7 @@ self: {
        description = "A concurrent bittorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Combinatorrent";
      }) {};
 
   "Command" = callPackage
@@ -3479,6 +3545,7 @@ self: {
        description = "Watch some files; Rerun a command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "commando";
        broken = true;
      }) {};
 
@@ -3533,6 +3600,7 @@ self: {
        ];
        description = "Cluster algorithms, PCA, and chemical conformere analysis";
        license = lib.licenses.agpl3Only;
+       mainProgram = "conclusion";
      }) {};
 
   "Concurrent-Cache" = callPackage
@@ -3581,6 +3649,7 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "condor";
      }) {};
 
   "ConfigFile" = callPackage
@@ -3661,6 +3730,7 @@ self: {
        description = "Restart a command on STDIN activity";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conscript";
        broken = true;
      }) {};
 
@@ -3719,6 +3789,7 @@ self: {
        description = "Implementation of the context algebra";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ContextAlgebra";
        broken = true;
      }) {};
 
@@ -3955,6 +4026,7 @@ self: {
        description = "Real-Time Game Tournament Evaluator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DAG-Tournament";
        broken = true;
      }) {};
 
@@ -3985,6 +4057,7 @@ self: {
        ];
        description = "RFC 4918 WebDAV support";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hdav";
      }) {};
 
   "DBFunctor" = callPackage
@@ -4012,6 +4085,7 @@ self: {
        ];
        description = "DBFunctor - Functional Data Management => ETL/ELT Data Processing in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "dbfunctor-example";
      }) {};
 
   "DBlimited" = callPackage
@@ -4026,6 +4100,7 @@ self: {
        description = "A command-line SQL interface for flat files (tdf,csv,etc.)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBlimited";
        broken = true;
      }) {};
 
@@ -4065,6 +4140,7 @@ self: {
        description = "Distributed Mutation Analysis framework for MuCheck";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dummy";
      }) {};
 
   "DOH" = callPackage
@@ -4144,6 +4220,7 @@ self: {
        description = "Darcs Patch Manager";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dpm";
        broken = true;
      }) {};
 
@@ -4257,6 +4334,7 @@ self: {
        description = "Database Supported Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vldot";
      }) {};
 
   "DSTM" = callPackage
@@ -4335,6 +4413,7 @@ self: {
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dao";
        broken = true;
      }) {};
 
@@ -4404,6 +4483,7 @@ self: {
        description = "A package for adding index column to data files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DataIndex";
        broken = true;
      }) {};
 
@@ -4468,6 +4548,7 @@ self: {
        description = "Write clients for Meteor's DDP Protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deadpan";
        broken = true;
      }) {};
 
@@ -4583,6 +4664,7 @@ self: {
        description = "A demonstration interpreter for type system delta-lambda (of N.G. De-bruijn)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Delta-Lambda";
        broken = true;
      }) {};
 
@@ -4752,7 +4834,7 @@ self: {
        librarySystemDepends = [ dsound ];
        description = "Partial binding to the Microsoft DirectSound API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {dsound = null;};
 
   "DisTract" = callPackage
@@ -4807,6 +4889,7 @@ self: {
        description = "Hash modules (currently Murmur3)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Dish";
        broken = true;
      }) {};
 
@@ -4876,6 +4959,7 @@ self: {
        description = "Frameshift-aware alignment of protein sequences with DNA sequences";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DnaProteinAlignment";
      }) {};
 
   "DocTest" = callPackage
@@ -4894,6 +4978,7 @@ self: {
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
      }) {};
 
   "Docs" = callPackage
@@ -4924,6 +5009,7 @@ self: {
        description = "A tool for deriving hylomorphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DrHylo";
      }) {};
 
   "DrIFT" = callPackage
@@ -4973,6 +5059,7 @@ self: {
        description = "An implementation of the Dung argumentation frameworks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dungell";
        broken = true;
      }) {};
 
@@ -5206,6 +5293,7 @@ self: {
        executableToolDepends = [ happy ];
        description = "Peter's Syntax Diagram Drawing Tool";
        license = lib.licenses.bsd3;
+       mainProgram = "ebnf2ps";
      }) {};
 
   "EdisonAPI" = callPackage
@@ -5257,6 +5345,7 @@ self: {
        description = "Query language and report generator for edit logs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "report";
      }) {};
 
   "Eight-Ball-Pool-Hack-Cheats" = callPackage
@@ -5356,6 +5445,7 @@ self: {
        description = "derives heuristic rules from nominal data";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "emping";
        broken = true;
      }) {};
 
@@ -5458,6 +5548,7 @@ self: {
        description = "Render math formula in ASCII, and perform some simplifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eq";
        broken = true;
      }) {};
 
@@ -5532,6 +5623,7 @@ self: {
        description = "A new implementation of the LambdaMOO server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etamoo";
      }) {inherit (pkgs) pcre;};
 
   "Etage" = callPackage
@@ -5568,6 +5660,7 @@ self: {
        description = "Data-flow based graph algorithms";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etage-graph-test";
      }) {};
 
   "Eternal10Seconds" = callPackage
@@ -5583,6 +5676,7 @@ self: {
        description = "A 2-D shooting game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Eternal10Seconds";
      }) {};
 
   "Etherbunny" = callPackage
@@ -5605,6 +5699,7 @@ self: {
        description = "A network analysis toolkit for Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "etherbunny";
      }) {inherit (pkgs) libpcap;};
 
   "EuroIT" = callPackage
@@ -5626,15 +5721,15 @@ self: {
        pname = "Euterpea";
        version = "2.0.7";
        sha256 = "0kxdilxzg0dgz1684csbyfv4cifh9d92ac6pwp6dnrcwwpwskiw8";
+       revision = "1";
+       editedCabalFile = "1fdkjivbrp9q5vwiprjhpnpl9bir1qdiybc2hm52i016x3rx51d8";
        libraryHaskellDepends = [
          array arrows base bytestring containers deepseq ghc-prim HCodecs
          heap PortMidi random stm
        ];
        description = "Library for computer music research and education";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "EventSocket" = callPackage
@@ -5710,6 +5805,7 @@ self: {
        description = "Compose music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcomp";
      }) {};
 
   "FM-SBLEX" = callPackage
@@ -5776,9 +5872,7 @@ self: {
        librarySystemDepends = [ ftgl ];
        description = "Portable TrueType font rendering for OpenGL using the Freetype2 library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ftgl;};
 
   "FTGL-bytestring" = callPackage
@@ -5816,6 +5910,7 @@ self: {
        description = "A command-line FTP client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "FTPLine";
      }) {};
 
   "Facebook-Password-Hacker-Online-Latest-Version" = callPackage
@@ -5934,6 +6029,7 @@ self: {
        description = "Annotate ps and pdf documents";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flm";
      }) {};
 
   "FerryCore" = callPackage
@@ -5966,6 +6062,7 @@ self: {
        description = "Evaluation using F-Algebras";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Feval";
        broken = true;
      }) {};
 
@@ -6069,6 +6166,7 @@ self: {
        description = "File content extraction/rearrangement";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Files";
        broken = true;
      }) {};
 
@@ -6208,6 +6306,7 @@ self: {
        description = "Wiki";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flippi";
      }) {};
 
   "FloatingHex" = callPackage
@@ -6413,6 +6512,7 @@ self: {
        description = "Utilities to generate and solve puzzles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foster";
      }) {};
 
   "FpMLv53" = callPackage
@@ -6443,6 +6543,7 @@ self: {
        executableSystemDepends = [ libX11 ];
        description = "Generates colorful wallpapers";
        license = lib.licenses.mit;
+       mainProgram = "FractalArt";
      }) {inherit (pkgs.xorg) libX11;};
 
   "Fractaler" = callPackage
@@ -6460,6 +6561,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Fractaler";
        broken = true;
      }) {};
 
@@ -6588,6 +6690,7 @@ self: {
        description = "An experimental programming language with typed algebraic effects";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frank";
      }) {};
 
   "FreeTypeGL" = callPackage
@@ -6641,6 +6744,7 @@ self: {
        description = "Funge-98 interpreter written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fungi";
        broken = true;
      }) {};
 
@@ -6667,6 +6771,7 @@ self: {
        description = "GGg cipher";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GGg";
        broken = true;
      }) {};
 
@@ -6746,6 +6851,7 @@ self: {
        description = "GLFW-b demo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GLFW-b-demo";
        broken = true;
      }) {};
 
@@ -6995,6 +7101,7 @@ self: {
        description = "GLFW OpenGL context creation for GPipe";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "playground";
        broken = true;
      }) {};
 
@@ -7068,6 +7175,7 @@ self: {
        description = "An Io interpreter in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ganymede";
        broken = true;
      }) {};
 
@@ -7097,6 +7205,7 @@ self: {
        description = "Several games";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gebop";
      }) {};
 
   "GenI" = callPackage
@@ -7131,6 +7240,7 @@ self: {
        description = "A natural language generator (specifically, an FB-LTAG surface realiser)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni";
      }) {};
 
   "GenSmsPdu" = callPackage
@@ -7145,6 +7255,7 @@ self: {
        description = "Automatic SMS message generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gensmspdu";
      }) {};
 
   "Genbank" = callPackage
@@ -7164,6 +7275,7 @@ self: {
        description = "Libary for processing the NCBI genbank format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GenbankTest";
      }) {};
 
   "Gene-CluEDO" = callPackage
@@ -7190,6 +7302,7 @@ self: {
        description = "Hox gene clustering";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GeneCluEDO";
      }) {};
 
   "GeneralTicTacToe" = callPackage
@@ -7204,6 +7317,7 @@ self: {
        description = "A general TicTacToe game implementation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GeneralTicTacToe";
        broken = true;
      }) {};
 
@@ -7244,6 +7358,7 @@ self: {
        description = "MCFGs for Genus-1 RNA Pseudoknots";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "GenussFold";
      }) {};
 
   "GeoIp" = callPackage
@@ -7451,6 +7566,7 @@ self: {
        description = "SDL Frontend for Glome ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Glome";
      }) {};
 
   "GoogleChart" = callPackage
@@ -7607,6 +7723,7 @@ self: {
        description = "Graph500 benchmark-related definitions and data set generator";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graph500gen";
        broken = true;
      }) {};
 
@@ -7641,6 +7758,7 @@ self: {
        description = "Test harness for TriangleCount analysis";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TriangleCountTest";
      }) {};
 
   "GraphSCC" = callPackage
@@ -7749,6 +7867,7 @@ self: {
        description = "Notification utility for Growl";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "growlnotify";
      }) {};
 
   "Gtk2hsGenerics" = callPackage
@@ -7813,6 +7932,7 @@ self: {
        description = "A graphical REPL and development environment for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "guihaskell";
      }) {};
 
   "GuiTV" = callPackage
@@ -7846,6 +7966,7 @@ self: {
        description = "The Haskell/R mixed programming environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "H";
      }) {};
 
   "HABQT" = callPackage
@@ -7871,6 +7992,7 @@ self: {
        description = "Hierarchical adaptive Bayesian quantum tomography for quantum bits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HABQT-simulation";
        broken = true;
      }) {};
 
@@ -8012,6 +8134,7 @@ self: {
        ];
        description = "High-level library for building command line interfaces";
        license = lib.licenses.bsd3;
+       mainProgram = "hangman";
      }) {};
 
   "HCard" = callPackage
@@ -8172,9 +8295,7 @@ self: {
        librarySystemDepends = [ pfstools ];
        description = "Utilities for reading, manipulating, and writing HDR images";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) pfstools;};
@@ -8230,6 +8351,7 @@ self: {
        description = "The library for generating a graphical interface on the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HFitUI-exe";
        broken = true;
      }) {};
 
@@ -8261,9 +8383,7 @@ self: {
        '';
        description = "HFuse is a binding for the Linux FUSE library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) fuse;};
 
   "HGE2D" = callPackage
@@ -8846,6 +8966,7 @@ self: {
        executableHaskellDepends = [ base regex-applicative ];
        description = "A preprocessor for HList labelable labels";
        license = lib.licenses.bsd3;
+       mainProgram = "HListPP";
      }) {};
 
   "HLogger" = callPackage
@@ -8861,6 +8982,7 @@ self: {
        description = "Simple, concurrent and easy-to-use logging library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "logger-0.0.1.0-test";
        broken = true;
      }) {};
 
@@ -8956,6 +9078,7 @@ self: {
        description = "Happy Network Manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HNM";
      }) {};
 
   "HNumeric" = callPackage
@@ -9005,6 +9128,7 @@ self: {
        description = "A binding for the OpenCV computer vision library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cannyVideo";
        broken = true;
      }) {inherit (pkgs) opencv;};
 
@@ -9030,6 +9154,7 @@ self: {
        testHaskellDepends = [ base HTF ];
        description = "Generation of PDF documents";
        license = lib.licenses.bsd3;
+       mainProgram = "HPDF-Demo";
      }) {};
 
   "HPath" = callPackage
@@ -9053,6 +9178,7 @@ self: {
        description = "Extract Haskell declarations by name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpath";
        broken = true;
      }) {};
 
@@ -9103,6 +9229,7 @@ self: {
        description = "A minimal monadic PLplot interface for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Example";
      }) {plplotd-gnome2 = null;};
 
   "HPong" = callPackage
@@ -9122,6 +9249,7 @@ self: {
        description = "A simple OpenGL Pong game based on GLFW";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpong";
      }) {};
 
   "HQu" = callPackage
@@ -9148,9 +9276,7 @@ self: {
        benchmarkHaskellDepends = [ base gauge ];
        description = "quantitative finance library";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) gsl;};
@@ -9280,6 +9406,7 @@ self: {
        description = "Haskell raytracer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HRay";
      }) {};
 
   "HSFFIG" = callPackage
@@ -9321,6 +9448,7 @@ self: {
        description = "Gene Expression Programming evolutionary algorithm in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HSGEP_Regression";
      }) {};
 
   "HSH" = callPackage
@@ -9419,9 +9547,7 @@ self: {
        ];
        description = "Library for computer music education";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "HSoundFile" = callPackage
@@ -9523,6 +9649,7 @@ self: {
        ];
        description = "The Haskell Test Framework";
        license = lib.licenses.lgpl21Only;
+       mainProgram = "htfpp";
      }) {};
 
   "HTTP" = callPackage
@@ -9598,6 +9725,7 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htab";
      }) {};
 
   "HTicTacToe" = callPackage
@@ -9616,6 +9744,7 @@ self: {
        description = "An SDL tic-tac-toe game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HTicTacToe";
        broken = true;
      }) {};
 
@@ -9704,6 +9833,7 @@ self: {
        description = "A (prototyped) easy to use XMPP library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxmpp-0.0.1.0-test";
      }) {};
 
   "HXQ" = callPackage
@@ -9738,6 +9868,7 @@ self: {
        description = "HaLeX enables modelling, manipulation and visualization of regular languages";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halex";
        broken = true;
      }) {};
 
@@ -9799,6 +9930,7 @@ self: {
        description = "the Haskell Refactorer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-hare";
      }) {};
 
   "HaTeX" = callPackage
@@ -9838,6 +9970,7 @@ self: {
        description = "This package is deprecated. From version 3, HaTeX does not need this anymore.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metahatex";
      }) {};
 
   "HaTeX-qq" = callPackage
@@ -9874,6 +10007,7 @@ self: {
        description = "An implementation of the Version Space Algebra learning framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tests";
      }) {};
 
   "HaXml" = callPackage
@@ -9930,6 +10064,7 @@ self: {
        description = "A Procmail Replacement as Haskell EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackmail";
        broken = true;
      }) {};
 
@@ -9997,6 +10132,7 @@ self: {
        description = "The classic game of Hangman";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hangman";
        broken = true;
      }) {};
 
@@ -10016,6 +10152,7 @@ self: {
        description = "Yet another Hangman game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hangman-ascii";
        broken = true;
      }) {};
 
@@ -10060,6 +10197,7 @@ self: {
        description = "Harmony Analysis and Retrieval of Music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "harmtrace";
      }) {};
 
   "HarmTrace-Base" = callPackage
@@ -10149,6 +10287,7 @@ self: {
        description = "Minimalist R5RS Scheme interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haschoo";
      }) {};
 
   "Hashell" = callPackage
@@ -10168,6 +10307,7 @@ self: {
        description = "Simple shell written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hashell";
      }) {};
 
   "HaskRel" = callPackage
@@ -10210,6 +10350,7 @@ self: {
        description = "Haskell source code analysis program";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HaskellAnalysisProgram";
        broken = true;
      }) {};
 
@@ -10310,6 +10451,7 @@ self: {
        description = "A concurrent bittorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HaskellTorrent";
        broken = true;
      }) {};
 
@@ -10325,6 +10467,7 @@ self: {
        description = "Haskell Tutorials by Evgeny Ukhanov";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Haskell.Tutorials";
        broken = true;
      }) {};
 
@@ -10344,6 +10487,7 @@ self: {
        description = "A reproduction of the Atari 1979 classic \"Asteroids\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Haskelloids";
        broken = true;
      }) {};
 
@@ -10469,6 +10613,7 @@ self: {
        description = "Line oriented editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedi";
      }) {};
 
   "HerbiePlugin" = callPackage
@@ -10590,6 +10735,7 @@ self: {
        description = "A playground for testing Hipmunk";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HipmunkPlayground";
      }) {};
 
   "Hish" = callPackage
@@ -10610,6 +10756,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hish";
        broken = true;
      }) {};
 
@@ -10639,6 +10786,7 @@ self: {
        description = "An MPD client designed for a Home Theatre PC";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmpf";
        broken = true;
      }) {};
 
@@ -10817,6 +10965,7 @@ self: {
        description = "A Cricket scoring application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hricket";
        broken = true;
      }) {};
 
@@ -11073,8 +11222,8 @@ self: {
        pname = "HsYAML-aeson";
        version = "0.2.0.1";
        sha256 = "139hqd07hkr8ykvrgmcshh9f3vp9dnrj6ks5nl8hgrpi990jsy5r";
-       revision = "2";
-       editedCabalFile = "15j9w4ay9j2yzb14fywljrv8vsv91lhlxf2z3xvmmgmgj6wpf2n4";
+       revision = "4";
+       editedCabalFile = "0njrmdrjnw0i3km50wprfsqmimvqsi90p8kc47d3imgkp6fvcnik";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -11107,6 +11256,7 @@ self: {
        description = "Stream Editor in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hsed";
      }) {};
 
   "Hsmtlib" = callPackage
@@ -11161,6 +11311,7 @@ self: {
        description = "Easily bulk import CSV data to SQL Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HulkImport-exe";
        broken = true;
      }) {};
 
@@ -11200,6 +11351,7 @@ self: {
        description = "The library for generating a WebGL scene for the web";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hydrogen-exe";
      }) {};
 
   "I1M" = callPackage
@@ -11245,6 +11397,7 @@ self: {
        description = "Iterated Function System generation for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "IFS";
        broken = true;
      }) {};
 
@@ -11266,6 +11419,7 @@ self: {
        description = "Editor and interpreter for Interaction Nets";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "INblobs";
      }) {};
 
   "IOR" = callPackage
@@ -11318,8 +11472,8 @@ self: {
      }:
      mkDerivation {
        pname = "IPv6Addr";
-       version = "2.0.4";
-       sha256 = "1d20cfnxvahcnr8iq71ymyykfl6cgxzl5i6vmdl7ill2bj07xy08";
+       version = "2.0.5";
+       sha256 = "14zd98kbs3z6gmw9x897x1vslv5qphfhillhwxvnpkz87wsgzsc1";
        libraryHaskellDepends = [
          aeson attoparsec base iproute network network-info random text
        ];
@@ -11357,6 +11511,7 @@ self: {
        description = "A RESTful microService for IPv6-related data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ipv6db";
        broken = true;
      }) {};
 
@@ -11702,6 +11857,7 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javasf";
      }) {};
 
   "Javav" = callPackage
@@ -11716,6 +11872,7 @@ self: {
        description = "A utility to print the target version of Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javav";
        broken = true;
      }) {};
 
@@ -11728,9 +11885,7 @@ self: {
        libraryHaskellDepends = [ base Euterpea random ];
        description = "Library for modeling jazz improvisation";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "Jdh" = callPackage
@@ -11775,6 +11930,7 @@ self: {
        description = "A transpiler from Python to C++ for competitive programming";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jikka";
        broken = true;
      }) {};
 
@@ -11799,6 +11955,7 @@ self: {
        description = "Design-by-contract for JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jscc";
      }) {};
 
   "JsonGrammar" = callPackage
@@ -11838,6 +11995,7 @@ self: {
        description = "JuPyTer notebook parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jupyter-extract";
      }) {};
 
   "JuicyPixels" = callPackage
@@ -11878,6 +12036,7 @@ self: {
        description = "BLP format decoder/encoder over JuicyPixels library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blp2any";
        broken = true;
      }) {};
 
@@ -11908,6 +12067,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Blurhash is a very compact represenation of a placeholder for an image";
        license = lib.licenses.bsd3;
+       mainProgram = "JuicyPixels-blurhash-exe";
      }) {};
 
   "JuicyPixels-canvas" = callPackage
@@ -12187,6 +12347,7 @@ self: {
        description = "debug features for kics";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkstrict";
      }) {};
 
   "KiCS-prophecy" = callPackage
@@ -12203,6 +12364,7 @@ self: {
        description = "a transformation used by the kics debugger";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prophecy";
      }) {};
 
   "Kleislify" = callPackage
@@ -12255,9 +12417,7 @@ self: {
        ];
        description = "Library for automated composition and musical learning";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "KyotoCabinet" = callPackage
@@ -12327,6 +12487,7 @@ self: {
        description = "LC-3 virtual machine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LC3";
        broken = true;
      }) {};
 
@@ -12414,6 +12575,7 @@ self: {
        description = "LTS: Labelled Transition System";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LTS";
        broken = true;
      }) {};
 
@@ -12443,6 +12605,7 @@ self: {
        ];
        description = "A basic lambda calculator with beta reduction and a REPL";
        license = lib.licenses.bsd3;
+       mainProgram = "LambdaCalculator";
      }) {};
 
   "LambdaDB" = callPackage
@@ -12458,6 +12621,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "On-memory Database using Lambda Function environment";
        license = lib.licenses.bsd3;
+       mainProgram = "LambdaDB-exe";
      }) {};
 
   "LambdaDesigner" = callPackage
@@ -12513,10 +12677,9 @@ self: {
        ];
        description = "A game engine library for tactical squad ASCII roguelike dungeon crawlers";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LambdaHack";
      }) {};
 
   "LambdaINet" = callPackage
@@ -12537,6 +12700,7 @@ self: {
        description = "Graphical Interaction Net Evaluator for Optimal Evaluation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LambdaINet";
      }) {};
 
   "LambdaNet" = callPackage
@@ -12597,6 +12761,7 @@ self: {
        description = "Simple shell for evaluating lambda expressions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaShell";
      }) {};
 
   "Lambdajudge" = callPackage
@@ -12710,6 +12875,7 @@ self: {
        description = "A simple sandboxing tool for Haskell packages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LazyVault";
        broken = true;
      }) {};
 
@@ -12753,6 +12919,7 @@ self: {
        description = "A Snake II clone written using SDL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Level0";
        broken = true;
      }) {};
 
@@ -12868,6 +13035,7 @@ self: {
        description = "Check a bunch of local html files for broken links";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkchecker";
      }) {};
 
   "Liquorice" = callPackage
@@ -12906,6 +13074,8 @@ self: {
        pname = "ListLike";
        version = "4.7.7";
        sha256 = "0h4yfzrf3ljvzf3x75nx791bpxlmdi7f42ff0xyfk8d498iws08a";
+       revision = "1";
+       editedCabalFile = "155y1r051ar9k8vhb54q5ga7a5rzlm4jx1c42pbw7cfy3c8af6hc";
        libraryHaskellDepends = [
          array base bytestring containers deepseq dlist fmlist text
          utf8-string vector
@@ -12989,6 +13159,7 @@ self: {
        description = "Converter to convert from .lhs to .md and vice versa.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhsc";
        broken = true;
      }) {};
 
@@ -13136,6 +13307,7 @@ self: {
        description = "An execution and testing framework for the Linden Scripting Language (LSL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LslPlus";
      }) {};
 
   "Lucu" = callPackage
@@ -13157,6 +13329,7 @@ self: {
        description = "HTTP Daemonic Library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lucu-implant-file";
      }) {};
 
   "Lykah" = callPackage
@@ -13186,6 +13359,7 @@ self: {
        description = "A static website and blog generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lykah";
      }) {};
 
   "MASMGen" = callPackage
@@ -13232,6 +13406,7 @@ self: {
        description = "Folding algorithm based on nucleotide cyclic motifs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MCFoldDP";
      }) {};
 
   "MFlow" = callPackage
@@ -13351,6 +13526,7 @@ self: {
        description = "Builds decks out of a meta";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mtg-builder";
        broken = true;
      }) {};
 
@@ -13508,6 +13684,7 @@ self: {
        description = "Console-based Role Playing Game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mazesofmonad";
        broken = true;
      }) {};
 
@@ -13634,6 +13811,7 @@ self: {
        description = "Haskell mailing list manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mhailist";
      }) {};
 
   "Michelangelo" = callPackage
@@ -13690,6 +13868,7 @@ self: {
        description = "A toy dependently typed programming language with type-based termination";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "miniagda";
        broken = true;
      }) {};
 
@@ -13805,6 +13984,7 @@ self: {
        description = "A FRP library based on signal functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MoeExample";
        broken = true;
      }) {};
 
@@ -13914,6 +14094,7 @@ self: {
        description = "Automatically generate layered monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mlab";
      }) {};
 
   "MonadPrompt" = callPackage
@@ -13981,6 +14162,7 @@ self: {
        description = "2-D arcade scroller";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monadius";
        broken = true;
      }) {};
 
@@ -14001,6 +14183,7 @@ self: {
        ];
        description = "A minimalistic CLI Pomodoro timer";
        license = lib.licenses.mit;
+       mainProgram = "monadoro";
      }) {};
 
   "Monaris" = callPackage
@@ -14020,6 +14203,7 @@ self: {
        description = "A simple tetris clone";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Monaris";
      }) {};
 
   "Monatron" = callPackage
@@ -14105,6 +14289,7 @@ self: {
        description = "Automated Mutation Testing for HUnit tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-hunit";
      }) {};
 
   "MuCheck-Hspec" = callPackage
@@ -14120,6 +14305,7 @@ self: {
        description = "Automated Mutation Testing for Hspec tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-hspec";
      }) {};
 
   "MuCheck-QuickCheck" = callPackage
@@ -14135,6 +14321,7 @@ self: {
        description = "Automated Mutation Testing for QuickCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-quickcheck";
      }) {};
 
   "MuCheck-SmallCheck" = callPackage
@@ -14150,6 +14337,7 @@ self: {
        description = "Automated Mutation Testing for SmallCheck tests";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mucheck-smallcheck";
      }) {};
 
   "Munkres" = callPackage
@@ -14241,6 +14429,7 @@ self: {
        description = "Most likely order of mutation events in RNA";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MutationOrder";
      }) {};
 
   "MyPrimes" = callPackage
@@ -14257,6 +14446,7 @@ self: {
        description = "Generate all primes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PrimesList";
        broken = true;
      }) {};
 
@@ -14278,8 +14468,8 @@ self: {
      }:
      mkDerivation {
        pname = "NGLess";
-       version = "1.4.1";
-       sha256 = "1vnf13zc8as8p98rb3zbi1y68ymf65gpshzx2w9mfk4ibd1xwhry";
+       version = "1.4.1.1";
+       sha256 = "0d2xkm6cw4g563d687bb6c3b971h72i0bf50k0arjkv9n7cp9sh9";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -14341,6 +14531,7 @@ self: {
        ];
        description = "NGLess implements ngless, a DSL for processing sequencing data";
        license = lib.licenses.mit;
+       mainProgram = "ngless";
      }) {};
 
   "NGrams" = callPackage
@@ -14355,6 +14546,7 @@ self: {
        description = "Simple application for calculating n-grams using Google";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ngrams";
        broken = true;
      }) {};
 
@@ -14429,6 +14621,7 @@ self: {
        description = "Generate NXC Code from DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "legoDSL";
        broken = true;
      }) {};
 
@@ -14472,8 +14665,8 @@ self: {
      }:
      mkDerivation {
        pname = "NanoID";
-       version = "3.2.0";
-       sha256 = "16h4mhr16b2fkf37vpsalnzjmg06sghb86gh1n1w3z64dvad0849";
+       version = "3.2.1";
+       sha256 = "13917k5s17aq7h4hab3i2b6y3z3c0wq6p9x7hlindks28390i93f";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -14484,6 +14677,7 @@ self: {
        ];
        description = "NanoID generator";
        license = lib.licenses.bsd3;
+       mainProgram = "nanoid";
      }) {};
 
   "NanoProlog" = callPackage
@@ -14499,6 +14693,7 @@ self: {
        description = "Very small interpreter for a Prolog-like language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nano-prolog";
        broken = true;
      }) {};
 
@@ -14530,6 +14725,7 @@ self: {
        description = "Instances of NcStore for hypercuboids";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Main";
      }) {};
 
   "NaturalLanguageAlphabets" = callPackage
@@ -14594,6 +14790,7 @@ self: {
        description = "Context Algebra of near";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "NearContextAlgebra";
      }) {};
 
   "Neks" = callPackage
@@ -14720,6 +14917,7 @@ self: {
        description = "Ninja game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ninjas";
      }) {};
 
   "NoHoed" = callPackage
@@ -14796,6 +14994,7 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Nomyx";
      }) {};
 
   "Nomyx-Core" = callPackage
@@ -14994,6 +15193,7 @@ self: {
        description = "Nussinov78 using the ADPfusion library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Nussinov78";
      }) {};
 
   "Nutri" = callPackage
@@ -15045,6 +15245,7 @@ self: {
        description = "ONC RPC (aka Sun RPC) and XDR library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsrpcgen";
        broken = true;
      }) {};
 
@@ -15576,6 +15777,7 @@ self: {
        description = "A Programming Language in Construction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ordinary-exe";
        broken = true;
      }) {};
 
@@ -15593,6 +15795,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -15761,6 +15964,7 @@ self: {
        description = "Page-oriented extraction and composition library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pio";
      }) {};
 
   "Paillier" = callPackage
@@ -15801,6 +16005,7 @@ self: {
        description = "Pandoc support for literate Agda";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agdapandoc";
        broken = true;
      }) {};
 
@@ -15994,6 +16199,7 @@ self: {
        executableHaskellDepends = [ base cmdargs ];
        description = "CLI for pasting to lpaste.net";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pastepipe";
      }) {};
 
   "PathTree" = callPackage
@@ -16125,6 +16331,7 @@ self: {
        description = "Personal Happstack Server Utils";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Phsu";
        broken = true;
      }) {};
 
@@ -16170,6 +16377,7 @@ self: {
        ];
        description = "Play Hangman Game";
        license = lib.licenses.bsd3;
+       mainProgram = "playHangmanGame";
      }) {};
 
   "PlayingCards" = callPackage
@@ -16229,6 +16437,7 @@ self: {
        description = "So far just a lint like program for PL/SQL. Diff and refactoring tools are planned";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PlslLint";
      }) {};
 
   "Plural" = callPackage
@@ -16254,6 +16463,7 @@ self: {
        description = "An imaginary world";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Pollutocracy";
        broken = true;
      }) {};
 
@@ -16269,6 +16479,7 @@ self: {
        description = "high-performance distributed reverse / forward proxy & tunneling for TCP";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PortFusion";
        broken = true;
      }) {};
 
@@ -16284,9 +16495,7 @@ self: {
        librarySystemDepends = [ alsa-lib ];
        description = "A binding for PortMedia/PortMidi";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) alsa-lib;};
 
   "PortMidi-simple" = callPackage
@@ -16300,9 +16509,7 @@ self: {
        libraryHaskellDepends = [ base PortMidi ];
        description = "Simplified PortMidi wrapper";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "PostgreSQL" = callPackage
@@ -16453,6 +16660,7 @@ self: {
        executableHaskellDepends = [ base old-time random ];
        description = "Propositional Logic";
        license = lib.licenses.bsd3;
+       mainProgram = "program";
      }) {};
 
   "Proper" = callPackage
@@ -16505,6 +16713,7 @@ self: {
        description = "A Perl 6 Implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pugs";
      }) {};
 
   "Pup-Events" = callPackage
@@ -16525,6 +16734,7 @@ self: {
        description = "A networked event handling framework for hooking into other programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pupevents-all";
      }) {};
 
   "Pup-Events-Client" = callPackage
@@ -16711,6 +16921,7 @@ self: {
        description = "Annotation Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qapp";
        broken = true;
      }) {};
 
@@ -16825,6 +17036,7 @@ self: {
        executableHaskellDepends = [ base pandoc-types ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "R-pandoc";
        broken = true;
      }) {};
 
@@ -17006,6 +17218,7 @@ self: {
        description = "Multi-target RNA sequence design";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RNAdesign";
      }) {};
 
   "RNAdraw" = callPackage
@@ -17026,6 +17239,7 @@ self: {
        description = "Draw RNA secondary structures";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RNAdotplot";
        broken = true;
      }) {};
 
@@ -17115,6 +17329,7 @@ self: {
        executableHaskellDepends = [ base containers lens mtl ];
        testHaskellDepends = [ base containers lens mtl ];
        license = lib.licenses.mit;
+       mainProgram = "RSolve-exe";
      }) {};
 
   "RabbitMQ" = callPackage
@@ -17156,9 +17371,8 @@ self: {
        ];
        description = "A puzzle game written in Haskell with a cat in lead role";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "raincat";
      }) {};
 
   "Random123" = callPackage
@@ -17205,6 +17419,7 @@ self: {
        description = "Randomness intuition trainer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "randometer";
        broken = true;
      }) {};
 
@@ -17250,6 +17465,7 @@ self: {
        description = "HTTP to XMPP omegle chats gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ranka";
      }) {};
 
   "Rasenschach" = callPackage
@@ -17271,6 +17487,7 @@ self: {
        description = "Soccer simulation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Rasenschach";
        broken = true;
      }) {};
 
@@ -17321,6 +17538,7 @@ self: {
        testHaskellDepends = [ base hspec system-filepath text ];
        description = "Simple command line argument parsing";
        license = lib.licenses.bsd3;
+       mainProgram = "ReadArgsEx";
      }) {};
 
   "Redmine" = callPackage
@@ -17395,6 +17613,7 @@ self: {
        description = "A utility for computing distributions of material to review among reviewers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "referees";
        broken = true;
      }) {};
 
@@ -17488,6 +17707,7 @@ self: {
        description = "Parallel implementation of Ritt-Wu's algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ritt-Wu-exe";
        broken = true;
      }) {};
 
@@ -17539,6 +17759,7 @@ self: {
        description = "Limits the size of a directory's contents";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "RollingDirectory";
      }) {};
 
   "RoyalMonad" = callPackage
@@ -17642,6 +17863,7 @@ self: {
        description = "ESCRIPT: a human friendly language for programming Bitcoin scripts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SCRIPTWriter-exe";
      }) {};
 
   "SCalendar" = callPackage
@@ -17830,6 +18052,7 @@ self: {
        description = "An example of using the SG and OpenGL libraries";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sgdemo";
      }) {};
 
   "SGplus" = callPackage
@@ -17899,6 +18122,7 @@ self: {
        description = "The Simple Javascript Wrench";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sjw";
        broken = true;
      }) {};
 
@@ -17967,6 +18191,7 @@ self: {
        description = "STG Symbolic Execution";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SSTG-exe";
        broken = true;
      }) {};
 
@@ -18077,6 +18302,7 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svg2q";
      }) {};
 
   "SVGFonts" = callPackage
@@ -18146,6 +18372,7 @@ self: {
        description = "Generate a parser (in Haskell) with the SableCC parser generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sable2hs";
        broken = true;
      }) {};
 
@@ -18210,6 +18437,7 @@ self: {
        description = "Saturnin CI / Job System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "saturnin";
        broken = true;
      }) {};
 
@@ -18298,6 +18526,7 @@ self: {
        description = "Size limited temp filesystem based on fuse";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ScratchFs";
        broken = true;
      }) {};
 
@@ -18318,6 +18547,7 @@ self: {
        description = "A cross platform P2P VPN application built using Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scurry";
      }) {};
 
   "SecureHash-SHA3" = callPackage
@@ -18371,6 +18601,7 @@ self: {
        description = "Selects a representative subset of sequences from multiple sequence alignment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SelectSequencesFromMSA";
      }) {};
 
   "Semantique" = callPackage
@@ -18390,6 +18621,7 @@ self: {
        description = "Command-line tool for maintaining the Semantique database";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "semantique";
        broken = true;
      }) {};
 
@@ -18479,6 +18711,7 @@ self: {
        description = "Shell script analysis tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shellcheck";
      }) {};
 
   "ShellCheck" = callPackage
@@ -18508,6 +18741,7 @@ self: {
        ];
        description = "Shell script analysis tool";
        license = lib.licenses.gpl3Only;
+       mainProgram = "shellcheck";
      }) {};
 
   "Shellac" = callPackage
@@ -18626,7 +18860,6 @@ self: {
        ];
        description = "A programming model for declarative, high performance user interface";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Shpadoinkle-backend-pardiff" = callPackage
@@ -18646,6 +18879,7 @@ self: {
        description = "A Virtual Dom in pure Haskell, based on Html as an Alignable Functor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Shpadoinkle-backend-snabbdom" = callPackage
@@ -18664,6 +18898,7 @@ self: {
        description = "Use the high-performance Snabbdom virtual dom library written in JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Shpadoinkle-backend-static" = callPackage
@@ -18676,6 +18911,7 @@ self: {
        description = "A backend for rendering Shpadoinkle as Text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Shpadoinkle-console" = callPackage
@@ -18724,6 +18960,7 @@ self: {
        description = "Chrome extension to aide in development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "devtools";
      }) {};
 
   "Shpadoinkle-disembodied" = callPackage
@@ -18795,6 +19032,7 @@ self: {
        description = "A typed, template generated Html DSL, and helpers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "Shpadoinkle-isreal" = callPackage
@@ -18819,6 +19057,7 @@ self: {
        description = "Isreal Swan will make a snowman for you!";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "isreal";
        broken = true;
      }) {};
 
@@ -18831,7 +19070,6 @@ self: {
        libraryHaskellDepends = [ base lens Shpadoinkle text ];
        description = "Lens combinators for Shpadoinkle applications";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Shpadoinkle-router" = callPackage
@@ -18867,7 +19105,6 @@ self: {
        libraryHaskellDepends = [ base lens Shpadoinkle streaming text ];
        description = "Integration of the streaming library with Shpadoinkle continuations";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Shpadoinkle-template" = callPackage
@@ -18939,6 +19176,7 @@ self: {
        executableHaskellDepends = [ base GLUT ];
        description = "A vector shooter game";
        license = lib.licenses.bsd3;
+       mainProgram = "shu-thing";
      }) {};
 
   "SimpleAES" = callPackage
@@ -19037,6 +19275,7 @@ self: {
        description = "A simple static file server, for when apache is overkill";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simpleserver";
      }) {};
 
   "SimpleTableGenerator" = callPackage
@@ -19070,6 +19309,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Prototypical type checker for Type Theory with Sized Natural Numbers";
        license = "unknown";
+       mainProgram = "Sit.bin";
      }) {};
 
   "SizeCompare" = callPackage
@@ -19200,6 +19440,7 @@ self: {
        description = "Football simulation framework for teaching functional programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sfRecord";
      }) {};
 
   "SoccerFunGL" = callPackage
@@ -19253,6 +19494,7 @@ self: {
        description = "Static code analysis using graph-theoretic techniques";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SourceGraph";
      }) {};
 
   "Southpaw" = callPackage
@@ -19287,6 +19529,7 @@ self: {
        ];
        description = "Video game";
        license = lib.licenses.bsd3;
+       mainProgram = "spaceInvaders";
      }) {};
 
   "SpacePrivateers" = callPackage
@@ -19309,6 +19552,7 @@ self: {
        description = "Simple space pirate roguelike";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SpacePrivateers";
      }) {};
 
   "SpinCounter" = callPackage
@@ -19535,6 +19779,7 @@ self: {
        description = "A simple MVCC like library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Stasis";
        broken = true;
      }) {};
 
@@ -19636,6 +19881,7 @@ self: {
        description = "Converts SDF to Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Sdf2Haskell";
      }) {};
 
   "Strafunski-StrategyLib" = callPackage
@@ -19765,6 +20011,7 @@ self: {
        description = "Suffix array construction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkesa";
        broken = true;
      }) {};
 
@@ -19842,6 +20089,7 @@ self: {
        description = "Testing By Convention";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tbc";
        broken = true;
      }) {};
 
@@ -19913,6 +20161,7 @@ self: {
        ];
        description = "Testing in monads and transformers without explicit specs";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "TLT-exe";
      }) {};
 
   "TORCS" = callPackage
@@ -19935,6 +20184,7 @@ self: {
        description = "Bindings to the TORCS vehicle simulator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Simple";
        broken = true;
      }) {};
 
@@ -20004,6 +20254,7 @@ self: {
        description = "A client for Quill databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Tables";
        broken = true;
      }) {};
 
@@ -20019,6 +20270,7 @@ self: {
        description = "Tool to render CSV into tables of various formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tablify";
        broken = true;
      }) {};
 
@@ -20039,6 +20291,7 @@ self: {
        ];
        description = "Tahin Password Generator";
        license = lib.licenses.bsd3;
+       mainProgram = "tahin";
      }) {};
 
   "Tainted" = callPackage
@@ -20124,6 +20377,7 @@ self: {
        ];
        description = "Run TLT tests from Tasty";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "TLT-exe";
      }) {};
 
   "Taxonomy" = callPackage
@@ -20187,6 +20441,7 @@ self: {
        description = "Render general Haskell math to LaTeX. Or: math typesetting with high signal-to-noise–ratio.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TeXmyMath-example";
      }) {};
 
   "TeaHS" = callPackage
@@ -20228,6 +20483,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Efficient pure ternary tree Sets and Maps";
        license = lib.licenses.bsd3;
+       mainProgram = "tdict";
      }) {};
 
   "TestExplode" = callPackage
@@ -20314,6 +20570,7 @@ self: {
        executableHaskellDepends = [ base safe ];
        description = "Tic Tac Toe in your command line!";
        license = lib.licenses.asl20;
+       mainProgram = "Tic-Tac-Toe";
      }) {};
 
   "TicTacToe" = callPackage
@@ -20367,6 +20624,7 @@ self: {
        description = "A simple tile-based digital clock screen saver";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TimePiece";
        broken = true;
      }) {};
 
@@ -20408,6 +20666,7 @@ self: {
        description = "Game for Lounge Marmelade";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "titim";
        broken = true;
      }) {};
 
@@ -20424,6 +20683,7 @@ self: {
        description = "Constraint solving framework employed by the Helium Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "topsolver";
        broken = true;
      }) {};
 
@@ -20494,6 +20754,7 @@ self: {
        description = "eDSL in R for Safe Variable Transformarion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TransformeR-exe";
        broken = true;
      }) {};
 
@@ -20509,6 +20770,7 @@ self: {
        description = "Tutorial on monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TransformersStepByStep";
        broken = true;
      }) {};
 
@@ -20644,6 +20906,7 @@ self: {
        description = "Typing speed game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TypeClass";
      }) {};
 
   "TypeCompose" = callPackage
@@ -20671,6 +20934,7 @@ self: {
        description = "TypeIlluminator is a prototype tool exploring debugging of type errors/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typeilluminator";
      }) {};
 
   "TypeNat" = callPackage
@@ -20697,6 +20961,7 @@ self: {
        executableHaskellDepends = [ base containers directory time ];
        description = "Command Line Typing speed tester";
        license = lib.licenses.gpl3Only;
+       mainProgram = "typingtester";
      }) {};
 
   "UISF" = callPackage
@@ -20730,6 +20995,7 @@ self: {
        description = "A small command-line accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "umm";
      }) {};
 
   "URLT" = callPackage
@@ -20785,6 +21051,7 @@ self: {
        description = "Processing popular picture formats into .c or .raw format in RGB565";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "UTFTConverter";
        broken = true;
      }) {};
 
@@ -20806,7 +21073,7 @@ self: {
        ];
        description = "It provides the functionality like unix \"uniq\" utility";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "Unixutils" = callPackage
@@ -20836,9 +21103,7 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "A simple interface to shadow passwords (aka, shadow.h)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "Updater" = callPackage
@@ -20917,6 +21182,7 @@ self: {
        description = "Provides access to Vkontakte social network via public API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vkq";
        broken = true;
      }) {};
 
@@ -21045,6 +21311,7 @@ self: {
        description = "A solver for the WordBrain game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Verba";
        broken = true;
      }) {};
 
@@ -21137,6 +21404,7 @@ self: {
        description = "Villefort is a task manager and time tracker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Villefort";
      }) {};
 
   "Vulkan" = callPackage
@@ -21161,8 +21429,10 @@ self: {
        ];
        description = "Bindings to the VulkanMemoryAllocator library";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = [
+         "i686-linux" "armv7l-linux"
+       ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "WAVE" = callPackage
@@ -21180,6 +21450,7 @@ self: {
        description = "WAVE audio file IO library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sinewave";
      }) {};
 
   "WEditor" = callPackage
@@ -21210,6 +21481,7 @@ self: {
        description = "Text-editor widget with dynamic line-wrapping for use with Brick";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brick-example";
      }) {};
 
   "WEditorHyphen" = callPackage
@@ -21255,6 +21527,7 @@ self: {
        description = "A simple library to access to the WL 500gP router from the Haskell code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -21435,6 +21708,7 @@ self: {
        description = "Logic interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "WeberLogic";
        broken = true;
      }) {};
 
@@ -21463,6 +21737,7 @@ self: {
        description = "Regexp-like engine to scrap web data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webrexp";
        broken = true;
      }) {};
 
@@ -21513,18 +21788,19 @@ self: {
        sha256 = "1nivdwjp9x9i64xg8gf3xj8khm9dfq6n5m8kvvlhz7i7ypl4mv72";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
-  "Win32_2_13_2_0" = callPackage
+  "Win32_2_13_2_1" = callPackage
     ({ mkDerivation }:
      mkDerivation {
        pname = "Win32";
-       version = "2.13.2.0";
-       sha256 = "1gmhqb0v3ds7csrmzw211jqjjp955akgp7ykngwnpqb6kpbvpcf4";
+       version = "2.13.2.1";
+       sha256 = "1fn4z7spq0w2bajg6q8qw6mn3kpz07356zc0shpks8cf6gkmyb8h";
        description = "A binding to Windows Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "Win32-console" = callPackage
@@ -21536,7 +21812,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Binding to the Win32 console API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-dhcp-server" = callPackage
@@ -21548,7 +21824,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Win32 DHCP Server Management API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-errors" = callPackage
@@ -21565,7 +21841,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck Win32 ];
        description = "Alternative error handling for Win32 foreign calls";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-extras" = callPackage
@@ -21580,7 +21856,7 @@ self: {
        librarySystemDepends = [ imm32 msimg32 ];
        description = "Provides missing Win32 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {imm32 = null; msimg32 = null;};
 
   "Win32-junction-point" = callPackage
@@ -21592,7 +21868,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Support for manipulating NTFS junction points";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-notify" = callPackage
@@ -21606,7 +21882,7 @@ self: {
        libraryHaskellDepends = [ base containers directory Win32 ];
        description = "A binding to part of the Win32 library for file notification";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-security" = callPackage
@@ -21620,7 +21896,7 @@ self: {
        libraryHaskellDepends = [ base text Win32 Win32-errors ];
        description = "Haskell bindings to a security-related functions of the Windows API";
        license = lib.licenses.mit;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-services" = callPackage
@@ -21633,7 +21909,7 @@ self: {
        librarySystemDepends = [ Advapi32 ];
        description = "Windows service applications";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {Advapi32 = null;};
 
   "Win32-services-wrapper" = callPackage
@@ -21649,7 +21925,7 @@ self: {
        ];
        description = "Wrapper code for making a Win32 service";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "Win32-shortcut" = callPackage
@@ -21664,7 +21940,7 @@ self: {
        librarySystemDepends = [ libossp_uuid ole32 ];
        description = "Support for manipulating shortcuts (.lnk files) on Windows";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {inherit (pkgs) libossp_uuid; ole32 = null;};
 
   "Wired" = callPackage
@@ -21722,6 +21998,7 @@ self: {
        description = "Bigram word pair alignments";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "WordAlign";
      }) {};
 
   "WordNet" = callPackage
@@ -21767,6 +22044,7 @@ self: {
        description = "Plaintext prose redundancy linter";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordlint";
        broken = true;
      }) {};
 
@@ -21942,7 +22220,7 @@ self: {
        librarySystemDepends = [ xinput ];
        description = "Bindings for the DirectX XInput library";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {inherit (pkgs.xorg) xinput;};
 
   "XML" = callPackage
@@ -22033,6 +22311,7 @@ self: {
        description = "An implementation of a polynomial-time top-down parser suitable for NLP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "solarman.cgi";
      }) {};
 
   "Xauth" = callPackage
@@ -22064,6 +22343,7 @@ self: {
        description = "Gtk command launcher with identicon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Xec";
        broken = true;
      }) {};
 
@@ -22112,6 +22392,7 @@ self: {
        description = "Yet Another Pong Clone using SDL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "YACPong";
      }) {};
 
   "YFrob" = callPackage
@@ -22160,6 +22441,7 @@ self: {
        description = "A simple blog engine powered by Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Yablog";
      }) {};
 
   "YamlReference" = callPackage
@@ -22188,6 +22470,7 @@ self: {
        description = "YAML reference implementation";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yaml2yeast";
        broken = true;
      }) {};
 
@@ -22195,8 +22478,8 @@ self: {
     ({ mkDerivation, base, deepseq, random, simple-affine-space }:
      mkDerivation {
        pname = "Yampa";
-       version = "0.13.4";
-       sha256 = "1qh3fdj82n7s2arwjin1mp5n8jn8p0dan5ll6zbj533j181k8w4p";
+       version = "0.13.5";
+       sha256 = "1l7ykhcy7qqp4dysyp3qq3nx962zsdf47iqmsz28l4chr8dxfvnm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -22236,6 +22519,7 @@ self: {
        description = "Software synthesizer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampasynth-wav";
        broken = true;
      }) {};
 
@@ -22286,6 +22570,7 @@ self: {
        description = "A functional MUD client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yogurt";
      }) {inherit (pkgs) readline;};
 
   "Z-Botan" = callPackage
@@ -22456,6 +22741,7 @@ self: {
        description = "A Z-machine interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmachine";
        broken = true;
      }) {};
 
@@ -22528,6 +22814,7 @@ self: {
        description = "Compare genome assemblies";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "a50";
      }) {};
 
   "abacate" = callPackage
@@ -22558,6 +22845,7 @@ self: {
        ];
        description = "Generate instances of the ABC Logic Puzzle";
        license = lib.licenses.bsd3;
+       mainProgram = "abc-puzzle";
      }) {};
 
   "abcBridge" = callPackage
@@ -22907,6 +23195,7 @@ self: {
        description = "Basic Linear Algebra using native CUBLAS library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "accelerate-cublas-demo";
      }) {};
 
   "accelerate-cuda" = callPackage
@@ -23078,6 +23367,7 @@ self: {
        description = "Compare different implementations of the Fast Fourier Transform";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "accelerate-fourier-benchmark";
      }) {};
 
   "accelerate-io" = callPackage
@@ -23469,39 +23759,6 @@ self: {
      }:
      mkDerivation {
        pname = "acid-state";
-       version = "0.16.1";
-       sha256 = "1fvcx96y7cin7f39asa130q8j2z39l61ibff98vmkhqwxiys4z4h";
-       revision = "1";
-       editedCabalFile = "03md28vq6j63h5jxvlzvx106c4xd0c64zvd6ar56icpb14qk52q9";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         array base bytestring cereal containers directory filelock filepath
-         mtl network network-bsd safecopy stm template-haskell
-         th-expand-syns unix
-       ];
-       executableHaskellDepends = [ base directory ];
-       testHaskellDepends = [
-         base cereal containers deepseq directory hedgehog hspec
-         hspec-discover mtl network safecopy template-haskell text time
-       ];
-       testToolDepends = [ hspec-discover ];
-       benchmarkHaskellDepends = [
-         base criterion directory mtl random system-fileio system-filepath
-       ];
-       description = "Add ACID guarantees to any serializable Haskell data structure";
-       license = lib.licenses.publicDomain;
-     }) {};
-
-  "acid-state_0_16_1_1" = callPackage
-    ({ mkDerivation, array, base, bytestring, cereal, containers
-     , criterion, deepseq, directory, filelock, filepath, hedgehog
-     , hspec, hspec-discover, mtl, network, network-bsd, random
-     , safecopy, stm, system-fileio, system-filepath, template-haskell
-     , text, th-expand-syns, time, unix
-     }:
-     mkDerivation {
-       pname = "acid-state";
        version = "0.16.1.1";
        sha256 = "05hcbk5dhwygc29b1jbyh2zzjrxybm44hj02wmv2bhz04b5wldca";
        isLibrary = true;
@@ -23522,7 +23779,7 @@ self: {
        ];
        description = "Add ACID guarantees to any serializable Haskell data structure";
        license = lib.licenses.publicDomain;
-       hydraPlatforms = lib.platforms.none;
+       mainProgram = "acid-state-repair";
      }) {};
 
   "acid-state-dist" = callPackage
@@ -23606,6 +23863,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A full featured empty project";
        license = lib.licenses.bsd3;
+       mainProgram = "acme-box";
      }) {};
 
   "acme-cadre" = callPackage
@@ -23684,6 +23942,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Maybe gives you a cute boy";
        license = lib.licenses.publicDomain;
+       mainProgram = "CuteBoy";
      }) {};
 
   "acme-cutegirl" = callPackage
@@ -23698,6 +23957,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Maybe gives you a cute girl";
        license = lib.licenses.gpl3Only;
+       mainProgram = "CuteGirl";
      }) {};
 
   "acme-default" = callPackage
@@ -23805,6 +24065,7 @@ self: {
        description = "Evil inventions in the Tri-State area";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "evilplan";
        broken = true;
      }) {};
 
@@ -24282,6 +24543,7 @@ self: {
        description = "Haskell code presentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "activehs";
      }) {};
 
   "activehs-base" = callPackage
@@ -24361,16 +24623,17 @@ self: {
   "ad" = callPackage
     ({ mkDerivation, adjunctions, array, base, comonad, containers
      , criterion, data-reify, erf, free, nats, reflection, semigroups
-     , transformers
+     , tasty, tasty-hunit, transformers
      }:
      mkDerivation {
        pname = "ad";
-       version = "4.5.1";
-       sha256 = "08hx8ww93x2hg6qxfypd9hyqqcp7c70w17i6hs03qmk4i433h2b9";
+       version = "4.5.2";
+       sha256 = "08vcp760j6ay8k9zs4qzhvirf775vhni56923jbjzdxrs9mm5167";
        libraryHaskellDepends = [
          adjunctions array base comonad containers data-reify erf free nats
          reflection semigroups transformers
        ];
+       testHaskellDepends = [ base tasty tasty-hunit ];
        benchmarkHaskellDepends = [ base criterion erf ];
        description = "Automatic Differentiation";
        license = lib.licenses.bsd3;
@@ -24448,6 +24711,7 @@ self: {
        ];
        description = "Convert adblock config files to privoxy format";
        license = lib.licenses.gpl3Only;
+       mainProgram = "adblock2privoxy";
      }) {};
 
   "addLicenseInfo" = callPackage
@@ -24461,6 +24725,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Adds license info to the top of a file";
        license = lib.licenses.bsd3;
+       mainProgram = "addLicenseInfo";
      }) {};
 
   "addy" = callPackage
@@ -24704,6 +24969,7 @@ self: {
        description = "Parse Advent of Code ASCII art letters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "advent-of-code-ocr";
        broken = true;
      }) {};
 
@@ -24798,6 +25064,8 @@ self: {
        pname = "aeson";
        version = "2.0.3.0";
        sha256 = "09dk0j33n262dm75vff3y3i9fm6lh06dyqswwv7a6kvnhhmhlxhr";
+       revision = "1";
+       editedCabalFile = "1zrgn63jzrpk3n3vd44zkzgw7kb5qxlvhx4nk6g3sswwrsz5j32i";
        libraryHaskellDepends = [
          attoparsec base base-compat-batteries bytestring containers
          data-fix deepseq dlist ghc-prim hashable indexed-traversable
@@ -24818,6 +25086,45 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson_2_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat
+     , base-compat-batteries, base-orphans, base16-bytestring
+     , bytestring, containers, data-fix, deepseq, Diff, directory, dlist
+     , filepath, generic-deriving, generically, ghc-prim, hashable
+     , indexed-traversable, integer-logarithms, OneTuple, primitive
+     , QuickCheck, quickcheck-instances, scientific, semialign, strict
+     , tagged, tasty, tasty-golden, tasty-hunit, tasty-quickcheck
+     , template-haskell, text, text-short, th-abstraction, these, time
+     , time-compat, unordered-containers, uuid-types, vector, witherable
+     }:
+     mkDerivation {
+       pname = "aeson";
+       version = "2.1.0.0";
+       sha256 = "151wyyw0ip0f2w4mfxcs58c26rsvhaac7s0yba76gnhnzbskwxha";
+       revision = "1";
+       editedCabalFile = "1zq5rnapvvrhfi4yy1xzi322h5zvmx0c3klpbrb08k92ykvfb98q";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries bytestring containers
+         data-fix deepseq dlist generically ghc-prim hashable
+         indexed-traversable OneTuple primitive QuickCheck scientific
+         semialign strict tagged template-haskell text text-short
+         th-abstraction these time time-compat unordered-containers
+         uuid-types vector witherable
+       ];
+       testHaskellDepends = [
+         attoparsec base base-compat base-orphans base16-bytestring
+         bytestring containers data-fix Diff directory dlist filepath
+         generic-deriving generically ghc-prim hashable indexed-traversable
+         integer-logarithms OneTuple primitive QuickCheck
+         quickcheck-instances scientific strict tagged tasty tasty-golden
+         tasty-hunit tasty-quickcheck template-haskell text text-short these
+         time time-compat unordered-containers uuid-types vector
+       ];
+       description = "Fast JSON parsing and encoding";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "aeson-applicative" = callPackage
     ({ mkDerivation, aeson, base, text, unordered-containers }:
      mkDerivation {
@@ -24942,13 +25249,13 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "aeson-commit_1_5" = callPackage
+  "aeson-commit_1_6_0" = callPackage
     ({ mkDerivation, aeson, aeson-qq, base, hspec, text, transformers
      }:
      mkDerivation {
        pname = "aeson-commit";
-       version = "1.5";
-       sha256 = "1xblprnxnx7q1mf7qp47ilkd6i8s36ixdlb75dqr297izn0sxp39";
+       version = "1.6.0";
+       sha256 = "1z0fp6ip6i67gb06cjdmd3gd20wl64964kfkir35hh6mpi9wpln6";
        libraryHaskellDepends = [ aeson base text transformers ];
        testHaskellDepends = [ aeson aeson-qq base hspec text ];
        description = "Parse Aeson data with commitment";
@@ -24967,8 +25274,8 @@ self: {
        pname = "aeson-compat";
        version = "0.3.10";
        sha256 = "0ia3qfdpbrzhwwg4ywpdwca0z1m85k081pcz6jh1sx8qjsvcr71w";
-       revision = "2";
-       editedCabalFile = "0x0i17094nkmhzfh5rl758y21kpgv1fw2qicll5rx51fj6a77rr2";
+       revision = "3";
+       editedCabalFile = "0a4mvv7j18a4wiv6sssb6v4z2xn3kbrfw34842nq0hbygxqn05ri";
        libraryHaskellDepends = [
          aeson attoparsec attoparsec-iso8601 base base-compat bytestring
          containers exceptions hashable scientific tagged text time
@@ -25086,22 +25393,18 @@ self: {
      }) {};
 
   "aeson-extra" = callPackage
-    ({ mkDerivation, aeson, attoparsec, attoparsec-iso8601, base
-     , base-compat-batteries, bytestring, containers, deepseq
-     , exceptions, hashable, parsec, quickcheck-instances
+    ({ mkDerivation, aeson, attoparsec, base, base-compat-batteries
+     , bytestring, containers, deepseq, quickcheck-instances
      , recursion-schemes, scientific, semialign, tasty, tasty-hunit
      , tasty-quickcheck, template-haskell, text, these, time-parsers
      , unordered-containers, vector
      }:
      mkDerivation {
        pname = "aeson-extra";
-       version = "0.5.1";
-       sha256 = "13d01hppx71cm7f901n1bd0hxj69ikbp57i6ckfygc6da0mg49jc";
-       revision = "1";
-       editedCabalFile = "0minlchivdbpwlfqv7n7ss9cvd7fbpflnmbvs0bcmw1fi83k3b32";
+       version = "0.5.1.1";
+       sha256 = "1fzri1h2wica3grnp8ag8izakqmsb2lh0nld7xnpxk0p766wg9r7";
        libraryHaskellDepends = [
-         aeson attoparsec attoparsec-iso8601 base base-compat-batteries
-         bytestring containers deepseq exceptions hashable parsec
+         aeson attoparsec base base-compat-batteries bytestring deepseq
          recursion-schemes scientific semialign template-haskell text these
          unordered-containers vector
        ];
@@ -25214,6 +25517,7 @@ self: {
        ];
        description = "Derivation of Aeson instances for GADTs";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "aeson-generic-compat" = callPackage
@@ -25394,6 +25698,8 @@ self: {
        pname = "aeson-optics";
        version = "1.2";
        sha256 = "0p852w0ns9mkmydbhj1p3szvkw7pl83c0xaqhvn5jwdrpqj6ma74";
+       revision = "1";
+       editedCabalFile = "0d8f0sx4qqiqws70b1gm6ks4gw5hwl0qjh7mdjzr1yf3r4zyk5hq";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring optics-core optics-extra
          scientific text text-short unordered-containers vector
@@ -25475,8 +25781,8 @@ self: {
        pname = "aeson-pretty";
        version = "0.8.9";
        sha256 = "021az9az6xik9c9s3rnar5fr1lgy2h3igibf5ixnc7ps3m2lzg2x";
-       revision = "1";
-       editedCabalFile = "0x01ryaadmic21dy8ix73k4nkh1hkvwn5vp04vf95a6d30zcmnjf";
+       revision = "2";
+       editedCabalFile = "1895w56jl4c06wfhv5zf8ayqpzkxgva2rz5xxz8fvfdiza781cgp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -25488,6 +25794,7 @@ self: {
        ];
        description = "JSON pretty-printing library and command-line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "aeson-pretty";
      }) {};
 
   "aeson-qq" = callPackage
@@ -25595,6 +25902,8 @@ self: {
        pname = "aeson-schemas";
        version = "1.3.5.1";
        sha256 = "1cp6q92z0zkz9kdkaialcx2v9plvmkcghrg54jv841iqxjwcbj3r";
+       revision = "1";
+       editedCabalFile = "1yllgsypwpk627x29bjcv49y4m4g8q2xgkj34z6nyib6w1bbjmna";
        libraryHaskellDepends = [
          aeson base first-class-families hashable megaparsec
          template-haskell text unordered-containers
@@ -25627,6 +25936,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "aeson-single-field" = callPackage
+    ({ mkDerivation, aeson, base, HUnit, markdown-unlit }:
+     mkDerivation {
+       pname = "aeson-single-field";
+       version = "0.1.0.0";
+       sha256 = "1n76hllrhl0bvx79ak9dmwngj11bgajjgspr8lkvjsm3xdy0yxsw";
+       libraryHaskellDepends = [ aeson base ];
+       testHaskellDepends = [ aeson base HUnit markdown-unlit ];
+       testToolDepends = [ markdown-unlit ];
+       description = "Conveniently wrap a single value in a record when encoding to and from JSON";
+       license = lib.licenses.mit;
+     }) {};
+
   "aeson-smart" = callPackage
     ({ mkDerivation, aeson, base, data-default, template-haskell, text
      , unordered-containers, vector
@@ -25973,6 +26295,7 @@ self: {
        description = "Infinite state model checking of iterative C programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "afv";
      }) {};
 
   "ag-pictgen" = callPackage
@@ -25987,6 +26310,7 @@ self: {
        description = "Attribute Grammar picture generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ag-pictgen";
        broken = true;
      }) {};
 
@@ -26017,6 +26341,7 @@ self: {
        description = "An implementation of language server protocal (LSP) for Agda 2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "als";
        broken = true;
      }) {};
 
@@ -26039,6 +26364,7 @@ self: {
        description = "Http server for Agda (prototype)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-server";
      }) {};
 
   "agda-snippets" = callPackage
@@ -26060,6 +26386,7 @@ self: {
        description = "Render just the Agda snippets of a literate Agda file to HTML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-snippets";
        broken = true;
      }) {};
 
@@ -26101,6 +26428,7 @@ self: {
        description = "Check for unused code in an Agda project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "agda-unused";
        broken = true;
      }) {};
 
@@ -26121,6 +26449,7 @@ self: {
        testToolDepends = [ goldplate ];
        description = "Translate .agda files into .lagda.tex files.";
        license = lib.licenses.publicDomain;
+       mainProgram = "agda2lagda";
      }) {};
 
   "agentx" = callPackage
@@ -26157,6 +26486,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Unification and Matching in an Abelian Group";
        license = "GPL";
+       mainProgram = "agum";
      }) {};
 
   "aig" = callPackage
@@ -26206,6 +26536,7 @@ self: {
        description = "Aeronautical Information Package (AIP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aip";
      }) {};
 
   "air" = callPackage
@@ -26587,6 +26918,7 @@ self: {
        ];
        description = "a diceware passphrase generator";
        license = lib.licenses.mit;
+       mainProgram = "alea";
      }) {};
 
   "alerta" = callPackage
@@ -26635,6 +26967,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Alex is a tool for generating lexical analysers in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "alex";
      }) {};
 
   "alex-meta" = callPackage
@@ -26726,6 +27059,7 @@ self: {
        description = "Fast Aho-Corasick string searching";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dump-automaton";
        broken = true;
      }) {};
 
@@ -26774,6 +27108,7 @@ self: {
        description = "Algorithmic automation for various DAWs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alga";
        broken = true;
      }) {};
 
@@ -26905,25 +27240,43 @@ self: {
 
   "algebraic-graphs" = callPackage
     ({ mkDerivation, array, base, containers, deepseq, extra
-     , inspection-testing, mtl, QuickCheck, transformers
+     , inspection-testing, QuickCheck, transformers
      }:
      mkDerivation {
        pname = "algebraic-graphs";
-       version = "0.6";
-       sha256 = "1d3gwyimrzcc7i2qj3iimab3wz6vicgwybhq7ac3da86b8pjlgim";
-       revision = "1";
-       editedCabalFile = "0f7ih4d0jls7399slxc3zkg38z32jm80jv74iyy42l8s6m5ya1cv";
+       version = "0.6.1";
+       sha256 = "168aqkm7mfd4is95qwpyf9k0k95qf5rfnkhq5ydbr74jj4jrhr1d";
        libraryHaskellDepends = [
-         array base containers deepseq mtl transformers
+         array base containers deepseq transformers
        ];
        testHaskellDepends = [
-         array base containers deepseq extra inspection-testing mtl
-         QuickCheck transformers
+         array base containers deepseq extra inspection-testing QuickCheck
+         transformers
        ];
        description = "A library for algebraic graph construction and transformation";
        license = lib.licenses.mit;
      }) {};
 
+  "algebraic-graphs_0_7" = callPackage
+    ({ mkDerivation, array, base, containers, deepseq, extra
+     , inspection-testing, QuickCheck, transformers
+     }:
+     mkDerivation {
+       pname = "algebraic-graphs";
+       version = "0.7";
+       sha256 = "0s75h92qb9jdfdyzh0fraxpzj0jl4xvcbqq9cwgba2k9306rl5ai";
+       libraryHaskellDepends = [
+         array base containers deepseq transformers
+       ];
+       testHaskellDepends = [
+         array base containers deepseq extra inspection-testing QuickCheck
+         transformers
+       ];
+       description = "A library for algebraic graph construction and transformation";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "algebraic-graphs-io" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base, binary
      , binary-conduit, bytestring, conduit, conduit-extra, containers
@@ -26991,6 +27344,7 @@ self: {
        description = "An implementation of Knuth's algorithm S";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -27047,6 +27401,7 @@ self: {
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "acb";
      }) {};
 
   "algorithmic-composition-basic" = callPackage
@@ -27160,6 +27515,7 @@ self: {
        ];
        description = "Find relative time displacement of two recordings of the same music";
        license = lib.licenses.bsd3;
+       mainProgram = "align-audio";
      }) {};
 
   "align-text" = callPackage
@@ -27174,6 +27530,7 @@ self: {
        description = "A simple unix filter to align text on specified substrings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "align";
        broken = true;
      }) {};
 
@@ -27299,6 +27656,7 @@ self: {
        description = "a practical affine language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alms";
      }) {};
 
   "alpaca-netcode" = callPackage
@@ -27337,6 +27695,7 @@ self: {
        description = "A compiler for the Alpha language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alpha";
      }) {};
 
   "alphachar" = callPackage
@@ -27413,9 +27772,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (Exceptions)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-gui" = callPackage
@@ -27469,9 +27826,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to the ALSA simple mixer API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm" = callPackage
@@ -27491,9 +27846,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (PCM audio)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-pcm-tests" = callPackage
@@ -27530,9 +27883,7 @@ self: {
        libraryPkgconfigDepends = [ alsa-lib ];
        description = "Binding to the ALSA Library API (MIDI sequencer)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) alsa-lib;};
 
   "alsa-seq-tests" = callPackage
@@ -27656,6 +28007,7 @@ self: {
        description = "Implement a menu experience fit for web users";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "alto";
      }) {};
 
   "altsvc" = callPackage
@@ -27758,6 +28110,7 @@ self: {
        description = "Connector for Amazon Products API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "repl";
        broken = true;
      }) {};
 
@@ -28435,6 +28788,7 @@ self: {
        description = "A Haskell equivalent of \"aws rds generate-db-auth-token\"";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate-db-auth-token";
      }) {};
 
   "amazonka-core" = callPackage
@@ -30409,6 +30763,7 @@ self: {
        description = "Toolsuite for automated design of business processes";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ampersand";
      }) {};
 
   "amqp" = callPackage
@@ -30436,6 +30791,7 @@ self: {
        ];
        description = "Client library for AMQP servers (currently only RabbitMQ)";
        license = lib.licenses.bsd3;
+       mainProgram = "amqp-builder";
      }) {};
 
   "amqp-conduit" = callPackage
@@ -30466,8 +30822,8 @@ self: {
      }:
      mkDerivation {
        pname = "amqp-streamly";
-       version = "0.2.0";
-       sha256 = "0f6w574pq9nl4iq6di99cip4sxn62yrwpjqc22nwlvbqr6bgl79f";
+       version = "0.2.1";
+       sha256 = "17qh1f05byyysmmyyz6lsqgkkn3bhxw6jpg4pm53ii1m6myfnqw9";
        libraryHaskellDepends = [ amqp base streamly text ];
        testHaskellDepends = [
          amqp base bytestring hspec process streamly testcontainers text
@@ -30523,6 +30879,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {server = null;};
 
@@ -30537,6 +30894,7 @@ self: {
        executableHaskellDepends = [ base deepseq parsec ];
        description = "Interpreter for AM";
        license = "GPL";
+       mainProgram = "amrun";
      }) {};
 
   "anagrep" = callPackage
@@ -30559,6 +30917,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Find strings with permutations (anagrams) that match a regular expression";
        license = lib.licenses.bsd3;
+       mainProgram = "anagrep";
      }) {};
 
   "analyze" = callPackage
@@ -30622,6 +30981,7 @@ self: {
        ];
        description = "Simple literate programming preprocessor";
        license = lib.licenses.gpl3Only;
+       mainProgram = "anansi";
      }) {};
 
   "anansi-hscolour" = callPackage
@@ -30681,6 +31041,7 @@ self: {
        description = "Anatomy: Atomo documentation system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anatomy";
      }) {};
 
   "android" = callPackage
@@ -30734,6 +31095,7 @@ self: {
        description = "A pretty printer for Android Lint errors";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "android-lint-summary";
        broken = true;
      }) {};
 
@@ -30763,6 +31125,7 @@ self: {
        description = "Process management and supervision daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "angel";
        broken = true;
      }) {};
 
@@ -30793,6 +31156,7 @@ self: {
        description = "A small, general-purpose programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "angle";
        broken = true;
      }) {};
 
@@ -30827,6 +31191,7 @@ self: {
        description = "text-file based ASCII animator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animascii";
        broken = true;
      }) {};
 
@@ -30865,6 +31230,7 @@ self: {
        description = "Animation for sprites";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-example";
      }) {};
 
   "animate-frames" = callPackage
@@ -30887,6 +31253,7 @@ self: {
        description = "Convert sprite frames to animate files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-frames";
      }) {};
 
   "animate-preview" = callPackage
@@ -30913,6 +31280,7 @@ self: {
        description = "Preview tool for sprite animation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "animate-preview";
      }) {};
 
   "animate-sdl2" = callPackage
@@ -30946,6 +31314,7 @@ self: {
        description = "Tools for interacting with Anki database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anki-tools-test";
        broken = true;
      }) {};
 
@@ -30971,7 +31340,8 @@ self: {
        description = "Medium-level language that desugars to Morte";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "annah";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "annihilator" = callPackage
@@ -31181,6 +31551,7 @@ self: {
        description = "A web interface to Antisplice dungeons";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ironforge-yesod";
      }) {};
 
   "antfarm" = callPackage
@@ -31204,6 +31575,7 @@ self: {
        description = "Referring expressions for definitions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "antfarm";
        broken = true;
      }) {};
 
@@ -31231,6 +31603,7 @@ self: {
        description = "This is an IRC bot for Mafia and Resistance";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "anticiv";
      }) {};
 
   "antigate" = callPackage
@@ -31265,6 +31638,7 @@ self: {
        description = "Define the language containment (=subtyping) relation on regulare expressions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -31635,6 +32009,7 @@ self: {
        description = "Haskell binding to the ANTLR parser generator C runtime library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "antlrcmkenums";
      }) {antlr3c = null;};
 
   "anydbm" = callPackage
@@ -31781,6 +32156,7 @@ self: {
        description = "Get all your structure and rip it apart";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -31879,6 +32255,7 @@ self: {
        description = "Server and community browser for the game Tremulous";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apelsin";
      }) {};
 
   "api-builder" = callPackage
@@ -31964,6 +32341,7 @@ self: {
        testHaskellDepends = [ base bytestring hs-coindesk-api ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mnb-app";
        broken = true;
      }) {hs-coindesk-api = null;};
 
@@ -32006,6 +32384,7 @@ self: {
        description = "JSON-RPC API client for Accumulate blockchain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "acme-app";
      }) {};
 
   "api-rpc-factom" = callPackage
@@ -32032,6 +32411,7 @@ self: {
        description = "RPC API client for Factom";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "factom-app";
      }) {};
 
   "api-rpc-pegnet" = callPackage
@@ -32441,6 +32821,7 @@ self: {
        description = "Apple Push Notification service HTTP/2 integration";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apns-http2-example";
        broken = true;
      }) {};
 
@@ -32472,6 +32853,7 @@ self: {
        description = "a faster debian repository";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "apotiki";
      }) {};
 
   "app-lens" = callPackage
@@ -32543,19 +32925,21 @@ self: {
        description = "app container types and tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "appc";
        broken = true;
      }) {};
 
   "appendful" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, mtl, validity
-     , validity-containers
+    ({ mkDerivation, aeson, autodocodec, base, containers, deepseq, mtl
+     , validity, validity-containers
      }:
      mkDerivation {
        pname = "appendful";
-       version = "0.0.0.0";
-       sha256 = "1wb2abnr2k7d7bgvh3zjyg55s1236cgnz1idldpxcrib30nr01l8";
+       version = "0.1.0.0";
+       sha256 = "07bs55kwj0r5q8z9mvihc890yfan9whis8q1n5k27sbqpfbwaqws";
        libraryHaskellDepends = [
-         aeson base containers deepseq mtl validity validity-containers
+         aeson autodocodec base containers deepseq mtl validity
+         validity-containers
        ];
        license = lib.licenses.mit;
      }) {};
@@ -32581,7 +32965,6 @@ self: {
          QuickCheck text validity
        ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "appendmap" = callPackage
@@ -32719,6 +33102,7 @@ self: {
        ];
        description = "Perform refactorings specified by the refact library";
        license = lib.licenses.bsd3;
+       mainProgram = "refactor";
      }) {};
 
   "apply-refact_0_10_0_0" = callPackage
@@ -32753,6 +33137,7 @@ self: {
        description = "Perform refactorings specified by the refact library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "refactor";
      }) {};
 
   "apply-unordered" = callPackage
@@ -32855,6 +33240,7 @@ self: {
        description = "Easy-to-use emulation of approximate, ranges and tolerances in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "approx-exe";
        broken = true;
      }) {};
 
@@ -32898,6 +33284,8 @@ self: {
        pname = "approximate";
        version = "0.3.5";
        sha256 = "1f168ac9xryrv50k7gvh89xv0mj6c42cxw7pj01pqcbppbs0rm3g";
+       revision = "1";
+       editedCabalFile = "1dv6jk6hin5bvzdvdz10nlk4xfhn03mdd90f8g94ah4gyqsx6sfk";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq ghc-prim hashable lens
          log-domain pointed safecopy semigroupoids semigroups vector
@@ -32929,6 +33317,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Wipes time stamps from .a files (like ar -D)";
        license = lib.licenses.mit;
+       mainProgram = "ar-timestamp-wiper";
      }) {};
 
   "arb-fft" = callPackage
@@ -32953,6 +33342,7 @@ self: {
        description = "Pure Haskell arbitrary length FFT library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profile-256";
        broken = true;
      }) {};
 
@@ -33062,6 +33452,7 @@ self: {
        description = "Simple logging library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arbor-monad-logger-example";
        broken = true;
      }) {};
 
@@ -33141,29 +33532,29 @@ self: {
      , bytestring-progress, conduit, containers, deepseq, directory
      , exceptions, filepath, mtl, parsec, pcre-light, process-extras
      , resourcet, strict, tasty, tasty-golden, tasty-hunit
-     , terminal-progress-bar, text, time, transformers, unix
+     , terminal-progress-bar, text, time, transformers, tz, unix
      , unliftio-core, utf8-string, X11
      }:
      mkDerivation {
        pname = "arbtt";
-       version = "0.11.1";
-       sha256 = "0xlwphjq36wbdzbzl39m163jhrcxnhnrx0lsvmbq4y2gf20r0bbq";
+       version = "0.12";
+       sha256 = "0amgkbycbpr8zhpn7l1a68ddhrvz1rcr74gi0znhx0y3vspns7v8";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
          aeson array attoparsec base binary bytestring bytestring-progress
          conduit containers deepseq directory exceptions filepath mtl parsec
          pcre-light resourcet strict terminal-progress-bar text time
-         transformers unix unliftio-core utf8-string X11
+         transformers tz unix unliftio-core utf8-string X11
        ];
        testHaskellDepends = [
          base binary bytestring containers deepseq directory mtl parsec
          pcre-light process-extras tasty tasty-golden tasty-hunit time
-         transformers unix utf8-string
+         transformers tz unix utf8-string
        ];
        description = "Automatic Rule-Based Time Tracker";
        license = lib.licenses.gpl2Only;
-       maintainers = with lib.maintainers; [ rvl ];
+       maintainers = [ lib.maintainers.rvl ];
      }) {};
 
   "arcgrid" = callPackage
@@ -33178,6 +33569,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Parse ESRI/ArcInfo (ArcGrid) raster GIS files";
        license = lib.licenses.bsd3;
+       mainProgram = "arcgrid-dump";
      }) {};
 
   "arcgrid-viewer" = callPackage
@@ -33193,6 +33585,7 @@ self: {
        ];
        description = "Simple viewer for ESRI/ArcInfo (ArcGrid) geospatial data";
        license = lib.licenses.bsd3;
+       mainProgram = "arcgrid-viewer";
      }) {};
 
   "arch-hs" = callPackage
@@ -33206,8 +33599,8 @@ self: {
      }:
      mkDerivation {
        pname = "arch-hs";
-       version = "0.10.1.0";
-       sha256 = "1lkhw3v7gmzgnv4y6p9l3m7qgpdahjiivx12w50kn35crkscscry";
+       version = "0.10.2.0";
+       sha256 = "0z0ralwh0z1zx5nf83j7cli9fdf9c9gpl99r7kiqv167kb2wiw9x";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -33239,10 +33632,10 @@ self: {
      }:
      mkDerivation {
        pname = "arch-web";
-       version = "0.1.0";
-       sha256 = "1wiy4swpi3ca8sri2drycfr6i674da2kgiplfng7jcjlxr5nmdpz";
+       version = "0.1.1";
+       sha256 = "1qlx1md7hzxv5cxv3jsiyc0rrbrg2m38b0w27i7bdyd1dlpnyy0d";
        revision = "1";
-       editedCabalFile = "0g6mngy0b18n0w247ff2fyqxhdb6pxz6jywzypiq54w3f4vdqxr9";
+       editedCabalFile = "1342nvrxz8g6q96swxvvbvs1g34s82lhrx02xq371cv70svyq2bk";
        libraryHaskellDepends = [
          aeson base deriving-aeson exceptions http-client http-client-tls
          http-types lens mtl servant servant-client servant-client-core text
@@ -33255,7 +33648,7 @@ self: {
        ];
        description = "Arch Linux official and AUR web interface binding";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "archive" = callPackage
@@ -33278,6 +33671,7 @@ self: {
        description = "A library and programs for creating hardlinked incremental archives or backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archive";
        broken = true;
      }) {debian-mirror = null; help = null;};
 
@@ -33361,6 +33755,7 @@ self: {
        description = "Archive supplied URLs in WebCite & Internet Archive";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archiver";
        broken = true;
      }) {};
 
@@ -33421,6 +33816,7 @@ self: {
        description = "Convert Arch Linux package updates in RSS to pretty markdown";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "archnews";
        broken = true;
      }) {};
 
@@ -33499,6 +33895,7 @@ self: {
        description = "An interpreter for the Argh! programming language in wxHaskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "argh";
      }) {};
 
   "argo" = callPackage
@@ -33530,6 +33927,7 @@ self: {
        ];
        description = "Parse and render JSON";
        license = lib.licenses.mit;
+       mainProgram = "argo";
      }) {};
 
   "argon" = callPackage
@@ -33557,6 +33955,7 @@ self: {
        description = "Measure your code's complexity";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "argon";
      }) {};
 
   "argon2" = callPackage
@@ -33609,6 +34008,7 @@ self: {
        description = "A computer assisted argumentation transcription and editing software";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ArguEdit.bin";
        broken = true;
      }) {};
 
@@ -33638,6 +34038,7 @@ self: {
        description = "Go-to-definition for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ariadne-server";
      }) {};
 
   "arion" = callPackage
@@ -33662,6 +34063,7 @@ self: {
        description = "Watcher and runner for Hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arion";
        broken = true;
      }) {};
 
@@ -33693,7 +34095,8 @@ self: {
        ];
        description = "Run docker-compose with help from Nix/NixOS";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "arion";
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "arith-encode" = callPackage
@@ -33755,6 +34158,7 @@ self: {
        ];
        description = "Natural number arithmetic";
        license = lib.licenses.mit;
+       mainProgram = "arithmetic";
      }) {};
 
   "arithmetic-circuits" = callPackage
@@ -33850,6 +34254,7 @@ self: {
        description = "Space-based real time strategy game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "armada";
        broken = true;
      }) {};
 
@@ -33886,6 +34291,7 @@ self: {
        description = "Library for reading ARPA n-gram models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arpa";
        broken = true;
      }) {};
 
@@ -33983,6 +34389,7 @@ self: {
        description = "A simple interpreter for arrayForth, the language used on GreenArrays chips";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "array-forth";
      }) {};
 
   "array-list" = callPackage
@@ -34167,6 +34574,7 @@ self: {
        description = "preprocessor translating arrow notation into Haskell 98";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arrowp";
        broken = true;
      }) {};
 
@@ -34189,6 +34597,7 @@ self: {
        description = "A preprocessor and quasiquoter for translating arrow notation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "arrowp";
        broken = true;
      }) {};
 
@@ -34254,6 +34663,7 @@ self: {
        ];
        description = "Archive execution tool";
        license = lib.licenses.bsd3;
+       mainProgram = "arx";
      }) {};
 
   "arxiv" = callPackage
@@ -34267,6 +34677,25 @@ self: {
        license = "LGPL";
      }) {};
 
+  "asana" = callPackage
+    ({ mkDerivation, aeson, aeson-casing, base, bytestring, hashable
+     , http-conduit, iso8601-time, microlens, microlens-mtl
+     , monad-logger, mtl, scientific, text, time, unliftio
+     , unliftio-core, unordered-containers
+     }:
+     mkDerivation {
+       pname = "asana";
+       version = "1.0.0.0";
+       sha256 = "0iz1zzisx2ap89p0wdfxpdcbv7zgf00g1lfa00s1ndrkgpxn9ivr";
+       libraryHaskellDepends = [
+         aeson aeson-casing base bytestring hashable http-conduit
+         iso8601-time microlens microlens-mtl monad-logger mtl scientific
+         text time unliftio unliftio-core unordered-containers
+       ];
+       description = "Asana API Client";
+       license = lib.licenses.mit;
+     }) {};
+
   "asap" = callPackage
     ({ mkDerivation, base, bytestring, hedgehog, jwt, lens, mtl
      , semigroups, text, time, uuid
@@ -34349,6 +34778,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "ASCII Art to Unicode Box Drawing converter";
        license = lib.licenses.bsd3;
+       mainProgram = "aa2u";
      }) {};
 
   "ascii-case" = callPackage
@@ -34400,6 +34830,7 @@ self: {
        description = "Flattens European non-ASCII characaters into ASCII";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ascii-flatten";
        broken = true;
      }) {};
 
@@ -34428,6 +34859,7 @@ self: {
        ];
        description = "ASCII animations for the holidays!";
        license = lib.licenses.gpl3Only;
+       mainProgram = "ascii-holidays";
      }) {};
 
   "ascii-numbers" = callPackage
@@ -34614,6 +35046,7 @@ self: {
        description = "Process Ascii Vectors for Advantest 93k";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SelectSigs";
        broken = true;
      }) {};
 
@@ -34668,6 +35101,7 @@ self: {
        ];
        description = "Pretty rendering of Ascii diagram into svg or png";
        license = lib.licenses.bsd3;
+       mainProgram = "asciidiagram";
      }) {};
 
   "asic" = callPackage
@@ -34682,6 +35116,7 @@ self: {
        description = "Action Script Instrumentation Compiler";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "asic";
      }) {};
 
   "asif" = callPackage
@@ -34725,6 +35160,7 @@ self: {
        description = "Library for creating and querying segmented feeds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "asif";
      }) {};
 
   "asil" = callPackage
@@ -34862,6 +35298,7 @@ self: {
        ];
        description = "Dump ASN1 structure";
        license = lib.licenses.bsd3;
+       mainProgram = "asn1dump";
      }) {};
 
   "aspell-pipe" = callPackage
@@ -34888,6 +35325,7 @@ self: {
        description = "Haskell Assembler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "has";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -35208,6 +35646,7 @@ self: {
        description = "an incomplete 2d space game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "astrds";
        broken = true;
      }) {};
 
@@ -35247,6 +35686,7 @@ self: {
        description = "A GTK-based abstract syntax tree viewer for custom languages and parsers";
        license = lib.licenses.bsdOriginal;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "astview";
      }) {};
 
   "astview-utils" = callPackage
@@ -35383,6 +35823,7 @@ self: {
        description = "A thread manager for async";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thread-clean-up-test";
        broken = true;
      }) {};
 
@@ -35511,6 +35952,7 @@ self: {
        description = "Utility functions for working with aterms as generated by Minitermite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ppaterm";
      }) {};
 
   "atl" = callPackage
@@ -35835,6 +36277,7 @@ self: {
        description = "A highly dynamic, extremely simple, very fun programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atomo";
        broken = true;
      }) {};
 
@@ -35906,6 +36349,7 @@ self: {
        description = "A source-code formatter for ATS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atsfmt";
      }) {};
 
   "ats-pkg" = callPackage
@@ -35941,6 +36385,7 @@ self: {
        description = "A build tool for ATS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atspkg";
      }) {};
 
   "ats-setup" = callPackage
@@ -36041,6 +36486,7 @@ self: {
        description = "A script I use to run \"attic\" for my backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "attic-schedule";
        broken = true;
      }) {};
 
@@ -36090,6 +36536,7 @@ self: {
        description = "Minimal mail delivery agent (MDA) for local mail with maildir support";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "attomail";
        broken = true;
      }) {};
 
@@ -36288,6 +36735,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "attoparsec-iso8601_1_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, base-compat-batteries, text
+     , time, time-compat
+     }:
+     mkDerivation {
+       pname = "attoparsec-iso8601";
+       version = "1.1.0.0";
+       sha256 = "0ji6rcz49caqpj85dg8gs90cnc15500qyyh4b3n598a8qhbsh28i";
+       libraryHaskellDepends = [
+         attoparsec base base-compat-batteries 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
@@ -36455,6 +36918,7 @@ self: {
        description = "Embedded Turtle language compiler in Haskell, with Epic output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "atuin";
      }) {};
 
   "audacity" = callPackage
@@ -36517,6 +36981,7 @@ self: {
        description = "A Haskell FFI wrapper for the Augeas API";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-haskell-augeas";
        broken = true;
      }) {inherit (pkgs) augeas;};
 
@@ -36537,6 +37002,7 @@ self: {
        description = "Renaming media collections in a breeze";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "augur";
        broken = true;
      }) {};
 
@@ -36548,6 +37014,8 @@ self: {
        pname = "aur";
        version = "7.0.7";
        sha256 = "0k8b3rc89ibln7idb1a1f6g3p04f1n7mnk8q8nqiggygf8r6sdnh";
+       revision = "1";
+       editedCabalFile = "0lxhkpxxg7gvwa47bdk2hi0f9ww1kvrmkwy41ar64lp124frcvsf";
        libraryHaskellDepends = [
          aeson base bytestring hashable http-client http-types text
        ];
@@ -36590,6 +37058,8 @@ self: {
        pname = "aura";
        version = "3.2.9";
        sha256 = "0hw96090gb4rf6n6mf9mn2y50sjgcvny2ipdd9720an33nhpsd3m";
+       revision = "3";
+       editedCabalFile = "0ah0hdb3inqbmvriwx67hd7rbj5qkh3q103bvbdd0zj7zaqlz30k";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -36611,6 +37081,7 @@ self: {
        description = "A secure package manager for Arch Linux and the AUR";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aura";
      }) {};
 
   "authenticate" = callPackage
@@ -36753,7 +37224,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Template Haskell to automatically pass values to functions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "autodocodec" = callPackage
@@ -36772,8 +37243,6 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Self-documenting encoder and decoder";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "autodocodec-openapi3" = callPackage
@@ -36783,15 +37252,14 @@ self: {
      }:
      mkDerivation {
        pname = "autodocodec-openapi3";
-       version = "0.2.0.0";
-       sha256 = "1r9csd9v01pwiz1vhydpn3jnp5jk45shkfmizgpnn8p1mfkms55j";
+       version = "0.2.1.0";
+       sha256 = "1nd1r7r258dxhrdjwc7m8byrv99b1zqapvj8021yq8j1nad8mjvg";
        libraryHaskellDepends = [
          aeson autodocodec base insert-ordered-containers lens mtl openapi3
          scientific text unordered-containers
        ];
        description = "Autodocodec interpreters for openapi3";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "autodocodec-schema" = callPackage
@@ -36809,7 +37277,6 @@ self: {
        ];
        description = "Autodocodec interpreters for JSON Schema";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "autodocodec-swagger2" = callPackage
@@ -36826,7 +37293,6 @@ self: {
        ];
        description = "Autodocodec interpreters for swagger2";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "autodocodec-yaml" = callPackage
@@ -36845,7 +37311,6 @@ self: {
        ];
        description = "Autodocodec interpreters for yaml";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "autoexporter" = callPackage
@@ -36860,6 +37325,7 @@ self: {
        executableHaskellDepends = [ base Cabal directory filepath ];
        description = "Automatically re-export modules";
        license = lib.licenses.mit;
+       mainProgram = "autoexporter";
      }) {};
 
   "autom" = callPackage
@@ -36986,6 +37452,7 @@ self: {
        description = "Generate dependencies for KDE 5 Nix expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kf5-deps";
      }) {};
 
   "autopack" = callPackage
@@ -37013,6 +37480,7 @@ self: {
        libraryHaskellDepends = [ base directory mtl process unix ];
        description = "EDSL for Procmail scripts";
        license = lib.licenses.bsd3;
+       mainProgram = "autoproc";
      }) {};
 
   "avahi" = callPackage
@@ -37027,6 +37495,7 @@ self: {
        executableHaskellDepends = [ base bytestring dbus text ];
        description = "Minimal DBus bindings for Avahi daemon (http://avahi.org)";
        license = lib.licenses.bsd3;
+       mainProgram = "avahi-browse";
      }) {};
 
   "avatar-generator" = callPackage
@@ -37041,6 +37510,7 @@ self: {
        description = "A simple random avatar icon generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "avatar-generator";
        broken = true;
      }) {};
 
@@ -37201,6 +37671,7 @@ self: {
        description = "Aviation Navigation functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wind-correction";
      }) {};
 
   "aviation-units" = callPackage
@@ -37330,6 +37801,7 @@ self: {
        description = "Tool for decoding avro";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "avro-decode";
        broken = true;
      }) {};
 
@@ -37351,6 +37823,7 @@ self: {
        description = "Parse aviation weather reports";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar";
        broken = true;
      }) {};
 
@@ -37493,6 +37966,7 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation ];
        description = "Generate signed cookies for AWS CloudFront";
        license = lib.licenses.mit;
+       mainProgram = "aws-cloudfront-signed-cookies";
      }) {};
 
   "aws-cloudfront-signed-cookies_0_2_0_11" = callPackage
@@ -37505,6 +37979,8 @@ self: {
        pname = "aws-cloudfront-signed-cookies";
        version = "0.2.0.11";
        sha256 = "018a3q443h19pbcc178ns7zdmsdd3pz8ww3yfixrhr4jfghws3r9";
+       revision = "2";
+       editedCabalFile = "1i8zyr3kz1cm8ygzpkvxyfqzlnykkwsfa41yrb5k89729fw51dnm";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -37517,6 +37993,7 @@ self: {
        description = "Generate signed cookies for AWS CloudFront";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-cloudfront-signed-cookies";
      }) {};
 
   "aws-cloudfront-signer" = callPackage
@@ -37620,6 +38097,7 @@ self: {
        description = "Helper function and types for working with amazonka";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-easy-demo";
      }) {};
 
   "aws-ec2" = callPackage
@@ -37785,6 +38263,7 @@ self: {
        description = "A producer & consumer client library for AWS Kinesis";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kinesis-cli";
      }) {};
 
   "aws-kinesis-reshard" = callPackage
@@ -37814,6 +38293,7 @@ self: {
        description = "Reshard AWS Kinesis streams in response to Cloud Watch metrics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kinesis-reshard";
      }) {};
 
   "aws-lambda" = callPackage
@@ -37905,6 +38385,7 @@ self: {
        description = "Haskell on AWS Lambda Runtime API";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-lambda";
        broken = true;
      }) {};
 
@@ -37945,6 +38426,7 @@ self: {
        description = "Keep your AWS credentials file up to date with MFA-carrying credentials";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "aws-mfa-credentials";
      }) {};
 
   "aws-performance-tests" = callPackage
@@ -37971,6 +38453,7 @@ self: {
        description = "Performance Tests for the Haskell bindings for Amazon Web Services (AWS)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dynamodb-performance";
        broken = true;
      }) {};
 
@@ -38154,19 +38637,20 @@ self: {
 
   "aws-sns-verify" = callPackage
     ({ mkDerivation, aeson, aeson-qq, async, base, bytestring, errors
-     , hspec, http-conduit, http-types, memory, pem, text, wai, warp
-     , x509, x509-validation
+     , hspec, http-conduit, http-types, memory, network-uri, pem
+     , regex-tdfa, text, wai, warp, x509, x509-validation
      }:
      mkDerivation {
        pname = "aws-sns-verify";
-       version = "0.0.0.1";
-       sha256 = "1ayn2176y3011xf4n0axfnlaa9ysy2xdsqszmkhf3yszlkkrhmqi";
+       version = "0.0.0.2";
+       sha256 = "0v05hca43v12g4x2ffwqla9pmf9gx8l85vv88cljn808qbsj5h4v";
        libraryHaskellDepends = [
-         aeson base bytestring errors http-conduit memory pem text x509
-         x509-validation
+         aeson base bytestring errors http-conduit memory network-uri pem
+         regex-tdfa text x509 x509-validation
        ];
        testHaskellDepends = [
-         aeson-qq async base hspec http-types text wai warp x509-validation
+         aeson-qq async base hspec http-types regex-tdfa text wai warp
+         x509-validation
        ];
        description = "Parse and verify AWS SNS messages";
        license = lib.licenses.mit;
@@ -38306,6 +38790,7 @@ self: {
        description = "The Axel programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "axel";
        broken = true;
      }) {};
 
@@ -38518,6 +39003,7 @@ self: {
        description = "A simple library for accessing Azure blob storage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "azurify";
        broken = true;
      }) {};
 
@@ -38587,6 +39073,7 @@ self: {
        description = "A tool and library for building virtual machine images";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "b9c";
        broken = true;
      }) {};
 
@@ -38618,6 +39105,7 @@ self: {
        description = "An implementation of a simple 2-player board game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "babylon";
      }) {};
 
   "backblaze-b2-hs" = callPackage
@@ -38651,6 +39139,7 @@ self: {
        description = "A client library to access Backblaze B2 cloud storage in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backblaze-b2-hs";
      }) {};
 
   "backdropper" = callPackage
@@ -38669,6 +39158,7 @@ self: {
        description = "Rotates backdrops for X11 displays using Imagemagic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backdropper_consol";
      }) {};
 
   "backprop" = callPackage
@@ -38716,6 +39206,7 @@ self: {
        description = "Backstop a target directory by source directories";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "backstop";
        broken = true;
      }) {};
 
@@ -38776,6 +39267,7 @@ self: {
        executableHaskellDepends = [ base gd X11 ];
        description = "braindead utility to compose Xinerama backgrounds";
        license = "unknown";
+       mainProgram = "bacteria";
      }) {};
 
   "bag" = callPackage
@@ -38823,6 +39315,7 @@ self: {
        description = "Continuous integration system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bake-test";
        broken = true;
      }) {};
 
@@ -38890,6 +39383,7 @@ self: {
        description = "bamboo-launcher";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bamboo";
      }) {};
 
   "bamboo-plugin-highlight" = callPackage
@@ -38987,6 +39481,7 @@ self: {
        description = "A Windows Installer (MSI) generator framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsDotnetGen";
      }) {};
 
   "bamstats" = callPackage
@@ -39001,6 +39496,7 @@ self: {
        description = "A program to extract various information from BAM alignmnet files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bam";
      }) {};
 
   "ban-instance" = callPackage
@@ -39125,7 +39621,8 @@ self: {
        ];
        description = "Create status bar menus for macOS from executables";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
+       mainProgram = "barbly";
      }) {};
 
   "barchart" = callPackage
@@ -39141,6 +39638,7 @@ self: {
        description = "Creating Bar Charts in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "barchart";
        broken = true;
      }) {};
 
@@ -39189,6 +39687,7 @@ self: {
        description = "A web based environment for learning and tinkering with Haskell";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "barley";
      }) {};
 
   "barrie" = callPackage
@@ -39745,8 +40244,8 @@ self: {
        pname = "base64-bytestring-type";
        version = "1.0.1";
        sha256 = "03kq4rjj6by02rf3hg815jfdqpdk0xygm5f46r2pn8mb99yd01zn";
-       revision = "12";
-       editedCabalFile = "09ap4z85k3lncf27b2qzfks4lnjm8rzldmzvbik7il3ycc60dk5i";
+       revision = "14";
+       editedCabalFile = "0pfj807231v2jn5067yhn13f6qq3d77fqnglmzh5wp445ikd5q0s";
        libraryHaskellDepends = [
          aeson base base-compat base64-bytestring binary bytestring cereal
          deepseq hashable http-api-data QuickCheck serialise text
@@ -39826,6 +40325,18 @@ self: {
        ];
        description = "A Generic Base91 Encoder & Decoder";
        license = lib.licenses.mit;
+       mainProgram = "base91";
+     }) {};
+
+  "based" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "based";
+       version = "0.1";
+       sha256 = "1s4nacp3ripdn895c863hmnpaqmbkiisjp3y45v1q28qdjy052qv";
+       libraryHaskellDepends = [ base ];
+       description = "alternative prelude";
+       license = lib.licenses.mit;
      }) {};
 
   "basement" = callPackage
@@ -39908,6 +40419,7 @@ self: {
        description = "Baserock Definitions Schema";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "baserock";
      }) {};
 
   "basex-client" = callPackage
@@ -40024,6 +40536,7 @@ self: {
        description = "An interpreter for a small functional language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "baskell";
        broken = true;
      }) {};
 
@@ -40055,6 +40568,7 @@ self: {
        executableHaskellDepends = [ base directory filepath Glob ];
        description = "Make Linux or MacOS do things like \"rename *.mp3 *.mp4\"";
        license = lib.licenses.publicDomain;
+       mainProgram = "batch_rename";
      }) {};
 
   "batchd" = callPackage
@@ -40254,6 +40768,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Compute number of possible arrangements in the battleship game";
        license = lib.licenses.bsd3;
+       mainProgram = "battleship-combinatorics";
      }) {};
 
   "battleships" = callPackage
@@ -40325,6 +40840,7 @@ self: {
        description = "HTML Coverage Reports for Rules_Haskell";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bazel-coverage-report-renderer";
        broken = true;
      }) {};
 
@@ -40340,6 +40856,7 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "Locate Bazel runfiles location";
        license = lib.licenses.asl20;
+       mainProgram = "bazel-runfiles-exe";
      }) {};
 
   "bbdb" = callPackage
@@ -40508,10 +41025,9 @@ self: {
        ];
        description = "BDCS API Server";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bdcs-api-server";
      }) {inherit (pkgs) libgit2-glib;};
 
   "bdd" = callPackage
@@ -40560,6 +41076,7 @@ self: {
        description = "Update CSS in the browser without reloading the page";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bdo";
        broken = true;
      }) {};
 
@@ -40804,8 +41321,8 @@ self: {
      }:
      mkDerivation {
        pname = "bearriver";
-       version = "0.13.4";
-       sha256 = "1c2w0ll84mrzkwg3314pnmasgaql0yjhrb5wy7zlm18s3bgpcysb";
+       version = "0.13.5";
+       sha256 = "08r6i7xs7n9054m80svqbyjgy6c5diypxswwjkc3gxrcn1s0fqkv";
        libraryHaskellDepends = [
          base dunai MonadRandom mtl simple-affine-space transformers
        ];
@@ -40825,6 +41342,7 @@ self: {
        description = "A pretty-printer for higher-order logic";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "beautifHOL";
      }) {};
 
   "bech32" = callPackage
@@ -40853,6 +41371,7 @@ self: {
        description = "Implementation of the Bech32 cryptocurrency address format (BIP 0173)";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bech32";
        broken = true;
      }) {};
 
@@ -40984,7 +41503,8 @@ self: {
        ];
        description = "Command-line benchmark tool";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "bench";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "bench-graph" = callPackage
@@ -41024,6 +41544,7 @@ self: {
        testHaskellDepends = [ base split text ];
        description = "Show, plot and compare benchmark results";
        license = lib.licenses.bsd3;
+       mainProgram = "bench-show";
      }) {};
 
   "benchmark-function" = callPackage
@@ -41049,6 +41570,7 @@ self: {
        executableHaskellDepends = [ base bytestring time ];
        description = "Micro-benchmarking with detailed statistics";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "bencode" = callPackage
@@ -41185,6 +41707,7 @@ self: {
        description = "An implementation of Python 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "berp";
      }) {};
 
   "bert" = callPackage
@@ -41291,6 +41814,7 @@ self: {
        description = "A horizontal version of tetris for braille users";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "betris";
        broken = true;
      }) {};
 
@@ -41365,6 +41889,7 @@ self: {
        description = "Implementation of the BGAPI serial protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bglibtest";
      }) {};
 
   "bgmax" = callPackage
@@ -41417,6 +41942,7 @@ self: {
        description = "Simple terminal GUI for local hoogle";
        license = "(BSD-3-Clause OR Apache-2.0)";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bhoogle";
        broken = true;
      }) {};
 
@@ -41441,6 +41967,7 @@ self: {
        description = "A database based bibliography manager for BibTeX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bibdb";
        broken = true;
      }) {};
 
@@ -41612,6 +42139,7 @@ self: {
        description = "A parser for the Billboard chord dataset";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billboard-parser";
      }) {};
 
   "billeksah-forms" = callPackage
@@ -41649,6 +42177,7 @@ self: {
        description = "Leksah plugin base";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billeksah-main";
      }) {};
 
   "billeksah-main-static" = callPackage
@@ -41671,6 +42200,7 @@ self: {
        description = "Leksah plugin base";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "billeksah-main-static";
        broken = true;
      }) {leksah-dummy = null; leksah-main = null; 
          leksah-plugin-pane = null;};
@@ -41826,6 +42356,7 @@ self: {
        ];
        description = "Generate CSV Exports of your Binance Trade History";
        license = lib.licenses.bsd3;
+       mainProgram = "binance-exports";
      }) {};
 
   "binary_0_8_9_0" = callPackage
@@ -42041,8 +42572,8 @@ self: {
        pname = "binary-instances";
        version = "1.0.2";
        sha256 = "10z29k35clq74ma2f0yrkbyf14wdax1zzgb6mn26ja4vp9f5wc14";
-       revision = "2";
-       editedCabalFile = "1f9db18466pbnn8hxhbwqb7pf5qmbmc7szpcdhy77n825pvhjyi8";
+       revision = "3";
+       editedCabalFile = "1jfhn6nqqg8hz3d2j7zyhpqv74165jf69dycjr6vzbxmvvn03wil";
        libraryHaskellDepends = [
          aeson base binary binary-orphans case-insensitive hashable
          scientific tagged text text-binary time-compat unordered-containers
@@ -42074,6 +42605,8 @@ self: {
        ];
        description = "Read and write values of types that implement Binary";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "binary-list" = callPackage
@@ -42638,6 +43171,7 @@ self: {
        executableHaskellDepends = [ base binary bytestring split ];
        description = "Very low-level FFI bindings for Codec2";
        license = lib.licenses.gpl2Only;
+       mainProgram = "bindings-codec2-demo";
      }) {inherit (pkgs) codec2;};
 
   "bindings-common" = callPackage
@@ -42649,6 +43183,8 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "This package is obsolete. Look for bindings-DSL instead.";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "bindings-dc1394" = callPackage
@@ -42676,9 +43212,7 @@ self: {
        libraryPkgconfigDepends = [ directfb ];
        description = "Low level bindings to DirectFB";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) directfb;};
 
   "bindings-eskit" = callPackage
@@ -42816,6 +43350,7 @@ self: {
        description = "Hamlib bindings for Haskell";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamlib-hs-demo";
        broken = true;
      }) {inherit (pkgs) hamlib;};
 
@@ -43003,9 +43538,7 @@ self: {
        librarySystemDepends = [ lxc ];
        description = "Direct Haskell bindings to LXC (Linux containers) C API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) lxc;};
 
   "bindings-mmap" = callPackage
@@ -43072,9 +43605,7 @@ self: {
        libraryHaskellDepends = [ base bindings-DSL ];
        description = "parport bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "bindings-portaudio" = callPackage
@@ -43154,9 +43685,7 @@ self: {
        libraryPkgconfigDepends = [ sane-backends ];
        description = "FFI bindings to libsane";
        license = lib.licenses.lgpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) sane-backends;};
 
   "bindings-sc3" = callPackage
@@ -43295,6 +43824,7 @@ self: {
        description = "Embed data into object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binembed";
        broken = true;
      }) {};
 
@@ -43313,6 +43843,7 @@ self: {
        description = "Example project using binembed to embed data in object files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binembed-example";
      }) {};
 
   "bini" = callPackage
@@ -43380,6 +43911,7 @@ self: {
        description = "binary files splitter and merger";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "binsm";
        broken = true;
      }) {};
 
@@ -43676,6 +44208,7 @@ self: {
        description = "Plot a colorful tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "birch-beer";
      }) {};
 
   "bird" = callPackage
@@ -43697,6 +44230,7 @@ self: {
        description = "A simple, sinatra-inspired web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bird";
      }) {};
 
   "birds-of-paradise" = callPackage
@@ -43729,6 +44263,7 @@ self: {
        ];
        description = "A small tool that clears cookies (and more)";
        license = lib.licenses.gpl3Only;
+       mainProgram = "bisc";
      }) {};
 
   "biscuit-haskell" = callPackage
@@ -43801,6 +44336,7 @@ self: {
        description = "Determine relevant parts of binary data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bisect-binary";
        broken = true;
      }) {};
 
@@ -44267,6 +44803,7 @@ self: {
        description = "A library for working with bitcoin-core regtest networks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitcoind-rpc-explorer";
      }) {};
 
   "bitcoind-rpc" = callPackage
@@ -44305,6 +44842,7 @@ self: {
        description = "A command line tool to access bit.ly URL shortener.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitly";
      }) {};
 
   "bitmap" = callPackage
@@ -44526,6 +45064,7 @@ self: {
        description = "Proof-of-concept tool for writing using binary choices";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bitspeak";
        broken = true;
      }) {inherit (pkgs) gtk2; inherit (pkgs) pango;};
 
@@ -44609,6 +45148,7 @@ self: {
        executableHaskellDepends = [ base text turtle ];
        description = "Bindings for the Bittrex API";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "bitvec" = callPackage
@@ -44620,6 +45160,8 @@ self: {
        pname = "bitvec";
        version = "1.1.2.0";
        sha256 = "0h7c5kpx43bm6qqnkpbzma9n201987cnq1231zg33p3xp7qc1hm2";
+       revision = "1";
+       editedCabalFile = "0kf70z3adgdhmwc91ymr2y3jlg9irnz4hzck3l9im1d3zxs1lyvs";
        libraryHaskellDepends = [
          base bytestring deepseq ghc-bignum primitive vector
        ];
@@ -44634,6 +45176,30 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "bitvec_1_1_3_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, ghc-bignum
+     , primitive, quickcheck-classes, quickcheck-classes-base, random
+     , tasty, tasty-bench, tasty-quickcheck, vector
+     }:
+     mkDerivation {
+       pname = "bitvec";
+       version = "1.1.3.0";
+       sha256 = "0l85lshzh5c0s59pbbh76vg65bzz7x4y1a9gdvj4dkqz1bsklk0w";
+       libraryHaskellDepends = [
+         base bytestring deepseq ghc-bignum primitive vector
+       ];
+       testHaskellDepends = [
+         base ghc-bignum primitive quickcheck-classes
+         quickcheck-classes-base tasty tasty-quickcheck vector
+       ];
+       benchmarkHaskellDepends = [
+         base containers ghc-bignum random tasty-bench vector
+       ];
+       description = "Space-efficient bit vectors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "bitwise" = callPackage
     ({ mkDerivation, array, base, bytestring, criterion, QuickCheck }:
      mkDerivation {
@@ -44658,8 +45224,8 @@ self: {
        pname = "bitwise-enum";
        version = "1.0.1.0";
        sha256 = "0vmdr8csmxwab7s4nmqdfpqdssivh90fddk94i8wkwj1la867y1z";
-       revision = "1";
-       editedCabalFile = "0g4w46bv0pj52v3kfcc41g9m750il67fg78n54s91p6jam6l0r6h";
+       revision = "3";
+       editedCabalFile = "1f94gscpmffhx1m88nq6h6y46b1xpzp1kwfxb362zq6k1rq7dbk9";
        libraryHaskellDepends = [
          aeson array base deepseq mono-traversable vector
        ];
@@ -44760,6 +45326,7 @@ self: {
        description = "Backup utility for backing up to cloud storage services (S3 only right now)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bkr";
        broken = true;
      }) {};
 
@@ -44787,6 +45354,7 @@ self: {
        description = "a stupid cron";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bla";
      }) {};
 
   "black-jewel" = callPackage
@@ -44807,6 +45375,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "The pirate bay client";
        license = lib.licenses.gpl3Only;
+       mainProgram = "black-jewel";
      }) {};
 
   "blacktip" = callPackage
@@ -44853,6 +45422,7 @@ self: {
        ];
        description = "Shake frontend for Agda blogging";
        license = lib.licenses.agpl3Only;
+       mainProgram = "blagda";
      }) {};
 
   "blake2" = callPackage
@@ -44883,6 +45453,7 @@ self: {
        testHaskellDepends = [ base memory tasty tasty-hunit ];
        description = "BLAKE3 hashing algorithm";
        license = lib.licenses.asl20;
+       platforms = lib.platforms.x86;
      }) {};
 
   "blakesum" = callPackage
@@ -44914,6 +45485,7 @@ self: {
        description = "The BLAKE SHA-3 candidate hashes, in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blakesum";
      }) {};
 
   "blank-canvas" = callPackage
@@ -44927,8 +45499,8 @@ self: {
        pname = "blank-canvas";
        version = "0.7.3";
        sha256 = "1g10959ly5nv2xfhax4pamzxnxkqbniahplc5za8k5r4nq1vjrm2";
-       revision = "7";
-       editedCabalFile = "1vy43yvz382fd3d78w3inzly19pshszgwv3bsy4rzmiic0ip3l99";
+       revision = "9";
+       editedCabalFile = "1qzwy8kd25crnnm1m4sks6daqsm01i7pi8z96wnv1aa056vwiqx2";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base base-compat-batteries base64-bytestring bytestring
@@ -45061,6 +45633,7 @@ self: {
        description = "Blog in LaTeX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blatex";
      }) {};
 
   "blaze" = callPackage
@@ -45168,6 +45741,7 @@ self: {
        ];
        description = "Tool to convert HTML to BlazeHtml code";
        license = lib.licenses.bsd3;
+       mainProgram = "blaze-from-html";
      }) {};
 
   "blaze-html" = callPackage
@@ -45437,6 +46011,7 @@ self: {
        description = "Password entry tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blindpass";
        broken = true;
      }) {};
 
@@ -45457,6 +46032,7 @@ self: {
        description = "Control library for blink(1) LED from ThingM";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blink1";
      }) {};
 
   "blip" = callPackage
@@ -45476,6 +46052,7 @@ self: {
        description = "Python to bytecode compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blip";
      }) {};
 
   "bliplib" = callPackage
@@ -45542,8 +46119,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-api";
-       version = "0.4.0.1";
-       sha256 = "0bz3m6zmmwjj4g6d7h33calljmkhqgxb4la4xgrk309qxpk6sbcj";
+       version = "0.5.0.0";
+       sha256 = "1s9xascjn5653qaiva38prfi0yiynjvig1lzwkln63fx7qs2zfaz";
        libraryHaskellDepends = [
          aeson base bytestring data-default-class deriving-aeson lens
          QuickCheck quickcheck-instances safe-money servant servant-docs
@@ -45568,8 +46145,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client";
-       version = "0.4.0.1";
-       sha256 = "09gk90sic9dnqp2ybvg9vqaha6lblbd3940cdhqri1v8nc6s2i9g";
+       version = "0.5.0.0";
+       sha256 = "080nnnbw7rypxlis3rd94ssd13bv3jxbfh98rpmp49b2ygxdfdvn";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -45584,6 +46161,7 @@ self: {
        description = "blockfrost.io basic client";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "blockfrost-client-core" = callPackage
@@ -45595,8 +46173,8 @@ self: {
      }:
      mkDerivation {
        pname = "blockfrost-client-core";
-       version = "0.4.0.1";
-       sha256 = "0zlcdkvw8qpm0hiy7nyvyxhndbyv6nc5hfd5c7cdv0qighh4s5if";
+       version = "0.4.0.2";
+       sha256 = "0ns3argfbky2n3w7crbj2y1bzg01vpd4wq125abbfz9aqwnppcf4";
        libraryHaskellDepends = [
          aeson base blockfrost-api bytestring case-insensitive containers
          data-default http-client http-client-tls http-types servant
@@ -45646,6 +46224,7 @@ self: {
        description = "Blockhash perceptual image hash algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blockhash";
        broken = true;
      }) {};
 
@@ -45680,6 +46259,7 @@ self: {
        description = "Very simple static blog software";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blogination";
      }) {};
 
   "bloodhound" = callPackage
@@ -45795,6 +46375,7 @@ self: {
        description = "BLOSUM generator";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blosum";
      }) {};
 
   "bloxorz" = callPackage
@@ -45810,6 +46391,7 @@ self: {
        description = "OpenGL Logic Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bloxorz";
      }) {};
 
   "blubber" = callPackage
@@ -45828,6 +46410,7 @@ self: {
        description = "The blubber client; connects to the blubber server";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blubber";
      }) {};
 
   "blubber-server" = callPackage
@@ -45850,6 +46433,7 @@ self: {
        description = "The blubber server, serves blubber clients";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blubber-server";
        broken = true;
      }) {};
 
@@ -45877,6 +46461,7 @@ self: {
        ];
        description = "Configurable blue light filter";
        license = lib.licenses.bsd3;
+       mainProgram = "blucontrol";
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
   "bludigon" = callPackage
@@ -45904,6 +46489,7 @@ self: {
        description = "Configurable blue light filter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bludigon";
        broken = true;
      }) {inherit (pkgs.xorg) libX11; inherit (pkgs.xorg) libXrandr;};
 
@@ -45957,6 +46543,7 @@ self: {
        description = "Utilities for Bluetile";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bluetilemockwin-obsolete";
        broken = true;
      }) {};
 
@@ -45974,6 +46561,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -45997,6 +46585,7 @@ self: {
        description = "Convert between pointfree and pointful expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blunt";
      }) {};
 
   "bm" = callPackage
@@ -46008,8 +46597,8 @@ self: {
        pname = "bm";
        version = "0.1.0.2";
        sha256 = "1rpwlbhn5fkndw19ryksm9x2fcg7z7xscigi4zfs9v4w16skn7zj";
-       revision = "1";
-       editedCabalFile = "0jkl79smdm144qz074zshzl22cjhfr8mnddgwlj1hfn8anksv3yd";
+       revision = "2";
+       editedCabalFile = "00n49679ib14lkv1ji988rcjpsp42v213bahiga6xgqfdpf486zx";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -46022,6 +46611,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit vector ];
        description = "open bookmarks and queries from the command line";
        license = lib.licenses.mit;
+       mainProgram = "bm";
      }) {};
 
   "bmp" = callPackage
@@ -46058,6 +46648,7 @@ self: {
        ];
        description = "Generate CSV Exports of Your BNB Staking Rewards";
        license = lib.licenses.bsd3;
+       mainProgram = "bnb-staking-csvs";
      }) {};
 
   "bno055-haskell" = callPackage
@@ -46105,6 +46696,7 @@ self: {
        ];
        description = "Three games for inclusion in a web server";
        license = "GPL";
+       mainProgram = "board-games";
      }) {};
 
   "boardgame" = callPackage
@@ -46120,6 +46712,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Modeling boardgames";
        license = lib.licenses.mit;
+       mainProgram = "boardgame";
      }) {};
 
   "bodhi" = callPackage
@@ -46152,6 +46745,7 @@ self: {
        description = "Copy a directory tree, making zero-size sparse copies of big files";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bogocopy";
        broken = true;
      }) {};
 
@@ -46171,6 +46765,7 @@ self: {
        executableHaskellDepends = [ base hogre hois random ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bogre-banana-snake";
      }) {};
 
   "boilerplate" = callPackage
@@ -46200,6 +46795,7 @@ self: {
        description = "Generate Haskell boilerplate";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boilerplate";
      }) {};
 
   "bolt" = callPackage
@@ -46251,6 +46847,7 @@ self: {
        description = "Analytic sampler compiler for combinatorial systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bb";
        broken = true;
      }) {};
 
@@ -46303,6 +46900,7 @@ self: {
        description = "Bond schema compiler and code generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gbc";
      }) {};
 
   "bond-haskell" = callPackage
@@ -46354,14 +46952,15 @@ self: {
        description = "Bond code generator for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbc";
      }) {};
 
   "bookhound" = callPackage
     ({ mkDerivation, base, containers, time }:
      mkDerivation {
        pname = "bookhound";
-       version = "0.1.8.0";
-       sha256 = "1rmfhi12p0i6zsw7rlcyb6qdg1asda3n9gxhyh773hh3v99v5qd0";
+       version = "0.1.9.0";
+       sha256 = "0iv1iscz9p9z53x4v1xcplyc6j7cclgmhk5yn7ryc8jxz2ds1ic4";
        libraryHaskellDepends = [ base containers time ];
        description = "Simple Parser Combinators & Parsers";
        license = "LGPL";
@@ -46393,6 +46992,7 @@ self: {
        description = "Anonymous records and overloaded labels";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -46579,6 +47179,7 @@ self: {
        ];
        description = "A bookmarks manager with an HTML generator";
        license = lib.licenses.gpl3Only;
+       mainProgram = "boomange";
      }) {};
 
   "boombox" = callPackage
@@ -46631,6 +47232,7 @@ self: {
        description = "Boomshine clone";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boomslang";
      }) {};
 
   "boop" = callPackage
@@ -46667,6 +47269,7 @@ self: {
        description = "Mathematically sound sound synthesis";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perfprof";
      }) {};
 
   "boots" = callPackage
@@ -46704,6 +47307,7 @@ self: {
        description = "Factory for quickly building an application";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo-app";
        broken = true;
      }) {};
 
@@ -46826,6 +47430,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "An educational game";
        license = lib.licenses.bsd3;
+       mainProgram = "boring-game-exe";
      }) {};
 
   "boring-window-switcher" = callPackage
@@ -46841,6 +47446,7 @@ self: {
        description = "A boring window switcher";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boring-window-switcher";
        broken = true;
      }) {};
 
@@ -46880,6 +47486,7 @@ self: {
        description = "Build tool for Lambdabot";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "BotPP";
        broken = true;
      }) {};
 
@@ -46906,6 +47513,7 @@ self: {
        description = "Encoding and decoding for the Bottom spec";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bottom";
        broken = true;
      }) {};
 
@@ -47078,6 +47686,7 @@ self: {
        description = "audio-visual pseudo-physical simulation of colliding circles";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bowntz";
        broken = true;
      }) {};
 
@@ -47127,6 +47736,7 @@ self: {
        executableHaskellDepends = [ base optparse-generic ];
        description = "Box websockets";
        license = lib.licenses.bsd3;
+       mainProgram = "box-socket";
      }) {};
 
   "box-tuples" = callPackage
@@ -47203,6 +47813,7 @@ self: {
        description = "Types and functions to work with braids and Khovanov homology";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "KappaView";
        broken = true;
      }) {};
 
@@ -47218,6 +47829,7 @@ self: {
        description = "primitive imperative language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brain-bleep";
        broken = true;
      }) {};
 
@@ -47233,6 +47845,7 @@ self: {
        executableHaskellDepends = [ array base mtl unix ];
        description = "Brainfuck interpreter";
        license = "GPL";
+       mainProgram = "bf";
      }) {};
 
   "brainfuck-monad" = callPackage
@@ -47258,6 +47871,7 @@ self: {
        executableHaskellDepends = [ array base ];
        description = "A simple BF interpreter";
        license = lib.licenses.bsd3;
+       mainProgram = "bfh";
      }) {};
 
   "brainheck" = callPackage
@@ -47277,6 +47891,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "Brainh*ck interpreter in haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "brainheck";
      }) {};
 
   "break" = callPackage
@@ -47290,7 +47905,7 @@ self: {
        libraryHaskellDepends = [ base mtl transformers ];
        description = "Break from a loop";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "breakout" = callPackage
@@ -47305,6 +47920,7 @@ self: {
        description = "A simple Breakout game implementation";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "breakout";
      }) {};
 
   "breve" = callPackage
@@ -47328,6 +47944,7 @@ self: {
        ];
        description = "a url shortener";
        license = lib.licenses.gpl3Only;
+       mainProgram = "breve";
      }) {};
 
   "brians-brain" = callPackage
@@ -47342,6 +47959,7 @@ self: {
        description = "A Haskell implementation of the Brian's Brain cellular automaton";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brians-brain";
        broken = true;
      }) {};
 
@@ -47371,7 +47989,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "brick_0_69" = callPackage
+  "brick_0_70_1" = callPackage
     ({ mkDerivation, base, bytestring, config-ini, containers
      , contravariant, data-clist, deepseq, directory, dlist, exceptions
      , filepath, microlens, microlens-mtl, microlens-th, QuickCheck, stm
@@ -47380,8 +47998,8 @@ self: {
      }:
      mkDerivation {
        pname = "brick";
-       version = "0.69";
-       sha256 = "1q963gpcjcrnsyrypkb238ay8lbkq8745pxkanmhy4m40gvk5j94";
+       version = "0.70.1";
+       sha256 = "18i1i06ll6pklzaazcl2bzbi3w5zdn43l9wvkclhfcmddjy19lp4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -47596,6 +48214,7 @@ self: {
        description = "Simple part of speech tagger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brillig";
        broken = true;
      }) {};
 
@@ -47632,6 +48251,7 @@ self: {
        ];
        description = "Haskell source code formatter";
        license = lib.licenses.agpl3Only;
+       mainProgram = "brittany";
      }) {};
 
   "broadcast-chan" = callPackage
@@ -47745,6 +48365,7 @@ self: {
        description = "Finds broken links in text files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brok";
        broken = true;
      }) {};
 
@@ -47809,10 +48430,8 @@ self: {
      }:
      mkDerivation {
        pname = "brotli";
-       version = "0.0.0.0";
-       sha256 = "1l9qiw5cl0k1rcnqnj9pb7vgj1b06wckkk5i73nqr15ixgcjmr9j";
-       revision = "4";
-       editedCabalFile = "0ih5mmpmhk5qnqc25dn6363xmq20z5k2x5458jp2yxbw1g367nwi";
+       version = "0.0.0.1";
+       sha256 = "0fp8vhqzl6i1vvb4fw4zya6cgkzmj0yaaw94jdf2kggm3gn8zwfc";
        libraryHaskellDepends = [ base bytestring transformers ];
        libraryPkgconfigDepends = [ brotli ];
        testHaskellDepends = [
@@ -47853,8 +48472,8 @@ self: {
        pname = "brotli-streams";
        version = "0.0.0.0";
        sha256 = "14jc1nhm50razsl99d95amdf4njf75dnzx8vqkihgrgp7qisyz3z";
-       revision = "4";
-       editedCabalFile = "1mpp08l1vwvgl1gvki0wlndlf0kza2kwnx5qdcl7slanw7waa1fb";
+       revision = "5";
+       editedCabalFile = "0fp2ysmldmq8c1jlbprky1b7dxls3vgj4n1prnd84k2d01g7ff9m";
        libraryHaskellDepends = [ base brotli bytestring io-streams ];
        testHaskellDepends = [
          base bytestring HUnit io-streams QuickCheck test-framework
@@ -48080,9 +48699,7 @@ self: {
        libraryHaskellDepends = [ base bytestring time unix ];
        description = "Bindings to the btrfs API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -48124,6 +48741,7 @@ self: {
        description = "Automates most of your plain text accounting data entry in ledger format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buchhaltung";
      }) {};
 
   "buffer" = callPackage
@@ -48212,6 +48830,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Read from stdin and write to stdout in large blocks";
        license = lib.licenses.bsd3;
+       mainProgram = "buffer-pipe";
      }) {};
 
   "buffet" = callPackage
@@ -48242,6 +48861,7 @@ self: {
        description = "Assembles many Dockerfiles in one";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buffet";
        broken = true;
      }) {};
 
@@ -48342,8 +48962,8 @@ self: {
      }:
      mkDerivation {
        pname = "bugsnag-hs";
-       version = "0.2.0.8";
-       sha256 = "1qnbkp2c5fhv6b9mq3xr849if418qihy6xczzlsf7q4y0vx36kg9";
+       version = "0.2.0.9";
+       sha256 = "0af7xgjcgv5wly2hq0n82paa4qi35xv726y3f44zcvipjh8c4zvq";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base bytestring http-client text time unordered-containers
@@ -48421,8 +49041,8 @@ self: {
        pname = "bugzilla-redhat";
        version = "1.0.0";
        sha256 = "1g95j03y2sg1fwdf48a05nijqllkd0m7scn1wbfyzvb57q716hlx";
-       revision = "1";
-       editedCabalFile = "1rsn401pzj0vz3fqg0zsc79jmpanjp61caplnb5i0kl1c9glsxz4";
+       revision = "2";
+       editedCabalFile = "1x4vkr7wxwdvzdcam9zawmbc1ssl8ifpyaczimw2h63l47vv4y8b";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -48497,6 +49117,7 @@ self: {
        description = "Tools for working with buildbox benchmark result files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buildbox-results";
      }) {};
 
   "builder" = callPackage
@@ -48551,6 +49172,7 @@ self: {
        description = "A library and an executable that provide an easy API for a Haskell IDE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "buildwrapper";
      }) {};
 
   "bullet" = callPackage
@@ -48604,6 +49226,7 @@ self: {
        description = "Bulletproofs are short zero-knowledge proofs without a trusted setup";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bulletproofs-example";
      }) {};
 
   "bulmex" = callPackage
@@ -48649,6 +49272,7 @@ self: {
        description = "Automatically bump package versions, also transitively";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bumper";
        broken = true;
      }) {};
 
@@ -48666,6 +49290,7 @@ self: {
        description = "CLI tool to beautify JSON string";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bunz";
        broken = true;
      }) {};
 
@@ -48685,6 +49310,7 @@ self: {
        description = "List OP_RETURN cryptocurrency transaction outputs";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "burnt-explorer";
      }) {};
 
   "burrito" = callPackage
@@ -48693,8 +49319,8 @@ self: {
      }:
      mkDerivation {
        pname = "burrito";
-       version = "2.0.1.0";
-       sha256 = "1b8c4sdk60sj20rrrhra4hx0f1y1injih4xcg4q19fgaf04chr91";
+       version = "2.0.1.1";
+       sha256 = "01p0sqlhbmwjp4hwi002jaj1kvrkbnycqv0ab36a8n4w2cxs0cip";
        libraryHaskellDepends = [
          base bytestring containers parsec template-haskell text
          transformers
@@ -48821,9 +49447,8 @@ self: {
        testPkgconfigDepends = [ gio-unix ];
        description = "Draw sequence diagrams of D-Bus traffic";
        license = lib.licenses.lgpl21Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "bustle";
      }) {gio-unix = null; inherit (pkgs) libpcap; 
          system-glib = pkgs.glib;};
 
@@ -48893,6 +49518,7 @@ self: {
        description = "butterfly tilings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "butterflies-flat";
      }) {};
 
   "buttplug-hs-core" = callPackage
@@ -48923,6 +49549,9 @@ self: {
        ];
        description = "Client library for buttplug.io";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "buttplug-example";
+       broken = true;
      }) {};
 
   "bv" = callPackage
@@ -49225,6 +49854,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Patch byte-representable data in a bytestream";
        license = lib.licenses.mit;
+       mainProgram = "bytepatch";
      }) {};
 
   "bytes" = callPackage
@@ -49670,8 +50300,8 @@ self: {
      }:
      mkDerivation {
        pname = "bytestring-strict-builder";
-       version = "0.4.5.5";
-       sha256 = "1knin3mfj2qfh7xhvbrpakd037y7qqic24f1w93v8p6y5g7bc3zp";
+       version = "0.4.5.6";
+       sha256 = "0zqi65jpf6f3gyhcg11hfn7b457c3zsmgsyqx8gi9sqh5pzn34kw";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -50003,6 +50633,7 @@ self: {
        description = "Simpe mosquito MQTT binding able to work with the Amazons IoT";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "c-mosquitto";
        broken = true;
      }) {inherit (pkgs) mosquitto;};
 
@@ -50052,6 +50683,7 @@ self: {
        executableHaskellDepends = [ base c0parser ];
        description = "Simple C0 Syntax Check";
        license = "GPL";
+       mainProgram = "c0check";
      }) {};
 
   "c0parser" = callPackage
@@ -50112,6 +50744,7 @@ self: {
        description = "Translate C code into ATS";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "c2ats";
        broken = true;
      }) {};
 
@@ -50139,6 +50772,7 @@ self: {
        ];
        description = "C->Haskell FFI tool that gives some cross-language type safety";
        license = lib.licenses.gpl2Only;
+       mainProgram = "c2hs";
      }) {};
 
   "c2hs-extra" = callPackage
@@ -50176,6 +50810,7 @@ self: {
        testHaskellDepends = [ base here hspec logging monad-logger text ];
        description = "Convert C API header files to .hsc and .hsc.helper.c files";
        license = lib.licenses.bsd3;
+       mainProgram = "c2hsc";
      }) {};
 
   "ca" = callPackage
@@ -50242,6 +50877,7 @@ self: {
        description = "A maintenance command of Haskell cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cab";
        broken = true;
      }) {};
 
@@ -50288,6 +50924,7 @@ self: {
        description = "Check how up-to-date your .cabal dependencies are.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-audit";
        broken = true;
      }) {};
 
@@ -50327,6 +50964,7 @@ self: {
        description = "A command line program for managing the dependency versions in a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-bounds";
      }) {};
 
   "cabal-build-programs" = callPackage
@@ -50397,6 +51035,7 @@ self: {
        description = "CI Assistant for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-cache";
      }) {};
 
   "cabal-cargs" = callPackage
@@ -50420,6 +51059,7 @@ self: {
        description = "A command line program for extracting compiler arguments from a cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-cargs";
      }) {};
 
   "cabal-clean" = callPackage
@@ -50438,6 +51078,7 @@ self: {
        ];
        description = "Remove outdated cabal build artefacts from `dist-newstyle`";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-clean";
      }) {};
 
   "cabal-constraints" = callPackage
@@ -50452,6 +51093,7 @@ self: {
        description = "Repeatable builds for cabalized Haskell projects";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-constraints";
        broken = true;
      }) {};
 
@@ -50475,6 +51117,7 @@ self: {
        description = "query tools for the local cabal database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-db";
        broken = true;
      }) {};
 
@@ -50501,6 +51144,7 @@ self: {
        description = "Create a Debianization for a Cabal package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-debian";
        broken = true;
      }) {};
 
@@ -50518,6 +51162,7 @@ self: {
        description = "Compose a list of a project's transitive dependencies with their licenses";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-dependency-licenses";
        broken = true;
      }) {};
 
@@ -50570,6 +51215,7 @@ self: {
        description = "show dist dir of 'cabal copy/install'";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-dir";
        broken = true;
      }) {};
 
@@ -50606,6 +51252,7 @@ self: {
        description = "Cabal utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-edit";
        broken = true;
      }) {};
 
@@ -50630,6 +51277,7 @@ self: {
        ];
        description = "Cabal file access";
        license = lib.licenses.bsd3;
+       mainProgram = "cblfile";
      }) {};
 
   "cabal-file-th" = callPackage
@@ -50671,6 +51319,7 @@ self: {
        ];
        description = "Generate a FlatPak manifest from a Cabal package description";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-flatpak";
      }) {};
 
   "cabal-fmt" = callPackage
@@ -50698,7 +51347,8 @@ self: {
        doHaddock = false;
        description = "Format .cabal files";
        license = "GPL-3.0-or-later AND BSD-3-Clause";
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "cabal-fmt";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "cabal-ghc-dynflags" = callPackage
@@ -50729,6 +51379,7 @@ self: {
        description = "Set up ghci with options taken from a .cabal file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-ghci";
        broken = true;
      }) {};
 
@@ -50748,6 +51399,7 @@ self: {
        description = "Generate graphs of install-time Cabal dependencies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-graphdeps";
        broken = true;
      }) {};
 
@@ -50804,6 +51456,7 @@ self: {
        description = "Read information from cabal files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-info";
        broken = true;
      }) {};
 
@@ -50837,7 +51490,8 @@ self: {
        '';
        description = "The command-line interface for Cabal and Hackage";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal-install-bundle" = callPackage
@@ -50858,6 +51512,7 @@ self: {
        description = "The (bundled) command-line interface for Cabal and Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {inherit (pkgs) zlib;};
 
@@ -50879,6 +51534,7 @@ self: {
        description = "Temporary version of cabal-install for ghc-7.2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {};
 
@@ -50900,6 +51556,7 @@ self: {
        description = "Temporary version of cabal-install for ghc-7.4";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal";
        broken = true;
      }) {};
 
@@ -50973,6 +51630,7 @@ self: {
        ];
        description = "Cabal support for creating Mac OSX application bundles";
        license = lib.licenses.bsd3;
+       mainProgram = "macosx-app";
      }) {};
 
   "cabal-meta" = callPackage
@@ -50995,6 +51653,7 @@ self: {
        description = "build multiple packages at once";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-meta";
        broken = true;
      }) {};
 
@@ -51014,6 +51673,7 @@ self: {
        description = "A monitor for cabal builds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-mon";
        broken = true;
      }) {};
 
@@ -51033,6 +51693,7 @@ self: {
        description = "Avoid Cabal dependency hell by constraining to known good versions. (deprecated)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-nirvana";
        broken = true;
      }) {};
 
@@ -51045,7 +51706,7 @@ self: {
        libraryHaskellDepends = [ base Cabal lens process ];
        description = "Make Cabal aware of pkg-config package versions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "cabal-plan" = callPackage
@@ -51075,6 +51736,7 @@ self: {
        ];
        description = "Library and utility for processing cabal's plan.json file";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "cabal-plan";
      }) {};
 
   "cabal-progdeps" = callPackage
@@ -51089,6 +51751,7 @@ self: {
        description = "Show dependencies of program being built in current directory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-progdeps";
        broken = true;
      }) {};
 
@@ -51128,6 +51791,7 @@ self: {
        ];
        description = "RPM packaging tool for Haskell Cabal-based packages";
        license = lib.licenses.gpl3Only;
+       mainProgram = "cabal-rpm";
      }) {};
 
   "cabal-scripts" = callPackage
@@ -51155,6 +51819,7 @@ self: {
        description = "The user interface for building and installing Cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-setup";
        broken = true;
      }) {};
 
@@ -51173,6 +51838,7 @@ self: {
        ];
        description = "Sign and verify Cabal packages";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-sign";
      }) {};
 
   "cabal-sort" = callPackage
@@ -51233,6 +51899,7 @@ self: {
        description = "Automated test tool for cabal projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-test";
      }) {};
 
   "cabal-test-bin" = callPackage
@@ -51250,6 +51917,7 @@ self: {
        testHaskellDepends = [ base hspec process regex-posix ];
        description = "A program for finding temporary build file during cabal-test";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-test-bin";
      }) {};
 
   "cabal-test-compat" = callPackage
@@ -51306,6 +51974,7 @@ self: {
        executableHaskellDepends = [ base directory filepath mtl process ];
        description = "Uninstall cabal packages";
        license = lib.licenses.bsd3;
+       mainProgram = "cabal-uninstall";
      }) {};
 
   "cabal-upload" = callPackage
@@ -51320,6 +51989,7 @@ self: {
        description = "Command-line tool for uploading packages to Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal-upload";
        broken = true;
      }) {};
 
@@ -51341,6 +52011,7 @@ self: {
        description = "Create Arch Linux packages from Cabal packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2arch";
      }) {};
 
   "cabal2doap" = callPackage
@@ -51357,6 +52028,7 @@ self: {
        description = "Cabal to Description-of-a-Project (DOAP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2doap";
        broken = true;
      }) {};
 
@@ -51393,6 +52065,7 @@ self: {
        description = "A tool to generate .ghci file from .cabal";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2ghci";
        broken = true;
      }) {};
 
@@ -51421,6 +52094,8 @@ self: {
        description = "Turn a .cabal file into a .json file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2json";
+       broken = true;
      }) {};
 
   "cabal2nix" = callPackage
@@ -51459,7 +52134,7 @@ self: {
        '';
        description = "Convert Cabal files into Nix build instructions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal2spec" = callPackage
@@ -51481,7 +52156,8 @@ self: {
        testHaskellDepends = [ base Cabal filepath tasty tasty-golden ];
        description = "Convert Cabal files into rpm spec files";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal2spec";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabal2spec_2_6_3" = callPackage
@@ -51504,7 +52180,8 @@ self: {
        description = "Convert Cabal files into rpm spec files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "cabal2spec";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "cabalQuery" = callPackage
@@ -51524,6 +52201,7 @@ self: {
        description = "A simple tool to query cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalQuery";
        broken = true;
      }) {};
 
@@ -51540,6 +52218,7 @@ self: {
        testHaskellDepends = [ base directory doctest filepath process ];
        description = "alias for cabal install from given git repo";
        license = lib.licenses.mit;
+       mainProgram = "cabalg";
      }) {};
 
   "cabalgraph" = callPackage
@@ -51560,6 +52239,7 @@ self: {
        description = "Generate pretty graphs of module trees from cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalgraph";
        broken = true;
      }) {};
 
@@ -51580,6 +52260,7 @@ self: {
        description = "Provides access to the cabal file data for shell scripts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalish";
        broken = true;
      }) {};
 
@@ -51596,6 +52277,7 @@ self: {
        description = "Create mandriva rpm from cabal package";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalmdvspec";
      }) {};
 
   "cabalrpmdeps" = callPackage
@@ -51625,6 +52307,7 @@ self: {
        description = "Verify installed package version against user-specified constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabalvchk";
        broken = true;
      }) {};
 
@@ -51645,6 +52328,7 @@ self: {
        description = "Cabal binary sandboxes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabin";
        broken = true;
      }) {};
 
@@ -51728,6 +52412,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A simple library to cache a single IO action with timeout";
        license = lib.licenses.asl20;
+       mainProgram = "test-cachedIO";
      }) {};
 
   "cached-json-file" = callPackage
@@ -51838,7 +52523,8 @@ self: {
        ];
        description = "Command line client for Nix binary cache hosting https://cachix.org";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ domenkozar ];
+       mainProgram = "cachix";
+       maintainers = [ lib.maintainers.domenkozar ];
      }) {inherit (pkgs) nix;};
 
   "cachix-api" = callPackage
@@ -51870,7 +52556,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Servant HTTP API specification for https://cachix.org";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ domenkozar ];
+       maintainers = [ lib.maintainers.domenkozar ];
      }) {};
 
   "cacophony" = callPackage
@@ -51992,6 +52678,7 @@ self: {
        executableHaskellDepends = [ base cairo glib gtk ];
        description = "A template for building new GUI applications using GTK and Cairo";
        license = lib.licenses.bsd3;
+       mainProgram = "cairo-appbase";
      }) {};
 
   "cairo-canvas" = callPackage
@@ -52050,6 +52737,7 @@ self: {
        description = "A build-system library and driver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cake";
      }) {};
 
   "cake3" = callPackage
@@ -52098,6 +52786,7 @@ self: {
        description = "run turtle like LOGO with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cakyrespa";
      }) {};
 
   "cal-layout" = callPackage
@@ -52113,6 +52802,7 @@ self: {
        description = "Calendar Layout Algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bookings-test";
        broken = true;
      }) {};
 
@@ -52170,8 +52860,8 @@ self: {
      }:
      mkDerivation {
        pname = "calamity";
-       version = "0.5.0.0";
-       sha256 = "1sx4dxvk5xcl5x3rnknl5syg65mzrr8shg75yajixsbhimg226zy";
+       version = "0.6.0.0";
+       sha256 = "19m6nz9753hbm1ar6269qrlcxgf90j3x2lxqhq05qhssjg76hrxf";
        libraryHaskellDepends = [
          aeson aeson-optics async base bytestring calamity-commands colour
          concurrent-extra connection containers data-default-class
@@ -52216,6 +52906,7 @@ self: {
        description = "A small compiler for arithmetic expressions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "calc";
      }) {};
 
   "calculator" = callPackage
@@ -52238,6 +52929,7 @@ self: {
        description = "A calculator repl, with variables, functions & Mathematica like dynamic plots";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "calculator";
      }) {};
 
   "caldims" = callPackage
@@ -52259,6 +52951,7 @@ self: {
        description = "Calculation tool and library supporting units";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caldims";
      }) {};
 
   "caledon" = callPackage
@@ -52277,6 +52970,7 @@ self: {
        description = "a logic programming language based on the calculus of constructions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "caledon";
        broken = true;
      }) {};
 
@@ -52293,6 +52987,7 @@ self: {
        ];
        description = "List years with the same calendars";
        license = lib.licenses.bsd3;
+       mainProgram = "calendar-recycling";
      }) {};
 
   "calenderweek" = callPackage
@@ -52309,6 +53004,7 @@ self: {
        description = "Commandline tool to get week of the year";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kw";
        broken = true;
      }) {};
 
@@ -52345,8 +53041,8 @@ self: {
      }:
      mkDerivation {
        pname = "call-alloy";
-       version = "0.3";
-       sha256 = "0pf6zdx201pkdzj3iccwj9k3bi0qabpmsn0sfn27mcwdgksn2q7p";
+       version = "0.3.0.1";
+       sha256 = "1a8fgbaxmvjrp82qjyfgkhv9qi0n7l94zfx3c80c0bd5q758spmp";
        libraryHaskellDepends = [
          base bytestring containers directory extra file-embed filepath
          hashable mtl process split trifecta unix
@@ -52378,6 +53074,7 @@ self: {
        description = "Call Haskell functions from other languages via serialization and dynamic libraries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "call-haskell-from-anything.so";
        broken = true;
      }) {};
 
@@ -52427,6 +53124,7 @@ self: {
        testHaskellDepends = [ base containers hspec HUnit QuickCheck ];
        description = "HIE-based Haskell call graph and source code visualizer";
        license = lib.licenses.bsd3;
+       mainProgram = "calligraphy";
      }) {};
 
   "camfort" = callPackage
@@ -52464,11 +53162,9 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "CamFort - Cambridge Fortran infrastructure";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "camfort";
        broken = true;
      }) {inherit (pkgs) flint;};
 
@@ -52484,6 +53180,7 @@ self: {
        executableHaskellDepends = [ base bytestring Imlib terminfo ];
        description = "write image files onto 256(or 24bit) color terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "camh";
      }) {};
 
   "campfire" = callPackage
@@ -52549,7 +53246,8 @@ self: {
        ];
        description = "Candid integration";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ nomeata ];
+       mainProgram = "hcandid";
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "canon" = callPackage
@@ -52720,6 +53418,7 @@ self: {
        description = "Application for analysis of java source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cantor";
        broken = true;
      }) {};
 
@@ -52762,6 +53461,7 @@ self: {
        description = "CAO Compiler";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cao";
      }) {};
 
   "cap" = callPackage
@@ -52777,6 +53477,7 @@ self: {
        description = "Interprets and debug the cap language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cap";
      }) {};
 
   "capability" = callPackage
@@ -52867,6 +53568,7 @@ self: {
        description = "Cap'n Proto for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "capnpc-haskell";
      }) {};
 
   "capped-list" = callPackage
@@ -52896,6 +53598,7 @@ self: {
        description = "A simple wrapper over cabal-install to operate in project-private mode";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "capri";
        broken = true;
      }) {};
 
@@ -53007,6 +53710,7 @@ self: {
        description = "Simple web-server for organizing car-pooling for an event";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "car-pool";
      }) {};
 
   "caramia" = callPackage
@@ -53067,6 +53771,7 @@ self: {
        description = "Drop emails from threads being watched into special CC folder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "carboncopy";
      }) {};
 
   "cardano-coin-selection" = callPackage
@@ -53121,6 +53826,7 @@ self: {
        description = "Library utilities for constructing and signing Cardano transactions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cardano-tx";
        broken = true;
      }) {cardano-binary = null; cardano-crypto = null; 
          cardano-crypto-wrapper = null; cardano-ledger = null; 
@@ -53184,6 +53890,7 @@ self: {
        description = "Carte: A commandline pastebin server";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "carte";
        broken = true;
      }) {};
 
@@ -53214,6 +53921,7 @@ self: {
        description = "Specify Cabal files in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cartel-init";
      }) {};
 
   "cas-hashable" = callPackage
@@ -53477,6 +54185,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Convert between different cases";
        license = lib.licenses.bsd3;
+       mainProgram = "case-converter";
      }) {};
 
   "case-insensitive" = callPackage
@@ -53515,6 +54224,7 @@ self: {
        ];
        description = "A simplified, faster way to do case-insensitive matching";
        license = lib.licenses.bsd3;
+       mainProgram = "readme-example";
      }) {};
 
   "cased" = callPackage
@@ -53526,7 +54236,7 @@ self: {
        libraryHaskellDepends = [ base text ];
        description = "Track string casing in its type";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
      }) {};
 
   "caseof" = callPackage
@@ -53808,8 +54518,8 @@ self: {
        pname = "cassava";
        version = "0.5.2.0";
        sha256 = "01h1zrdqb313cjd4rqm1107azzx4czqi018c2djf66a5i7ajl3dk";
-       revision = "7";
-       editedCabalFile = "1zb16h20w4p3qqvrg4m9rhnyrbpx1ga4r6azrzy1h8vsw09vcbsz";
+       revision = "8";
+       editedCabalFile = "17vm6016k4phznax0v4jbg14wckwwxlx9q0kkrvz1m2zcbjk8r9h";
        configureFlags = [ "-f-bytestring--lt-0_10_4" ];
        libraryHaskellDepends = [
          array attoparsec base bytestring containers deepseq hashable Only
@@ -54054,6 +54764,7 @@ self: {
        description = "A tool to manage shared cabal-install sandboxes";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "castle";
        broken = true;
      }) {};
 
@@ -54070,6 +54781,7 @@ self: {
        description = "Equation Manipulator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "casui";
      }) {};
 
   "catalyst" = callPackage
@@ -54219,6 +54931,7 @@ self: {
        description = "Simple tool to display text files with line numbers and paging";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "catnplus";
        broken = true;
      }) {};
 
@@ -54268,6 +54981,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cayene-lpp" = callPackage
@@ -54303,7 +55017,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Cayenne Low Power Payload";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "cayley-client" = callPackage
@@ -54327,15 +55041,15 @@ self: {
        broken = true;
      }) {};
 
-  "cayley-client_0_4_18" = callPackage
+  "cayley-client_0_4_19" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, binary, bytestring
      , exceptions, hspec, http-client, http-conduit, lens, lens-aeson
      , mtl, text, transformers, unordered-containers, vector
      }:
      mkDerivation {
        pname = "cayley-client";
-       version = "0.4.18";
-       sha256 = "0zdv66p9klc6px8ch6239k2p4pi3px28k50918kq80wl94msigns";
+       version = "0.4.19";
+       sha256 = "0qfi56wkf9ycd7dhah01pc1vlaims4p8mscdcq7xc3pc3m4vvjs2";
        libraryHaskellDepends = [
          aeson attoparsec base binary bytestring exceptions http-client
          http-conduit lens lens-aeson mtl text transformers
@@ -54381,6 +55095,7 @@ self: {
        description = "Tool to maintain a database of CABAL packages and their dependencies";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cblrepo";
        broken = true;
      }) {};
 
@@ -54403,6 +55118,7 @@ self: {
        ];
        description = "A tool for manipulating CBOR";
        license = lib.licenses.bsd3;
+       mainProgram = "cbor-tool";
      }) {};
 
   "cborg" = callPackage
@@ -54559,6 +55275,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion ];
        description = "Extract dependencies from C code";
        license = lib.licenses.bsd3;
+       mainProgram = "cdeps";
      }) {};
 
   "cedict" = callPackage
@@ -54577,6 +55294,7 @@ self: {
        description = "Convenient Chinese phrase & character lookup";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zi4pu3";
        broken = true;
      }) {};
 
@@ -54685,6 +55403,7 @@ self: {
        description = "A tool to build a novel";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "celtchar";
      }) {};
 
   "cerberus" = callPackage
@@ -54713,6 +55432,7 @@ self: {
        description = "Protect and control API access with cerberus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cerberus";
      }) {};
 
   "cereal" = callPackage
@@ -55010,6 +55730,7 @@ self: {
        description = "cfipu processor for toy brainfuck-like language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cfipu";
      }) {};
 
   "cflp" = callPackage
@@ -55069,6 +55790,7 @@ self: {
        description = "cfopu processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cfopu";
      }) {};
 
   "cg" = callPackage
@@ -55090,6 +55812,7 @@ self: {
        description = "Parser for categorial grammars";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "CG";
        broken = true;
      }) {};
 
@@ -55181,6 +55904,7 @@ self: {
        ];
        description = "Command line tool";
        license = lib.licenses.gpl2Only;
+       mainProgram = "cgrep";
      }) {};
 
   "cgroup-rts-threads" = callPackage
@@ -55238,6 +55962,7 @@ self: {
        description = "Mining Client for Kadena Chainweb";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chainweb-mining-client";
      }) {};
 
   "chakra" = callPackage
@@ -55278,6 +56003,7 @@ self: {
        ];
        description = "A REST Web Api server template for building (micro)services";
        license = lib.licenses.mit;
+       mainProgram = "chakra-exe";
      }) {};
 
   "chalk" = callPackage
@@ -55308,6 +56034,7 @@ self: {
        description = "Combinators for building and processing 2D images";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chalkboard-server-1_9_0_16";
        broken = true;
      }) {};
 
@@ -55372,6 +56099,7 @@ self: {
        executableHaskellDepends = [ directory ];
        description = "Parse VCS changelogs into ChangeLogs";
        license = lib.licenses.bsd3;
+       mainProgram = "change-monger";
      }) {};
 
   "changelogged" = callPackage
@@ -55401,6 +56129,7 @@ self: {
        ];
        description = "Changelog manager for Git projects";
        license = lib.licenses.bsd3;
+       mainProgram = "changelogged";
      }) {};
 
   "chapelure" = callPackage
@@ -55492,6 +56221,7 @@ self: {
        description = "Rapid prototyping websites with Snap and Heist";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "charade";
      }) {};
 
   "charset" = callPackage
@@ -55518,10 +56248,7 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Character set detection using Mozilla's Universal Character Set Detector";
        license = "LGPL";
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "charsetdetect-ae" = callPackage
@@ -55553,6 +56280,7 @@ self: {
        description = "Command-line utility to draw charts from input data easily";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chart";
      }) {};
 
   "chart-histogram" = callPackage
@@ -55612,6 +56340,7 @@ self: {
        description = "See readme.md";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chart-svg-various";
      }) {};
 
   "chart-unit" = callPackage
@@ -55665,6 +56394,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "charter-exe";
        broken = true;
      }) {};
 
@@ -55741,7 +56471,7 @@ self: {
        ];
        description = "A library of simple NLP algorithms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "chatty" = callPackage
@@ -55814,6 +56544,7 @@ self: {
        description = "The ChatWork API in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample-exe";
        broken = true;
      }) {};
 
@@ -55836,6 +56567,7 @@ self: {
        executableHaskellDepends = [ base blaze-html bytestring text ];
        description = "Experimental markdown processor";
        license = lib.licenses.bsd3;
+       mainProgram = "cheapskate";
      }) {};
 
   "cheapskate-highlight" = callPackage
@@ -55893,6 +56625,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cheapskate-terminal";
      }) {};
 
   "check-cfg-ambiguity" = callPackage
@@ -55995,6 +56728,7 @@ self: {
        description = "Generate checklists relevant to a given patch";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "checkmate";
        broken = true;
      }) {};
 
@@ -56150,27 +56884,35 @@ self: {
      }) {};
 
   "chez-grater" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, bytestring
+    ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring
      , case-insensitive, containers, file-embed, file-path-th, hashable
      , hspec, http-client, http-client-tls, http-types, network-uri
-     , QuickCheck, scalpel, text, unordered-containers
+     , optparse-applicative, QuickCheck, scalpel, text
+     , unordered-containers
      }:
      mkDerivation {
        pname = "chez-grater";
-       version = "0.0.2";
-       sha256 = "1f7v362b6wbjz7j77r7mhi0942qzds7h7aibss8c3w1l6d3d62r2";
+       version = "0.1.1";
+       sha256 = "0yxc054mvq0016a8jr6mv9j4l971llmm2cp1gya6by20icav1z54";
+       isLibrary = true;
+       isExecutable = true;
        libraryHaskellDepends = [
          aeson attoparsec base case-insensitive containers hashable
-         http-client http-client-tls http-types network-uri scalpel text
-         unordered-containers
+         http-client http-client-tls http-types network-uri QuickCheck
+         scalpel text unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson aeson-pretty base bytestring network-uri optparse-applicative
+         text
        ];
        testHaskellDepends = [
          attoparsec base bytestring case-insensitive containers file-embed
-         file-path-th hspec http-client network-uri QuickCheck text
+         file-path-th hspec http-client network-uri text
        ];
        description = "Parse and scrape recipe blogs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chez-grater";
        broken = true;
      }) {};
 
@@ -56268,6 +57010,7 @@ self: {
        description = "Helper for the Major System";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chitauri";
      }) {};
 
   "choice" = callPackage
@@ -56309,6 +57052,7 @@ self: {
        description = "Command-line program to choose random element from a stream";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "choose";
      }) {};
 
   "chorale" = callPackage
@@ -56478,6 +57222,7 @@ self: {
        description = "AST + surface language around chr";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chr-term";
      }) {};
 
   "chr-parse" = callPackage
@@ -56542,6 +57287,7 @@ self: {
        description = "neovim package manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chromatin";
      }) {};
 
   "chronograph" = callPackage
@@ -56621,6 +57367,7 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Benchmarking tool with focus on comparing results";
        license = lib.licenses.bsd3;
+       mainProgram = "chronos";
      }) {};
 
   "chs-cabal" = callPackage
@@ -56730,6 +57477,7 @@ self: {
        description = "Human-readable storage of text/binary objects";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chunky-test";
        broken = true;
      }) {};
 
@@ -57069,6 +57817,7 @@ self: {
        description = "Implementation of CipherSaber2 RC4 cryptography";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cs2";
      }) {};
 
   "circ" = callPackage
@@ -57140,6 +57889,7 @@ self: {
        ];
        description = "An implementation of the \"circuit breaker\" pattern to disable repeated calls to a failing system";
        license = lib.licenses.bsd3;
+       mainProgram = "circuit-breaker-exe";
      }) {};
 
   "circular" = callPackage
@@ -57157,7 +57907,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Circular fixed-sized mutable vectors";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "circus" = callPackage
@@ -57212,6 +57962,7 @@ self: {
        ];
        description = "DEPRECATED in favor of webex-teams-api";
        license = lib.licenses.mit;
+       mainProgram = "cisco-spark-api-exe";
      }) {};
 
   "citation-resolve" = callPackage
@@ -57264,7 +58015,7 @@ self: {
        license = lib.licenses.bsd2;
      }) {};
 
-  "citeproc_0_7" = callPackage
+  "citeproc_0_8" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, bytestring
      , case-insensitive, containers, data-default, Diff, directory
      , file-embed, filepath, mtl, pandoc-types, pretty, safe, scientific
@@ -57273,8 +58024,8 @@ self: {
      }:
      mkDerivation {
        pname = "citeproc";
-       version = "0.7";
-       sha256 = "1xsfsz6hdp0ickps1qafkfn7pwjxc22a5ib3bl99jdjbx7fql6h9";
+       version = "0.8";
+       sha256 = "13f89nnx1g91cpnw1cp28nv33lrvp8swdkxlcbgvsfm38gs684qc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -57330,6 +58081,7 @@ self: {
        description = "A Pandoc filter for processing bibliographic references with citeproc-hs";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "citeproc-hs";
      }) {};
 
   "cityhash" = callPackage
@@ -57370,6 +58122,7 @@ self: {
        description = "A new Haskeleton package";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cj-token";
        broken = true;
      }) {};
 
@@ -57452,6 +58205,7 @@ self: {
        description = "Simple CLI RPN calculator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clac";
      }) {};
 
   "clafer" = callPackage
@@ -57487,6 +58241,7 @@ self: {
        description = "Compiles Clafer models to other formats: Alloy, JavaScript, JSON, HTML, Dot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clafer";
      }) {};
 
   "claferIG" = callPackage
@@ -57520,6 +58275,7 @@ self: {
        description = "claferIG is an interactive tool that generates instances of Clafer models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "claferIG";
      }) {};
 
   "claferwiki" = callPackage
@@ -57594,6 +58350,7 @@ self: {
        description = "Command-line spaced-repetition software";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clanki";
        broken = true;
      }) {};
 
@@ -57712,6 +58469,7 @@ self: {
        description = "Clash: a functional hardware description language - As a library";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "v16-upgrade-primitives";
      }) {};
 
   "clash-lib-hedgehog" = callPackage
@@ -57913,6 +58671,7 @@ self: {
        description = "Automated Clash to Verilator bridge";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clashilator";
      }) {};
 
   "classify" = callPackage
@@ -57956,6 +58715,7 @@ self: {
        description = "Classify sounds produced by Xenopus laevis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "classify-frog";
      }) {};
 
   "classy-influxdb-simple" = callPackage
@@ -57995,6 +58755,7 @@ self: {
        description = "Typeclass based support for Miso, the Tasty Web Framework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "classy-miso-demo";
      }) {};
 
   "classy-parallel" = callPackage
@@ -58176,6 +58937,7 @@ self: {
        description = "a command-line interface for adminstrating some aspects of clckwrks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clckwrks-cli";
      }) {};
 
   "clckwrks-dot-com" = callPackage
@@ -58198,6 +58960,7 @@ self: {
        description = "clckwrks.com";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clckwrks-dot-com-server";
      }) {};
 
   "clckwrks-plugin-bugs" = callPackage
@@ -58426,6 +59189,7 @@ self: {
        ];
        description = "Keep your home dir clean by finding old conf files";
        license = lib.licenses.bsd3;
+       mainProgram = "clean-home";
      }) {};
 
   "clean-unions" = callPackage
@@ -58498,6 +59262,7 @@ self: {
        description = "Colorized LESS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cless";
      }) {};
 
   "cleveland" = callPackage
@@ -58549,6 +59314,7 @@ self: {
        description = "A CSS preprocessor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clevercss";
        broken = true;
      }) {};
 
@@ -58579,6 +59345,7 @@ self: {
        executableHaskellDepends = [ base basement foundation ];
        description = "CLI";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "cli-arguments" = callPackage
@@ -58704,6 +59471,7 @@ self: {
        description = "Toy game (tetris on billiard board). Hipmunk in action.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "click-clack";
      }) {};
 
   "clickhouse-haskell" = callPackage
@@ -58766,6 +59534,7 @@ self: {
        ];
        description = "Securely store session data in a client-side cookie";
        license = lib.licenses.mit;
+       mainProgram = "clientsession-generate";
      }) {};
 
   "clif" = callPackage
@@ -58818,6 +59587,7 @@ self: {
        description = "A Clifford algebra library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pendulum";
      }) {};
 
   "clifm" = callPackage
@@ -58838,6 +59608,7 @@ self: {
        description = "Command Line Interface File Manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clifm";
        broken = true;
      }) {};
 
@@ -58861,6 +59632,7 @@ self: {
        ];
        description = "Building blocks for a GHCi-like REPL with colon-commands";
        license = lib.licenses.bsd3;
+       mainProgram = "climb-demo";
      }) {};
 
   "clingo" = callPackage
@@ -58934,6 +59706,7 @@ self: {
        description = "A parser/generator for Kindle-format clipping files (`My Clippings.txt`),";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clippings2tsv";
      }) {};
 
   "clisparkline" = callPackage
@@ -58982,6 +59755,7 @@ self: {
        description = "Post tweets from stdin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tweet";
        broken = true;
      }) {};
 
@@ -59000,6 +59774,7 @@ self: {
        ];
        description = "Clone and benchmark Haskell cabal projects";
        license = lib.licenses.bsd3;
+       mainProgram = "cloben";
      }) {};
 
   "clock" = callPackage
@@ -59082,6 +59857,7 @@ self: {
        description = "Clone all github repositories from a given user";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clone-all";
        broken = true;
      }) {};
 
@@ -59249,6 +60025,7 @@ self: {
        description = "A cloud in the file system";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cloudyfs";
      }) {};
 
   "clr-bindings" = callPackage
@@ -59354,6 +60131,7 @@ self: {
        ];
        description = "A GHC linker wrapper tool to workaround a GHC >8.2 bug";
        license = lib.licenses.bsd3;
+       mainProgram = "clr-win-linker";
      }) {};
 
   "cltw" = callPackage
@@ -59367,6 +60145,7 @@ self: {
        executableHaskellDepends = [ base curl mtl random tagsoup ];
        description = "Command line Twitter utility";
        license = lib.licenses.bsd3;
+       mainProgram = "cltw";
      }) {};
 
   "clua" = callPackage
@@ -59385,6 +60164,7 @@ self: {
        description = "C to Lua data wrapper generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "clua";
      }) {};
 
   "clumpiness" = callPackage
@@ -59637,6 +60417,7 @@ self: {
        description = "Data model, parser, serialiser and transformations for Content MathML 3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mathtest";
      }) {};
 
   "cmd-item" = callPackage
@@ -59692,6 +60473,7 @@ self: {
        ];
        description = "Helper to enter cmdargs command lines using a web browser";
        license = lib.licenses.bsd3;
+       mainProgram = "cmdargs-browser";
      }) {};
 
   "cmdlib" = callPackage
@@ -59832,6 +60614,7 @@ self: {
        description = "Write consistent git commit messages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmt";
        broken = true;
      }) {};
 
@@ -59847,6 +60630,7 @@ self: {
        executableHaskellDepends = [ array base containers ];
        description = "Unification in a Commutative Monoid";
        license = "GPL";
+       mainProgram = "cmu";
      }) {};
 
   "cmv" = callPackage
@@ -59898,6 +60682,7 @@ self: {
        description = "Compiler/Translator for CnC Specification Files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cnc";
      }) {};
 
   "cndict" = callPackage
@@ -60013,6 +60798,7 @@ self: {
        executableHaskellDepends = [ base co-log-core polysemy ];
        description = "Composable Contravariant Comonadic Logging Library";
        license = lib.licenses.mpl20;
+       mainProgram = "play-colog-poly";
      }) {};
 
   "co-log-polysemy-formatting" = callPackage
@@ -60037,6 +60823,7 @@ self: {
        description = "A Polysemy logging effect for high quality (unstructured) logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -60260,6 +61047,7 @@ self: {
        description = "Cross-platform structure serialisation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codec-libevent-generate";
        broken = true;
      }) {};
 
@@ -60350,6 +61138,7 @@ self: {
        description = "Command line interface to interact with Codeforces";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cf";
        broken = true;
      }) {};
 
@@ -60370,6 +61159,7 @@ self: {
        description = "Tool that automatically runs arbitrary commands when files change on disk";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codemonitor";
      }) {};
 
   "codepad" = callPackage
@@ -60442,6 +61232,7 @@ self: {
        description = "A ctags file generator for cabal project dependencies";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "codex";
        broken = true;
      }) {};
 
@@ -60560,6 +61351,7 @@ self: {
        description = "Generate clang-format config based on some existing code base";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coformat-exe";
      }) {};
 
   "cofunctor" = callPackage
@@ -60598,6 +61390,7 @@ self: {
        description = "Utilities for Cognimeta products (such as perdure). API may change often.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cognimeta-utils";
      }) {};
 
   "coin" = callPackage
@@ -60622,6 +61415,7 @@ self: {
        description = "Simple account manager";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coin";
        broken = true;
      }) {};
 
@@ -60662,6 +61456,7 @@ self: {
        description = "Connector library for the coinbase exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandbox";
      }) {};
 
   "coinbase-pro" = callPackage
@@ -60774,6 +61569,7 @@ self: {
        description = "Colada implements incremental word class class induction using online LDA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "colada";
      }) {};
 
   "colchis" = callPackage
@@ -60825,6 +61621,7 @@ self: {
        description = "Generate animated 3d objects in COLLADA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Examples";
        broken = true;
      }) {};
 
@@ -60860,6 +61657,7 @@ self: {
        description = "Collapse the duplication output into clones and return their frequencies";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collapse-duplication";
      }) {};
 
   "collapse-util" = callPackage
@@ -60874,6 +61672,7 @@ self: {
        description = "utility for collapsing adjacent writes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collapse";
        broken = true;
      }) {};
 
@@ -61035,6 +61834,7 @@ self: {
        description = "Count colors in images";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "color-counter";
      }) {};
 
   "colorful-monoids" = callPackage
@@ -61061,6 +61861,7 @@ self: {
        executableHaskellDepends = [ ansi-terminal base haskell-lexer ];
        description = "Highligt Haskell source";
        license = lib.licenses.bsd3;
+       mainProgram = "hscolor";
      }) {};
 
   "colorless" = callPackage
@@ -61289,6 +62090,7 @@ self: {
        description = "Commonmark processing in pure haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "comark-hs";
      }) {};
 
   "comark-html" = callPackage
@@ -61432,6 +62234,7 @@ self: {
        description = "SKI Combinator interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lazyi";
        broken = true;
      }) {};
 
@@ -61651,6 +62454,7 @@ self: {
        description = "pattern matching against string based commands";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example1";
        broken = true;
      }) {};
 
@@ -61673,6 +62477,7 @@ self: {
        testHaskellDepends = [ base commandert text unordered-containers ];
        description = "A command line argument/option parser library";
        license = lib.licenses.mit;
+       mainProgram = "task-manager";
      }) {};
 
   "commandert" = callPackage
@@ -61751,6 +62556,7 @@ self: {
        ];
        description = "Command-line commonmark converter and highlighter";
        license = lib.licenses.bsd3;
+       mainProgram = "commonmark";
      }) {};
 
   "commonmark-extensions" = callPackage
@@ -61760,27 +62566,6 @@ self: {
      }:
      mkDerivation {
        pname = "commonmark-extensions";
-       version = "0.2.3.1";
-       sha256 = "1hnhaxw7mpsbcgqz1vlxy0xnnkgh590hi6gv1wk5fw1j12viqdzi";
-       libraryHaskellDepends = [
-         base commonmark containers emojis filepath network-uri parsec text
-         transformers
-       ];
-       testHaskellDepends = [
-         base commonmark parsec tasty tasty-hunit text
-       ];
-       benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
-       description = "Pure Haskell commonmark parser";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "commonmark-extensions_0_2_3_2" = callPackage
-    ({ mkDerivation, base, commonmark, containers, emojis, filepath
-     , network-uri, parsec, tasty, tasty-bench, tasty-hunit, text
-     , transformers
-     }:
-     mkDerivation {
-       pname = "commonmark-extensions";
        version = "0.2.3.2";
        sha256 = "1k5rlh2grg6g1waszhp565m360n1iynjvbkjz8xmap8y234g1bjj";
        libraryHaskellDepends = [
@@ -61793,7 +62578,6 @@ self: {
        benchmarkHaskellDepends = [ base commonmark tasty-bench text ];
        description = "Pure Haskell commonmark parser";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "commonmark-pandoc" = callPackage
@@ -61886,8 +62670,10 @@ self: {
     ({ mkDerivation, base, containers }:
      mkDerivation {
        pname = "commutative-semigroups";
-       version = "0.0.2.0";
-       sha256 = "05nkma7rjxj2l31pzj3sd1lgyswf2jn8a25qnp6k7hcq67x3rhqm";
+       version = "0.1.0.0";
+       sha256 = "06063ayahakj0wdwwzqwbb61cxjrrkpayzmvbvf7pcdsgyn427b6";
+       revision = "1";
+       editedCabalFile = "107qs0srrd88n5hz1v2fwapsr36zr5lnz04lxsicj1mq7ss54zm3";
        libraryHaskellDepends = [ base containers ];
        description = "Commutative semigroups";
        license = lib.licenses.bsd3;
@@ -62184,7 +62970,6 @@ self: {
        ];
        description = "A typeclass for structures which can be catMaybed, filtered, and partitioned";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "compactmap" = callPackage
@@ -62398,8 +63183,8 @@ self: {
        pname = "compensated";
        version = "0.8.3";
        sha256 = "0xigi4pcw581d8kjbhdjkksyz9bgcgvq0j17br9z1x6a3hw1m39a";
-       revision = "1";
-       editedCabalFile = "0c1yzvchjbrv5q6b24y74026082f408d2kqv1789a27z78awfhwm";
+       revision = "2";
+       editedCabalFile = "0nr81fm5b8pavgyf0n34199jvr2zp18y0cdlzas240xwpgxn6k1p";
        libraryHaskellDepends = [
          base bifunctors binary bytes cereal comonad deepseq distributive
          hashable lens log-domain safecopy semigroupoids semigroups vector
@@ -62762,8 +63547,8 @@ self: {
      }:
      mkDerivation {
        pname = "composite-ekg";
-       version = "0.7.5.0";
-       sha256 = "00a689laq9a2wyq33vvpw7l69wsw9g6d5jzmrsizwqld6a4wdicv";
+       version = "0.8.0.0";
+       sha256 = "19cgfha3syvpphqlysn4gj7x9390glmxmkmn2nlp9z6arrmiiiyx";
        libraryHaskellDepends = [
          base composite-base ekg-core lens text vinyl
        ];
@@ -63243,6 +64028,7 @@ self: {
        description = "Part-of-speech tagger for Croatian";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "concraft-hr";
      }) {};
 
   "concraft-pl" = callPackage
@@ -63272,6 +64058,7 @@ self: {
        description = "Morphological tagger for Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "concraft-pl";
      }) {};
 
   "concrete-haskell" = callPackage
@@ -63353,6 +64140,7 @@ self: {
        description = "A parser driven by a standard RELAX NG schema with concrete syntax extensions";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse-concrete";
        broken = true;
      }) {};
 
@@ -63430,6 +64218,7 @@ self: {
        ];
        description = "Benchmarks to compare concurrency APIs";
        license = lib.licenses.mit;
+       mainProgram = "makecharts";
      }) {};
 
   "concurrent-barrier" = callPackage
@@ -63497,6 +64286,7 @@ self: {
        testHaskellDepends = [ async base dns hspec ];
        description = "Concurrent DNS cache";
        license = lib.licenses.bsd3;
+       mainProgram = "main";
      }) {};
 
   "concurrent-extra" = callPackage
@@ -63723,6 +64513,7 @@ self: {
        description = "Information retrieval library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "condor";
      }) {};
 
   "condorcet" = callPackage
@@ -64072,6 +64863,7 @@ self: {
        description = "A file-finding conduit that allows user control over traversals";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-hs";
        broken = true;
      }) {};
 
@@ -64207,6 +64999,7 @@ self: {
        description = "Conduits for tokenizing streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conduit-tokenize-attoparsec-example";
        broken = true;
      }) {};
 
@@ -64349,6 +65142,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "confcrypt";
      }) {};
 
   "conferer" = callPackage
@@ -64359,8 +65153,8 @@ self: {
        pname = "conferer";
        version = "1.1.0.0";
        sha256 = "1hkdrqxrac1mbzvd29f6ds4cbihdv0j0daai7yc282myv0varh09";
-       revision = "1";
-       editedCabalFile = "0xr6910zn9j07gwc9f9dmlgxiagirmpzjzb9vlaqc0qvpawgq201";
+       revision = "2";
+       editedCabalFile = "0j7q975kg4dchl7pn8cl26sf8945bmhw5mvy73s18ylxqx4qqkwb";
        libraryHaskellDepends = [
          base bytestring containers directory filepath text
        ];
@@ -64380,6 +65174,8 @@ self: {
        pname = "conferer-aeson";
        version = "1.1.0.2";
        sha256 = "07rdal3smq1s14zmsn7g26vc6sqj21rsa2a1vcbrwrfgh9x36jkn";
+       revision = "1";
+       editedCabalFile = "19v6xla4vvhmhqh3z82inp1b6jzvprbvcmd9nbg1l65nsvqgq25a";
        libraryHaskellDepends = [
          aeson base bytestring conferer directory text unordered-containers
          vector
@@ -64633,6 +65429,7 @@ self: {
        ];
        description = "A simple config file swapping tool";
        license = lib.licenses.mit;
+       mainProgram = "confetti";
      }) {};
 
   "conffmt" = callPackage
@@ -64651,6 +65448,7 @@ self: {
        description = "A .conf file formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conffmt";
      }) {};
 
   "confide" = callPackage
@@ -64741,7 +65539,7 @@ self: {
        testHaskellDepends = [ base config-value text ];
        description = "Schema definitions for the config-value package";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "config-select" = callPackage
@@ -64758,6 +65556,7 @@ self: {
        description = "A small program for swapping out dot files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "config-select";
      }) {};
 
   "config-value" = callPackage
@@ -64772,7 +65571,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Simple, layout-based value language similar to YAML or JSON";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "config-value-getopt" = callPackage
@@ -64863,6 +65662,7 @@ self: {
        ];
        description = "Tools for specifying and parsing configurations";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "configurator" = callPackage
@@ -64967,6 +65767,7 @@ self: {
        description = "A command line tool for resolving conflicts of file synchronizers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "confsolve";
        broken = true;
      }) {};
 
@@ -65029,6 +65830,7 @@ self: {
        description = "A BitTorrent client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "conjure";
        broken = true;
      }) {};
 
@@ -65064,6 +65866,7 @@ self: {
        description = "A logger for a concurrent program";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -65137,6 +65940,7 @@ self: {
        description = "Orders, Galois connections, and lattices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
        broken = true;
      }) {};
 
@@ -65491,6 +66295,7 @@ self: {
        executableHaskellDepends = [ aeson base constraints ];
        description = "Utility package for constraints";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "constrictor" = callPackage
@@ -65695,6 +66500,7 @@ self: {
        description = "Extensive benchmark suite for containers package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "benchmark";
        broken = true;
      }) {};
 
@@ -65806,6 +66612,7 @@ self: {
        ];
        description = "Generate art from context-free grammars";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "context-free-grammar" = callPackage
@@ -66492,6 +67299,7 @@ self: {
        description = "Convert the annotation of a gene to another in a delimited file using a variety of different databases";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "convert-annotation";
      }) {};
 
   "convertible" = callPackage
@@ -66832,6 +67640,7 @@ self: {
        description = "Yet another shell monad";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -66865,25 +67674,46 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "compile your own mini functional language with Core";
        license = lib.licenses.mit;
+       mainProgram = "core-compiler-exe";
      }) {};
 
   "core-data" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, core-text
-     , hashable, prettyprinter, scientific, text, unordered-containers
-     , vector
+     , hashable, hourglass, prettyprinter, scientific, text, time
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "core-data";
-       version = "0.3.2.2";
-       sha256 = "000ffh2lrv5yl9gybx3i8gp66f1vd1w6mhih8bipxf7fzgsn6pik";
+       version = "0.3.3.1";
+       sha256 = "149hf4mi6rklzcnqai44hkilp8kwis5irkn25bxjpkrwyl41m25q";
        libraryHaskellDepends = [
-         aeson base bytestring containers core-text hashable prettyprinter
-         scientific text unordered-containers vector
+         aeson base bytestring containers core-text hashable hourglass
+         prettyprinter scientific text time unordered-containers vector
        ];
        description = "Convenience wrappers around common data structures and encodings";
        license = lib.licenses.mit;
      }) {};
 
+  "core-data_0_3_4_0" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, core-text
+     , hashable, hourglass, prettyprinter, scientific, text, time
+     , unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "core-data";
+       version = "0.3.4.0";
+       sha256 = "07f90lhjv9vpnymidq6kyrnz6s2w3slvy2nwzjxvbia2p22nqmak";
+       revision = "1";
+       editedCabalFile = "1zc0y1f2mzycdnyd5f8dmkhnwc15bczhf2i82y45bjy4pg3890vg";
+       libraryHaskellDepends = [
+         aeson base bytestring containers core-text hashable hourglass
+         prettyprinter scientific text time unordered-containers uuid vector
+       ];
+       description = "Convenience wrappers around common data structures and encodings";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "core-haskell" = callPackage
     ({ mkDerivation, base, haskeline, haskell-src-exts, hint }:
      mkDerivation {
@@ -66898,6 +67728,7 @@ self: {
        description = "A subset of Haskell using in UCC for teaching purpose";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "core-haskell";
        broken = true;
      }) {};
 
@@ -66922,23 +67753,49 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "core-program_0_5_1_0" = callPackage
+    ({ mkDerivation, async, base, bytestring, core-data, core-text
+     , directory, exceptions, filepath, fsnotify, hashable, hourglass
+     , mtl, prettyprinter, safe-exceptions, stm, template-haskell
+     , terminal-size, text, text-short, transformers, typed-process
+     , unix
+     }:
+     mkDerivation {
+       pname = "core-program";
+       version = "0.5.1.0";
+       sha256 = "0h9iw9kdj947zlzjd9gi4xlnldrqpgw80vla31c0zhl4dmib6a22";
+       revision = "1";
+       editedCabalFile = "1920jl5yxwgj64wacgx929b054icq7bz73p06rqfm38wkj87bqa3";
+       libraryHaskellDepends = [
+         async base bytestring core-data core-text directory exceptions
+         filepath fsnotify hashable hourglass mtl prettyprinter
+         safe-exceptions stm template-haskell terminal-size text text-short
+         transformers typed-process unix
+       ];
+       description = "Opinionated Haskell Interoperability";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "core-telemetry" = callPackage
-    ({ mkDerivation, async, base, bytestring, chronologique, core-data
-     , core-program, core-text, exceptions, http-streams, io-streams
-     , mtl, network-info, random, safe-exceptions, scientific, stm
-     , template-haskell, text, unix
+    ({ mkDerivation, async, base, bytestring, core-data, core-program
+     , core-text, exceptions, http-streams, io-streams, mtl
+     , network-info, random, safe-exceptions, scientific, stm
+     , template-haskell, text, unix, zlib
      }:
      mkDerivation {
        pname = "core-telemetry";
-       version = "0.2.3.0";
-       sha256 = "0ln0xhpdq2jvx5xqva0crmqn7zmnav864f3bb9hb3pcjfiilgavg";
+       version = "0.2.3.5";
+       sha256 = "11r1cnxfal8k8ya2qrkr1ywrpcx3f23rh3s1c1agv6q47qxi1kd9";
        libraryHaskellDepends = [
-         async base bytestring chronologique core-data core-program
-         core-text exceptions http-streams io-streams mtl network-info
-         random safe-exceptions scientific stm template-haskell text unix
+         async base bytestring core-data core-program core-text exceptions
+         http-streams io-streams mtl network-info random safe-exceptions
+         scientific stm template-haskell text unix zlib
        ];
        description = "Advanced telemetry";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "core-text" = callPackage
@@ -66948,14 +67805,32 @@ self: {
      }:
      mkDerivation {
        pname = "core-text";
-       version = "0.3.7.1";
-       sha256 = "11l89p9fn05l8h7dx6mpw4mhwhcxhdl2879lj628bxjal3f2fys3";
+       version = "0.3.7.2";
+       sha256 = "0ybac107psr558fqyfmc1x8ssfd8mk1cf3v220svi6k6i8qaxi7x";
+       libraryHaskellDepends = [
+         ansi-terminal base bytestring colour deepseq fingertree hashable
+         prettyprinter template-haskell text text-short
+       ];
+       description = "A rope type based on a finger tree over UTF-8 fragments";
+       license = lib.licenses.mit;
+     }) {};
+
+  "core-text_0_3_8_0" = callPackage
+    ({ mkDerivation, ansi-terminal, base, bytestring, colour, deepseq
+     , fingertree, hashable, prettyprinter, template-haskell, text
+     , text-short
+     }:
+     mkDerivation {
+       pname = "core-text";
+       version = "0.3.8.0";
+       sha256 = "1vl463wdgnfb795nbir355w1cgy5ndqnwgfiiyr1j73xmngmvw04";
        libraryHaskellDepends = [
          ansi-terminal base bytestring colour deepseq fingertree hashable
          prettyprinter template-haskell text text-short
        ];
        description = "A rope type based on a finger tree over UTF-8 fragments";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "core-warn" = callPackage
@@ -66980,8 +67855,8 @@ self: {
      }:
      mkDerivation {
        pname = "core-webserver-servant";
-       version = "0.1.1.1";
-       sha256 = "1mbrpm90i0y63h7mkk3chn4mwwyb1bnbywr6crki0j230cy3b294";
+       version = "0.1.1.2";
+       sha256 = "084m2lisd9gwhasnxd2yc98f75zpa2zy3rq6sgj56f6aq7vnl0vv";
        libraryHaskellDepends = [
          base core-program core-telemetry core-webserver-warp mtl
          safe-exceptions servant servant-server vault wai
@@ -67035,6 +67910,7 @@ self: {
        description = "A bliki written using yesod. Uses pandoc to process files stored in git.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "corebot-bliki";
        broken = true;
      }) {};
 
@@ -67053,6 +67929,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Write your main like it can call itself back";
        license = lib.licenses.bsd3;
+       mainProgram = "corecursive-main-exe";
      }) {};
 
   "corenlp-parser" = callPackage
@@ -67150,6 +68027,7 @@ self: {
        description = "A CouchDB view server for Haskell";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "couch-hs";
        broken = true;
      }) {};
 
@@ -67416,7 +68294,7 @@ self: {
        testHaskellDepends = [ base hmatrix tasty tasty-hunit ];
        description = "Well-conditioned estimation of large-dimensional covariance matrices";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "covariance_0_2_0_0" = callPackage
@@ -67432,7 +68310,7 @@ self: {
        description = "Well-conditioned estimation of large-dimensional covariance matrices";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "coverage" = callPackage
@@ -67530,6 +68408,7 @@ self: {
        description = "Build tool for C";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cpkg";
      }) {};
 
   "cplex-hs" = callPackage
@@ -67595,6 +68474,7 @@ self: {
        executableHaskellDepends = [ base directory polyparse time ];
        description = "A liberalised re-implementation of cpp, the C pre-processor";
        license = "LGPL";
+       mainProgram = "cpphs";
      }) {};
 
   "cprng-aes" = callPackage
@@ -67650,8 +68530,8 @@ self: {
     ({ mkDerivation, base, containers, directory, parallel }:
      mkDerivation {
        pname = "cpsa";
-       version = "3.6.10";
-       sha256 = "1fxysn5ag27dzkbw95hdzzgz4nmm38spl96d2xv14lfnrafv6q06";
+       version = "3.6.11";
+       sha256 = "1kqsr0vb9sxg2c5y14k66d381gx6779bns6ybjymgabw98asmm3k";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -67687,6 +68567,7 @@ self: {
        libraryHaskellDepends = [ base data-accessor enumset ];
        description = "Binding for the cpuid machine instruction on x86 compatible processors";
        license = "GPL";
+       platforms = lib.platforms.x86;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -67714,6 +68595,7 @@ self: {
        description = "Modify the cpu frequency on OpenBSD systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cpuperf";
        broken = true;
      }) {};
 
@@ -67847,6 +68729,7 @@ self: {
        description = "Example for cqrs package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cqrs-example";
      }) {};
 
   "cqrs-memory" = callPackage
@@ -67975,6 +68858,7 @@ self: {
        description = "Code review tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cr";
        broken = true;
      }) {};
 
@@ -68005,6 +68889,7 @@ self: {
        description = "Crack various integer, floating-point data formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crackNum";
      }) {};
 
   "crackNum" = callPackage
@@ -68022,6 +68907,7 @@ self: {
        ];
        description = "Crack various integer and floating-point data formats";
        license = lib.licenses.bsd3;
+       mainProgram = "crackNum";
      }) {};
 
   "craft" = callPackage
@@ -68154,6 +69040,7 @@ self: {
        description = "HTTP Racing Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "craze-example";
      }) {};
 
   "crc" = callPackage
@@ -68212,6 +69099,7 @@ self: {
        ];
        description = "Haskell bindings for crc32c";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "crdt" = callPackage
@@ -68298,6 +69186,7 @@ self: {
        description = "Library to access secure credential storage providers";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "credential-store-exe";
        broken = true;
      }) {};
 
@@ -68345,6 +69234,7 @@ self: {
        description = "Secure Credentials Administration";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "credentials";
      }) {};
 
   "crf-chain1" = callPackage
@@ -68466,8 +69356,8 @@ self: {
        pname = "criterion";
        version = "1.5.13.0";
        sha256 = "19vrlldgw2kz5426j0iwsvvhxkbnrnan859vr6ryqh13nrg59a72";
-       revision = "1";
-       editedCabalFile = "1xpbvax71yrnilq4iixjfi3by2n8wz5r5nb2r4v9wn85xz0r8dwh";
+       revision = "2";
+       editedCabalFile = "09s70kqkp1j78idaqrpnz8v870vy6xyclnpz9g4x70cr4r67lqkd";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -68489,6 +69379,7 @@ self: {
        ];
        description = "Robust, reliable performance measurement and analysis";
        license = lib.licenses.bsd3;
+       mainProgram = "criterion-report";
      }) {};
 
   "criterion-cmp" = callPackage
@@ -68508,6 +69399,7 @@ self: {
        description = "A simple tool for comparing in Criterion benchmark results";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-cmp";
        broken = true;
      }) {};
 
@@ -68531,6 +69423,7 @@ self: {
        description = "A simple tool for visualising differences in Criterion benchmark results";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-compare";
        broken = true;
      }) {};
 
@@ -68595,6 +69488,7 @@ self: {
        description = "Convert criterion output to HTML reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "criterion-to-html";
        broken = true;
      }) {};
 
@@ -68676,6 +69570,7 @@ self: {
        description = "An offline renderer supporting ray tracing and photon mapping";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crocodile";
        broken = true;
      }) {};
 
@@ -68787,6 +69682,7 @@ self: {
        description = "A runghc replacement with transparent caching";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "crunghc";
        broken = true;
      }) {};
 
@@ -68958,6 +69854,7 @@ self: {
        testHaskellDepends = [ base HUnit QuickCheck ];
        description = "An Enigma machine simulator with display";
        license = lib.licenses.bsd3;
+       mainProgram = "enigma";
      }) {};
 
   "crypto-keys-ssh" = callPackage
@@ -68994,6 +69891,7 @@ self: {
        description = "Multihash library on top of cryptonite crypto library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mh";
        broken = true;
      }) {};
 
@@ -69719,6 +70617,7 @@ self: {
        description = "Analytical CSG (Constructive Solid Geometry) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "csg-raycaster";
        broken = true;
      }) {};
 
@@ -69888,16 +70787,16 @@ self: {
      }) {};
 
   "css-easings" = callPackage
-    ({ mkDerivation, aeson, base, blaze-markup, data-default, deepseq
-     , QuickCheck, scientific, shakespeare, text
+    ({ mkDerivation, aeson, base, blaze-markup, data-default-class
+     , deepseq, QuickCheck, scientific, shakespeare, text
      }:
      mkDerivation {
        pname = "css-easings";
-       version = "0.2.2.0";
-       sha256 = "0ks42vnvj5qffs5zwnplsrqjd9c90xxlcfgcqdhl0iw5fxxnfipj";
+       version = "0.2.3.0";
+       sha256 = "1mammajx15ingmzk974b35lflq9bi2ri2rgpwd76zhzlzy91vca6";
        libraryHaskellDepends = [
-         aeson base blaze-markup data-default deepseq QuickCheck scientific
-         shakespeare text
+         aeson base blaze-markup data-default-class deepseq QuickCheck
+         scientific shakespeare text
        ];
        description = "Defining and manipulating css easing strings";
        license = lib.licenses.bsd3;
@@ -70090,6 +70989,7 @@ self: {
        ];
        description = "A small program that will read csv files and create qif files";
        license = lib.licenses.bsd3;
+       mainProgram = "csv-to-qif";
      }) {};
 
   "ctemplate" = callPackage
@@ -70193,6 +71093,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Implementation of Univalence in Cubical Sets";
        license = lib.licenses.mit;
+       mainProgram = "cubical";
      }) {};
 
   "cubicbezier" = callPackage
@@ -70256,6 +71157,7 @@ self: {
        description = "3D Yampa/GLUT Puzzle Game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cuboid";
        broken = true;
      }) {};
 
@@ -70280,6 +71182,7 @@ self: {
        description = "Haskell Implementation of Cuckoo Filters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "cuckoo-filter" = callPackage
@@ -70307,6 +71210,7 @@ self: {
        description = "Pure and impure Cuckoo Filter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "benchmarks";
        broken = true;
      }) {};
 
@@ -70329,6 +71233,7 @@ self: {
        description = "FFI binding to the CUDA interface for programming NVIDIA GPUs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nvidia-device-query";
      }) {};
 
   "cudd" = callPackage
@@ -70457,6 +71362,7 @@ self: {
        description = "A framework for declaratively writing curl based API tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "curl-runnings";
        broken = true;
      }) {};
 
@@ -70614,6 +71520,7 @@ self: {
        description = "Compile the functional logic language Curry to several intermediate formats";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "curry-frontend";
        broken = true;
      }) {};
 
@@ -70635,6 +71542,7 @@ self: {
        description = "A package for simple, fast radiocarbon calibration";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "currycarbon";
        broken = true;
      }) {};
 
@@ -70719,6 +71627,7 @@ self: {
        description = "Terminal tool for viewing tabular data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cursedcsv";
      }) {};
 
   "cursor" = callPackage
@@ -70931,10 +71840,9 @@ self: {
        testToolDepends = [ c2hs ];
        description = "Cuts out uninteresting parts of videos by detecting silences";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cut-the-crap";
        broken = true;
      }) {pocketsphinx = null; sphinxbase = null;};
 
@@ -70953,6 +71861,7 @@ self: {
        ];
        description = "Cut files according to a position list";
        license = lib.licenses.bsd3;
+       mainProgram = "cutter";
      }) {};
 
   "cv-combinators" = callPackage
@@ -70973,6 +71882,7 @@ self: {
        description = "Functional Combinators for Computer Vision";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-cv-combinators";
      }) {};
 
   "cve" = callPackage
@@ -71013,6 +71923,7 @@ self: {
        ];
        description = "multi-dimensional arrays";
        license = lib.licenses.bsd3;
+       mainProgram = "cybus-exe";
      }) {};
 
   "cyclotomic" = callPackage
@@ -71131,7 +72042,7 @@ self: {
        executableHaskellDepends = [ base c-storable-deriving vect Win32 ];
        description = "A raw binding for the directX 11";
        license = lib.licenses.mit;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {D3DCompiler = null; d3d11 = null; d3dx11 = null; 
          d3dxof = null; dxgi = null; dxguid = null;};
 
@@ -71247,6 +72158,7 @@ self: {
        description = "Basic Slack bot framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "danibot";
        broken = true;
      }) {};
 
@@ -71279,6 +72191,7 @@ self: {
        description = "Dao is meta programming language with its own built-in interpreted language, designed with artificial intelligence applications in mind";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dao";
        broken = true;
      }) {};
 
@@ -71299,6 +72212,7 @@ self: {
        description = "Prints a series of dates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dapi";
      }) {};
 
   "darcs" = callPackage
@@ -71348,6 +72262,7 @@ self: {
        '';
        description = "a distributed, interactive, smart revision control system";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "darcs";
      }) {};
 
   "darcs-benchmark" = callPackage
@@ -71371,6 +72286,7 @@ self: {
        description = "Comparative benchmark suite for darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-benchmark";
      }) {};
 
   "darcs-beta" = callPackage
@@ -71403,6 +72319,7 @@ self: {
        description = "a distributed, interactive, smart revision control system";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs";
      }) {inherit (pkgs) curl;};
 
   "darcs-buildpackage" = callPackage
@@ -71445,6 +72362,7 @@ self: {
        description = "David's Advanced Version Control System";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs";
        broken = true;
      }) {inherit (pkgs) curl; inherit (pkgs) ncurses; 
          inherit (pkgs) zlib;};
@@ -71467,6 +72385,7 @@ self: {
        description = "Import/export git fast-import streams to/from darcs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-fastconvert";
      }) {};
 
   "darcs-graph" = callPackage
@@ -71486,6 +72405,7 @@ self: {
        description = "Generate graphs of darcs repository activity";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-graph";
        broken = true;
      }) {};
 
@@ -71505,6 +72425,7 @@ self: {
        description = "Darcs repository monitor (sends email)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs-monitor";
        broken = true;
      }) {};
 
@@ -71537,6 +72458,7 @@ self: {
        description = "Outputs dependencies of darcs patches in dot format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "darcs2dot";
        broken = true;
      }) {};
 
@@ -71617,6 +72539,7 @@ self: {
        description = "Utility and parser for DarkPlaces demo files";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demoinfo";
      }) {};
 
   "darkplaces-rcon" = callPackage
@@ -71665,6 +72588,7 @@ self: {
        description = "Darplaces rcon utility";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "drcon";
      }) {};
 
   "darkplaces-text" = callPackage
@@ -71705,6 +72629,7 @@ self: {
        description = "Convert package Haddock to Dash docsets (IDE docs)";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dash-haskell";
      }) {};
 
   "data-accessor" = callPackage
@@ -72384,6 +73309,7 @@ self: {
        description = "Embed files and other binary blobs inside executables without Template Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "embedtool";
        broken = true;
      }) {};
 
@@ -72470,6 +73396,7 @@ self: {
        testHaskellDepends = [ base containers data-default hspec ];
        description = "Generate data-files Cabal file field from existing files";
        license = lib.licenses.bsd3;
+       mainProgram = "data-files-gen";
      }) {};
 
   "data-filter" = callPackage
@@ -72733,6 +73660,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Json Token datatype";
        license = lib.licenses.bsd3;
+       mainProgram = "data-json-token-exe";
      }) {};
 
   "data-kiln" = callPackage
@@ -72828,6 +73756,7 @@ self: {
        libraryHaskellDepends = [ base mtl template-haskell ];
        description = "Simple lenses, minimum dependencies";
        license = lib.licenses.mit;
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "data-lens-template" = callPackage
@@ -72912,6 +73841,7 @@ self: {
        ];
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
+       mainProgram = "msgpack-parser";
      }) {};
 
   "data-msgpack-types" = callPackage
@@ -73058,6 +73988,7 @@ self: {
        description = "Read PDF form fields";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfreader";
        broken = true;
      }) {};
 
@@ -73339,7 +74270,7 @@ self: {
        ];
        description = "ARM SVD and CubeMX XML parser and pretty printer for STM32 family";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "data-store" = callPackage
@@ -73409,6 +74340,7 @@ self: {
        description = "Program that infers the fastest data structure available for your program";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dsinf";
      }) {};
 
   "data-sword" = callPackage
@@ -73706,6 +74638,7 @@ self: {
        description = "Datadog tracing client and mock agent";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datadog-agent";
      }) {};
 
   "dataenc" = callPackage
@@ -73752,6 +74685,7 @@ self: {
        description = "Fixing data-flow problems";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firstfollow-example";
      }) {};
 
   "dataflow" = callPackage
@@ -73776,6 +74710,7 @@ self: {
        description = "Generate Graphviz documents from a Haskell representation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dataflow";
      }) {};
 
   "dataflower" = callPackage
@@ -73821,6 +74756,7 @@ self: {
        description = "An implementation of datalog in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datalog-repl";
        broken = true;
      }) {};
 
@@ -73840,6 +74776,7 @@ self: {
        description = "Tool to help pack files into the minimum number of CDs/DVDs/etc";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "datapacker";
        broken = true;
      }) {};
 
@@ -74010,6 +74947,7 @@ self: {
        description = "Generates DDL suggestions based on a CSV file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dawdle";
        broken = true;
      }) {};
 
@@ -74098,6 +75036,7 @@ self: {
        description = "Decompiler Bytecode Java";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dbjava";
      }) {};
 
   "dbm" = callPackage
@@ -74117,6 +75056,7 @@ self: {
        description = "A *simple* database migration tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dbm";
        broken = true;
      }) {};
 
@@ -74147,6 +75087,7 @@ self: {
        description = "An implementation of relational database \"migrations\"";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo";
        broken = true;
      }) {};
 
@@ -74170,6 +75111,7 @@ self: {
        description = "The dbmigrations tool built for MySQL databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-mysql";
        broken = true;
      }) {};
 
@@ -74190,6 +75132,7 @@ self: {
        description = "The dbmigrations tool built for PostgreSQL databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-postgresql";
        broken = true;
      }) {};
 
@@ -74206,6 +75149,7 @@ self: {
        description = "The dbmigrations tool built for SQLite databases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moo-sqlite";
        broken = true;
      }) {};
 
@@ -74313,6 +75257,7 @@ self: {
        ];
        description = "Expose a dbus server to control hslogger";
        license = lib.licenses.bsd3;
+       mainProgram = "dbus-hslogger-client";
      }) {};
 
   "dbus-qq" = callPackage
@@ -74366,6 +75311,7 @@ self: {
        ];
        description = "Generate bindings for DBus calls by using DBus introspection and dbus-th";
        license = lib.licenses.bsd3;
+       mainProgram = "dbus-introspect-hs";
      }) {};
 
   "dclabel" = callPackage
@@ -74423,6 +75369,7 @@ self: {
        description = "DCPU-16 Emulator & Assembler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dcpu16-exe";
        broken = true;
      }) {};
 
@@ -74709,6 +75656,7 @@ self: {
        description = "Disciplined Disciple Compiler test driver and buildbot";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ddc-war";
      }) {};
 
   "ddci-core" = callPackage
@@ -74728,6 +75676,7 @@ self: {
        description = "Disciple Core language interactive interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ddci-core";
      }) {};
 
   "dde" = callPackage
@@ -74780,6 +75729,7 @@ self: {
        description = "detect dead code in haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dead-code-detection";
        broken = true;
      }) {};
 
@@ -74882,6 +75832,7 @@ self: {
        executableHaskellDepends = [ base filepath transformers ];
        description = "Debian package build sequence tools";
        license = lib.licenses.bsd3;
+       mainProgram = "odebuild";
      }) {};
 
   "debug" = callPackage
@@ -74911,6 +75862,7 @@ self: {
        description = "Simple trace-based debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-pp";
      }) {};
 
   "debug-diff" = callPackage
@@ -74962,6 +75914,7 @@ self: {
        description = "secure remote debugging";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-me";
        broken = true;
      }) {};
 
@@ -74980,6 +75933,7 @@ self: {
        description = "A preprocessor for the debug package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "debug-pp";
        broken = true;
      }) {debug-hoed = null;};
 
@@ -75019,6 +75973,7 @@ self: {
        description = "More useful trace functions for investigating bugs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -75179,6 +76134,7 @@ self: {
        ];
        description = "Decode a UTF-8 byte stream on standard input";
        license = lib.licenses.mit;
+       mainProgram = "decode-utf8";
      }) {};
 
   "decoder-conduit" = callPackage
@@ -75215,6 +76171,7 @@ self: {
        description = "A type-checker for the λΠ-modulo calculus";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dedukti";
      }) {};
 
   "deep-map" = callPackage
@@ -75292,6 +76249,7 @@ self: {
        ];
        description = "Call DeepL to translate you files";
        license = lib.licenses.bsd3;
+       mainProgram = "deepl";
      }) {};
 
   "deeplearning-hs" = callPackage
@@ -75320,6 +76278,7 @@ self: {
        description = "Deep Learning in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deeplearning_demonstration";
      }) {};
 
   "deepseq_1_4_7_0" = callPackage
@@ -75464,6 +76423,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "deferred-folds_0_9_18_2" = callPackage
+    ({ mkDerivation, base, bytestring, containers, foldl, hashable
+     , primitive, QuickCheck, quickcheck-instances, rerebase, tasty
+     , tasty-hunit, tasty-quickcheck, text, transformers
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "deferred-folds";
+       version = "0.9.18.2";
+       sha256 = "0amlxdgz1yfql1r7w6z9gy6gncihp5nm1fl2bxrk7027hc0wdp96";
+       libraryHaskellDepends = [
+         base bytestring containers foldl hashable primitive text
+         transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         tasty-quickcheck
+       ];
+       description = "Abstractions over deferred folds";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "definitive-base" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, deepseq
      , ghc-prim, GLURaw, OpenGL, OpenGLRaw, primitive, vector
@@ -75647,6 +76629,7 @@ self: {
        description = "Tests for deka, decimal floating point arithmetic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deka-dectest";
      }) {};
 
   "delaunay" = callPackage
@@ -75770,6 +76753,7 @@ self: {
        description = "Online entropy-based model of lexical category acquisition";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "delta-h";
      }) {};
 
   "delude" = callPackage
@@ -75812,6 +76796,7 @@ self: {
        description = "Functions supporting bulk file and directory name normalization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "denominate";
        broken = true;
      }) {};
 
@@ -76188,6 +77173,7 @@ self: {
        description = "A simple configuration management tool for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "depends";
      }) {};
 
   "dephd" = callPackage
@@ -76350,6 +77336,7 @@ self: {
        description = "A program and library to derive instances for data types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "derive";
        broken = true;
      }) {};
 
@@ -76428,6 +77415,7 @@ self: {
        description = "derive Semigroup/Monoid/IsList";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-derive-monoid";
        broken = true;
      }) {};
 
@@ -76515,6 +77503,8 @@ self: {
        pname = "deriving-aeson";
        version = "0.2.8";
        sha256 = "0f59ar4cax7g0h6wrk8ckni7i4gw5wls5ybzbrji2a0qpd7q5lrd";
+       revision = "1";
+       editedCabalFile = "0pwx7lmdhpipg9ksqkz6xpjzh1aw2hip8y3jsk20ndl4wdzvxak5";
        libraryHaskellDepends = [ aeson base ];
        testHaskellDepends = [ aeson base bytestring ];
        description = "Type driven generic aeson instance customisation";
@@ -76619,6 +77609,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Parse and render JSON simply";
        license = lib.licenses.mit;
+       mainProgram = "derulo";
      }) {};
 
   "describe" = callPackage
@@ -76688,6 +77679,7 @@ self: {
        description = "Library, interpreter, and CLI for Descript programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "descript-cli";
      }) {};
 
   "descriptive" = callPackage
@@ -76727,6 +77719,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "a simple build tool for OCaml projects";
        license = lib.licenses.bsd3;
+       mainProgram = "desert";
      }) {};
 
   "despair" = callPackage
@@ -76815,6 +77808,7 @@ self: {
        description = "Markov chain text generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "detrospector";
        broken = true;
      }) {};
 
@@ -76830,6 +77824,7 @@ self: {
        description = "Get rid of unicode (utf-8) symbols in Haskell sources";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deunicode";
        broken = true;
      }) {};
 
@@ -76850,6 +77845,7 @@ self: {
        description = "A small tool to make it easier to update program managed by Angel";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "devil";
        broken = true;
      }) {};
 
@@ -76962,6 +77958,7 @@ self: {
        description = "A generic data integrity layer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dfinity-radix-tree-example";
      }) {inherit (pkgs) leveldb;};
 
   "dfrac" = callPackage
@@ -76993,6 +77990,7 @@ self: {
        description = "Build Debian From Scratch CD/DVD images";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dfsbuild";
        broken = true;
      }) {};
 
@@ -77073,7 +78071,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall_1_38_1" = callPackage
@@ -77131,7 +78130,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall" = callPackage
@@ -77188,7 +78188,8 @@ self: {
        doCheck = false;
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall_1_41_1" = callPackage
@@ -77212,8 +78213,8 @@ self: {
        pname = "dhall";
        version = "1.41.1";
        sha256 = "09flx2mfl8mzszn0hx80fai3ryiwgjkbxyklfkpmm5hw1smkdslv";
-       revision = "1";
-       editedCabalFile = "19lgfkyg1p9crrf3gi508zya477vma2ks7ib7hw0r84sl4jjiaji";
+       revision = "3";
+       editedCabalFile = "0x4dkfg3257c4vq05ca7jcyk7p446djzzwwc5j509wj23mrqf30h";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -77271,7 +78272,8 @@ self: {
        description = "A configuration language guaranteed to terminate";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-bash" = callPackage
@@ -77295,7 +78297,8 @@ self: {
        ];
        description = "Compile Dhall to Bash";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-bash";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-bash_1_0_40" = callPackage
@@ -77318,7 +78321,8 @@ self: {
        description = "Compile Dhall to Bash";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-bash";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-check" = callPackage
@@ -77337,6 +78341,7 @@ self: {
        description = "Check all dhall files in a project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhall-check";
        broken = true;
      }) {};
 
@@ -77351,6 +78356,8 @@ self: {
        pname = "dhall-csv";
        version = "1.0.2";
        sha256 = "08m9gjjldbzbgqr7vb33xjnzn7vmhf8gp9zh73vvzbchflwgh48p";
+       revision = "1";
+       editedCabalFile = "08zavv7bpb4033imzqmbxpxh51a3srcy58h85k4nmii73xv1iwzg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -77400,7 +78407,8 @@ self: {
        ];
        description = "Generate HTML docs from a dhall package";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-docs";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-fly" = callPackage
@@ -77434,6 +78442,7 @@ self: {
        description = "Translate concourse config from Dhall to YAML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhall-fly";
        broken = true;
      }) {};
 
@@ -77466,7 +78475,7 @@ self: {
        ];
        description = "Convert between Dhall and JSON or YAML";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-json_1_7_10" = callPackage
@@ -77480,6 +78489,8 @@ self: {
        pname = "dhall-json";
        version = "1.7.10";
        sha256 = "11gpsgd3aafqh9v10gib7yivy3dp7dhd1a3dslf2ivc7na3d8p71";
+       revision = "1";
+       editedCabalFile = "1dhs90y4jn2ipc1x0srd3a5qrgh0pj0laqd7mmqgwr3l9f0p19g6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -77497,7 +78508,7 @@ self: {
        description = "Convert between Dhall and JSON or YAML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-lex" = callPackage
@@ -77531,8 +78542,8 @@ self: {
        pname = "dhall-lsp-server";
        version = "1.1.1";
        sha256 = "0z4gc27fpz1pcjbajwpxgn0zhxlp9xp47lyg55p03ghfpqa2mcl6";
-       revision = "2";
-       editedCabalFile = "1618pkfdv887sj9i572db8sgz0jl7lpkmil4fkdc8irh2y45wl6r";
+       revision = "3";
+       editedCabalFile = "0lb51q09fdsnwlfsgna8ssv3434w550kla193kslbrmx5vsi04kp";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -77548,7 +78559,8 @@ self: {
        ];
        description = "Language Server Protocol (LSP) server for Dhall";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-lsp-server";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nix" = callPackage
@@ -77572,7 +78584,8 @@ self: {
        ];
        description = "Dhall to Nix compiler";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nix";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nix_1_1_24" = callPackage
@@ -77595,7 +78608,8 @@ self: {
        description = "Dhall to Nix compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nix";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-nixpkgs" = callPackage
@@ -77608,6 +78622,8 @@ self: {
        pname = "dhall-nixpkgs";
        version = "1.0.8";
        sha256 = "1jr9njnly63d5bzd9np7hijmczkwamb4j2k14h647h6i3hhkxh8n";
+       revision = "1";
+       editedCabalFile = "0navmlh0yh3abk114x7grv7rcbxxvk1yvh3lvnwc23qq6gm34r79";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -77618,7 +78634,8 @@ self: {
        ];
        description = "Convert Dhall projects to Nix packages";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-nixpkgs";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-openapi" = callPackage
@@ -77630,6 +78647,8 @@ self: {
        pname = "dhall-openapi";
        version = "1.0.4";
        sha256 = "1hvjilm1hjq4963l7xnr1r35x023pgddv0l3bvfgryd58zv728ah";
+       revision = "2";
+       editedCabalFile = "1vb7hka8iwprl555zl20z6wgl1zkah6bj02b9r0x6b99mds463x0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -77643,7 +78662,8 @@ self: {
        ];
        description = "Convert an OpenAPI specification to a Dhall package";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "openapi-to-dhall";
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhall-recursive-adt" = callPackage
@@ -77682,7 +78702,8 @@ self: {
        description = "Template text using Dhall";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "dhall-to-text";
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -77704,6 +78725,7 @@ self: {
        ];
        description = "Render dhall text with shell commands as function arguments";
        license = lib.licenses.mit;
+       mainProgram = "dhall-text-shell";
      }) {};
 
   "dhall-to-cabal" = callPackage
@@ -77770,6 +78792,8 @@ self: {
        pname = "dhall-yaml";
        version = "1.2.10";
        sha256 = "1a3g84799lbq7v9bzdq9bcwzyzci07rd1x42325ck4x51hrqs8nn";
+       revision = "1";
+       editedCabalFile = "1jfzpwbcg17mqk9c2f1lhqjwadxm1k04rd91j4h4gd5wnsvb85i4";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -77786,7 +78810,7 @@ self: {
        ];
        description = "Convert between Dhall and YAML";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dhcp-lease-parser" = callPackage
@@ -77840,6 +78864,7 @@ self: {
        description = "Dhall/YAML configurable concurrent integration test executor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dhrun";
        broken = true;
      }) {};
 
@@ -78004,7 +79029,7 @@ self: {
        doHaddock = false;
        description = "Embedded domain-specific language for declarative vector graphics";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "diagrams-boolean" = callPackage
@@ -78045,6 +79070,7 @@ self: {
        ];
        description = "Braille diagrams with plain text";
        license = lib.licenses.bsd3;
+       mainProgram = "brldia";
      }) {};
 
   "diagrams-builder" = callPackage
@@ -78231,6 +79257,7 @@ self: {
        description = "Preprocessor for embedding diagrams in Haddock documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diagrams-haddock";
      }) {};
 
   "diagrams-hsqml" = callPackage
@@ -78350,6 +79377,7 @@ self: {
        description = "A Pandoc filter to express diagrams inline using the Haskell EDSL _Diagrams_";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diagrams-pandoc";
      }) {};
 
   "diagrams-pdf" = callPackage
@@ -78609,6 +79637,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "I/O in Haskell Report 1.2";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "dib" = callPackage
@@ -78633,6 +79662,7 @@ self: {
        description = "A simple, forward build system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dib";
        broken = true;
      }) {};
 
@@ -78649,6 +79679,7 @@ self: {
        libraryHaskellDepends = [ base parsec random-fu transformers ];
        description = "Simplistic D&D style dice-rolling system";
        license = lib.licenses.publicDomain;
+       mainProgram = "dice";
      }) {};
 
   "dice-entropy-conduit" = callPackage
@@ -78682,6 +79713,7 @@ self: {
        description = "Convert a Diceware wordlist into a printer-ready LaTeX file";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dice2tex";
        broken = true;
      }) {};
 
@@ -78727,6 +79759,7 @@ self: {
        description = "Tools to handle StarDict dictionaries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bench";
        broken = true;
      }) {};
 
@@ -78757,6 +79790,7 @@ self: {
        description = "Parsec parsers for the DICT format produced by dictfmt -t";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dictparser";
        broken = true;
      }) {};
 
@@ -78864,6 +79898,7 @@ self: {
        description = "Diff two .cabal files syntactically";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diffcabal";
        broken = true;
      }) {};
 
@@ -78930,6 +79965,7 @@ self: {
        description = "Finds out whether an entity comes from different distributions (statuses)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "differential";
      }) {};
 
   "diffmap" = callPackage
@@ -79298,6 +80334,7 @@ self: {
        ];
        description = "ASCII based Diagram drawing in Haskell (Idea based on ditaa)";
        license = lib.licenses.gpl2Only;
+       mainProgram = "dihaa";
      }) {};
 
   "dijkstra-simple" = callPackage
@@ -79335,6 +80372,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "dimensional_1_5" = callPackage
+    ({ mkDerivation, base, criterion, deepseq, doctest, exact-pi, Glob
+     , hspec, hspec-discover, ieee754, numtype-dk, QuickCheck
+     , template-haskell, vector
+     }:
+     mkDerivation {
+       pname = "dimensional";
+       version = "1.5";
+       sha256 = "16d50vlln11hq894y8qxrg4cricz1459dg14z0wc1fzfiydxb6ns";
+       libraryHaskellDepends = [
+         base deepseq exact-pi ieee754 numtype-dk vector
+       ];
+       testHaskellDepends = [
+         base doctest Glob hspec QuickCheck template-haskell
+       ];
+       testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
+       description = "Statically checked physical dimensions";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "dimensional-codata" = callPackage
     ({ mkDerivation, base, dimensional, numtype-dk }:
      mkDerivation {
@@ -79416,6 +80475,7 @@ self: {
        description = "Dingo Example";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dingo-example";
      }) {};
 
   "dingo-widgets" = callPackage
@@ -79483,6 +80543,7 @@ self: {
        ];
        description = "Gemini client";
        license = lib.licenses.gpl3Only;
+       mainProgram = "diohsc";
      }) {};
 
   "diophantine" = callPackage
@@ -79537,6 +80598,7 @@ self: {
        description = "Play Diplomacy over HTTP";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diplomacy-server";
      }) {};
 
   "dir-traverse" = callPackage
@@ -79662,22 +80724,6 @@ self: {
 
   "direct-sqlite" = callPackage
     ({ mkDerivation, base, base16-bytestring, bytestring, directory
-     , HUnit, semigroups, temporary, text
-     }:
-     mkDerivation {
-       pname = "direct-sqlite";
-       version = "2.3.26";
-       sha256 = "1z7rwaqhxl9hagbcndg3dkqysr5n2bcz2jrrvdl9pdi905x2663y";
-       libraryHaskellDepends = [ base bytestring semigroups text ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring directory HUnit temporary text
-       ];
-       description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support.";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "direct-sqlite_2_3_27" = callPackage
-    ({ mkDerivation, base, base16-bytestring, bytestring, directory
      , HUnit, temporary, text
      }:
      mkDerivation {
@@ -79690,7 +80736,6 @@ self: {
        ];
        description = "Low-level binding to SQLite3. Includes UTF8 and BLOB support.";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "directed-cubical" = callPackage
@@ -79746,6 +80791,7 @@ self: {
        description = "Recursively build, navigate, and operate on a tree of directory contents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
      }) {};
 
   "directory-layout" = callPackage
@@ -79810,6 +80856,7 @@ self: {
        description = "Deletes a directory and retains its contents in the parent directory";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "direm";
        broken = true;
      }) {};
 
@@ -79843,7 +80890,7 @@ self: {
        testHaskellDepends = [ base hspec log-domain mwc-random vector ];
        description = "Multivariate Dirichlet distribution";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "dirstream" = callPackage
@@ -79861,7 +80908,7 @@ self: {
        ];
        description = "Easily stream directory contents in constant memory";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "dirtree" = callPackage
@@ -79933,6 +80980,7 @@ self: {
        description = "Functional programming language for teaching discrete math";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "disco";
      }) {};
 
   "discogs-haskell" = callPackage
@@ -80009,6 +81057,7 @@ self: {
        executableHaskellDepends = [ base text unliftio ];
        description = "Write bots for Discord in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "ping-pong";
      }) {};
 
   "discord-haskell-voice" = callPackage
@@ -80086,6 +81135,7 @@ self: {
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "discord-register-exe";
      }) {};
 
   "discord-rest" = callPackage
@@ -80239,6 +81289,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "discrimination_0_5" = callPackage
+    ({ mkDerivation, array, base, containers, contravariant, criterion
+     , deepseq, ghc-bignum, ghc-prim, hashable, primitive, promises
+     , QuickCheck, quickcheck-instances, splitmix, tasty
+     , tasty-quickcheck, transformers, unordered-containers, vector
+     , vector-algorithms
+     }:
+     mkDerivation {
+       pname = "discrimination";
+       version = "0.5";
+       sha256 = "1qq7fs1dsfqgf4969gksqcp3swcx0wbzdh66a89fv78k6y94g0pc";
+       libraryHaskellDepends = [
+         array base containers contravariant deepseq ghc-bignum ghc-prim
+         hashable primitive promises transformers
+       ];
+       testHaskellDepends = [
+         base containers criterion deepseq hashable QuickCheck
+         quickcheck-instances splitmix tasty tasty-quickcheck
+         unordered-containers vector vector-algorithms
+       ];
+       benchmarkHaskellDepends = [
+         base containers criterion deepseq ghc-prim hashable primitive
+         splitmix unordered-containers vector vector-algorithms
+       ];
+       description = "Fast generic linear-time sorting, joins and container construction";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "disjoint-containers" = callPackage
     ({ mkDerivation, aeson, base, containers, doctest, enum-types
      , QuickCheck, quickcheck-classes, quickcheck-enum-instances
@@ -80381,6 +81460,7 @@ self: {
        description = "Generate/Upload cabal package to Hackage";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dist-upload";
        broken = true;
      }) {};
 
@@ -80429,6 +81509,7 @@ self: {
        description = "Serializable closures for distributed programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-client-server";
        broken = true;
      }) {};
 
@@ -80762,6 +81843,7 @@ self: {
        description = "Peer-to-peer node discovery for Cloud Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jollycloud";
      }) {};
 
   "distributed-process-platform" = callPackage
@@ -81040,7 +82122,7 @@ self: {
        testHaskellDepends = [ base deepseq hspec lens ];
        description = "Types and functions to manipulate the Nixpkgs distribution";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "distribution-nixpkgs_1_7_0" = callPackage
@@ -81062,7 +82144,7 @@ self: {
        description = "Types and functions to manipulate the Nixpkgs distribution";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "distribution-opensuse" = callPackage
@@ -81084,6 +82166,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Types, functions, and tools to manipulate the openSUSE distribution";
        license = lib.licenses.bsd3;
+       mainProgram = "guess-changelog";
      }) {};
 
   "distribution-plot" = callPackage
@@ -81165,6 +82248,7 @@ self: {
        description = "Quantify the diversity of a population";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "diversity";
      }) {};
 
   "dixi" = callPackage
@@ -81203,6 +82287,7 @@ self: {
        description = "A wiki implemented with a firm theoretical foundation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dixi";
      }) {};
 
   "djembe" = callPackage
@@ -81235,6 +82320,7 @@ self: {
        ];
        description = "Generate Haskell code from a type";
        license = lib.licenses.bsd3;
+       mainProgram = "djinn";
      }) {};
 
   "djinn-ghc" = callPackage
@@ -81288,8 +82374,8 @@ self: {
      }:
      mkDerivation {
        pname = "dl-fedora";
-       version = "0.9.2";
-       sha256 = "1x48nrgz34a3kyfkv126jscbjv5yra8h0csrb6sw8f9jw5x3spss";
+       version = "0.9.3";
+       sha256 = "17b9l6xshndy57i55bl6dnljh395mmcwlmjr3nygl30blrlmyz9y";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -81301,6 +82387,7 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dl-fedora";
      }) {};
 
   "dlist" = callPackage
@@ -81389,6 +82476,7 @@ self: {
        description = "AVAYA DMCC API bindings and WebSockets server for AVAYA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmcc-ws";
        broken = true;
      }) {};
 
@@ -81425,6 +82513,7 @@ self: {
        description = "dmenu script for killing applications. Sortable by process id or CPU/MEM usage.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-pkill";
      }) {};
 
   "dmenu-pmount" = callPackage
@@ -81443,6 +82532,7 @@ self: {
        description = "Mounting and unmounting linux devices as user with dmenu and pmount";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-pmount";
      }) {};
 
   "dmenu-search" = callPackage
@@ -81461,6 +82551,26 @@ self: {
        description = "dmenu script for searching the web with customizable search engines";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dmenu-search";
+     }) {};
+
+  "dnf-repo" = callPackage
+    ({ mkDerivation, base, directory, extra, filepath, simple-cmd
+     , simple-cmd-args
+     }:
+     mkDerivation {
+       pname = "dnf-repo";
+       version = "0.1";
+       sha256 = "1xsicihfdvygqpnham4y0cixd07iyh4mxcjrmbivrc3mglb3qgf2";
+       isLibrary = false;
+       isExecutable = true;
+       enableSeparateDataOutput = true;
+       executableHaskellDepends = [
+         base directory extra filepath simple-cmd simple-cmd-args
+       ];
+       description = "DNF wrapper tool to control repos";
+       license = lib.licenses.bsd3;
+       mainProgram = "dnf-repo";
      }) {};
 
   "dns" = callPackage
@@ -81520,6 +82630,7 @@ self: {
        description = "Caching DNS resolver library and mass DNS resolver utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "massdns";
      }) {};
 
   "dnsrbl" = callPackage
@@ -81697,6 +82808,7 @@ self: {
        description = "Helps to order the 7 or less Ukrainian words to obtain somewhat suitable for poetry or music text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dobutokO-poetry";
      }) {};
 
   "dobutokO-poetry-general" = callPackage
@@ -81750,6 +82862,7 @@ self: {
        description = "Helps to create experimental music from a file (or its part) and a Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dobutokO2";
      }) {};
 
   "dobutokO3" = callPackage
@@ -81810,6 +82923,7 @@ self: {
        description = "Document review Web application, like http://book.realworldhaskell.org/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doc-review";
      }) {};
 
   "doccheck" = callPackage
@@ -81829,6 +82943,7 @@ self: {
        description = "Checks Haddock comments for pitfalls and version changes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doccheck";
        broken = true;
      }) {};
 
@@ -81849,6 +82964,7 @@ self: {
        description = "Generate an HTML index of installed Haskell packages and their documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docidx";
        broken = true;
      }) {};
 
@@ -81865,8 +82981,8 @@ self: {
      }:
      mkDerivation {
        pname = "docker";
-       version = "0.7.0.0";
-       sha256 = "1w228qhnl54v3d69ln4y5s64ywvcsd202m1m3ry8j6lsgfj1hawm";
+       version = "0.7.0.1";
+       sha256 = "18qbwfr930hnz0wrcvq6xzma64lmvh1f69b5nick540wsfbwcqg3";
        libraryHaskellDepends = [
          aeson base blaze-builder bytestring conduit conduit-combinators
          conduit-extra containers data-default-class directory exceptions
@@ -81908,6 +83024,7 @@ self: {
        description = "Builds a docker image and caches all of its intermediate stages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docker-build-cacher";
        broken = true;
      }) {};
 
@@ -81943,6 +83060,7 @@ self: {
        description = "A build tool for multiple docker image layers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dockercook";
        broken = true;
      }) {};
 
@@ -82159,6 +83277,7 @@ self: {
        ];
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
+       mainProgram = "doctest";
      }) {};
 
   "doctest_0_20_0" = callPackage
@@ -82192,6 +83311,7 @@ self: {
        description = "Test interactive Haskell examples";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
      }) {};
 
   "doctest-discover" = callPackage
@@ -82214,6 +83334,7 @@ self: {
        doHaddock = false;
        description = "Easy way to run doctests via cabal";
        license = lib.licenses.publicDomain;
+       mainProgram = "doctest-discover";
      }) {};
 
   "doctest-discover-configurator" = callPackage
@@ -82239,6 +83360,7 @@ self: {
        description = "Easy way to run doctests via cabal (no aeson dependency, uses configurator instead)";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest-discover";
        broken = true;
      }) {};
 
@@ -82255,6 +83377,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Generate driver file for doctest's cabal integration";
        license = lib.licenses.bsd3;
+       mainProgram = "doctest-driver-gen";
      }) {};
 
   "doctest-exitcode-stdio" = callPackage
@@ -82292,6 +83415,7 @@ self: {
        ];
        description = "Alternative doctest implementation that extracts comments to modules";
        license = lib.licenses.bsd3;
+       mainProgram = "doctest-extract-0.1";
      }) {};
 
   "doctest-lib" = callPackage
@@ -82417,6 +83541,7 @@ self: {
        description = "DocuSign examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docusign-example";
        broken = true;
      }) {};
 
@@ -82445,6 +83570,7 @@ self: {
        description = "Documentation generator for Vim plug-ins";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docvim";
        broken = true;
      }) {};
 
@@ -82475,6 +83601,7 @@ self: {
        description = "Automatic Bibtex and fulltext of scientific articles";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doi";
        broken = true;
      }) {};
 
@@ -82602,6 +83729,7 @@ self: {
        ];
        description = "Codegen helping you define domain models";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-aeson" = callPackage
@@ -82621,6 +83749,7 @@ self: {
        testHaskellDepends = [ domain rerebase ];
        description = "Integration of domain with aeson";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-auth" = callPackage
@@ -82657,6 +83786,7 @@ self: {
        testHaskellDepends = [ cereal cereal-text domain rerebase ];
        description = "Integration of domain with cereal";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "domain-core" = callPackage
@@ -82708,6 +83838,7 @@ self: {
        testHaskellDepends = [ base containers hspec lens mtl random ];
        description = "A simulator for the board game Dominion";
        license = lib.licenses.bsd3;
+       mainProgram = "dominion";
      }) {};
 
   "domplate" = callPackage
@@ -82737,8 +83868,8 @@ self: {
      }:
      mkDerivation {
        pname = "dormouse-client";
-       version = "0.2.0.0";
-       sha256 = "1l5vhlvl5kl4m5shl2rysj16r7wqkqwy1i1yb3r96zx8rbwhi2j8";
+       version = "0.2.1.0";
+       sha256 = "09qkmlgfq0p2d7amil9af6zbd3p2ayhziv8sr152zim4g0v2nmmk";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring case-insensitive containers
          dormouse-uri http-api-data http-client http-client-tls http-types
@@ -82822,6 +83953,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dot-linker";
        broken = true;
      }) {};
 
@@ -82836,6 +83968,7 @@ self: {
        executableHaskellDepends = [ base containers graphviz hxt text ];
        description = "Converter from GraphViz .dot format to yEd GraphML";
        license = lib.licenses.bsd3;
+       mainProgram = "dot2graphml";
      }) {};
 
   "dotenv" = callPackage
@@ -82864,6 +83997,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Loads environment variables from dotenv files";
        license = lib.licenses.mit;
+       mainProgram = "dotenv";
      }) {};
 
   "dotfs" = callPackage
@@ -82896,6 +84030,7 @@ self: {
        description = "Filesystem to manage and parse dotfiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dotfs";
        broken = true;
      }) {};
 
@@ -83089,6 +84224,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A proof assistant for Magic: The Gathering puzzles";
        license = lib.licenses.bsd3;
+       mainProgram = "dovin";
      }) {};
 
   "dow" = callPackage
@@ -83108,6 +84244,7 @@ self: {
        description = "Dungeons of Wor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dow";
      }) {};
 
   "downhill" = callPackage
@@ -83173,6 +84310,7 @@ self: {
        description = "Simple tool to download images from RSS feeds (e.g. Flickr, Picasa)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "download-media-content";
      }) {};
 
   "downloader" = callPackage
@@ -83438,6 +84576,7 @@ self: {
        ];
        description = "a lightweight DNS proxy server";
        license = lib.licenses.bsd3;
+       mainProgram = "dprox";
      }) {};
 
   "drClickOn" = callPackage
@@ -83543,6 +84682,7 @@ self: {
        description = "Library and program for querying DVB (Dresdner Verkehrsbetriebe AG)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dresdner-verkehrsbetriebe";
        broken = true;
      }) {};
 
@@ -83690,6 +84830,7 @@ self: {
        description = "Dropbox API client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
        broken = true;
      }) {};
 
@@ -83732,6 +84873,7 @@ self: {
        description = "A command line tool for resolving dropbox conflicts. Deprecated! Please use confsolve.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dropsolve";
      }) {};
 
   "drunken-bishop" = callPackage
@@ -83812,6 +84954,7 @@ self: {
        description = "SQL backend for Database Supported Haskell (DSH)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sqltests";
      }) {};
 
   "dsmc" = callPackage
@@ -83947,6 +85090,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Harmonix (Guitar Hero, Rock Band) DTA/DTB metadata library";
        license = lib.licenses.bsd3;
+       mainProgram = "dtab";
      }) {};
 
   "dtd" = callPackage
@@ -84059,6 +85203,7 @@ self: {
        description = "Network multiplayer 2D shooting game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dual";
        broken = true;
      }) {};
 
@@ -84185,6 +85330,7 @@ self: {
        description = "A tiny language, a subset of Haskell (with type classes) aimed at aiding teachers to teach Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "duet";
        broken = true;
      }) {};
 
@@ -84261,7 +85407,25 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit transformers ];
        description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
+     }) {};
+
+  "dunai_0_8_3" = callPackage
+    ({ mkDerivation, base, MonadRandom, simple-affine-space, tasty
+     , tasty-hunit, transformers, transformers-base
+     }:
+     mkDerivation {
+       pname = "dunai";
+       version = "0.8.3";
+       sha256 = "1xkc7a337g6xg2wgj1sphpmvj22y2fkifs36s7iws7cr7fqx1a1p";
+       libraryHaskellDepends = [
+         base MonadRandom simple-affine-space transformers transformers-base
+       ];
+       testHaskellDepends = [ base tasty tasty-hunit transformers ];
+       description = "Generalised reactive framework supporting classic, arrowized and monadic FRP";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "dunai-core" = callPackage
@@ -84284,8 +85448,8 @@ self: {
     ({ mkDerivation, base, dunai, normaldistribution, QuickCheck }:
      mkDerivation {
        pname = "dunai-test";
-       version = "0.8.2";
-       sha256 = "0cicvzp604945mmlnrxwkkcyl01id933jrnnrv3y0c5xqlly2y9r";
+       version = "0.8.3";
+       sha256 = "07kirfcyzanscp0kdhgsg0pf809nwf6im0m104xrsrxkak1iqkh4";
        libraryHaskellDepends = [
          base dunai normaldistribution QuickCheck
        ];
@@ -84328,6 +85492,7 @@ self: {
        description = "Frontend development build tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "duplo";
      }) {};
 
   "dura" = callPackage
@@ -84381,6 +85546,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "dustme";
      }) {};
 
   "dvault" = callPackage
@@ -84400,6 +85566,7 @@ self: {
        description = "Dead simple password manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dvault";
        broken = true;
      }) {};
 
@@ -84541,7 +85708,7 @@ self: {
        libraryHaskellDepends = [ base Win32 ];
        description = "Backend for a binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "dx9d3d" = callPackage
@@ -84554,7 +85721,7 @@ self: {
        librarySystemDepends = [ d3d9 ];
        description = "A binding to the Microsoft DirectX 9 API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {d3d9 = null;};
 
   "dx9d3dx" = callPackage
@@ -84567,7 +85734,7 @@ self: {
        librarySystemDepends = [ d3dx9 ];
        description = "A binding to the Microsoft DirectX 9 D3DX API";
        license = lib.licenses.bsd3;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {d3dx9 = null;};
 
   "dyckword" = callPackage
@@ -84850,6 +86017,7 @@ self: {
        description = "Library Type Safe implementation of Dynamic Pipeline Paradigm (DPP)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "examples";
        broken = true;
      }) {};
 
@@ -85052,6 +86220,7 @@ self: {
        description = "Configure dzen2 bars in Dhall language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dzen-dhall";
        broken = true;
      }) {};
 
@@ -85129,6 +86298,7 @@ self: {
        description = "Ear Clipping Triangulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "earclipper";
        broken = true;
      }) {};
 
@@ -85165,6 +86335,7 @@ self: {
        description = "Early return syntax in do-notation (GHC plugin)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "early";
        broken = true;
      }) {};
 
@@ -85386,6 +86557,7 @@ self: {
        description = "Parser combinators & EBNF, BFFs!";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ebnf-parse";
        broken = true;
      }) {};
 
@@ -85426,6 +86598,7 @@ self: {
        description = "A handy tool for uploading unikernels to Amazon's EC2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ec2-unikernel";
      }) {};
 
   "eccrypto" = callPackage
@@ -85434,8 +86607,8 @@ self: {
      }:
      mkDerivation {
        pname = "eccrypto";
-       version = "0.2.2";
-       sha256 = "1avzxzzlhldpjp6k14jirx3ws5818bpsip9p0wj6kl1g3ii7ydjz";
+       version = "0.2.3";
+       sha256 = "16jysii88v1wkm3g7vjx9vdhzcjqq1dlfrjkf2hccrcxz8wqv4d1";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base bytestring cryptohash-sha512 integer-gmp
@@ -85506,6 +86679,7 @@ self: {
        description = "A ECMA-262 interpreter library";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ecma262";
        broken = true;
      }) {};
 
@@ -85590,6 +86764,7 @@ self: {
        description = "Command line file filtering with haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eddie";
        broken = true;
      }) {};
 
@@ -85623,6 +86798,7 @@ self: {
        description = "Templating language with similar syntax and features to Liquid or Jinja2";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ede";
        broken = true;
      }) {};
 
@@ -85670,6 +86846,7 @@ self: {
        description = "A Tool to Visualize Parallel Functional Program Executions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "edentv";
      }) {};
 
   "edf" = callPackage
@@ -85700,6 +86877,7 @@ self: {
        description = "Top view space combat arcade game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "edge";
      }) {};
 
   "edges" = callPackage
@@ -85849,6 +87027,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Programs demoing the use of symmetric, stateful edit lenses";
        license = lib.licenses.bsd3;
+       mainProgram = "lens-editor";
      }) {};
 
   "editable" = callPackage
@@ -85913,6 +87092,7 @@ self: {
        ];
        description = "Edit stdin using an editor before sending to stdout";
        license = lib.licenses.bsd3;
+       mainProgram = "editpipe";
      }) {};
 
   "effect-handlers" = callPackage
@@ -86240,6 +87420,7 @@ self: {
        description = "A tutorial program for the Egison programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "egison-tutorial";
      }) {};
 
   "egyptian-fractions" = callPackage
@@ -86270,6 +87451,7 @@ self: {
        description = "like eruby, ehaskell is embedded haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ehs";
        broken = true;
      }) {};
 
@@ -86349,6 +87531,7 @@ self: {
        executableToolDepends = [ markdown-unlit ];
        description = "IO with Exceptions tracked on the type-level";
        license = lib.licenses.mpl20;
+       mainProgram = "readme";
      }) {};
 
   "either" = callPackage
@@ -86883,6 +88066,7 @@ self: {
        description = "Arrows with holes";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -87033,7 +88217,7 @@ self: {
        description = "elm-export persistent entities";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
        broken = true;
      }) {};
 
@@ -87060,6 +88244,7 @@ self: {
        ];
        description = "Tool for sharing and using Elm libraries";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-get";
      }) {};
 
   "elm-hybrid" = callPackage
@@ -87094,6 +88279,7 @@ self: {
        ];
        description = "Set up basic structure for an elm project";
        license = lib.licenses.mit;
+       mainProgram = "elm-init";
      }) {};
 
   "elm-make" = callPackage
@@ -87114,6 +88300,7 @@ self: {
        ];
        description = "A build tool for Elm projects";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-make";
      }) {};
 
   "elm-package" = callPackage
@@ -87143,6 +88330,7 @@ self: {
        ];
        description = "Package manager for Elm libraries";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-package";
      }) {};
 
   "elm-reactor" = callPackage
@@ -87167,6 +88355,7 @@ self: {
        ];
        description = "Interactive development tool for Elm programs";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-reactor";
      }) {};
 
   "elm-repl" = callPackage
@@ -87192,6 +88381,7 @@ self: {
        ];
        description = "a REPL for Elm";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-repl";
      }) {};
 
   "elm-server" = callPackage
@@ -87211,6 +88401,7 @@ self: {
        ];
        description = "Server for developing Elm projects";
        license = lib.licenses.bsd3;
+       mainProgram = "elm-server";
      }) {};
 
   "elm-street" = callPackage
@@ -87327,6 +88518,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Turn your Elm project into buildable Nix project";
        license = lib.licenses.bsd3;
+       mainProgram = "elm2nix";
      }) {};
 
   "elminator" = callPackage
@@ -87382,6 +88574,7 @@ self: {
        description = "Generate easy-to-remember, hard-to-guess passwords";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "elocrypt";
        broken = true;
      }) {};
 
@@ -87405,6 +88598,7 @@ self: {
        description = "A tiny language for understanding the lambda-calculus";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "elsa";
      }) {};
 
   "elynx" = callPackage
@@ -87422,7 +88616,8 @@ self: {
        ];
        description = "Validate and (optionally) redo ELynx analyses";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "elynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-markov" = callPackage
@@ -87444,7 +88639,7 @@ self: {
        benchmarkHaskellDepends = [ base ];
        description = "Simulate molecular sequences along trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-nexus" = callPackage
@@ -87457,7 +88652,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Import and export Nexus files";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-seq" = callPackage
@@ -87478,7 +88673,7 @@ self: {
        ];
        description = "Handle molecular sequences";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-tools" = callPackage
@@ -87498,7 +88693,7 @@ self: {
        ];
        description = "Tools for ELynx";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "elynx-tree" = callPackage
@@ -87526,7 +88721,7 @@ self: {
        ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "ema" = callPackage
@@ -87550,7 +88745,7 @@ self: {
        ];
        description = "Static site generator library with hot reload";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "emacs-keys" = callPackage
@@ -87700,6 +88895,7 @@ self: {
        ];
        description = "Perform basic syntax and deliverability checks on email addresses";
        license = lib.licenses.agpl3Only;
+       mainProgram = "email-validator";
      }) {};
 
   "emailaddress" = callPackage
@@ -87761,6 +88957,7 @@ self: {
        ];
        description = "Embed the values in scope in the haddock documentation of the module";
        license = lib.licenses.bsd3;
+       mainProgram = "embeddock";
      }) {};
 
   "embeddock-example" = callPackage
@@ -87804,6 +89001,7 @@ self: {
        description = "support for embroidery formats in haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "emd" = callPackage
@@ -87866,6 +89064,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "emoji utility";
        license = lib.licenses.bsd3;
+       mainProgram = "emoji-example";
      }) {};
 
   "emojis" = callPackage
@@ -87965,8 +89164,8 @@ self: {
      }:
      mkDerivation {
        pname = "encoding";
-       version = "0.8.6";
-       sha256 = "0m68a4q98q4hf0sy0s9b3cmi2pl5s00xxchnjqqs3lb6b8xzg4fz";
+       version = "0.8.7";
+       sha256 = "1srnambj9zfr7z33a0dsf6ryl5lxmvpzkqgq60rrqh6n47dz3cwa";
        setupHaskellDepends = [
          base Cabal containers filepath ghc-prim HaXml
        ];
@@ -88055,6 +89254,7 @@ self: {
        ];
        description = "An English language stemmer (Porter2)";
        license = lib.licenses.bsd3;
+       mainProgram = "eng-stemmer-example";
      }) {};
 
   "engine-io" = callPackage
@@ -88175,6 +89375,7 @@ self: {
        description = "An application (and library) to convert quipper circuits into Qpmc models";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "entangle";
      }) {};
 
   "entropy" = callPackage
@@ -88278,6 +89479,7 @@ self: {
        description = "Making fmt available with rio";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo-enum-text-rio";
      }) {};
 
   "enum-types" = callPackage
@@ -88338,6 +89540,7 @@ self: {
        description = "enumerate all the values in a finite type (automatically)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-enumerate";
      }) {};
 
   "enumerate-function" = callPackage
@@ -88359,6 +89562,7 @@ self: {
        description = "simple package for inverting functions and testing totality, via brute enumeration of the domain";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-enumerate-function";
      }) {};
 
   "enumeration" = callPackage
@@ -88597,6 +89801,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "envparse_0_5_0" = callPackage
+    ({ mkDerivation, base, containers, hspec, text }:
+     mkDerivation {
+       pname = "envparse";
+       version = "0.5.0";
+       sha256 = "07fvq07x4i6swcryv3i0vj197zrj8rvvy2vp9q9cvj28xzj4mddd";
+       libraryHaskellDepends = [ base containers ];
+       testHaskellDepends = [ base containers hspec text ];
+       description = "Parse environment variables";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "envstatus" = callPackage
     ({ mkDerivation, base, ConfigFile, mtl, parsec, process, PyF, tasty
      , tasty-hspec, unix
@@ -88617,6 +89834,7 @@ self: {
        description = "Display efficiently the state of the local environment";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "envstatus";
        broken = true;
      }) {};
 
@@ -88639,7 +89857,7 @@ self: {
        ];
        description = "An environmentally friendly way to deal with environment variables";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "envy-extensible" = callPackage
@@ -88744,6 +89962,7 @@ self: {
        description = "Compiler for a simple functional language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "epic";
        broken = true;
      }) {};
 
@@ -88791,6 +90010,7 @@ self: {
        ];
        description = "EPUB E-Book construction support library";
        license = lib.licenses.bsd3;
+       mainProgram = "xhtml2epub";
      }) {};
 
   "epub-metadata" = callPackage
@@ -88814,6 +90034,7 @@ self: {
        ];
        description = "Library for parsing epub document metadata";
        license = lib.licenses.bsd3;
+       mainProgram = "epub-metadata-example";
      }) {};
 
   "epub-tools" = callPackage
@@ -88852,6 +90073,7 @@ self: {
        description = "Rename epub ebook files based on meta information";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "epubname";
        broken = true;
      }) {};
 
@@ -88882,6 +90104,7 @@ self: {
        ];
        description = "Shell command for finding equal files";
        license = "GPL";
+       mainProgram = "equal-files";
      }) {};
 
   "equational-reasoning" = callPackage
@@ -88978,6 +90201,7 @@ self: {
        description = "An entity-relationship diagram generator from a plain text description";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "erd";
        broken = true;
      }) {};
 
@@ -89072,6 +90296,7 @@ self: {
        description = "DEPRECATED in favor of eros-http";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "erosc";
      }) {};
 
   "eros-http" = callPackage
@@ -89092,6 +90317,7 @@ self: {
        description = "JSON HTTP interface to Eros";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eros-http";
      }) {};
 
   "errata" = callPackage
@@ -89110,6 +90336,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Source code error pretty printing";
        license = lib.licenses.mit;
+       mainProgram = "errata-example";
      }) {};
 
   "errno" = callPackage
@@ -89255,11 +90482,25 @@ self: {
        pname = "error-or";
        version = "0.2.0.0";
        sha256 = "0wpw8ms1rxc8zhdcr078bang10jl2wkd0ji944knzcvspfnx9hib";
+       revision = "1";
+       editedCabalFile = "16zplgyfdqcqfnrf4w67fl993akn7dpysgsjl8n3w6cw7ki6a2a8";
        libraryHaskellDepends = [ base containers mtl text ];
        description = "Composable, hierarchical errors";
        license = lib.licenses.bsd3;
      }) {};
 
+  "error-or_0_3_0" = callPackage
+    ({ mkDerivation, base, containers, mtl, text }:
+     mkDerivation {
+       pname = "error-or";
+       version = "0.3.0";
+       sha256 = "14493vzrwf4w0x1y6bml5z4k3m5y413hw650vfv3b63iynzz7l3x";
+       libraryHaskellDepends = [ base containers mtl text ];
+       description = "Composable, hierarchical errors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "error-or-utils" = callPackage
     ({ mkDerivation, base, containers, error-or, text }:
      mkDerivation {
@@ -89311,7 +90552,7 @@ self: {
        ];
        description = "Simplified error-handling";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "errors-ext" = callPackage
@@ -89356,6 +90597,7 @@ self: {
        description = "A script to concatenate AIP ERSA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ersaconcat";
        broken = true;
      }) {};
 
@@ -89425,6 +90667,7 @@ self: {
        description = "Easy Runtime Templates";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ert";
        broken = true;
      }) {};
 
@@ -89465,6 +90708,7 @@ self: {
        ];
        description = "Produce Text with terminal escape sequences";
        license = lib.licenses.mit;
+       mainProgram = "escaped-example";
      }) {};
 
   "escoger" = callPackage
@@ -89492,6 +90736,7 @@ self: {
        description = "Terminal fuzzy selector";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "escoger";
        broken = true;
      }) {};
 
@@ -89517,6 +90762,7 @@ self: {
        description = "Esotericbot is a sophisticated, lightweight IRC bot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "esotericbot";
      }) {};
 
   "espial" = callPackage
@@ -89598,34 +90844,6 @@ self: {
      }:
      mkDerivation {
        pname = "esqueleto";
-       version = "3.5.4.1";
-       sha256 = "05jnsaxmc5y1mh6n52agv9rfh6s11fidd30mr5f1f53568dw9c95";
-       libraryHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         monad-logger persistent resourcet tagged text time transformers
-         unliftio unordered-containers
-       ];
-       testHaskellDepends = [
-         aeson attoparsec base blaze-html bytestring conduit containers
-         exceptions hspec hspec-core monad-logger mtl mysql mysql-simple
-         persistent persistent-mysql persistent-postgresql persistent-sqlite
-         postgresql-simple QuickCheck resourcet tagged text time
-         transformers unliftio unordered-containers
-       ];
-       description = "Type-safe EDSL for SQL queries on persistent backends";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "esqueleto_3_5_5_0" = callPackage
-    ({ mkDerivation, aeson, attoparsec, base, blaze-html, bytestring
-     , conduit, containers, exceptions, hspec, hspec-core, monad-logger
-     , mtl, mysql, mysql-simple, persistent, persistent-mysql
-     , persistent-postgresql, persistent-sqlite, postgresql-simple
-     , QuickCheck, resourcet, tagged, text, time, transformers, unliftio
-     , unordered-containers
-     }:
-     mkDerivation {
-       pname = "esqueleto";
        version = "3.5.5.0";
        sha256 = "0ba90p3cqyr0l447dw2xzrk2fs6xv5b2c79rqsnj0bchpsigj8a0";
        libraryHaskellDepends = [
@@ -89642,7 +90860,6 @@ self: {
        ];
        description = "Type-safe EDSL for SQL queries on persistent backends";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "esqueleto-pgcrypto" = callPackage
@@ -89715,7 +90932,7 @@ self: {
        ];
        description = "General purpose live coding framework";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-PortMidi" = callPackage
@@ -89731,9 +90948,7 @@ self: {
        ];
        description = "General purpose live coding framework - PortMidi backend";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "essence-of-live-coding-gloss" = callPackage
@@ -89749,7 +90964,7 @@ self: {
        ];
        description = "General purpose live coding framework - Gloss backend";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-gloss-example" = callPackage
@@ -89769,6 +90984,7 @@ self: {
        description = "General purpose live coding framework - Gloss example";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "essence-of-live-coding-gloss-example";
        broken = true;
      }) {};
 
@@ -89785,7 +91001,7 @@ self: {
        ];
        description = "General purpose live coding framework - pulse backend";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-pulse-example" = callPackage
@@ -89805,6 +91021,7 @@ self: {
        description = "General purpose live coding framework - pulse backend example";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "essence-of-live-coding-pulse-example";
        broken = true;
      }) {};
 
@@ -89822,7 +91039,7 @@ self: {
        ];
        description = "General purpose live coding framework - QuickCheck integration";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "essence-of-live-coding-vivid" = callPackage
@@ -90121,6 +91338,7 @@ self: {
        description = "A web frontend for ethereum-analyzer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ethereum-analyzer-webui";
      }) {};
 
   "ethereum-client-haskell" = callPackage
@@ -90231,6 +91449,7 @@ self: {
        ];
        description = "Random etymology online entry";
        license = lib.licenses.bsd3;
+       mainProgram = "ety";
      }) {};
 
   "euler" = callPackage
@@ -90393,6 +91612,7 @@ self: {
        testHaskellDepends = [ base bytestring eve lens mtl text vty ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eve-cli-exe";
      }) {};
 
   "eved" = callPackage
@@ -90513,6 +91733,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "event-transformer-exe";
      }) {};
 
   "eventful-core" = callPackage
@@ -90684,6 +91905,7 @@ self: {
        executableHaskellDepends = [ aeson base filepath text ];
        description = "Visualise an eventlog";
        license = lib.licenses.bsd3;
+       mainProgram = "eventlog2html";
      }) {};
 
   "eventloop" = callPackage
@@ -90809,6 +92031,7 @@ self: {
        ];
        description = "Server-Sent Events the UNIX way";
        license = lib.licenses.mit;
+       mainProgram = "eventsourced";
      }) {};
 
   "eventsourcing" = callPackage
@@ -90880,7 +92103,7 @@ self: {
        ];
        description = "EventStore TCP Client";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = lib.platforms.x86_64;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -90969,6 +92192,7 @@ self: {
        description = "An interpreter for EWE programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ewe";
        broken = true;
      }) {};
 
@@ -91048,7 +92272,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Exact real arithmetic";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "exact-real-positional" = callPackage
@@ -91076,6 +92300,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Example Haskell Project";
        license = lib.licenses.bsd3;
+       mainProgram = "example-haskell-project";
      }) {};
 
   "except-exceptions" = callPackage
@@ -91281,6 +92506,7 @@ self: {
        description = "A Haskell client for https://exchangeratesapi.io/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "execs" = callPackage
@@ -91296,6 +92522,7 @@ self: {
        description = "Tool to run stack exec prj-exe more easy";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "execs";
        broken = true;
      }) {};
 
@@ -91321,6 +92548,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Provides the SHA1 hash of the program executable";
        license = lib.licenses.mit;
+       mainProgram = "inject-executable-hash";
      }) {};
 
   "executable-path" = callPackage
@@ -91377,6 +92605,7 @@ self: {
        description = "Tool to search/generate (haskell) expressions with a given type";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exference";
      }) {};
 
   "exh" = callPackage
@@ -91445,6 +92674,7 @@ self: {
        description = "Exheres generator for cabal packages";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exherbo-cabal";
        broken = true;
      }) {};
 
@@ -91753,8 +92983,8 @@ self: {
      }:
      mkDerivation {
        pname = "exon";
-       version = "0.3.0.0";
-       sha256 = "0ysrn78h9z143jpgbw0z5ng6kv79h69v42h4cgywfv2vss9hd96h";
+       version = "0.4.0.0";
+       sha256 = "17hzyfh4wcv5x1446qk448mdlcr63z50nkicf67k8618szf2sqdl";
        libraryHaskellDepends = [
          base flatparse haskell-src-exts haskell-src-meta incipit-base
          template-haskell text
@@ -91803,6 +93033,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exp-cache-benchmarks";
        broken = true;
      }) {};
 
@@ -91972,6 +93203,7 @@ self: {
        description = "Show how expressions are parsed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "explain";
        broken = true;
      }) {};
 
@@ -92100,6 +93332,7 @@ self: {
        description = "Experimental Plot data Reconstructor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "explore";
      }) {};
 
   "exploring-interpreters" = callPackage
@@ -92234,6 +93467,7 @@ self: {
        description = "A simple expressions language based on row types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "expresso";
        broken = true;
      }) {};
 
@@ -92277,6 +93511,7 @@ self: {
        description = "automated printing for extemp speakers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extemp";
      }) {};
 
   "extend-record-data-th" = callPackage
@@ -92360,6 +93595,8 @@ self: {
        pname = "extensible";
        version = "0.9";
        sha256 = "06zmc71r4cqglkv3av38djbkakvw9zxc3901xi2h65fwxn4npvnc";
+       revision = "1";
+       editedCabalFile = "1k8z4dnwkjisba6w5qjxyxvh7ibp6nvl82d6l8apjh7hriapwfx9";
        libraryHaskellDepends = [
          aeson base bytestring cassava comonad constraints deepseq ghc-prim
          hashable incremental membership prettyprinter primitive profunctors
@@ -92505,6 +93742,7 @@ self: {
        ];
        description = "Inspect extensions in cabal and hpack files";
        license = lib.licenses.mit;
+       mainProgram = "extensioneer";
      }) {};
 
   "extensions" = callPackage
@@ -92533,6 +93771,7 @@ self: {
        description = "Parse Haskell Language Extensions";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extensions";
        broken = true;
      }) {};
 
@@ -92587,6 +93826,7 @@ self: {
        description = "Given a hackage package outputs the list of its dependencies";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extract-dependencies";
      }) {};
 
   "extractable-singleton" = callPackage
@@ -92617,6 +93857,7 @@ self: {
        description = "Extract an ELF's metadata and sections into files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "extractelf";
        broken = true;
      }) {};
 
@@ -92718,6 +93959,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -92740,8 +93982,8 @@ self: {
      }:
      mkDerivation {
        pname = "factor";
-       version = "1.5";
-       sha256 = "0fn7dlyaxa2pwf3xakszs75j0fvc7lsdzp4x2cm4hsnyyn1x5v9z";
+       version = "1.6";
+       sha256 = "14dc217d2901h4z8lhf901ih2kg2brrlwpf8wawrmz0nf8np6zfd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -92756,6 +93998,7 @@ self: {
        description = "Factoring integers and polynomials";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "factor";
        broken = true;
      }) {};
 
@@ -92782,6 +94025,7 @@ self: {
        ];
        description = "Rational arithmetic in an irrational world";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "factory";
      }) {};
 
   "facts" = callPackage
@@ -93168,6 +94412,7 @@ self: {
        description = "Falling sand game/cellular automata simulation using regular parallel arrays";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "falling-turnip";
        broken = true;
      }) {};
 
@@ -93188,6 +94433,7 @@ self: {
        description = "A fun falling blocks game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fallingblocks";
      }) {};
 
   "familiar-reflection" = callPackage
@@ -93362,7 +94608,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A fast logging system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "fast-math" = callPackage
@@ -93409,6 +94655,8 @@ self: {
        pname = "fast-tags";
        version = "2.0.1";
        sha256 = "1v60jrcpbd86np5265grd61x6rla1fy85jphcnknffy4zf0sswrf";
+       revision = "1";
+       editedCabalFile = "120prvsdwkil1wq5y72ym4h5gzafdpm3cy4kchgfjcdlyf8jf619";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -93424,6 +94672,7 @@ self: {
        ];
        description = "Fast incremental vi and emacs tags";
        license = lib.licenses.bsd3;
+       mainProgram = "fast-tags";
      }) {};
 
   "fast-tagsoup" = callPackage
@@ -93685,6 +94934,7 @@ self: {
        description = "A compiler for Fay, a Haskell subset that compiles to JavaScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fay";
      }) {};
 
   "fay-base" = callPackage
@@ -93906,6 +95156,7 @@ self: {
        description = "High-level bindings to Facebook Messenger Platform API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -93935,6 +95186,7 @@ self: {
        description = "Fedora packager tool to build package branches";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fbrnch";
      }) {};
 
   "fca" = callPackage
@@ -93991,6 +95243,7 @@ self: {
        description = "A faster way to navigate directories using the command line";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcd";
      }) {};
 
   "fcf-composite" = callPackage
@@ -94078,6 +95331,7 @@ self: {
        description = "TBA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcg";
        broken = true;
      }) {};
 
@@ -94158,6 +95412,7 @@ self: {
        description = "Admin API for Firebase Cloud Messaging";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fcm-client";
        broken = true;
      }) {};
 
@@ -94191,6 +95446,7 @@ self: {
        description = "Utilities related to freedesktop Trash standard";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fdo-trash";
        broken = true;
      }) {};
 
@@ -94336,6 +95592,7 @@ self: {
        description = "Fedora image download tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fedora-img-dl";
      }) {};
 
   "fedora-packages" = callPackage
@@ -94375,6 +95632,7 @@ self: {
        testHaskellDepends = [ base QuickCheck ];
        description = "Short description of your package";
        license = lib.licenses.bsd3;
+       mainProgram = "fee-estimate-exe";
      }) {};
 
   "feed" = callPackage
@@ -94418,6 +95676,7 @@ self: {
        description = "A simple command line interface for creating and updating feeds like RSS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-cli";
        broken = true;
      }) {};
 
@@ -94495,6 +95754,7 @@ self: {
        description = "CI service around gipeda";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-gipeda";
      }) {};
 
   "feed-translator" = callPackage
@@ -94517,6 +95777,7 @@ self: {
        description = "Translate syndication feeds";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed-translator";
      }) {};
 
   "feed2lj" = callPackage
@@ -94536,6 +95797,7 @@ self: {
        description = "(unsupported)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed2lj";
      }) {};
 
   "feed2twitter" = callPackage
@@ -94553,6 +95815,7 @@ self: {
        description = "Send posts from a feed to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "feed2twitter";
      }) {};
 
   "feedback" = callPackage
@@ -94577,7 +95840,6 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Declarative feedback loop manager";
        license = lib.licenses.gpl3Only;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "fei-base" = callPackage
@@ -94606,6 +95868,7 @@ self: {
        description = "FFI to MXNet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mxnet-op-gen";
      }) {inherit (pkgs) mxnet;};
 
   "fei-cocoapi" = callPackage
@@ -94634,6 +95897,7 @@ self: {
        description = "Cocodataset with cocoapi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imageutils";
        broken = true;
      }) {};
 
@@ -94662,6 +95926,7 @@ self: {
        description = "mxnet dataiters";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mxnet-dataiter-gen";
      }) {inherit (pkgs) mxnet;};
 
   "fei-datasets" = callPackage
@@ -94846,6 +96111,7 @@ self: {
        ];
        description = "Converting a chess position from FEN notation to text";
        license = lib.licenses.mit;
+       mainProgram = "fen2s";
      }) {};
 
   "fences" = callPackage
@@ -94904,6 +96170,7 @@ self: {
        description = "Generate and verify HMAC-based authentication tokens";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fernet";
        broken = true;
      }) {};
 
@@ -94936,6 +96203,7 @@ self: {
        description = "Remote multi-db SQLCipher server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "festung";
      }) {};
 
   "fez-conf" = callPackage
@@ -95226,6 +96494,7 @@ self: {
        description = "update statically hosted file in a push stule through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ficketed";
      }) {};
 
   "fields" = callPackage
@@ -95412,6 +96681,7 @@ self: {
        ];
        description = "Takes a Haskell source-code file and outputs its modules";
        license = lib.licenses.mit;
+       mainProgram = "file-modules";
      }) {};
 
   "file-path-th" = callPackage
@@ -95448,6 +96718,7 @@ self: {
        description = "Use templates for files and directories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "new";
        broken = true;
      }) {};
 
@@ -95899,6 +97170,7 @@ self: {
        description = "Find the clumpiness of labels in a tree";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-clumpiness";
      }) {};
 
   "find-conduit" = callPackage
@@ -95934,6 +97206,7 @@ self: {
        description = "A file-finding conduit that allows user control over traversals";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "find-hs";
        broken = true;
      }) {};
 
@@ -95967,6 +97240,7 @@ self: {
        description = "List http/html files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "findhttp";
      }) {};
 
   "fingertree" = callPackage
@@ -96177,7 +97451,7 @@ self: {
        libraryHaskellDepends = [ base deepseq ];
        description = "A type inhabited by finitely many values, indexed by type-level naturals";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "finito" = callPackage
@@ -96258,6 +97532,7 @@ self: {
        description = "A simple example using Firefly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firefly-example-exe";
        broken = true;
      }) {};
 
@@ -96360,6 +97635,7 @@ self: {
        description = "Defunctionalisation for Yhc Core";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firstify";
      }) {};
 
   "fishfood" = callPackage
@@ -96383,6 +97659,7 @@ self: {
        ];
        description = "Calculates file-size frequency-distribution";
        license = "GPL";
+       mainProgram = "fishfood";
      }) {};
 
   "fit" = callPackage
@@ -96428,6 +97705,7 @@ self: {
        description = "Parse FITS files";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omnibus";
        broken = true;
      }) {};
 
@@ -96482,6 +97760,7 @@ self: {
        ];
        description = "Program to manage the imports of a haskell module";
        license = lib.licenses.bsd3;
+       mainProgram = "fix-imports";
      }) {};
 
   "fix-parser-simple" = callPackage
@@ -96526,6 +97805,7 @@ self: {
        ];
        description = "Fixes whitespace issues";
        license = "unknown";
+       mainProgram = "fix-whitespace";
      }) {};
 
   "fixed" = callPackage
@@ -96755,6 +98035,7 @@ self: {
        ];
        description = "Quick parsing of fixed-width data formats";
        license = lib.licenses.mit;
+       mainProgram = "fixedwidth-hs";
      }) {};
 
   "fixer" = callPackage
@@ -96784,6 +98065,7 @@ self: {
        description = "A Haskell client for http://fixer.io/";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "fixfile" = callPackage
@@ -96832,6 +98114,7 @@ self: {
        description = "FIX (co)parser";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fix-generator";
      }) {};
 
   "fixie" = callPackage
@@ -96935,6 +98218,7 @@ self: {
        description = "FizzBuzz as a service";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fizzbuzz-server";
        broken = true;
      }) {};
 
@@ -97003,6 +98287,7 @@ self: {
        description = "Verify FLAC files ripped form CD using AccurateRip™";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flaccuraterip";
        broken = true;
      }) {};
 
@@ -97050,6 +98335,7 @@ self: {
        description = "FlameGraphs of profiling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flamingra";
        broken = true;
      }) {};
 
@@ -97096,6 +98382,7 @@ self: {
        description = "Generate language learning flashcards from video";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flashblast";
      }) {};
 
   "flat" = callPackage
@@ -97124,7 +98411,7 @@ self: {
        ];
        description = "Principled and efficient bit-oriented binary serialization";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "flat-maybe" = callPackage
@@ -97170,6 +98457,7 @@ self: {
        description = "flatten a latex multi-file latex document and remove all comments";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flat-tex";
        broken = true;
      }) {};
 
@@ -97305,6 +98593,7 @@ self: {
        executableHaskellDepends = [ base bytestring text ];
        description = "A configurable reimplementation of unlit";
        license = lib.licenses.bsd3;
+       mainProgram = "funlit";
      }) {};
 
   "flexiwrap" = callPackage
@@ -97434,6 +98723,7 @@ self: {
        executableHaskellDepends = [ base process safe-exceptions ];
        description = "e.g. `flip systemctl foo.service start` does `systemctl start foo.service`";
        license = lib.licenses.mit;
+       mainProgram = "flip";
      }) {};
 
   "flippers" = callPackage
@@ -97464,6 +98754,7 @@ self: {
        description = "f-lite compiler, interpreter and libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flite";
      }) {};
 
   "flo" = callPackage
@@ -97484,6 +98775,7 @@ self: {
        ];
        description = "Generate flow charts from your code base";
        license = lib.licenses.bsd3;
+       mainProgram = "flo";
      }) {};
 
   "float-binstring" = callPackage
@@ -97593,6 +98885,7 @@ self: {
        ];
        description = "A flexible Haskell source code pretty printer";
        license = lib.licenses.bsd3;
+       mainProgram = "floskell";
      }) {};
 
   "flow" = callPackage
@@ -97637,6 +98930,7 @@ self: {
        ];
        description = "Library and binary to generate sequence/flow diagrams from plain text source";
        license = lib.licenses.bsd3;
+       mainProgram = "flow2dot";
      }) {};
 
   "flowdock" = callPackage
@@ -97695,6 +98989,7 @@ self: {
        description = "API integration with Flowdock";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "flowdock";
      }) {};
 
   "flowdock-rest" = callPackage
@@ -97895,6 +99190,7 @@ self: {
        description = "Fltkhs template project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fltkhs-hello-world";
      }) {};
 
   "fltkhs-themes" = callPackage
@@ -97975,6 +99271,7 @@ self: {
        ];
        description = "A simple web application as a online practice website for XDU SE 2017 fall SPM";
        license = lib.licenses.gpl3Only;
+       mainProgram = "fluffy";
      }) {};
 
   "fluffy-parser" = callPackage
@@ -98107,6 +99404,7 @@ self: {
        description = "A Friendly Markup language without syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fmark";
        broken = true;
      }) {};
 
@@ -98349,7 +99647,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Composable, streaming, and efficient left folds";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "foldl-exceptions" = callPackage
@@ -98470,6 +99768,8 @@ self: {
        pname = "folds";
        version = "0.7.8";
        sha256 = "11278546mq05rhyjfmhg0iasqjsn898l44dhp5qgaw1zwzywir2i";
+       revision = "1";
+       editedCabalFile = "1gxb8469w12afd1adf5cn32wxvnvndavxwr65dyc6icqvalbkirn";
        configureFlags = [ "-f-test-hlint" ];
        libraryHaskellDepends = [
          adjunctions base bifunctors comonad constraints contravariant
@@ -98511,6 +99811,7 @@ self: {
        ];
        description = "Toolset for Folger Shakespeare Library's XML annotated plays";
        license = lib.licenses.gpl3Only;
+       mainProgram = "folgerhs";
      }) {};
 
   "follow" = callPackage
@@ -98540,6 +99841,7 @@ self: {
        description = "Haskell library to follow content published on any subject";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "follow_pocket_auth";
        broken = true;
      }) {};
 
@@ -98565,9 +99867,8 @@ self: {
        ];
        description = "Be notified when a file gets appended, solely with what was added. Warning - only works on linux and for files that are strictly appended, like log files.";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "follow-file";
      }) {};
 
   "follower" = callPackage
@@ -98587,6 +99888,7 @@ self: {
        description = "Follow Tweets anonymously";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "follower";
      }) {};
 
   "foma" = callPackage
@@ -98625,6 +99927,7 @@ self: {
        description = "Basic4x6 font for OpenGL";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "show-font-basic4x6";
        broken = true;
      }) {};
 
@@ -98642,6 +99945,7 @@ self: {
        description = "Paper soccer, an OpenGL game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foo";
      }) {};
 
   "foobar" = callPackage
@@ -98657,6 +99961,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "foobar-exe";
      }) {};
 
   "for-free" = callPackage
@@ -98727,6 +100032,7 @@ self: {
        description = "Run a command on files with magic substituion support (sequencing and regexp)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fordo";
        broken = true;
      }) {};
 
@@ -98817,6 +100123,7 @@ self: {
        description = "Recursively delete CloudFormation stacks and their dependants";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forest-fire";
        broken = true;
      }) {};
 
@@ -98846,6 +100153,7 @@ self: {
        description = "Print Forex quotes in Ledger format";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forex2ledger";
        broken = true;
      }) {};
 
@@ -98862,6 +100170,7 @@ self: {
        description = "Library for generating fake placeholder data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forger";
        broken = true;
      }) {};
 
@@ -98911,6 +100220,7 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "formal";
      }) {};
 
   "format" = callPackage
@@ -98954,6 +100264,7 @@ self: {
        description = "A utility for writing the date to dzen2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "format-status";
      }) {};
 
   "formatn" = callPackage
@@ -99035,6 +100346,7 @@ self: {
        description = "A statically typed, functional programming language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "forml";
      }) {};
 
   "formlets" = callPackage
@@ -99179,6 +100491,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parsers and analyses for Fortran standards 66, 77, 90, 95 and 2003 (partial)";
        license = lib.licenses.asl20;
+       mainProgram = "fortran-src";
      }) {};
 
   "fortran-src-extras" = callPackage
@@ -99231,6 +100544,7 @@ self: {
        description = "Fortran memory model and other static analysis tools";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fortran-vars";
      }) {};
 
   "fortytwo" = callPackage
@@ -99324,6 +100638,7 @@ self: {
        description = "Foscam File format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "foscam-sort";
      }) {};
 
   "foundation" = callPackage
@@ -99392,6 +100707,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       mainProgram = "fourmolu";
      }) {};
 
   "fourmolu_0_6_0_0" = callPackage
@@ -99424,6 +100740,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fourmolu";
      }) {};
 
   "fourmolu_0_7_0_1" = callPackage
@@ -99458,6 +100775,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fourmolu";
      }) {};
 
   "fp-ieee" = callPackage
@@ -99512,6 +100830,7 @@ self: {
        description = "Simple interface to the FP Complete IDE API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fpco-api";
      }) {};
 
   "fpe" = callPackage
@@ -99639,6 +100958,7 @@ self: {
        description = "Installed package query tool for Gentoo Linux";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fquery";
        broken = true;
      }) {};
 
@@ -99653,6 +100973,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Draw Newton, Julia and Mandelbrot fractals";
        license = lib.licenses.bsd3;
+       mainProgram = "fractal";
      }) {};
 
   "fractals" = callPackage
@@ -99695,6 +101016,7 @@ self: {
        description = "A 3-D First Person Shooter Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frag";
        broken = true;
      }) {};
 
@@ -99720,6 +101042,7 @@ self: {
        description = "A simple web framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frame-shell";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -99796,42 +101119,61 @@ self: {
        broken = true;
      }) {};
 
+  "frecently" = callPackage
+    ({ mkDerivation, atomic-write, base, bytestring, cereal, containers
+     , directory, filepath, optparse-applicative, process
+     }:
+     mkDerivation {
+       pname = "frecently";
+       version = "1.0";
+       sha256 = "1n3fzsaifawcrdlkl5h184svmjmb6n5v7gczmrhkfdi8lh0wf0a7";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         atomic-write base bytestring cereal containers directory filepath
+         optparse-applicative process
+       ];
+       description = "CLI frecency history";
+       license = lib.licenses.bsd3;
+       mainProgram = "frecently";
+     }) {};
+
   "freckle-app" = callPackage
-    ({ mkDerivation, aeson, ansi-terminal, base, bugsnag, bytestring
-     , case-insensitive, conduit, containers, data-default, datadog
-     , directory, doctest, ekg-core, errors, exceptions, fast-logger
-     , filepath, Glob, hashable, hspec, hspec-core
-     , hspec-expectations-lifted, hspec-junit-formatter, http-client
-     , http-conduit, http-link-header, http-types, immortal, iproute
-     , lens, lens-aeson, load-env, memcache, monad-control, monad-logger
-     , MonadRandom, mtl, network, network-uri, persistent
-     , persistent-postgresql, postgresql-simple, primitive, process
-     , resource-pool, retry, rio, safe, scientist, semigroupoids
-     , template-haskell, temporary, text, time, transformers
-     , transformers-base, unliftio, unliftio-core, unordered-containers
-     , vector, wai, wai-extra, yaml, yesod, yesod-core
+    ({ mkDerivation, aeson, base, Blammo, bugsnag, bytestring
+     , case-insensitive, conduit, containers, datadog, directory, dlist
+     , doctest, ekg-core, envparse, errors, exceptions, filepath, Glob
+     , hashable, hspec, hspec-core, hspec-expectations-lifted
+     , hspec-junit-formatter, http-client, http-conduit
+     , http-link-header, http-types, immortal, lens, lens-aeson
+     , load-env, memcache, monad-control, monad-logger, MonadRandom, mtl
+     , network-uri, persistent, persistent-postgresql, postgresql-simple
+     , primitive, process, resource-pool, retry, safe, scientist
+     , semigroupoids, template-haskell, temporary, text, time
+     , transformers, transformers-base, typed-process, unliftio
+     , unliftio-core, unordered-containers, vector, wai, wai-extra, yaml
+     , yesod-core
      }:
      mkDerivation {
        pname = "freckle-app";
-       version = "1.0.4.0";
-       sha256 = "0snlgizlbi7izqv66izcf2s3ns5yj8h75jmh1f0ialkppzz1bh07";
+       version = "1.2.0.2";
+       sha256 = "0wwzyg695h63azfdxd2i0clvjwkj4shj0rgrlvr6c830yn94i8q5";
        libraryHaskellDepends = [
-         aeson ansi-terminal base bugsnag bytestring case-insensitive
-         conduit containers data-default datadog doctest ekg-core errors
-         exceptions fast-logger filepath Glob hashable hspec hspec-core
+         aeson base Blammo bugsnag bytestring case-insensitive conduit
+         containers datadog dlist doctest ekg-core envparse errors
+         exceptions filepath Glob hashable hspec hspec-core
          hspec-expectations-lifted hspec-junit-formatter http-client
-         http-conduit http-link-header http-types immortal iproute lens
-         load-env memcache monad-control monad-logger MonadRandom mtl
-         network network-uri persistent persistent-postgresql
-         postgresql-simple primitive process resource-pool retry rio safe
-         scientist semigroupoids template-haskell text time transformers
-         transformers-base unliftio unordered-containers vector wai
-         wai-extra yaml yesod yesod-core
+         http-conduit http-link-header http-types immortal lens load-env
+         memcache monad-control monad-logger MonadRandom mtl network-uri
+         persistent persistent-postgresql postgresql-simple primitive
+         resource-pool retry safe scientist semigroupoids template-haskell
+         text time transformers transformers-base typed-process unliftio
+         unliftio-core unordered-containers vector wai wai-extra yaml
+         yesod-core
        ];
        testHaskellDepends = [
          aeson base bytestring directory errors hspec http-types lens
-         lens-aeson memcache monad-logger mtl postgresql-simple process
-         temporary text time unliftio-core wai wai-extra
+         lens-aeson memcache mtl postgresql-simple process temporary text
+         time wai wai-extra
        ];
        description = "Haskell application toolkit used at Freckle";
        license = lib.licenses.mit;
@@ -99950,6 +101292,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "An extensible effects library";
        license = lib.licenses.bsd3;
+       mainProgram = "free-er-examples";
      }) {};
 
   "free-functors" = callPackage
@@ -100060,6 +101403,7 @@ self: {
        description = "Automatically Generating Counterexamples to Naive Free Theorems";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "counterexamples.cgi";
      }) {};
 
   "free-theorems-seq" = callPackage
@@ -100097,6 +101441,7 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "free-theorems-seq-webui.cgi";
      }) {};
 
   "free-theorems-webui" = callPackage
@@ -100133,6 +101478,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -100150,6 +101496,7 @@ self: {
        description = "Spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -100184,6 +101531,7 @@ self: {
        testHaskellDepends = [ base containers mtl tasty tasty-hunit ];
        description = "van Laarhoven encoded Free Monad with Extensible Effects";
        license = lib.licenses.bsd3;
+       mainProgram = "examples";
      }) {};
 
   "freekick2" = callPackage
@@ -100240,9 +101588,7 @@ self: {
        libraryPkgconfigDepends = [ libfreenect ];
        description = "Interface to the Kinect device";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) freenect; freenect_sync = null; 
          libfreenect = null;};
 
@@ -100264,6 +101610,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion free mtl ];
        description = "Implementation of the Freer Monad";
        license = lib.licenses.bsd3;
+       mainProgram = "freer-examples";
      }) {};
 
   "freer-converse" = callPackage
@@ -100302,6 +101649,7 @@ self: {
        description = "Implementation of effect system for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "freer-examples";
        broken = true;
      }) {};
 
@@ -100339,6 +101687,7 @@ self: {
        ];
        description = "A friendly effect system for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "freer-simple-examples";
      }) {};
 
   "freer-simple-catching" = callPackage
@@ -100435,6 +101784,7 @@ self: {
        description = "A Haskell syntax extension for generalised sections";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "freesect";
        broken = true;
      }) {};
 
@@ -100660,6 +102010,8 @@ self: {
        pname = "friendly";
        version = "0.1.0.3";
        sha256 = "1djmj4nmn4g36iab0z7npgc34vvfspvafr5a4bblnv41glx1wpc1";
+       revision = "1";
+       editedCabalFile = "0phh2lim39ldrrp9qp41mmmjgzxjmv9ijxc0lhar1lbznn56hni5";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -100667,6 +102019,7 @@ self: {
        ];
        description = "Attempt to pretty-print any input";
        license = lib.licenses.bsd3;
+       mainProgram = "friendly";
      }) {};
 
   "friendly-time" = callPackage
@@ -100720,6 +102073,7 @@ self: {
        executableHaskellDepends = [ base bytestring process-extras text ];
        description = "Simple adapter for transformation of HTML to other formats";
        license = lib.licenses.mit;
+       mainProgram = "fromhtml";
      }) {};
 
   "front" = callPackage
@@ -100770,6 +102124,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Advanced rotation of backups and other things";
        license = lib.licenses.publicDomain;
+       mainProgram = "frotate";
      }) {};
 
   "frown" = callPackage
@@ -100784,6 +102139,7 @@ self: {
        description = "LALR(k) parser generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frown";
        broken = true;
      }) {};
 
@@ -100876,6 +102232,7 @@ self: {
        description = "Program terminal applications with vty and frpnow!";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "frpnow-vty-demo";
      }) {};
 
   "frquotes" = callPackage
@@ -100890,6 +102247,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Lexical extension for Quasi-Quotations using French-Quotes";
        license = lib.licenses.bsd3;
+       mainProgram = "frquotes";
      }) {};
 
   "fs-events" = callPackage
@@ -101006,6 +102364,7 @@ self: {
        description = "Finite state transducers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fststudio";
        broken = true;
      }) {};
 
@@ -101040,6 +102399,7 @@ self: {
        description = "Wait and observe events on the filesystem for a path, with a timeout";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fswait";
        broken = true;
      }) {};
 
@@ -101062,6 +102422,7 @@ self: {
        description = "File System watching tool with cli and slave functionalities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfswatch";
        broken = true;
      }) {};
 
@@ -101081,6 +102442,7 @@ self: {
        ];
        description = "Watch a file/directory and run a command when it's modified";
        license = lib.licenses.bsd3;
+       mainProgram = "fswatcher";
      }) {};
 
   "ft-generator" = callPackage
@@ -101095,6 +102457,7 @@ self: {
        description = "implementation accompanying a WFLP'19 paper";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ft-generator";
        broken = true;
      }) {};
 
@@ -101224,6 +102587,7 @@ self: {
        description = "Shell interface to the FreeTheorems library";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ftshell";
      }) {};
 
   "fudgets" = callPackage
@@ -101306,6 +102670,7 @@ self: {
        ];
        description = "Simple sentence segmenter";
        license = lib.licenses.bsd3;
+       mainProgram = "fullstop";
      }) {};
 
   "funbot" = callPackage
@@ -101335,6 +102700,7 @@ self: {
        description = "IRC bot for fun, learning, creativity and collaboration";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funbot";
      }) {};
 
   "funbot-client" = callPackage
@@ -101386,6 +102752,7 @@ self: {
        description = "Git hook which sends events to FunBot";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funbot-client-post-receive";
      }) {};
 
   "funcmp" = callPackage
@@ -101398,7 +102765,7 @@ self: {
        libraryHaskellDepends = [ base filepath pretty process ];
        description = "Functional MetaPost is a Haskell frontend to the MetaPost language";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "funcons-intgen" = callPackage
@@ -101419,6 +102786,7 @@ self: {
        description = "Generate Funcons interpreters from CBS description files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cbsc";
        broken = true;
      }) {iml-tools = null;};
 
@@ -101438,6 +102806,7 @@ self: {
        description = "call-by-value lambda-calculus with meta-programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-cbv";
      }) {};
 
   "funcons-simple" = callPackage
@@ -101454,6 +102823,7 @@ self: {
        description = "A modular interpreter for executing SIMPLE funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runfct-SIMPLE";
      }) {};
 
   "funcons-tools" = callPackage
@@ -101481,6 +102851,7 @@ self: {
        description = "A modular interpreter for executing funcons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funcons-repl";
      }) {};
 
   "funcons-values" = callPackage
@@ -101770,6 +103141,7 @@ self: {
        description = "Workflows with arrows";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ffexecutord";
      }) {};
 
   "funflow-nix" = callPackage
@@ -101826,6 +103198,7 @@ self: {
        description = "A unioning file-system using HFuse";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funion";
      }) {};
 
   "funnyprint" = callPackage
@@ -101877,6 +103250,7 @@ self: {
        description = "A modern DPLL-style SAT solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "funsat";
      }) {};
 
   "funspection" = callPackage
@@ -101898,8 +103272,8 @@ self: {
      }:
      mkDerivation {
        pname = "fused-effects";
-       version = "1.1.1.2";
-       sha256 = "1icm2mk4xbijahn7srv5dhnrlgx7fx5m0si75ixj1g1s16s2v8sf";
+       version = "1.1.1.3";
+       sha256 = "046d6r1sbcqvinla14hhfb6f2ynryz5ixqzf4q2fjd3g0c4pfm88";
        libraryHaskellDepends = [ base transformers ];
        testHaskellDepends = [
          base containers hedgehog hedgehog-fn inspection-testing
@@ -102135,6 +103509,7 @@ self: {
        ];
        description = "An optimising compiler for a functional, array-oriented language";
        license = lib.licenses.isc;
+       mainProgram = "futhark";
      }) {};
 
   "futhark-data" = callPackage
@@ -102205,6 +103580,7 @@ self: {
        description = "Generate Haskell wrappers for Futhark libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "futhask";
        broken = true;
      }) {};
 
@@ -102220,6 +103596,7 @@ self: {
        description = "Simple IP-over-UDP tunnel using TUNTAP";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "futun";
        broken = true;
      }) {};
 
@@ -102395,6 +103772,7 @@ self: {
        description = "Fuzzy text matching";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "bench";
        broken = true;
      }) {};
 
@@ -102431,9 +103809,8 @@ self: {
        ];
        description = "A 'ten past six' style clock";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "fuzzytime";
      }) {};
 
   "fvars" = callPackage
@@ -102537,6 +103914,7 @@ self: {
        description = "Generate Gentoo ebuilds from NodeJS/npm packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "g-npm";
        broken = true;
      }) {};
 
@@ -102614,6 +103992,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Theorem prover for intuitionistic propositional logic using G4ip";
        license = lib.licenses.mit;
+       mainProgram = "g4ip-prover";
      }) {};
 
   "gact" = callPackage
@@ -102632,6 +104011,7 @@ self: {
        description = "General Alignment Clustering Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gact";
      }) {};
 
   "galois-fft" = callPackage
@@ -102702,6 +104082,7 @@ self: {
        testHaskellDepends = [ array base hspec ];
        description = "Conway's Game of Life";
        license = lib.licenses.mit;
+       mainProgram = "game-of-life";
      }) {};
 
   "game-probability" = callPackage
@@ -102740,6 +104121,7 @@ self: {
        description = "Game clock that shows two analog clock faces";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gameclock";
        broken = true;
      }) {};
 
@@ -102772,6 +104154,7 @@ self: {
        description = "Tool for generating TOTP MFA tokens";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gamgee";
        broken = true;
      }) {};
 
@@ -103068,7 +104451,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "GCode processor";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "gcodehs";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "gconf" = callPackage
@@ -103141,6 +104525,7 @@ self: {
        description = "API Wrapping for Coinbase's GDAX exchange";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandbox";
      }) {};
 
   "gdelt" = callPackage
@@ -103220,6 +104605,7 @@ self: {
        ];
        description = "recursive atomic build system";
        license = lib.licenses.gpl3Only;
+       mainProgram = "gdo";
      }) {};
 
   "gdp" = callPackage
@@ -103234,6 +104620,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Reason about invariants and preconditions with ghosts of departed proofs";
        license = lib.licenses.bsd3;
+       mainProgram = "gdp";
      }) {};
 
   "gearbox" = callPackage
@@ -103247,6 +104634,7 @@ self: {
        executableHaskellDepends = [ base GLUT OpenGLRaw Vec ];
        description = "zooming rotating fractal gears graphics demo";
        license = lib.licenses.gpl3Only;
+       mainProgram = "gearbox";
      }) {};
 
   "gedcom" = callPackage
@@ -103310,6 +104698,7 @@ self: {
        description = "Geek blog engine server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geek";
      }) {};
 
   "gegl" = callPackage
@@ -103351,6 +104740,7 @@ self: {
        description = "A graphics description language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -103404,6 +104794,7 @@ self: {
        description = "OpenGL rendering routines for the gelatin-picture graphics EDSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gelatin-gl-example";
      }) {};
 
   "gelatin-sdl2" = callPackage
@@ -103422,6 +104813,7 @@ self: {
        description = "An SDL2 backend for the gelatin renderer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gelatin-sdl2-example";
      }) {};
 
   "gelatin-shaders" = callPackage
@@ -103483,6 +104875,7 @@ self: {
        description = "Generate CSV Exports of Your Gemini Trades, Transfers, & Earn Transactions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemini-exports";
        broken = true;
      }) {};
 
@@ -103538,6 +104931,7 @@ self: {
        description = "A barebones textboard for the Gemini protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gemini-textboard";
      }) {};
 
   "gemstone" = callPackage
@@ -103592,6 +104986,7 @@ self: {
        description = "Create wordlist-based passwords easily";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gen-passwd";
        broken = true;
      }) {};
 
@@ -103627,6 +105022,7 @@ self: {
        description = "Identify a persons gender by their first name";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gender";
        broken = true;
      }) {};
 
@@ -103747,10 +105143,8 @@ self: {
      }:
      mkDerivation {
        pname = "generic-aeson";
-       version = "0.2.0.13";
-       sha256 = "0w5xp1rfg3r90ja1f0s48i4x7yyynfv52p6b9ncsdqyrq3y9qvl0";
-       revision = "1";
-       editedCabalFile = "07kg0bc2jvfww9a9n5rzffsi23k2i3py7h7dq7qcj7817kkh0ig0";
+       version = "0.2.0.14";
+       sha256 = "0ssras2db9fqgyfhhw2pk827xf4dd4g9s9vwj8g85vaqxyvzyd8x";
        libraryHaskellDepends = [
          aeson attoparsec base generic-deriving mtl tagged text
          unordered-containers vector
@@ -104088,7 +105482,7 @@ self: {
        ];
        description = "Generically derive traversals, lenses and prisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "generic-optics-lite" = callPackage
@@ -104261,6 +105655,17 @@ self: {
        broken = true;
      }) {};
 
+  "generically" = callPackage
+    ({ mkDerivation, base }:
+     mkDerivation {
+       pname = "generically";
+       version = "0.1";
+       sha256 = "0w9b7yynq0gk44jvdp1c8760lqpa1c38v5r1qav282yhw602idym";
+       libraryHaskellDepends = [ base ];
+       description = "Generically newtype to use with DerivingVia";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "generics-eot" = callPackage
     ({ mkDerivation, base, directory, doctest, filepath, hspec
      , interpolate, markdown-unlit, mockery, QuickCheck, shake, silently
@@ -104417,6 +105822,7 @@ self: {
        description = "A Genetic Algorithm library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hellogenetics";
        broken = true;
      }) {};
 
@@ -104442,6 +105848,7 @@ self: {
        description = "GenI graphical user interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni-gui";
      }) {};
 
   "geni-util" = callPackage
@@ -104466,6 +105873,7 @@ self: {
        description = "Companion tools for use with the GenI surface realiser";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geni-util";
      }) {};
 
   "geniconvert" = callPackage
@@ -104486,6 +105894,7 @@ self: {
        description = "Conversion utility for the GenI generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geniconvert";
      }) {};
 
   "genifunctors" = callPackage
@@ -104546,6 +105955,7 @@ self: {
        description = "Simple HTTP server for GenI results";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "geniserver";
      }) {};
 
   "genprog" = callPackage
@@ -104612,7 +106022,6 @@ self: {
        ];
        description = "GenValidity support for aeson";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-appendful" = callPackage
@@ -104638,7 +106047,6 @@ self: {
          appendful base criterion genvalidity-criterion
        ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-bytestring" = callPackage
@@ -104769,7 +106177,6 @@ self: {
        ];
        description = "Standard spec's for aeson-related instances";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-hspec-binary" = callPackage
@@ -104921,7 +106328,6 @@ self: {
          base criterion genvalidity-criterion mergeless
        ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-path" = callPackage
@@ -105019,7 +106425,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Standard properties for functions on `Validity` types for the sydtest framework";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-sydtest-aeson" = callPackage
@@ -105042,7 +106447,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Standard spec's for aeson-related instances in sydtest";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-sydtest-hashable" = callPackage
@@ -105064,7 +106468,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Standard spec's for Hashable instances for sydtest";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-sydtest-lens" = callPackage
@@ -105084,7 +106487,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Standard spec's for lens for sydtest";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-sydtest-persistent" = callPackage
@@ -105107,7 +106509,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Standard spec's for persistent-related instances for sydtest";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-text" = callPackage
@@ -105175,7 +106576,6 @@ self: {
        ];
        description = "Generators for Phantom-Typed version of UUID";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "genvalidity-unordered-containers" = callPackage
@@ -105469,6 +106869,7 @@ self: {
        ];
        description = "Geometry and matrix manipulation";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "geos" = callPackage
@@ -105530,6 +106931,7 @@ self: {
        description = "Fetch from emusic using .emx files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "getemx";
      }) {};
 
   "getflag" = callPackage
@@ -105608,6 +107010,7 @@ self: {
        description = "Grammatical Framework";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gf";
        broken = true;
      }) {};
 
@@ -105624,6 +107027,7 @@ self: {
        description = "A type checker and runtime system of rCOS/g (impl. of ggts-FCS).";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "TC";
        broken = true;
      }) {};
 
@@ -105643,6 +107047,7 @@ self: {
        description = "Github Standard Labeler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gh-labeler";
        broken = true;
      }) {};
 
@@ -105663,6 +107068,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Script helpers for interacting with GitHub";
        license = lib.licenses.bsd3;
+       mainProgram = "gh-pocket-knife";
      }) {};
 
   "ghc_9_2_2" = callPackage
@@ -105866,6 +107272,7 @@ self: {
        ];
        description = "Display GHC's core and assembly output in a pager";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-core";
      }) {};
 
   "ghc-core-html" = callPackage
@@ -105884,6 +107291,7 @@ self: {
        ];
        description = "Core to HTML display";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-core-html";
      }) {};
 
   "ghc-core-smallstep" = callPackage
@@ -105904,8 +107312,8 @@ self: {
     ({ mkDerivation, base, ghc, ghc-tcplugins-extra }:
      mkDerivation {
        pname = "ghc-corroborate";
-       version = "0.1.0";
-       sha256 = "0p7vnn0hyyk5d1bm10hxckzh8dga9b39n4cmcbfdb6h5schgcjdy";
+       version = "1.0.0";
+       sha256 = "0ai1xv3x8ls7cmgmd3bs7bnd5r3m10sys25gwwwaiimdgfhs3fd3";
        libraryHaskellDepends = [ base ghc ghc-tcplugins-extra ];
        description = "An flatter API for GHC typechecker plugins";
        license = lib.licenses.mpl20;
@@ -105944,6 +107352,7 @@ self: {
        description = "A simple TUI using ghc-debug";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-heap-view";
      }) {};
 
   "ghc-debug-client" = callPackage
@@ -106067,6 +107476,7 @@ self: {
        description = "Dump GHC's parsed, renamed, and type checked ASTs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-dump-tree";
        broken = true;
      }) {};
 
@@ -106093,6 +107503,7 @@ self: {
        description = "Handy tools for working with ghc-dump dumps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-dump";
      }) {};
 
   "ghc-dup" = callPackage
@@ -106125,6 +107536,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Library and tool for parsing .eventlog files from GHC";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-events";
      }) {};
 
   "ghc-events-analyze" = callPackage
@@ -106149,6 +107561,7 @@ self: {
        description = "Analyze and visualize event logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-events-analyze";
        broken = true;
      }) {};
 
@@ -106174,6 +107587,7 @@ self: {
        description = "Library and tool for parsing .eventlog files from parallel GHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-events";
        broken = true;
      }) {};
 
@@ -106240,6 +107654,7 @@ self: {
        executableHaskellDepends = [ base directory filepath process ];
        description = "Graph performance of Haskell programs with different GC flags";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-gc-tune";
      }) {};
 
   "ghc-generic-instances" = callPackage
@@ -106555,14 +107970,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "ghc-lib-parser-ex_9_2_0_4" = callPackage
+  "ghc-lib-parser-ex_9_2_1_0" = callPackage
     ({ mkDerivation, base, bytestring, containers, directory, extra
      , filepath, ghc-lib-parser, tasty, tasty-hunit, uniplate
      }:
      mkDerivation {
        pname = "ghc-lib-parser-ex";
-       version = "9.2.0.4";
-       sha256 = "138wkpy7qpdkp07028flab3lwq4b3mns0qcrkfrhclixlz8pi74v";
+       version = "9.2.1.0";
+       sha256 = "19r0f7qan403ji3mzycz75k0p086zliia8n021z68jgy6w31ysm5";
        libraryHaskellDepends = [
          base bytestring containers ghc-lib-parser uniplate
        ];
@@ -106588,6 +108003,7 @@ self: {
        ];
        description = "Accelerated version of ghc --make";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-make";
      }) {};
 
   "ghc-man-completion" = callPackage
@@ -106602,6 +108018,7 @@ self: {
        description = "Generate a bash completion from the GHC manpage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-man-completion";
        broken = true;
      }) {};
 
@@ -106689,6 +108106,7 @@ self: {
        description = "Utilities for extracting GHC options needed to compile a given Haskell target";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcopts";
        broken = true;
      }) {bin-package-db = null;};
 
@@ -106716,6 +108134,7 @@ self: {
        description = "A parallel wrapper for 'ghc --make'";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-parmake";
        broken = true;
      }) {};
 
@@ -106761,6 +108180,7 @@ self: {
        description = "Simple utility to fix BROKEN package dependencies for cabal-install";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-pkg-autofix";
        broken = true;
      }) {};
 
@@ -106781,14 +108201,14 @@ self: {
      }) {};
 
   "ghc-plugs-out" = callPackage
-    ({ mkDerivation, base, ghc, th-printf }:
+    ({ mkDerivation, base, ghc, ghc-corroborate, th-printf }:
      mkDerivation {
        pname = "ghc-plugs-out";
-       version = "1.0.0.0";
-       sha256 = "0a6zqqwpsz38x07qj8jafjhp1pinb9xh1qs5ld56ms329aml2ymw";
+       version = "2.0.0.0";
+       sha256 = "1z2ifkxrdyl7jkqbn8y96w2vvx8hqh3sbflq1fvzqh4n61zm1xfs";
        isLibrary = false;
        isExecutable = false;
-       libraryHaskellDepends = [ base ghc th-printf ];
+       libraryHaskellDepends = [ base ghc ghc-corroborate th-printf ];
        testHaskellDepends = [ base ];
        doHaddock = false;
        description = "Type checker plugins without the type checking";
@@ -106862,6 +108282,7 @@ self: {
        ];
        description = "Turn GHC `-pj` profiling output into FlameGraph format";
        license = lib.licenses.bsd3;
+       mainProgram = "ghc-prof-aeson-flamegraph";
      }) {};
 
   "ghc-prof-flamegraph" = callPackage
@@ -106878,6 +108299,7 @@ self: {
        ];
        description = "Generates flamegraphs from GHC .prof files.";
        license = lib.licenses.mit;
+       mainProgram = "ghc-prof-flamegraph";
      }) {};
 
   "ghc-proofs" = callPackage
@@ -106923,6 +108345,7 @@ self: {
        description = "Simplified GHC API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-test";
      }) {};
 
   "ghc-simple" = callPackage
@@ -107048,6 +108471,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;
      }) {};
 
@@ -107269,6 +108693,7 @@ self: {
        description = "Print minimal export lists";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghc-usage";
        broken = true;
      }) {};
 
@@ -107289,7 +108714,7 @@ self: {
        ];
        description = "Live visualization of data structures in GHCi";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dalpd ];
+       maintainers = [ lib.maintainers.dalpd ];
      }) {};
 
   "ghcflags" = callPackage
@@ -107347,6 +108772,7 @@ self: {
        ];
        description = "ghci-dap is a GHCi having DAP interface";
        license = lib.licenses.bsd3;
+       mainProgram = "ghci-dap";
      }) {};
 
   "ghci-diagrams" = callPackage
@@ -107379,6 +108805,7 @@ self: {
        description = "An implementation of ghci using the Haskeline line-input library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghci-haskeline";
        broken = true;
      }) {};
 
@@ -107441,6 +108868,7 @@ self: {
        description = "Next generation GHCi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghci-ng";
        broken = true;
      }) {};
 
@@ -107496,7 +108924,8 @@ self: {
        ];
        description = "GHCi based bare bones IDE";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "ghcid";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "ghcide" = callPackage
@@ -107570,7 +108999,7 @@ self: {
        benchmarkToolDepends = [ hp2pretty implicit-hie ];
        description = "The core of an IDE";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "ghcjs-ajax" = callPackage
@@ -107660,10 +109089,7 @@ self: {
        ];
        description = "GHCJS DOM Hello World, an example package";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-       hydraPlatforms = lib.platforms.none;
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "ghcjs-dom-jsaddle" = callPackage
@@ -107839,6 +109265,7 @@ self: {
        description = "Interactive Haskell interpreter in a browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghclive";
        broken = true;
      }) {};
 
@@ -107859,6 +109286,7 @@ self: {
        description = "GHC .prof files viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcprofview";
      }) {};
 
   "ghcup" = callPackage
@@ -107910,6 +109338,7 @@ self: {
        description = "ghc toolchain installer";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ghcup";
        broken = true;
      }) {};
 
@@ -107924,6 +109353,7 @@ self: {
        executableHaskellDepends = [ base zenc ];
        description = "Decode Z-encoded strings from GHC";
        license = lib.licenses.bsd3;
+       mainProgram = "ghczdecode";
      }) {};
 
   "ghost-buster" = callPackage
@@ -107960,6 +109390,7 @@ self: {
        description = "Trivial routines for inspecting git repositories";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ght";
      }) {};
 
   "gi-adwaita" = callPackage
@@ -107981,9 +109412,7 @@ self: {
        libraryPkgconfigDepends = [ libadwaita ];
        description = "Adwaita bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) libadwaita;};
@@ -108165,9 +109594,7 @@ self: {
        libraryPkgconfigDepends = [ libdbusmenu ];
        description = "Dbusmenu bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libdbusmenu;};
 
   "gi-dbusmenugtk3" = callPackage
@@ -108192,9 +109619,7 @@ self: {
        libraryPkgconfigDepends = [ gtk3 libdbusmenu-gtk3 ];
        description = "DbusmenuGtk bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk3; inherit (pkgs) libdbusmenu-gtk3;};
 
   "gi-gdk" = callPackage
@@ -108331,9 +109756,7 @@ self: {
        libraryPkgconfigDepends = [ libgit2-glib ];
        description = "libgit2-glib bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libgit2-glib;};
 
   "gi-gio" = callPackage
@@ -108775,9 +110198,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "GtkosxApplication bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-       ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk3;};
 
   "gi-gtksheet" = callPackage
@@ -108894,9 +110315,7 @@ self: {
        libraryPkgconfigDepends = [ ibus ];
        description = "IBus bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ibus;};
 
   "gi-javascriptcore" = callPackage
@@ -108916,9 +110335,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-json" = callPackage
@@ -108982,9 +110399,7 @@ self: {
        libraryPkgconfigDepends = [ ostree ];
        description = "OSTree bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) ostree;};
 
   "gi-pango" = callPackage
@@ -109168,9 +110583,7 @@ self: {
        libraryPkgconfigDepends = [ vte_291 ];
        description = "Vte bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {vte_291 = pkgs.vte;};
 
   "gi-webkit" = callPackage
@@ -109218,9 +110631,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2 bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-webkit2webextension" = callPackage
@@ -109245,9 +110656,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "WebKit2-WebExtension bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "gi-wnck" = callPackage
@@ -109271,9 +110680,7 @@ self: {
        libraryPkgconfigDepends = [ libwnck ];
        description = "Wnck bindings";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libwnck;};
 
   "gi-xlib" = callPackage
@@ -109313,6 +110720,7 @@ self: {
        description = "Fuzzy finder for cabal executables";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "giak";
        broken = true;
      }) {};
 
@@ -109327,6 +110735,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A compiler for operating on serialized trees";
        license = lib.licenses.bsd3;
+       mainProgram = "gibbon";
      }) {};
 
   "gimlh" = callPackage
@@ -109371,6 +110780,7 @@ self: {
        description = "An implementation of the Jinja2 template language in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ginger";
        broken = true;
      }) {};
 
@@ -109419,6 +110829,7 @@ self: {
        description = "Ginsu Gale Client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ginsu";
        broken = true;
      }) {inherit (pkgs) openssl;};
 
@@ -109461,6 +110872,7 @@ self: {
        description = "Git Performance Dashboard";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gipeda";
      }) {};
 
   "giphy-api" = callPackage
@@ -109506,6 +110918,7 @@ self: {
        description = "A reliable command-line client for gist.github.com";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gist";
        broken = true;
      }) {};
 
@@ -109552,6 +110965,7 @@ self: {
        description = "Determine which Git repositories need actions to be taken";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-all";
        broken = true;
      }) {};
 
@@ -109625,7 +111039,8 @@ self: {
        enableSharedExecutables = false;
        description = "manage files with git, without checking their contents into git";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "git-annex";
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) bup; inherit (pkgs) curl; inherit (pkgs) git; 
          inherit (pkgs) gnupg; inherit (pkgs) lsof; inherit (pkgs) openssh; 
          inherit (pkgs) perl; inherit (pkgs) rsync; inherit (pkgs) wget; 
@@ -109649,6 +111064,7 @@ self: {
        ];
        description = "git checkout command-line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "git-brunch";
      }) {};
 
   "git-checklist" = callPackage
@@ -109668,6 +111084,7 @@ self: {
        description = "Maintain per-branch checklists in Git";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-checklist";
        broken = true;
      }) {};
 
@@ -109711,6 +111128,7 @@ self: {
        description = "Haskell Git Helper Tool";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cuk";
        broken = true;
      }) {};
 
@@ -109772,6 +111190,7 @@ self: {
        description = "Custom git command for formatting code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-fmt";
      }) {};
 
   "git-freq" = callPackage
@@ -109794,6 +111213,7 @@ self: {
        ];
        description = "A Git subcommand to show total addition, deletion per file";
        license = lib.licenses.bsd3;
+       mainProgram = "git-freq";
      }) {};
 
   "git-gpush" = callPackage
@@ -109815,6 +111235,7 @@ self: {
        description = "More intelligent push-to-GitHub utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-gpush";
      }) {};
 
   "git-jump" = callPackage
@@ -109829,6 +111250,7 @@ self: {
        description = "Move a git branch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-jump";
        broken = true;
      }) {};
 
@@ -109864,6 +111286,7 @@ self: {
        ];
        description = "Tool to help resolving git conflicts";
        license = lib.licenses.gpl2Only;
+       mainProgram = "git-mediate";
      }) {};
 
   "git-monitor" = callPackage
@@ -109888,6 +111311,7 @@ self: {
        description = "Passively snapshots working tree changes efficiently";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-monitor";
      }) {};
 
   "git-object" = callPackage
@@ -109937,6 +111361,7 @@ self: {
        description = "Git remote helper to store git objects on IPFS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-remote-ipfs";
      }) {};
 
   "git-repair" = callPackage
@@ -109966,6 +111391,7 @@ self: {
        description = "repairs a damaged git repository";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-repair";
        broken = true;
      }) {};
 
@@ -109987,6 +111413,7 @@ self: {
        description = "A sanity checker for your git history";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "git-sanity";
      }) {};
 
   "git-vogue" = callPackage
@@ -110037,6 +111464,7 @@ self: {
        ];
        description = "More efficient replacement to the great git-radar";
        license = lib.licenses.bsd3;
+       mainProgram = "gitHUD";
      }) {};
 
   "gitcache" = callPackage
@@ -110054,6 +111482,7 @@ self: {
        ];
        description = "Simple git utility to use and manage clone cache";
        license = lib.licenses.bsd3;
+       mainProgram = "gitcache";
      }) {};
 
   "gitdo" = callPackage
@@ -110074,6 +111503,7 @@ self: {
        description = "Create Github issues out of TODO comments in code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gitdo";
      }) {};
 
   "githash" = callPackage
@@ -110141,8 +111571,8 @@ self: {
        pname = "github";
        version = "0.28";
        sha256 = "142l0zff852606hkpvkhvagp6h3ziq2z2x7x2pa77q5ymyq48089";
-       revision = "3";
-       editedCabalFile = "03cn567jgkgd8a78ymm9zws8fp8881kmpj6jkb7cj3kbq05062jv";
+       revision = "4";
+       editedCabalFile = "063plc1v50fww3kar571czk2brqdb82zm33jsfnbcfal5i2w1v73";
        libraryHaskellDepends = [
          aeson base base-compat base16-bytestring binary binary-instances
          bytestring containers cryptohash-sha1 deepseq deepseq-generics
@@ -110242,8 +111672,8 @@ self: {
      }:
      mkDerivation {
        pname = "github-release";
-       version = "2.0.0.0";
-       sha256 = "03bvbqpaa3xp9rnmg8a95qs9j7chng1xsk53f30520m1cfyyikgq";
+       version = "2.0.0.1";
+       sha256 = "1ic4qg7gbmf28hhzzcg8907grwdai9vxj41gz7f3wzjyph8q574g";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -110256,6 +111686,7 @@ self: {
        ];
        description = "Upload files to GitHub releases";
        license = lib.licenses.mit;
+       mainProgram = "github-release";
      }) {};
 
   "github-rest" = callPackage
@@ -110268,6 +111699,8 @@ self: {
        pname = "github-rest";
        version = "1.1.2";
        sha256 = "139ysq1m1ndy6z1znfd1np25ynxankkfm6xmwabhdr7yiqzi2v1b";
+       revision = "1";
+       editedCabalFile = "09vinl6l5jy8bz504bhw3g2baj9fc0fym2vnh8q76xzmz2s0b686";
        libraryHaskellDepends = [
          aeson base bytestring http-client http-client-tls http-types jwt
          mtl scientific text time transformers unliftio unliftio-core
@@ -110453,6 +111886,7 @@ self: {
        description = "Apply GitHub .gitignore templates to already existing repositories.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gitignore";
        broken = true;
      }) {};
 
@@ -110490,7 +111924,7 @@ self: {
        ];
        description = "Wiki using happstack, git or darcs, and pandoc";
        license = "GPL";
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "gitlab-api" = callPackage
@@ -110793,6 +112227,7 @@ self: {
        description = "CLI Giphy search tool with previews in iTerm 2";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "givegif";
      }) {};
 
   "gjk" = callPackage
@@ -110929,6 +112364,7 @@ self: {
        ];
        description = "A simply typed lambda calculus interpreter, written with GADTs";
        license = lib.licenses.bsd3;
+       mainProgram = "glam";
      }) {};
 
   "glapp" = callPackage
@@ -110946,6 +112382,7 @@ self: {
        description = "An OpenGL micro framework";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -110960,7 +112397,7 @@ self: {
        libraryHaskellDepends = [ base vector ];
        description = "Graphical Lasso algorithm";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "glaze" = callPackage
@@ -111057,6 +112494,7 @@ self: {
        description = "Examples of using glazier-react";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "glazier-react-todo";
      }) {};
 
   "glazier-react-widget" = callPackage
@@ -111102,6 +112540,7 @@ self: {
        description = "Tiny cli to fetch PR info from gitlab";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gli";
        broken = true;
      }) {};
 
@@ -111166,6 +112605,7 @@ self: {
        executableHaskellDepends = [ base ppm split ];
        description = "A simple ray tracer in an early stage of development";
        license = lib.licenses.bsd3;
+       mainProgram = "glintcollider";
      }) {};
 
   "glirc" = callPackage
@@ -111195,7 +112635,8 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Console IRC client";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       mainProgram = "glirc";
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "gll" = callPackage
@@ -111319,6 +112760,7 @@ self: {
        description = "ray tracer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Glome";
      }) {};
 
   "gloss" = callPackage
@@ -111443,6 +112885,7 @@ self: {
        description = "Export Gloss pictures to png, bmp, tga, tiff, gif and juicy-pixels-image";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gloss-export-exe";
        broken = true;
      }) {};
 
@@ -111478,6 +112921,7 @@ self: {
        ];
        description = "Load any image supported by Juicy.Pixels in your gloss application";
        license = lib.licenses.bsd3;
+       mainProgram = "gloss-juicy-viewer";
      }) {};
 
   "gloss-raster" = callPackage
@@ -111588,6 +113032,7 @@ self: {
        ];
        description = "Comprehensive GLPK linear programming bindings";
        license = lib.licenses.bsd3;
+       mainProgram = "glpk-hs-example";
      }) {inherit (pkgs) glpk;};
 
   "glsl" = callPackage
@@ -111614,6 +113059,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Parser and optimizer for a small subset of GLSL";
        license = lib.licenses.bsd3;
+       mainProgram = "optshader";
      }) {};
 
   "gltf-codec" = callPackage
@@ -111664,6 +113110,7 @@ self: {
        description = "Make better services";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "glue-example";
        broken = true;
      }) {};
 
@@ -111757,6 +113204,7 @@ self: {
        ];
        description = "Make better services and clients";
        license = lib.licenses.bsd3;
+       mainProgram = "glue-example";
      }) {};
 
   "gluturtle" = callPackage
@@ -111825,6 +113273,7 @@ self: {
        description = "Mandelbrot Set explorer using GTK";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gmndl";
      }) {};
 
   "gmpint" = callPackage
@@ -111853,6 +113302,7 @@ self: {
        description = "Randomly set a picture as the GNOME desktop background";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gnome-desktop";
      }) {};
 
   "gnome-keyring" = callPackage
@@ -111869,9 +113319,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings for libgnome-keyring";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs.gnome) gnome-keyring; 
          inherit (pkgs) libgnome-keyring;};
 
@@ -112165,6 +113613,7 @@ self: {
        description = "A monadic take on a 2,500-year-old board game - GTK+ UI";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "goatee-gtk";
      }) {};
 
   "gochan" = callPackage
@@ -112215,21 +113664,24 @@ self: {
      }) {};
 
   "godot-megaparsec" = callPackage
-    ({ mkDerivation, base, criterion, lens, megaparsec, text
-     , unordered-containers
+    ({ mkDerivation, base, criterion, generic-lens, lens, megaparsec
+     , mtl, text, unordered-containers
      }:
      mkDerivation {
        pname = "godot-megaparsec";
-       version = "0.2.2.0";
-       sha256 = "0rlbvvanf8y9drnr8f5fszylkchl70ddhlfcib9d03albvw1xllb";
+       version = "0.2.5.1";
+       sha256 = "1k5bil98zc6pw363mb2hmmlsq27zjf7j7xfwa61vg41bxyz88nqz";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
-         base lens megaparsec text unordered-containers
+         base generic-lens lens megaparsec mtl text unordered-containers
        ];
        executableHaskellDepends = [ base criterion megaparsec text ];
-       description = "Megaparsec parser for Godot `tscn` and `gdns` files";
+       description = "Megaparsec parser for Godot `tscn` and `gdextension` files";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "bench";
+       broken = true;
      }) {};
 
   "gofer-prelude" = callPackage
@@ -114514,8 +115966,8 @@ self: {
        pname = "goldplate";
        version = "0.2.0";
        sha256 = "1f2n981676ykrv08fgdj87mj5r4841a18ywvgpc2hgapsgwbgma1";
-       revision = "2";
-       editedCabalFile = "1wnpg7147k48nca58lp3xg8dv38jnj8k2hdbv0312d9ndqpiws8b";
+       revision = "3";
+       editedCabalFile = "0h1ayys29md2nbiqshdrhr8kz06dikiwkb4ikcg3wfzb4k1lpzvl";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -114525,6 +115977,7 @@ self: {
        ];
        description = "A lightweight golden test runner";
        license = lib.licenses.asl20;
+       mainProgram = "goldplate";
      }) {};
 
   "gooey" = callPackage
@@ -114615,6 +116068,7 @@ self: {
        description = "Google HTML5 Slide generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "google-html5-slide";
        broken = true;
      }) {};
 
@@ -114873,7 +116327,8 @@ self: {
        ];
        description = "proxy gopher over http";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "gopher-proxy";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "gopherbot" = callPackage
@@ -114892,6 +116347,7 @@ self: {
        description = "Spidering robot to download files from Gopherspace";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gopherbot";
        broken = true;
      }) {};
 
@@ -115166,6 +116622,7 @@ self: {
        ];
        description = "A command line utility for practicing typing";
        license = lib.licenses.bsd3;
+       mainProgram = "gotta-go-fast";
      }) {};
 
   "gotyno-hs" = callPackage
@@ -115190,6 +116647,7 @@ self: {
        ];
        description = "A type definition compiler supporting multiple output languages";
        license = lib.licenses.bsd2;
+       mainProgram = "gotyno-hs";
      }) {};
 
   "gpah" = callPackage
@@ -115211,6 +116669,7 @@ self: {
        description = "Generic Programming Use in Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gpah";
        broken = true;
      }) {};
 
@@ -115245,6 +116704,7 @@ self: {
        ];
        description = "Haskell GPIO interface, designed specifically for the RaspberryPi";
        license = lib.licenses.bsd3;
+       mainProgram = "gpio";
      }) {};
 
   "gpmf" = callPackage
@@ -115274,6 +116734,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gpmf";
        broken = true;
      }) {};
 
@@ -115328,6 +116789,7 @@ self: {
        description = "GPS to HTML Summary Report";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gps2htmlReport";
      }) {};
 
   "gpx-conduit" = callPackage
@@ -115352,8 +116814,8 @@ self: {
     ({ mkDerivation, base, criterion, hedgehog }:
      mkDerivation {
        pname = "grab";
-       version = "0.0.0.7";
-       sha256 = "14r5asraz28apc7fhyf36ai1i6ndgf29c32ln5nk88s6z1fnlhvk";
+       version = "0.0.0.8";
+       sha256 = "0g3b79q985r6r6dfd97x1fhdj8fh35qnz9b34b78982qg60pl6y6";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hedgehog ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -115365,8 +116827,8 @@ self: {
     ({ mkDerivation, base, containers, grab, hedgehog, text }:
      mkDerivation {
        pname = "grab-form";
-       version = "0.0.0.7";
-       sha256 = "0hqj0b6lv3qs5cs4rhsmk3prd25x8v6m04ilab8jck3c01lfksfm";
+       version = "0.0.0.8";
+       sha256 = "0q1lx6lybariwhnlbg49m683jppn6da5q8h3xmg795m420x1dk5a";
        libraryHaskellDepends = [ base containers grab text ];
        testHaskellDepends = [ base containers grab hedgehog text ];
        description = "Applicative parsers for form parameter lists";
@@ -115428,6 +116890,7 @@ self: {
        ];
        description = "Configure grafana dashboards from Dhall expression";
        license = lib.licenses.asl20;
+       mainProgram = "grafdhall";
      }) {};
 
   "graflog" = callPackage
@@ -115671,6 +117134,7 @@ self: {
        ];
        description = "Functions for generating structured or random FGL graphs";
        license = lib.licenses.asl20;
+       mainProgram = "TestGen";
      }) {};
 
   "graph-matchings" = callPackage
@@ -115719,6 +117183,7 @@ self: {
        description = "Interactive graph rewriting system implementing various well-known combinators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cl";
      }) {};
 
   "graph-rewriting-gl" = callPackage
@@ -115758,6 +117223,7 @@ self: {
        description = "Lambdascope, an optimal evaluator of the lambda calculus, as an interactive graph-rewriting system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdascope";
      }) {};
 
   "graph-rewriting-layout" = callPackage
@@ -115832,6 +117298,7 @@ self: {
        description = "Evaluate first-order applicative term rewrite systems interactively using graph reduction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trs";
      }) {};
 
   "graph-rewriting-ww" = callPackage
@@ -115853,6 +117320,7 @@ self: {
        description = "Evaluator of the lambda-calculus in an interactive graph rewriting system with explicit sharing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ww";
      }) {};
 
   "graph-serialize" = callPackage
@@ -115903,6 +117371,7 @@ self: {
        ];
        description = "Converts a graph-trace log into a DOT file for use with Graphviz";
        license = lib.licenses.mit;
+       mainProgram = "graph-trace-dot";
      }) {};
 
   "graph-trace-viz" = callPackage
@@ -115920,6 +117389,7 @@ self: {
        ];
        description = "Converts a graph-trace log into an HTML document";
        license = lib.licenses.mit;
+       mainProgram = "graph-trace-viz";
      }) {};
 
   "graph-utils" = callPackage
@@ -116073,6 +117543,7 @@ self: {
        description = "Tools for creating graphical UIs, based on wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cvexample";
      }) {};
 
   "graphite" = callPackage
@@ -116111,6 +117582,7 @@ self: {
        ];
        description = "Present the module dependencies of a program as a \"dot\" graph";
        license = lib.licenses.bsd3;
+       mainProgram = "graphmod";
      }) {};
 
   "graphmod-plugin" = callPackage
@@ -116130,6 +117602,7 @@ self: {
        description = "A reimplementation of graphmod as a source plugin";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphmod-plugin";
        broken = true;
      }) {};
 
@@ -116198,8 +117671,8 @@ self: {
        pname = "graphql-client";
        version = "1.1.1";
        sha256 = "1d00ib9c8ps8vv1qgrkjfzrjbgbsdnp1jiz7779bwm76j88vggb4";
-       revision = "4";
-       editedCabalFile = "0aiwn7pwv67nwfgg6ga4lr60i9gq9n402dsdyfw88i66fllhgmkc";
+       revision = "5";
+       editedCabalFile = "0kbpsca7iybc1ra1fm04c8axmbd18czgn1rq93j0ak9979yw79gd";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -116218,6 +117691,7 @@ self: {
        description = "A client for Haskell programs to query a GraphQL API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphql-codegen";
      }) {};
 
   "graphql-spice" = callPackage
@@ -116315,6 +117789,7 @@ self: {
        description = "A simple tool to illustrate dependencies between Haskell types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "graphtype";
      }) {};
 
   "graphula" = callPackage
@@ -116440,6 +117915,7 @@ self: {
        description = "GRASP implementation for the AMMM project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grasp-exe";
        broken = true;
      }) {};
 
@@ -116525,6 +118001,7 @@ self: {
        description = "GreenCard, a foreign function pre-processor for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "greencard";
        broken = true;
      }) {};
 
@@ -116562,6 +118039,7 @@ self: {
        ];
        description = "Simple clipboard manager to be integrated with rofi";
        license = lib.licenses.bsd3;
+       mainProgram = "greenclip";
      }) {inherit (pkgs.xorg) libXScrnSaver; inherit (pkgs.xorg) libXau; 
          xcb = null; xdmcp = null; inherit (pkgs) xlibsWrapper;};
 
@@ -116604,6 +118082,7 @@ self: {
        description = "Graph database client for TinkerPop3 Gremlin Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gremlin-haskell-examples";
        broken = true;
      }) {};
 
@@ -116751,9 +118230,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Game engine for Prototyping on a Grid";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "gridbounds" = callPackage
@@ -116863,6 +118340,7 @@ self: {
        description = "grm grammar converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grm";
        broken = true;
      }) {};
 
@@ -116878,6 +118356,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Pretty printing for well-behaved Show instances";
        license = lib.licenses.bsd3;
+       mainProgram = "groom";
      }) {};
 
   "groot" = callPackage
@@ -116928,6 +118407,7 @@ self: {
        description = "Command line utility to manage AWS ECS resources";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groot";
      }) {};
 
   "gross" = callPackage
@@ -116943,6 +118423,7 @@ self: {
        description = "A spoof on gloss for terminal animation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "groundhog" = callPackage
@@ -117005,6 +118486,7 @@ self: {
        description = "Type-safe datatype-database mapping library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groundhog_inspector";
      }) {};
 
   "groundhog-mysql" = callPackage
@@ -117097,6 +118579,7 @@ self: {
        ];
        description = "Shell command for grouping files by dates into folders";
        license = lib.licenses.bsd3;
+       mainProgram = "group-by-date";
      }) {};
 
   "group-theory" = callPackage
@@ -117358,6 +118841,7 @@ self: {
        description = "fractal explorer GUI using the ruff library";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gruff";
      }) {};
 
   "gruff-examples" = callPackage
@@ -117423,6 +118907,7 @@ self: {
        description = "scrapes google scholar, provides RSS feed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gscholar-rss";
      }) {};
 
   "gsl-random" = callPackage
@@ -117467,6 +118952,7 @@ self: {
        description = "A visual generic menu";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gsmenu";
      }) {};
 
   "gssapi" = callPackage
@@ -117554,6 +119040,7 @@ self: {
        ];
        description = "Console and GUI interface for Google Translate service";
        license = "GPL";
+       mainProgram = "gtc";
      }) {};
 
   "gtfs" = callPackage
@@ -117664,7 +119151,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk2 ];
        description = "Bindings for the Gtk/OS X integration library";
        license = lib.licenses.lgpl21Only;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk2;};
 
   "gtk-serialized-event" = callPackage
@@ -117724,9 +119211,8 @@ self: {
        ];
        description = "A standalone StatusNotifierItem/AppIndicator tray";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "gtk-sni-tray-standalone";
      }) {inherit (pkgs) gtk3;};
 
   "gtk-strut" = callPackage
@@ -117914,6 +119400,7 @@ self: {
        description = "Gtk2Hs Hello World, an example package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gtk2hs-hello";
        broken = true;
      }) {};
 
@@ -117981,9 +119468,7 @@ self: {
        libraryPkgconfigDepends = [ gtk-mac-integration-gtk3 ];
        description = "Bindings for the Gtk/OS X integration library";
        license = lib.licenses.lgpl21Only;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-       ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs) gtk-mac-integration-gtk3;};
 
   "gtkglext" = callPackage
@@ -118150,6 +119635,7 @@ self: {
        description = "graphical untyped lambda calculus interactive interpreter";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gulcii";
        broken = true;
      }) {};
 
@@ -118176,6 +119662,7 @@ self: {
        description = "ghcWithPackages cmdline util";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gw";
        broken = true;
      }) {};
 
@@ -118191,6 +119678,7 @@ self: {
        description = "A binary version of GiveYouAHead";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gyah";
        broken = true;
      }) {};
 
@@ -118214,6 +119702,7 @@ self: {
        description = "REST client to the gym-http-api project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -118239,6 +119728,7 @@ self: {
        description = "Haskell library for retrieving data from various booru image sites";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h-booru";
        broken = true;
      }) {};
 
@@ -118289,6 +119779,7 @@ self: {
        description = "Reversi game in haskell/blank-canvas";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h-reversi";
        broken = true;
      }) {};
 
@@ -118408,6 +119899,7 @@ self: {
        testHaskellDepends = [ base hashable ];
        description = "Conceptual modelling support for Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hCM";
      }) {};
 
   "hCsound" = callPackage
@@ -118494,6 +119986,7 @@ self: {
        description = "A library for analyzing and transforming LLVM (3.5) assembly codes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llvm-test";
        broken = true;
      }) {hooplext = null;};
 
@@ -118529,6 +120022,7 @@ self: {
        description = "The tool to transform the OFF to other image format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hOff-display-gl";
      }) {};
 
   "hOff-parser" = callPackage
@@ -118555,8 +120049,8 @@ self: {
      }:
      mkDerivation {
        pname = "hOpenPGP";
-       version = "2.9.7";
-       sha256 = "1fix387wi8fqdav4zzczc3dyzcwrnb4zvpq72prs5cs7sc609w3z";
+       version = "2.9.8";
+       sha256 = "1ibd9hah5y2qqpmfv5dk9iys3fnixw9blp855mjhfwpikgn3xypq";
        libraryHaskellDepends = [
          aeson asn1-encoding attoparsec base base16-bytestring bifunctors
          binary binary-conduit bytestring bz2 conduit conduit-extra
@@ -118694,6 +120188,7 @@ self: {
        ];
        description = "Interface to Amazon's Simple Storage Service (S3)";
        license = lib.licenses.bsd3;
+       mainProgram = "hs3";
      }) {};
 
   "hScraper" = callPackage
@@ -118774,6 +120269,7 @@ self: {
        description = "Optimal variable selection in chain graphical model";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hVOIDP";
        broken = true;
      }) {inherit (pkgs) blas; inherit (pkgs) liblapack;};
 
@@ -118792,6 +120288,7 @@ self: {
        ];
        description = "A Gtk mixer GUI application for FreeBSD";
        license = lib.licenses.bsd3;
+       mainProgram = "hxmixer";
      }) {};
 
   "haar" = callPackage
@@ -118835,6 +120332,7 @@ self: {
        description = "Haskell message bot framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hello-bot";
      }) {};
 
   "hable" = callPackage
@@ -118871,6 +120369,7 @@ self: {
        description = "A minimalist static blog generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hablo";
      }) {};
 
   "hablog" = callPackage
@@ -118894,6 +120393,7 @@ self: {
        description = "A blog system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hablog";
      }) {};
 
   "hacanon-light" = callPackage
@@ -119344,6 +120844,8 @@ self: {
        pname = "hackage-cli";
        version = "0.0.3.6";
        sha256 = "1wnh3571mgwyl9c5bfkwvr4rvsnw41qb9mlz1nda1ya53qfdjl4p";
+       revision = "1";
+       editedCabalFile = "06225nrw6icdlkcxp0wnh006fxsnyfpl55i9qm7pgybxb3qgf8l0";
        isLibrary = false;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -119361,6 +120863,7 @@ self: {
        doHaddock = false;
        description = "CLI tool for Hackage";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "hackage-cli";
      }) {};
 
   "hackage-db" = callPackage
@@ -119379,7 +120882,7 @@ self: {
        ];
        description = "Access cabal-install's Hackage database via Data.Map";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hackage-diff" = callPackage
@@ -119400,6 +120903,7 @@ self: {
        description = "Compare the public API of different versions of a Hackage library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-diff";
        broken = true;
      }) {};
 
@@ -119431,6 +120935,7 @@ self: {
        description = "Simple mirroring utility for Hackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-mirror";
      }) {};
 
   "hackage-plot" = callPackage
@@ -119449,6 +120954,7 @@ self: {
        ];
        description = "Generate cumulative graphs of hackage uploads";
        license = lib.licenses.bsd3;
+       mainProgram = "hackage-plot";
      }) {};
 
   "hackage-processing" = callPackage
@@ -119463,6 +120969,7 @@ self: {
        description = "Process 00-index.tar.gz from Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-find-contribution";
        broken = true;
      }) {};
 
@@ -119488,6 +120995,7 @@ self: {
        description = "Provide a proxy for Hackage which modifies responses in some way. (deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-proxy";
        broken = true;
      }) {};
 
@@ -119512,6 +121020,7 @@ self: {
        description = "Manage secure file-based package repositories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-repo-tool";
        broken = true;
      }) {};
 
@@ -119617,6 +121126,7 @@ self: {
        ];
        description = "Generate sparkline graphs of hackage statistics";
        license = lib.licenses.bsd3;
+       mainProgram = "hackagesparks";
      }) {};
 
   "hackage-whatsnew" = callPackage
@@ -119636,6 +121146,7 @@ self: {
        description = "Check for differences between working directory and hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage-whatsnew";
        broken = true;
      }) {};
 
@@ -119651,6 +121162,7 @@ self: {
        description = "Convert Hackage RSS feeds to wiki format for publishing on Haskell.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage2hwn";
        broken = true;
      }) {};
 
@@ -119666,6 +121178,7 @@ self: {
        description = "Send new Hackage releases to Twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackage2twitter";
      }) {};
 
   "hackager" = callPackage
@@ -119684,6 +121197,7 @@ self: {
        description = "Hackage testing tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackager";
        broken = true;
      }) {};
 
@@ -119710,6 +121224,7 @@ self: {
        description = "API for Hacker News";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackernews-example";
        broken = true;
      }) {};
 
@@ -119727,6 +121242,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "\"Hack\" like a programmer in movies and games!";
        license = lib.licenses.mit;
+       mainProgram = "hackertyper";
      }) {};
 
   "hackmanager" = callPackage
@@ -119748,6 +121264,7 @@ self: {
        description = "Generate useful files for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hackmanager";
      }) {};
 
   "hackport" = callPackage
@@ -119783,6 +121300,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Hackage and Portage integration tool";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "hackport";
      }) {};
 
   "hactor" = callPackage
@@ -119831,6 +121349,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
      }) {};
 
   "haddock" = callPackage
@@ -119848,6 +121367,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
      }) {};
 
   "haddock-api_2_23_1" = callPackage
@@ -119934,6 +121454,7 @@ self: {
        description = "A documentation-generation tool for Haskell libraries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddock";
        broken = true;
      }) {};
 
@@ -120019,6 +121540,7 @@ self: {
        description = "Generate docset of Dash by Haddock haskell documentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haddocset";
      }) {};
 
   "hadolint" = callPackage
@@ -120053,6 +121575,7 @@ self: {
        ];
        description = "Dockerfile Linter JavaScript API";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hadolint";
      }) {};
 
   "hadoop-formats" = callPackage
@@ -120136,6 +121659,7 @@ self: {
        description = "Fast command line tools for working with Hadoop";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hh";
      }) {};
 
   "haeredes" = callPackage
@@ -120154,6 +121678,7 @@ self: {
        testHaskellDepends = [ base doctest filemanip process ];
        description = "Confirm delegation of NS and MX records";
        license = lib.licenses.agpl3Only;
+       mainProgram = "haeredes";
      }) {};
 
   "hafar" = callPackage
@@ -120195,6 +121720,7 @@ self: {
        description = "A static site generator with blogging/comments support";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haggis";
      }) {};
 
   "haggle" = callPackage
@@ -120231,6 +121757,7 @@ self: {
        executableHaskellDepends = [ base containers time ];
        description = "A simple library for creating animated ascii art on ANSI terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "rotating-lambda";
      }) {};
 
   "hahp" = callPackage
@@ -120249,6 +121776,7 @@ self: {
        description = "Analytic Hierarchy Process";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hahp-example";
        broken = true;
      }) {};
 
@@ -120295,6 +121823,7 @@ self: {
        description = "A service for pull-based continuous deployment based on hydra";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hail";
        broken = true;
      }) {};
 
@@ -120332,6 +121861,7 @@ self: {
        description = "A program to send emails throught the Mailgun api";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hailgun-send";
      }) {};
 
   "hailgun-simple" = callPackage
@@ -120390,6 +121920,7 @@ self: {
        description = "Multi-app web platform framework";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hails";
        broken = true;
      }) {quickcheck-lio-instances = null;};
 
@@ -120410,6 +121941,7 @@ self: {
        description = "Dynamic launcher of Hails applications";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hails";
      }) {};
 
   "hairy" = callPackage
@@ -120439,6 +121971,7 @@ self: {
        description = "A JSON REST API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hairy";
        broken = true;
      }) {};
 
@@ -120487,6 +122020,7 @@ self: {
        executableHaskellDepends = [ directory process regexpr yjtools ];
        description = "make tool. ruby : rake = haskell : hake";
        license = "GPL";
+       mainProgram = "hake";
      }) {};
 
   "hakismet" = callPackage
@@ -120515,6 +122049,7 @@ self: {
        description = "Minimal akka-inspired actor library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakka-example";
        broken = true;
      }) {};
 
@@ -120551,8 +122086,8 @@ self: {
        pname = "hakyll";
        version = "4.15.1.1";
        sha256 = "0b3bw275q1xbx8qs9a6gzzs3c9z3qdj7skqhpp09jkchi5kdvhvi";
-       revision = "3";
-       editedCabalFile = "1h9cy5yp98f2wi0yk6l0qpy3zpg1kb7yizh8dkmss0nzq242nz4s";
+       revision = "4";
+       editedCabalFile = "0bvyn8mw6gy95liznjad0gjbj7130dsb0va40xmmfdy97dcp5jql";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -120574,7 +122109,8 @@ self: {
        testToolDepends = [ util-linux ];
        description = "A static website compiler library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "hakyll-init";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {inherit (pkgs) util-linux;};
 
   "hakyll-R" = callPackage
@@ -120654,6 +122190,7 @@ self: {
        description = "Extra modules for the hakyll website compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-contrib";
        broken = true;
      }) {};
 
@@ -120692,6 +122229,7 @@ self: {
        description = "Compile Elm code for inclusion in Hakyll static site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-contrib-elm-example";
        broken = true;
      }) {};
 
@@ -120704,7 +122242,7 @@ self: {
        libraryHaskellDepends = [ base hakyll hyphenation split tagsoup ];
        description = "automatic hyphenation for Hakyll";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ erictapen ];
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "hakyll-contrib-i18n" = callPackage
@@ -120730,6 +122268,7 @@ self: {
        description = "A Hakyll library for internationalization";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haki18nll";
        broken = true;
      }) {};
 
@@ -120782,6 +122321,7 @@ self: {
        ];
        description = "Convert from other blog engines to Hakyll";
        license = lib.licenses.bsd3;
+       mainProgram = "hakyll-convert";
      }) {};
 
   "hakyll-dhall" = callPackage
@@ -120803,6 +122343,7 @@ self: {
        description = "Dhall compiler for Hakyll";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hakyll-dhall-test-app";
        broken = true;
      }) {};
 
@@ -120849,6 +122390,7 @@ self: {
        executableHaskellDepends = [ base hakyll ];
        testHaskellDepends = [ base ];
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "hakyll-filestore" = callPackage
@@ -121094,6 +122636,7 @@ self: {
        description = "A tool to generate missing import statements for Haskell modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halberd";
      }) {};
 
   "half" = callPackage
@@ -121198,6 +122741,7 @@ self: {
        description = "A live recompiler";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halive";
        broken = true;
      }) {};
 
@@ -121257,6 +122801,7 @@ self: {
        description = "GTK application for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halma-gui";
      }) {};
 
   "halma-telegram-bot" = callPackage
@@ -121282,6 +122827,7 @@ self: {
        description = "Telegram bot for playing Halma";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halma-telegram-bot";
      }) {};
 
   "haltavista" = callPackage
@@ -121295,6 +122841,7 @@ self: {
        executableHaskellDepends = [ base hint process ];
        description = "looks for functions given a set of example input/outputs";
        license = lib.licenses.gpl2Only;
+       mainProgram = "haltavista";
      }) {};
 
   "halves" = callPackage
@@ -121329,6 +122876,7 @@ self: {
        description = "A simple, static HaLVM web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "halvm-web";
        broken = true;
      }) {HALVMCore = null; XenDevice = null;};
 
@@ -121356,6 +122904,7 @@ self: {
        testHaskellDepends = [ base bytestring ];
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamlog";
      }) {};
 
   "hamid" = callPackage
@@ -121392,6 +122941,7 @@ self: {
        ];
        description = "Physics on generalized coordinate systems using Hamiltonian Mechanics and AD";
        license = lib.licenses.bsd3;
+       mainProgram = "hamilton-examples";
      }) {};
 
   "hamlet" = callPackage
@@ -121423,6 +122973,7 @@ self: {
        description = "Haskell macro preprocessor";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hampp";
        broken = true;
      }) {};
 
@@ -121448,6 +122999,7 @@ self: {
        description = "Interpreter for SQL-structure definitions in YAML (YamSql)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hamsql";
        broken = true;
      }) {};
 
@@ -121485,6 +123037,7 @@ self: {
        ];
        description = "Intel AMT serial-over-lan (SOL) client";
        license = lib.licenses.bsd3;
+       mainProgram = "hamtsolo";
      }) {};
 
   "hamusic" = callPackage
@@ -121573,6 +123126,7 @@ self: {
        description = "Library and command-line utility for accessing Google services and APIs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgdata";
        broken = true;
      }) {};
 
@@ -121667,6 +123221,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "API Client for the handwriting.io API.";
        license = lib.licenses.bsd3;
+       mainProgram = "handwriting";
      }) {};
 
   "hangman" = callPackage
@@ -121681,6 +123236,7 @@ self: {
        executableHaskellDepends = [ base mtl random utility-ht ];
        description = "Hangman implementation in Haskell written in two hours";
        license = lib.licenses.mit;
+       mainProgram = "hangman";
      }) {};
 
   "hannahci" = callPackage
@@ -121703,6 +123259,7 @@ self: {
        description = "Simple Continuous Integration/Deployment System";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hannahci";
        broken = true;
      }) {};
 
@@ -121786,6 +123343,7 @@ self: {
        description = "Korean spell checker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hanspell";
        broken = true;
      }) {};
 
@@ -121837,6 +123395,7 @@ self: {
        description = "A deployment library for Haskell applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hap";
        broken = true;
      }) {};
 
@@ -121929,6 +123488,7 @@ self: {
        description = "A small program for counting the comments in haskell source";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happraise";
        broken = true;
      }) {};
 
@@ -121986,6 +123546,7 @@ self: {
        description = "A Happstack Tutorial that is its own web 2.0-type demo.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happs-tutorial";
      }) {};
 
   "happstack" = callPackage
@@ -122562,6 +124123,7 @@ self: {
        description = "Happy is a parser generator for Haskell";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "happy";
      }) {};
 
   "happy" = callPackage
@@ -122579,6 +124141,7 @@ self: {
        testHaskellDepends = [ base process ];
        description = "Happy is a parser generator for Haskell";
        license = lib.licenses.bsd2;
+       mainProgram = "happy";
      }) {};
 
   "happy-dot" = callPackage
@@ -122806,6 +124369,7 @@ self: {
        executableHaskellDepends = [ base bytestring parallel ];
        description = "Pure-functional Harfbuzz language bindings";
        license = lib.licenses.mit;
+       mainProgram = "shape-text";
      }) {inherit (pkgs) harfbuzz;};
 
   "harg" = callPackage
@@ -122843,6 +124407,7 @@ self: {
        description = "A Gentoo package query tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hark";
      }) {};
 
   "harmony" = callPackage
@@ -122869,6 +124434,7 @@ self: {
        description = "A web service specification compiler that generates implementation and tests";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "harmony";
      }) {};
 
   "haroonga" = callPackage
@@ -122906,6 +124472,7 @@ self: {
        description = "Yet another Groonga http server";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haroonga-httpd";
      }) {};
 
   "harp" = callPackage
@@ -123051,6 +124618,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Extras for hasbolt library";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "hascal" = callPackage
@@ -123065,6 +124633,7 @@ self: {
        executableHaskellDepends = [ base data-default split ];
        description = "tiny calculator library and command-line program";
        license = "GPL";
+       mainProgram = "hascal";
      }) {};
 
   "hascar" = callPackage
@@ -123093,6 +124662,7 @@ self: {
        description = "Decompress SAPCAR archives";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascar";
        broken = true;
      }) {};
 
@@ -123130,6 +124700,7 @@ self: {
        description = "A TUI for reviewing notes using 'flashcards' written with markdown-like syntax";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascard";
        broken = true;
      }) {};
 
@@ -123173,6 +124744,7 @@ self: {
        description = "Hascat Web Server";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascat";
      }) {};
 
   "hascat-lib" = callPackage
@@ -123213,6 +124785,7 @@ self: {
        description = "Hascat Installation helper";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hascat-setup";
      }) {};
 
   "hascat-system" = callPackage
@@ -123467,7 +125040,6 @@ self: {
        benchmarkSystemDepends = [ openssl ];
        description = "Hash functions";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) openssl;};
 
   "hashflare" = callPackage
@@ -123517,6 +125089,7 @@ self: {
        ];
        description = "A pure haskell library implements several hash algorithms";
        license = lib.licenses.mit;
+       mainProgram = "hashing-exe";
      }) {};
 
   "hashmap" = callPackage
@@ -123566,6 +125139,7 @@ self: {
        ];
        description = "Rename every file in a directory with his SHA1 hash";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hashrename";
      }) {};
 
   "hashring" = callPackage
@@ -123602,6 +125176,7 @@ self: {
        ];
        description = "Benchmark of hash table implementations";
        license = lib.licenses.bsd3;
+       mainProgram = "hashtable-benchmark";
      }) {};
 
   "hashtables" = callPackage
@@ -123737,6 +125312,7 @@ self: {
        description = "Utility to generate bindings for BlackBerry Cascades";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskades";
      }) {};
 
   "haskakafka" = callPackage
@@ -123781,6 +125357,7 @@ self: {
        description = "A breakout game written in Yampa using SDL";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskanoid";
        broken = true;
      }) {};
 
@@ -123800,6 +125377,7 @@ self: {
        description = "A dialect of haskell with order of execution based on dependency resolution";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskarrowPrecompiler";
        broken = true;
      }) {};
 
@@ -123848,6 +125426,7 @@ self: {
        description = "Computes and audits file hashes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskdeep";
      }) {};
 
   "haskdogs" = callPackage
@@ -123866,6 +125445,7 @@ self: {
        ];
        description = "Generate tags file for Haskell project and its nearest deps";
        license = lib.licenses.bsd3;
+       mainProgram = "haskdogs";
      }) {};
 
   "haskeem" = callPackage
@@ -123885,6 +125465,7 @@ self: {
        description = "A small scheme interpreter";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeem";
      }) {};
 
   "haskeline_0_8_2" = callPackage
@@ -123912,6 +125493,7 @@ self: {
        description = "A command-line interface for user input, written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeline-examples-Test";
      }) {};
 
   "haskeline-class" = callPackage
@@ -123976,9 +125558,89 @@ self: {
        description = "Haskell Application BlockChain Interface (ABCI) Server Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-abci-counter";
        broken = true;
      }) {};
 
+  "haskell-admin" = callPackage
+    ({ mkDerivation, base, bytestring, haskell-admin-core
+     , haskell-admin-health, haskell-admin-managed-functions, wai
+     }:
+     mkDerivation {
+       pname = "haskell-admin";
+       version = "1.0.0.0";
+       sha256 = "0h23kl9hjh5szmy8s8fr9zm9v2znzww1yfjiiij7n4n1zcm04nsf";
+       libraryHaskellDepends = [
+         base bytestring haskell-admin-core haskell-admin-health
+         haskell-admin-managed-functions wai
+       ];
+       description = "Remote Management Platform for Haskell Applications";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "haskell-admin-core" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, hspec, hspec-wai
+     , http-types, servant, servant-server, wai, wai-cors, wai-extra
+     , wai-middleware-bearer, word8
+     }:
+     mkDerivation {
+       pname = "haskell-admin-core";
+       version = "1.0.0.0";
+       sha256 = "1jnarccd8inb13njng3wa0gyd1n4nnipvl0b4kn3fadb14pdmvb3";
+       libraryHaskellDepends = [
+         aeson base bytestring http-types servant servant-server wai
+         wai-cors wai-middleware-bearer word8
+       ];
+       testHaskellDepends = [
+         aeson base bytestring hspec hspec-wai http-types servant
+         servant-server wai wai-cors wai-extra wai-middleware-bearer word8
+       ];
+       description = "Core Modules of Haskell Admin";
+       license = lib.licenses.mit;
+     }) {};
+
+  "haskell-admin-health" = callPackage
+    ({ mkDerivation, aeson, async, base, haskell-admin-core, hspec
+     , hspec-wai, servant, servant-server
+     }:
+     mkDerivation {
+       pname = "haskell-admin-health";
+       version = "1.0.0.0";
+       sha256 = "0fbkpzzc6zphyc9200lcxvc25iln1frd7wgi53hzpglj2mbmr25l";
+       libraryHaskellDepends = [
+         aeson async base haskell-admin-core servant servant-server
+       ];
+       testHaskellDepends = [
+         aeson async base haskell-admin-core hspec hspec-wai servant
+         servant-server
+       ];
+       description = "Application Health Component for Haskell Admin";
+       license = lib.licenses.mit;
+     }) {};
+
+  "haskell-admin-managed-functions" = callPackage
+    ({ mkDerivation, base, haskell-admin-core, hspec, hspec-wai
+     , managed-functions, managed-functions-http-connector
+     , servant-server
+     }:
+     mkDerivation {
+       pname = "haskell-admin-managed-functions";
+       version = "1.0.0.0";
+       sha256 = "1s1ldfqkm8il7zipsh82fgamdcw6j8cz1kcil4p2pb003ycnz8pa";
+       libraryHaskellDepends = [
+         base haskell-admin-core managed-functions
+         managed-functions-http-connector servant-server
+       ];
+       testHaskellDepends = [
+         base haskell-admin-core hspec hspec-wai managed-functions
+         managed-functions-http-connector servant-server
+       ];
+       description = "Managed Functions integration for Haskell Admin";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "haskell-aliyun" = callPackage
     ({ mkDerivation, aeson, base, base64-bytestring, basic-prelude
      , blaze-builder, bytestring, case-insensitive, conduit, Crypto
@@ -124034,6 +125696,7 @@ self: {
        description = "Transform text from the command-line using Haskell expressions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hawk";
        broken = true;
      }) {};
 
@@ -124074,6 +125737,7 @@ self: {
        description = "Complete BitMEX Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "haskell-bitmex-rest" = callPackage
@@ -124123,6 +125787,7 @@ self: {
        description = "BrainFuck interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "brainfuck";
        broken = true;
      }) {};
 
@@ -124158,7 +125823,8 @@ self: {
        doHaddock = false;
        description = "Cabal package script generator for Travis-CI";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "haskell-ci";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "haskell-cnc" = callPackage
@@ -124180,6 +125846,7 @@ self: {
        description = "Library for parallel programming in the Intel Concurrent Collections paradigm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-cnc-runTests";
        broken = true;
      }) {};
 
@@ -124214,6 +125881,7 @@ self: {
        description = "compress files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-compress";
        broken = true;
      }) {};
 
@@ -124291,6 +125959,7 @@ self: {
        ];
        description = "Haskell Debug Adapter";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-debug-adapter";
      }) {};
 
   "haskell-disque" = callPackage
@@ -124332,6 +126001,7 @@ self: {
        description = "A program to find and display the docs and type of a name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-docs";
      }) {};
 
   "haskell-eigen-util" = callPackage
@@ -124398,6 +126068,7 @@ self: {
        description = "Haskell source code formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-formatter";
        broken = true;
      }) {};
 
@@ -124426,6 +126097,7 @@ self: {
        description = "A Haskell ftp server with configurable backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simple-ftp-server";
      }) {};
 
   "haskell-generate" = callPackage
@@ -124465,6 +126137,7 @@ self: {
        ];
        description = "GetText runtime library implementation in pure Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "hgettext";
      }) {};
 
   "haskell-gi" = callPackage
@@ -124524,6 +126197,7 @@ self: {
        description = "Go and Checkers game in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-go-checkers";
        broken = true;
      }) {};
 
@@ -124600,6 +126274,7 @@ self: {
        description = "create haskell import graph for graphviz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-import-graph";
        broken = true;
      }) {};
 
@@ -124696,7 +126371,7 @@ self: {
        testToolDepends = [ ghcide ];
        description = "LSP server for GHC";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "haskell-lexer" = callPackage
@@ -124762,6 +126437,7 @@ self: {
        description = "A haskell package to build your own Language Server client";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-client";
      }) {};
 
   "haskell-lsp-types" = callPackage
@@ -124812,6 +126488,7 @@ self: {
        description = "Machine learning in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iris";
        broken = true;
      }) {};
 
@@ -124953,6 +126630,7 @@ self: {
        description = "Manage nix overrides for haskell packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-overridez";
        broken = true;
      }) {};
 
@@ -124994,6 +126672,7 @@ self: {
        description = "Tool for presenting PDF-based presentations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpdfp";
      }) {};
 
   "haskell-platform-test" = callPackage
@@ -125023,6 +126702,7 @@ self: {
        description = "A test system for the Haskell Platform environment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-platform-test";
      }) {};
 
   "haskell-player" = callPackage
@@ -125045,6 +126725,7 @@ self: {
        description = "A terminal music player based on afplay";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-player";
        broken = true;
      }) {};
 
@@ -125194,6 +126875,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Let the Haskell logo talk to your users!";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-say-exe";
      }) {};
 
   "haskell-snake" = callPackage
@@ -125214,10 +126896,9 @@ self: {
        ];
        description = "Snake game implemetation in Haskell using SDL2";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-snake";
        broken = true;
      }) {};
 
@@ -125438,6 +127119,7 @@ self: {
        description = "haskell-stack-trace-plugin";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -125687,6 +127369,7 @@ self: {
        description = "Background process for Haskell-tools that editors can connect to";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-daemon";
      }) {};
 
   "haskell-tools-debug" = callPackage
@@ -125712,6 +127395,7 @@ self: {
        description = "Debugging Tools for Haskell-tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-debug";
      }) {};
 
   "haskell-tools-demo" = callPackage
@@ -125743,6 +127427,7 @@ self: {
        description = "A web-based demo for Haskell-tools Refactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-demo";
      }) {};
 
   "haskell-tools-experimental-refactorings" = callPackage
@@ -125877,6 +127562,7 @@ self: {
        description = "A Haskell Tor Node";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-tor";
      }) {};
 
   "haskell-type-exts" = callPackage
@@ -125935,6 +127621,7 @@ self: {
        ];
        description = "Rebuild Haskell dependencies in Gentoo";
        license = "GPL";
+       mainProgram = "haskell-updater";
      }) {};
 
   "haskell-xmpp" = callPackage
@@ -125961,6 +127648,7 @@ self: {
        description = "Haskell XMPP (eXtensible Message Passing Protocol, a.k.a. Jabber) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-xmpp-io-test";
        broken = true;
      }) {};
 
@@ -126133,6 +127821,7 @@ self: {
        description = "HaskellDB support for the dynamically loaded drivers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-dynamic";
      }) {};
 
   "haskelldb-flat" = callPackage
@@ -126151,6 +127840,7 @@ self: {
        description = "An experimental HaskellDB back-end in pure Haskell (no SQL)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-flat";
      }) {};
 
   "haskelldb-hdbc" = callPackage
@@ -126185,6 +127875,7 @@ self: {
        description = "HaskellDB support for the HDBC MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-mysql";
      }) {};
 
   "haskelldb-hdbc-odbc" = callPackage
@@ -126203,6 +127894,7 @@ self: {
        description = "HaskellDB support for the HDBC ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-odbc";
      }) {};
 
   "haskelldb-hdbc-postgresql" = callPackage
@@ -126222,6 +127914,7 @@ self: {
        description = "HaskellDB support for the HDBC PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-postgresql";
      }) {inherit (pkgs) postgresql;};
 
   "haskelldb-hdbc-sqlite3" = callPackage
@@ -126240,6 +127933,7 @@ self: {
        description = "HaskellDB support for the HDBC SQLite driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hdbc-sqlite3";
      }) {};
 
   "haskelldb-hsql" = callPackage
@@ -126270,6 +127964,7 @@ self: {
        description = "HaskellDB support for the HSQL MySQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-mysql";
      }) {};
 
   "haskelldb-hsql-odbc" = callPackage
@@ -126288,6 +127983,7 @@ self: {
        description = "HaskellDB support for the HSQL ODBC driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-odbc";
      }) {};
 
   "haskelldb-hsql-oracle" = callPackage
@@ -126306,6 +128002,7 @@ self: {
        description = "HaskellDB support for the HSQL Oracle driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-oracle";
        broken = true;
      }) {hsql-oracle = null;};
 
@@ -126325,6 +128022,7 @@ self: {
        description = "HaskellDB support for the HSQL PostgreSQL driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-postgresql";
      }) {};
 
   "haskelldb-hsql-sqlite" = callPackage
@@ -126343,6 +128041,7 @@ self: {
        description = "HaskellDB support for the HSQL SQLite driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-sqlite";
        broken = true;
      }) {hsql-sqlite = null;};
 
@@ -126362,6 +128061,7 @@ self: {
        description = "HaskellDB support for the HSQL SQLite3 driver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "DBDirect-hsql-sqlite3";
      }) {};
 
   "haskelldb-th" = callPackage
@@ -126446,6 +128146,7 @@ self: {
        description = "Command line tool for running Haskell scripts with a hashbang";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskellscript";
        broken = true;
      }) {};
 
@@ -126480,6 +128181,7 @@ self: {
        description = "Elm to Haskell translation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskelm";
      }) {};
 
   "haskelzinc" = callPackage
@@ -126513,6 +128215,7 @@ self: {
        description = "Compiler from I- to S-Expressions for the Scheme Programming Language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskeme";
        broken = true;
      }) {};
 
@@ -126658,6 +128361,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Haskell Evaluation inside of LaTeX code";
        license = lib.licenses.bsd3;
+       mainProgram = "haskintex";
      }) {};
 
   "hasklepias" = callPackage
@@ -126944,6 +128648,7 @@ self: {
        description = "Storage and index for Bitcoin and Bitcoin Cash";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskoin-store";
      }) {};
 
   "haskoin-store-data" = callPackage
@@ -127160,6 +128865,7 @@ self: {
        description = "Haskore back-end for SuperCollider";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "song-air";
      }) {};
 
   "haskore-synthesizer" = callPackage
@@ -127218,6 +128924,7 @@ self: {
        ];
        description = "Simple unsupervised segmentation model";
        license = lib.licenses.bsd3;
+       mainProgram = "haskseg";
      }) {};
 
   "hasktags" = callPackage
@@ -127246,6 +128953,7 @@ self: {
        ];
        description = "Produces ctags \"tags\" and etags \"TAGS\" files for Haskell programs";
        license = lib.licenses.bsd3;
+       mainProgram = "hasktags";
      }) {};
 
   "hasktorch" = callPackage
@@ -127306,6 +129014,7 @@ self: {
        description = "Code generation tools for Hasktorch";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ht-codegen";
        broken = true;
      }) {};
 
@@ -127562,6 +129271,7 @@ self: {
        ];
        description = "Haskus system build tool";
        license = lib.licenses.bsd3;
+       mainProgram = "haskus-system-build";
      }) {};
 
   "haskus-utils" = callPackage
@@ -127701,6 +129411,7 @@ self: {
        description = "HTTP server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskyapi";
        broken = true;
      }) {};
 
@@ -127736,6 +129447,7 @@ self: {
        description = "Loan calculator Gtk GUI. Based on haslo (Haskell Loan) library.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "HasloGUI";
      }) {};
 
   "hasmin" = callPackage
@@ -127767,26 +129479,26 @@ self: {
        description = "CSS Minifier";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasmin";
        broken = true;
      }) {};
 
   "haspara" = callPackage
-    ({ mkDerivation, aeson, base, containers, deriving-aeson, doctest
-     , exceptions, hashable, megaparsec, mtl, refined, safe-decimal
-     , scientific, template-haskell, text, time
+    ({ mkDerivation, aeson, base, containers, doctest, exceptions
+     , hashable, megaparsec, mtl, refined, safe-decimal, scientific
+     , template-haskell, text, time
      }:
      mkDerivation {
        pname = "haspara";
-       version = "0.0.0.2";
-       sha256 = "05jllc97mx15lvj83bmixpkzg7l7hbf058f8kfjiky1w3y7mf6fz";
+       version = "0.0.0.4";
+       sha256 = "0jl6ncf16lc4h9w6w8n59b3z58h5g4ddcmjm5ml2pd1qgp5ncilh";
        libraryHaskellDepends = [
-         aeson base containers deriving-aeson exceptions hashable megaparsec
-         mtl refined safe-decimal scientific template-haskell text time
+         aeson base containers exceptions hashable megaparsec mtl refined
+         safe-decimal scientific template-haskell text time
        ];
        testHaskellDepends = [
-         aeson base containers deriving-aeson doctest exceptions hashable
-         megaparsec mtl refined safe-decimal scientific template-haskell
-         text time
+         aeson base containers doctest exceptions hashable megaparsec mtl
+         refined safe-decimal scientific template-haskell text time
        ];
        description = "A library providing definitions to work with monetary values";
        license = lib.licenses.mit;
@@ -127828,8 +129540,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.5.0.2";
-       sha256 = "1f9faq0f2bilylc0rd64s0icrp086qb0q70w4z4vih2hs0sx6fs0";
+       version = "1.5.0.3";
+       sha256 = "1ai1vq1l58r4k6ri78gl0zlbc4sgkp3mcyi2dsm37f7ah9r38hsz";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-strict-builder contravariant
          dlist hashable hashtables mtl postgresql-binary postgresql-libpq
@@ -127844,7 +129556,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hasql_1_5_0_3" = callPackage
+  "hasql_1_5_0_4" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring
      , bytestring-strict-builder, contravariant, contravariant-extras
      , dlist, gauge, hashable, hashtables, mtl, postgresql-binary
@@ -127854,8 +129566,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql";
-       version = "1.5.0.3";
-       sha256 = "1ai1vq1l58r4k6ri78gl0zlbc4sgkp3mcyi2dsm37f7ah9r38hsz";
+       version = "1.5.0.4";
+       sha256 = "01jfjx9l10f28w395r1990r6l5i15bw1333d968m2qgnx5l04vw3";
        libraryHaskellDepends = [
          attoparsec base bytestring bytestring-strict-builder contravariant
          dlist hashable hashtables mtl postgresql-binary postgresql-libpq
@@ -128020,8 +129732,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-implicits";
-       version = "0.1.0.3";
-       sha256 = "0xw7yy146adc805cr95ijm06ynmzinidngy16vgcfaqph0zx1ks2";
+       version = "0.1.0.4";
+       sha256 = "1ls8ximzpgr3p4301xgxjfl17dff4ljpxwps205nblh1d7bkda6a";
        libraryHaskellDepends = [
          aeson base bytestring containers hasql network-ip scientific text
          time uuid vector
@@ -128075,26 +129787,6 @@ self: {
      }) {};
 
   "hasql-notifications" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, hasql, hasql-pool
-     , hspec, postgresql-libpq, QuickCheck, text
-     }:
-     mkDerivation {
-       pname = "hasql-notifications";
-       version = "0.2.0.0";
-       sha256 = "1zizvdvhb0nd126k24j4k62lzkx3qh1vp4976f2n7ri7ga5y6cxi";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base bytestring contravariant hasql hasql-pool postgresql-libpq
-         text
-       ];
-       executableHaskellDepends = [ base hasql ];
-       testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
-       description = "LISTEN/NOTIFY support for Hasql";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "hasql-notifications_0_2_0_1" = callPackage
     ({ mkDerivation, base, bytestring, hasql, hasql-pool, hspec
      , postgresql-libpq, QuickCheck, text
      }:
@@ -128111,7 +129803,7 @@ self: {
        testHaskellDepends = [ base bytestring hasql hspec QuickCheck ];
        description = "LISTEN/NOTIFY support for Hasql";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasql-notifications";
      }) {};
 
   "hasql-optparse-applicative" = callPackage
@@ -128120,8 +129812,8 @@ self: {
      }:
      mkDerivation {
        pname = "hasql-optparse-applicative";
-       version = "0.3.0.8";
-       sha256 = "1yx56vi1dpymxk5c3rkk74bbghcxfp6x333xn2j4x2ls38676dvg";
+       version = "0.3.0.9";
+       sha256 = "1m4z82l3ip50ly160ccjl46npxp1170knaf5acjdwhirsc6c3qpd";
        libraryHaskellDepends = [
          base-prelude hasql hasql-pool optparse-applicative
        ];
@@ -128172,14 +129864,14 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hasql-pool_0_7_1_3" = callPackage
+  "hasql-pool_0_7_2" = callPackage
     ({ mkDerivation, base, hasql, hspec, rerebase, stm, time
      , transformers
      }:
      mkDerivation {
        pname = "hasql-pool";
-       version = "0.7.1.3";
-       sha256 = "0li8cbpzka85qlrgad5gy0pil9c4i0zvj961i3anmldd9n4f7m3m";
+       version = "0.7.2";
+       sha256 = "068bbsybbjgdpq2vyzjfh6h1ayjcyws1flmdarb1bdq80nbdq2m9";
        libraryHaskellDepends = [ base hasql stm time transformers ];
        testHaskellDepends = [ hasql hspec rerebase stm ];
        description = "A pool of connections for Hasql";
@@ -128272,6 +129964,24 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hasql-resource-pool" = callPackage
+    ({ mkDerivation, base-prelude, clock, hasql, hspec
+     , resource-pool-fork-avanov, time
+     }:
+     mkDerivation {
+       pname = "hasql-resource-pool";
+       version = "0.5.3.2";
+       sha256 = "07j293mivq4gfqaaclb80kbr413nwb8f18jf683pjj66d4ql5j01";
+       libraryHaskellDepends = [
+         base-prelude clock hasql resource-pool-fork-avanov time
+       ];
+       testHaskellDepends = [ base-prelude hasql hspec ];
+       description = "A pool of connections for Hasql based on resource-pool";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hasql-simple" = callPackage
     ({ mkDerivation, aeson, base, bytestring, contravariant, hasql
      , text, time, unordered-containers, vector
@@ -128340,6 +130050,7 @@ self: {
        description = "An example program that shows how to use Hasql streams with Rel8";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hasql-streaming";
        broken = true;
      }) {};
 
@@ -128409,6 +130120,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hasql-th_0_4_0_15" = callPackage
+    ({ mkDerivation, base, bytestring, containers, contravariant, foldl
+     , hasql, postgresql-syntax, template-haskell
+     , template-haskell-compat-v0208, text, uuid, vector
+     }:
+     mkDerivation {
+       pname = "hasql-th";
+       version = "0.4.0.15";
+       sha256 = "0h8cg8w16hn315hwdgamik9vwqslpgrbrhsd109w0lrv5l27xywz";
+       libraryHaskellDepends = [
+         base bytestring containers contravariant foldl hasql
+         postgresql-syntax template-haskell template-haskell-compat-v0208
+         text uuid vector
+       ];
+       description = "Template Haskell utilities for Hasql";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hasql-transaction" = callPackage
     ({ mkDerivation, async, base, bytestring, bytestring-tree-builder
      , contravariant, contravariant-extras, hasql, mtl, rerebase
@@ -128524,6 +130254,7 @@ self: {
        description = "Haskell implementation of Mustache templates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkReadme";
        broken = true;
      }) {};
 
@@ -128556,6 +130287,7 @@ self: {
        description = "A universal pastebin tool, written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haste";
        broken = true;
      }) {};
 
@@ -128705,6 +130437,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A program to download subtitle files";
        license = lib.licenses.bsd3;
+       mainProgram = "hastily";
      }) {};
 
   "hasty-hamiltonian" = callPackage
@@ -128788,6 +130521,7 @@ self: {
        description = "XMPP client with 9P and (optionally) GTK interfaces";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hatexmpp";
      }) {};
 
   "hath" = callPackage
@@ -128808,6 +130542,7 @@ self: {
        ];
        description = "Hath manipulates network blocks in CIDR notation";
        license = lib.licenses.agpl3Only;
+       mainProgram = "hath";
      }) {};
 
   "hats" = callPackage
@@ -128839,6 +130574,7 @@ self: {
        description = "Haskell client for the NATS messaging system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hats-examples";
        broken = true;
      }) {};
 
@@ -128863,6 +130599,7 @@ self: {
        description = "A truth table generator for classical propositional logic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hatt";
        broken = true;
      }) {};
 
@@ -128887,6 +130624,7 @@ self: {
        description = "Library for checking for weak/compromised passwords";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -128908,6 +130646,7 @@ self: {
        description = "Recursively retrieve maven dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haven";
        broken = true;
      }) {};
 
@@ -128934,6 +130673,7 @@ self: {
        description = "Implementation of the rules of Love Letter";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haverer";
        broken = true;
      }) {};
 
@@ -128957,6 +130697,7 @@ self: {
        description = "A twitter client for GTK+. Beta version.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hawitter";
      }) {};
 
   "hax" = callPackage
@@ -128983,6 +130724,7 @@ self: {
        description = "Haskell cash-flow and tax simulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hax";
        broken = true;
      }) {};
 
@@ -129077,6 +130819,7 @@ self: {
        description = "Readable HaxBall replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haxparse";
        broken = true;
      }) {};
 
@@ -129151,6 +130894,7 @@ self: {
        description = "Haskell bindings for the C Wayland library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wayland-list-globals";
        broken = true;
      }) {inherit (pkgs) libGL; inherit (pkgs) wayland;};
 
@@ -129171,6 +130915,7 @@ self: {
        description = "Hayoo CLI";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hayoo";
        broken = true;
      }) {};
 
@@ -129191,6 +130936,7 @@ self: {
        description = "N-back memory game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hback";
      }) {};
 
   "hbayes" = callPackage
@@ -129238,6 +130984,7 @@ self: {
        description = "Haskell Busy Bee, a backend for text editors";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbb";
      }) {};
 
   "hbcd" = callPackage
@@ -129286,6 +131033,7 @@ self: {
        description = "A simple step sequencer GUI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbeat";
        broken = true;
      }) {inherit (pkgs) SDL_mixer;};
 
@@ -129397,10 +131145,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Minimal extensible web-browser";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hbro";
      }) {};
 
   "hbro-contrib" = callPackage
@@ -129433,10 +131179,8 @@ self: {
        ];
        description = "Third-party extensions to hbro";
        license = "unknown";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hburg" = callPackage
@@ -129458,6 +131202,7 @@ self: {
        description = "Haskell Bottom Up Rewrite Generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hburg";
        broken = true;
      }) {};
 
@@ -129486,6 +131231,7 @@ self: {
        description = "A toy C compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcc";
        broken = true;
      }) {};
 
@@ -129564,6 +131310,7 @@ self: {
        description = "Implementation of checkers (\"draughts\") board game - server application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcheckersd";
      }) {};
 
   "hchesslib" = callPackage
@@ -129683,6 +131430,7 @@ self: {
        testHaskellDepends = [ base data-default HUnit ieee754 mtl ];
        description = "Easily convert between latitude/longitude, UTM and OSGB";
        license = lib.licenses.bsd3;
+       mainProgram = "hcoord-exe";
      }) {};
 
   "hcount" = callPackage
@@ -129704,6 +131452,7 @@ self: {
        description = "Haskell name counts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcount";
      }) {};
 
   "hcron" = callPackage
@@ -129743,6 +131492,7 @@ self: {
        description = "Virtual Rubik's cube of arbitrary size";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hcube";
      }) {};
 
   "hcwiid" = callPackage
@@ -129755,9 +131505,7 @@ self: {
        librarySystemDepends = [ bluetooth cwiid ];
        description = "Library to interface with the wiimote";
        license = lib.licenses.gpl2Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {bluetooth = null; inherit (pkgs) cwiid;};
 
   "hdaemonize" = callPackage
@@ -129969,6 +131717,7 @@ self: {
        description = "Persistent GHC powered background server for FAST haskell development tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdevtools";
        broken = true;
      }) {};
 
@@ -130042,6 +131791,7 @@ self: {
        description = "Pattern-Expression-based differencing of arbitrary types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdiff";
      }) {};
 
   "hdigest" = callPackage
@@ -130077,6 +131827,7 @@ self: {
        description = "An IDL compiler for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdirect";
      }) {};
 
   "hdis86" = callPackage
@@ -130118,6 +131869,7 @@ self: {
        description = "a small display manager";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdm";
        broken = true;
      }) {};
 
@@ -130147,6 +131899,7 @@ self: {
        description = "A Digital Ocean client in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "docean";
        broken = true;
      }) {};
 
@@ -130173,6 +131926,7 @@ self: {
        description = "Haskell docs tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hdocs";
      }) {};
 
   "hdph" = callPackage
@@ -130273,6 +132027,7 @@ self: {
        description = "Creates a header for a haskell source file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "headergen";
        broken = true;
      }) {};
 
@@ -130305,6 +132060,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "License Header Manager";
        license = lib.licenses.bsd3;
+       mainProgram = "headroom";
      }) {};
 
   "heap" = callPackage
@@ -130380,6 +132136,7 @@ self: {
        description = "Heapsort of MArrays as a demo of imperative programming";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heapsort-example";
        broken = true;
      }) {};
 
@@ -130459,6 +132216,7 @@ self: {
        description = "Find and annotate ITDs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heatitup";
      }) {};
 
   "heatitup-complete" = callPackage
@@ -130483,6 +132241,7 @@ self: {
        description = "Find and annotate ITDs with assembly or read pair joining";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heatitup-complete";
      }) {};
 
   "heatshrink" = callPackage
@@ -130635,6 +132394,7 @@ self: {
        description = "Jekyll in Haskell (feat. LaTeX)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heckle";
        broken = true;
      }) {};
 
@@ -130694,7 +132454,7 @@ self: {
        ];
        description = "Release with confidence";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hedgehog_1_1_1" = callPackage
@@ -130723,7 +132483,7 @@ self: {
        description = "Release with confidence";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hedgehog-checkers" = callPackage
@@ -130874,13 +132634,13 @@ self: {
      }:
      mkDerivation {
        pname = "hedgehog-golden";
-       version = "1.0.0";
-       sha256 = "17ja3ch042kvk0fpd1gd9nnj9x5jbl37vxn579hr9rimwgf99az7";
+       version = "1.0.1";
+       sha256 = "1pjzpsn0dq07dnvf6nixz0jghskwkngjhki2hqc4bnw2ha5h3fdl";
        libraryHaskellDepends = [
          aeson aeson-pretty base bytestring containers Diff directory extra
          hedgehog text
        ];
-       testHaskellDepends = [ base hedgehog ];
+       testHaskellDepends = [ aeson base hedgehog ];
        description = "Golden testing capabilities for hedgehog using Aeson";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -131033,6 +132793,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedis-namespace-exe";
        broken = true;
      }) {};
 
@@ -131144,6 +132905,7 @@ self: {
        description = "A small library and executable for generating dice rolls";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hedra";
        broken = true;
      }) {};
 
@@ -131170,6 +132932,7 @@ self: {
        description = "Tidy data in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "app";
        broken = true;
      }) {};
 
@@ -131190,6 +132953,7 @@ self: {
        description = "An extensible build helper for haskell, in the vein of leiningen";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hein";
        broken = true;
      }) {};
 
@@ -131327,6 +133091,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Typechecking terms of the Edinburgh Logical Framework (LF)";
        license = lib.licenses.mit;
+       mainProgram = "helf";
      }) {};
 
   "helic" = callPackage
@@ -131366,6 +133131,7 @@ self: {
        description = "Clipboard Manager";
        license = "BSD-2-Clause-Patent";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hel";
        broken = true;
      }) {};
 
@@ -131424,6 +133190,7 @@ self: {
        description = "An incomplete Elisp compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "helisp";
        broken = true;
      }) {};
 
@@ -131514,6 +133281,7 @@ self: {
        description = "A Haskell shell based on shell-conduit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hell";
        broken = true;
      }) {};
 
@@ -131573,6 +133341,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Hello World, an example package";
        license = lib.licenses.bsd3;
+       mainProgram = "hello";
      }) {};
 
   "helm" = callPackage
@@ -131596,6 +133365,7 @@ self: {
        description = "A functionally reactive game engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "helm-example-flappy";
        broken = true;
      }) {};
 
@@ -131633,6 +133403,7 @@ self: {
        description = "A module music mixer and player";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hemkay";
        broken = true;
      }) {};
 
@@ -131765,6 +133536,7 @@ self: {
        description = "HAML to ERB translator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "herbalizer";
        broken = true;
      }) {};
 
@@ -131787,8 +133559,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-agent";
-       version = "0.9.5";
-       sha256 = "121s8x61ya4p921zs38r4grqvpi4jkhinlys394hajlqniz7mh6h";
+       version = "0.9.6";
+       sha256 = "1viy6h0jslhr5ln06g1yqmgqjr36yl6014v8m2fzlnszga761v6y";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -131829,7 +133601,7 @@ self: {
        ];
        description = "Runs Continuous Integration tasks on your machines";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "hercules-ci-api" = callPackage
@@ -131860,7 +133632,8 @@ self: {
        ];
        description = "Hercules CI API definition with Servant";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "hercules-gen-swagger";
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-api-agent" = callPackage
@@ -131889,7 +133662,7 @@ self: {
        ];
        description = "API definition for Hercules CI Agent to talk to hercules-ci.com or Hercules CI Enterprise";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-api-core" = callPackage
@@ -131912,7 +133685,7 @@ self: {
        ];
        description = "Types and convenience modules use across Hercules CI API packages";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "hercules-ci-cli" = callPackage
@@ -131931,8 +133704,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cli";
-       version = "0.3.1";
-       sha256 = "1653riw0r3l2lyx69346h19cbrxqw12bmzbpnjmmdkcr9h3g36k6";
+       version = "0.3.2";
+       sha256 = "1lr7ai19zq55y1ib7133llajpx4n041xv6gv797d1ibk03qj69gc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -131956,7 +133729,8 @@ self: {
        description = "The hci command for working with Hercules CI";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ roberth ];
+       mainProgram = "hci";
+       maintainers = [ lib.maintainers.roberth ];
        broken = true;
      }) {hercules-ci-optparse-applicative = null;};
 
@@ -131970,8 +133744,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-expr";
-       version = "0.3.2.0";
-       sha256 = "03zqj51ch9n49p13554mischjv3vz02dlbnswz714bz78rxw7lbv";
+       version = "0.3.3.0";
+       sha256 = "03c579y14cnynnrgfj2p41q65aplhr5ayc8i38yzvm96i5d6w6yq";
        enableSeparateDataOutput = true;
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
@@ -131989,7 +133763,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Bindings for the Nix evaluator";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "hercules-ci-cnix-store" = callPackage
@@ -132000,8 +133774,8 @@ self: {
      }:
      mkDerivation {
        pname = "hercules-ci-cnix-store";
-       version = "0.3.2.0";
-       sha256 = "1s4vwjsk7sj7627yaq9i1c3ghxk83gdhhvf50p6fl93mji5513k3";
+       version = "0.3.3.0";
+       sha256 = "0h4igygjmi8z9dyfidizs04f9yhnibdba523h8996lf7s2dxb6g9";
        setupHaskellDepends = [ base Cabal cabal-pkg-config-version-hook ];
        libraryHaskellDepends = [
          base bytestring conduit containers inline-c inline-c-cpp protolude
@@ -132016,7 +133790,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Haskell bindings for Nix's libstore";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {inherit (pkgs) boost; inherit (pkgs) nix;};
 
   "here" = callPackage
@@ -132126,6 +133900,7 @@ self: {
        description = "Haskell Equational Reasoning Model-to-Implementation Tunnel";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hermit";
      }) {};
 
   "hermit-syb" = callPackage
@@ -132163,6 +133938,7 @@ self: {
        description = "A command-line manager for delicious kitchen recipes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "herms";
        broken = true;
      }) {};
 
@@ -132178,6 +133954,7 @@ self: {
        executableHaskellDepends = [ base random text ];
        description = "Think back of the five tenets of hero club";
        license = lib.licenses.bsd3;
+       mainProgram = "fivetenets";
      }) {};
 
   "heroku" = callPackage
@@ -132287,6 +134064,7 @@ self: {
        description = "the Haskell Extensible Shell: Haskell for Bash-style scripts";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hesh";
      }) {};
 
   "hesql" = callPackage
@@ -132305,6 +134083,7 @@ self: {
        description = "Haskell's embedded SQL";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hesql";
      }) {};
 
   "hetero-dict" = callPackage
@@ -132406,6 +134185,7 @@ self: {
        description = "Text Tetris";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hetris";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -132471,6 +134251,7 @@ self: {
        description = "Ethereum virtual machine evaluator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevm";
      }) {inherit (pkgs) libff; inherit (pkgs) secp256k1;};
 
   "hevolisa" = callPackage
@@ -132488,6 +134269,7 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevolisa";
      }) {};
 
   "hevolisa-dph" = callPackage
@@ -132507,6 +134289,7 @@ self: {
        description = "Genetic Mona Lisa problem in Haskell - using Data Parallel Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hevolisa";
      }) {};
 
   "hex" = callPackage
@@ -132587,6 +134370,7 @@ self: {
        description = "A small game based on domino-like hexagonal tiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hexmino";
        broken = true;
      }) {};
 
@@ -132842,6 +134626,7 @@ self: {
        description = "a text classification library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hext-exe";
        broken = true;
      }) {};
 
@@ -132911,6 +134696,7 @@ self: {
        description = "A server for Eye-Fi SD cards";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "heyefi";
        broken = true;
      }) {};
 
@@ -132969,6 +134755,7 @@ self: {
        description = "Flash debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfd";
      }) {};
 
   "hfiar" = callPackage
@@ -132985,6 +134772,7 @@ self: {
        description = "Four in a Row in Haskell!!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfiar";
      }) {};
 
   "hflags" = callPackage
@@ -133031,6 +134819,7 @@ self: {
        description = "Haskell source code formatter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfmt";
        broken = true;
      }) {};
 
@@ -133052,6 +134841,7 @@ self: {
        description = "Hess-Smith panel code for inviscid 2-d airfoil analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfoil";
        broken = true;
      }) {};
 
@@ -133101,6 +134891,7 @@ self: {
        description = "OpenGL fractal renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hfractal";
      }) {};
 
   "hfsevents" = callPackage
@@ -133116,7 +134907,7 @@ self: {
        libraryToolDepends = [ CoreServices ];
        description = "File/folder watching for OS X";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms = lib.platforms.darwin;
      }) {inherit (pkgs.darwin.apple_sdk.frameworks) Cocoa; 
          inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;};
 
@@ -133231,6 +135022,7 @@ self: {
        description = "Random generation of modal and hybrid logic formulas";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgen";
      }) {};
 
   "hgeometric" = callPackage
@@ -133408,6 +135200,7 @@ self: {
        description = "Bindings to libintl.h (gettext, bindtextdomain)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgettext";
        broken = true;
      }) {};
 
@@ -133455,6 +135248,7 @@ self: {
        description = "Haskell bindings to the GitHub API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgithub";
      }) {};
 
   "hgl-example" = callPackage
@@ -133471,6 +135265,7 @@ self: {
        description = "Various animations generated using HGL";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgl-example";
        broken = true;
      }) {HTam = null;};
 
@@ -133480,6 +135275,8 @@ self: {
        pname = "hgmp";
        version = "0.1.2";
        sha256 = "1sqnywh4h1nklcpci60n427m1kahkza1vy1j60jmq3lnlrbgzfzk";
+       revision = "1";
+       editedCabalFile = "0h9nrcrjbzjygcy1f4ws2gpjqqsy4l2zpv1fkxxi4flqj9yjl4i5";
        libraryHaskellDepends = [ base ghc-bignum ghc-prim ];
        testHaskellDepends = [ base QuickCheck ];
        description = "Haskell interface to GMP";
@@ -133505,6 +135302,7 @@ self: {
        description = "An haskell port of the java version of gom";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgom";
        broken = true;
      }) {};
 
@@ -133540,6 +135338,19 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "hgreet" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cpu, hosc, network }:
+     mkDerivation {
+       pname = "hgreet";
+       version = "0.1.0.0";
+       sha256 = "0z44k67jrplny90gl7lj2ax2piayzaf8ga74jp58pfwcjci6r01m";
+       revision = "3";
+       editedCabalFile = "02kqa51jn8x1r878pm1pk8gv0agvwmmxnh00cm445wclmydlr6w7";
+       libraryHaskellDepends = [ aeson base bytestring cpu hosc network ];
+       description = "Haskell module to interact with the greetd daemon trough it's IPC protocol";
+       license = lib.licenses.gpl3Plus;
+     }) {};
+
   "hgrep" = callPackage
     ({ mkDerivation, ansi-terminal, base, bytestring, ghc
      , ghc-exactprint, hscolour, lens, optparse-applicative, pcre-heavy
@@ -133561,6 +135372,7 @@ self: {
        description = "Search Haskell source code from the command line";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgrep";
        broken = true;
      }) {};
 
@@ -133687,6 +135499,7 @@ self: {
        description = "Generate scaffold for cabal project";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hi";
        broken = true;
      }) {};
 
@@ -133747,6 +135560,7 @@ self: {
        description = "Relatively efficient Tcl interpreter with support for basic operations";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hiccup";
      }) {};
 
   "hichi" = callPackage
@@ -133761,6 +135575,7 @@ self: {
        description = "haskell robot for IChat protocol";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hichi";
        broken = true;
      }) {};
 
@@ -133827,9 +135642,7 @@ self: {
        librarySystemDepends = [ systemd ];
        description = "Haskell bindings to HIDAPI";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) systemd;};
 
   "hidden-char" = callPackage
@@ -133878,6 +135691,7 @@ self: {
        ];
        description = "Set up a GHC API session";
        license = lib.licenses.bsd3;
+       mainProgram = "hie-bios";
      }) {};
 
   "hie-compat" = callPackage
@@ -133931,6 +135745,7 @@ self: {
        description = "The core of an IDE";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hie-core";
      }) {};
 
   "hiedb" = callPackage
@@ -133943,8 +135758,8 @@ self: {
        pname = "hiedb";
        version = "0.4.1.0";
        sha256 = "1389qmlga5rq8has02rn35pzag5wnfpx3w77r60mzl3b4pkpzi7i";
-       revision = "1";
-       editedCabalFile = "1ayy7xjbwfbdln1bqk9lpv2afc8kbzxyz9858gfafdd08kx0xmw1";
+       revision = "2";
+       editedCabalFile = "1mlsjdd41a89znafqssafwghlvk6bkijk5qkbgrm61h1h7flir2j";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -133958,6 +135773,7 @@ self: {
        ];
        description = "Generates a references DB from .hie files";
        license = lib.licenses.bsd3;
+       mainProgram = "hiedb";
      }) {};
 
   "hieraclus" = callPackage
@@ -134070,6 +135886,7 @@ self: {
        description = "Hierarchical spectral clustering of a graph";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cluster-tree";
      }) {};
 
   "hierarchy" = callPackage
@@ -134131,6 +135948,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "WiFi connection script generator";
        license = lib.licenses.bsd3;
+       mainProgram = "hifi";
      }) {};
 
   "higgledy" = callPackage
@@ -134170,6 +135988,7 @@ self: {
        description = "Memory usage statistics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "highWaterMark";
        broken = true;
      }) {};
 
@@ -134299,8 +136118,6 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Command line tool for highlighting parts of files matching a regex";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "highlight-versions" = callPackage
@@ -134318,6 +136135,7 @@ self: {
        description = "Highlight package versions which differ from the latest version on Hackage";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "highlight-versions";
        broken = true;
      }) {};
 
@@ -134396,6 +136214,7 @@ self: {
        ];
        description = "Generate STL models from SRTM elevation data";
        license = lib.licenses.bsd3;
+       mainProgram = "hills";
      }) {};
 
   "himerge" = callPackage
@@ -134415,6 +136234,7 @@ self: {
        description = "Haskell Graphical User Interface for Emerge";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himerge";
        broken = true;
      }) {mozembed = null;};
 
@@ -134437,6 +136257,7 @@ self: {
        description = "Simple gtk2hs image viewer. Point it at an image and fire away.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himg";
        broken = true;
      }) {};
 
@@ -134460,6 +136281,7 @@ self: {
        description = "multithreaded snmp poller for riemann";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "himpy";
      }) {};
 
   "hindent" = callPackage
@@ -134494,6 +136316,7 @@ self: {
        ];
        description = "Extensible Haskell pretty printer";
        license = lib.licenses.bsd3;
+       mainProgram = "hindent";
      }) {};
 
   "hindley-milner" = callPackage
@@ -134629,6 +136452,7 @@ self: {
        testHaskellDepends = [ aeson base optparse-applicative text yaml ];
        description = "Command Line App With Info on your Haskell App";
        license = lib.licenses.bsd3;
+       mainProgram = "hinfo";
      }) {};
 
   "hinit" = callPackage
@@ -134659,7 +136483,8 @@ self: {
        ];
        description = "Generic project initialization tool";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ poscat ];
+       mainProgram = "hi";
+       maintainers = [ lib.maintainers.poscat ];
      }) {};
 
   "hinotify_0_3_9" = callPackage
@@ -134707,9 +136532,7 @@ self: {
        ];
        description = "Haskell binding to inotify, using ByteString filepaths";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "hinotify-conduit" = callPackage
@@ -134874,6 +136697,7 @@ self: {
        description = "Space Invaders";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hinvaders";
      }) {};
 
   "hinze-streams" = callPackage
@@ -134986,6 +136810,7 @@ self: {
        ];
        description = "an IPS patcher";
        license = lib.licenses.bsd3;
+       mainProgram = "hips";
      }) {};
 
   "hipsql-api" = callPackage
@@ -135021,6 +136846,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hipsql";
      }) {};
 
   "hipsql-monad" = callPackage
@@ -135053,6 +136879,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hipsql-demo-server";
      }) {};
 
   "hircules" = callPackage
@@ -135072,6 +136899,7 @@ self: {
        description = "IRC client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hircules";
        broken = true;
      }) {};
 
@@ -135094,6 +136922,7 @@ self: {
        description = "Calculates IRT 2PL and 3PL models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hirt";
      }) {};
 
   "hissmetrics" = callPackage
@@ -135135,6 +136964,7 @@ self: {
        description = "Umbrella package for the historical dictionary of Polish";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hist-pl";
      }) {};
 
   "hist-pl-dawg" = callPackage
@@ -135285,6 +137115,7 @@ self: {
        description = "Extract the interesting bits from shell history";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "historian";
        broken = true;
      }) {};
 
@@ -135305,6 +137136,7 @@ self: {
        description = "Git like program in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hit";
      }) {};
 
   "hit-graph" = callPackage
@@ -135343,6 +137175,7 @@ self: {
        description = "Haskell Git Helper Tool";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hit";
        broken = true;
      }) {};
 
@@ -135392,6 +137225,7 @@ self: {
        description = "JavaScript Parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hjs";
        broken = true;
      }) {};
 
@@ -135418,6 +137252,7 @@ self: {
        ];
        description = "Haskell implementation of a javascript minifier";
        license = lib.licenses.bsd3;
+       mainProgram = "hjsmin";
      }) {};
 
   "hjson" = callPackage
@@ -135546,6 +137381,7 @@ self: {
        description = "Majority Judgment and Helios-C command line tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hjugement";
      }) {};
 
   "hjugement-protocol" = callPackage
@@ -135658,6 +137494,7 @@ self: {
        ];
        description = "Simple Hackage release workflow for package maintainers";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hkgr";
      }) {};
 
   "hkgr_0_4" = callPackage
@@ -135678,6 +137515,7 @@ self: {
        description = "Simple Hackage release workflow for package maintainers";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hkgr";
      }) {};
 
   "hkt" = callPackage
@@ -135779,6 +137617,7 @@ self: {
        description = "Web Socket interface to Leap Motion controller";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leap-tracker";
        broken = true;
      }) {};
 
@@ -135821,7 +137660,52 @@ self: {
        ];
        description = "Command-line interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger";
+       maintainers = [ lib.maintainers.peti ];
+     }) {};
+
+  "hledger_1_26" = callPackage
+    ({ mkDerivation, aeson, ansi-terminal, base, bytestring, cmdargs
+     , containers, data-default, Decimal, Diff, directory, extra
+     , filepath, githash, hashable, haskeline, hledger-lib, lucid
+     , math-functions, megaparsec, microlens, mtl, process, regex-tdfa
+     , safe, shakespeare, split, tabular, tasty, temporary, terminfo
+     , text, time, timeit, transformers, unordered-containers
+     , utf8-string, utility-ht, wizards
+     }:
+     mkDerivation {
+       pname = "hledger";
+       version = "1.26";
+       sha256 = "15gl5nms9yn1jr8di9sj9r3l9ysihvdn6m4c962y6ka8v695ppg2";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal Diff directory extra filepath githash hashable haskeline
+         hledger-lib lucid math-functions megaparsec microlens mtl process
+         regex-tdfa safe shakespeare split tabular tasty temporary terminfo
+         text time timeit transformers unordered-containers utf8-string
+         utility-ht wizards
+       ];
+       executableHaskellDepends = [
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal directory extra filepath githash haskeline hledger-lib
+         math-functions megaparsec microlens mtl process regex-tdfa safe
+         shakespeare split tabular tasty temporary terminfo text time timeit
+         transformers unordered-containers utf8-string utility-ht wizards
+       ];
+       testHaskellDepends = [
+         aeson ansi-terminal base bytestring cmdargs containers data-default
+         Decimal directory extra filepath githash haskeline hledger-lib
+         math-functions megaparsec microlens mtl process regex-tdfa safe
+         shakespeare split tabular tasty temporary terminfo text time timeit
+         transformers unordered-containers utf8-string utility-ht wizards
+       ];
+       description = "Command-line interface for the hledger accounting system";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-api" = callPackage
@@ -135847,6 +137731,7 @@ self: {
        description = "Web API server for the hledger accounting tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-api";
        broken = true;
      }) {};
 
@@ -135867,6 +137752,7 @@ self: {
        description = "A pie chart image generator for the hledger accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-chart";
        broken = true;
      }) {};
 
@@ -135882,6 +137768,7 @@ self: {
        description = "Compares the transactions in two ledger files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-diff";
        broken = true;
      }) {};
 
@@ -135908,6 +137795,7 @@ self: {
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hledger-flow";
      }) {};
 
   "hledger-iadd" = callPackage
@@ -135921,6 +137809,8 @@ self: {
        pname = "hledger-iadd";
        version = "1.3.17";
        sha256 = "1b3qz5vm8db6gsdakg8nf3qc6rp7mlh3zpkzvhi80pqm3jzdbjph";
+       revision = "1";
+       editedCabalFile = "0vzyhfbmjlzaxb19rld931hw9w2mpik1pdscgdq6sr52x9kwr4c1";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -135940,6 +137830,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A terminal UI as drop-in replacement for hledger add";
        license = lib.licenses.bsd3;
+       mainProgram = "hledger-iadd";
      }) {};
 
   "hledger-interest" = callPackage
@@ -135958,7 +137849,27 @@ self: {
        ];
        description = "computes interest for a given account";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-interest";
+       maintainers = [ lib.maintainers.peti ];
+     }) {};
+
+  "hledger-interest_1_6_4" = callPackage
+    ({ mkDerivation, base, Cabal, Decimal, hledger-lib, mtl, text, time
+     }:
+     mkDerivation {
+       pname = "hledger-interest";
+       version = "1.6.4";
+       sha256 = "1719sa7zxaa5amrqhkckn9ip5wzc2qbi8gn4f3l98a7sh77f9fym";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         base Cabal Decimal hledger-lib mtl text time
+       ];
+       description = "computes interest for a given account";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-interest";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-irr" = callPackage
@@ -135978,6 +137889,7 @@ self: {
        description = "computes the internal rate of return of an investment";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-irr";
        broken = true;
      }) {};
 
@@ -136017,6 +137929,43 @@ self: {
        license = lib.licenses.gpl3Only;
      }) {};
 
+  "hledger-lib_1_26" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, array, base
+     , blaze-markup, bytestring, call-stack, cassava, cassava-megaparsec
+     , cmdargs, containers, data-default, Decimal, directory, doclayout
+     , extra, file-embed, filepath, Glob, hashtables, megaparsec
+     , microlens, microlens-th, mtl, parser-combinators, pretty-simple
+     , regex-tdfa, safe, tabular, tasty, tasty-hunit, template-haskell
+     , text, time, timeit, transformers, uglymemo, unordered-containers
+     , utf8-string
+     }:
+     mkDerivation {
+       pname = "hledger-lib";
+       version = "1.26";
+       sha256 = "159s1gqd14d9khlvb9145dbi5qmgqzhla4fixfp28bxyszy363py";
+       libraryHaskellDepends = [
+         aeson aeson-pretty ansi-terminal array base blaze-markup bytestring
+         call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal directory doclayout extra file-embed filepath
+         Glob hashtables megaparsec microlens microlens-th mtl
+         parser-combinators pretty-simple regex-tdfa safe tabular tasty
+         tasty-hunit template-haskell text time timeit transformers uglymemo
+         unordered-containers utf8-string
+       ];
+       testHaskellDepends = [
+         aeson aeson-pretty ansi-terminal array base blaze-markup bytestring
+         call-stack cassava cassava-megaparsec cmdargs containers
+         data-default Decimal directory doclayout extra file-embed filepath
+         Glob hashtables megaparsec microlens microlens-th mtl
+         parser-combinators pretty-simple regex-tdfa safe tabular tasty
+         tasty-hunit template-haskell text time timeit transformers uglymemo
+         unordered-containers utf8-string
+       ];
+       description = "A reusable library providing the core functionality of hledger";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hledger-makeitso" = callPackage
     ({ mkDerivation, base, containers, foldl, HUnit, stm, text, time
      , turtle
@@ -136036,6 +137985,7 @@ self: {
        ];
        description = "An hledger workflow focusing on automated statement import and classification";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hledger-makeitso";
      }) {};
 
   "hledger-stockquotes" = callPackage
@@ -136065,6 +138015,36 @@ self: {
        ];
        description = "Generate HLedger Price Directives From Daily Stock Quotes";
        license = lib.licenses.bsd3;
+       mainProgram = "hledger-stockquotes";
+     }) {};
+
+  "hledger-stockquotes_0_1_2_1" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
+     , directory, hedgehog, hledger-lib, raw-strings-qq, req, safe
+     , safe-exceptions, scientific, split, tasty, tasty-hedgehog
+     , tasty-hunit, text, time, unordered-containers, xdg-basedir, yaml
+     }:
+     mkDerivation {
+       pname = "hledger-stockquotes";
+       version = "0.1.2.1";
+       sha256 = "09h021dcpya8492kgyqkd2irxa10kwc9dgzk5xn7r121hl55jp50";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base bytestring containers hledger-lib req safe scientific
+         split text time unordered-containers
+       ];
+       executableHaskellDepends = [
+         aeson base bytestring cmdargs directory raw-strings-qq
+         safe-exceptions text time xdg-basedir yaml
+       ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Generate HLedger Price Directives From Daily Stock Quotes";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-stockquotes";
      }) {};
 
   "hledger-ui" = callPackage
@@ -136088,7 +138068,36 @@ self: {
        ];
        description = "Curses-style terminal interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-ui";
+       maintainers = [ lib.maintainers.peti ];
+     }) {};
+
+  "hledger-ui_1_26" = callPackage
+    ({ mkDerivation, ansi-terminal, async, base, brick, cmdargs
+     , containers, data-default, directory, doclayout, extra, filepath
+     , fsnotify, hledger, hledger-lib, megaparsec, microlens
+     , microlens-platform, mtl, process, safe, split, text, text-zipper
+     , time, transformers, unix, vector, vty
+     }:
+     mkDerivation {
+       pname = "hledger-ui";
+       version = "1.26";
+       sha256 = "09x45yvc266p2v8aby8iy0ric9lmxgcvnxkvl2j3v6i7x2nad498";
+       revision = "1";
+       editedCabalFile = "0dczpzkayd56h323jk76vc4fkxp9k1gm3iywsvg2m2hlhi0kc9h4";
+       isLibrary = false;
+       isExecutable = true;
+       executableHaskellDepends = [
+         ansi-terminal async base brick cmdargs containers data-default
+         directory doclayout extra filepath fsnotify hledger hledger-lib
+         megaparsec microlens microlens-platform mtl process safe split text
+         text-zipper time transformers unix vector vty
+       ];
+       description = "Curses-style terminal interface for the hledger accounting system";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-ui";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hledger-vty" = callPackage
@@ -136107,6 +138116,7 @@ self: {
        description = "A curses-style console interface for the hledger accounting tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-vty";
        broken = true;
      }) {};
 
@@ -136143,7 +138153,46 @@ self: {
        ];
        description = "Web-based user interface for the hledger accounting system";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "hledger-web";
+       maintainers = [ lib.maintainers.peti ];
+     }) {};
+
+  "hledger-web_1_26" = callPackage
+    ({ mkDerivation, aeson, base, base64, blaze-html, blaze-markup
+     , bytestring, case-insensitive, clientsession, cmdargs, conduit
+     , conduit-extra, containers, data-default, Decimal, directory
+     , extra, filepath, hjsmin, hledger, hledger-lib, hspec, http-client
+     , http-conduit, http-types, megaparsec, mtl, network, shakespeare
+     , template-haskell, text, time, transformers, unix-compat
+     , unordered-containers, utf8-string, wai, wai-cors, wai-extra
+     , wai-handler-launch, warp, yaml, yesod, yesod-core, yesod-form
+     , yesod-static, yesod-test
+     }:
+     mkDerivation {
+       pname = "hledger-web";
+       version = "1.26";
+       sha256 = "1h4h98kv645gzb4dyhfwpa7f0xpci89la247z9aqng57d84w98ka";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson base base64 blaze-html blaze-markup bytestring
+         case-insensitive clientsession cmdargs conduit conduit-extra
+         containers data-default Decimal directory extra filepath hjsmin
+         hledger hledger-lib hspec http-client http-conduit http-types
+         megaparsec mtl network shakespeare template-haskell text time
+         transformers unix-compat unordered-containers utf8-string wai
+         wai-cors wai-extra wai-handler-launch warp yaml yesod yesod-core
+         yesod-form yesod-static yesod-test
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base hledger hledger-lib hspec text yesod yesod-test
+       ];
+       description = "Web-based user interface for the hledger accounting system";
+       license = lib.licenses.gpl3Only;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hledger-web";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hlibBladeRF" = callPackage
@@ -136175,6 +138224,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Bindings to https://github.com/anrieff/libcpuid";
        license = lib.licenses.mit;
+       mainProgram = "cpuid";
      }) {};
 
   "hlibev" = callPackage
@@ -136257,7 +138307,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hlint";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hlint_3_4" = callPackage
@@ -136284,7 +138335,8 @@ self: {
        description = "Source code suggestions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hlint";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hlint-test" = callPackage
@@ -136299,6 +138351,7 @@ self: {
        executableHaskellDepends = [ base hlint ];
        description = "Run hlint in test suite";
        license = lib.licenses.bsd3;
+       mainProgram = "hlint-test";
      }) {};
 
   "hlist" = callPackage
@@ -136363,6 +138416,7 @@ self: {
        description = "Library and utility interfacing to longurl.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hlongurl";
        broken = true;
      }) {};
 
@@ -137024,6 +139078,7 @@ self: {
        description = "A tool and library for Markov chains based text generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmark";
      }) {};
 
   "hmarkup" = callPackage
@@ -137058,7 +139113,7 @@ self: {
        librarySystemDepends = [ openblasCompat ];
        description = "Numeric Linear Algebra";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {inherit (pkgs) openblasCompat;};
 
   "hmatrix-backprop" = callPackage
@@ -137441,6 +139496,7 @@ self: {
        description = "CLI fuzzy finder and launcher";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmenu";
        broken = true;
      }) {};
 
@@ -137493,6 +139549,7 @@ self: {
        description = "A make alternative based on Plan9's mk";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmk";
        broken = true;
      }) {};
 
@@ -137579,6 +139636,7 @@ self: {
        description = "An ncurses mp3 player written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmp3";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -137600,6 +139658,7 @@ self: {
        executableSystemDepends = [ ncurses ];
        description = "A 2019 fork of an ncurses mp3 player written in Haskell";
        license = "GPL";
+       mainProgram = "hmp3";
      }) {inherit (pkgs) ncurses;};
 
   "hmpfr" = callPackage
@@ -137673,6 +139732,7 @@ self: {
        description = "Interpreter for the MUMPS langugae";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmumps";
        broken = true;
      }) {};
 
@@ -137758,7 +139818,10 @@ self: {
        ];
        description = "Haskell implementation of the Nix language";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Anton-Latukha ];
+       mainProgram = "hnix";
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnix_0_16_0" = callPackage
@@ -137813,10 +139876,13 @@ self: {
        description = "Haskell implementation of the Nix language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Anton-Latukha ];
+       mainProgram = "hnix";
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
-  "hnix-store-core" = callPackage
+  "hnix-store-core_0_5_0_0" = callPackage
     ({ mkDerivation, algebraic-graphs, attoparsec, base
      , base16-bytestring, base64-bytestring, binary, bytestring, cereal
      , containers, cryptonite, directory, filepath, hashable, hspec
@@ -137846,10 +139912,47 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Core effects for interacting with the Nix store";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ Anton-Latukha ];
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
-  "hnix-store-remote" = callPackage
+  "hnix-store-core" = callPackage
+    ({ mkDerivation, algebraic-graphs, attoparsec, base
+     , base16-bytestring, base64-bytestring, binary, bytestring, cereal
+     , containers, cryptonite, directory, filepath, hashable, hspec
+     , lifted-base, memory, monad-control, mtl, nix-derivation, process
+     , relude, saltine, tasty, tasty-discover, tasty-golden, tasty-hspec
+     , tasty-hunit, tasty-quickcheck, temporary, text, time, unix
+     , unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "hnix-store-core";
+       version = "0.6.0.0";
+       sha256 = "1ypwkwc21dx2716chv7qpq75qs7hshy45sdbgwk1h33maisnkn88";
+       libraryHaskellDepends = [
+         algebraic-graphs attoparsec base base16-bytestring
+         base64-bytestring bytestring cereal containers cryptonite directory
+         filepath hashable lifted-base memory monad-control mtl
+         nix-derivation relude saltine text time unix unordered-containers
+         vector
+       ];
+       testHaskellDepends = [
+         attoparsec base base16-bytestring base64-bytestring binary
+         bytestring containers cryptonite directory filepath hspec process
+         relude tasty tasty-golden tasty-hspec tasty-hunit tasty-quickcheck
+         temporary text unix
+       ];
+       testToolDepends = [ tasty-discover ];
+       description = "Core effects for interacting with the Nix store";
+       license = lib.licenses.asl20;
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
+     }) {};
+
+  "hnix-store-remote_0_5_0_0" = callPackage
     ({ mkDerivation, attoparsec, base, binary, bytestring, containers
      , cryptonite, hnix-store-core, mtl, network, nix-derivation, text
      , time, unordered-containers
@@ -137865,7 +139968,31 @@ self: {
        ];
        description = "Remote hnix store";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ Anton-Latukha ];
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
+     }) {};
+
+  "hnix-store-remote" = callPackage
+    ({ mkDerivation, attoparsec, base, binary, bytestring, containers
+     , cryptonite, hnix-store-core, mtl, network, nix-derivation, relude
+     , text, time, unordered-containers
+     }:
+     mkDerivation {
+       pname = "hnix-store-remote";
+       version = "0.6.0.0";
+       sha256 = "1myib16z5rjx9wa3vbixwq3niqmkhdzjnsinqshvmk6hqwpgqv7r";
+       libraryHaskellDepends = [
+         attoparsec base binary bytestring containers cryptonite
+         hnix-store-core mtl network nix-derivation relude text time
+         unordered-containers
+       ];
+       description = "Remote hnix store";
+       license = lib.licenses.asl20;
+       maintainers = [
+         lib.maintainers.Anton-Latukha lib.maintainers.sorki
+       ];
      }) {};
 
   "hnn" = callPackage
@@ -137901,6 +140028,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Nock interpreter";
        license = lib.licenses.mit;
+       mainProgram = "hnock";
      }) {};
 
   "hnop" = callPackage
@@ -137914,6 +140042,7 @@ self: {
        executableHaskellDepends = [ base ];
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hnop";
        broken = true;
      }) {};
 
@@ -138057,6 +140186,7 @@ self: {
        description = "A source code editor aiming for the convenience of use";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hob";
      }) {};
 
   "hobbes" = callPackage
@@ -138075,6 +140205,7 @@ self: {
        description = "A small file watcher for OSX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hobbes";
        broken = true;
      }) {};
 
@@ -138218,6 +140349,7 @@ self: {
        description = "hoe: Haskell One-liner Evaluator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoe";
        broken = true;
      }) {};
 
@@ -138250,6 +140382,7 @@ self: {
        description = "Simple IRC logger bot";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hog";
        broken = true;
      }) {};
 
@@ -138296,6 +140429,7 @@ self: {
        description = "Bindings to the Toggl.com REST API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoggl";
        broken = true;
      }) {};
 
@@ -138345,6 +140479,7 @@ self: {
        description = "OIS bindings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "OISConsole";
        broken = true;
      }) {OIS = null;};
 
@@ -138390,6 +140525,7 @@ self: {
        description = "Higher order logic";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hol-pkg";
        broken = true;
      }) {};
 
@@ -138529,7 +140665,7 @@ self: {
        ];
        description = "DirectSound extension (Windows) for the Hommage sound library";
        license = "GPL";
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "homoiconic" = callPackage
@@ -138589,6 +140725,7 @@ self: {
        description = "Haskell code quality tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "homplexity-cli";
        broken = true;
      }) {};
 
@@ -138603,6 +140740,7 @@ self: {
        libraryHaskellDepends = [ base hourglass split ];
        executableHaskellDepends = [ base hourglass split ];
        license = lib.licenses.mit;
+       mainProgram = "homura-stopwatch";
      }) {};
 
   "honeycomb" = callPackage
@@ -138660,9 +140798,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Cross-platform interface to the PC speaker";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "hoobuddy" = callPackage
@@ -138682,6 +140818,7 @@ self: {
        description = "Simple tool for fetching and merging hoogle data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoobuddy";
        broken = true;
      }) {};
 
@@ -138740,6 +140877,7 @@ self: {
        description = "A small, toy roguelike";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodie";
      }) {};
 
   "hoodle" = callPackage
@@ -138761,6 +140899,7 @@ self: {
        description = "Executable for hoodle";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodle";
      }) {};
 
   "hoodle-builder" = callPackage
@@ -138882,6 +141021,7 @@ self: {
        description = "publish hoodle files as a static web site";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoodle-publish";
      }) {};
 
   "hoodle-render" = callPackage
@@ -138953,6 +141093,7 @@ self: {
        testTarget = "--test-option=--no-net";
        description = "Haskell API Search";
        license = lib.licenses.bsd3;
+       mainProgram = "hoogle";
      }) {};
 
   "hoogle-index" = callPackage
@@ -138973,6 +141114,7 @@ self: {
        description = "Easily generate Hoogle indices for installed packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoogle-index";
        broken = true;
      }) {};
 
@@ -139071,6 +141213,7 @@ self: {
        description = "Haskell Media Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoovie";
      }) {};
 
   "hopencc" = callPackage
@@ -139125,8 +141268,8 @@ self: {
      }:
      mkDerivation {
        pname = "hopenpgp-tools";
-       version = "0.23.6";
-       sha256 = "0hjh6avcd24czd5dv0kr78hkv8k48i3lgcxiahnfjaqwirmg5wix";
+       version = "0.23.7";
+       sha256 = "0mzq83bszlyxl3if35172nvzn930777nm1q9clkkyvqh2nrkfhdh";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -139157,7 +141300,7 @@ self: {
        testHaskellDepends = [ base bytestring HUnit ];
        description = "FFI Bindings to OpenSSL's EVP Digest Interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) openssl;};
 
   "hopfield" = callPackage
@@ -139213,6 +141356,7 @@ self: {
        ];
        description = "Hopfield Networks for unsupervised learning in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hopfield_demonstration";
      }) {};
 
   "hopfli" = callPackage
@@ -139322,6 +141466,7 @@ self: {
        description = "Handy Operations on Power Series";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hops";
        broken = true;
      }) {};
 
@@ -139343,6 +141488,7 @@ self: {
        description = "A language based on homotopy type theory with an interval type";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hoq";
        broken = true;
      }) {};
 
@@ -139393,6 +141539,7 @@ self: {
        testHaskellDepends = [ base HMock tasty tasty-hunit ];
        description = "horizontal rule for the terminal";
        license = lib.licenses.mit;
+       mainProgram = "hr";
      }) {};
 
   "horname" = callPackage
@@ -139412,6 +141559,7 @@ self: {
        description = "Rename function definitions returned by SMT solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "horname";
        broken = true;
      }) {};
 
@@ -139528,6 +141676,7 @@ self: {
        description = "An dns server which is extremely easy to config";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hosts-server";
        broken = true;
      }) {};
 
@@ -139548,6 +141697,7 @@ self: {
        description = "Generates ctags for Haskell, incorporating import lists and qualified imports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hothasktags";
        broken = true;
      }) {};
 
@@ -139639,6 +141789,7 @@ self: {
        description = "A Haskell implementation of Foreman";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "houseman";
        broken = true;
      }) {};
 
@@ -139715,6 +141866,7 @@ self: {
        description = "A utility to visualise and compare heap profiles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hp2any-manager";
      }) {};
 
   "hp2html" = callPackage
@@ -139729,6 +141881,7 @@ self: {
        executableHaskellDepends = [ base containers filepath ];
        description = "A tool for converting GHC heap-profiles to HTML";
        license = lib.licenses.bsd3;
+       mainProgram = "hp2html";
      }) {};
 
   "hp2pretty" = callPackage
@@ -139747,6 +141900,7 @@ self: {
        ];
        description = "generate pretty graphs from heap profiles";
        license = lib.licenses.bsd3;
+       mainProgram = "hp2pretty";
      }) {};
 
   "hpack" = callPackage
@@ -139785,6 +141939,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
+       mainProgram = "hpack";
      }) {};
 
   "hpack_0_35_0" = callPackage
@@ -139824,6 +141979,7 @@ self: {
        description = "A modern format for Haskell packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpack";
      }) {};
 
   "hpack-convert" = callPackage
@@ -139856,6 +142012,7 @@ self: {
        description = "Convert Cabal manifests into hpack's package.yamls";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpack-convert";
        broken = true;
      }) {};
 
@@ -139936,6 +142093,7 @@ self: {
        description = "Modular template compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpaco";
      }) {};
 
   "hpaco-lib" = callPackage
@@ -139976,6 +142134,7 @@ self: {
        description = "A scrapbook for Haskell developers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpage";
      }) {};
 
   "hpapi" = callPackage
@@ -139988,9 +142147,9 @@ self: {
        librarySystemDepends = [ papi ];
        description = "Binding for the PAPI library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {inherit (pkgs) papi;};
 
   "hpaste" = callPackage
@@ -140019,6 +142178,7 @@ self: {
        description = "Haskell paste web site";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpaste";
      }) {};
 
   "hpasteit" = callPackage
@@ -140039,6 +142199,7 @@ self: {
        description = "A command-line client for hpaste.org";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpasteit";
        broken = true;
      }) {};
 
@@ -140156,6 +142317,7 @@ self: {
        ];
        description = "Generate codecov report from hpc data";
        license = lib.licenses.bsd3;
+       mainProgram = "hpc-codecov";
      }) {};
 
   "hpc-coveralls" = callPackage
@@ -140194,8 +142356,8 @@ self: {
        pname = "hpc-lcov";
        version = "1.0.1";
        sha256 = "01ws5y2vavgm7151dcabw3jwny1prrnzn5b04q76m5gc6a36wivl";
-       revision = "3";
-       editedCabalFile = "1nq636asnibbx6mrx18kr02pcg3jr2m28z40vk9iydmz6lr5msni";
+       revision = "4";
+       editedCabalFile = "0mds8q19pqxgrmyzgzrc01zb6wf7gx5cjl8brvw7ljkyrb2n2lya";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base containers hpc ];
@@ -140210,6 +142372,7 @@ self: {
        description = "Convert HPC output into LCOV format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpc-lcov";
        broken = true;
      }) {};
 
@@ -140239,6 +142402,7 @@ self: {
        testHaskellDepends = [ base deepseq hspec ];
        description = "Ensure the code coverage is above configured thresholds";
        license = lib.licenses.bsd3;
+       mainProgram = "hpc-threshold";
      }) {};
 
   "hpc-tracer" = callPackage
@@ -140258,6 +142422,7 @@ self: {
        description = "Tracer with AJAX interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpc-tracer";
      }) {};
 
   "hpdft" = callPackage
@@ -140281,6 +142446,7 @@ self: {
        ];
        description = "A tool for looking through PDF file using Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hpdft";
      }) {};
 
   "hpg" = callPackage
@@ -140295,6 +142461,7 @@ self: {
        description = "a simple password generator";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpg";
        broken = true;
      }) {};
 
@@ -140359,6 +142526,7 @@ self: {
        description = "Application for managing playlist files on a music player";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hplaylist";
        broken = true;
      }) {};
 
@@ -140380,6 +142548,7 @@ self: {
        description = "Podcast Aggregator (downloader)";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpodder";
        broken = true;
      }) {};
 
@@ -140401,6 +142570,7 @@ self: {
        testHaskellDepends = [ base bytestring transformers ];
        description = "A Haskell pre-processor";
        license = lib.licenses.bsd3;
+       mainProgram = "hpp";
      }) {};
 
   "hpqtypes" = callPackage
@@ -140485,6 +142655,7 @@ self: {
        description = "Parse Google Protocol Buffer specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hprotoc";
        broken = true;
      }) {};
 
@@ -140515,6 +142686,7 @@ self: {
        description = "Parse Google Protocol Buffer specifications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hprotoc";
      }) {};
 
   "hprox" = callPackage
@@ -140537,6 +142709,7 @@ self: {
        ];
        description = "a lightweight HTTP proxy server, and more";
        license = lib.licenses.asl20;
+       mainProgram = "hprox";
      }) {};
 
   "hps" = callPackage
@@ -140624,6 +142797,7 @@ self: {
        description = "AI of Pylos game with GLUT interface";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpylos";
        broken = true;
      }) {};
 
@@ -140641,6 +142815,7 @@ self: {
        description = "pyrg utility done right";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hpyrg";
        broken = true;
      }) {};
 
@@ -140672,6 +142847,7 @@ self: {
        description = "Python language tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hq" = callPackage
@@ -140730,6 +142906,7 @@ self: {
        description = "HQuantLib is a port of essencial parts of QuantLib to Haskell";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mctest";
      }) {};
 
   "hquantlib-time" = callPackage
@@ -140776,6 +142953,7 @@ self: {
        description = "Basic utility for ranking a list of items";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hranker";
      }) {};
 
   "hreader" = callPackage
@@ -140839,6 +143017,7 @@ self: {
        description = "A Type dependent Highlevel HTTP client library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "hreq-conduit" = callPackage
@@ -140912,6 +143091,7 @@ self: {
        description = "A Cricket scoring application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hricket";
        broken = true;
      }) {};
 
@@ -140938,6 +143118,8 @@ self: {
        ];
        description = "A Riemann Client for Haskell";
        license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "hriemann-exe";
      }) {};
 
   "hruby" = callPackage
@@ -140986,6 +143168,7 @@ self: {
        description = "GHC-toolchain installer broker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs";
      }) {};
 
   "hs-GeoIP" = callPackage
@@ -141148,6 +143331,7 @@ self: {
        ];
        description = "Conllu validating parser and utils";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "hs-conllu";
      }) {};
 
   "hs-di" = callPackage
@@ -141178,6 +143362,7 @@ self: {
        description = "Dependency Injection library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-di-cases";
        broken = true;
      }) {};
 
@@ -141305,6 +143490,7 @@ self: {
        description = "Utility to generate haskell-names interface files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-gen-iface";
      }) {};
 
   "hs-gizapp" = callPackage
@@ -141409,6 +143595,7 @@ self: {
        description = "Logo interpreter written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-logo";
        broken = true;
      }) {};
 
@@ -141469,6 +143656,7 @@ self: {
        description = "Name generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-nombre-generator";
        broken = true;
      }) {};
 
@@ -141485,6 +143673,7 @@ self: {
        description = "The OpenMoji emoji dataset";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -141497,8 +143686,8 @@ self: {
      }:
      mkDerivation {
        pname = "hs-opentelemetry-api";
-       version = "0.0.3.4";
-       sha256 = "0qg5kaybxax632nbj6qjrn02j1c954kpw5xv3yqsysdqqcqxw6bg";
+       version = "0.0.3.5";
+       sha256 = "0jk623sg997d92iid7v04bh83mp09bb1fyf0j005r9f0zgmdmwvv";
        libraryHaskellDepends = [
          async attoparsec base binary bytestring charset clock containers
          ghc-prim hashable http-types memory mtl template-haskell text
@@ -141558,6 +143747,28 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "hs-opentelemetry-instrumentation-cloudflare" = callPackage
+    ({ mkDerivation, base, case-insensitive, hs-opentelemetry-api
+     , hs-opentelemetry-instrumentation-conduit
+     , hs-opentelemetry-instrumentation-wai, http-types, text, wai
+     }:
+     mkDerivation {
+       pname = "hs-opentelemetry-instrumentation-cloudflare";
+       version = "0.1.0.0";
+       sha256 = "06y13lh1f6nad7rvkrgxmqm6rhaxfi97dgwqrjj5kv3cdi3rdl5m";
+       libraryHaskellDepends = [
+         base case-insensitive hs-opentelemetry-api
+         hs-opentelemetry-instrumentation-wai http-types text wai
+       ];
+       testHaskellDepends = [
+         base case-insensitive hs-opentelemetry-api
+         hs-opentelemetry-instrumentation-conduit
+         hs-opentelemetry-instrumentation-wai http-types text wai
+       ];
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hs-opentelemetry-instrumentation-conduit" = callPackage
     ({ mkDerivation, base, conduit, hs-opentelemetry-api, text }:
      mkDerivation {
@@ -141662,8 +143873,8 @@ self: {
      }:
      mkDerivation {
        pname = "hs-opentelemetry-instrumentation-yesod";
-       version = "0.0.1.2";
-       sha256 = "01rcd2mxm7g0c9sqw0m4z779py4d7p3zq01yw2499yhn75c9akya";
+       version = "0.0.1.3";
+       sha256 = "1222hkn0zjxd1bdclsridbz2bpr699k78fdvpcybgqvr2yazhyxa";
        libraryHaskellDepends = [
          base hs-opentelemetry-api hs-opentelemetry-instrumentation-wai
          microlens mtl template-haskell text unliftio wai yesod-core
@@ -141759,6 +143970,7 @@ self: {
        description = "DSL for musical patterns and transformation, based on contravariant functors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-pattrans";
        broken = true;
      }) {};
 
@@ -141780,6 +143992,7 @@ self: {
        description = "Programmer's Mine Sweeper in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-pgms";
        broken = true;
      }) {};
 
@@ -141842,6 +144055,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Bindings to C pipe functions";
        license = lib.licenses.bsd3;
+       mainProgram = "ls-example-exe";
      }) {};
 
   "hs-profunctors" = callPackage
@@ -141906,6 +144120,7 @@ self: {
        description = "Experimental! Wraps this awesome rust library so you can use it in haskell. https://docs.rs/crate/notify";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notify";
        broken = true;
      }) {notifier = null;};
 
@@ -141951,6 +144166,7 @@ self: {
        description = "Terminal Emulator written in Haskell, SDL2 Backend";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-sdl-term-emulator";
      }) {};
 
   "hs-server-starter" = callPackage
@@ -141983,6 +144199,7 @@ self: {
        description = "snowtify send your result of `stack build` (`stack test`) to notify-daemon :dog2:";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowtify";
        broken = true;
      }) {};
 
@@ -142002,6 +144219,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert an eventlog into the speedscope json format";
        license = lib.licenses.bsd3;
+       mainProgram = "hs-speedscope";
      }) {};
 
   "hs-swisstable-hashtables-class" = callPackage
@@ -142033,6 +144251,7 @@ self: {
        description = "Create tag files (ctags and etags) for Haskell code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-tags";
        broken = true;
      }) {};
 
@@ -142091,6 +144310,7 @@ self: {
        description = "Commandline Twitter feed archiver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-twitterarchiver";
        broken = true;
      }) {};
 
@@ -142170,6 +144390,7 @@ self: {
        ];
        description = "A 2048 clone in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "hs2048";
      }) {};
 
   "hs2ats" = callPackage
@@ -142194,6 +144415,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Create ATS types from Haskell types";
        license = lib.licenses.bsd3;
+       mainProgram = "hs2ats";
      }) {};
 
   "hs2bf" = callPackage
@@ -142213,6 +144435,7 @@ self: {
        description = "Haskell to Brainfuck compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs2bf";
        broken = true;
      }) {};
 
@@ -142232,6 +144455,7 @@ self: {
        description = "Generate graphviz-code from Haskell-code";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs2dot";
      }) {};
 
   "hs2ps" = callPackage
@@ -142348,6 +144572,7 @@ self: {
        ];
        description = "Akamai API(Edgegrid and Netstorage)";
        license = lib.licenses.bsd3;
+       mainProgram = "purge";
      }) {};
 
   "hsaml2" = callPackage
@@ -142433,6 +144658,7 @@ self: {
        description = "(ab)Use Google Translate as a speech synthesiser";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsay";
        broken = true;
      }) {};
 
@@ -142451,6 +144677,7 @@ self: {
        ];
        description = "Preprocesses a file, adding blobs from files as string literals";
        license = lib.licenses.bsd3;
+       mainProgram = "hsb2hs";
      }) {};
 
   "hsbackup" = callPackage
@@ -142470,6 +144697,7 @@ self: {
        description = "simple utility for rolling filesystem backups";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsbackup";
      }) {};
 
   "hsbc" = callPackage
@@ -142484,6 +144712,7 @@ self: {
        description = "A command line calculator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsbc";
        broken = true;
      }) {};
 
@@ -142573,6 +144802,7 @@ self: {
        ];
        description = "A preprocessor that helps with writing Haskell bindings to C code";
        license = lib.licenses.bsd3;
+       mainProgram = "hsc2hs";
      }) {};
 
   "hsc3" = callPackage
@@ -142689,6 +144919,7 @@ self: {
        description = "FORTH SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-forth";
      }) {};
 
   "hsc3-graphs" = callPackage
@@ -142714,6 +144945,7 @@ self: {
        description = "Haskell SuperCollider Graphs";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-graphs";
      }) {};
 
   "hsc3-lang" = callPackage
@@ -142756,6 +144988,7 @@ self: {
        description = "LISP SUPERCOLLIDER";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsc3-lisp";
      }) {};
 
   "hsc3-plot" = callPackage
@@ -142949,6 +145182,7 @@ self: {
        description = "Very simple file/directory structure scaffolding writer monad EDSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsfiles-from-directory";
        broken = true;
      }) {};
 
@@ -142998,6 +145232,7 @@ self: {
        description = "Command line client and library for SoundCloud.com";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscd";
        broken = true;
      }) {};
 
@@ -143174,6 +145409,7 @@ self: {
        description = "hscim json schema and server implementation";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscim-server";
        broken = true;
      }) {};
 
@@ -143189,6 +145425,7 @@ self: {
        description = "An elegant analog clock using Haskell, GTK and Cairo";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsclock";
        broken = true;
      }) {};
 
@@ -143205,6 +145442,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Colourise Haskell code";
        license = "LGPL";
+       mainProgram = "HsColour";
      }) {};
 
   "hscope" = callPackage
@@ -143228,6 +145466,7 @@ self: {
        description = "cscope like browser for Haskell code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hscope";
      }) {};
 
   "hscrtmpl" = callPackage
@@ -143243,6 +145482,7 @@ self: {
        ];
        description = "Haskell shell script template";
        license = lib.licenses.isc;
+       mainProgram = "hscrtmpl";
      }) {};
 
   "hscuid" = callPackage
@@ -143263,6 +145503,7 @@ self: {
        description = "Collision-resistant IDs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-test";
        broken = true;
      }) {};
 
@@ -143294,6 +145535,7 @@ self: {
        executableHaskellDepends = [ base hscurses random safe unix ];
        description = "hscurses swimming fish example";
        license = lib.licenses.isc;
+       mainProgram = "hscurses-fish-ex";
      }) {};
 
   "hsdev" = callPackage
@@ -143338,6 +145580,7 @@ self: {
        description = "Haskell development library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsdev";
      }) {};
 
   "hsdif" = callPackage
@@ -143367,6 +145610,7 @@ self: {
        description = "hsdip - a Diplomacy parser/renderer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsdip";
        broken = true;
      }) {};
 
@@ -143384,7 +145628,7 @@ self: {
        librarySystemDepends = [ adns ];
        description = "Asynchronous DNS Resolver";
        license = lib.licenses.lgpl3Only;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) adns;};
 
   "hsdns-cache" = callPackage
@@ -143444,7 +145688,7 @@ self: {
        testHaskellDepends = [ base hspec parsec time ];
        description = "Parsec parsers for the Internet Message format (e-mail)";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hsemail-ns" = callPackage
@@ -143475,6 +145719,7 @@ self: {
        ];
        description = "sendxmpp clone, sending XMPP messages via CLI";
        license = lib.licenses.agpl3Only;
+       mainProgram = "hsendxmpp";
      }) {};
 
   "hsenv" = callPackage
@@ -143496,6 +145741,7 @@ self: {
        description = "Virtual Haskell Environment builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsenv";
        broken = true;
      }) {};
 
@@ -143510,6 +145756,7 @@ self: {
        executableHaskellDepends = [ base cmdargs wai-app-static warp ];
        description = "Simple http server in haskell";
        license = lib.licenses.mit;
+       mainProgram = "hserv";
      }) {};
 
   "hset" = callPackage
@@ -143583,6 +145830,7 @@ self: {
        description = "Z-decoder";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsfilt";
        broken = true;
      }) {};
 
@@ -143668,6 +145916,7 @@ self: {
        ];
        description = "Console-based gettings-things-done application";
        license = "GPL";
+       mainProgram = "hsgtd";
      }) {};
 
   "hsharc" = callPackage
@@ -143698,6 +145947,7 @@ self: {
        libraryPkgconfigDepends = [ gsl ];
        description = "Signal processing and EEG data analysis";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {inherit (pkgs) blas; inherit (pkgs) gsl; 
          inherit (pkgs) liblapack;};
 
@@ -143715,6 +145965,7 @@ self: {
        ];
        description = "RPN calculator";
        license = lib.licenses.mit;
+       mainProgram = "hsilop";
      }) {};
 
   "hsimport" = callPackage
@@ -143743,6 +145994,7 @@ self: {
        description = "Extend the import list of a Haskell source file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsimport";
        broken = true;
      }) {};
 
@@ -143788,6 +146040,7 @@ self: {
        description = "Inspect Haskell source files";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsinspect";
        broken = true;
      }) {};
 
@@ -143820,6 +146073,7 @@ self: {
        description = "LSP interface over the hsinspect binary";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsinspect-lsp";
      }) {};
 
   "hsinstall" = callPackage
@@ -143841,6 +146095,7 @@ self: {
        ];
        description = "Install Haskell software";
        license = lib.licenses.isc;
+       mainProgram = "hsinstall";
      }) {};
 
   "hskeleton" = callPackage
@@ -143870,6 +146125,7 @@ self: {
        description = "HSlackBuilder automatically generates slackBuild scripts from a cabal package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cabal2slackBuild";
        broken = true;
      }) {};
 
@@ -143903,6 +146159,7 @@ self: {
        description = "Resolves links to Haskell identifiers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hslinks";
        broken = true;
      }) {};
 
@@ -144020,7 +146277,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua_2_2_0" = callPackage
+  "hslua_2_2_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions
      , hslua-aeson, hslua-classes, hslua-core, hslua-marshalling
      , hslua-objectorientation, hslua-packaging, lua, lua-arbitrary, mtl
@@ -144029,10 +146286,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua";
-       version = "2.2.0";
-       sha256 = "1krx9ay31q2rvnjncyirw77h7ljg20qqcix2zin81ws6wy4lwirq";
-       revision = "1";
-       editedCabalFile = "08zpky44l0hnk8l4xbasv47mn3043i7bn510jnrcldgj99zsaii1";
+       version = "2.2.1";
+       sha256 = "1q587cjwb29jsf71hhmra6djr2sycbx2hr0rhwlgvb8ax699vkv3";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua-aeson hslua-classes
          hslua-core hslua-marshalling hslua-objectorientation
@@ -144072,7 +146327,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-aeson_2_2_0" = callPackage
+  "hslua-aeson_2_2_0_1" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hashable
      , hslua-core, hslua-marshalling, mtl, QuickCheck
      , quickcheck-instances, scientific, tasty, tasty-quickcheck, text
@@ -144080,10 +146335,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-aeson";
-       version = "2.2.0";
-       sha256 = "0v2wn5y1hqj19qj8rd9py1z18jdnkl7gq26ibxzpcpv4wzdcw8ix";
-       revision = "1";
-       editedCabalFile = "19gpk14hw0qnb56ib0zqbd9hxn9vjc4814n80mnjswvkgq0jfifk";
+       version = "2.2.0.1";
+       sha256 = "0s6viv1gvwvla8i64ifqwmpcfpjcskpg1q6p11bszdakz1d9ay5f";
        libraryHaskellDepends = [
          aeson base bytestring containers hashable hslua-core
          hslua-marshalling mtl scientific text unordered-containers vector
@@ -144165,15 +146418,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-core_2_2_0" = callPackage
+  "hslua-core_2_2_1" = callPackage
     ({ mkDerivation, base, bytestring, exceptions, lua, lua-arbitrary
      , mtl, QuickCheck, quickcheck-instances, tasty, tasty-hunit
      , tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "hslua-core";
-       version = "2.2.0";
-       sha256 = "1nwh0alhnwgg4rzl113nlh8bkkq89dk9d9vl0iihipj9s2mk84bh";
+       version = "2.2.1";
+       sha256 = "0hy3a7rn940bcj0shxyk75dndwl23wwmmvbnwnay36py60hy3rbq";
        libraryHaskellDepends = [
          base bytestring exceptions lua mtl text
        ];
@@ -144224,17 +146477,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-marshalling_2_2_0" = callPackage
+  "hslua-marshalling_2_2_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, hslua-core
      , lua-arbitrary, mtl, QuickCheck, quickcheck-instances, tasty
      , tasty-hslua, tasty-hunit, tasty-quickcheck, text
      }:
      mkDerivation {
        pname = "hslua-marshalling";
-       version = "2.2.0";
-       sha256 = "0mwj7zqzgzijlx40amwzs4jbldd0vbjqv3x791kdxip3yyvnlyqi";
-       revision = "1";
-       editedCabalFile = "1k9f13rjivvg18a6l5pcmd844s0yxgg1cl6g4hk05g4bngibnhkh";
+       version = "2.2.1";
+       sha256 = "1xmix1frfcyv4p51rnshrg02gba7di7nrrc6chsq71d3mbwhyask";
        libraryHaskellDepends = [
          base bytestring containers hslua-core mtl text
        ];
@@ -144363,7 +146614,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-objectorientation_2_2_0_1" = callPackage
+  "hslua-objectorientation_2_2_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, exceptions
      , hslua-core, hslua-marshalling, lua-arbitrary, mtl, QuickCheck
      , quickcheck-instances, tasty, tasty-hslua, tasty-hunit
@@ -144371,8 +146622,8 @@ self: {
      }:
      mkDerivation {
        pname = "hslua-objectorientation";
-       version = "2.2.0.1";
-       sha256 = "04fm0d3rvb06k7b7jka2prlhnh7dl2j2410jdl5pbbnfkwbaw1q7";
+       version = "2.2.1";
+       sha256 = "13011yzz6lrgl2gasn9w5ggdqgrdz49hhqk1h259qd9gq29jnq3y";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua-core hslua-marshalling
          mtl text
@@ -144408,15 +146659,15 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "hslua-packaging_2_2_0_1" = callPackage
+  "hslua-packaging_2_2_1" = callPackage
     ({ mkDerivation, base, bytestring, containers, hslua-core
      , hslua-marshalling, hslua-objectorientation, mtl, tasty
      , tasty-hslua, tasty-hunit, text
      }:
      mkDerivation {
        pname = "hslua-packaging";
-       version = "2.2.0.1";
-       sha256 = "0kyc50xrfnxnhhx2xic1ajd0p0dkhlv0w88yykl4fncpb0i2wc25";
+       version = "2.2.1";
+       sha256 = "1yxfrsxmmsb96lyfihlk9ks53l2z2aln3whfqaha7grs3gx1yaib";
        libraryHaskellDepends = [
          base containers hslua-core hslua-marshalling
          hslua-objectorientation mtl text
@@ -144503,6 +146754,7 @@ self: {
        description = "Tool for generating .dir-locals.el for intero";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsmodetweaks";
        broken = true;
      }) {};
 
@@ -144574,6 +146826,7 @@ self: {
        description = "Nock 5K interpreter";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsnock";
        broken = true;
      }) {};
 
@@ -144600,6 +146853,7 @@ self: {
        description = "a miniature network sniffer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsns";
        broken = true;
      }) {};
 
@@ -145008,7 +147262,8 @@ self: {
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-discover" = callPackage
@@ -145029,7 +147284,8 @@ self: {
        testToolDepends = [ hspec-meta ];
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-discover_2_10_0" = callPackage
@@ -145051,7 +147307,8 @@ self: {
        description = "Automatically discover and run Hspec tests";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "hspec-discover";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "hspec-expectations" = callPackage
@@ -145190,6 +147447,7 @@ self: {
        description = "Golden tests for hspec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hgold";
      }) {};
 
   "hspec-golden" = callPackage
@@ -145207,6 +147465,7 @@ self: {
        testHaskellDepends = [ base directory hspec hspec-core silently ];
        description = "Golden tests for hspec";
        license = lib.licenses.mit;
+       mainProgram = "hgold";
      }) {};
 
   "hspec-golden-aeson" = callPackage
@@ -145389,6 +147648,7 @@ self: {
        ];
        description = "A version of Hspec which is used to test Hspec itself";
        license = lib.licenses.mit;
+       mainProgram = "hspec-meta-discover";
      }) {};
 
   "hspec-meta_2_9_3" = callPackage
@@ -145415,6 +147675,7 @@ self: {
        description = "A version of Hspec which is used to test Hspec itself";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspec-meta-discover";
      }) {};
 
   "hspec-monad-control" = callPackage
@@ -145545,6 +147806,7 @@ self: {
        description = "Add an hspec test-suite in one command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspec-setup";
      }) {};
 
   "hspec-shouldbe" = callPackage
@@ -145887,6 +148149,7 @@ self: {
        description = "A terminal presentation tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspresent";
        broken = true;
      }) {};
 
@@ -145910,6 +148173,7 @@ self: {
        description = "My opinionated Haskell project formatter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hspretty";
        broken = true;
      }) {};
 
@@ -145937,6 +148201,7 @@ self: {
        description = "The Haskell Stream Processor command line utility";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsp";
      }) {};
 
   "hsql" = callPackage
@@ -146072,6 +148337,7 @@ self: {
        description = "HsQML-based clone of Pipe Mania";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-manic";
      }) {};
 
   "hsqml-demo-morris" = callPackage
@@ -146091,6 +148357,7 @@ self: {
        description = "HsQML-based implementation of Nine Men's Morris";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-morris";
      }) {};
 
   "hsqml-demo-notes" = callPackage
@@ -146144,6 +148411,7 @@ self: {
        description = "HsQML-based implementation of Nine Men's Morris";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsqml-morris";
      }) {};
 
   "hsreadability" = callPackage
@@ -146314,6 +148582,7 @@ self: {
        description = "Haskell version of tar CLI utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstar";
      }) {};
 
   "hstatistics" = callPackage
@@ -146373,6 +148642,7 @@ self: {
        description = "Runs tests via QuickCheck1 and HUnit; like quickCheck-script but uses GHC api";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstest";
        broken = true;
      }) {};
 
@@ -146388,6 +148658,7 @@ self: {
        description = "Takes haskell source on stdin, parses it, then prettyprints it to stdout";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstidy";
        broken = true;
      }) {};
 
@@ -146418,6 +148689,7 @@ self: {
        description = "Distributed instant messaging over Tor";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstorchat";
      }) {};
 
   "hstox" = callPackage
@@ -146471,6 +148743,7 @@ self: {
        description = "Tradeking API bindings for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tradeking";
      }) {};
 
   "hstyle" = callPackage
@@ -146489,6 +148762,7 @@ self: {
        description = "Checks Haskell source code for style compliance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstyle";
        broken = true;
      }) {};
 
@@ -146511,6 +148785,7 @@ self: {
        description = "A two player abstract strategy game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hstzaar";
      }) {};
 
   "hsubconvert" = callPackage
@@ -146533,6 +148808,7 @@ self: {
        description = "One-time, faithful conversion of Subversion repositories to Git";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsubconvert";
      }) {};
 
   "hsudoku" = callPackage
@@ -146562,6 +148838,7 @@ self: {
        description = "Sudoku game with a GTK3 interface";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsudoku";
        broken = true;
      }) {};
 
@@ -146612,6 +148889,7 @@ self: {
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trhsx";
        broken = true;
      }) {};
 
@@ -146662,6 +148940,7 @@ self: {
        description = "HSX (Haskell Source with XML) allows literal XML syntax in Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsx2hs";
        broken = true;
      }) {};
 
@@ -146691,7 +148970,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "FFI interface to syslog(3) from POSIX.1-2001";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "hsyslog-tcp" = callPackage
@@ -146773,6 +149052,7 @@ self: {
        ];
        description = "A Haskell98 parsing tags program similar to ctags";
        license = lib.licenses.bsd3;
+       mainProgram = "htags";
      }) {};
 
   "htalkat" = callPackage
@@ -146799,6 +149079,7 @@ self: {
        executablePkgconfigDepends = [ ncurses ];
        description = "Talk across TLS";
        license = lib.licenses.gpl3Only;
+       mainProgram = "htalkat";
      }) {inherit (pkgs) ncurses;};
 
   "htar" = callPackage
@@ -146817,6 +149098,7 @@ self: {
        description = "Command-line tar archive utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htar";
        broken = true;
      }) {};
 
@@ -146863,6 +149145,7 @@ self: {
        description = "A library for testing correctness of pseudo random number generators in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runTestu";
        broken = true;
      }) {inherit (pkgs) gcc;};
 
@@ -146895,6 +149178,7 @@ self: {
        executableHaskellDepends = [ base process time ];
        description = "Timing utility for the command line";
        license = lib.licenses.bsd3;
+       mainProgram = "htime";
      }) {};
 
   "htirage" = callPackage
@@ -146960,6 +149244,7 @@ self: {
        description = "Determine character encoding of HTML documents/fragments";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "html-charset";
        broken = true;
      }) {};
 
@@ -147113,6 +149398,7 @@ self: {
        description = "Simple tool to create html presentation for text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htmlpt";
      }) {};
 
   "html-rules" = callPackage
@@ -147188,6 +149474,7 @@ self: {
        ];
        description = "A command-line interface for https://validator.w3.org/";
        license = lib.licenses.bsd3;
+       mainProgram = "validatehtml";
      }) {};
 
   "html2hamlet" = callPackage
@@ -147207,6 +149494,7 @@ self: {
        ];
        description = "HTML to Hamlet converter";
        license = lib.licenses.bsd3;
+       mainProgram = "html2hamlet";
      }) {};
 
   "html5-entity" = callPackage
@@ -147246,6 +149534,7 @@ self: {
        executableHaskellDepends = [ base HDBC HDBC-sqlite3 ];
        description = "A todo application";
        license = lib.licenses.bsd3;
+       mainProgram = "htodo";
      }) {};
 
   "htoml" = callPackage
@@ -147369,6 +149658,7 @@ self: {
        description = "Parse XML files from The Sports Network feed";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htsn";
        broken = true;
      }) {};
 
@@ -147413,6 +149703,7 @@ self: {
        description = "Import XML files from The Sports Network into an RDBMS";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htsn-import";
      }) {};
 
   "htssets" = callPackage
@@ -147466,6 +149757,32 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "http-api-data_0_5" = callPackage
+    ({ mkDerivation, attoparsec, attoparsec-iso8601, base, base-compat
+     , bytestring, containers, cookie, hashable, hspec, hspec-discover
+     , http-types, HUnit, QuickCheck, quickcheck-instances, tagged, text
+     , time-compat, transformers, unordered-containers, uuid-types
+     }:
+     mkDerivation {
+       pname = "http-api-data";
+       version = "0.5";
+       sha256 = "0gxpfrkr83gq5kndfbyg03ps0g421bn4vafdqng7wmnn5hhb9vgp";
+       libraryHaskellDepends = [
+         attoparsec attoparsec-iso8601 base base-compat bytestring
+         containers cookie hashable http-types tagged text time-compat
+         transformers unordered-containers uuid-types
+       ];
+       testHaskellDepends = [
+         base base-compat bytestring cookie hspec HUnit QuickCheck
+         quickcheck-instances text time-compat unordered-containers
+         uuid-types
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Converting to/from HTTP API data like URL pieces, headers and query parameters";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "http-api-data-qq" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, http-api-data
      , http-client, tasty, tasty-hunit, tasty-quickcheck
@@ -147475,6 +149792,8 @@ self: {
        pname = "http-api-data-qq";
        version = "0.1.0.0";
        sha256 = "1lvfdbprdwq09k1wkjfvvkpi79053dc4kzkv4g1cx94qb1flbd7a";
+       revision = "1";
+       editedCabalFile = "1s7swrw42i5zpj99z5559480fi0zsnf1j1g0qhs536fjqs2bdfx4";
        libraryHaskellDepends = [
          base http-api-data template-haskell text
        ];
@@ -147549,6 +149868,17 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "http-client-brread-timeout" = callPackage
+    ({ mkDerivation, base, bytestring, http-client }:
+     mkDerivation {
+       pname = "http-client-brread-timeout";
+       version = "0.1.0.1";
+       sha256 = "04p98qkii1g6mk3cjra6ij73ks6qv0r2p7naq9j1rwvr9m7n1d4p";
+       libraryHaskellDepends = [ base bytestring http-client ];
+       description = "Http client with time-limited brRead";
+       license = lib.licenses.mit;
+     }) {};
+
   "http-client-conduit" = callPackage
     ({ mkDerivation, base, http-client }:
      mkDerivation {
@@ -147650,6 +149980,7 @@ self: {
        ];
        description = "HTTP client overrides";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "http-client-request-modifiers" = callPackage
@@ -147897,8 +150228,8 @@ self: {
      }:
      mkDerivation {
        pname = "http-directory";
-       version = "0.1.9";
-       sha256 = "0hvrajwap7ilqi6ika0vd3hf83k1p3wr3ck6bvz8kayim8ih7apz";
+       version = "0.1.10";
+       sha256 = "1dgmd24n0r6r0yjndk62rxvs8nrbzqgdszjg5ad2wm26abynzdgy";
        libraryHaskellDepends = [
          base bytestring html-conduit http-client http-client-tls
          http-conduit http-date http-types network-uri text time xml-conduit
@@ -148463,6 +150794,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Test framework for HTTP APIs";
        license = lib.licenses.bsd3;
+       mainProgram = "test-http-test-bayeshive";
      }) {};
 
   "http-trace" = callPackage
@@ -148482,6 +150814,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Tracking http redirects";
        license = lib.licenses.mit;
+       mainProgram = "http-trace";
      }) {};
 
   "http-types" = callPackage
@@ -148589,6 +150922,7 @@ self: {
        description = "A command-line http2 client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "http2-client-exe";
      }) {};
 
   "http2-client-grpc" = callPackage
@@ -148771,6 +151105,7 @@ self: {
        description = "harmonic analyser and tuner for musical instruments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htune";
        broken = true;
      }) {};
 
@@ -148815,6 +151150,7 @@ self: {
        description = "A two player abstract strategy game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "htzaar";
        broken = true;
      }) {};
 
@@ -148834,6 +151170,7 @@ self: {
        ];
        description = "For multiplexing GHC installations and providing development sandboxes";
        license = lib.licenses.bsd3;
+       mainProgram = "hub";
      }) {};
 
   "hubigraph" = callPackage
@@ -148871,6 +151208,7 @@ self: {
        description = "Support library for Hubris, the Ruby <=> Haskell bridge";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Hubrify";
      }) {inherit (pkgs) ruby;};
 
   "huck" = callPackage
@@ -148925,6 +151263,7 @@ self: {
        description = "A fast-foward-based planner";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "blocksWorld";
        broken = true;
      }) {};
 
@@ -149017,6 +151356,7 @@ self: {
        description = "A TUI MPD client, inspired by ncmpcpp";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hum";
        broken = true;
      }) {};
 
@@ -149095,6 +151435,7 @@ self: {
        description = "Haskell UPnP Media Server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hums";
        broken = true;
      }) {};
 
@@ -149119,6 +151460,7 @@ self: {
        description = "CSS-like syntax for file system manipulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunch";
        broken = true;
      }) {};
 
@@ -149147,6 +151489,7 @@ self: {
        description = "A GUI testrunner for HUnit";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tests";
      }) {};
 
   "hunit-parsec" = callPackage
@@ -149191,6 +151534,7 @@ self: {
        description = "Unpacker tool with DWIM";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunp";
      }) {};
 
   "hunspell-hs" = callPackage
@@ -149265,6 +151609,7 @@ self: {
        description = "A search and indexing engine server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunt-server";
      }) {};
 
   "hunt-server-cli" = callPackage
@@ -149289,6 +151634,7 @@ self: {
        description = "A Command line Interface for the Hunt server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hunt-server-cli";
        broken = true;
      }) {hunt-client = null;};
 
@@ -149321,6 +151667,7 @@ self: {
        description = "Upload packages and/or documentation to a hackage server";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hup";
        broken = true;
      }) {};
 
@@ -149338,6 +151685,7 @@ self: {
        description = "Extract function names from Windows DLLs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hurdle";
      }) {};
 
   "hurl" = callPackage
@@ -149362,6 +151710,7 @@ self: {
        executableHaskellDepends = [ base directory network-uri ];
        description = "Haskell URL resolver";
        license = lib.licenses.gpl3Only;
+       mainProgram = "hurl";
      }) {};
 
   "hurriyet" = callPackage
@@ -149439,6 +151788,7 @@ self: {
        description = "A simple command line calculator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "husky";
        broken = true;
      }) {};
 
@@ -149461,6 +151811,7 @@ self: {
        description = "A program for the button on Reddit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hutton";
        broken = true;
      }) {};
 
@@ -149476,6 +151827,7 @@ self: {
        description = "Quick implemention of Hutton's Razor";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "huttons-razor";
        broken = true;
      }) {};
 
@@ -149509,8 +151861,8 @@ self: {
      }:
      mkDerivation {
        pname = "hvega";
-       version = "0.12.0.2";
-       sha256 = "0m78j7w7sf09yvvs995pvk66ifli7q1bl7r739mgm9dgxaw7wqhm";
+       version = "0.12.0.3";
+       sha256 = "1dmc8va82qzr9c7kn8w3nm70f3nb59gz3f6178j6iaph0acplyfh";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson base text unordered-containers ];
@@ -149634,6 +151986,7 @@ self: {
        doHaddock = false;
        description = "Balanced parentheses";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-balancedparens";
      }) {};
 
   "hw-bits" = callPackage
@@ -149679,6 +152032,7 @@ self: {
        description = "CI Assistant for Haskell projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-ci-assist";
        broken = true;
      }) {};
 
@@ -149778,6 +152132,7 @@ self: {
        ];
        description = "Unbelievably fast streaming DSV file parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-dsv";
      }) {};
 
   "hw-dump" = callPackage
@@ -149811,6 +152166,7 @@ self: {
        ];
        description = "File Dump";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-dump";
      }) {};
 
   "hw-eliasfano" = callPackage
@@ -149848,6 +152204,7 @@ self: {
        ];
        description = "Elias-Fano";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-eliasfano";
      }) {};
 
   "hw-excess" = callPackage
@@ -149997,6 +152354,7 @@ self: {
        doHaddock = false;
        description = "Library for manipulating IP addresses and CIDR blocks";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-ip";
      }) {};
 
   "hw-json" = callPackage
@@ -150042,6 +152400,7 @@ self: {
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-json";
      }) {};
 
   "hw-json-demo" = callPackage
@@ -150116,6 +152475,7 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "SIMD-based JSON semi-indexer";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json-simd";
      }) {};
 
   "hw-json-simple-cursor" = callPackage
@@ -150151,6 +152511,7 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json";
      }) {};
 
   "hw-json-standard-cursor" = callPackage
@@ -150188,6 +152549,7 @@ self: {
        ];
        description = "Memory efficient JSON parser";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-json-standard-cursor";
      }) {};
 
   "hw-kafka-avro" = callPackage
@@ -150286,6 +152648,25 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "hw-lazy" = callPackage
+    ({ mkDerivation, base, deepseq, doctest, doctest-discover, hedgehog
+     , hspec, hspec-discover, hw-hspec-hedgehog, stm, unliftio-core
+     }:
+     mkDerivation {
+       pname = "hw-lazy";
+       version = "0.0.0.1";
+       sha256 = "10zpmls2wvk25v30237lmfy1i632cn7xz1n0hdkqgsan1amypahq";
+       libraryHaskellDepends = [ base deepseq unliftio-core ];
+       testHaskellDepends = [
+         base doctest doctest-discover hedgehog hspec hw-hspec-hedgehog stm
+       ];
+       testToolDepends = [ doctest-discover hspec-discover ];
+       description = "Combinators for lazy IO";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "hw-mquery" = callPackage
     ({ mkDerivation, ansi-wl-pprint, base, dlist, doctest
      , doctest-discover, hedgehog, hspec, hspec-discover
@@ -150307,6 +152688,7 @@ self: {
        description = "Monadic query DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-mquery-example";
        broken = true;
      }) {};
 
@@ -150339,6 +152721,7 @@ self: {
        ];
        description = "Packed Vector";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-packed-vector";
      }) {};
 
   "hw-parser" = callPackage
@@ -150428,6 +152811,8 @@ self: {
        benchmarkHaskellDepends = [ base criterion vector ];
        description = "Primitive support for bit manipulation";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
+       mainProgram = "hw-prim-bits-exe";
      }) {};
 
   "hw-rankselect" = callPackage
@@ -150465,6 +152850,7 @@ self: {
        doHaddock = false;
        description = "Rank-select";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-rankselect";
      }) {};
 
   "hw-rankselect-base" = callPackage
@@ -150555,6 +152941,7 @@ self: {
        testToolDepends = [ doctest-discover ];
        description = "SIMD library";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-simd";
      }) {};
 
   "hw-streams" = callPackage
@@ -150642,6 +153029,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library for creating and extracting tar archives";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-tar";
      }) {};
 
   "hw-uri" = callPackage
@@ -150678,6 +153066,7 @@ self: {
        description = "Supports IO on URIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hw-uri";
      }) {};
 
   "hw-vector" = callPackage
@@ -150733,6 +153122,7 @@ self: {
        ];
        description = "XML parser based on succinct data structures";
        license = lib.licenses.bsd3;
+       mainProgram = "hw-xml";
      }) {};
 
   "hwall-auth-iitk" = callPackage
@@ -150752,6 +153142,7 @@ self: {
        description = "Initial version of firewall Authentication for IITK network";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "firewall-auth";
        broken = true;
      }) {};
 
@@ -150798,6 +153189,7 @@ self: {
        description = "An implementation of Neil D. Jones' While language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hwhile";
        broken = true;
      }) {};
 
@@ -150817,6 +153209,7 @@ self: {
        ];
        description = "Commandline text processing with Haskell functions";
        license = lib.licenses.mit;
+       mainProgram = "hwk";
      }) {};
 
   "hworker" = callPackage
@@ -150890,6 +153283,7 @@ self: {
        description = "magic-wormhole client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hwormhole-exe";
      }) {};
 
   "hws" = callPackage
@@ -150909,6 +153303,7 @@ self: {
        description = "Simple Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hws";
      }) {};
 
   "hwsl2" = callPackage
@@ -150988,6 +153383,7 @@ self: {
        description = "Haskell XMPP (Jabber Client) Command Line Interface (CLI)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxmppc";
      }) {};
 
   "hxournal" = callPackage
@@ -151015,6 +153411,7 @@ self: {
        description = "A pen notetaking program written in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hxournal";
      }) {};
 
   "hxt" = callPackage
@@ -151298,6 +153695,7 @@ self: {
        executableHaskellDepends = [ base containers HUnit random ];
        description = "A Yahtzee game implementation in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "hyahtzee";
      }) {};
 
   "hyakko" = callPackage
@@ -151320,6 +153718,7 @@ self: {
        description = "Literate-style Documentation Generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyakko";
        broken = true;
      }) {};
 
@@ -151338,6 +153737,7 @@ self: {
        description = "A implementation of a type-checker for Lambda-H";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hybrid";
      }) {};
 
   "hybrid-vectors" = callPackage
@@ -151355,6 +153755,20 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "hybrid-vectors_0_2_3" = callPackage
+    ({ mkDerivation, base, deepseq, primitive, semigroups, vector }:
+     mkDerivation {
+       pname = "hybrid-vectors";
+       version = "0.2.3";
+       sha256 = "0g3z482sd0j930ja3g9cyc4xnjby03d4cq8x56crsl61arr81r1c";
+       libraryHaskellDepends = [
+         base deepseq primitive semigroups vector
+       ];
+       description = "Hybrid vectors e.g. Mixed Boxed/Unboxed vectors";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "hydra-hs" = callPackage
     ({ mkDerivation, base, hmatrix, sixense_x64 }:
      mkDerivation {
@@ -151439,6 +153853,7 @@ self: {
        description = "Hydrogen Data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "h";
      }) {};
 
   "hydrogen-cli-args" = callPackage
@@ -151609,6 +154024,7 @@ self: {
        description = "WebGL live-coding environment for writing shaders with Hylogen";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hylide";
        broken = true;
      }) {};
 
@@ -151653,6 +154069,7 @@ self: {
        description = "Tableau based theorem prover for hybrid logics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hylotab";
      }) {};
 
   "hyloutils" = callPackage
@@ -151715,6 +154132,7 @@ self: {
        description = "Server back-end for the HyperHaskell graphical Haskell interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyper-haskell-server";
        broken = true;
      }) {};
 
@@ -151735,6 +154153,7 @@ self: {
        description = "a fast, trustworthy HTTP(s) server built";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pong";
        broken = true;
      }) {};
 
@@ -151805,6 +154224,8 @@ self: {
        pname = "hyperloglog";
        version = "0.4.6";
        sha256 = "0zwg4dhgasa9sx7pbjjjb9kz2bnhb3r2daij2b572cszv65l91nv";
+       revision = "1";
+       editedCabalFile = "1vpzs2sj0p4y0dy88fvb0imfks84655ilw1n56dpkfz3kn4dqaq8";
        libraryHaskellDepends = [
          approximate base binary bits bytes bytestring cereal cereal-vector
          comonad cpu deepseq distributive hashable lens reflection
@@ -151862,6 +154283,7 @@ self: {
        description = "A parser for the _hyperscript programming language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyperscript-exe";
        broken = true;
      }) {};
 
@@ -151979,6 +154401,7 @@ self: {
        description = "Modules for parsing, generating and manipulating AB1 files";
        license = "(BSD-3-Clause OR Apache-2.0)";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hyraxAbif-exe";
        broken = true;
      }) {};
 
@@ -152016,6 +154439,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "This package is Zaif Exchange Api wrapper";
        license = lib.licenses.bsd3;
+       mainProgram = "hzaif-exe";
      }) {};
 
   "hzenhan" = callPackage
@@ -152167,7 +154591,7 @@ self: {
        ];
        description = "iCalendar data types, parser, and printer";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "iException" = callPackage
@@ -152215,6 +154639,7 @@ self: {
        description = "An API for the Interactive Brokers Trading Workstation written in pure Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ex";
        broken = true;
      }) {};
 
@@ -152269,6 +154694,7 @@ self: {
        description = "iCalendar format parser and org-mode converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ical-org";
        broken = true;
      }) {};
 
@@ -152433,6 +154859,7 @@ self: {
        description = "An IDE backend library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ide-backend-exe-cabal";
      }) {};
 
   "ide-backend-common" = callPackage
@@ -152494,6 +154921,7 @@ self: {
        description = "An IDE backend server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ide-backend-server";
      }) {};
 
   "ideas" = callPackage
@@ -152533,6 +154961,7 @@ self: {
        description = "Interactive domain reasoner for logic and mathematics";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ideas-math";
      }) {};
 
   "ideas-math-types" = callPackage
@@ -152563,6 +154992,7 @@ self: {
        description = "Interactive domain reasoner for statistics";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "statistics.cgi";
      }) {};
 
   "idempotent" = callPackage
@@ -152672,6 +155102,7 @@ self: {
        description = "ID3v2 (tagging standard for MP3 files) library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "read-idiii";
        broken = true;
      }) {};
 
@@ -152730,6 +155161,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "A project manage tool for Idris";
        license = lib.licenses.bsd3;
+       mainProgram = "idrin";
      }) {};
 
   "idris" = callPackage
@@ -152964,6 +155396,7 @@ self: {
        description = "An keyboard-driven interactive graph editor";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ige";
        broken = true;
      }) {};
 
@@ -153004,6 +155437,7 @@ self: {
        description = "Handle ignore files of different VCSes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ignore";
        broken = true;
      }) {};
 
@@ -153072,6 +155506,7 @@ self: {
        ];
        description = "A Haskell backend kernel for the IPython project";
        license = lib.licenses.mit;
+       mainProgram = "ihaskell";
      }) {};
 
   "ihaskell-aeson" = callPackage
@@ -153191,8 +155626,8 @@ self: {
     ({ mkDerivation, aeson, base, hvega, ihaskell, text }:
      mkDerivation {
        pname = "ihaskell-hvega";
-       version = "0.5.0.2";
-       sha256 = "0r0q4hfjcm2p229k2xwyh9xrxbm6i3vpy13rjpsv4x5n30rsv56s";
+       version = "0.5.0.3";
+       sha256 = "12bznrjb3qgy9di9p3faymaba8wsbx7v9gp5zxifnad6aqwlblf8";
        libraryHaskellDepends = [ aeson base hvega ihaskell text ];
        description = "IHaskell display instance for hvega types";
        license = lib.licenses.bsd3;
@@ -153341,6 +155776,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Interpolated Haskell";
        license = lib.licenses.publicDomain;
+       mainProgram = "ihs";
      }) {};
 
   "ihttp" = callPackage
@@ -153360,6 +155796,7 @@ self: {
        description = "Incremental HTTP iteratee";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ihttp-test";
      }) {};
 
   "ilist" = callPackage
@@ -153400,6 +155837,7 @@ self: {
        description = "A fast syntax highlighting library built with alex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "illuminate";
        broken = true;
      }) {};
 
@@ -153471,6 +155909,7 @@ self: {
        description = "Command-line image paste utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imagepaste";
        broken = true;
      }) {};
 
@@ -153537,6 +155976,7 @@ self: {
        description = "Downloads email from imap SSL servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imapget";
      }) {};
 
   "imbib" = callPackage
@@ -153596,6 +156036,7 @@ self: {
        description = "Uploader for Imgur";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imgurder";
      }) {};
 
   "imj-animation" = callPackage
@@ -153634,6 +156075,7 @@ self: {
        description = "Game engine with geometry, easing, animated text, delta rendering";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-base-examples-exe";
      }) {};
 
   "imj-game-hamazed" = callPackage
@@ -153655,6 +156097,7 @@ self: {
        description = "A game with flying numbers and 8-bit color animations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-game-hamazed-exe";
      }) {};
 
   "imj-measure-stdout" = callPackage
@@ -153671,6 +156114,7 @@ self: {
        description = "An application to determine the maximum capacity of stdout buffer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imj-measure-stdout-exe";
      }) {};
 
   "imj-prelude" = callPackage
@@ -153809,6 +156253,7 @@ self: {
        description = "Multi-platform parser analyzer and generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imparse";
      }) {};
 
   "imperative-edsl" = callPackage
@@ -153874,32 +156319,33 @@ self: {
 
   "implicit" = callPackage
     ({ mkDerivation, base, blaze-builder, blaze-markup, blaze-svg
-     , bytestring, containers, criterion, deepseq, directory, filepath
-     , hspec, JuicyPixels, monads-tf, optparse-applicative, parallel
-     , parsec, snap-core, snap-server, storable-endian, text
-     , transformers, vector-space
+     , bytestring, containers, criterion, data-default-class, deepseq
+     , directory, filepath, hedgehog, hspec, hw-hspec-hedgehog
+     , JuicyPixels, lens, linear, mtl, optparse-applicative, parallel
+     , parsec, QuickCheck, show-combinators, text
      }:
      mkDerivation {
        pname = "implicit";
-       version = "0.3.0.1";
-       sha256 = "190493di4n0j9yii02jb808k97a9avg5qlxx6gydhw0qmjijh11n";
-       revision = "1";
-       editedCabalFile = "1jqi3wxxwyzjdl0ygpn1qkg549wrnxj90pfhhl9m7rhb665pi0v4";
+       version = "0.4.0.0";
+       sha256 = "06hvvzvik1cw21sj1ynvf1rmy8kfcbsjr4442x59f9l5zq7xsaqw";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
          base blaze-builder blaze-markup blaze-svg bytestring containers
-         deepseq directory filepath hspec JuicyPixels monads-tf parallel
-         parsec storable-endian text transformers vector-space
+         data-default-class deepseq directory filepath JuicyPixels lens
+         linear mtl parallel parsec show-combinators text
        ];
        executableHaskellDepends = [
-         base bytestring criterion filepath optparse-applicative snap-core
-         snap-server text vector-space
+         base filepath optparse-applicative text
        ];
-       testHaskellDepends = [ base hspec parsec ];
-       benchmarkHaskellDepends = [ base criterion parsec ];
+       testHaskellDepends = [
+         base bytestring directory hedgehog hspec hw-hspec-hedgehog lens
+         linear parsec QuickCheck text
+       ];
+       benchmarkHaskellDepends = [ base criterion linear parsec ];
        description = "A math-inspired programmatic 2D & 3D CAD system";
-       license = lib.licenses.agpl3Only;
+       license = lib.licenses.agpl3Plus;
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "implicit-hie" = callPackage
@@ -153926,6 +156372,7 @@ self: {
        ];
        description = "Auto generate hie-bios cradles & hie.yaml";
        license = lib.licenses.bsd3;
+       mainProgram = "gen-hie";
      }) {};
 
   "implicit-hie-cradle" = callPackage
@@ -154137,8 +156584,8 @@ self: {
      }:
      mkDerivation {
        pname = "in-other-words";
-       version = "0.2.1.0";
-       sha256 = "0cm0fxf3snk4ah3jvb9g6f711gs6zg1l7avdj51rgqnlxhsbycqb";
+       version = "0.2.1.1";
+       sha256 = "023xpjpajz2d5g4h3raq8f68lddk8pbp03pnzcwvnvdc3xpa5kfr";
        libraryHaskellDepends = [
          async base exceptions monad-control mtl stm transformers
          transformers-base
@@ -154218,6 +156665,7 @@ self: {
        description = "A type-checker for Haskell with integer constraints";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inch";
      }) {};
 
   "inchworm" = callPackage
@@ -154239,8 +156687,8 @@ self: {
      }:
      mkDerivation {
        pname = "incipit";
-       version = "0.2.1.0";
-       sha256 = "02zqz3szb4ir1fydjg1ywscyara60rr2hzmaf0d3ghfkm9fbhhs8";
+       version = "0.3.0.0";
+       sha256 = "08q407js3la25cb9n01s4hxk2nxw2y25j48jj2529xxsrispirm3";
        libraryHaskellDepends = [
          base incipit-core polysemy-conc polysemy-log polysemy-resume
          polysemy-time
@@ -154255,8 +156703,8 @@ self: {
      }:
      mkDerivation {
        pname = "incipit-base";
-       version = "0.2.0.0";
-       sha256 = "1a8ryvsr1vrdnjczzidw0inzz6dpwfavwwv1a5wv649rnfgj15yq";
+       version = "0.3.0.0";
+       sha256 = "06p47r0qa8pc0p4738brp9caznmvihv6ipwm2p3nw9whpph16b6i";
        libraryHaskellDepends = [
          base bytestring containers data-default stm text
        ];
@@ -154268,8 +156716,8 @@ self: {
     ({ mkDerivation, base, incipit-base, polysemy }:
      mkDerivation {
        pname = "incipit-core";
-       version = "0.2.0.0";
-       sha256 = "02qjcmiz6pyqqqmzq1im2ylcn5dy4bkk8inkb8kdnzf866l14vd7";
+       version = "0.3.0.0";
+       sha256 = "0gqsdzkbx78dbdb9lwwwwvr8nai5ic6lampxkp32k8ib4pa1csqz";
        libraryHaskellDepends = [ base incipit-base polysemy ];
        description = "A Prelude for Polysemy";
        license = "BSD-2-Clause-Patent";
@@ -154435,6 +156883,7 @@ self: {
        executableHaskellDepends = [ base optparse-applicative text ];
        description = "Fix your indentation";
        license = lib.licenses.bsd3;
+       mainProgram = "indent";
      }) {};
 
   "indentation" = callPackage
@@ -154536,7 +156985,7 @@ self: {
        description = "Indexed Types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -154673,6 +157122,8 @@ self: {
        pname = "indexed-traversable-instances";
        version = "0.1.1";
        sha256 = "0i4s8fbqbgvkd2na48zwhlrcjpwxkx5rdh6f9fq2h4sl7c1d23hh";
+       revision = "1";
+       editedCabalFile = "1655cf712kkjrpf0axwgdf7y6yjqnf2njyijlfr3mdzzy6dkagwb";
        libraryHaskellDepends = [
          base indexed-traversable OneTuple tagged unordered-containers
          vector
@@ -154792,6 +157243,7 @@ self: {
        description = "Convenient imperative eDSL over Lorentz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "indigo";
      }) {};
 
   "inf-interval" = callPackage
@@ -154842,6 +157294,7 @@ self: {
        description = "Find the repository from where a given repo was forked";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "infer-upstream";
        broken = true;
      }) {};
 
@@ -154912,6 +157365,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "infinity";
      }) {};
 
   "infix" = callPackage
@@ -155014,6 +157468,7 @@ self: {
        description = "A yesod subsite serving a wiki";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "informative-test";
        broken = true;
      }) {};
 
@@ -155121,6 +157576,7 @@ self: {
        ];
        description = "A minimalistic template engine";
        license = lib.licenses.mit;
+       mainProgram = "inject";
      }) {};
 
   "inject-function" = callPackage
@@ -155174,6 +157630,7 @@ self: {
        ];
        description = "Inline some Assembly in ur Haskell!";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -155201,7 +157658,7 @@ self: {
        ];
        description = "Write Haskell source files including C code inline. No FFI required.";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "inline-c-cpp" = callPackage
@@ -155222,7 +157679,7 @@ self: {
        ];
        description = "Lets you embed C++ code into Haskell";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ roberth ];
+       maintainers = [ lib.maintainers.roberth ];
      }) {};
 
   "inline-c-win32" = callPackage
@@ -155321,6 +157778,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Interactive literate programming";
        license = lib.licenses.mit;
+       mainProgram = "inlitpp";
      }) {};
 
   "input-parsers" = callPackage
@@ -155351,6 +157809,7 @@ self: {
        description = "Console client for encyclopedias";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inquire";
        broken = true;
      }) {aether = null;};
 
@@ -155364,8 +157823,8 @@ self: {
        pname = "insert-ordered-containers";
        version = "0.2.5.1";
        sha256 = "1mnc0gby7xz8065rvkqsaqk1vqs0gv1y9qgvwsvxx3gsg9yj3a7r";
-       revision = "1";
-       editedCabalFile = "1vqsm280r2b573bfznkd9pqmm8ld9ix3z5i1nqmj42q5mv3zlzfm";
+       revision = "2";
+       editedCabalFile = "1mb1iknk0hyz0az85k9w45ymdan37gx3m72mn6zw9i3dib3ly1il";
        libraryHaskellDepends = [
          aeson base deepseq hashable indexed-traversable lens optics-core
          optics-extra semigroupoids text transformers unordered-containers
@@ -155407,6 +157866,7 @@ self: {
        description = "A simple proxy for debugging plaintext protocols communication";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inspection-proxy";
      }) {};
 
   "inspection-testing" = callPackage
@@ -155425,6 +157885,23 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "inspection-testing_0_5" = callPackage
+    ({ mkDerivation, base, containers, ghc, mtl, template-haskell
+     , transformers
+     }:
+     mkDerivation {
+       pname = "inspection-testing";
+       version = "0.5";
+       sha256 = "1iawvnk99c7w44qlw3sl98rrwa1krwjbzy0zsyi80ybg00abfwdh";
+       libraryHaskellDepends = [
+         base containers ghc mtl template-haskell transformers
+       ];
+       testHaskellDepends = [ base ];
+       description = "GHC plugin to do inspection testing";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "inspector-wrecker" = callPackage
     ({ mkDerivation, aeson, base, bytestring, case-insensitive
      , connection, data-default, http-client, http-client-tls
@@ -155446,6 +157923,7 @@ self: {
        description = "Create benchmarks from the HAR files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "inspector-wrecker-exe";
      }) {};
 
   "instana-haskell-trace-sdk" = callPackage
@@ -155622,6 +158100,7 @@ self: {
        description = "Basic HTTP gateway to save articles to Instapaper";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "instapaper-sender";
      }) {};
 
   "instinct" = callPackage
@@ -155882,6 +158361,7 @@ self: {
        description = "Integrate different assays";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "integreat";
      }) {};
 
   "intel-aes" = callPackage
@@ -155961,6 +158441,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Interactive quick time series plotting";
        license = lib.licenses.bsd3;
+       mainProgram = "interactive-plot-demo";
      }) {};
 
   "interchangeable" = callPackage
@@ -155986,6 +158467,7 @@ self: {
        description = "Generates a version of a module using InterleavableIO";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interleavableGen";
        broken = true;
      }) {};
 
@@ -156078,6 +158560,7 @@ self: {
        description = "Shell command for constructing custom stamps for German Post";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "internetmarke";
        broken = true;
      }) {};
 
@@ -156106,6 +158589,7 @@ self: {
        description = "Complete interactive development program for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "intero";
        broken = true;
      }) {};
 
@@ -156139,6 +158623,7 @@ self: {
        description = "Tracery-like randomized text interpolation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interp";
        broken = true;
      }) {};
 
@@ -156164,6 +158649,7 @@ self: {
        description = "GHC preprocessor and library to enable variable interpolation in strings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "interpol";
        broken = true;
      }) {};
 
@@ -156397,8 +158883,8 @@ self: {
      }:
      mkDerivation {
        pname = "interval-patterns";
-       version = "0.2.0.1";
-       sha256 = "1zb83sfiggcl4f23imgbvgprnizdy79s4zh1vr334w8sslc6sy98";
+       version = "0.3.0.1";
+       sha256 = "1jf4yj6bq3wwn7qbvwhh5i38gcfp80p6kgfmwrxiv233l7ihy9jq";
        libraryHaskellDepends = [
          base containers groups lattices relude semirings time time-compat
        ];
@@ -156407,6 +158893,8 @@ self: {
          time time-compat
        ];
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "intervals" = callPackage
@@ -156440,8 +158928,8 @@ self: {
      }:
      mkDerivation {
        pname = "intricacy";
-       version = "0.8.1";
-       sha256 = "0jpg3rvngsil7zii57inax3im92n1ahv6lcrb3swikahbli0d8wc";
+       version = "0.8.1.1";
+       sha256 = "0dvwzbwsrkngdxmgrl2lv9vd30l7afz676ypwnjm8d1z1f03i6pj";
        isLibrary = false;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -156454,6 +158942,7 @@ self: {
        description = "A game of competitive puzzle-design";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "intricacy";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -156632,6 +159121,7 @@ self: {
        ];
        description = "Project statistics and definition analysis";
        license = lib.licenses.bsd3;
+       mainProgram = "inventory";
      }) {};
 
   "invert" = callPackage
@@ -156642,6 +159132,8 @@ self: {
        pname = "invert";
        version = "1.0.0.2";
        sha256 = "13zl9i6g7ygkm3pgm7b72815cfp66mykxzp5vwy5kqakr8c3w1fp";
+       revision = "1";
+       editedCabalFile = "01qaybywd30b5s3clvw4bblq9pviwckgc2claf7lvl4fq6hjqszs";
        libraryHaskellDepends = [
          base containers generic-deriving hashable unordered-containers
          vector
@@ -156814,6 +159306,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Skeleton library around the IO monad";
        license = lib.licenses.bsd3;
+       mainProgram = "SimpleEchoExample";
      }) {};
 
   "io-memoize" = callPackage
@@ -156840,6 +159333,7 @@ self: {
        description = "An API for generating TIMBER style reactive objects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "io-reactive-test";
        broken = true;
      }) {};
 
@@ -156991,6 +159485,7 @@ self: {
        description = "EDSL for concurrent, realtime, embedded programming on top of Ivory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ion_example";
      }) {};
 
   "ioref-stable" = callPackage
@@ -157140,6 +159635,7 @@ self: {
        executableHaskellDepends = [ base cmdargs IPv6Addr text ];
        description = "Commandline tool to deal with IPv6 address text representations";
        license = lib.licenses.bsd3;
+       mainProgram = "ip6addr";
      }) {};
 
   "ipa" = callPackage
@@ -157177,6 +159673,7 @@ self: {
        description = "interactive patch editor";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ipatch";
      }) {};
 
   "ipc" = callPackage
@@ -157349,6 +159846,7 @@ self: {
        description = "iptables rules parser/printer library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iptables-helpers-test";
        broken = true;
      }) {};
 
@@ -157375,6 +159873,7 @@ self: {
        description = "web-interface for iptables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iptadmin";
      }) {};
 
   "ipynb" = callPackage
@@ -157468,7 +159967,7 @@ self: {
        ];
        description = "An IRC client library";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "irc-colors" = callPackage
@@ -157515,7 +160014,7 @@ self: {
        testHaskellDepends = [ base hashable HUnit text ];
        description = "IRC core library for glirc";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "irc-ctcp" = callPackage
@@ -157657,6 +160156,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A library for writing IRC bots";
        license = lib.licenses.bsd3;
+       mainProgram = "ircbot-demo";
      }) {};
 
   "ircbouncer" = callPackage
@@ -157736,6 +160236,7 @@ self: {
        description = "Automated Local Cabal Package Testing and Uploading";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iridium";
        broken = true;
      }) {};
 
@@ -157773,6 +160274,7 @@ self: {
        description = "A technical demo for Antisplice";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ironforge";
      }) {};
 
   "irt" = callPackage
@@ -157830,6 +160332,7 @@ self: {
        description = "An executable and library to determine if a file is a DICOM file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "isdicom";
        broken = true;
      }) {};
 
@@ -157856,6 +160359,7 @@ self: {
        executableHaskellDepends = [ base gtk3 ];
        description = "A program to show the size of image and whether suitable for wallpaper";
        license = lib.licenses.bsd3;
+       mainProgram = "isiz";
      }) {};
 
   "islink" = callPackage
@@ -158036,6 +160540,7 @@ self: {
        testHaskellDepends = [ base bytestring text ];
        description = "A portable alternative to GNU Readline";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "isohunt" = callPackage
@@ -158055,6 +160560,30 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "isomorphism-class" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hashable, primitive
+     , QuickCheck, quickcheck-instances, rebase, tasty, tasty-hunit
+     , tasty-quickcheck, text, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "isomorphism-class";
+       version = "0.1.0.1";
+       sha256 = "1iynpy0mz1y569p8im3x9a48z73r7mz191dy0cm9x878r79hbplz";
+       libraryHaskellDepends = [
+         base bytestring containers hashable primitive text
+         unordered-containers vector
+       ];
+       testHaskellDepends = [
+         base bytestring containers hashable primitive QuickCheck
+         quickcheck-instances rebase tasty tasty-hunit tasty-quickcheck text
+         unordered-containers vector
+       ];
+       description = "Isomorphism typeclass solving the conversion problem";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "isotope" = callPackage
     ({ mkDerivation, base, containers, hspec, megaparsec, QuickCheck
      , template-haskell, th-lift
@@ -158136,6 +160665,7 @@ self: {
        description = "Issue Tracker for the CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "itcli";
        broken = true;
      }) {};
 
@@ -158213,6 +160743,8 @@ self: {
        pname = "iterable";
        version = "3.0";
        sha256 = "194718jpjwkv3ynlpgjlpvf0iqnj7dkd3zmci363gsa425i3vlbc";
+       revision = "1";
+       editedCabalFile = "0aaxx554mm8xhi8ab9jn5r5a2wxg47hc5kiifjahpdfzq5kjnyvs";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base mtl tagged template-haskell vector
@@ -158366,6 +160898,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Enable graphical display of images inline on some terminals";
        license = lib.licenses.bsd3;
+       mainProgram = "it2-show";
      }) {};
 
   "iterm-show-JuicyPixels" = callPackage
@@ -158532,6 +161065,7 @@ self: {
        description = "Ivory bit-data support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ivory-bitdata-example";
      }) {};
 
   "ivory-eval" = callPackage
@@ -158574,6 +161108,7 @@ self: {
        description = "Ivory examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ivory-c-clang-test";
      }) {};
 
   "ivory-hw" = callPackage
@@ -158684,9 +161219,7 @@ self: {
        librarySystemDepends = [ wirelesstools ];
        description = "Bindings for the iw C library";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) wirelesstools;};
 
   "ix" = callPackage
@@ -158732,6 +161265,7 @@ self: {
        description = "A preprocessor for expanding \"ixdo\" notation for indexed monads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ixdopp";
        broken = true;
      }) {};
 
@@ -158883,6 +161417,7 @@ self: {
        description = "CLI (command line interface) to YQL";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "iyql";
      }) {};
 
   "j" = callPackage
@@ -158920,6 +161455,7 @@ self: {
        description = "j2hs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "j2hs";
      }) {};
 
   "ja-base-extra" = callPackage
@@ -158964,7 +161500,8 @@ self: {
        description = "Functional, expression-oriented data processing language";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "ja";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "jack" = callPackage
@@ -159055,6 +161592,7 @@ self: {
        description = "Generate flamegraphs from Jaeger .json dumps.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jaeger-flamegraph";
        broken = true;
      }) {};
 
@@ -159085,7 +161623,8 @@ self: {
        executableHaskellDepends = [ base Cabal Cabal-syntax ];
        description = "Strip version restrictions from Cabal files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "jailbreak-cabal";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "jalaali" = callPackage
@@ -159143,6 +161682,7 @@ self: {
        executableHaskellDepends = [ base boxes directory filepath ];
        description = "Export sheet music and audio from Windows/Mac app Jammit";
        license = lib.licenses.gpl3Only;
+       mainProgram = "jammittools";
      }) {};
 
   "japanese-calendar" = callPackage
@@ -159189,6 +161729,7 @@ self: {
        description = "Tool for searching java classes, members and fields in classfiles and JAR archives";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jarf";
        broken = true;
      }) {};
 
@@ -159212,6 +161753,7 @@ self: {
        description = "Jarification of Haskell sources";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jarify";
        broken = true;
      }) {};
 
@@ -159233,6 +161775,7 @@ self: {
        description = "A fast JASONETTE-iOS JSON combinator library for haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jason";
        broken = true;
      }) {};
 
@@ -159249,6 +161792,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Create immutable algebraic data structures for Java";
        license = "unknown";
+       mainProgram = "java-adt";
      }) {};
 
   "java-bridge" = callPackage
@@ -159312,6 +161856,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "The etude of the Haskell programming";
        license = lib.licenses.mit;
+       mainProgram = "java-poker";
      }) {};
 
   "java-reflect" = callPackage
@@ -159389,6 +161934,7 @@ self: {
        description = "Extra javascript functions when using GHCJS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javascript-extras-test";
      }) {};
 
   "javasf" = callPackage
@@ -159410,6 +161956,7 @@ self: {
        description = "A utility to print the SourceFile attribute of one or more Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javasf";
      }) {};
 
   "javav" = callPackage
@@ -159427,6 +161974,7 @@ self: {
        description = "A utility to print the target version of Java class files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "javav";
        broken = true;
      }) {};
 
@@ -159450,6 +161998,7 @@ self: {
        description = "Just Build It - a \"do what I mean\" abstraction for Haskell build tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jbi";
        broken = true;
      }) {};
 
@@ -159487,6 +162036,7 @@ self: {
        description = "Implementation of Java Debug Interface";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Test";
        broken = true;
      }) {};
 
@@ -159510,6 +162060,7 @@ self: {
        description = "Generate a cabal freeze file from a stack.yaml";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jenga";
        broken = true;
      }) {};
 
@@ -159536,6 +162087,7 @@ self: {
        description = "Generate nix for Jenkins plugins";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jenkinsPlugins2nix";
        broken = true;
      }) {};
 
@@ -159567,6 +162119,7 @@ self: {
        description = "Extract all JavaScript from an HTML page and consolidate it in one script";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jespresso";
      }) {};
 
   "jet" = callPackage
@@ -159605,6 +162158,7 @@ self: {
          vector vty
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "jet";
      }) {};
 
   "jet-stream" = callPackage
@@ -159649,6 +162203,7 @@ self: {
        description = "Unit conversion and manipulation library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quantities";
        broken = true;
      }) {};
 
@@ -159667,6 +162222,7 @@ self: {
        testHaskellDepends = [ base parsec tasty tasty-hunit text ];
        description = "Handle Jira wiki markup";
        license = lib.licenses.mit;
+       mainProgram = "jira-wiki-markup";
      }) {};
 
   "jl" = callPackage
@@ -159691,6 +162247,7 @@ self: {
        ];
        description = "Functional sed for JSON";
        license = lib.licenses.bsd3;
+       mainProgram = "jl";
      }) {};
 
   "jmacro" = callPackage
@@ -159718,6 +162275,7 @@ self: {
        description = "QuasiQuotation library for programmatic generation of Javascript code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jmacro";
      }) {};
 
   "jmacro-rpc" = callPackage
@@ -160029,6 +162587,7 @@ self: {
        description = "JP's own ray tracer";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jort";
        broken = true;
      }) {};
 
@@ -160101,6 +162660,7 @@ self: {
        ];
        description = "Tiny markdown notebook";
        license = lib.licenses.isc;
+       mainProgram = "jot";
      }) {};
 
   "joy-rewrite" = callPackage
@@ -160149,6 +162709,7 @@ self: {
        executableHaskellDepends = [ base optparse-applicative time ];
        description = "Ephemerides for solar system objects from the JPL Horizons service";
        license = lib.licenses.bsd3;
+       mainProgram = "jh-csv";
      }) {};
 
   "jps" = callPackage
@@ -160299,7 +162860,7 @@ self: {
        ];
        description = "JSaddle Hello World, an example package";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "jsaddle-warp" = callPackage
@@ -160326,8 +162887,6 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "jsaddle-webkit2gtk" = callPackage
@@ -160347,9 +162906,7 @@ self: {
        ];
        description = "Interface for JavaScript that works with GHCJS and GHC";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "jsaddle-webkitgtk" = callPackage
@@ -160590,6 +163147,7 @@ self: {
        description = "Automatic type declaration for JSON input data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "json-autotype";
      }) {};
 
   "json-b" = callPackage
@@ -160613,6 +163171,7 @@ self: {
        description = "JSON parser that uses byte strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "json-schema";
      }) {};
 
   "json-builder" = callPackage
@@ -160656,10 +163215,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-directory";
-       version = "0.1.0.1";
-       sha256 = "145z46hh3ba3g7niwv9kf5djfv3xa1q5fmwadi629h7grfij0rr3";
-       revision = "2";
-       editedCabalFile = "0rid8i7chq7ca81m6kyhd0dl3ig8k24fk7mq5ydnhgdfnd25v78g";
+       version = "0.1.0.2";
+       sha256 = "12fwzazj88hd6a6fgr2rf1m276j2zsxs5fwczkyhak892c2w3hx6";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -160671,6 +163228,7 @@ self: {
        description = "Load JSON from files in a directory structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsondir";
        broken = true;
      }) {};
 
@@ -160735,8 +163293,8 @@ self: {
      }:
      mkDerivation {
        pname = "json-feed";
-       version = "2.0.0.1";
-       sha256 = "1znipg1g33s2z7pv20rnl6i3l1xf05wrz9d6srr7kgvv703w4qgk";
+       version = "2.0.0.3";
+       sha256 = "0hil16m7higmcvjgdjmrq9r1cdwq13jyp9fz7hm83j1hra2z4i5j";
        libraryHaskellDepends = [
          aeson base bytestring mime-types network-uri tagsoup text time
        ];
@@ -161200,6 +163758,7 @@ self: {
          recursion-schemes text unordered-containers vector
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "json-to-haskell";
      }) {};
 
   "json-togo" = callPackage
@@ -161361,6 +163920,7 @@ self: {
        executableHaskellDepends = [ aeson base bytestring yaml ];
        description = "Utility to convert a file from JSON to YAML format. (deprecated)";
        license = lib.licenses.bsd3;
+       mainProgram = "json2yaml";
      }) {};
 
   "json5hs" = callPackage
@@ -161397,6 +163957,7 @@ self: {
        description = "Filter select values in JSON objects to unix programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonextfilter";
        broken = true;
      }) {};
 
@@ -161407,26 +163968,6 @@ self: {
      }:
      mkDerivation {
        pname = "jsonifier";
-       version = "0.2.0.1";
-       sha256 = "1i2qd8lingj9f35j6zzxfq0xlx115mdaxi1rwj8d5jzvlqczd24s";
-       libraryHaskellDepends = [
-         base bytestring ptr-poker scientific text
-       ];
-       testHaskellDepends = [ aeson hedgehog numeric-limits rerebase ];
-       benchmarkHaskellDepends = [
-         aeson buffer-builder gauge rerebase text-builder
-       ];
-       description = "Fast and simple JSON encoding toolkit";
-       license = lib.licenses.mit;
-     }) {};
-
-  "jsonifier_0_2_1_1" = callPackage
-    ({ mkDerivation, aeson, base, buffer-builder, bytestring, gauge
-     , hedgehog, numeric-limits, ptr-poker, rerebase, scientific, text
-     , text-builder
-     }:
-     mkDerivation {
-       pname = "jsonifier";
        version = "0.2.1.1";
        sha256 = "0wih0m3g2wj06zwl2wbs9y2bfbc593vmh25imy6hki2iq7wwr3l0";
        libraryHaskellDepends = [
@@ -161438,7 +163979,6 @@ self: {
        ];
        description = "Fast and simple JSON encoding toolkit";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "jsonl" = callPackage
@@ -161538,6 +164078,7 @@ self: {
        description = "Jsonnet implementaton in pure Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-jsonnet";
        broken = true;
      }) {};
 
@@ -161586,8 +164127,8 @@ self: {
      }:
      mkDerivation {
        pname = "jsonrpc-conduit";
-       version = "0.3.10";
-       sha256 = "1p2rbk0x998jvzhxb52w1vmjzjkvr1z3cw90apb2c2xpvn4z0ks7";
+       version = "0.3.12";
+       sha256 = "0yv7x9c1qgc332vzk61zlr4v0zckjgx3nbd17klxf3w8hljb25vs";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring conduit conduit-extra mtl text
          transformers unordered-containers
@@ -161648,6 +164189,7 @@ self: {
        description = "JSON to JSON Schema";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsons-to-schema-exe";
      }) {};
 
   "jsonschema-gen" = callPackage
@@ -161692,6 +164234,7 @@ self: {
        description = "Interpolate JSON object values into SQL strings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonsql";
        broken = true;
      }) {};
 
@@ -161714,6 +164257,7 @@ self: {
        description = "JSON to TSV transformer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsontsv";
        broken = true;
      }) {};
 
@@ -161736,6 +164280,7 @@ self: {
        description = "json to xlsx converter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jsonxlsx";
        broken = true;
      }) {};
 
@@ -161802,6 +164347,7 @@ self: {
        ];
        description = "Manage users in MariaDB >= 10.1.1";
        license = lib.licenses.mit;
+       mainProgram = "juandelacosa";
      }) {};
 
   "judge" = callPackage
@@ -161829,6 +164375,7 @@ self: {
        description = "Tableau-based theorem prover for justification logic";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "judge";
        broken = true;
      }) {};
 
@@ -161863,6 +164410,7 @@ self: {
        executableHaskellDepends = [ base JuicyPixels ];
        description = "Draw and fill lines, rectangles and polygons";
        license = lib.licenses.mit;
+       mainProgram = "juicy-draw-demo";
      }) {};
 
   "juicy-gcode" = callPackage
@@ -161882,6 +164430,7 @@ self: {
        description = "SVG to G-Code converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "juicy-gcode";
        broken = true;
      }) {};
 
@@ -161904,6 +164453,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A first-order reasoning toolbox";
        license = lib.licenses.bsd3;
+       mainProgram = "jukebox";
      }) {};
 
   "jump" = callPackage
@@ -161930,6 +164480,7 @@ self: {
        executableHaskellDepends = [ base parallel ];
        description = "an elementary symmetric chiffre for pragmatically protecting one's effects";
        license = lib.licenses.bsd3;
+       mainProgram = "jumpthefive";
      }) {};
 
   "junit-xml" = callPackage
@@ -162257,6 +164808,7 @@ self: {
        description = "GLUT events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-glut";
      }) {};
 
   "kafka-device-joystick" = callPackage
@@ -162278,6 +164830,7 @@ self: {
        description = "Linux joystick events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-joystick";
      }) {};
 
   "kafka-device-leap" = callPackage
@@ -162297,6 +164850,7 @@ self: {
        description = "Leap Motion events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-leap";
      }) {};
 
   "kafka-device-spacenav" = callPackage
@@ -162318,6 +164872,7 @@ self: {
        description = "Linux SpaceNavigator events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-spacenav";
      }) {};
 
   "kafka-device-vrpn" = callPackage
@@ -162333,6 +164888,7 @@ self: {
        description = "VRPN events via a Kafka message broker";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kafka-device-vrpn";
      }) {};
 
   "kaleidoscope" = callPackage
@@ -162437,8 +164993,8 @@ self: {
        pname = "kansas-comet";
        version = "0.4.1";
        sha256 = "1j54rsqna8xrw1si8i74v0c9k4jjv8a2q001aa8sx4rxb7d1qbzy";
-       revision = "2";
-       editedCabalFile = "19gnng378z76zfi789ysdh1cl50ydsk7745mf6a34d08flk6a9if";
+       revision = "3";
+       editedCabalFile = "1d8wwklqcayr12wyhci6h1aihd41q20zl1h5585nsv1dgvqinamh";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson base containers data-default-class scotty stm text time
@@ -162840,8 +165396,8 @@ self: {
      }:
      mkDerivation {
        pname = "katip-wai";
-       version = "0.1.1.0";
-       sha256 = "0ajwa6ya0azbffcz2cpsd2kd8fy2s2hbklyj604f27pghl7fki06";
+       version = "0.1.2.0";
+       sha256 = "10chkrjjh6ja6bil3s12hm7mfgi1j1idq490h5iqs1y3am44bda1";
        libraryHaskellDepends = [
          aeson base bytestring clock http-types katip network text uuid wai
        ];
@@ -162874,6 +165430,7 @@ self: {
        description = "Client for the Kattis judge system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "katt";
        broken = true;
      }) {};
 
@@ -162909,6 +165466,7 @@ self: {
        description = "A haskell implementation of Katydid";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "katydid-exe";
        broken = true;
      }) {};
 
@@ -162931,6 +165489,7 @@ self: {
        testHaskellDepends = [ base hedgehog text unordered-containers ];
        description = "Key-value store in single files";
        license = lib.licenses.bsd3;
+       mainProgram = "kawa";
      }) {};
 
   "kawaii" = callPackage
@@ -163004,6 +165563,8 @@ self: {
        ];
        description = "Fast concurrent queues much inspired by unagi-chan";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "kbq-gu" = callPackage
@@ -163072,6 +165633,7 @@ self: {
        description = "Build profiles for kdesrc-build";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kdesrc-build-extra";
        broken = true;
      }) {};
 
@@ -163091,6 +165653,7 @@ self: {
        ];
        description = "Build profiles for kdesrc-build";
        license = lib.licenses.gpl3Only;
+       mainProgram = "kdesrc-build-profiles";
      }) {};
 
   "kdt" = callPackage
@@ -163138,6 +165701,7 @@ self: {
        description = "cryptographic functions based on the sponge construction";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "collision";
        broken = true;
      }) {};
 
@@ -163167,16 +165731,17 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keenser-exe";
      }) {};
 
   "keep-alive" = callPackage
-    ({ mkDerivation, base }:
+    ({ mkDerivation, base, network }:
      mkDerivation {
        pname = "keep-alive";
-       version = "0.2.0.0";
-       sha256 = "1hkmm1933y6dlzr88p75kkl6qiw5jnb1f4klfbwbl2d3jx8fg92k";
+       version = "0.2.1.0";
+       sha256 = "1sbkn9rkj8rv5gn2a4s46rfmxr46ya7l8bqbdp8p3xga79d42pyh";
        libraryHaskellDepends = [ base ];
-       testHaskellDepends = [ base ];
+       testHaskellDepends = [ base network ];
        description = "TCP keep alive implementation";
        license = lib.licenses.bsd3;
      }) {};
@@ -163533,6 +166098,7 @@ self: {
        description = "Get notifications when your sitting posture is inappropriate";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keera-posture";
      }) {inherit (pkgs) SDL_mixer;};
 
   "keid-core" = callPackage
@@ -163558,10 +166124,7 @@ self: {
        ];
        description = "Core parts of Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -163595,10 +166158,7 @@ self: {
        ];
        description = "Geometry primitives for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163620,10 +166180,7 @@ self: {
        ];
        description = "Basic rendering programs for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163658,10 +166215,7 @@ self: {
        ];
        description = "OpenAL sound system for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163680,10 +166234,7 @@ self: {
        ];
        description = "DearImGui elements for Keid engine";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -163707,6 +166258,7 @@ self: {
        description = "Multi-process orchestration for development and integration testing";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keiretsu";
        broken = true;
      }) {};
 
@@ -163743,6 +166295,7 @@ self: {
        description = "Kempe compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kc";
        broken = true;
      }) {};
 
@@ -163828,6 +166381,7 @@ self: {
        ];
        description = "Web application deployment manager, focusing on Haskell web frameworks";
        license = lib.licenses.mit;
+       mainProgram = "keter";
      }) {};
 
   "kevin" = callPackage
@@ -163849,6 +166403,7 @@ self: {
        description = "a dAmn ↔ IRC proxy";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kevin";
      }) {};
 
   "kewar" = callPackage
@@ -163866,6 +166421,7 @@ self: {
        description = "CLI and library to generate QR codes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kewar";
        broken = true;
      }) {};
 
@@ -163929,6 +166485,7 @@ self: {
        executableHaskellDepends = [ base hslogger ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -164033,29 +166590,31 @@ self: {
        description = "back up a secret key securely to the cloud";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keysafe";
      }) {};
 
   "keystore" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-wl-pprint, api-tools
-     , asn1-encoding, asn1-types, base, base64-bytestring, byteable
-     , bytestring, cipher-aes, containers, crypto-pubkey, crypto-random
-     , directory, filepath, lens, mtl, old-locale, optparse-applicative
-     , pbkdf, process, raw-strings-qq, regex, regex-compat-tdfa, safe
-     , setenv, text, time, unordered-containers, vector
+     , array, asn1-encoding, asn1-types, base, base64-bytestring
+     , byteable, bytestring, containers, crypto-pubkey-types, cryptonite
+     , directory, filepath, lens, memory, mtl, old-locale
+     , optparse-applicative, pbkdf, process, raw-strings-qq, regex
+     , regex-base, regex-tdfa, safe, setenv, text, time
+     , unordered-containers, vector
      }:
      mkDerivation {
        pname = "keystore";
-       version = "0.8.2.0";
-       sha256 = "1y91mdy9gpzwxcf2h9s4afs9lzyxrffq4qhrip0ygvyd8qr8x95m";
+       version = "0.9.0.0";
+       sha256 = "1wv9rsqz80n70z2fn2s7j4scxcx4dsdr54b8l29232vqzjyqnaxr";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
-         aeson aeson-pretty ansi-wl-pprint api-tools asn1-encoding
-         asn1-types base base64-bytestring byteable bytestring cipher-aes
-         containers crypto-pubkey crypto-random directory filepath lens mtl
-         old-locale optparse-applicative pbkdf regex regex-compat-tdfa safe
-         setenv text time unordered-containers vector
+         aeson aeson-pretty ansi-wl-pprint api-tools array asn1-encoding
+         asn1-types base base64-bytestring byteable bytestring containers
+         crypto-pubkey-types cryptonite directory filepath lens memory mtl
+         old-locale optparse-applicative pbkdf regex regex-base regex-tdfa
+         safe setenv text time unordered-containers vector
        ];
        executableHaskellDepends = [
          aeson ansi-wl-pprint api-tools base bytestring directory filepath
@@ -164104,6 +166663,7 @@ self: {
        description = "Extract data from a keyword-args config file format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "keyword-args";
      }) {};
 
   "khph" = callPackage
@@ -164124,6 +166684,7 @@ self: {
        description = "Command-line file tagging and organization tool";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "khph";
        broken = true;
      }) {};
 
@@ -164230,6 +166791,7 @@ self: {
        description = "Process KIF iOS test logs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kif-parser";
      }) {};
 
   "kind-apply" = callPackage
@@ -164302,6 +166864,7 @@ self: {
        description = "A dependency manager for Xcode (Objective-C) projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kit";
      }) {};
 
   "kleene" = callPackage
@@ -164392,6 +166955,7 @@ self: {
        description = "An implementation of the kmeans clustering algorithm based on the vector package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kmeans-example";
      }) {};
 
   "kmn-programming" = callPackage
@@ -164409,6 +166973,7 @@ self: {
        ];
        description = "K_M,N quadratic programming";
        license = lib.licenses.bsd3;
+       mainProgram = "kmn-programming";
      }) {};
 
   "kmonad" = callPackage
@@ -164429,6 +166994,7 @@ self: {
        description = "Advanced keyboard remapping utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "kmonad";
        broken = true;
      }) {};
 
@@ -164562,6 +167128,7 @@ self: {
        description = "Khovanov homology computations";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Rolfsen-Kh";
        broken = true;
      }) {};
 
@@ -164610,6 +167177,7 @@ self: {
        description = "CLI tool for installing rpms directly from Fedora Koji";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koji-install";
      }) {};
 
   "koji-tool" = callPackage
@@ -164620,8 +167188,8 @@ self: {
      }:
      mkDerivation {
        pname = "koji-tool";
-       version = "0.9.1";
-       sha256 = "0njjrxqycyl7vh46rmx2b3i0467nkppbx20xc3j1jxn7s3dc884x";
+       version = "0.9.2";
+       sha256 = "0fl3cgdw2b1mhc07zbh6k4b20ck0pgk8r678ywvi45asr331y2r6";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -164633,6 +167201,7 @@ self: {
        description = "Koji CLI tool for querying tasks and installing builds";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koji-tool";
      }) {};
 
   "koneko" = callPackage
@@ -164666,6 +167235,7 @@ self: {
        description = "a concatenative not-quite-lisp for kittens";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "koneko";
        broken = true;
      }) {};
 
@@ -164759,6 +167329,7 @@ self: {
        description = "The Korfu ORF Utility";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "korfu";
      }) {};
 
   "kparams" = callPackage
@@ -164775,6 +167346,7 @@ self: {
        doHaddock = false;
        description = "Extracts values from /proc/cmdline";
        license = lib.licenses.mit;
+       mainProgram = "kparams";
      }) {};
 
   "kqueue" = callPackage
@@ -164788,7 +167360,11 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "A binding to the kqueue event library";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-darwin" "x86_64-darwin" ];
+       platforms =
+            lib.platforms.darwin
+         ++ lib.platforms.freebsd
+         ++ lib.platforms.netbsd
+         ++ lib.platforms.openbsd;
      }) {};
 
   "kraken" = callPackage
@@ -164839,6 +167415,7 @@ self: {
        description = "Krank checks issue tracker link status in your source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "krank";
        broken = true;
      }) {};
 
@@ -165217,6 +167794,7 @@ self: {
        description = "an experiment management framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labor-example";
      }) {};
 
   "labsat" = callPackage
@@ -165241,6 +167819,7 @@ self: {
        description = "LabSat TCP Interface Wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labsat";
      }) {};
 
   "labyrinth" = callPackage
@@ -165297,14 +167876,15 @@ self: {
        description = "A complicated turn-based game - Web server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "labyrinth-server";
      }) {};
 
   "lackey" = callPackage
     ({ mkDerivation, base, hspec, servant, servant-foreign, text }:
      mkDerivation {
        pname = "lackey";
-       version = "2.0.0.1";
-       sha256 = "09jc3amsj20c2bqn8x4ibcd43rzjv7mz2c2qs4rdic2ggfkhifcj";
+       version = "2.0.0.2";
+       sha256 = "0iiwqnhpz0df79gk224kfp20k2aip41vsz7sakbj5dmlgzlr8d0j";
        libraryHaskellDepends = [ base servant-foreign text ];
        testHaskellDepends = [ base hspec servant servant-foreign text ];
        description = "Generate Ruby clients from Servant APIs";
@@ -165390,27 +167970,36 @@ self: {
        description = "A bridge from Haskell (on a CPU) to VHDL on a FPGA";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-test1";
        broken = true;
      }) {};
 
   "lambda-calculator" = callPackage
-    ({ mkDerivation, base, containers, hlint, hspec, HUnit
-     , optparse-applicative, parsec, Shellac, Shellac-readline
+    ({ mkDerivation, base, bytestring, containers, hlint, hspec, HUnit
+     , mtl, optparse-applicative, parsec, prettyprinter, repline, rio
+     , text
      }:
      mkDerivation {
        pname = "lambda-calculator";
-       version = "2.0.0";
-       sha256 = "1bqlx04rp3ycqzy4x92nd9826pnzyd51k5vkaksxj3vj9nr2ycg5";
+       version = "3.0.0.1";
+       sha256 = "1830xqgr7fy4bbdys27qcq6qa1r83ajx0dl0vjx46gmccdm5fjmq";
        isLibrary = true;
        isExecutable = true;
-       libraryHaskellDepends = [ base containers parsec ];
+       libraryHaskellDepends = [
+         base containers mtl parsec prettyprinter rio
+       ];
        executableHaskellDepends = [
-         base optparse-applicative Shellac Shellac-readline
+         base bytestring containers mtl optparse-applicative prettyprinter
+         repline rio text
+       ];
+       testHaskellDepends = [
+         base containers hlint hspec HUnit mtl prettyprinter rio
        ];
-       testHaskellDepends = [ base containers hlint hspec HUnit ];
        description = "A lambda calculus interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-calculator";
+       broken = true;
      }) {};
 
   "lambda-calculus-interpreter" = callPackage
@@ -165426,6 +168015,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit ];
        description = "Lambda Calculus interpreter";
        license = lib.licenses.bsd3;
+       mainProgram = "lci";
      }) {};
 
   "lambda-canvas" = callPackage
@@ -165484,6 +168074,7 @@ self: {
        description = "a Paralell-DEVS implementaion based on distributed-process";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-devs-example";
      }) {};
 
   "lambda-options" = callPackage
@@ -165542,6 +168133,7 @@ self: {
        description = "An application to work with the lambda calculus (for learning)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda-toolbox";
        broken = true;
      }) {};
 
@@ -165557,6 +168149,7 @@ self: {
        description = "Untyped Lambda calculus to JavaScript compiler";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambda2js";
        broken = true;
      }) {};
 
@@ -165585,6 +168178,7 @@ self: {
        description = "RSS 2.0 feed generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaFeed";
      }) {};
 
   "lambdaLit" = callPackage
@@ -165603,6 +168197,7 @@ self: {
        description = "...";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdaLit";
      }) {};
 
   "lambdabot" = callPackage
@@ -165625,7 +168220,8 @@ self: {
        ];
        description = "Lambdabot is a development tool and advanced IRC bot";
        license = "GPL";
-       maintainers = with lib.maintainers; [ ncfavier ];
+       mainProgram = "lambdabot";
+       maintainers = [ lib.maintainers.ncfavier ];
      }) {};
 
   "lambdabot-core" = callPackage
@@ -165794,6 +168390,7 @@ self: {
        description = "Lambdabot for Telegram";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "telegram-lambdabot";
        broken = true;
      }) {};
 
@@ -165854,6 +168451,7 @@ self: {
        description = "Lambdabot plugin for XMPP (Jabber) protocol";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdabot-xmpp";
        broken = true;
      }) {};
 
@@ -165876,6 +168474,7 @@ self: {
        description = "Lambdabot for Zulip Chat";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lamdabot-zulip-server";
      }) {};
 
   "lambdacat" = callPackage
@@ -165895,6 +168494,7 @@ self: {
        description = "Webkit Browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdacat";
      }) {};
 
   "lambdacms-core" = callPackage
@@ -165952,6 +168552,7 @@ self: {
        description = "A simple lambda cube type checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cube";
      }) {};
 
   "lambdacube-bullet" = callPackage
@@ -165991,6 +168592,7 @@ self: {
        description = "LambdaCube 3D is a DSL to program GPUs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lc";
      }) {};
 
   "lambdacube-core" = callPackage
@@ -166197,6 +168799,7 @@ self: {
        description = "Diff Viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lambdiff";
      }) {};
 
   "lame" = callPackage
@@ -166287,6 +168890,7 @@ self: {
        description = "Parser, pretty-printer, and more for the Modula-2 programming language";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse";
      }) {};
 
   "language-asn" = callPackage
@@ -166326,6 +168930,7 @@ self: {
        ];
        description = "Parsing of ASN1 definitions";
        license = lib.licenses.bsd3;
+       mainProgram = "dump-asn1-ast";
      }) {};
 
   "language-ats" = callPackage
@@ -166409,6 +169014,7 @@ self: {
        description = "Interpreter and language infrastructure for Boogie";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "boogaloo";
      }) {};
 
   "language-c" = callPackage
@@ -166427,7 +169033,7 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Analysis and generation of C code";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "language-c-comments" = callPackage
@@ -166638,6 +169244,7 @@ self: {
        doHaddock = false;
        description = "A language for generative literature";
        license = lib.licenses.bsd3;
+       mainProgram = "emd";
      }) {};
 
   "language-docker" = callPackage
@@ -166728,6 +169335,7 @@ self: {
        testHaskellDepends = [ base parsec ];
        description = "A library for the analysis and creation of Graphviz DOT files";
        license = lib.licenses.bsd3;
+       mainProgram = "ppdot";
      }) {};
 
   "language-ecmascript" = callPackage
@@ -166871,6 +169479,7 @@ self: {
        ];
        description = "GLSL abstract syntax tree, parser, and pretty-printer";
        license = lib.licenses.bsd3;
+       mainProgram = "glsl-pprint";
      }) {};
 
   "language-go" = callPackage
@@ -167138,6 +169747,7 @@ self: {
        description = "Parser, pretty-printer, and AST types for the MIXAL assembly language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mixal-pretty";
        broken = true;
      }) {};
 
@@ -167193,7 +169803,7 @@ self: {
        ];
        description = "Data types and functions to represent the Nix language";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "language-oberon" = callPackage
@@ -167226,6 +169836,7 @@ self: {
        description = "Parser, pretty-printer, and more for the Oberon programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parse";
      }) {};
 
   "language-objc" = callPackage
@@ -167289,6 +169900,7 @@ self: {
        description = "A simple parser for OpenSCAD";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Test";
        broken = true;
      }) {};
 
@@ -167400,6 +170012,7 @@ self: {
        description = "Generate coloured XHTML for Python code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pycol";
      }) {};
 
   "language-python-test" = callPackage
@@ -167870,11 +170483,8 @@ self: {
        ];
        description = "Efficiently hash (large) Haskell values";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       badPlatforms = [ "aarch64-linux" ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "large-records" = callPackage
@@ -167935,6 +170545,7 @@ self: {
        description = "Tool to track security alerts on LWN";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lat";
      }) {};
 
   "latest-npm-version" = callPackage
@@ -167966,6 +170577,7 @@ self: {
        description = "Find the latest version of a package on npm";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latest-npm-version";
      }) {};
 
   "latex" = callPackage
@@ -168038,6 +170650,7 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX installation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latex-formulae-filter";
      }) {};
 
   "latex-function-tables" = callPackage
@@ -168060,6 +170673,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Function table specifications in latex";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "latex-live-snippets" = callPackage
@@ -168075,6 +170689,7 @@ self: {
        ];
        description = "Automatically inline Haskell snippets into LaTeX documents";
        license = lib.licenses.bsd3;
+       mainProgram = "latex-live-snippets";
      }) {};
 
   "latex-svg-hakyll" = callPackage
@@ -168130,6 +170745,7 @@ self: {
        description = "Render LaTeX formulae in pandoc documents to images with an actual LaTeX";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "latex-svg-filter";
      }) {};
 
   "lattices" = callPackage
@@ -168208,6 +170824,7 @@ self: {
        description = "High and low-level interface to the Novation Launchpad midi controller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "launchpad-control-examples";
        broken = true;
      }) {};
 
@@ -168321,6 +170938,7 @@ self: {
        description = "A prototypical 2d platform game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "layers";
      }) {};
 
   "layout" = callPackage
@@ -168455,6 +171073,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Efficient lazy parsers for CSV (comma-separated values)";
        license = lib.licenses.bsd3;
+       mainProgram = "csvSelect";
      }) {};
 
   "lazy-hash" = callPackage
@@ -168536,6 +171155,7 @@ self: {
        description = "Lazy-Spined Monadic Priority Queues";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Levenshtein";
        broken = true;
      }) {};
 
@@ -168730,8 +171350,8 @@ self: {
      }:
      mkDerivation {
        pname = "ldap-scim-bridge";
-       version = "0.6";
-       sha256 = "0jlqq83mikf5j5hapd3ijf3ywzivhhj4702yl43b4ysqcq83bj7i";
+       version = "0.8";
+       sha256 = "04klp9n61q63bvpcn7i12q35dfm6r3mivjpw8708pxqq1mkd2qf2";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -168749,6 +171369,7 @@ self: {
        description = "See README for synopsis";
        license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ldap-scim-bridge";
      }) {};
 
   "ldapply" = callPackage
@@ -168768,6 +171389,7 @@ self: {
        description = "LDIF idempotent apply tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ldapply";
      }) {};
 
   "ldif" = callPackage
@@ -168811,6 +171433,7 @@ self: {
        description = "A simple portfolio generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leaf";
        broken = true;
      }) {};
 
@@ -168831,6 +171454,7 @@ self: {
        description = "Robust space leak, and its strictification";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leaky";
      }) {};
 
   "lean" = callPackage
@@ -169096,7 +171720,7 @@ self: {
        ];
        description = "LEB128 and SLEB128 encoding";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ nomeata ];
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "leetify" = callPackage
@@ -169112,6 +171736,7 @@ self: {
        description = "Leetify text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leetify";
        broken = true;
      }) {};
 
@@ -169126,6 +171751,7 @@ self: {
        executableHaskellDepends = [ base hscharm random random-shuffle ];
        description = "left4dead-inspired roguelike";
        license = lib.licenses.bsd3;
+       mainProgram = "left4deadrl";
      }) {};
 
   "legion" = callPackage
@@ -169174,6 +171800,7 @@ self: {
        description = "A discovery service based on Legion";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "legion-discovery";
      }) {};
 
   "legion-discovery-client" = callPackage
@@ -169254,6 +171881,7 @@ self: {
        description = "Haskell IDE written in Haskell";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "leksah";
      }) {inherit (pkgs) gtk3;};
 
   "leksah-server" = callPackage
@@ -169368,6 +171996,8 @@ self: {
        pname = "lens";
        version = "5.1.1";
        sha256 = "08mkm2mjvhmwg9hc4kd4cd6dgmcszs1p2mzp1nmri7lqbpy9jknc";
+       revision = "1";
+       editedCabalFile = "19z3k7ikpfa96b86yabxghfqpnq9d0ayy4gdlvci3ycvws0s8cy6";
        libraryHaskellDepends = [
          array assoc base base-orphans bifunctors bytestring call-stack
          comonad containers contravariant distributive exceptions filepath
@@ -169447,6 +172077,8 @@ self: {
        pname = "lens-aeson";
        version = "1.2.1";
        sha256 = "08x0vbkay8d6s24fzy2iria0hl9pmq891cnzm6zl0j9j53z9jw9l";
+       revision = "3";
+       editedCabalFile = "0lqpl5fhl94fm3xcwf8ssz7yg9nyfxp9bw2z959x7hg6bcqmv9p1";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring lens scientific text text-short
          unordered-containers vector
@@ -169802,7 +172434,7 @@ self: {
        description = "Tutorial for the lens library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -169907,7 +172539,8 @@ self: {
        ];
        description = "frugal issue tracker";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ rvl ];
+       mainProgram = "lentil";
+       maintainers = [ lib.maintainers.rvl ];
      }) {};
 
   "lenz" = callPackage
@@ -170055,18 +172688,19 @@ self: {
      }) {inherit (pkgs) leveldb;};
 
   "levenshtein" = callPackage
-    ({ mkDerivation, base, binary, data-default, deepseq, hashable
-     , hspec, hspec-discover, QuickCheck
+    ({ mkDerivation, base, binary, criterion, data-default-class
+     , deepseq, hashable, hspec, hspec-discover, QuickCheck
      }:
      mkDerivation {
        pname = "levenshtein";
-       version = "0.1.3.0";
-       sha256 = "1h9xygy65npn2a5pgngqzm39k9ms3krzn1in9h0adln6aq2kcgdx";
+       version = "0.2.0.0";
+       sha256 = "0q0q19xjp37gl3xadfm1i70q5dwyh1b3699rf0b3rb6zb13py839";
        libraryHaskellDepends = [
-         base binary data-default deepseq hashable QuickCheck
+         base binary data-default-class deepseq hashable QuickCheck
        ];
-       testHaskellDepends = [ base hspec QuickCheck ];
+       testHaskellDepends = [ base data-default-class hspec QuickCheck ];
        testToolDepends = [ hspec-discover ];
+       benchmarkHaskellDepends = [ base criterion deepseq ];
        description = "Calculate the edit distance between two foldables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
@@ -170176,6 +172810,7 @@ self: {
        description = "Lens GUI Toolkit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lgtkdemo";
      }) {};
 
   "lha" = callPackage
@@ -170208,6 +172843,7 @@ self: {
        description = "Simple spreadsheet program";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhae";
      }) {};
 
   "lhc" = callPackage
@@ -170254,6 +172890,7 @@ self: {
        description = "Literate highlighter preprocessor for lhs2tex";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhs2TeX-hl";
        broken = true;
      }) {};
 
@@ -170269,6 +172906,7 @@ self: {
        executableHaskellDepends = [ base directory filepath Glob ];
        description = "Compile lhs in bird style to md, html, hs";
        license = lib.licenses.publicDomain;
+       mainProgram = "lhs2html";
      }) {};
 
   "lhs2tex" = callPackage
@@ -170289,7 +172927,8 @@ self: {
        ];
        description = "Preprocessor for typesetting Haskell sources with LaTeX";
        license = "GPL";
-       maintainers = with lib.maintainers; [ nomeata ];
+       mainProgram = "lhs2TeX";
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "lhslatex" = callPackage
@@ -170306,6 +172945,7 @@ self: {
        description = "Tool for using pdflatex with .lhs files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lhslatex";
        broken = true;
      }) {};
 
@@ -170322,6 +172962,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A binding to the libBF library";
        license = lib.licenses.mit;
+       mainProgram = "bf-test";
      }) {};
 
   "libGenI" = callPackage
@@ -170545,6 +173186,7 @@ self: {
        description = "Backend for text editors to provide better Haskell editing support";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "libhbb-cli";
        broken = true;
      }) {};
 
@@ -170764,6 +173406,7 @@ self: {
        ];
        description = "Bindings for libmdbx, an embedded key/value store";
        license = lib.licenses.bsd3;
+       mainProgram = "libmdbx-exe";
      }) {};
 
   "libmodbus" = callPackage
@@ -170776,9 +173419,7 @@ self: {
        librarySystemDepends = [ modbus ];
        description = "Haskell bindings to the C modbus library";
        license = lib.licenses.bsd2;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {modbus = null;};
 
   "libmolude" = callPackage
@@ -170906,6 +173547,7 @@ self: {
        description = "Bindings to liboath";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oathtool-hs";
        broken = true;
      }) {liboath = null; oath = null;};
 
@@ -171005,6 +173647,7 @@ self: {
        description = "Raft consensus algorithm";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "raft-example";
      }) {};
 
   "librandomorg" = callPackage
@@ -171212,9 +173855,7 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "Haskell bindings to libsystemd-journal";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) systemd;};
@@ -171249,9 +173890,7 @@ self: {
        libraryPkgconfigDepends = [ libtelnet ];
        description = "Bindings to libtelnet";
        license = lib.licenses.gpl3Plus;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libtelnet;};
 
   "libversion" = callPackage
@@ -171277,10 +173916,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "FFI bindings to libvirt virtualization API (http://libvirt.org)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "aarch64-linux" "armv7l-linux" "i686-linux"
-         "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) libvirt;};
 
   "libvorbis" = callPackage
@@ -171421,10 +174057,9 @@ self: {
        executableSystemDepends = [ nvpair zfs ];
        description = "Bindings to libzfs, for dealing with the Z File System and Zpools";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {nvpair = null; inherit (pkgs) zfs;};
 
@@ -171446,6 +174081,7 @@ self: {
        description = "A license compatibility helper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "licensor";
        broken = true;
      }) {};
 
@@ -171462,6 +174098,7 @@ self: {
        description = "Lie Algebras";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Lie";
        broken = true;
      }) {};
 
@@ -171477,6 +174114,7 @@ self: {
        executableHaskellDepends = [ array base GLUT OpenGL random ];
        description = "Conway's Life cellular automaton";
        license = lib.licenses.bsd3;
+       mainProgram = "life";
      }) {};
 
   "life-sync" = callPackage
@@ -171504,6 +174142,7 @@ self: {
        description = "Synchronize personal configs across multiple machines";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "life";
        broken = true;
      }) {};
 
@@ -171707,6 +174346,7 @@ self: {
        description = "A boulderdash-like game and solution validator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lifter";
        broken = true;
      }) {};
 
@@ -171821,6 +174461,7 @@ self: {
        description = "LightStep OpenTracing client library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lightstep-haskell-stress-test";
      }) {};
 
   "lighttpd-conf" = callPackage
@@ -171962,6 +174603,7 @@ self: {
        description = "Zen gardening, based on l-systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linden-example";
        broken = true;
      }) {};
 
@@ -172041,6 +174683,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert newlines in text";
        license = lib.licenses.gpl3Only;
+       mainProgram = "linebreak";
      }) {};
 
   "line-drawing" = callPackage
@@ -172068,6 +174711,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Display the number of bytes of each line";
        license = lib.licenses.gpl3Only;
+       mainProgram = "line-size";
      }) {};
 
   "line2pdf" = callPackage
@@ -172082,6 +174726,7 @@ self: {
        executableHaskellDepends = [ base bytestring containers ];
        description = "Simple command-line utility to convert text into PDF";
        license = lib.licenses.bsd3;
+       mainProgram = "line2pdf";
      }) {};
 
   "linear" = callPackage
@@ -172111,6 +174756,34 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "linear_1_21_10" = callPackage
+    ({ mkDerivation, adjunctions, base, base-orphans, binary, bytes
+     , bytestring, cereal, containers, deepseq, distributive, ghc-prim
+     , hashable, HUnit, indexed-traversable, lens, random, reflection
+     , semigroupoids, semigroups, simple-reflect, tagged
+     , template-haskell, test-framework, test-framework-hunit
+     , transformers, transformers-compat, unordered-containers, vector
+     , void
+     }:
+     mkDerivation {
+       pname = "linear";
+       version = "1.21.10";
+       sha256 = "1d3s1p4imkifn7dccqci2qiwcg99x22kf250hzh4fh4xghi361xr";
+       libraryHaskellDepends = [
+         adjunctions base base-orphans binary bytes cereal containers
+         deepseq distributive ghc-prim hashable indexed-traversable lens
+         random reflection semigroupoids semigroups tagged template-haskell
+         transformers transformers-compat unordered-containers vector void
+       ];
+       testHaskellDepends = [
+         base binary bytestring deepseq HUnit reflection simple-reflect
+         test-framework test-framework-hunit vector
+       ];
+       description = "Linear Algebra";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "linear-accelerate" = callPackage
     ({ mkDerivation, accelerate, base, Cabal, cabal-doctest
      , distributive, doctest, lens, linear
@@ -172148,6 +174821,7 @@ self: {
        description = "A linear algebra library with bindings to BLAS and LAPACK";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-hs-linear-algebra";
        broken = true;
      }) {};
 
@@ -172379,10 +175053,7 @@ self: {
        libraryHaskellDepends = [ base sbv ];
        description = "Use SMT solvers to solve linear systems over integers and rationals";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "linearmap-category" = callPackage
@@ -172479,6 +175150,7 @@ self: {
        ];
        description = "A lightweight readline-replacement library for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "linenoise-demo";
      }) {};
 
   "lines-of-action" = callPackage
@@ -172515,6 +175187,7 @@ self: {
        description = "File extension based programming language detection";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate";
        broken = true;
      }) {};
 
@@ -172565,6 +175238,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Check for broken links in CI";
        license = lib.licenses.mit;
+       mainProgram = "linkcheck";
      }) {};
 
   "linkchk" = callPackage
@@ -172583,6 +175257,7 @@ self: {
        description = "linkchk is a network interface link ping monitor";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkchk";
      }) {};
 
   "linkcore" = callPackage
@@ -172600,6 +175275,7 @@ self: {
        description = "Combines multiple GHC Core modules into a single module";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "linkcore";
      }) {};
 
   "linked-list-with-iterator" = callPackage
@@ -172821,9 +175497,7 @@ self: {
        libraryHaskellDepends = [ base bytestring time unix ];
        description = "Bindings to Linux evdev input device interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-file-extents" = callPackage
@@ -172837,9 +175511,7 @@ self: {
        libraryHaskellDepends = [ base unix ];
        description = "Retrieve file fragmentation information under Linux";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-framebuffer" = callPackage
@@ -172862,9 +175534,7 @@ self: {
        libraryHaskellDepends = [ base bytestring hashable unix ];
        description = "Thinner binding to the Linux Kernel's inotify interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-kmod" = callPackage
@@ -172890,9 +175560,7 @@ self: {
        libraryHaskellDepends = [ base bytestring ];
        description = "Mount and unmount filesystems";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-namespaces" = callPackage
@@ -172904,9 +175572,7 @@ self: {
        libraryHaskellDepends = [ base bytestring unix ];
        description = "Work with linux namespaces: create new or enter existing ones";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "linux-perf" = callPackage
@@ -172981,6 +175647,7 @@ self: {
        description = "Implementation of the Enea LINX gateway protocol";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Ping";
        broken = true;
      }) {};
 
@@ -173025,9 +175692,7 @@ self: {
        ];
        description = "Labeled File System interface for LIO";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "lio-simple" = callPackage
@@ -173053,6 +175718,7 @@ self: {
        description = "LIO support for the Simple web framework";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lio-simple";
      }) {};
 
   "lion" = callPackage
@@ -173192,6 +175858,7 @@ self: {
        description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "fixpoint";
      }) {inherit (pkgs) git; inherit (pkgs) nettools; 
          inherit (pkgs) z3;};
 
@@ -173242,6 +175909,7 @@ self: {
        description = "A battery-included platform for LiquidHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "liquidhaskell";
      }) {};
 
   "liquid-prelude" = callPackage
@@ -173314,6 +175982,7 @@ self: {
        description = "Liquid Types for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "liquid";
      }) {inherit (pkgs) z3;};
 
   "liquidhaskell-cabal" = callPackage
@@ -173345,6 +176014,7 @@ self: {
        description = "Demo of Liquid Haskell integration for Cabal and Stack";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ffi";
      }) {};
 
   "lispparser" = callPackage
@@ -173490,6 +176160,7 @@ self: {
        description = "List all remote forwards for mail accounts stored in a SQL database";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "list-remote-forwards";
        broken = true;
      }) {};
 
@@ -173629,7 +176300,7 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "List monad transformer";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "list-tries" = callPackage
@@ -173848,6 +176519,7 @@ self: {
        description = "A simple tool for literate programming";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lit";
        broken = true;
      }) {};
 
@@ -173888,6 +176560,7 @@ self: {
        ];
        description = "transform literate source code to Markdown";
        license = lib.licenses.mit;
+       mainProgram = "literatex";
      }) {};
 
   "little-earley" = callPackage
@@ -174054,6 +176727,7 @@ self: {
        description = "An implementation of the LLSD data system";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llsdutil";
        broken = true;
      }) {};
 
@@ -174445,6 +177119,7 @@ self: {
        ];
        description = "Generate Pkg-Config configuration file for LLVM";
        license = lib.licenses.bsd3;
+       mainProgram = "llvm-pkg-config";
      }) {};
 
   "llvm-pretty" = callPackage
@@ -174490,6 +177165,7 @@ self: {
        description = "LLVM bitcode parsing library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "llvm-disasm";
      }) {};
 
   "llvm-tf" = callPackage
@@ -174715,6 +177391,7 @@ self: {
        description = "A command line tool to manage LNURL auth identities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lnurl-authenticator";
      }) {};
 
   "load-balancing" = callPackage
@@ -174884,7 +177561,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion ];
        description = "Location-aware variants of partial functions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ gridaphobe ];
+       maintainers = [ lib.maintainers.gridaphobe ];
      }) {};
 
   "located-monad-logger" = callPackage
@@ -174931,6 +177608,7 @@ self: {
        description = "Support for precise error locations in source files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loch";
        broken = true;
      }) {};
 
@@ -174985,6 +177663,7 @@ self: {
        description = "Very simple poll lock";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "locked-poll";
      }) {};
 
   "lockfree-queue" = callPackage
@@ -175073,6 +177752,8 @@ self: {
        pname = "log-domain";
        version = "0.13.2";
        sha256 = "0i4fx9k8cwjvmj0pgfnbici1b68zmif1jmmqxplpjqy32ksnyifa";
+       revision = "1";
+       editedCabalFile = "0nbfbp7a6x3vppavra7pf28l2wwlci3qgps60igqgjkbdcvq7w8c";
        libraryHaskellDepends = [
          base binary bytes cereal comonad deepseq distributive hashable
          semigroupoids semigroups vector
@@ -175101,6 +177782,7 @@ self: {
        ];
        description = "An extensible log effect using extensible-effects";
        license = lib.licenses.mit;
+       mainProgram = "log-example";
      }) {};
 
   "log-effect-syslog" = callPackage
@@ -175232,6 +177914,7 @@ self: {
        description = "Turn log file records into JSON";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "log2json";
        broken = true;
      }) {};
 
@@ -175348,6 +178031,7 @@ self: {
        executableHaskellDepends = [ base protolude stm ];
        description = "Run FastLogger in a thread and direct all queued messages to it";
        license = lib.licenses.bsd3;
+       mainProgram = "logger-thread-exe";
      }) {};
 
   "logging" = callPackage
@@ -175409,6 +178093,7 @@ self: {
        description = "Supplemental packages for `logging-effect`";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "log-extra";
      }) {};
 
   "logging-effect-extra-file" = callPackage
@@ -175483,9 +178168,7 @@ self: {
        ];
        description = "Journald back-end for logging-facade";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -175498,7 +178181,7 @@ self: {
        libraryHaskellDepends = [ base hsyslog logging-facade ];
        description = "A logging back-end to syslog(3) for the logging-facade library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "logic-TPTP" = callPackage
@@ -175692,6 +178375,7 @@ self: {
        description = "Useful utilities for the Lojban language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "jbovlastegendb";
      }) {};
 
   "lojbanParser" = callPackage
@@ -175707,6 +178391,7 @@ self: {
        description = "lojban parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testParser";
        broken = true;
      }) {};
 
@@ -175723,6 +178408,7 @@ self: {
        description = "lojban to xiragan";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xiragan";
        broken = true;
      }) {};
 
@@ -175738,6 +178424,7 @@ self: {
        description = "Prolog with lojban";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lojysamban";
      }) {};
 
   "lol" = callPackage
@@ -175828,6 +178515,7 @@ self: {
        description = "Calculus for LOL (λω language)";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lol-calculus";
      }) {};
 
   "lol-cpp" = callPackage
@@ -175939,8 +178627,8 @@ self: {
        pname = "long-double";
        version = "0.1.1";
        sha256 = "0byrpngsh1a8w9n5nbw9lfmj4nmh33avzfh883zw9ya10pfa7x3g";
-       revision = "1";
-       editedCabalFile = "0831x773ypp0lv14cgh6vr7rzbyvrjsvw99c40z41fr8bhdw2x4j";
+       revision = "2";
+       editedCabalFile = "0lnzxn18rwpw7idc4pkpn0y4nhlvfxjcnxylgs8il394rig6idxh";
        libraryHaskellDepends = [ base integer-gmp ];
        description = "FFI bindings for C long double";
        license = lib.licenses.bsd3;
@@ -175988,11 +178676,9 @@ self: {
        ];
        description = "Fast Brute-force search using parallelism";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "longshot";
        broken = true;
      }) {};
 
@@ -176144,6 +178830,7 @@ self: {
        description = "Find all biological feedback loops within an ecosystem graph";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loopy";
        broken = true;
      }) {};
 
@@ -176186,6 +178873,7 @@ self: {
        description = "A command line interface to online radios";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lord";
        broken = true;
      }) {};
 
@@ -176202,6 +178890,7 @@ self: {
        description = "Library for generating filler text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lorem";
        broken = true;
      }) {};
 
@@ -176260,6 +178949,7 @@ self: {
        description = "Minecraft 1.7 server proxy that answers to queries when the server is offline";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "loshadka";
        broken = true;
      }) {};
 
@@ -176279,6 +178969,7 @@ self: {
        description = "An implementation of an adictive two-player card game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lostcities";
      }) {};
 
   "louis" = callPackage
@@ -176454,6 +179145,7 @@ self: {
        description = "List USB devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ls-usb";
      }) {};
 
   "lscabal" = callPackage
@@ -176472,6 +179164,7 @@ self: {
        description = "List exported modules from a set of .cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lscabal";
        broken = true;
      }) {};
 
@@ -176492,6 +179185,7 @@ self: {
        description = "List directory files starting from a specific name";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lsfrom";
        broken = true;
      }) {};
 
@@ -176527,6 +179221,38 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lsp_1_5_0_0" = callPackage
+    ({ mkDerivation, aeson, async, attoparsec, base, bytestring
+     , co-log-core, containers, data-default, directory, exceptions
+     , filepath, hashable, hspec, hspec-discover, lens, lsp-types, mtl
+     , network-uri, prettyprinter, QuickCheck, quickcheck-instances
+     , random, scientific, sorted-list, stm, temporary, text, text-rope
+     , time, transformers, unliftio-core, unordered-containers, uuid
+     }:
+     mkDerivation {
+       pname = "lsp";
+       version = "1.5.0.0";
+       sha256 = "0cqrdsq4w4nwhzpxadxa5mvh3cn1zy9wjsq7ib38r6b09zxzi3i7";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         aeson async attoparsec base bytestring co-log-core containers
+         data-default directory exceptions filepath hashable lens lsp-types
+         mtl network-uri prettyprinter random scientific sorted-list stm
+         temporary text text-rope time transformers unliftio-core
+         unordered-containers uuid
+       ];
+       testHaskellDepends = [
+         aeson base containers filepath hspec lens network-uri QuickCheck
+         quickcheck-instances sorted-list text text-rope
+         unordered-containers
+       ];
+       testToolDepends = [ hspec-discover ];
+       description = "Haskell library for the Microsoft Language Server Protocol";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lsp-test" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
      , bytestring, conduit, conduit-parse, containers, data-default
@@ -176556,6 +179282,35 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "lsp-test_0_14_0_3" = callPackage
+    ({ mkDerivation, aeson, aeson-pretty, ansi-terminal, async, base
+     , bytestring, co-log-core, conduit, conduit-parse, containers
+     , data-default, Diff, directory, extra, filepath, Glob, hspec, lens
+     , lsp, lsp-types, mtl, parser-combinators, process, some, text
+     , time, transformers, unix, unliftio, unordered-containers
+     }:
+     mkDerivation {
+       pname = "lsp-test";
+       version = "0.14.0.3";
+       sha256 = "110hkf91033m1vg90mj7ifq5214r4a2qwswkgb0ahj4sd8c0hsa7";
+       libraryHaskellDepends = [
+         aeson aeson-pretty ansi-terminal async base bytestring co-log-core
+         conduit conduit-parse containers data-default Diff directory
+         filepath Glob lens lsp lsp-types mtl parser-combinators process
+         some text time transformers unix unordered-containers
+       ];
+       testHaskellDepends = [
+         aeson base co-log-core data-default directory filepath hspec lens
+         lsp mtl parser-combinators process text unliftio
+         unordered-containers
+       ];
+       testToolDepends = [ lsp ];
+       benchmarkHaskellDepends = [ base extra lsp process ];
+       description = "Functional test framework for LSP servers";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lsp-types" = callPackage
     ({ mkDerivation, aeson, base, binary, bytestring, containers
      , data-default, deepseq, Diff, directory, dlist, filepath, hashable
@@ -176577,6 +179332,26 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "lsp-types_1_5_0_0" = callPackage
+    ({ mkDerivation, aeson, base, binary, containers, data-default
+     , deepseq, Diff, dlist, filepath, hashable, lens, mod, mtl
+     , network-uri, scientific, some, template-haskell, text
+     , unordered-containers
+     }:
+     mkDerivation {
+       pname = "lsp-types";
+       version = "1.5.0.0";
+       sha256 = "18hbhwd0cl32dbw88wskpxkqvnkym0rvjm46mcpnz3nxa1rdbn0m";
+       libraryHaskellDepends = [
+         aeson base binary containers data-default deepseq Diff dlist
+         filepath hashable lens mod mtl network-uri scientific some
+         template-haskell text unordered-containers
+       ];
+       description = "Haskell library for the Microsoft Language Server Protocol, data types";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "lss" = callPackage
     ({ mkDerivation, attoparsec, base, containers, directory, filepath
      , hspec2, language-css, language-css-attoparsec, text, xmlhtml
@@ -176613,6 +179388,7 @@ self: {
        description = "Paint an L-System Grammar";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lsystem";
      }) {};
 
   "ltext" = callPackage
@@ -176645,6 +179421,7 @@ self: {
        description = "Parameterized file evaluator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ltext";
      }) {};
 
   "lti13" = callPackage
@@ -176736,12 +179513,12 @@ self: {
        license = lib.licenses.mit;
      }) {inherit (pkgs) lua5_3;};
 
-  "lua_2_2_0" = callPackage
+  "lua_2_2_1" = callPackage
     ({ mkDerivation, base, lua5_4, tasty, tasty-hunit }:
      mkDerivation {
        pname = "lua";
-       version = "2.2.0";
-       sha256 = "1258i5a3b16lbkgfdzgibqx3q4csd5wvk2gzqp96kkjcndfva92d";
+       version = "2.2.1";
+       sha256 = "07wni3ji46ndqabwffgwzij2jk34dq2d66z15hcd6jg33sqnym45";
        configureFlags = [ "-fsystem-lua" "-f-use-pkgconfig" ];
        libraryHaskellDepends = [ base ];
        librarySystemDepends = [ lua5_4 ];
@@ -176885,6 +179662,7 @@ self: {
        testHaskellDepends = [ base lucid text ];
        description = "Use Alpine.js in your lucid templates";
        license = lib.licenses.bsd3;
+       mainProgram = "lucid-alpine-exe";
      }) {};
 
   "lucid-aria" = callPackage
@@ -176980,6 +179758,7 @@ self: {
        description = "Use _hyperscript with lucid";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lucid-hyperscript-exe";
        broken = true;
      }) {};
 
@@ -177135,6 +179914,7 @@ self: {
        ];
        description = "Trek through your code forest and make logs";
        license = lib.licenses.isc;
+       mainProgram = "example_log";
      }) {};
 
   "luminance" = callPackage
@@ -177186,6 +179966,7 @@ self: {
        description = "Create ctags compatible tags files for Haskell programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lushtags";
        broken = true;
      }) {};
 
@@ -177263,6 +180044,7 @@ self: {
        description = "The Lazy Virtual Machine (LVM)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "coreasm";
        broken = true;
      }) {};
 
@@ -177276,6 +180058,9 @@ self: {
        isExecutable = true;
        description = "The Lazy Virtual Machine (LVM) Runtime System";
        license = "LGPL";
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "lvmrun";
+       broken = true;
      }) {};
 
   "lxc" = callPackage
@@ -177287,9 +180072,7 @@ self: {
        libraryHaskellDepends = [ base bindings-lxc mtl transformers ];
        description = "High level Haskell bindings to LXC (Linux containers)";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "lxd-client" = callPackage
@@ -177320,6 +180103,7 @@ self: {
        description = "LXD client written in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lxd-client-example";
        broken = true;
      }) {};
 
@@ -177359,6 +180143,7 @@ self: {
        description = "A Lilypond-compiling music box";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lye";
        broken = true;
      }) {};
 
@@ -177417,6 +180202,7 @@ self: {
        description = "LZ4 compression for conduits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "LZ4";
      }) {};
 
   "lz4-frame-conduit" = callPackage
@@ -177446,6 +180232,7 @@ self: {
        description = "Conduit implementing the official LZ4 frame streaming format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-lz4c";
        broken = true;
      }) {};
 
@@ -177530,7 +180317,7 @@ self: {
        doHaddock = false;
        description = "liblzma C library and headers for use by LZMA bindings";
        license = lib.licenses.publicDomain;
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "lzma-conduit" = callPackage
@@ -177666,6 +180453,7 @@ self: {
        description = "Monadic Abstracting Abstract Machines (MAAM) built on Galois Transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maam_examples";
        broken = true;
      }) {};
 
@@ -177728,6 +180516,7 @@ self: {
        description = "Macbeth - A beautiful and minimalistic FICS client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Macbeth";
      }) {};
 
   "maccatcher" = callPackage
@@ -178005,6 +180794,7 @@ self: {
        description = "Control screen and keyboard backlights on MACs under Linux";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maclight";
        broken = true;
      }) {};
 
@@ -178043,6 +180833,7 @@ self: {
        description = "Make a macosx app standalone deployable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "macosx-make-standalone";
      }) {};
 
   "macrm" = callPackage
@@ -178068,6 +180859,7 @@ self: {
        description = "Alternative rm command for macOS that remove files/dirs to the system trash";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "macrm";
        broken = true;
      }) {};
 
@@ -178092,6 +180884,7 @@ self: {
        description = "Monadic DSL for building constraint solvers using basic propagators";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sudoku-exe";
        broken = true;
      }) {};
 
@@ -178124,6 +180917,7 @@ self: {
        description = "Randomized templating language DSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "madlang";
        broken = true;
      }) {};
 
@@ -178141,6 +180935,7 @@ self: {
        description = "Rogue-like";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mage";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -178198,6 +180993,7 @@ self: {
        description = "Interact with Magic Wormhole";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hocus-pocus";
      }) {};
 
   "magicbane" = callPackage
@@ -178246,6 +181042,7 @@ self: {
        ];
        description = "Compute solutions for Magico puzzle";
        license = lib.licenses.bsd3;
+       mainProgram = "magico";
      }) {};
 
   "magma" = callPackage
@@ -178291,6 +181088,7 @@ self: {
        description = "ImageBoards to XMPP gate";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mahoro";
      }) {};
 
   "maid" = callPackage
@@ -178313,6 +181111,7 @@ self: {
        description = "A simple static web server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maid";
      }) {};
 
   "mail-pool" = callPackage
@@ -178336,6 +181135,7 @@ self: {
        description = "Preconfigured email connection pool on top of smtp";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
      }) {};
 
   "mail-reports" = callPackage
@@ -178375,6 +181175,7 @@ self: {
        ];
        description = "Count mailboxes in a SQL database";
        license = lib.licenses.agpl3Only;
+       mainProgram = "mailbox-count";
      }) {};
 
   "mailchimp" = callPackage
@@ -178414,6 +181215,7 @@ self: {
        description = "MailChimp subscription request handler";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mailchimp-subscribe";
        broken = true;
      }) {};
 
@@ -178459,6 +181261,8 @@ self: {
        pname = "mainland-pretty";
        version = "0.7.1";
        sha256 = "19z2769rik6kwvsil2if2bfq2v59jmwv74jy3fy4q3q3zy4239p1";
+       revision = "1";
+       editedCabalFile = "1cqvwxapdvqs9xixas3jaim8ydzvgs361i73ggxjf41b4mfml8z7";
        libraryHaskellDepends = [
          base containers srcloc text transformers
        ];
@@ -178515,6 +181319,7 @@ self: {
        description = "Change duplicated files into hard-links";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "make-hard-links";
        broken = true;
      }) {};
 
@@ -178550,6 +181355,7 @@ self: {
        description = "Make a cabalized package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "make-package";
      }) {};
 
   "makedo" = callPackage
@@ -178610,6 +181416,7 @@ self: {
        description = "Database migration and testing as a library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mallard";
        broken = true;
      }) {};
 
@@ -178626,6 +181433,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Static Website Generator in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "mameya";
      }) {};
 
   "managed" = callPackage
@@ -178639,7 +181447,50 @@ self: {
        libraryHaskellDepends = [ base transformers ];
        description = "A monad for managed values";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
+     }) {};
+
+  "managed-functions" = callPackage
+    ({ mkDerivation, base, containers, deepseq, exceptions, hspec }:
+     mkDerivation {
+       pname = "managed-functions";
+       version = "1.2.2.0";
+       sha256 = "02c8cb8aza1a3w90vm8wbcb5k8i57n6bj796waj7r6489gqad15k";
+       libraryHaskellDepends = [ base containers deepseq exceptions ];
+       testHaskellDepends = [ base containers deepseq exceptions hspec ];
+       description = "Remote Management Framework";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
+  "managed-functions-http-connector" = callPackage
+    ({ mkDerivation, aeson, base, managed-functions
+     , managed-functions-json, servant-server, wai, warp
+     }:
+     mkDerivation {
+       pname = "managed-functions-http-connector";
+       version = "1.0.0";
+       sha256 = "0c7svxgmia98q72bv24kanjsp08n577sxn5n1yap7sl10y5gxvn2";
+       libraryHaskellDepends = [
+         aeson base managed-functions managed-functions-json servant-server
+         wai warp
+       ];
+       description = "Simple HTTP-Based Connector for Managed Functions";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
+  "managed-functions-json" = callPackage
+    ({ mkDerivation, aeson, base, managed-functions }:
+     mkDerivation {
+       pname = "managed-functions-json";
+       version = "1.0.0";
+       sha256 = "03l52pcvcirczcxrmdjc4bsrsmvdpzx3yw7q6kzcyl43i27d93ji";
+       libraryHaskellDepends = [ aeson base managed-functions ];
+       description = "JSON Support for the Managed Functions Framework";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "manatee" = callPackage
@@ -178661,6 +181512,7 @@ self: {
        description = "The Haskell/Gtk+ Integrated Live Environment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee";
      }) {};
 
   "manatee-all" = callPackage
@@ -178687,6 +181539,7 @@ self: {
        description = "Virtual package to install all Manatee packages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-all";
      }) {};
 
   "manatee-anything" = callPackage
@@ -178708,6 +181561,7 @@ self: {
        description = "Multithread interactive input/search framework for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-anything";
      }) {};
 
   "manatee-browser" = callPackage
@@ -178728,6 +181582,7 @@ self: {
        description = "Browser extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-browser";
      }) {};
 
   "manatee-core" = callPackage
@@ -178775,6 +181630,7 @@ self: {
        description = "Download Manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-curl";
      }) {};
 
   "manatee-editor" = callPackage
@@ -178796,6 +181652,7 @@ self: {
        description = "Editor extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-editor";
      }) {};
 
   "manatee-filemanager" = callPackage
@@ -178817,6 +181674,7 @@ self: {
        description = "File manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-filemanager";
      }) {};
 
   "manatee-imageviewer" = callPackage
@@ -178838,6 +181696,7 @@ self: {
        description = "Image viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-imageviewer";
      }) {};
 
   "manatee-ircclient" = callPackage
@@ -178906,6 +181765,7 @@ self: {
        description = "PDF viewer extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-pdfviewer";
      }) {};
 
   "manatee-processmanager" = callPackage
@@ -178926,6 +181786,7 @@ self: {
        description = "Process manager extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-processmanager";
      }) {};
 
   "manatee-reader" = callPackage
@@ -178947,6 +181808,7 @@ self: {
        description = "Feed reader extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-reader";
      }) {};
 
   "manatee-template" = callPackage
@@ -178967,6 +181829,7 @@ self: {
        description = "Template code to create Manatee application";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-template";
      }) {};
 
   "manatee-terminal" = callPackage
@@ -178987,6 +181850,7 @@ self: {
        description = "Terminal Emulator extension for Manatee";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-terminal";
      }) {};
 
   "manatee-welcome" = callPackage
@@ -179007,6 +181871,7 @@ self: {
        description = "Welcome module to help user play Manatee quickly";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "manatee-welcome";
      }) {};
 
   "mancala" = callPackage
@@ -179020,6 +181885,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Simple mancala game";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "mancala";
      }) {};
 
   "mandrill" = callPackage
@@ -179063,6 +181929,7 @@ self: {
        description = "A zooming visualisation of the Mandelbrot Set as many Julia Sets";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mandulia";
        broken = true;
      }) {};
 
@@ -179103,6 +181970,7 @@ self: {
        description = "Bindings to the MangoPay API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mangopay-passphrase";
        broken = true;
      }) {};
 
@@ -179313,6 +182181,7 @@ self: {
        description = "A functional programming language focused around maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mappy";
        broken = true;
      }) {};
 
@@ -179356,6 +182225,7 @@ self: {
        testHaskellDepends = [ base directory filepath process ];
        description = "Minimal tool to make your blog in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "marihana";
      }) {};
 
   "marionetta" = callPackage
@@ -179374,6 +182244,7 @@ self: {
        description = "A study of marionetta movements";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marionetta";
      }) {};
 
   "markdown" = callPackage
@@ -179454,6 +182325,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Literate Haskell support for Markdown";
        license = lib.licenses.mit;
+       mainProgram = "markdown-unlit";
      }) {};
 
   "markdown2svg" = callPackage
@@ -179473,6 +182345,7 @@ self: {
        description = "markdown to svg converter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "markdown2svg";
      }) {};
 
   "marked-pretty" = callPackage
@@ -179597,6 +182470,7 @@ self: {
        description = "A simple markup document preview (markdown, textile, reStructuredText)";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "markup-preview";
      }) {};
 
   "marmalade-upload" = callPackage
@@ -179625,6 +182499,7 @@ self: {
        description = "Upload packages to Marmalade";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marmalade-upload";
      }) {};
 
   "marquise" = callPackage
@@ -179769,6 +182644,7 @@ self: {
        description = "Markup language preprocessor for Haskell";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "marxup";
      }) {};
 
   "masakazu-bot" = callPackage
@@ -179792,6 +182668,7 @@ self: {
        description = "@minamiyama1994_bot on haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "masakazu-bot";
      }) {};
 
   "mason" = callPackage
@@ -179960,6 +182837,7 @@ self: {
        description = "The project management tool for hackers";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "master-plan";
        broken = true;
      }) {};
 
@@ -179974,6 +182852,7 @@ self: {
        executableHaskellDepends = [ base random ];
        description = "console mastermind decypher";
        license = lib.licenses.bsd3;
+       mainProgram = "mastermind";
      }) {};
 
   "matchable" = callPackage
@@ -180255,6 +183134,7 @@ self: {
        ];
        description = "Discover your (academic) ancestors!";
        license = lib.licenses.gpl2Only;
+       mainProgram = "mathgenealogy";
      }) {};
 
   "mathista" = callPackage
@@ -180278,6 +183158,7 @@ self: {
        testHaskellDepends = [ base hspec parsec ];
        description = "A small programming language for numerical computing";
        license = lib.licenses.publicDomain;
+       mainProgram = "mathista";
      }) {};
 
   "mathlink" = callPackage
@@ -180419,7 +183300,7 @@ self: {
        ];
        description = "A matrix client library";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "matrix-lens" = callPackage
@@ -180559,6 +183440,7 @@ self: {
        description = "ncurses XMPP client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "matsuri";
      }) {};
 
   "matterhorn" = callPackage
@@ -180599,7 +183481,8 @@ self: {
        ];
        description = "Terminal client for the Mattermost chat system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       mainProgram = "matterhorn";
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "mattermost-api" = callPackage
@@ -180628,7 +183511,7 @@ self: {
        ];
        description = "Client API for Mattermost chat system";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "mattermost-api-qc" = callPackage
@@ -180644,7 +183527,7 @@ self: {
        ];
        description = "QuickCheck instances for the Mattermost client API library";
        license = lib.licenses.isc;
-       maintainers = with lib.maintainers; [ kiwi ];
+       maintainers = [ lib.maintainers.kiwi ];
      }) {};
 
   "maude" = callPackage
@@ -180708,6 +183591,7 @@ self: {
        description = "Hayes and Wilson's maxent learning algorithm for phonotactic grammars";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phono-learner-hw";
        broken = true;
      }) {};
 
@@ -180731,6 +183615,7 @@ self: {
        description = "GUI for maxent-learner-hw";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phono-learner-hw-gui";
      }) {};
 
   "maximal-cliques" = callPackage
@@ -180764,6 +183649,7 @@ self: {
        description = "Maximal sharing of terms in the lambda calculus with letrec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maxsharing";
      }) {};
 
   "maybe-justify" = callPackage
@@ -180847,6 +183733,7 @@ self: {
        ];
        description = "List contents of an mbox file containing e-mails";
        license = lib.licenses.bsd3;
+       mainProgram = "lsmbox";
      }) {};
 
   "mbtiles" = callPackage
@@ -180891,6 +183778,7 @@ self: {
        description = "download bugs mailboxes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mbug";
        broken = true;
      }) {};
 
@@ -180907,6 +183795,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "An Aeson parsing toolkit";
        license = lib.licenses.bsd3;
+       mainProgram = "mcaeson-exe";
      }) {};
 
   "mcl" = callPackage
@@ -180995,7 +183884,7 @@ self: {
        ];
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "mcmc_0_6_2_5" = callPackage
@@ -181023,7 +183912,7 @@ self: {
        description = "Sample from a posterior using Markov chain Monte Carlo";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "mcmc-samplers" = callPackage
@@ -181122,6 +184011,7 @@ self: {
        description = "Markdown viewer in your terminal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mdcat";
        broken = true;
      }) {};
 
@@ -181136,6 +184026,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Command-line tool to run a command on each of the items";
        license = lib.licenses.bsd3;
+       mainProgram = "mdo";
      }) {};
 
   "mdp" = callPackage
@@ -181247,6 +184138,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "A constructive solid geometry (CSG) modeling language";
        license = lib.licenses.bsd3;
+       mainProgram = "mecha-examples";
      }) {};
 
   "mechs" = callPackage
@@ -181404,6 +184296,7 @@ self: {
        description = "Receive and Send RTP Packets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mediabus-demo-rtp-alaw-player";
      }) {};
 
   "median-stream" = callPackage
@@ -181463,6 +184356,7 @@ self: {
        ];
        description = "Convert MediaWiki text to LaTeX";
        license = "GPL";
+       mainProgram = "mediawiki2latex";
      }) {};
 
   "medium-sdk-haskell" = callPackage
@@ -181521,6 +184415,7 @@ self: {
        ];
        description = "Handles uploading to Hackage from mega repos";
        license = lib.licenses.mit;
+       mainProgram = "mega-sdist";
      }) {};
 
   "megalisp" = callPackage
@@ -181597,19 +184492,19 @@ self: {
   "melf" = callPackage
     ({ mkDerivation, base, binary, bytestring, containers, directory
      , exceptions, filepath, mtl, optparse-applicative, prettyprinter
-     , singletons, tasty, tasty-golden, tasty-hunit, template-haskell
-     , unix
+     , singletons, singletons-base, singletons-th, tasty, tasty-golden
+     , tasty-hunit, template-haskell, unix
      }:
      mkDerivation {
        pname = "melf";
-       version = "1.0.2";
-       sha256 = "065nsazfsh8f6j2g80c2wppq5zm502ngwbn3lyzg2y42im4cdycx";
+       version = "1.1.0";
+       sha256 = "0d8rc67yirdj03i1gdcyip51q3qbzfghfblwqzdm85hlhp7vidic";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base binary bytestring exceptions mtl prettyprinter singletons
-         template-haskell
+         singletons-base singletons-th template-haskell
        ];
        executableHaskellDepends = [
          base binary bytestring exceptions optparse-applicative
@@ -181617,7 +184512,8 @@ self: {
        ];
        testHaskellDepends = [
          base binary bytestring containers directory exceptions filepath mtl
-         prettyprinter singletons tasty tasty-golden tasty-hunit unix
+         prettyprinter singletons singletons-th tasty tasty-golden
+         tasty-hunit unix
        ];
        description = "An Elf parser";
        license = lib.licenses.bsd3;
@@ -181720,6 +184616,7 @@ self: {
        description = "A functional scripting language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "imelody";
        broken = true;
      }) {};
 
@@ -181886,6 +184783,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "memfd" = callPackage
+    ({ mkDerivation, base, transformers }:
+     mkDerivation {
+       pname = "memfd";
+       version = "1.0.1.0";
+       sha256 = "154861xg18h02s26gf3fk8zqhr2d8x21p0s4ar56rfrbi7b2nqrk";
+       libraryHaskellDepends = [ base transformers ];
+       description = "Open temporary anonymous Linux file handles";
+       license = lib.licenses.asl20;
+     }) {};
+
   "meminfo" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers }:
      mkDerivation {
@@ -181925,6 +184833,7 @@ self: {
        description = "Memis Efficient Manual Image Sorting";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "memis";
      }) {};
 
   "memo-ptr" = callPackage
@@ -182009,6 +184918,7 @@ self: {
        benchmarkHaskellDepends = [ base bytestring criterion random ];
        description = "Generate human memorable strings from binary data";
        license = lib.licenses.bsd2;
+       mainProgram = "membits";
      }) {};
 
   "memory" = callPackage
@@ -182111,6 +185021,7 @@ self: {
        executableHaskellDepends = [ base haskeline transformers ];
        description = "Command line utility for memorizing scriptures or any other text";
        license = "GPL";
+       mainProgram = "memscript";
      }) {};
 
   "menoh" = callPackage
@@ -182217,18 +185128,19 @@ self: {
        testHaskellDepends = [ base ];
        description = "command line utility to merge bash_history";
        license = lib.licenses.bsd3;
+       mainProgram = "merge-bash-history";
      }) {};
 
   "mergeful" = callPackage
-    ({ mkDerivation, aeson, base, containers, deepseq, mtl, text, time
-     , validity, validity-containers, validity-time
+    ({ mkDerivation, aeson, autodocodec, base, containers, deepseq, mtl
+     , text, time, validity, validity-containers, validity-time
      }:
      mkDerivation {
        pname = "mergeful";
-       version = "0.2.0.0";
-       sha256 = "0cvx0qs4j7jbamz5dz23dii7car8dq5wz0qvkbckb3ymbrf16ywa";
+       version = "0.3.0.0";
+       sha256 = "1w7ccngqcgvwysw1zbdm0qr6hscqc3dnza9n1cp6xfdb80qjqynn";
        libraryHaskellDepends = [
-         aeson base containers deepseq mtl text time validity
+         aeson autodocodec base containers deepseq mtl text time validity
          validity-containers validity-time
        ];
        license = lib.licenses.mit;
@@ -182275,6 +185187,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "mergeless_0_4_0_0" = callPackage
+    ({ mkDerivation, aeson, autodocodec, base, containers, deepseq, mtl
+     , text, validity, validity-containers
+     }:
+     mkDerivation {
+       pname = "mergeless";
+       version = "0.4.0.0";
+       sha256 = "0iy4l51kqldgm9wv60g524q67rag9rswapxrymrfy89cshyc5hib";
+       libraryHaskellDepends = [
+         aeson autodocodec base containers deepseq mtl text validity
+         validity-containers
+       ];
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "mergeless-persistent" = callPackage
     ({ mkDerivation, base, containers, genvalidity, genvalidity-hspec
      , genvalidity-mergeless, genvalidity-persistent, hspec, mergeless
@@ -182298,6 +185226,7 @@ self: {
        description = "Support for using mergeless from persistent-based databases";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "merkle-log" = callPackage
@@ -182569,6 +185498,7 @@ self: {
        description = "Australian METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar";
      }) {};
 
   "metar-http" = callPackage
@@ -182594,6 +185524,7 @@ self: {
        description = "HTTP for METAR";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "metar-http";
      }) {};
 
   "method" = callPackage
@@ -182874,6 +185805,7 @@ self: {
        description = "spam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test1";
        broken = true;
      }) {};
 
@@ -182904,6 +185836,7 @@ self: {
        description = "A Micro service gateway";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simple-gateway";
      }) {};
 
   "micro-recursion-schemes" = callPackage
@@ -182934,6 +185867,8 @@ self: {
        pname = "microaeson";
        version = "0.1.0.1";
        sha256 = "0rx5gm7apazc0sm65v687ab5106ximka9khizxq1lbckd2x0cq3q";
+       revision = "1";
+       editedCabalFile = "0sfz5xc6lvarbb8hfrccwd9b4snafsxjn8iy8ny7mdc1472irfl8";
        libraryHaskellDepends = [
          array base bytestring containers deepseq fail text
        ];
@@ -182984,6 +185919,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "microc compiler";
        license = lib.licenses.bsd3;
+       mainProgram = "microc-exe";
      }) {};
 
   "microformats2-parser" = callPackage
@@ -183205,14 +186141,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "microlens-platform_0_4_3_1" = callPackage
+  "microlens-platform_0_4_3_2" = callPackage
     ({ mkDerivation, base, hashable, microlens, microlens-ghc
      , microlens-mtl, microlens-th, text, unordered-containers, vector
      }:
      mkDerivation {
        pname = "microlens-platform";
-       version = "0.4.3.1";
-       sha256 = "0kix9j6k1yp09102fsliqaynamgwbi31l4hwswcp90flw2v9ah35";
+       version = "0.4.3.2";
+       sha256 = "12nkwlpj0lr50lw0gr1mf306a94w0x6zkbl97ss4m2cd28im21sj";
        libraryHaskellDepends = [
          base hashable microlens microlens-ghc microlens-mtl microlens-th
          text unordered-containers vector
@@ -183313,6 +186249,8 @@ self: {
        pname = "microstache";
        version = "1.0.2.1";
        sha256 = "12i2sx2rv2ai77m95gvfm93jcjk6q5i4cgfyxjrhyx3ll94z775v";
+       revision = "2";
+       editedCabalFile = "0vjqffb0960kc4k32lgbsjl1mwah129m3ci6lyqyw7slqripw5fp";
        libraryHaskellDepends = [
          aeson base containers deepseq directory filepath parsec text
          transformers unordered-containers vector
@@ -183365,6 +186303,7 @@ self: {
        description = "Language for algorithmic generation of MIDI files";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mida";
        broken = true;
      }) {};
 
@@ -183412,9 +186351,7 @@ self: {
        ];
        description = "Convert between datatypes of the midi and the alsa packages";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {};
 
   "midi-music-box" = callPackage
@@ -183436,6 +186373,7 @@ self: {
        ];
        description = "Convert MIDI file to music box punch tape";
        license = lib.licenses.bsd3;
+       mainProgram = "midi-music-box";
      }) {};
 
   "midi-simple" = callPackage
@@ -183511,6 +186449,7 @@ self: {
        description = "A Memory-like (Concentration, Pairs, ...) game for tones";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "midimory";
      }) {};
 
   "midisurface" = callPackage
@@ -183529,6 +186468,7 @@ self: {
        description = "A control midi surface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "midisurface";
        broken = true;
      }) {};
 
@@ -183721,6 +186661,7 @@ self: {
        description = "Lambda calculus interpreter";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mikrokosmos";
        broken = true;
      }) {};
 
@@ -183841,6 +186782,7 @@ self: {
        ];
        description = "Send mime-mail messages via Amazon SES";
        license = lib.licenses.mit;
+       mainProgram = "send-aws";
      }) {};
 
   "mime-string" = callPackage
@@ -183929,6 +186871,7 @@ self: {
        executableHaskellDepends = [ base directory mtl random ];
        description = "Minesweeper simulation using neural networks";
        license = "unknown";
+       mainProgram = "mines";
      }) {};
 
   "minesweeper" = callPackage
@@ -183949,6 +186892,7 @@ self: {
        description = "Minesweeper game which is always solvable without guessing";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minesweeper";
      }) {};
 
   "mini-egison" = callPackage
@@ -183971,6 +186915,7 @@ self: {
        description = "Template Haskell Implementation of Egison Pattern Matching";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cdcl";
      }) {};
 
   "miniball" = callPackage
@@ -184004,6 +186949,7 @@ self: {
        description = "Miniature FORTH-like interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "miniforth";
        broken = true;
      }) {};
 
@@ -184076,6 +187022,7 @@ self: {
        description = "A binding library of minilight for Lua langauge";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "minimal-configuration" = callPackage
@@ -184117,6 +187064,7 @@ self: {
        description = "Shows how to run grabber on Mac OS X";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minimung";
      }) {};
 
   "minio-hs" = callPackage
@@ -184172,6 +187120,7 @@ self: {
        description = "A fast parallel ssh tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minions";
        broken = true;
      }) {};
 
@@ -184228,6 +187177,7 @@ self: {
        description = "Minimalistic file rotation utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "minirotate";
      }) {};
 
   "minisat" = callPackage
@@ -184270,6 +187220,7 @@ self: {
        description = "an interpreter for an operational semantics for the STG machine";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ministg";
        broken = true;
      }) {};
 
@@ -184388,6 +187339,7 @@ self: {
        description = "A Minisat-based CDCL SAT solver in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mios162";
        broken = true;
      }) {};
 
@@ -184408,6 +187360,7 @@ self: {
        description = "Tweet mirror";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mirror-tweet";
      }) {};
 
   "misfortune" = callPackage
@@ -184603,6 +187556,7 @@ self: {
        ];
        description = "Convert HTML to miso View syntax";
        license = lib.licenses.bsd3;
+       mainProgram = "miso-from-html";
      }) {};
 
   "miss" = callPackage
@@ -184708,6 +187662,7 @@ self: {
        description = "A git wrapper with a streamlined UX";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mit";
        broken = true;
      }) {};
 
@@ -184735,6 +187690,7 @@ self: {
        ];
        description = "Vim plugin manager written in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "miv";
      }) {};
 
   "mix-arrows" = callPackage
@@ -184765,6 +187721,7 @@ self: {
        description = "Find optimal mixed strategies for two-player games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oms";
      }) {};
 
   "mixed-types-num" = callPackage
@@ -184824,6 +187781,7 @@ self: {
        description = "Makes an OS X .app bundle from a binary.";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkbndl";
      }) {};
 
   "mkcabal" = callPackage
@@ -184843,6 +187801,7 @@ self: {
        description = "Generate cabal files for a Haskell project";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mkcabal";
        broken = true;
      }) {};
 
@@ -184859,6 +187818,7 @@ self: {
        description = "Minimal ML language to to demonstrate the W type infererence algorithm";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ML";
        broken = true;
      }) {};
 
@@ -184972,6 +187932,7 @@ self: {
        description = "Command line interface to the MMark markdown processor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmark";
      }) {};
 
   "mmark-ext" = callPackage
@@ -185008,7 +187969,7 @@ self: {
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmorph" = callPackage
@@ -185024,7 +187985,7 @@ self: {
        ];
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmorph_1_2_0" = callPackage
@@ -185041,7 +188002,7 @@ self: {
        description = "Monad morphisms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mmsyn2" = callPackage
@@ -185116,6 +188077,7 @@ self: {
        description = "The \"glue\" between electronic tables and GraphViz";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn4";
      }) {};
 
   "mmsyn5" = callPackage
@@ -185151,6 +188113,7 @@ self: {
        description = "A musical instrument synthesizer or a tool for Ukrainian language listening";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn6ukr";
      }) {};
 
   "mmsyn6ukr-array" = callPackage
@@ -185175,6 +188138,7 @@ self: {
        description = "A musical instrument synthesizer or a tool for Ukrainian language listening";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn6ukra";
      }) {};
 
   "mmsyn7h" = callPackage
@@ -185198,6 +188162,7 @@ self: {
        description = "Produces a sound recording specified by the Ukrainian text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7h";
      }) {};
 
   "mmsyn7l" = callPackage
@@ -185219,6 +188184,7 @@ self: {
        description = "Modifies the amplitudes of the Ukrainian sounds representations created by mmsyn7ukr package";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7l";
      }) {};
 
   "mmsyn7s" = callPackage
@@ -185234,6 +188200,7 @@ self: {
        description = "Shows a sorted list of the Ukrainian sounds representations that can be used by mmsyn7 series of programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7s";
      }) {};
 
   "mmsyn7ukr" = callPackage
@@ -185256,6 +188223,7 @@ self: {
        description = "A simple basic interface to some SoX functionality or to produce a voice that can be used by mmsyn7h";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mmsyn7ukr";
      }) {};
 
   "mmsyn7ukr-common" = callPackage
@@ -185386,6 +188354,7 @@ self: {
        description = "A HTTP server for testing HTTP clients";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mock-httpd";
        broken = true;
      }) {};
 
@@ -185572,6 +188541,7 @@ self: {
        description = "Modify fasta (and CLIP) files in several optional ways";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modify-fasta";
      }) {};
 
   "modsplit" = callPackage
@@ -185593,6 +188563,7 @@ self: {
        description = "Haskell source splitter driven by special comments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modsplit";
      }) {};
 
   "modular" = callPackage
@@ -185694,6 +188665,7 @@ self: {
        description = "Clean up module imports, split and merge modules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hmm";
        broken = true;
      }) {};
 
@@ -185733,6 +188705,7 @@ self: {
        description = "Modular C code generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "modulo";
      }) {};
 
   "moe" = callPackage
@@ -185773,6 +188746,7 @@ self: {
        description = "A functional firewall killer";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "moesocks";
        broken = true;
      }) {};
 
@@ -185798,6 +188772,7 @@ self: {
        description = "Modular Haskell Web Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hws";
        broken = true;
      }) {};
 
@@ -185830,6 +188805,7 @@ self: {
        description = "A glorified string replacement tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mole";
      }) {};
 
   "mollie-api-haskell" = callPackage
@@ -185943,6 +188919,7 @@ self: {
        description = "A library for probabilistic programming";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -186409,8 +189386,8 @@ self: {
      }:
      mkDerivation {
        pname = "monad-logger-aeson";
-       version = "0.2.0.0";
-       sha256 = "09f4f3x5sba9i72y89sfiq0281b1vhy2lm75wk9031ayn9hhg4fb";
+       version = "0.3.0.1";
+       sha256 = "1bfz5z836m9fn7sd6r5mlgsnavb8ih0d3x9nm0m3zlx654llvpmq";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -186424,6 +189401,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "JSON logging using monad-logger interface";
        license = lib.licenses.mit;
+       mainProgram = "readme-example";
      }) {};
 
   "monad-logger-extras" = callPackage
@@ -186442,6 +189420,7 @@ self: {
        executableHaskellDepends = [ base monad-logger ];
        description = "Utilities for composing loggers, coloring output, plus a few orphan instances";
        license = lib.licenses.bsd3;
+       mainProgram = "readme";
      }) {};
 
   "monad-logger-json" = callPackage
@@ -187413,6 +190392,7 @@ self: {
        description = "A preprocessor for generating monadic call traces";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MonadLoc";
        broken = true;
      }) {};
 
@@ -187654,6 +190634,7 @@ self: {
        description = "Do things when files change";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monitor";
        broken = true;
      }) {};
 
@@ -187680,6 +190661,7 @@ self: {
        description = "A system state collecting library and application";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "monky";
      }) {};
 
   "mono-foldable" = callPackage
@@ -188144,8 +191126,8 @@ self: {
        pname = "months";
        version = "0.2";
        sha256 = "054dag7806850hdii7s5rxg8gx2spdp33pnx4s4ckni9ayvspija";
-       revision = "4";
-       editedCabalFile = "1prni51r2kca7cff4jshas87bxvfmqkp9r5yhkmapphxc9w8vanb";
+       revision = "5";
+       editedCabalFile = "1fqxdjclv2jsj802sr4v35cn12qchcxdmhpfm003v2j1s6gp689s";
        libraryHaskellDepends = [
          aeson attoparsec base base-compat deepseq hashable intervals
          QuickCheck text time-compat
@@ -188313,6 +191295,7 @@ self: {
        description = "A tool for supervised learning of morphology";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morfette";
        broken = true;
      }) {};
 
@@ -188372,6 +191355,7 @@ self: {
        description = "Developer tools for the Michelson Language";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley";
      }) {};
 
   "morley-client" = callPackage
@@ -188416,6 +191400,7 @@ self: {
        description = "Client to interact with the Tezos blockchain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley-client";
      }) {};
 
   "morley-prelude" = callPackage
@@ -188465,6 +191450,7 @@ self: {
        description = "Upgradeability infrastructure based on Morley";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morley-ustore-reader";
      }) {};
 
   "morloc" = callPackage
@@ -188504,6 +191490,7 @@ self: {
        description = "A multi-lingual, typed, workflow language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morloc";
        broken = true;
      }) {};
 
@@ -188524,6 +191511,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A simple database migrator for PostgreSQL";
        license = lib.licenses.bsd3;
+       mainProgram = "morph";
      }) {};
 
   "morpheus-graphql" = callPackage
@@ -188603,6 +191591,7 @@ self: {
        description = "Morpheus GraphQL CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morpheus";
      }) {};
 
   "morpheus-graphql-client" = callPackage
@@ -188654,6 +191643,7 @@ self: {
        description = "Morpheus GraphQL CLI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "morpheus";
      }) {};
 
   "morpheus-graphql-core" = callPackage
@@ -188822,7 +191812,8 @@ self: {
        description = "A bare-bones calculus of constructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       mainProgram = "morte";
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -188856,6 +191847,7 @@ self: {
        description = "Library for setting up and running scrapers with webdriver";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mortred";
      }) {};
 
   "mosaico-lib" = callPackage
@@ -188966,6 +191958,7 @@ self: {
        description = "Type-safe effectful state machines in Haskell";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-door";
        broken = true;
      }) {};
 
@@ -189053,6 +192046,7 @@ self: {
        description = "Plays videos using GStreamer and GTK+";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "movie-monad";
        broken = true;
      }) {};
 
@@ -189091,6 +192085,7 @@ self: {
        description = "Music player for linux";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp";
      }) {};
 
   "mp3decoder" = callPackage
@@ -189107,6 +192102,7 @@ self: {
        description = "MP3 decoder for teaching";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp3driver";
      }) {};
 
   "mpdmate" = callPackage
@@ -189123,6 +192119,7 @@ self: {
        description = "MPD/PowerMate executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpdmate";
      }) {};
 
   "mpeff" = callPackage
@@ -189167,7 +192164,7 @@ self: {
        testSystemDepends = [ mpich ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {inherit (pkgs) mpich;};
 
   "mpi-hs-binary" = callPackage
@@ -189185,7 +192182,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mpi-hs-cereal" = callPackage
@@ -189203,7 +192200,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mpi-hs-store" = callPackage
@@ -189221,7 +192218,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "MPI bindings for Haskell";
        license = lib.licenses.asl20;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
      }) {};
 
   "mplayer-spot" = callPackage
@@ -189242,10 +192239,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Save your spot when watching movies with @mplayer@";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
+       mainProgram = "mplayer-spot";
      }) {};
 
   "mpppc" = callPackage
@@ -189328,6 +192323,7 @@ self: {
        description = "Simple equational reasoning for a Haskell-ish language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mp";
      }) {};
 
   "mps" = callPackage
@@ -189400,10 +192396,9 @@ self: {
        testHaskellDepends = [ base HUnit ip mptcp text ];
        description = "A Multipath TCP path manager";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mptcp-pm";
      }) {};
 
   "mptcpanalyzer" = callPackage
@@ -189450,6 +192445,7 @@ self: {
        description = "A Multipath TCP analyzer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mptcpanalyzer";
      }) {};
 
   "mpvguihs" = callPackage
@@ -189469,6 +192465,7 @@ self: {
        description = "A minimalist mpv GUI written in I/O heavy Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpvguihs";
        broken = true;
      }) {};
 
@@ -189546,6 +192543,7 @@ self: {
        description = "Decompiles Glulx files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mrifk";
        broken = true;
      }) {};
 
@@ -189718,6 +192716,7 @@ self: {
        description = "An IDL Compiler for MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mpidl";
      }) {};
 
   "msgpack-persist" = callPackage
@@ -189745,6 +192744,7 @@ self: {
        description = "A Haskell implementation of MessagePack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "msgpack-parser";
        broken = true;
      }) {};
 
@@ -189863,6 +192863,7 @@ self: {
        description = "A command line tool to change backlit colors of your MSI keyboards";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "msi-kb-backlit";
        broken = true;
      }) {};
 
@@ -189915,6 +192916,7 @@ self: {
        testHaskellDepends = [ base bytestring errors hspec ];
        description = "Monitor Setup Utility";
        license = lib.licenses.mit;
+       mainProgram = "msu";
      }) {};
 
   "mtgoxapi" = callPackage
@@ -190152,6 +193154,7 @@ self: {
        description = "Avro serialization support for Mu microservices";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-avro";
      }) {};
 
   "mu-graphql" = callPackage
@@ -190182,6 +193185,7 @@ self: {
        description = "GraphQL support for Mu";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "library-graphql";
      }) {};
 
   "mu-grpc-client" = callPackage
@@ -190251,6 +193255,7 @@ self: {
        description = "gRPC servers for Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grpc-example-server";
      }) {};
 
   "mu-kafka" = callPackage
@@ -190361,6 +193366,7 @@ self: {
        description = "Protocol Buffers serialization and gRPC schema import for Mu microservices";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-protobuf";
      }) {};
 
   "mu-rpc" = callPackage
@@ -190422,6 +193428,7 @@ self: {
        description = "Servant servers for Mu definitions";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-example-server";
      }) {};
 
   "mu-tracing" = callPackage
@@ -190472,6 +193479,7 @@ self: {
        description = "Multi-version deployer for web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mud";
        broken = true;
      }) {};
 
@@ -190494,6 +193502,7 @@ self: {
        description = "Continuous deployment server for use with GitHub";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mudbath";
        broken = true;
      }) {};
 
@@ -190567,6 +193576,7 @@ self: {
        description = "An intermediate language designed to perform advanced code analysis";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mulang";
        broken = true;
      }) {};
 
@@ -190603,6 +193613,7 @@ self: {
        description = "A tool supporting multi cabal project builds";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multi-cabal";
      }) {};
 
   "multi-containers" = callPackage
@@ -190735,6 +193746,7 @@ self: {
        ];
        description = "create many files from one";
        license = lib.licenses.bsd3;
+       mainProgram = "multifile";
      }) {};
 
   "multifocal" = callPackage
@@ -190761,6 +193773,7 @@ self: {
        description = "Bidirectional Two-level Transformation of XML Schemas";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multifocal";
      }) {};
 
   "multihash" = callPackage
@@ -190785,6 +193798,7 @@ self: {
        description = "Multihash library and CLI executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multihash";
        broken = true;
      }) {};
 
@@ -190995,6 +194009,7 @@ self: {
        description = "Wrapper program for duplicity, adding config files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "multiplicity";
      }) {};
 
   "multipool" = callPackage
@@ -191225,6 +194240,7 @@ self: {
        description = "Multivariant assignments generation language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -191267,6 +194283,7 @@ self: {
        description = "Static blog generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "muon";
        broken = true;
      }) {};
 
@@ -191311,6 +194328,7 @@ self: {
        description = "Simple CUI Twitter Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mur";
      }) {};
 
   "murmur-hash" = callPackage
@@ -191379,6 +194397,7 @@ self: {
        description = "Minimalist MPD client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mushu";
      }) {};
 
   "music-articulation" = callPackage
@@ -191608,6 +194627,7 @@ self: {
        description = "Utility for developing the Music Suite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-util";
        broken = true;
      }) {};
 
@@ -191634,6 +194654,7 @@ self: {
        description = "Supply your tunes info without leaving your music player";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "music-scroll";
        broken = true;
      }) {inherit (pkgs) gtk3;};
 
@@ -191751,6 +194772,7 @@ self: {
        ];
        description = "A mustache template parser library";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-mustache";
      }) {};
 
   "mustache-haskell" = callPackage
@@ -191776,6 +194798,7 @@ self: {
        description = "Straight implementation of mustache templates";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mus";
        broken = true;
      }) {};
 
@@ -191796,6 +194819,7 @@ self: {
        description = "Utility to generate Haskell code from Mustache templates";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mustache2hs";
        broken = true;
      }) {};
 
@@ -191892,6 +194916,7 @@ self: {
        description = "Watches your screensaver and (un)mutes music when you (un)lock the screen";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mute-unmute";
      }) {};
 
   "mvar-lock" = callPackage
@@ -191920,7 +194945,7 @@ self: {
        description = "Model-view-controller";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -191934,7 +194959,7 @@ self: {
        description = "Concurrent and combinable updates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "mvclient" = callPackage
@@ -192135,6 +195160,7 @@ self: {
        description = "Train a neural network with MXNet in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "lenet";
      }) {};
 
   "mxnet-nnvm" = callPackage
@@ -192251,6 +195277,7 @@ self: {
        description = "Export from MyAnimeList";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "myanimelist-export";
        broken = true;
      }) {};
 
@@ -192289,6 +195316,7 @@ self: {
        description = "Haskell binding to the Myo armband";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "myo-ws-example";
        broken = true;
      }) {};
 
@@ -192429,26 +195457,6 @@ self: {
      }:
      mkDerivation {
        pname = "mysql-simple";
-       version = "0.4.8";
-       sha256 = "077psr65rszk06bxx67bhvfk8ajmsr56bwynx7d57lqdvzvm4691";
-       libraryHaskellDepends = [
-         attoparsec base base16-bytestring blaze-builder bytestring
-         containers mysql old-locale pcre-light text time vector
-       ];
-       testHaskellDepends = [
-         base blaze-builder bytestring hspec mysql text time
-       ];
-       description = "A mid-level MySQL client library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "mysql-simple_0_4_8_1" = callPackage
-    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
-     , bytestring, containers, hspec, mysql, old-locale, pcre-light
-     , text, time, vector
-     }:
-     mkDerivation {
-       pname = "mysql-simple";
        version = "0.4.8.1";
        sha256 = "18w6mp7s1dmvwzqdgdzywhp5li3h4kisrhgxllwi578nddwg2yx3";
        libraryHaskellDepends = [
@@ -192460,7 +195468,6 @@ self: {
        ];
        description = "A mid-level MySQL client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "mysql-simple-quasi" = callPackage
@@ -192513,6 +195520,7 @@ self: {
        description = "Bindings for Mystem morphological analyzer executabe";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mystem-test-exe";
        broken = true;
      }) {};
 
@@ -192539,6 +195547,7 @@ self: {
        description = "Web application to view and kill MySQL queries";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mywatch";
        broken = true;
      }) {};
 
@@ -192608,6 +195617,7 @@ self: {
        executableHaskellDepends = [ base HSH mtl process ];
        description = "Utility to call iwconfig";
        license = "unknown";
+       mainProgram = "n-m";
      }) {};
 
   "n-tuple" = callPackage
@@ -192714,6 +195724,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "EDSL to specify Nagios configuration files";
        license = lib.licenses.gpl3Only;
+       mainProgram = "nagios-config-example";
      }) {};
 
   "nagios-perfdata" = callPackage
@@ -192756,6 +195767,7 @@ self: {
        description = "Monitor ekg metrics via Nagios";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "check_ekg";
        broken = true;
      }) {};
 
@@ -192802,8 +195814,8 @@ self: {
     ({ mkDerivation, aeson, attoparsec, base, lens, text, wreq }:
      mkDerivation {
        pname = "namecoin-update";
-       version = "0.2.2.0";
-       sha256 = "09g3mjvmfgynlna17nvynh1gwzkski0kg07d82zvdmd7j8qvdrvg";
+       version = "0.2.3.0";
+       sha256 = "0xs6w37cg9hh2l56ahnnfw2f7zb34256nn6qgcyaskhi41ybjn4r";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ aeson attoparsec base lens text wreq ];
@@ -192811,6 +195823,7 @@ self: {
        description = "Tool to keep namecoin names updated and well";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "namecoin-update";
        broken = true;
      }) {};
 
@@ -193054,6 +196067,7 @@ self: {
        description = "A toy dependently-typed language";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nanoAgda";
        broken = true;
      }) {};
 
@@ -193143,6 +196157,7 @@ self: {
        description = "An EDSL for creating compilers using small passes and many intermediate representations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "dumb-nanopass-example";
        broken = true;
      }) {};
 
@@ -193218,6 +196233,7 @@ self: {
        description = "Performs 漢字検定 (Japan Kanji Aptitude Test) level analysis on given Kanji";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nanq";
        broken = true;
      }) {};
 
@@ -193346,6 +196362,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Native library manager for Windows";
        license = lib.licenses.bsd3;
+       mainProgram = "native";
      }) {};
 
   "nats" = callPackage
@@ -193386,6 +196403,7 @@ self: {
        description = "Another Haskell client for NATS (https://nats.io)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nats-client";
        broken = true;
      }) {};
 
@@ -193587,6 +196605,7 @@ self: {
        ];
        description = "CPU load and memory usage indicators for i3bar";
        license = lib.licenses.asl20;
+       mainProgram = "nc-indicators";
      }) {};
 
   "ncurses" = callPackage
@@ -193634,6 +196653,7 @@ self: {
        description = "A Fast Retargetable Template Engine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neat";
        broken = true;
      }) {};
 
@@ -193729,6 +196749,7 @@ self: {
        description = "General tools for Neil";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neil";
        broken = true;
      }) {};
 
@@ -193800,6 +196821,7 @@ self: {
        description = "a TCP tunnel with packet length obfuscation";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "neko-obfs";
      }) {};
 
   "nemesis" = callPackage
@@ -193867,6 +196889,7 @@ self: {
        description = "Neptune Client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-app";
        broken = true;
      }) {};
 
@@ -193895,6 +196918,7 @@ self: {
        description = "Nerf, a named entity recognition tool based on linear-chain CRFs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nerf";
      }) {};
 
   "nero" = callPackage
@@ -194129,6 +197153,7 @@ self: {
        description = "Make RPC calls via an MQTT broker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mqtt-rpc";
      }) {};
 
   "net-spider" = callPackage
@@ -194249,6 +197274,7 @@ self: {
        description = "CLI executable of NetSpider.RPL.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "net-spider-rpl-cli";
      }) {};
 
   "netclock" = callPackage
@@ -194340,6 +197366,7 @@ self: {
        description = "NetEase Cloud Music FM client in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "netease-fm";
        broken = true;
      }) {};
 
@@ -194401,6 +197428,7 @@ self: {
        description = "Enumerator tools for text-based network protocols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "netlines-test";
      }) {};
 
   "netlink" = callPackage
@@ -194419,9 +197447,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Netlink communication for Haskell";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "netlist" = callPackage
@@ -194802,6 +197828,7 @@ self: {
        description = "Haskell API for Tor anonymous networking";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tor-relay";
      }) {};
 
   "network-api-support" = callPackage
@@ -194928,6 +197955,7 @@ self: {
        description = "Linux NetworkNameSpace Builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "network-builder";
        broken = true;
      }) {};
 
@@ -195073,6 +198101,7 @@ self: {
        description = "Domain Name System data structures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hs-network-dns-examples-resolver";
        broken = true;
      }) {};
 
@@ -195194,6 +198223,7 @@ self: {
        doHaddock = false;
        description = "network-manager tui";
        license = lib.licenses.bsd3;
+       mainProgram = "nmt";
      }) {};
 
   "network-messagepack-rpc" = callPackage
@@ -195429,6 +198459,7 @@ self: {
        description = "A light abstraction over sockets & co. for servers";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -196051,7 +199082,8 @@ self: {
        doHaddock = false;
        description = "Future-proof system for plain-text notes";
        license = lib.licenses.agpl3Only;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "neuron";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "newbase60" = callPackage
@@ -196113,6 +199145,7 @@ self: {
        description = "List ports newer than N days on a FreeBSD system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newports";
        broken = true;
      }) {};
 
@@ -196143,6 +199176,7 @@ self: {
        description = "A basic newsletter implimentation, using various backends";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newsletter-server";
        broken = true;
      }) {};
 
@@ -196178,6 +199212,7 @@ self: {
        description = "Exact and approximate synthesis of quantum circuits";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gridsynth";
      }) {};
 
   "newt" = callPackage
@@ -196199,6 +199234,7 @@ self: {
        description = "A trivially simple app to create things from simple templates";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "newt";
        broken = true;
      }) {};
 
@@ -196366,6 +199402,7 @@ self: {
        ];
        description = "Ngram models for compressing and classifying text";
        license = lib.licenses.bsd3;
+       mainProgram = "ngramClassifier";
      }) {};
 
   "ngrams-loader" = callPackage
@@ -196385,6 +199422,7 @@ self: {
        description = "Ngrams loader based on http://www.ngrams.info format";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ngrams-loader";
      }) {};
 
   "ngx-export" = callPackage
@@ -196529,6 +199567,7 @@ self: {
        executableHaskellDepends = [ base nicify-lib ];
        description = "Pretty print the standard output of default `Show` instances";
        license = lib.licenses.mit;
+       mainProgram = "nicify";
      }) {};
 
   "nicify-lib" = callPackage
@@ -196563,6 +199602,7 @@ self: {
        description = "Nico Nico Douga (ニコニコ動画) Comment Translator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nicovideo-translator";
      }) {};
 
   "nikepub" = callPackage
@@ -196584,6 +199624,7 @@ self: {
        description = "Command line utility publishes Nike+ runs on blogs and Twitter";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nikepub";
      }) {};
 
   "nimber" = callPackage
@@ -196634,6 +199675,7 @@ self: {
        description = "IDL compiler and RPC/distributed object framework for microservices";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nirum";
      }) {};
 
   "nist-beacon" = callPackage
@@ -196696,6 +199738,7 @@ self: {
        ];
        description = "Easy dependency management for Nix projects";
        license = lib.licenses.mit;
+       mainProgram = "niv";
      }) {};
 
   "nix-delegate" = callPackage
@@ -196716,6 +199759,7 @@ self: {
        description = "Convenient utility for distributed Nix builds";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-delegate";
        broken = true;
      }) {};
 
@@ -196725,8 +199769,8 @@ self: {
      }:
      mkDerivation {
        pname = "nix-deploy";
-       version = "1.0.5";
-       sha256 = "0jsrmslai8xn1nkijg1196gkn10dagqgm8p39r7jsfaa4jvwm040";
+       version = "1.0.6";
+       sha256 = "119zfpcn0iil56z3bv2hwiy6pn6546pq3nvaa9cbhxvld0ax76wc";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -196736,6 +199780,7 @@ self: {
        description = "Deploy Nix-built software to a NixOS machine";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-deploy";
        broken = true;
      }) {};
 
@@ -196761,7 +199806,8 @@ self: {
        benchmarkHaskellDepends = [ attoparsec base criterion text ];
        description = "Parse and render *.drv files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 sorki ];
+       mainProgram = "pretty-derivation";
+       maintainers = [ lib.maintainers.Gabriel439 lib.maintainers.sorki ];
      }) {};
 
   "nix-diff" = callPackage
@@ -196782,7 +199828,11 @@ self: {
        ];
        description = "Explain why two Nix derivations differ";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 terlar ];
+       mainProgram = "nix-diff";
+       maintainers = [
+         lib.maintainers.Gabriel439 lib.maintainers.sorki
+         lib.maintainers.terlar
+       ];
      }) {};
 
   "nix-eval" = callPackage
@@ -196829,6 +199879,7 @@ self: {
        description = "Convert a tree of files into fixed-output derivations";
        license = lib.licenses.agpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-freeze-tree";
        broken = true;
      }) {};
 
@@ -196855,6 +199906,7 @@ self: {
        description = "Reify the Nix build graph into a Haskell graph data structure";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-graph";
        broken = true;
      }) {};
 
@@ -196875,7 +199927,8 @@ self: {
        ];
        description = "Parse and render .narinfo files";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "pretty-narinfo";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "nix-paths" = callPackage
@@ -196888,7 +199941,7 @@ self: {
        libraryToolDepends = [ nix ];
        description = "Knowledge of Nix's installation directories";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {inherit (pkgs) nix;};
 
   "nix-thunk" = callPackage
@@ -196917,6 +199970,7 @@ self: {
        description = "Lightweight dependency management with Nix";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nix-thunk";
      }) {};
 
   "nix-tools" = callPackage
@@ -196976,7 +200030,8 @@ self: {
        ];
        description = "Interactively browse a Nix store paths dependencies";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ utdemir ];
+       mainProgram = "nix-tree";
+       maintainers = [ lib.maintainers.utdemir ];
      }) {};
 
   "nixdu" = callPackage
@@ -196997,6 +200052,7 @@ self: {
        ];
        description = "Interactively browse a Nix store paths dependencies";
        license = lib.licenses.bsd3;
+       mainProgram = "nixdu";
      }) {};
 
   "nixfmt" = callPackage
@@ -197017,6 +200073,7 @@ self: {
        ];
        description = "An opinionated formatter for Nix";
        license = lib.licenses.mpl20;
+       mainProgram = "nixfmt";
      }) {};
 
   "nixfromnpm" = callPackage
@@ -197044,6 +200101,7 @@ self: {
        description = "Generate nix expressions from npm packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nixfromnpm";
        broken = true;
      }) {};
 
@@ -197110,6 +200168,7 @@ self: {
        description = "Tool for semi-automatic updating of nixpkgs repository";
        license = lib.licenses.cc0;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nixpkgs-update";
        broken = true;
      }) {};
 
@@ -197189,6 +200248,7 @@ self: {
        description = "Network Manager, binding to libnm-glib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nm-demo";
        broken = true;
      }) {g = null; inherit (pkgs) glib; libnm-glib = null; 
          nm-glib = null;};
@@ -197310,6 +200370,7 @@ self: {
        description = "Math in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "noether";
        broken = true;
      }) {};
 
@@ -197325,6 +200386,7 @@ self: {
        description = "Parse and compare nofib runs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nofib-analyse";
        broken = true;
      }) {};
 
@@ -197340,6 +200402,7 @@ self: {
        description = "Parse and compare nofib runs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nofib-analyze";
        broken = true;
      }) {};
 
@@ -197365,6 +200428,7 @@ self: {
        description = "A friendly language for graphic design";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "noise";
        broken = true;
      }) {};
 
@@ -197530,6 +200594,7 @@ self: {
        description = "A Nomic game in haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nomyx-server";
      }) {};
 
   "nomyx-web" = callPackage
@@ -197900,6 +200965,7 @@ self: {
        ];
        description = "Normalize data using a variety of methods";
        license = lib.licenses.gpl3Only;
+       mainProgram = "normalize";
      }) {};
 
   "normalize-imports" = callPackage
@@ -197914,6 +200980,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Sort and align Haskell import statements";
        license = lib.licenses.bsd3;
+       mainProgram = "normalize-imports";
      }) {};
 
   "not-gloss" = callPackage
@@ -198033,9 +201100,8 @@ self: {
          transformers tuple
        ];
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "notifications-tray-icon";
      }) {};
 
   "notmuch" = callPackage
@@ -198074,6 +201140,7 @@ self: {
        description = "Binding for notmuch MUA library";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notmuch-test";
      }) {inherit (pkgs) notmuch;};
 
   "notmuch-web" = callPackage
@@ -198112,6 +201179,7 @@ self: {
        description = "A web interface to the notmuch email indexer";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "notmuch-web";
      }) {};
 
   "notzero" = callPackage
@@ -198168,6 +201236,7 @@ self: {
        description = "Zeit Now haskell-side integration and introspection tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "module-scanner";
      }) {};
 
   "nowdoc" = callPackage
@@ -198473,6 +201542,7 @@ self: {
        ];
        description = "Computing the nth prime";
        license = lib.licenses.mit;
+       mainProgram = "nth-prime";
      }) {};
 
   "ntha" = callPackage
@@ -198494,6 +201564,7 @@ self: {
        testHaskellDepends = [ base containers hspec pretty ];
        description = "A tiny statically typed functional programming language";
        license = lib.licenses.bsd3;
+       mainProgram = "ntha";
      }) {};
 
   "nthable" = callPackage
@@ -198549,6 +201620,7 @@ self: {
        description = "NTRIP client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ntrip-client";
        broken = true;
      }) {};
 
@@ -198851,6 +201923,7 @@ self: {
        description = "Ode solvers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Kepler";
        broken = true;
      }) {};
 
@@ -199197,6 +202270,7 @@ self: {
        ];
        executableHaskellDepends = [ base optparse-applicative text ];
        license = lib.licenses.bsd3;
+       mainProgram = "nuxeo";
      }) {};
 
   "nvfetcher" = callPackage
@@ -199235,7 +202309,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Generate nix sources expr for the latest version of packages";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       mainProgram = "nvfetcher";
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "nvim-hs" = callPackage
@@ -199251,8 +202326,8 @@ self: {
      }:
      mkDerivation {
        pname = "nvim-hs";
-       version = "2.2.0.1";
-       sha256 = "1jj9n792cgv964rpgbbhc491wvyfyiplsg30n20x62gxclmjvir7";
+       version = "2.2.0.2";
+       sha256 = "1l9acplyircn5bv0d5naynl0m6cz76gwfgn0rjlggy75324cddwl";
        libraryHaskellDepends = [
          base bytestring cereal cereal-conduit conduit containers
          data-default deepseq foreign-store hslogger megaparsec messagepack
@@ -199321,6 +202396,7 @@ self: {
        description = "Neovim plugin that runs ghcid to update the quickfix list";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nvim-hs-ghcid";
      }) {};
 
   "nvvm" = callPackage
@@ -199355,6 +202431,7 @@ self: {
        description = "Bored? Nyan cat!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nyan";
      }) {};
 
   "nyan-interpolation" = callPackage
@@ -199452,6 +202529,7 @@ self: {
        description = "An interactive GUI for manipulating L-systems";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "nymphaea";
      }) {};
 
   "nyx-game" = callPackage
@@ -199479,6 +202557,7 @@ self: {
        description = "A bullet-hell game made with SDL2";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "app";
        broken = true;
      }) {};
 
@@ -199502,6 +202581,7 @@ self: {
        testToolDepends = [ doctest markdown-unlit ];
        description = "Type-safe time library";
        license = lib.licenses.mpl20;
+       mainProgram = "play-o-clock";
      }) {};
 
   "oanda-rest-api" = callPackage
@@ -199908,6 +202988,7 @@ self: {
        description = "Parse Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "octane";
      }) {};
 
   "octohat" = callPackage
@@ -199939,6 +203020,7 @@ self: {
        description = "A tested, minimal wrapper around GitHub's API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "abc";
      }) {};
 
   "octopus" = callPackage
@@ -199960,6 +203042,7 @@ self: {
        description = "Lisp with more dynamism, more power, more simplicity";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "octi";
      }) {};
 
   "oculus" = callPackage
@@ -199976,9 +203059,7 @@ self: {
        librarySystemDepends = [ libGL libX11 libXinerama ovr systemd ];
        description = "Oculus Rift ffi providing head tracking data";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {inherit (pkgs) libGL; inherit (pkgs.xorg) libX11; 
          inherit (pkgs.xorg) libXinerama; ovr = null; 
@@ -200011,6 +203092,7 @@ self: {
        benchmarkHaskellDepends = [ async base text weigh ];
        description = "Haskell binding to the ODBC API, aimed at SQL Server driver";
        license = lib.licenses.bsd3;
+       mainProgram = "odbc";
      }) {inherit (pkgs) unixODBC;};
 
   "odd-jobs" = callPackage
@@ -200208,6 +203290,7 @@ self: {
        description = "Interface to the Ohloh API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "cmdoh";
      }) {};
 
   "oi" = callPackage
@@ -200235,8 +203318,8 @@ self: {
      }:
      mkDerivation {
        pname = "oidc-client";
-       version = "0.6.0.0";
-       sha256 = "0r359hwx4zh5mjh2p4abfkgnkkhzbhdn6fn5dlja8pvyvi18a3kk";
+       version = "0.6.1.0";
+       sha256 = "0hhjndh4q2a9694rhylrqk2a8bzy8x9i5k4is2w7709sifydip1y";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -200354,6 +203437,7 @@ self: {
        description = "An OpenLayers JavaScript Wrapper and Webframework with snaplet-fay";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "olwrapper";
      }) {};
 
   "om-actor" = callPackage
@@ -200455,6 +203539,7 @@ self: {
        description = "A simple tool to generate OMakefile for latex files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omaketex";
        broken = true;
      }) {};
 
@@ -200496,6 +203581,7 @@ self: {
        description = "A purely functional programming language and a proof system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omega";
        broken = true;
      }) {};
 
@@ -200542,6 +203628,7 @@ self: {
        description = "A pretty-printer wrapper to faciliate ease of formatting during development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "omnifmt";
        broken = true;
      }) {};
 
@@ -200584,6 +203671,7 @@ self: {
        description = "Program that sends traffic through SSH tunnels on-demand";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "on-demand-ssh-tunnel";
        broken = true;
      }) {};
 
@@ -200773,6 +203861,7 @@ self: {
        executableHaskellDepends = [ base parsec regex-compat ];
        description = "A grep-like tool for filtering on words or lines";
        license = "GPL";
+       mainProgram = "only";
      }) {};
 
   "onpartitions" = callPackage
@@ -200838,6 +203927,8 @@ self: {
        pname = "opaleye";
        version = "0.9.2.0";
        sha256 = "0zvms42pmsg6ish76mvk0ksz4apxvs4iyjfvgkm7zwadq3i9v8l3";
+       revision = "1";
+       editedCabalFile = "006pp9l4j2vc2h6597vml424834xv1j4krfb3xjyaxhnq32hzcjr";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive
          contravariant postgresql-simple pretty product-profunctors
@@ -200991,6 +204082,7 @@ self: {
        description = "Open algebraic data type examples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "open-adt-tutorial";
      }) {};
 
   "open-browser" = callPackage
@@ -201005,6 +204097,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Open a web browser from Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "open-haddock" = callPackage
@@ -201019,6 +204112,7 @@ self: {
        description = "Open haddock HTML documentation";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "open-haddock";
        broken = true;
      }) {};
 
@@ -201101,6 +204195,7 @@ self: {
        executableHaskellDepends = [ base type-fun ];
        description = "Extensible, type-safe unions";
        license = lib.licenses.mit;
+       mainProgram = "example";
      }) {};
 
   "open-witness" = callPackage
@@ -201262,6 +204357,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "OpenAPI 3.0 data model";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "openapi3-code-generator" = callPackage
@@ -201302,6 +204398,8 @@ self: {
        description = "OpenAPI3 Haskell Client Code Generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openapi3-code-generator-exe";
+       broken = true;
      }) {};
 
   "opencc" = callPackage
@@ -201496,6 +204594,7 @@ self: {
        ];
        description = "Library and example for using DLP stereo in OpenGL";
        license = lib.licenses.mit;
+       mainProgram = "opengl-dlp-test";
      }) {};
 
   "opengl-spacenavigator" = callPackage
@@ -201512,6 +204611,7 @@ self: {
        ];
        description = "Library and example for using a SpaceNavigator-compatible 3-D mouse with OpenGL";
        license = lib.licenses.mit;
+       mainProgram = "opengl-spacenavigator";
      }) {};
 
   "opengles" = callPackage
@@ -201738,6 +204838,7 @@ self: {
        description = "Fetch OpenSSH keys from a GitHub team";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openssh-github-keys";
      }) {};
 
   "openssh-protocol" = callPackage
@@ -201931,6 +205032,7 @@ self: {
          splitmix text typed-process unordered-containers
        ];
        license = lib.licenses.asl20;
+       mainProgram = "eventlog-to-lightstep";
      }) {};
 
   "opentelemetry-lightstep_0_8_0" = callPackage
@@ -201958,6 +205060,7 @@ self: {
        ];
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "eventlog-to-lightstep";
      }) {};
 
   "opentelemetry-wai" = callPackage
@@ -202054,6 +205157,7 @@ self: {
        description = "Unicode characters";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "opentheory-char-test";
        broken = true;
      }) {};
 
@@ -202374,6 +205478,7 @@ self: {
        description = "Access data at OpenWeatherMap";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "openweathermap";
        broken = true;
      }) {};
 
@@ -202407,6 +205512,7 @@ self: {
        executableHaskellDepends = [ base mtl random ];
        description = "Implementation of difficult monads made easy with operational semantics";
        license = lib.licenses.bsd3;
+       mainProgram = "operational-TicTacToe";
      }) {};
 
   "operational-alacarte" = callPackage
@@ -202468,6 +205574,7 @@ self: {
        ];
        description = "Compiler for OpLang, an esoteric programming language";
        license = lib.licenses.gpl3Only;
+       mainProgram = "oplang";
      }) {};
 
   "opml" = callPackage
@@ -202526,6 +205633,7 @@ self: {
        description = "Open files or URLs using associated programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "opn";
        broken = true;
      }) {};
 
@@ -202555,7 +205663,7 @@ self: {
        ];
        description = "Optics as an abstract interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "optics-core" = callPackage
@@ -202688,6 +205796,7 @@ self: {
        description = "Optimal Block boundary determination for rsync-like behaviours";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "chunk";
      }) {};
 
   "optimization" = callPackage
@@ -202724,6 +205833,7 @@ self: {
        description = "A supercompiler for f-lite";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "optimusprime";
      }) {};
 
   "option" = callPackage
@@ -202764,7 +205874,7 @@ self: {
        libraryHaskellDepends = [ base ];
        description = "Optional function arguments";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "options" = callPackage
@@ -202912,7 +206022,7 @@ self: {
        ];
        description = "Auto-generate a command-line parser for your datatype";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "optparse-helper" = callPackage
@@ -203021,7 +206131,7 @@ self: {
        description = "Types and functions for Kepler orbits";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
        broken = true;
      }) {};
 
@@ -203041,6 +206151,7 @@ self: {
        description = "Orchestration-style co-ordination EDSL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orc";
        broken = true;
      }) {};
 
@@ -203108,6 +206219,7 @@ self: {
        description = "Haskell Wiki Demo";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orchid-demo";
      }) {};
 
   "ord-adhoc" = callPackage
@@ -203234,19 +206346,19 @@ self: {
      }) {};
 
   "ordinal" = callPackage
-    ({ mkDerivation, base, containers, data-default, hspec
-     , hspec-discover, QuickCheck, regex, template-haskell, text, time
-     , vector
+    ({ mkDerivation, base, containers, data-default-class, deepseq
+     , hspec, hspec-discover, QuickCheck, regex, template-haskell, text
+     , time, vector
      }:
      mkDerivation {
        pname = "ordinal";
-       version = "0.4.0.6";
-       sha256 = "0zpqhyn8f2iphgz2746fxsjk817ly8q6s4dz6129jrrd25v3kdc7";
+       version = "0.5.0.0";
+       sha256 = "016ydmanbxpj8jngqv19wf2v8c12s51lf3x3ddyb1706fh7nqcrw";
        libraryHaskellDepends = [
-         base containers data-default QuickCheck regex template-haskell text
-         time vector
+         base containers data-default-class deepseq QuickCheck regex
+         template-haskell text time vector
        ];
-       testHaskellDepends = [ base hspec QuickCheck text ];
+       testHaskellDepends = [ base hspec QuickCheck text time ];
        testToolDepends = [ hspec-discover ];
        description = "Convert numbers to words in different languages";
        license = lib.licenses.bsd3;
@@ -203333,6 +206445,7 @@ self: {
        executableHaskellDepends = [ base parsec regex-compat ];
        description = "Basic org to anki exporter";
        license = lib.licenses.gpl3Only;
+       mainProgram = "org2anki";
      }) {};
 
   "organize-imports" = callPackage
@@ -203347,6 +206460,7 @@ self: {
        description = "Organize scala imports";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "organize-imports";
        broken = true;
      }) {};
 
@@ -203490,6 +206604,7 @@ self: {
        description = "Token-based authentication and authorization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "orizentic";
        broken = true;
      }) {};
 
@@ -203519,6 +206634,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ormolu";
      }) {};
 
   "ormolu" = callPackage
@@ -203549,6 +206665,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
+       mainProgram = "ormolu";
      }) {};
 
   "ormolu_0_5_0_0" = callPackage
@@ -203582,6 +206699,7 @@ self: {
        description = "A formatter for Haskell source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ormolu";
      }) {};
 
   "orthotope" = callPackage
@@ -203625,8 +206743,8 @@ self: {
      }:
      mkDerivation {
        pname = "ory-hydra-client";
-       version = "1.10";
-       sha256 = "0ciyyd1925z2wnd6w57f993dva519cm1wgcs39kiw20n2bpb2myi";
+       version = "1.10.1";
+       sha256 = "1hs0r7f9b5kzcxs7m83ynnd36fk12j0jlhr0zngz8hlbcgkzwv9v";
        libraryHaskellDepends = [
          aeson base base64-bytestring bytestring case-insensitive containers
          deepseq exceptions http-api-data http-client http-client-tls
@@ -203638,7 +206756,7 @@ self: {
          aeson base bytestring containers hspec iso8601-time mtl QuickCheck
          semigroups text time transformers unordered-containers vector
        ];
-       description = "Auto-generated ory-hydra-client API Client";
+       description = "Auto-generated ory-hydra API Client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
        broken = true;
@@ -203652,20 +206770,14 @@ self: {
      }:
      mkDerivation {
        pname = "ory-kratos";
-       version = "0.0.6.0";
-       sha256 = "02hk0agzjj1y928wb2i0cl2lq0bwrn9iqny4m67csgnxjpain1il";
+       version = "0.0.10.0";
+       sha256 = "19wyr8a7biysa2y201220ma7xscf7dvlwrl12qis4xg0hnxl3897";
        libraryHaskellDepends = [
          aeson base containers exceptions http-api-data http-client
          http-client-tls http-types mtl network-uri servant servant-client
          servant-client-core servant-server swagger2 text time transformers
          uuid wai warp
        ];
-       testHaskellDepends = [
-         aeson base containers exceptions http-api-data http-client
-         http-client-tls http-types mtl network-uri servant servant-client
-         servant-client-core servant-server swagger2 text time transformers
-         uuid wai warp
-       ];
        description = "API bindings for Ory Kratos";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
@@ -203739,6 +206851,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Show keys pressed with an on-screen display (Linux only)";
        license = lib.licenses.bsd3;
+       mainProgram = "osdkeys";
      }) {};
 
   "oset" = callPackage
@@ -203756,6 +206869,7 @@ self: {
        description = "An insertion-order-preserving set";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "oset-app";
        broken = true;
      }) {};
 
@@ -203882,6 +206996,7 @@ self: {
        description = "OTP Authenticator (a la google) command line client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "otp-auth";
      }) {};
 
   "ottparse-pretty" = callPackage
@@ -203900,6 +207015,7 @@ self: {
        description = "Pretty-printer for Ott parse trees";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ottparse-pretty";
        broken = true;
      }) {};
 
@@ -203925,6 +207041,7 @@ self: {
        ];
        description = "External sorting package based on Conduit";
        license = lib.licenses.mit;
+       mainProgram = "SortLines";
      }) {};
 
   "overhang" = callPackage
@@ -204129,6 +207246,7 @@ self: {
        description = "Haskell Package Versioning Tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "package-vt";
        broken = true;
      }) {};
 
@@ -204168,6 +207286,7 @@ self: {
        description = "Check your cabal packages for lagging dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "packdeps";
        broken = true;
      }) {};
 
@@ -204348,6 +207467,7 @@ self: {
        description = "Tool for detecting redundant Cabal package dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "packunused";
        broken = true;
      }) {};
 
@@ -204363,6 +207483,7 @@ self: {
        description = "Read whole Pacman database which pushes it into the memory cache";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pacman-memcache";
        broken = true;
      }) {};
 
@@ -204487,6 +207608,7 @@ self: {
        description = "Pagarme API wrapper";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testbin";
        broken = true;
      }) {};
 
@@ -204509,6 +207631,7 @@ self: {
        executableHaskellDepends = [ base bytestring conduit-extra text ];
        description = "Open up a pager, like 'less' or 'more'";
        license = lib.licenses.bsd2;
+       mainProgram = "hs-pager-test-pager";
      }) {};
 
   "pagerduty" = callPackage
@@ -204595,6 +207718,7 @@ self: {
        ];
        description = "Pagure client";
        license = lib.licenses.gpl2Only;
+       mainProgram = "pagure";
      }) {};
 
   "pagure-hook-receiver" = callPackage
@@ -204681,6 +207805,7 @@ self: {
        executableHaskellDepends = [ array base bytestring containers ];
        description = "Finding palindromes in strings";
        license = lib.licenses.bsd3;
+       mainProgram = "palindromes";
      }) {};
 
   "pam" = callPackage
@@ -204696,9 +207821,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Haskell binding for C PAM API";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) pam;};
 
   "pan-os-syslog" = callPackage
@@ -204796,7 +207919,8 @@ self: {
        '';
        description = "Conversion between markup formats";
        license = lib.licenses.gpl2Plus;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "pandoc";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "pandoc_2_18" = callPackage
@@ -204856,7 +207980,8 @@ self: {
        description = "Conversion between markup formats";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "pandoc";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "pandoc-citeproc" = callPackage
@@ -204893,6 +208018,7 @@ self: {
        description = "Supports using pandoc with citeproc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-citeproc";
        broken = true;
      }) {};
 
@@ -204911,6 +208037,7 @@ self: {
        ];
        description = "Insert a preamble before pandoc-citeproc's bibliography";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pandoc-citeproc-preamble";
      }) {};
 
   "pandoc-crossref" = callPackage
@@ -204945,6 +208072,7 @@ self: {
        doHaddock = false;
        description = "Pandoc filter for cross-references";
        license = lib.licenses.gpl2Only;
+       mainProgram = "pandoc-crossref";
      }) {};
 
   "pandoc-csv2table" = callPackage
@@ -204960,6 +208088,7 @@ self: {
        executableHaskellDepends = [ base csv pandoc pandoc-types ];
        description = "Convert CSV to Pandoc Table Markdown";
        license = lib.licenses.mit;
+       mainProgram = "pandoc-csv2table";
      }) {};
 
   "pandoc-dhall-decoder" = callPackage
@@ -204997,6 +208126,7 @@ self: {
        description = "A Pandoc filter for emphasizing code in fenced blocks";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-emphasize-code";
        broken = true;
      }) {};
 
@@ -205018,6 +208148,7 @@ self: {
        description = "A Pandoc filter to use graphviz";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-filter-graphviz";
        broken = true;
      }) {};
 
@@ -205050,6 +208181,7 @@ self: {
        description = "Pandoc filter formatting Haskell code fragments using GHC lexer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-filter-indent";
        broken = true;
      }) {};
 
@@ -205089,6 +208221,7 @@ self: {
        description = "Include other Markdown files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-include";
        broken = true;
      }) {};
 
@@ -205114,6 +208247,7 @@ self: {
        ];
        description = "A Pandoc filter for including code from source files";
        license = lib.licenses.mpl20;
+       mainProgram = "pandoc-include-code";
      }) {};
 
   "pandoc-japanese-filters" = callPackage
@@ -205171,30 +208305,8 @@ self: {
      }:
      mkDerivation {
        pname = "pandoc-lua-marshal";
-       version = "0.1.5.1";
-       sha256 = "0hj55m6mqxap8vkn1r2w09myrnrxc7j8q7gwqvbpmik9s8g9s89f";
-       libraryHaskellDepends = [
-         base bytestring containers exceptions hslua hslua-marshalling lua
-         pandoc-types safe text
-       ];
-       testHaskellDepends = [
-         base bytestring containers exceptions hslua hslua-marshalling lua
-         pandoc-types QuickCheck safe tasty tasty-hunit tasty-lua
-         tasty-quickcheck text
-       ];
-       description = "Use pandoc types in Lua";
-       license = lib.licenses.mit;
-     }) {};
-
-  "pandoc-lua-marshal_0_1_6" = callPackage
-    ({ mkDerivation, base, bytestring, containers, exceptions, hslua
-     , hslua-marshalling, lua, pandoc-types, QuickCheck, safe, tasty
-     , tasty-hunit, tasty-lua, tasty-quickcheck, text
-     }:
-     mkDerivation {
-       pname = "pandoc-lua-marshal";
-       version = "0.1.6";
-       sha256 = "1z7hwvqaspapv97l36gq975cmhn11q0z2h1axz33bml7zf2z4bwc";
+       version = "0.1.6.1";
+       sha256 = "0di12wk3hfz85gyqypaxk3lsl0w3lylmza0lip0d7a257vis2lpz";
        libraryHaskellDepends = [
          base bytestring containers exceptions hslua hslua-marshalling lua
          pandoc-types safe text
@@ -205206,7 +208318,6 @@ self: {
        ];
        description = "Use pandoc types in Lua";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "pandoc-markdown-ghci-filter" = callPackage
@@ -205233,6 +208344,7 @@ self: {
        description = "Pandoc-filter to evaluate `code` section in markdown and auto-embed output";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-markdown-ghci-filter-exe";
        broken = true;
      }) {};
 
@@ -205256,6 +208368,7 @@ self: {
        description = "Pandoc filter to include CSV files";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-placetable";
        broken = true;
      }) {};
 
@@ -205281,6 +208394,7 @@ self: {
        description = "Render and insert PlantUML diagrams with Pandoc";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-plantuml-diagrams";
        broken = true;
      }) {};
 
@@ -205316,6 +208430,7 @@ self: {
        ];
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = lib.licenses.gpl2Plus;
+       mainProgram = "pandoc-plot";
      }) {};
 
   "pandoc-plot_1_5_3" = callPackage
@@ -205351,6 +208466,7 @@ self: {
        description = "A Pandoc filter to include figures generated from code blocks using your plotting toolkit of choice";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-plot";
      }) {};
 
   "pandoc-pyplot" = callPackage
@@ -205382,6 +208498,7 @@ self: {
        description = "A Pandoc filter to include figures generated from Python code blocks";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-pyplot";
        broken = true;
      }) {};
 
@@ -205397,6 +208514,7 @@ self: {
        executableHaskellDepends = [ base mtl pandoc-types text ];
        description = "Convert Pandoc Markdown-style footnotes into sidenotes";
        license = lib.licenses.mit;
+       mainProgram = "pandoc-sidenote";
      }) {};
 
   "pandoc-stylefrommeta" = callPackage
@@ -205414,6 +208532,7 @@ self: {
        ];
        description = "Pandoc filter to customize links, images and paragraphs";
        license = lib.licenses.bsd3;
+       mainProgram = "styleFromMeta";
      }) {};
 
   "pandoc-throw" = callPackage
@@ -205462,6 +208581,7 @@ self: {
        description = "Literate Haskell support for GitHub's Markdown flavor";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pandoc-unlit";
        broken = true;
      }) {};
 
@@ -205500,6 +208620,7 @@ self: {
        ];
        description = "Pandoc filter for native Vim code highlighting";
        license = lib.licenses.bsd3;
+       mainProgram = "vimhl";
      }) {};
 
   "pandora" = callPackage
@@ -205544,6 +208665,7 @@ self: {
        description = "A super-pang clone";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pang-a-lambda";
        broken = true;
      }) {};
 
@@ -205605,6 +208727,7 @@ self: {
        description = "Pandoc filter to unwrap nested blocks";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "panhandle";
        broken = true;
      }) {lazysmallcheck2012 = null;};
 
@@ -205639,6 +208762,7 @@ self: {
        description = "Pandoc filter to execute code blocks";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "panpipe";
        broken = true;
      }) {};
 
@@ -205669,6 +208793,7 @@ self: {
        description = "Pansite: a simple web site management tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pansite";
        broken = true;
      }) {};
 
@@ -206191,6 +209316,7 @@ self: {
        description = "A passphrase generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paphragen";
        broken = true;
      }) {};
 
@@ -206213,6 +209339,7 @@ self: {
        description = "packrat parser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "papillon";
        broken = true;
      }) {};
 
@@ -206228,6 +209355,7 @@ self: {
        description = "Packrat parsing; linear-time parsers for grammars in TDPL";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pappy";
        broken = true;
      }) {};
 
@@ -206320,6 +209448,7 @@ self: {
        description = "Paragon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parac";
        broken = true;
      }) {};
 
@@ -206474,6 +209603,7 @@ self: {
        description = "http proxy server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paranoia";
        broken = true;
      }) {};
 
@@ -206645,6 +209775,7 @@ self: {
        description = "Help Manage project specific documentation";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parochial";
        broken = true;
      }) {};
 
@@ -206657,9 +209788,7 @@ self: {
        libraryHaskellDepends = [ array base ];
        description = "Simply interfacing the parallel port on linux";
        license = "GPL";
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "parquet-hs" = callPackage
@@ -206765,6 +209894,7 @@ self: {
        description = "Parse command-line arguments";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parseargs-example";
        broken = true;
      }) {};
 
@@ -206889,6 +210019,7 @@ self: {
        description = "Pratt Parser combinator for Parsec";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parsec-pratt-example";
        broken = true;
      }) {};
 
@@ -207068,6 +210199,7 @@ self: {
        description = "Prints Haskell parse trees in JSON";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "parser-helper";
        broken = true;
      }) {};
 
@@ -207497,6 +210629,7 @@ self: {
        description = "Inspect, create, and alter MBRs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "partly";
        broken = true;
      }) {};
 
@@ -207546,6 +210679,7 @@ self: {
        description = "a simple password manager";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "passman";
        broken = true;
      }) {};
 
@@ -207568,6 +210702,7 @@ self: {
        description = "Deterministic password generator command line interface";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "passman-cli";
      }) {};
 
   "passman-core" = callPackage
@@ -207621,10 +210756,8 @@ self: {
        ];
        description = "Hashing and checking of passwords";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "password-instances" = callPackage
@@ -207648,10 +210781,8 @@ self: {
        ];
        description = "typeclass instances for password package";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "password-types" = callPackage
@@ -207731,6 +210862,7 @@ self: {
        description = "A simple command line pasting utility";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pasty";
        broken = true;
      }) {};
 
@@ -207762,23 +210894,25 @@ self: {
        description = "Terminal-based presentations using Pandoc";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patat";
        broken = true;
      }) {};
 
   "patch" = callPackage
     ({ mkDerivation, base, constraints-extras, containers
      , dependent-map, dependent-sum, directory, filemanip, filepath
-     , hedgehog, hlint, HUnit, lens, monoidal-containers, semialign
-     , semigroupoids, these, transformers, witherable
+     , hedgehog, hlint, HUnit, indexed-traversable, lens
+     , monoidal-containers, semialign, semigroupoids, these
+     , transformers, witherable
      }:
      mkDerivation {
        pname = "patch";
-       version = "0.0.5.2";
-       sha256 = "1l1rd5xybp0a9lvk89i64a4vr82vsha8fkcpwd6hwv2klsxbrwf6";
+       version = "0.0.6.0";
+       sha256 = "0wgxmk9vfrgnq5vg93jwzkszxmyrk91b36fnnlm8qr6mlg7j8m0z";
        libraryHaskellDepends = [
-         base constraints-extras containers dependent-map dependent-sum lens
-         monoidal-containers semialign semigroupoids these transformers
-         witherable
+         base constraints-extras containers dependent-map dependent-sum
+         indexed-traversable lens monoidal-containers semialign
+         semigroupoids these transformers witherable
        ];
        testHaskellDepends = [
          base containers directory filemanip filepath hedgehog hlint HUnit
@@ -207825,6 +210959,7 @@ self: {
        description = "Compose a big image from overlapping parts";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patch-image-llvm";
      }) {};
 
   "patches-vector" = callPackage
@@ -207996,7 +211131,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit QuickCheck text ];
        description = "Components of paths";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "path-text-utf8" = callPackage
@@ -208094,7 +211229,7 @@ self: {
        ];
        description = "Library for representing and manipulating type-safe file paths";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "pathtype" = callPackage
@@ -208146,8 +211281,8 @@ self: {
      }:
      mkDerivation {
        pname = "patrol";
-       version = "0.0.2";
-       sha256 = "183cyyj4d6y5k3rnmrycn6xvkqdkylgi8mrc3n67sv0pww1hl3z2";
+       version = "0.0.4";
+       sha256 = "1n9ixzmsn35zjk9liwfc0mv3kz3mhczxlj01bc5zjb7cmd66cs3f";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-types network-uri text time uuid
@@ -208170,6 +211305,7 @@ self: {
        description = "A webpage scraper for Patreon which dumps a list of patrons to a text file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "patronscraper";
        broken = true;
      }) {};
 
@@ -208250,7 +211386,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion mwc-random vector ];
        description = "Greatest convex majorants and least concave minorants";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "paymill" = callPackage
@@ -208288,6 +211424,7 @@ self: {
        description = "Client for a limited part of PayPal's Adaptive Payments API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -208341,6 +211478,7 @@ self: {
        description = "pastebin command line application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pb";
        broken = true;
      }) {};
 
@@ -208362,6 +211500,7 @@ self: {
        description = "Utility CLI for working with protobuf files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pbhelp";
        broken = true;
      }) {};
 
@@ -208463,6 +211602,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pcapng-exe";
      }) {};
 
   "pcd-loader" = callPackage
@@ -208488,6 +211628,7 @@ self: {
        description = "PCD file loader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pcd2bin";
        broken = true;
      }) {};
 
@@ -208734,6 +211875,7 @@ self: {
        description = "Tool to generate PDF from haskintex templates and YAML input";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-slave";
      }) {};
 
   "pdf-slave-server" = callPackage
@@ -208768,6 +211910,7 @@ self: {
        description = "Web service for pdf-slave tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-slave-server";
        broken = true;
      }) {pdf-slave-server-api = null;};
 
@@ -208874,6 +212017,7 @@ self: {
        description = "Simple pdf viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdf-toolbox-viewer";
        broken = true;
      }) {};
 
@@ -208925,6 +212069,7 @@ self: {
        description = "Name a PDF file using information from the pdfinfo command";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfname";
        broken = true;
      }) {};
 
@@ -208942,6 +212087,7 @@ self: {
        description = "split two-column PDFs, so there is one column per page";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdfsplit";
        broken = true;
      }) {};
 
@@ -208965,6 +212111,7 @@ self: {
        description = "Extracts text from PDF using poppler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pdftotext.hs";
        broken = true;
      }) {poppler-cpp = null;};
 
@@ -209118,6 +212265,7 @@ self: {
        description = "a lazy non-deterministic concatenative programming language";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "peg";
        broken = true;
      }) {};
 
@@ -209339,6 +212487,7 @@ self: {
        description = "Create beautiful diagrams just by typing mathematical notation in plain text";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "penrose";
        broken = true;
      }) {};
 
@@ -209427,6 +212576,7 @@ self: {
        benchmarkToolDepends = [ cpphs ];
        description = "Find duplicate images";
        license = lib.licenses.bsd3;
+       mainProgram = "phash";
      }) {};
 
   "perdure" = callPackage
@@ -209456,6 +212606,7 @@ self: {
        description = "Robust persistence for acyclic immutable data";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perdure";
      }) {};
 
   "peregrin" = callPackage
@@ -209464,8 +212615,8 @@ self: {
      }:
      mkDerivation {
        pname = "peregrin";
-       version = "0.3.2";
-       sha256 = "12p17fznvrn9hhcwr7hpsii4syq5vhyww8lp7nrsyn966q8dd8xa";
+       version = "0.3.3";
+       sha256 = "1m7s8ws47g9icf9rfi8sk51bjwpbz5av17lbsnfg2cz3gji0977w";
        libraryHaskellDepends = [ base bytestring postgresql-simple text ];
        testHaskellDepends = [
          base hspec pg-harness-client postgresql-simple resource-pool text
@@ -209515,6 +212666,7 @@ self: {
        description = "Low-level run time measurement";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-explore";
      }) {};
 
   "perf-analysis" = callPackage
@@ -209538,6 +212690,7 @@ self: {
        description = "analysis example using perf";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "perf-examples";
      }) {};
 
   "perfect-hash-generator" = callPackage
@@ -209594,6 +212747,7 @@ self: {
        description = "Library for performing vector shuffles";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -209659,6 +212813,7 @@ self: {
        testHaskellDepends = [ base hspec HUnit text time ];
        description = "Parse and format date periods, collapse and expand their text representations";
        license = lib.licenses.bsd3;
+       mainProgram = "period";
      }) {};
 
   "periodic" = callPackage
@@ -209675,6 +212830,7 @@ self: {
        description = "A reliable at-least-once periodic job scheduler backed by redis";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -209780,6 +212936,7 @@ self: {
        description = "Periodic task system haskell server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "periodicd";
      }) {};
 
   "perm" = callPackage
@@ -209886,9 +213043,7 @@ self: {
        ];
        description = "Serialization library with state and leb128 encoding";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
      }) {};
 
   "persist2er" = callPackage
@@ -209905,6 +213060,7 @@ self: {
        description = "Transforms persist's quasi-quoted syntax into ER format";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persist2er";
        broken = true;
      }) {};
 
@@ -209985,10 +213141,10 @@ self: {
        ];
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
-  "persistent_2_14_0_1" = callPackage
+  "persistent_2_14_0_2" = callPackage
     ({ mkDerivation, aeson, attoparsec, base, base64-bytestring
      , blaze-html, bytestring, conduit, containers, criterion, deepseq
      , fast-logger, file-embed, hspec, http-api-data, lift-type
@@ -209999,8 +213155,8 @@ self: {
      }:
      mkDerivation {
        pname = "persistent";
-       version = "2.14.0.1";
-       sha256 = "1yv6z6jmn6q0ikrrcmh2k9gs4i5473ssf4flx3acsv5zl9czia5f";
+       version = "2.14.0.2";
+       sha256 = "05sa38bmzkd12lrv6lzyj0mgd65sj81prpkyy9z0qsjywxksw8d5";
        libraryHaskellDepends = [
          aeson attoparsec base base64-bytestring blaze-html bytestring
          conduit containers fast-logger http-api-data lift-type monad-logger
@@ -210022,7 +213178,7 @@ self: {
        description = "Type-safe, multi-backend data serialization";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "persistent-audit" = callPackage
@@ -210053,6 +213209,7 @@ self: {
        description = "Parses a Persist Model file and produces Audit Models";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persistent-audit";
      }) {};
 
   "persistent-cereal" = callPackage
@@ -210115,6 +213272,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Persistent module discover utilities";
        license = lib.licenses.bsd3;
+       mainProgram = "persistent-discover";
      }) {};
 
   "persistent-documentation" = callPackage
@@ -210370,6 +213528,7 @@ self: {
        description = "A pure haskell backend for the persistent library using MySQL database server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persistent-mysql-haskell-example";
      }) {};
 
   "persistent-odbc" = callPackage
@@ -210659,7 +213818,7 @@ self: {
        ];
        description = "Backend for the persistent library using sqlite3";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {inherit (pkgs) sqlite;};
 
   "persistent-template" = callPackage
@@ -210672,7 +213831,7 @@ self: {
        doHaddock = false;
        description = "Type-safe, non-relational, multi-backend persistence";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "persistent-template-classy" = callPackage
@@ -210857,6 +214016,7 @@ self: {
        description = "Persona (BrowserID) Identity Provider";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "persona";
      }) {};
 
   "pesca" = callPackage
@@ -210872,6 +214032,7 @@ self: {
        description = "Proof Editor for Sequent Calculus";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pesca";
        broken = true;
      }) {};
 
@@ -210999,6 +214160,7 @@ self: {
        description = "REST service and library for creating/consuming temporary PostgreSQL databases";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-harness";
        broken = true;
      }) {};
 
@@ -211031,6 +214193,7 @@ self: {
        description = "REST service for creating temporary PostgreSQL databases";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-harness";
        broken = true;
      }) {};
 
@@ -211058,6 +214221,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pg-recorder";
        broken = true;
      }) {};
 
@@ -211136,6 +214300,7 @@ self: {
        description = "browse directory listing webpages and download files from them";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pgdl";
        broken = true;
      }) {};
 
@@ -211354,6 +214519,7 @@ self: {
        description = "Deprecated - ghci debug viewer with simple editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phoityne";
        broken = true;
      }) {};
 
@@ -211377,6 +214543,7 @@ self: {
        ];
        description = "Haskell Debug Adapter for Visual Studio Code";
        license = lib.licenses.bsd3;
+       mainProgram = "phoityne-vscode";
      }) {};
 
   "phone-metadata" = callPackage
@@ -211605,6 +214772,7 @@ self: {
        description = "A library for working with generalized phonetic languages usage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pldPL";
      }) {};
 
   "phonetic-languages-plus" = callPackage
@@ -211628,6 +214796,7 @@ self: {
        description = "Some common shared between different packages functions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "distributionTextG";
      }) {};
 
   "phonetic-languages-properties" = callPackage
@@ -211980,6 +215149,7 @@ self: {
        executableHaskellDepends = [ base mmsyn2-array mmsyn5 ];
        description = "Prepares Ukrainian text to be used as a phonetic language text";
        license = lib.licenses.mit;
+       mainProgram = "unconcatUkr";
      }) {};
 
   "phonetic-languages-vector" = callPackage
@@ -212037,6 +215207,7 @@ self: {
        ];
        description = "Rename photo image files based on EXIF shoot date";
        license = lib.licenses.isc;
+       mainProgram = "photoname";
      }) {};
 
   "phraskell" = callPackage
@@ -212051,6 +215222,7 @@ self: {
        description = "A fractal viewer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phraskell";
        broken = true;
      }) {};
 
@@ -212085,6 +215257,7 @@ self: {
        description = "Utility for clustering phylogenetic trees in Newick format based on Robinson-Foulds distance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phybin";
        broken = true;
      }) {};
 
@@ -212118,6 +215291,7 @@ self: {
        description = "Applied pi-calculus interpreter";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "phi";
        broken = true;
      }) {};
 
@@ -212143,6 +215317,7 @@ self: {
        description = "Demo implementation of typechecker for dependently-typed language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pi-forall";
        broken = true;
      }) {};
 
@@ -212213,6 +215388,7 @@ self: {
        description = "Set up port forwarding with the Private Internet Access VPN service";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pia-forward";
      }) {};
 
   "pianola" = callPackage
@@ -212251,6 +215427,7 @@ self: {
        description = "simple image manipulation functions";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "picedit";
        broken = true;
      }) {};
 
@@ -212349,6 +215526,7 @@ self: {
        description = "Converts a svg image to tikz code";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pictikz";
        broken = true;
      }) {};
 
@@ -212363,6 +215541,7 @@ self: {
        executableHaskellDepends = [ base mtl ];
        description = "a simple pid controller";
        license = "unknown";
+       mainProgram = "pid";
      }) {};
 
   "pid1" = callPackage
@@ -212377,6 +215556,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Do signal handling and orphan reaping for Unix PID1 init processes";
        license = lib.licenses.mit;
+       mainProgram = "pid1";
      }) {};
 
   "pidfile" = callPackage
@@ -212409,6 +215589,7 @@ self: {
        description = "Yet another Haskell build system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pier";
      }) {};
 
   "pier-core" = callPackage
@@ -212444,6 +215625,7 @@ self: {
        description = "A Piet interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "piet";
        broken = true;
      }) {};
 
@@ -212462,6 +215644,7 @@ self: {
        description = "dice game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pig";
        broken = true;
      }) {};
 
@@ -212477,6 +215660,7 @@ self: {
        executableHaskellDepends = [ base mtl parsec text ];
        description = "Yet another text-to-html converter";
        license = lib.licenses.bsd3;
+       mainProgram = "piki";
      }) {};
 
   "pinboard" = callPackage
@@ -212522,7 +215706,8 @@ self: {
        ];
        description = "Back up the notes you've saved to Pinboard";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ bdesham ];
+       mainProgram = "pnbackup";
+       maintainers = [ lib.maintainers.bdesham ];
      }) {};
 
   "pinch" = callPackage
@@ -212569,6 +215754,7 @@ self: {
        description = "A code generator for the pinch Thrift library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pinch-gen";
        broken = true;
      }) {};
 
@@ -212655,6 +215841,7 @@ self: {
        ];
        description = "Attoparsec parsers of ping utility";
        license = lib.licenses.asl20;
+       mainProgram = "ping-parser-attoparsec-exe";
      }) {};
 
   "ping-wrapper" = callPackage
@@ -212678,6 +215865,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Haskell Ping wrapper";
        license = lib.licenses.asl20;
+       mainProgram = "ping-wrapper";
      }) {};
 
   "pinned-warnings" = callPackage
@@ -212686,8 +215874,8 @@ self: {
      }:
      mkDerivation {
        pname = "pinned-warnings";
-       version = "0.1.0.9";
-       sha256 = "10iis47wdlhncq1aa6gbcjawpj9bx04kx4qfnf99qxjb095w0vm3";
+       version = "0.1.0.10";
+       sha256 = "04ak277hv2zccfi1y8639cjz3sm881i3cjli35x7a17hn7dy8l38";
        libraryHaskellDepends = [
          base bytestring containers directory ghc time transformers
        ];
@@ -212757,6 +215945,7 @@ self: {
        ];
        description = "Open your editor, pipe the output to the system clipboard";
        license = lib.licenses.bsd2;
+       mainProgram = "pipeclip";
      }) {};
 
   "piped" = callPackage
@@ -212814,7 +216003,7 @@ self: {
        ];
        description = "Compositional pipelines";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-aeson" = callPackage
@@ -212893,6 +216082,7 @@ self: {
        description = "Streaming parsing in the pipes-core framework with Attoparsec";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "MimeParser";
      }) {};
 
   "pipes-bgzf" = callPackage
@@ -212983,7 +216173,7 @@ self: {
        ];
        description = "ByteString support for pipes";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-bzip" = callPackage
@@ -213154,7 +216344,7 @@ self: {
        testHaskellDepends = [ async base pipes stm ];
        description = "Concurrency for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-conduit" = callPackage
@@ -213217,7 +216407,7 @@ self: {
        ];
        description = "Fast, streaming csv parser";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-errors" = callPackage
@@ -213277,7 +216467,7 @@ self: {
        ];
        description = "Extra utilities for pipes";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-fastx" = callPackage
@@ -213362,7 +216552,7 @@ self: {
        testHaskellDepends = [ base doctest lens-family-core ];
        description = "Group streams into substreams";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-http" = callPackage
@@ -213380,7 +216570,7 @@ self: {
        ];
        description = "HTTP client with pipes interface";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-illumina" = callPackage
@@ -213506,6 +216696,7 @@ self: {
        ];
        description = "LZMA compressors and decompressors for the Pipes package";
        license = lib.licenses.bsd3;
+       mainProgram = "pipes-lzma-unxz";
      }) {};
 
   "pipes-misc" = callPackage
@@ -213637,6 +216828,7 @@ self: {
        description = "Examples using pipes-p2p";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "address-exchanger";
      }) {};
 
   "pipes-parse" = callPackage
@@ -213648,7 +216840,7 @@ self: {
        libraryHaskellDepends = [ base pipes transformers ];
        description = "Parsing infrastructure for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-postgresql-simple" = callPackage
@@ -213689,6 +216881,7 @@ self: {
        description = "Alternate Prelude for the pipes ecosystem";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pipes-protolude-exe";
      }) {};
 
   "pipes-pulse-simple" = callPackage
@@ -213729,6 +216922,7 @@ self: {
        description = "A few pipes to control the timing of yields";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "PipesRealTimeExample";
        broken = true;
      }) {};
 
@@ -213770,7 +216964,7 @@ self: {
        ];
        description = "Safety for the pipes ecosystem";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "pipes-shell" = callPackage
@@ -213901,6 +217095,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "WebSockets in the Pipes framework";
        license = lib.licenses.bsd3;
+       mainProgram = "pipes-websockets-example";
      }) {};
 
   "pipes-zeromq4" = callPackage
@@ -213962,6 +217157,7 @@ self: {
        description = "A dependently typed core language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pisigma";
      }) {};
 
   "pit" = callPackage
@@ -213985,6 +217181,7 @@ self: {
        description = "Account management tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pit";
        broken = true;
      }) {};
 
@@ -214031,6 +217228,7 @@ self: {
        description = "A library and a CLI tool for accessing Pivotal Tracker API";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tracker";
        broken = true;
      }) {};
 
@@ -214050,6 +217248,7 @@ self: {
        description = "A program for turning pixel art into 3D prints";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pixel-printer-exe";
        broken = true;
      }) {};
 
@@ -214098,6 +217297,7 @@ self: {
        description = "A library and application for generating pixelated avatars";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pixelated-avatar-generator";
        broken = true;
      }) {};
 
@@ -214152,9 +217352,8 @@ self: {
        ];
        description = "Haskell game engine like fantasy console";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "piyo-exe";
      }) {};
 
   "pkcs1" = callPackage
@@ -214217,6 +217416,7 @@ self: {
        description = "Package dependency graph for installed packages";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pkggraph";
        broken = true;
      }) {};
 
@@ -214240,6 +217440,7 @@ self: {
        description = "RPM package tree diff tool";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pkgtreediff";
      }) {};
 
   "pktree" = callPackage
@@ -214265,6 +217466,7 @@ self: {
        executableSystemDepends = [ libXinerama ];
        description = "A utility for X11 that moves the mouse cursor using the keyboard";
        license = lib.licenses.gpl3Only;
+       mainProgram = "place-cursor-at";
      }) {inherit (pkgs.xorg) libXinerama;};
 
   "placeholders" = callPackage
@@ -214307,6 +217509,7 @@ self: {
        ];
        description = "Plaid.com api integration library";
        license = lib.licenses.bsd3;
+       mainProgram = "plaid";
      }) {};
 
   "plailude" = callPackage
@@ -214530,6 +217733,7 @@ self: {
        description = "General Framework for compiler development";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pp";
        broken = true;
      }) {};
 
@@ -214555,6 +217759,7 @@ self: {
        description = "Library and executable for working with playlist files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "playlist";
        broken = true;
      }) {};
 
@@ -214669,6 +217874,7 @@ self: {
        description = "plot data from stdin through socketed";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "plocketed";
      }) {};
 
   "plot" = callPackage
@@ -214747,6 +217953,7 @@ self: {
        description = "A plotting tool with Mathematica like Manipulation abilities";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "plot-lab";
        broken = true;
      }) {};
 
@@ -214806,6 +218013,7 @@ self: {
        description = "Basic plotting of tabular data for the command line";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ploterific";
        broken = true;
      }) {};
 
@@ -214854,6 +218062,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "A useful cli tool to draw figures";
        license = lib.licenses.bsd3;
+       mainProgram = "ploton";
      }) {};
 
   "plots" = callPackage
@@ -215016,6 +218225,7 @@ self: {
        executableHaskellDepends = [ base bytestring linear vector ];
        description = "PLY file loader";
        license = lib.licenses.bsd3;
+       mainProgram = "ply2bin";
      }) {};
 
   "plzwrk" = callPackage
@@ -215147,6 +218357,7 @@ self: {
        description = "Multi-backend (zookeeper and sqlite) DNS Server using persistent-library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pocket-dns";
      }) {};
 
   "podenv" = callPackage
@@ -215171,6 +218382,7 @@ self: {
        description = "A container wrapper";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "podenv";
        broken = true;
      }) {};
 
@@ -215257,6 +218469,7 @@ self: {
        ];
        description = "Tool for refactoring expressions into pointfree form";
        license = "unknown";
+       mainProgram = "pointfree";
      }) {};
 
   "pointfree-fancy" = callPackage
@@ -215280,6 +218493,7 @@ self: {
        description = "Tool for refactoring expressions into pointfree form";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pointfree";
        broken = true;
      }) {};
 
@@ -215300,6 +218514,7 @@ self: {
        description = "Pointful refactoring tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pointful";
        broken = true;
      }) {};
 
@@ -215389,6 +218604,7 @@ self: {
        description = "Discord verification bot";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "poke-exe";
      }) {};
 
   "pokemon-go-protobuf-types" = callPackage
@@ -215430,6 +218646,7 @@ self: {
        description = "Texas holdem hand evaluation and simulation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "poker-exe";
        broken = true;
      }) {};
 
@@ -215570,6 +218787,7 @@ self: {
        description = "Haskell PVP version adviser";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "policeman";
        broken = true;
      }) {};
 
@@ -215949,36 +219167,38 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-chronos";
-       version = "0.4.0.0";
-       sha256 = "0wcd9g5ad846s2z7i10krphlks1n7ywlcs64aqv91yxlxfnlb9d8";
+       version = "0.5.0.0";
+       sha256 = "04cj96iwn7fgyk4r8hy730lm1j01q7iv1yd7rdq20kp9mris5c6c";
        libraryHaskellDepends = [
          base chronos incipit-core polysemy-time
        ];
        testHaskellDepends = [
          base chronos incipit-core polysemy-test polysemy-time tasty
        ];
-       description = "Polysemy-time Interpreters for Chronos";
+       description = "Polysemy effects for Chronos";
        license = "BSD-2-Clause-Patent";
      }) {};
 
   "polysemy-conc" = callPackage
-    ({ mkDerivation, async, base, containers, incipit-core, polysemy
-     , polysemy-plugin, polysemy-resume, polysemy-test, polysemy-time
-     , stm, stm-chans, tasty, time, torsor, unagi-chan, unix
+    ({ mkDerivation, async, base, containers, hedgehog, incipit-core
+     , polysemy, polysemy-plugin, polysemy-resume, polysemy-test
+     , polysemy-time, stm, stm-chans, tasty, tasty-hedgehog, time
+     , torsor, unagi-chan, unix
      }:
      mkDerivation {
        pname = "polysemy-conc";
-       version = "0.8.0.1";
-       sha256 = "0l1hgv9xlax5ycp66j5asfhfi9jyfcwvd9z132pbx8dyj4ikzp8y";
+       version = "0.9.0.0";
+       sha256 = "0nmnc3h4np742yf0c196q3d0bfdvm9k3dp0482712ka1zjk8ck1k";
        libraryHaskellDepends = [
          async base containers incipit-core polysemy polysemy-resume
          polysemy-time stm stm-chans torsor unagi-chan unix
        ];
        testHaskellDepends = [
-         async base incipit-core polysemy polysemy-plugin polysemy-resume
-         polysemy-test polysemy-time stm tasty time unagi-chan unix
+         async base hedgehog incipit-core polysemy polysemy-plugin
+         polysemy-resume polysemy-test polysemy-time stm tasty
+         tasty-hedgehog time unagi-chan unix
        ];
-       description = "Polysemy Effects for Concurrency";
+       description = "Polysemy effects for concurrency";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216053,6 +219273,8 @@ self: {
        ];
        description = "Polysemy Effects for HTTP clients";
        license = "BSD-2-Clause-Patent";
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "polysemy-keyed-state" = callPackage
@@ -216115,8 +219337,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log";
-       version = "0.6.0.1";
-       sha256 = "04fghlmqimcc4wm9qbmbjxcvzjrhdijg5h0f135yqlc598f0ny9i";
+       version = "0.7.0.0";
+       sha256 = "1n39zpg992vmz0pcf89ljf6vy83z5r27jzg4iakh97bpfskacii6";
        libraryHaskellDepends = [
          ansi-terminal async base incipit-core polysemy polysemy-conc
          polysemy-time stm time
@@ -216125,7 +219347,7 @@ self: {
          base incipit-core polysemy polysemy-conc polysemy-plugin
          polysemy-test polysemy-time tasty time
        ];
-       description = "Polysemy Effects for Logging";
+       description = "Polysemy effects for logging";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216136,8 +219358,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log-co";
-       version = "0.6.0.1";
-       sha256 = "0b3fi8ql4vj13ijg2f6xay50wp26ypdbifwrahg29sibx77qp5lr";
+       version = "0.7.0.0";
+       sha256 = "10f5fg0xx58v4rnd62ll68k7anahrgb7iqv5fkz4xb17yvrkgckk";
        libraryHaskellDepends = [
          base co-log co-log-polysemy incipit-core polysemy polysemy-conc
          polysemy-log polysemy-time stm
@@ -216146,7 +219368,7 @@ self: {
          base co-log co-log-polysemy incipit-core polysemy polysemy-log
          polysemy-test polysemy-time stm tasty
        ];
-       description = "Colog Adapters for Polysemy-Log";
+       description = "Colog adapters for Polysemy.Log";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216157,8 +219379,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-log-di";
-       version = "0.6.0.1";
-       sha256 = "016nicml88ahpkz3jj7r29f7v6bkch4pci2iwfx8iwx48g6hkq9w";
+       version = "0.7.0.0";
+       sha256 = "03rfjx91wc2m79alxjhi2mqlxnal87nbgwidin04s9x3zq2hyk9k";
        libraryHaskellDepends = [
          base di-polysemy incipit-core polysemy polysemy-conc polysemy-log
          polysemy-time stm
@@ -216166,7 +219388,7 @@ self: {
        testHaskellDepends = [
          base incipit-core polysemy polysemy-log polysemy-test stm tasty
        ];
-       description = "Di Adapters for Polysemy-Log";
+       description = "Di adapters for Polysemy.Log";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216341,8 +219563,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-process";
-       version = "0.8.0.1";
-       sha256 = "0ayn6l2c6009wrxc4rya6dc8185wp6krdck8mbbasrlvah3in3cs";
+       version = "0.9.0.0";
+       sha256 = "1jd3iryv3vwy8zv328sfwh1ifrj788fhs63vgppr503wgkqzmwbn";
        libraryHaskellDepends = [
          base incipit-core path path-io polysemy polysemy-conc
          polysemy-resume polysemy-time posix-pty process stm-chans
@@ -216353,7 +219575,7 @@ self: {
          polysemy-resume polysemy-test polysemy-time tasty
          tasty-expected-failure typed-process
        ];
-       description = "Polysemy Effects for System Processes";
+       description = "Polysemy effects for system processes";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216379,6 +219601,7 @@ self: {
        description = "Readline effect for polysemy";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "echo-repl";
        broken = true;
      }) {};
 
@@ -216404,8 +219627,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-resume";
-       version = "0.4.0.0";
-       sha256 = "1lxg2xf6lvw692w8sqr4jgxx02pmzq5rym3ch9rydca3mb3gkz73";
+       version = "0.5.0.0";
+       sha256 = "1l51p565i0wb9ckxbaiwzgbbl7jicr9586n824478bxdsd45b3di";
        libraryHaskellDepends = [
          base incipit-core polysemy transformers
        ];
@@ -216471,8 +219694,8 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-test";
-       version = "0.5.0.0";
-       sha256 = "0bmqphkv15p638wwz80rp6vfzvyj94q3i4clda1vn8fwgqd6pmwv";
+       version = "0.6.0.0";
+       sha256 = "093xg4jlxpfb64r8912k9hznbjy8zn9s18f7cci9lp472b4agxph";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          base hedgehog incipit-core path path-io polysemy tasty
@@ -216491,15 +219714,15 @@ self: {
      }:
      mkDerivation {
        pname = "polysemy-time";
-       version = "0.4.0.0";
-       sha256 = "0smcc375x4jdhc63fk44fp3bhfdaiszf9w6nk1ww1jl29gm3lamb";
+       version = "0.5.0.0";
+       sha256 = "026rqwm9bjlxvcxjnnma06z30xkmysjnj8r5krbq5rinqdpjdfbs";
        libraryHaskellDepends = [
          aeson base incipit-core stm template-haskell time torsor
        ];
        testHaskellDepends = [
          base incipit-core polysemy-test tasty time
        ];
-       description = "Polysemy Effect for Time";
+       description = "Polysemy effects for time";
        license = "BSD-2-Clause-Patent";
      }) {};
 
@@ -216619,6 +219842,7 @@ self: {
        description = "Taming Selective Strictness";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "polyseq.cgi";
      }) {};
 
   "polysoup" = callPackage
@@ -216717,6 +219941,7 @@ self: {
        description = "pomodoro timer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pomodoro";
      }) {};
 
   "pomohoro" = callPackage
@@ -216741,6 +219966,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pomohoro-exe";
        broken = true;
      }) {};
 
@@ -216793,6 +220019,7 @@ self: {
        description = "Extended Personal Media Network (XPMN) media server";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pontarius-mediaserver-test";
      }) {};
 
   "pontarius-xmpp" = callPackage
@@ -216887,6 +220114,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Can I have a pony?";
        license = lib.licenses.bsd3;
+       mainProgram = "can-i-have-a-pony";
      }) {};
 
   "pool" = callPackage
@@ -217124,6 +220352,7 @@ self: {
        description = "A location accessor for porcupine to connect to AWS S3 sources/sinks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exampleS3";
      }) {};
 
   "porpoise" = callPackage
@@ -217142,6 +220371,7 @@ self: {
        executableHaskellDepends = [ base warp ];
        description = "A minimalist HTTP server framework written on top of wai";
        license = lib.licenses.mit;
+       mainProgram = "porpoise-example";
      }) {};
 
   "port-utils" = callPackage
@@ -217227,6 +220457,7 @@ self: {
        description = "FreeBSD ports index search and analysis tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "porte";
        broken = true;
      }) {};
 
@@ -217384,6 +220615,27 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "posable" = callPackage
+    ({ mkDerivation, base, finite-typelits, generics-sop
+     , ghc-typelits-knownnat, tasty, tasty-hunit, tasty-quickcheck
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "posable";
+       version = "1.0.0.1";
+       sha256 = "07lnhyxjx7929hinlw3kzbh56ksk1zgiq2r5vlkpn9fxgza5cx64";
+       libraryHaskellDepends = [
+         base finite-typelits generics-sop ghc-typelits-knownnat
+         template-haskell
+       ];
+       testHaskellDepends = [
+         base ghc-typelits-knownnat tasty tasty-hunit tasty-quickcheck
+         template-haskell
+       ];
+       description = "A product-of-sums generics library";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "poseidon" = callPackage
     ({ mkDerivation, aeson, async, base, binary, binary-bits
      , bytestring, generics-eot, hspec, postgresql-libpq, QuickCheck
@@ -217496,9 +220748,7 @@ self: {
        ];
        description = "posix bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) systemd;};
@@ -217639,6 +220889,7 @@ self: {
        description = "Sleep tracker for X11, using XScreenSaver extension and manual input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "posplyu";
        broken = true;
      }) {};
 
@@ -217768,6 +221019,7 @@ self: {
        description = "Middleware to map LISTEN/NOTIFY messages to Websockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgres-websockets";
        broken = true;
      }) {};
 
@@ -217798,6 +221050,34 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "postgresql-binary_0_12_4_4" = callPackage
+    ({ mkDerivation, aeson, base, binary-parser, bytestring
+     , bytestring-strict-builder, containers, conversion
+     , conversion-bytestring, conversion-text, criterion, json-ast
+     , network-ip, postgresql-libpq, QuickCheck, quickcheck-instances
+     , rerebase, scientific, tasty, tasty-hunit, tasty-quickcheck, text
+     , time, transformers, unordered-containers, uuid, vector
+     }:
+     mkDerivation {
+       pname = "postgresql-binary";
+       version = "0.12.4.4";
+       sha256 = "03lh7ply77849xwpxh6k2hz20xl9cmvyx8yq03wqywvh7snd1ss3";
+       libraryHaskellDepends = [
+         aeson base binary-parser bytestring bytestring-strict-builder
+         containers network-ip scientific text time transformers
+         unordered-containers uuid vector
+       ];
+       testHaskellDepends = [
+         aeson conversion conversion-bytestring conversion-text json-ast
+         network-ip postgresql-libpq QuickCheck quickcheck-instances
+         rerebase tasty tasty-hunit tasty-quickcheck
+       ];
+       benchmarkHaskellDepends = [ criterion rerebase ];
+       description = "Encoders and decoders for the PostgreSQL's binary format";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "postgresql-common" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, postgresql-simple }:
      mkDerivation {
@@ -217972,6 +221252,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
+       mainProgram = "migrate";
      }) {};
 
   "postgresql-named" = callPackage
@@ -218016,6 +221297,7 @@ self: {
        executableHaskellDepends = [ base filepath ];
        description = "An ORM (Object Relational Mapping) and migrations DSL for PostgreSQL";
        license = "GPL";
+       mainProgram = "pg_migrate";
      }) {};
 
   "postgresql-placeholder-converter" = callPackage
@@ -218133,6 +221415,7 @@ self: {
        testHaskellDepends = [ base binary bytestring cereal hspec ];
        description = "PostgreSQL logical streaming replication library";
        license = lib.licenses.bsd3;
+       mainProgram = "replicant-example";
      }) {};
 
   "postgresql-resilient" = callPackage
@@ -218183,8 +221466,8 @@ self: {
        pname = "postgresql-simple";
        version = "0.6.4";
        sha256 = "0rz2bklxp4pvbxb2w49h5p6pbwabn6d5d4j4mrya4fpa0d13k43d";
-       revision = "6";
-       editedCabalFile = "1s7f6l17qakhgmfn1l09s4g5pmawn9qa8ylbzybkm91h9y7mwlzn";
+       revision = "8";
+       editedCabalFile = "1qavb3qs1g307pc19k9y3yvqp0c1srwsplijvayn9ldp0bxdy6q8";
        libraryHaskellDepends = [
          aeson attoparsec base bytestring bytestring-builder
          case-insensitive containers hashable Only postgresql-libpq
@@ -218199,7 +221482,7 @@ self: {
        benchmarkHaskellDepends = [ base vector ];
        description = "Mid-Level PostgreSQL client library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "postgresql-simple-bind" = callPackage
@@ -218262,6 +221545,7 @@ self: {
        testHaskellDepends = [ base bytestring hspec postgresql-simple ];
        description = "PostgreSQL Schema Migrations";
        license = lib.licenses.bsd3;
+       mainProgram = "migrate";
      }) {};
 
   "postgresql-simple-named" = callPackage
@@ -218604,6 +221888,7 @@ self: {
        description = "REST API for any Postgres database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgrest";
      }) {};
 
   "postgrest-ws" = callPackage
@@ -218640,6 +221925,7 @@ self: {
        description = "PostgREST extension to map LISTEN/NOTIFY messages to Websockets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postgrest-ws";
        broken = true;
      }) {};
 
@@ -218719,6 +222005,7 @@ self: {
        description = "Postmaster ESMTP Server";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "postmaster";
        broken = true;
      }) {};
 
@@ -218734,6 +222021,7 @@ self: {
        description = "Command line Dreamcast VMU filesystem toolset";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "potato-tool";
        broken = true;
      }) {};
 
@@ -219084,6 +222372,22 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "pqueue_1_4_2_0" = callPackage
+    ({ mkDerivation, base, deepseq, random, tasty, tasty-bench
+     , tasty-quickcheck
+     }:
+     mkDerivation {
+       pname = "pqueue";
+       version = "1.4.2.0";
+       sha256 = "1b7a0gf00aaw02vz21s7g7mni3dlx34cvl88dgm96a9jrm1djqrw";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base deepseq tasty tasty-quickcheck ];
+       benchmarkHaskellDepends = [ base deepseq random tasty-bench ];
+       description = "Reliable, persistent, fast priority queues";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "pqueue-mtl" = callPackage
     ({ mkDerivation, base, containers, ghc-prim, MaybeT, mtl
      , stateful-mtl, uvector
@@ -219117,6 +222421,7 @@ self: {
        description = "Practice Room";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "practice-room";
      }) {};
 
   "praglude" = callPackage
@@ -219217,6 +222522,7 @@ self: {
        description = "Diff Cabal packages";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "precis";
        broken = true;
      }) {};
 
@@ -219412,6 +222718,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Prefetch stdin even before stdout is ready";
        license = lib.licenses.bsd3;
+       mainProgram = "prefetch";
      }) {};
 
   "prefix-expression" = callPackage
@@ -219856,6 +223163,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Typeclass for human-readable display";
        license = lib.licenses.bsd3;
+       mainProgram = "pretty-display-example";
      }) {};
 
   "pretty-error" = callPackage
@@ -219894,6 +223202,7 @@ self: {
        description = "Functionality for beautifying GHCi";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pp-ghci";
        broken = true;
      }) {};
 
@@ -219984,6 +223293,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Tools for working with derived `Show` instances and generic inspection of values";
        license = lib.licenses.mit;
+       mainProgram = "ppsh";
      }) {};
 
   "pretty-show-ansi-wl" = callPackage
@@ -220024,10 +223334,10 @@ self: {
        benchmarkHaskellDepends = [ base criterion text ];
        description = "pretty printer for data types with a 'Show' instance";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
-  "pretty-simple_4_1_0_0" = callPackage
+  "pretty-simple_4_1_1_0" = callPackage
     ({ mkDerivation, base, Cabal, cabal-doctest, containers, criterion
      , doctest, Glob, mtl, optparse-applicative, prettyprinter
      , prettyprinter-ansi-terminal, QuickCheck, template-haskell, text
@@ -220035,8 +223345,8 @@ self: {
      }:
      mkDerivation {
        pname = "pretty-simple";
-       version = "4.1.0.0";
-       sha256 = "0afmbvcma67hah9f7i9j4fazlkfdbr6ljas1cn10wp4mlxlf8236";
+       version = "4.1.1.0";
+       sha256 = "0jjxlb0psj5wj7h8dsmqbx8qwdyzmgsv7r9my51x9qb7m6qpkqfs";
        isLibrary = true;
        isExecutable = true;
        setupHaskellDepends = [ base Cabal cabal-doctest ];
@@ -220052,7 +223362,8 @@ self: {
        description = "pretty printer for data types with a 'Show' instance";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "pretty-simple";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "pretty-sop" = callPackage
@@ -220084,6 +223395,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "Styling and coloring terminal output with ANSI escape sequences";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "pretty-tree" = callPackage
@@ -220647,6 +223959,29 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "primitive-extras_0_10_1_5" = callPackage
+    ({ mkDerivation, base, bytestring, cereal, deferred-folds, focus
+     , foldl, list-t, primitive, primitive-unlifted, profunctors
+     , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
+     , tasty-quickcheck, vector
+     }:
+     mkDerivation {
+       pname = "primitive-extras";
+       version = "0.10.1.5";
+       sha256 = "0xmigva8lss9h18q0a63mc9sridny40nyzkizr2vmgm5d9qniqjs";
+       libraryHaskellDepends = [
+         base bytestring cereal deferred-folds focus foldl list-t primitive
+         primitive-unlifted profunctors vector
+       ];
+       testHaskellDepends = [
+         cereal deferred-folds focus primitive QuickCheck
+         quickcheck-instances rerebase tasty tasty-hunit tasty-quickcheck
+       ];
+       description = "Extras for the \"primitive\" library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "primitive-foreign" = callPackage
     ({ mkDerivation, base, primitive, QuickCheck }:
      mkDerivation {
@@ -220817,6 +224152,7 @@ self: {
        description = "ImageBoard on Happstack and HSP";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "primula-board";
      }) {};
 
   "primula-bot" = callPackage
@@ -220836,6 +224172,7 @@ self: {
        description = "Jabber-bot for primula-board ImageBoard";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "primula-bot";
      }) {};
 
   "primus" = callPackage
@@ -220889,6 +224226,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Print all ANSI console colors";
        license = lib.licenses.bsd3;
+       mainProgram = "print-console-colors";
      }) {};
 
   "print-debugger" = callPackage
@@ -220989,6 +224327,7 @@ self: {
        executableHaskellDepends = [ base xosd ];
        description = "Simple tool to display some text on an on-screen display";
        license = lib.licenses.bsd3;
+       mainProgram = "printxosd";
      }) {};
 
   "priority-queue" = callPackage
@@ -221020,6 +224359,7 @@ self: {
        description = "Cooperative task prioritization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "_PrioritySync_Internal_Tests";
      }) {};
 
   "private-hackage-uploader" = callPackage
@@ -221038,6 +224378,7 @@ self: {
        executableHaskellDepends = [ base directory shelly text ];
        description = "Upload a package to the public or private hackage, building its docs";
        license = lib.licenses.mit;
+       mainProgram = "private-hackage-uploader";
      }) {};
 
   "privileged-concurrency" = callPackage
@@ -221502,6 +224843,7 @@ self: {
        ];
        description = "An IO library for testing interactive command line programs";
        license = lib.licenses.mit;
+       mainProgram = "example-netcat-test";
      }) {};
 
   "producer" = callPackage
@@ -221579,6 +224921,7 @@ self: {
        description = "Generate flamegraphs from ghc RTS .prof files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prof-flamegraph";
        broken = true;
      }) {};
 
@@ -221596,6 +224939,7 @@ self: {
        description = "Convert GHC profiles into GraphViz's dot format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prof2dot";
      }) {};
 
   "prof2pretty" = callPackage
@@ -221635,6 +224979,7 @@ self: {
        description = "Restructure GHC profile reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profiterole";
      }) {};
 
   "profiteur" = callPackage
@@ -221656,6 +225001,7 @@ self: {
        description = "Treemap visualiser for GHC prof files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "profiteur";
      }) {};
 
   "profunctor-arrows" = callPackage
@@ -221730,6 +225076,7 @@ self: {
        description = "A compact optics library compatible with the typeclasses in profunctors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "doctest";
        broken = true;
      }) {coapplicative = null;};
 
@@ -221852,6 +225199,7 @@ self: {
        description = "Multilabel classification model which learns sequentially (online)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "progressive";
        broken = true;
      }) {};
 
@@ -222064,6 +225412,7 @@ self: {
        description = "A command line tool to visualize query resolution in Prolog";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsprolog-graph";
      }) {};
 
   "prolog-graph-lib" = callPackage
@@ -222198,6 +225547,7 @@ self: {
        description = "Instrument applications with metrics and publish/push to Prometheus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
      }) {};
 
   "prometheus-metrics-ghc" = callPackage
@@ -222250,6 +225600,7 @@ self: {
        ];
        description = "Instrument a wai application with various metrics";
        license = lib.licenses.bsd3;
+       mainProgram = "prometheus-wai-middleware-example";
      }) {};
 
   "promise" = callPackage
@@ -222596,6 +225947,7 @@ self: {
        description = "neovim project manager";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "proteome";
      }) {};
 
   "proto-lens" = callPackage
@@ -222742,6 +226094,7 @@ self: {
        ];
        description = "Protocol buffer compiler for the proto-lens library";
        license = lib.licenses.bsd3;
+       mainProgram = "proto-lens-protoc";
      }) {inherit (pkgs) protobuf;};
 
   "proto-lens-runtime" = callPackage
@@ -222792,6 +226145,8 @@ self: {
        pname = "proto3-suite";
        version = "0.5.0";
        sha256 = "09y09y321jflxlrx13b9fm4v3f3k4j475wpp0bilmc4ygq9bxjcm";
+       revision = "2";
+       editedCabalFile = "0wd212sjjdvggav7a719pxh3q232bnyp6jlgdavhay4b5n4adzx8";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -222885,6 +226240,7 @@ self: {
        description = "Protocol Buffers via C++";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "protobuf-native-test";
      }) {};
 
   "protobuf-simple" = callPackage
@@ -222910,6 +226266,7 @@ self: {
        ];
        description = "Simple Protocol Buffers library (proto2)";
        license = lib.licenses.mit;
+       mainProgram = "protobuf-simple-protoc";
      }) {};
 
   "protocol" = callPackage
@@ -223033,10 +226390,8 @@ self: {
      }:
      mkDerivation {
        pname = "protolude";
-       version = "0.3.1";
-       sha256 = "0cwy2apaghbxxf4w3k8gpd8npiy8d9yw0cd6ixqvis28q0b8snvi";
-       isLibrary = true;
-       isExecutable = true;
+       version = "0.3.2";
+       sha256 = "0i53yxg44nrz0czwr8cqhw1fdapz9db8kfnqz9a3lmj5skrikh3y";
        libraryHaskellDepends = [
          array async base bytestring containers deepseq ghc-prim hashable
          mtl mtl-compat stm text transformers transformers-compat
@@ -223077,6 +226432,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "proton-haskell" = callPackage
@@ -223131,6 +226487,7 @@ self: {
        description = "The server for ProveEverywhere";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "prove-everywhere-server";
        broken = true;
      }) {};
 
@@ -223232,6 +226589,7 @@ self: {
        ];
        description = "Prune unused Haskell dependencies";
        license = lib.licenses.mit;
+       mainProgram = "prune-juice";
      }) {};
 
   "psc-ide" = callPackage
@@ -223414,6 +226772,7 @@ self: {
        executableHaskellDepends = [ base text ];
        description = "A Haskell Implementation of the Porter Stemmer";
        license = lib.licenses.bsd3;
+       mainProgram = "pstemmer-test-exe";
      }) {};
 
   "ptera" = callPackage
@@ -223504,22 +226863,25 @@ self: {
      }) {};
 
   "ptr" = callPackage
-    ({ mkDerivation, base, bytestring, contravariant, profunctors
-     , QuickCheck, quickcheck-instances, rerebase, tasty, tasty-hunit
-     , tasty-quickcheck, text, time, vector
+    ({ mkDerivation, base, bytestring, cereal, contravariant, gauge
+     , profunctors, QuickCheck, quickcheck-instances, rerebase
+     , strict-list, tasty, tasty-hunit, tasty-quickcheck, text, time
+     , tostring, vector
      }:
      mkDerivation {
        pname = "ptr";
-       version = "0.16.8.1";
-       sha256 = "1ij3jhvavy19jjy6zx1q3jm2zq3n4qjxng653m5rr0rlfmwmanhp";
+       version = "0.16.8.2";
+       sha256 = "03azqd2wxs7p48ixc1zhy65axgaacnndcbxgrv6f026szpllky55";
        libraryHaskellDepends = [
-         base bytestring contravariant profunctors text time vector
+         base bytestring contravariant profunctors strict-list text time
+         vector
        ];
        testHaskellDepends = [
-         QuickCheck quickcheck-instances rerebase tasty tasty-hunit
+         cereal QuickCheck quickcheck-instances rerebase tasty tasty-hunit
          tasty-quickcheck
        ];
-       description = "Abstractions for operations on pointers";
+       benchmarkHaskellDepends = [ cereal gauge rerebase tostring ];
+       description = "Experimental abstractions for operations on pointers";
        license = lib.licenses.mit;
      }) {};
 
@@ -223732,6 +227094,7 @@ self: {
        description = "A CLI assistant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ptk";
      }) {};
 
   "pugixml" = callPackage
@@ -223774,6 +227137,7 @@ self: {
        description = "DrIFT with pugs-specific rules";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pugs-DrIFT";
        broken = true;
      }) {};
 
@@ -223844,7 +227208,7 @@ self: {
        librarySystemDepends = [ libpulseaudio ];
        description = "binding to Simple API of pulseaudio";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {inherit (pkgs) libpulseaudio;};
 
   "pulseaudio" = callPackage
@@ -223913,6 +227277,7 @@ self: {
        description = "A program that displays the puppet resources associated to a node given .pp files.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "puppetresources";
      }) {};
 
   "pure-cdb" = callPackage
@@ -223990,6 +227355,7 @@ self: {
        description = "Tests for the pure-priority-queue package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pure-priority-queue-tests";
      }) {};
 
   "pure-shuffle" = callPackage
@@ -224036,6 +227402,7 @@ self: {
        description = "A Haskell-only implementation of zlib / DEFLATE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "deflate";
        broken = true;
      }) {};
 
@@ -224107,7 +227474,8 @@ self: {
        description = "Nix backend for PureScript. Transpile PureScript code to Nix.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "purenix";
+       maintainers = [ lib.maintainers.cdepillabout ];
        broken = true;
      }) {};
 
@@ -224131,6 +227499,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Simple Routing functions for Wai Applications";
        license = lib.licenses.asl20;
+       mainProgram = "simple-routing-core-exe";
      }) {};
 
   "purescript" = callPackage
@@ -224199,6 +227568,7 @@ self: {
        doCheck = false;
        description = "PureScript Programming Language Compiler";
        license = lib.licenses.bsd3;
+       mainProgram = "purs";
      }) {};
 
   "purescript-ast" = callPackage
@@ -224253,6 +227623,7 @@ self: {
        ];
        description = "A fast alternative to Purescript's `psc-bundle` to be used during development";
        license = lib.licenses.mit;
+       mainProgram = "psc-bundle-fast";
      }) {};
 
   "purescript-cst" = callPackage
@@ -224325,6 +227696,7 @@ self: {
        description = "TypeScript Declaration File (.d.ts) generator for PureScript";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "purs-tsd-gen";
      }) {};
 
   "pursuit-client" = callPackage
@@ -224342,6 +227714,7 @@ self: {
        description = "A cli client for pursuit";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pursuit-search";
      }) {};
 
   "purview" = callPackage
@@ -224435,6 +227808,7 @@ self: {
        description = "Send push notifications to mobile iOS devices";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sendapn";
      }) {};
 
   "push-notify-ccs" = callPackage
@@ -224537,8 +227911,8 @@ self: {
      }:
      mkDerivation {
        pname = "pusher-http-haskell";
-       version = "2.1.0.9";
-       sha256 = "1ipx9xy5wf79pgkmy1669qh8v73ad6ncx7fhqqacmlmhvvphv9vs";
+       version = "2.1.0.10";
+       sha256 = "1xmqs11v8bj099izdqfq6mza4rqm1njznrdcfq4zvwg9381n86hz";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring cryptonite hashable
          http-client http-client-tls http-types memory text time
@@ -224596,6 +227970,7 @@ self: {
        description = "Tool to synchronize directories with rsync, zfs or git-annex";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pushme";
      }) {};
 
   "pushover" = callPackage
@@ -224686,6 +228061,7 @@ self: {
        description = "Creating graphics for pencil puzzles, command line tools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "drawpuzzle";
      }) {};
 
   "pvar" = callPackage
@@ -224747,6 +228123,7 @@ self: {
        testHaskellDepends = [ base cryptonite tasty tasty-quickcheck ];
        description = "Public Verifiable Secret Sharing";
        license = lib.licenses.mit;
+       mainProgram = "pvss-exe";
      }) {};
 
   "pwstore-cli" = callPackage
@@ -224768,6 +228145,7 @@ self: {
        ];
        description = "Command line interface for the pwstore library";
        license = lib.licenses.gpl3Only;
+       mainProgram = "pwstore";
      }) {};
 
   "pwstore-fast" = callPackage
@@ -224812,6 +228190,7 @@ self: {
        executableHaskellDepends = [ base containers mtl parsec ];
        description = "Parsimonious XML Shorthand Language--to-XML compiler";
        license = "GPL";
+       mainProgram = "pxslcc";
      }) {};
 
   "pyffi" = callPackage
@@ -224872,6 +228251,7 @@ self: {
        description = "Serialization/deserialization using Python Pickle format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pickle";
        broken = true;
      }) {};
 
@@ -224924,6 +228304,7 @@ self: {
        testHaskellDepends = [ base hmatrix linear tasty tasty-hunit ];
        description = "A library for implementing Quantum Algorithms";
        license = lib.licenses.bsd3;
+       mainProgram = "qchas-exe";
      }) {};
 
   "qd" = callPackage
@@ -224994,6 +228375,7 @@ self: {
        description = "Command line tool qhs, SQL queries on CSV and TSV files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qhs";
      }) {};
 
   "qhull-simple" = callPackage
@@ -225099,6 +228481,7 @@ self: {
        description = "Decrypt files encrypted by QNAP's Hybrid Backup Sync";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qnap-decrypt";
        broken = true;
      }) {};
 
@@ -225130,6 +228513,7 @@ self: {
        ];
        description = "Pure Haskell QR encoder library and command line tool";
        license = lib.licenses.bsd3;
+       mainProgram = "cqr";
      }) {};
 
   "qr-imager" = callPackage
@@ -225170,6 +228554,7 @@ self: {
        description = "Library to generate QR codes from bytestrings and objects and scale image files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qrpipe";
      }) {};
 
   "qrcode" = callPackage
@@ -225281,6 +228666,7 @@ self: {
        description = "Example programs for Qtah Qt bindings";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qtah-examples";
      }) {};
 
   "qtah-generator" = callPackage
@@ -225301,6 +228687,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Generator for Qtah Qt bindings";
        license = lib.licenses.lgpl3Only;
+       mainProgram = "qtah-generator";
      }) {};
 
   "qtah-qt5" = callPackage
@@ -225407,6 +228794,7 @@ self: {
        description = "Quant finance library in pure Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -225446,6 +228834,7 @@ self: {
        ];
        description = "Unit conversion and manipulation library";
        license = lib.licenses.bsd3;
+       mainProgram = "quantities";
      }) {};
 
   "quantum-arrow" = callPackage
@@ -225482,6 +228871,7 @@ self: {
        description = "Retrieve, store and manage real quantum random data";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qrand";
      }) {};
 
   "quarantimer" = callPackage
@@ -225504,6 +228894,7 @@ self: {
        description = "Coronavirus quarantine timer web app for your things";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quarantimer";
        broken = true;
      }) {};
 
@@ -225524,6 +228915,7 @@ self: {
        description = "Quite Useless DB";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qudb";
        broken = true;
      }) {};
 
@@ -225548,6 +228940,7 @@ self: {
        description = "Quenya verb conjugator";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quenya-verb-server";
        broken = true;
      }) {};
 
@@ -225704,8 +229097,8 @@ self: {
        pname = "queue-sheet";
        version = "0.7.0.2";
        sha256 = "14ih4j09r30p0a75na833jq5ar0wfjm1f7qn6hfyqr4hjyqyfwfk";
-       revision = "1";
-       editedCabalFile = "160z11x6j7qc0lvzyhxii3dfgswfv9chvhm39sxnl78456m19ifd";
+       revision = "2";
+       editedCabalFile = "1kag9n80a1v6hjipyjwihcs8v004xdclhrdi2h7hfpy6a2bdr0pc";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -225719,6 +229112,7 @@ self: {
        description = "queue sheet utility";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "queue-sheet";
      }) {};
 
   "queuelike" = callPackage
@@ -225733,6 +229127,28 @@ self: {
        hydraPlatforms = lib.platforms.none;
      }) {};
 
+  "quibble-core" = callPackage
+    ({ mkDerivation, base, bytestring, containers, hedgehog
+     , mono-traversable, optics-core, tasty, tasty-hedgehog, tasty-hunit
+     , text, text-conversions, time, uuid
+     }:
+     mkDerivation {
+       pname = "quibble-core";
+       version = "0.0.0.1";
+       sha256 = "1dzgha5c827x0gb9fhqa13rz0wkdn0wpxfw3sxnxq8g9rr8myb0g";
+       libraryHaskellDepends = [
+         base bytestring containers mono-traversable optics-core text
+         text-conversions time uuid
+       ];
+       testHaskellDepends = [
+         base hedgehog tasty tasty-hedgehog tasty-hunit
+       ];
+       description = "Convenient SQL query language for Haskell (but only for single tables)";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "quic" = callPackage
     ({ mkDerivation, array, async, base, base16-bytestring, bytestring
      , containers, crypto-token, cryptonite, data-default-class, doctest
@@ -225811,6 +229227,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "quick & easy benchmarking of command-line programs";
        license = "GPL";
+       mainProgram = "quickbench";
      }) {};
 
   "quickbooks" = callPackage
@@ -225961,8 +229378,8 @@ self: {
        pname = "quickcheck-instances";
        version = "0.3.27";
        sha256 = "10vb3rl1ma9x4qdych9vn8gj9kngkqs2b97f4s6s1a908ddxv4m5";
-       revision = "1";
-       editedCabalFile = "1b17ghhhrw9h625q08145pdpw72xmava73d3xb933slza5jms6nz";
+       revision = "2";
+       editedCabalFile = "13g7mf6brxxwp99n5a0pazjq4r3i5ckzq6kflcfaknzl1gxvmnhp";
        libraryHaskellDepends = [
          array base bytestring case-insensitive containers data-fix hashable
          integer-logarithms old-time OneTuple QuickCheck scientific splitmix
@@ -226138,6 +229555,7 @@ self: {
        executableHaskellDepends = [ base directory process QuickCheck ];
        description = "Automated test tool for QuickCheck";
        license = lib.licenses.bsd3;
+       mainProgram = "quickCheck";
      }) {};
 
   "quickcheck-simple" = callPackage
@@ -226355,6 +229773,7 @@ self: {
        description = "Generate Main module with QuickCheck tests";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickpull";
        broken = true;
      }) {};
 
@@ -226434,6 +229853,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "An interface for describing and executing terminal applications";
        license = lib.licenses.gpl3Only;
+       mainProgram = "qt-demo";
      }) {};
 
   "quicktest" = callPackage
@@ -226450,6 +229870,7 @@ self: {
        description = "A reflective batch tester for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quicktest";
      }) {};
 
   "quickwebapp" = callPackage
@@ -226900,6 +230321,7 @@ self: {
        description = "A Quoridor implementation in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quoridor-exec";
        broken = true;
      }) {};
 
@@ -226948,6 +230370,7 @@ self: {
        description = "Command line binary for working with the Qux language";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "qux";
      }) {};
 
   "r-glpk-phonetic-languages-ukrainian-durations" = callPackage
@@ -226971,6 +230394,7 @@ self: {
        description = "Can be used to calculate the durations of the approximations of the Ukrainian phonemes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pldUkr";
      }) {};
 
   "r3x-haskell-sdk" = callPackage
@@ -226997,6 +230421,7 @@ self: {
          http-types mtl regex-pcre text transformers wai warp
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "r3x-haskell-sdk-exe";
      }) {};
 
   "raaz" = callPackage
@@ -227029,6 +230454,7 @@ self: {
        doHaddock = false;
        description = "Fast and type safe cryptography";
        license = "(Apache-2.0 OR BSD-3-Clause)";
+       mainProgram = "raaz";
      }) {};
 
   "rabocsv2qif" = callPackage
@@ -227047,6 +230473,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A library and program to create QIF files from Rabobank CSV exports";
        license = "GPL";
+       mainProgram = "rabocsv2qif";
      }) {};
 
   "rad" = callPackage
@@ -227138,6 +230565,7 @@ self: {
        description = "Command-line tool for emitting numbers in various bases";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "radix";
        broken = true;
      }) {};
 
@@ -227370,6 +230798,7 @@ self: {
        description = "distributed-process node";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "raketka";
      }) {};
 
   "rakhana" = callPackage
@@ -227513,8 +230942,8 @@ self: {
     ({ mkDerivation, base, criterion, hspec }:
      mkDerivation {
        pname = "rampart";
-       version = "2.0.0.0";
-       sha256 = "1hmn6dm5x2n9mn31lwa3dg77plahqmfj0h6s2h3v5y09d7s2fjhv";
+       version = "2.0.0.1";
+       sha256 = "051qiv8jqjrh79drgrdaa72qmsxb4pwizpi576c8pcgpg6ld6ilv";
        libraryHaskellDepends = [ base ];
        testHaskellDepends = [ base hspec ];
        benchmarkHaskellDepends = [ base criterion ];
@@ -227566,6 +230995,7 @@ self: {
        description = "Program for picking a random file";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "randfile";
        broken = true;
      }) {};
 
@@ -227858,6 +231288,7 @@ self: {
        testHaskellDepends = [ base containers mtl QuickCheck ];
        description = "Generate random strings with specific qualities";
        license = lib.licenses.bsd3;
+       mainProgram = "readme-example";
      }) {};
 
   "random-tree" = callPackage
@@ -227894,6 +231325,7 @@ self: {
        testHaskellDepends = [ base directory HUnit random ];
        description = "\"Uniform RNG => Non-Uniform RNGs\"";
        license = lib.licenses.mit;
+       mainProgram = "Gen";
      }) {};
 
   "randomgen" = callPackage
@@ -227912,6 +231344,7 @@ self: {
        executableSystemDepends = [ openssl ];
        description = "A fast, SMP parallel random data generator";
        license = lib.licenses.bsd3;
+       mainProgram = "randomgen";
      }) {inherit (pkgs) openssl;};
 
   "randproc" = callPackage
@@ -227936,6 +231369,7 @@ self: {
        executableHaskellDepends = [ base random X11 ];
        description = "Set the background of your root window to a random colour";
        license = lib.licenses.publicDomain;
+       mainProgram = "randsolid";
      }) {};
 
   "range" = callPackage
@@ -228049,6 +231483,7 @@ self: {
        description = "Find the rank product of a data set";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rank-product";
        broken = true;
      }) {};
 
@@ -228168,6 +231603,7 @@ self: {
        description = "Example user config for Rasa";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rasa";
      }) {};
 
   "rasa-ext-bufs" = callPackage
@@ -228349,6 +231785,7 @@ self: {
        description = "A command-line client for Reddit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rascal";
      }) {};
 
   "rasterific-svg" = callPackage
@@ -228376,6 +231813,7 @@ self: {
        ];
        description = "SVG renderer based on Rasterific";
        license = lib.licenses.bsd3;
+       mainProgram = "svgrender";
      }) {};
 
   "rate-limit" = callPackage
@@ -228396,8 +231834,8 @@ self: {
      }:
      mkDerivation {
        pname = "ratel";
-       version = "2.0.0.0";
-       sha256 = "02pkc0mkzxvv07kzwsrxp1hlgb5gypxc7phsv85k9kr6vvkh58jf";
+       version = "2.0.0.3";
+       sha256 = "1bgag2z55pmxnyng5nzplqcyd6zkqswhkaj4qmd7mnbsk5jqhf01";
        libraryHaskellDepends = [
          aeson base bytestring case-insensitive containers http-client
          http-client-tls http-types uuid
@@ -228566,17 +232004,18 @@ self: {
        description = "Parse and generate Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rattletrap";
        broken = true;
      }) {};
 
-  "rattletrap_11_2_10" = callPackage
+  "rattletrap_11_2_11" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base, bytestring
      , containers, filepath, http-client, http-client-tls, text
      }:
      mkDerivation {
        pname = "rattletrap";
-       version = "11.2.10";
-       sha256 = "1iy0nkqpnwhscs98b277q6ykk7mph5a5ah8gqf4dxz58q7lwk47z";
+       version = "11.2.11";
+       sha256 = "004lhyi5v34124990j1m8mhcb1inn6313lp4db9yd3p82c7k928n";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -228588,6 +232027,7 @@ self: {
        description = "Parse and generate Rocket League replays";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rattletrap";
        broken = true;
      }) {};
 
@@ -228826,6 +232266,7 @@ self: {
        description = "Reservoir Computing, fast RNNs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ntc";
      }) {};
 
   "rclient" = callPackage
@@ -228916,6 +232357,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion deepseq text ];
        description = "A library for RDF processing in Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "rdf4h";
      }) {};
 
   "rdioh" = callPackage
@@ -229043,6 +232485,7 @@ self: {
        description = "react-tutorial web server";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "server";
        broken = true;
      }) {};
 
@@ -229059,6 +232502,7 @@ self: {
        description = "pluggable pure logic serializable reactor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reaction-logic-test";
        broken = true;
      }) {};
 
@@ -229112,9 +232556,7 @@ self: {
        ];
        description = "Programmatically edit MIDI events via ALSA and reactive-banana";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -229371,6 +232813,7 @@ self: {
        description = "Reactive programming via imperative threads";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-sdl";
        broken = true;
      }) {};
 
@@ -229389,7 +232832,7 @@ self: {
        ];
        description = "An alternate implementation of push-pull FRP";
        license = "GPL";
-       platforms = lib.platforms.none;
+       platforms = lib.platforms.windows;
      }) {};
 
   "reactor" = callPackage
@@ -229443,6 +232886,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "read-ctags";
        broken = true;
      }) {};
 
@@ -229504,6 +232948,7 @@ self: {
        description = "Extracts text of main article from HTML document";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readability";
        broken = true;
      }) {};
 
@@ -229581,6 +233026,7 @@ self: {
        description = "Readline effect for in-other-words";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "echo-repl";
      }) {};
 
   "readline-statevar" = callPackage
@@ -229616,6 +233062,7 @@ self: {
        description = "Literate programming support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme-lhs-example";
        broken = true;
      }) {};
 
@@ -229631,6 +233078,7 @@ self: {
        description = "Read and pretty print Python bytecode (.pyc) files.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readpyc";
      }) {};
 
   "readshp" = callPackage
@@ -229828,6 +233276,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "rebase_1_16" = callPackage
+    ({ mkDerivation, base, bifunctors, bytestring, comonad, containers
+     , contravariant, deepseq, dlist, either, groups, hashable
+     , invariant, mtl, profunctors, scientific, selective, semigroupoids
+     , stm, text, time, time-compat, transformers, unordered-containers
+     , uuid-types, vector, vector-instances, void
+     }:
+     mkDerivation {
+       pname = "rebase";
+       version = "1.16";
+       sha256 = "0r5dmkw1bb3fkc40gjdcswf7388c8w7lzvzh7wvf7vk4lhxjaxhd";
+       revision = "1";
+       editedCabalFile = "048h2ir37j09s0z7fb364p7smyhzq6h4705qklhvylak9242gz2n";
+       libraryHaskellDepends = [
+         base bifunctors bytestring comonad containers contravariant deepseq
+         dlist either groups hashable invariant mtl profunctors scientific
+         selective semigroupoids stm text time time-compat transformers
+         unordered-containers uuid-types vector vector-instances void
+       ];
+       description = "A more progressive alternative to the \"base\" package";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "rebindable" = callPackage
     ({ mkDerivation, base, data-default-class, indexed }:
      mkDerivation {
@@ -229928,6 +233400,7 @@ self: {
        testHaskellDepends = [ base extra filepath record-hasfield ];
        description = "Preprocessor to allow record.field syntax";
        license = lib.licenses.bsd3;
+       mainProgram = "record-dot-preprocessor";
      }) {};
 
   "record-encode" = callPackage
@@ -229984,6 +233457,21 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "record-impl" = callPackage
+    ({ mkDerivation, base, containers, lens, template-haskell, time }:
+     mkDerivation {
+       pname = "record-impl";
+       version = "0.0.0.1";
+       sha256 = "0rbbd3bbkjs5ljda6vnilqjvm0682kxh2pv3lyagy1iq5n717bk6";
+       libraryHaskellDepends = [
+         base containers lens template-haskell time
+       ];
+       testHaskellDepends = [ base time ];
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       broken = true;
+     }) {};
+
   "record-operations" = callPackage
     ({ mkDerivation, base }:
      mkDerivation {
@@ -230013,6 +233501,7 @@ self: {
        description = "Compiler preprocessor introducing a syntactic extension for anonymous records";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "record-preprocessor";
      }) {};
 
   "record-syntax" = callPackage
@@ -230205,6 +233694,7 @@ self: {
        ];
        description = "Count lines in files and display them hierarchically";
        license = lib.licenses.bsd3;
+       mainProgram = "recursive-line-count";
      }) {};
 
   "recursive-zipper" = callPackage
@@ -230307,6 +233797,7 @@ self: {
        ];
        description = "hide secret text on the terminal";
        license = lib.licenses.mit;
+       mainProgram = "redact";
      }) {};
 
   "reddit" = callPackage
@@ -230503,6 +233994,7 @@ self: {
        ];
        description = "software build system, make replacement, implementation of djb's redo";
        license = lib.licenses.publicDomain;
+       mainProgram = "redo";
      }) {};
 
   "reduce-equations" = callPackage
@@ -230529,6 +234021,7 @@ self: {
        description = "Simplify a set of equations by removing redundancies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reduce-equations";
      }) {};
 
   "reducers" = callPackage
@@ -230752,6 +234245,7 @@ self: {
        description = "A command-line tool for pasting to https://www.refheap.com";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "refh";
      }) {};
 
   "refined" = callPackage
@@ -230873,8 +234367,8 @@ self: {
        pname = "reflex";
        version = "0.8.2.0";
        sha256 = "1hvagxcs413bqairxf77vp19484mxnbfckhd44wv22ncwfh5mq6d";
-       revision = "1";
-       editedCabalFile = "194c0y2asv8z64hxs6cppjrg0m1r3ipp9565aj6dac63dqf8j29l";
+       revision = "2";
+       editedCabalFile = "1msjk8bk59dv1pm90l2hxkrl185aj4xblzgc7nkwn7x31ykcnhyw";
        libraryHaskellDepends = [
          base bifunctors comonad constraints constraints-extras containers
          data-default dependent-map dependent-sum exception-transformers
@@ -230955,6 +234449,7 @@ self: {
        description = "Reflex interface to `wai`";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "reflex-basic-host" = callPackage
@@ -230996,8 +234491,8 @@ self: {
        ];
        description = "Functional Reactive Web Apps with Reflex";
        license = lib.licenses.bsd3;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ maralorn ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "reflex-dom-ace" = callPackage
@@ -231112,8 +234607,9 @@ self: {
        executableHaskellDepends = [ base reflex-dom text ];
        description = "A reflex-dom widget to draw on a canvas with a fragment shader program";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo";
        broken = true;
      }) {};
 
@@ -231224,16 +234720,16 @@ self: {
 
   "reflex-dom-th" = callPackage
     ({ mkDerivation, array, base, bytestring, containers, filepath
-     , hspec, megaparsec, reflex-dom-core, stm, tasty, tasty-golden
+     , hspec, megaparsec, mtl, reflex-dom-core, stm, tasty, tasty-golden
      , tasty-hspec, template-haskell, text, th-lift-instances
      }:
      mkDerivation {
        pname = "reflex-dom-th";
-       version = "0.3.0.1";
-       sha256 = "1dpzsgix1ldv7n8z8k4pbs3awjzyhyizrd047kx005kz2b1q1ban";
+       version = "0.3.2";
+       sha256 = "1n8qad7pf63mfsip1mgzqc6a15svaxba3cpl65m7993hfwpx3biq";
        libraryHaskellDepends = [
-         array base containers megaparsec reflex-dom-core template-haskell
-         text th-lift-instances
+         array base containers megaparsec mtl reflex-dom-core
+         template-haskell text th-lift-instances
        ];
        testHaskellDepends = [
          base bytestring filepath hspec megaparsec stm tasty tasty-golden
@@ -231323,6 +234819,7 @@ self: {
        description = "Interact with a GADT API in your reflex-dom application";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
        broken = true;
      }) {};
 
@@ -231352,6 +234849,7 @@ self: {
        description = "A GHCi widget library for use in reflex applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-ghci";
      }) {};
 
   "reflex-gi-gtk" = callPackage
@@ -231380,6 +234878,7 @@ self: {
        description = "Helper functions to use reflex with gi-gtk";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-gi-gtk-example";
        broken = true;
      }) {};
 
@@ -231495,7 +234994,7 @@ self: {
        ];
        description = "Helper widgets for reflex-localize";
        license = lib.licenses.mit;
-       platforms = [ "armv7l-linux" "i686-linux" "x86_64-linux" ];
+       badPlatforms = [ "aarch64-linux" ] ++ lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
      }) {};
 
@@ -231557,6 +235056,7 @@ self: {
        description = "Reflex FRP interface for running system processes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "readme";
      }) {};
 
   "reflex-sdl2" = callPackage
@@ -231577,6 +235077,7 @@ self: {
        description = "SDL2 and reflex FRP";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reflex-sdl2-exe";
        broken = true;
      }) {};
 
@@ -231643,6 +235144,7 @@ self: {
        description = "Reflex FRP host and widgets for VTY applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -231889,6 +235391,26 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "regex_1_1_0_2" = callPackage
+    ({ mkDerivation, array, base, base-compat, bytestring, containers
+     , hashable, regex-base, regex-pcre-builtin, regex-tdfa
+     , template-haskell, text, time, time-locale-compat, transformers
+     , unordered-containers, utf8-string
+     }:
+     mkDerivation {
+       pname = "regex";
+       version = "1.1.0.2";
+       sha256 = "1nzyfkqmclmawmphvksvm9l64awqgnypic4xplc2s9sjcj4h814a";
+       libraryHaskellDepends = [
+         array base base-compat bytestring containers hashable regex-base
+         regex-pcre-builtin regex-tdfa template-haskell text time
+         time-locale-compat transformers unordered-containers utf8-string
+       ];
+       description = "Toolkit for regex-base";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "regex-applicative" = callPackage
     ({ mkDerivation, attoparsec, base, bytestring, containers
      , criterion, deepseq, filtrable, megaparsec, parsec, parsers
@@ -232041,8 +235563,8 @@ self: {
      }:
      mkDerivation {
        pname = "regex-examples";
-       version = "1.1.0.1";
-       sha256 = "1x8611bnvzj8pcc2g934gif4m6sssi08rxyqamn1b2i28ixzfh0c";
+       version = "1.1.0.2";
+       sha256 = "1m0z6xjm26fh0zhbkv2ajy5vjb86hawbdn8q6qwd0sydrjy1879b";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
@@ -232102,6 +235624,7 @@ self: {
        description = "From a regex, generate all possible strings it can match";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "genex";
      }) {};
 
   "regex-parsec" = callPackage
@@ -232231,6 +235754,7 @@ self: {
        description = "Unit tests for the plaform's Posix regex library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "regex-posix-unittest";
        broken = true;
      }) {};
 
@@ -232248,7 +235772,7 @@ self: {
        description = "Bindings to Rust's regex library";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
        broken = true;
      }) {inherit (pkgs) rure;};
 
@@ -232354,6 +235878,7 @@ self: {
        description = "Unit tests for the regex-tdfa";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "regex-tdfa-unittest";
        broken = true;
      }) {};
 
@@ -232423,6 +235948,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "regex-with-pcre_1_1_0_2" = callPackage
+    ({ mkDerivation, base, base-compat, bytestring, containers, regex
+     , regex-base, regex-pcre-builtin, regex-tdfa, template-haskell
+     , text, transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "regex-with-pcre";
+       version = "1.1.0.2";
+       sha256 = "00x90kj8xc9pnnzryx45rnvfh0psya6kc174y7zx43jgvbz29icy";
+       libraryHaskellDepends = [
+         base base-compat bytestring containers regex regex-base
+         regex-pcre-builtin regex-tdfa template-haskell text transformers
+         unordered-containers
+       ];
+       description = "Toolkit for regex-base";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "regex-wrapper" = callPackage
     ({ mkDerivation, aeson, base, bytestring, containers, hashable
      , regex-tdfa, string-conv, text
@@ -232477,6 +236021,7 @@ self: {
        description = "A POSIX, extended regex-engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "grecce";
      }) {};
 
   "regexdot" = callPackage
@@ -232650,8 +236195,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry";
-       version = "0.3.0.5";
-       sha256 = "0q2dk0hyq6rdnvvldic4xzp0c28ky5jv7p994qhfbra8a1qkr08z";
+       version = "0.3.0.8";
+       sha256 = "1mz8ahbivaj8a9hsi5m8shwmdz5hqq2fw1m0z7m2kpinnj1p3pbf";
        libraryHaskellDepends = [
          base containers exceptions hashable mmorph mtl protolude resourcet
          semigroupoids semigroups template-haskell text transformers-base
@@ -232670,6 +236215,29 @@ self: {
        broken = true;
      }) {};
 
+  "registry-aeson" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, hedgehog
+     , protolude, registry, registry-hedgehog, tasty, template-haskell
+     , text, time, transformers, unordered-containers, vector
+     }:
+     mkDerivation {
+       pname = "registry-aeson";
+       version = "0.2.1.0";
+       sha256 = "09zb32gnfq7fm98vrhp4gzlsx5ghwd34lbvqayzy4sd9msz7y048";
+       libraryHaskellDepends = [
+         aeson base bytestring containers protolude registry
+         template-haskell text transformers unordered-containers vector
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers hedgehog protolude registry
+         registry-hedgehog tasty template-haskell text time transformers
+         unordered-containers vector
+       ];
+       description = "Aeson encoders / decoders";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "registry-hedgehog" = callPackage
     ({ mkDerivation, base, containers, hedgehog, mmorph, multimap
      , protolude, registry, tasty, tasty-discover, tasty-hedgehog
@@ -232678,8 +236246,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry-hedgehog";
-       version = "0.7.0.0";
-       sha256 = "00k2qsiavi3l5ksgd9xh05lachvhhm7vp7z0cmsy6y5saz5l44hh";
+       version = "0.7.0.2";
+       sha256 = "1vjvpszac038lyjix9mbfixfid224incb3y97s2dhqjirb8dzzbf";
        libraryHaskellDepends = [
          base containers hedgehog mmorph multimap protolude registry tasty
          tasty-discover tasty-hedgehog tasty-th template-haskell text
@@ -232731,8 +236299,8 @@ self: {
      }:
      mkDerivation {
        pname = "registry-messagepack";
-       version = "0.3.0.0";
-       sha256 = "0fwzbxflrkmg4hj9gydpkfnrj2ah10ln4rrm2qp96z1r7wpscvps";
+       version = "0.3.0.1";
+       sha256 = "00h4ics8gavvscp3sjp1j0vyhqj90zi7pmxqhrlzja0fnmhb1brj";
        libraryHaskellDepends = [
          base containers msgpack protolude registry template-haskell text
          transformers vector
@@ -232838,6 +236406,7 @@ self: {
        description = "to make notes and reduce impact on idle time on writing other programms";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reheat";
      }) {};
 
   "rehoo" = callPackage
@@ -232856,6 +236425,7 @@ self: {
        description = "Rebuild default.hoo from many .hoo files in the current directory";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rehoo";
        broken = true;
      }) {};
 
@@ -232875,6 +236445,7 @@ self: {
        description = "Process lists easily";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rei";
        broken = true;
      }) {};
 
@@ -232905,6 +236476,7 @@ self: {
        description = "Serialize data";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reify";
        broken = true;
      }) {};
 
@@ -232947,7 +236519,7 @@ self: {
        ];
        description = "Hey! Hey! Can u rel8?";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "relacion" = callPackage
@@ -233189,7 +236761,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automation of Haskell package release process";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "releaser";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "relevant-time" = callPackage
@@ -233263,6 +236836,7 @@ self: {
        description = "A web based Haskell IDE";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reload-exe";
      }) {};
 
   "reloto" = callPackage
@@ -233324,6 +236898,30 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "relude_1_1_0_0" = callPackage
+    ({ mkDerivation, base, bytestring, containers, deepseq, doctest
+     , ghc-prim, Glob, hashable, hedgehog, mtl, stm, tasty-bench, text
+     , transformers, unordered-containers
+     }:
+     mkDerivation {
+       pname = "relude";
+       version = "1.1.0.0";
+       sha256 = "02dn99v2qmykj0l1qmn15k36hyxccy71b7iqavfk24zgjf5g07dm";
+       libraryHaskellDepends = [
+         base bytestring containers deepseq ghc-prim hashable mtl stm text
+         transformers unordered-containers
+       ];
+       testHaskellDepends = [
+         base bytestring containers doctest Glob hedgehog text
+       ];
+       benchmarkHaskellDepends = [
+         base tasty-bench unordered-containers
+       ];
+       description = "Safe, performant, user-friendly and lightweight Haskell Standard Library";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "remark" = callPackage
     ({ mkDerivation, base, GenericPretty, tasty, tasty-golden
      , tasty-hunit
@@ -233342,6 +236940,7 @@ self: {
        description = "A DSL for marking student work";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remark";
        broken = true;
      }) {};
 
@@ -233365,6 +236964,7 @@ self: {
        description = "A DSL for marking student work";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remarks";
        broken = true;
      }) {};
 
@@ -233425,6 +237025,7 @@ self: {
        description = "Interface to ghci debugger";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "remote-debugger";
        broken = true;
      }) {};
 
@@ -233900,6 +237501,7 @@ self: {
        description = "Provides high-level access to webcams";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "repl" = callPackage
@@ -233966,7 +237568,7 @@ self: {
        testHaskellDepends = [ base bytestring Cabal megaparsec text ];
        description = "Find, replace, and split string patterns with Megaparsec parsers (instead of regex)";
        license = lib.licenses.bsd2;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "replica" = callPackage
@@ -234017,6 +237619,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "replicant";
      }) {};
 
   "repline" = callPackage
@@ -234062,6 +237665,7 @@ self: {
        description = "Blogging module using blaze html for markup";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rbb";
      }) {};
 
   "repr" = callPackage
@@ -234204,7 +237808,7 @@ self: {
        doCheck = false;
        description = "HTTP client library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "req_3_12_0" = callPackage
@@ -234219,6 +237823,8 @@ self: {
        pname = "req";
        version = "3.12.0";
        sha256 = "1gwdqmqmj3acim5r8c4sjzcvr3hvlbcjwkrpcsvq95ckr1wmzpqp";
+       revision = "1";
+       editedCabalFile = "0f3d1y1ymgrdbf84p4pgpbsn5772vc5lrjmj7wgf7baqw03kq8wy";
        enableSeparateDataOutput = true;
        libraryHaskellDepends = [
          aeson authenticate-oauth base blaze-builder bytestring
@@ -234237,7 +237843,7 @@ self: {
        description = "HTTP client library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "req-conduit" = callPackage
@@ -234285,6 +237891,7 @@ self: {
        testHaskellDepends = [ base hspec ];
        description = "Provides OAuth2 authentication for use with Req";
        license = lib.licenses.mit;
+       mainProgram = "req-oauth2-app";
      }) {};
 
   "req-url-extra" = callPackage
@@ -234301,6 +237908,7 @@ self: {
        description = "Provides URI/URL helper functions for use with Req";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -234508,6 +238116,7 @@ self: {
        ];
        description = "Reserve reloads web applications";
        license = lib.licenses.mit;
+       mainProgram = "reserve";
      }) {};
 
   "reservoir" = callPackage
@@ -234546,6 +238155,7 @@ self: {
        executableHaskellDepends = [ base comfort-array lapack ];
        description = "Compute total resistance of a cube of resistors";
        license = lib.licenses.bsd3;
+       mainProgram = "resistor-cube";
      }) {};
 
   "resolv_0_1_1_2" = callPackage
@@ -234623,6 +238233,7 @@ self: {
        description = "Remove trivial conflict markers in a git repository";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "resolve-trivial-conflicts";
        broken = true;
      }) {};
 
@@ -234658,6 +238269,7 @@ self: {
        description = "Embed data files via C and FFI";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "resource-embed";
        broken = true;
      }) {};
 
@@ -234677,12 +238289,12 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "resource-pool_0_3_0_0" = callPackage
+  "resource-pool_0_3_1_0" = callPackage
     ({ mkDerivation, base, primitive, time }:
      mkDerivation {
        pname = "resource-pool";
-       version = "0.3.0.0";
-       sha256 = "04g2hwjd8w5nwxlfkj33rv11n78bb1knr5fwy4l19gsg1nm9j39v";
+       version = "0.3.1.0";
+       sha256 = "0klcyl0x15a0h73sn6176ma87cgb4n8g2szz54b5xzr60pws057y";
        libraryHaskellDepends = [ base primitive time ];
        description = "A high-performance striped resource pooling implementation";
        license = lib.licenses.bsd3;
@@ -234808,6 +238420,7 @@ self: {
        description = "process and route HTTP requests and generate responses on top of WAI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -234882,6 +238495,7 @@ self: {
        description = "Example project for rest";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rest-example-gen";
      }) {};
 
   "rest-gen" = callPackage
@@ -234936,8 +238550,8 @@ self: {
      }:
      mkDerivation {
        pname = "rest-rewrite";
-       version = "0.3.0";
-       sha256 = "1j4ja0fv0jgjxbi4yz06pgplw57vfi5d7h8swc0ip2cnkzsi4zjs";
+       version = "0.4.0";
+       sha256 = "0vvb4jk0s699h4dcdls1yxzyaja1gwpqdchfy5wbg0fybfw94pr5";
        libraryHaskellDepends = [
          base containers hashable monad-loops mtl parsec process QuickCheck
          text time unordered-containers
@@ -235111,6 +238725,7 @@ self: {
        description = "Convert between camel case and separated words style";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "restyle";
        broken = true;
      }) {};
 
@@ -235368,6 +238983,7 @@ self: {
        description = "Retry failed commands";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "retryer";
        broken = true;
      }) {};
 
@@ -235377,8 +238993,8 @@ self: {
        pname = "rev-state";
        version = "0.1.2";
        sha256 = "06gry2ysvdg5q0b86gr8i86xsbxw2yrnld9g7rcp7mppswwhw1zf";
-       revision = "2";
-       editedCabalFile = "0dfiwf4808vjhayv7xr058rzwl6jmsmhzy03mk48m9kmlqibk3fy";
+       revision = "3";
+       editedCabalFile = "1w2kry4a801l6acimz3b82f3666fx62zzw5q9si1ahlf3mrkr7hk";
        libraryHaskellDepends = [ base mtl ];
        testHaskellDepends = [ base ];
        description = "Reverse State monad transformer";
@@ -235396,6 +239012,7 @@ self: {
        executableHaskellDepends = [ base old-time ];
        description = "A French revolutionary decimal time (metric) clock";
        license = "GPL";
+       mainProgram = "revdectime";
      }) {};
 
   "reverse-apply" = callPackage
@@ -235460,6 +239077,7 @@ self: {
        description = "Text-only reversi (aka othelo) game";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "reversi";
        broken = true;
      }) {};
 
@@ -235477,6 +239095,7 @@ self: {
        description = "open file and rewrite it with new contents";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rewrite";
      }) {};
 
   "rewrite-inspector" = callPackage
@@ -235546,6 +239165,7 @@ self: {
        description = "Github resume generator";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rezoom";
      }) {};
 
   "rfc" = callPackage
@@ -235801,6 +239421,7 @@ self: {
        description = "Bugzilla query tool";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rhbzquery";
        broken = true;
      }) {};
 
@@ -235819,7 +239440,7 @@ self: {
        ];
        description = "Functional Reactive Programming with type-level clocks";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "rhine-gloss" = callPackage
@@ -235834,7 +239455,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Gloss backend for Rhine";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       mainProgram = "rhine-gloss-gears";
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "rhythm-game-tutorial" = callPackage
@@ -235921,6 +239543,7 @@ self: {
        description = "Lenses for riak-protobuf";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "generate";
        broken = true;
      }) {};
 
@@ -236113,8 +239736,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley";
-       version = "0.3.3.0";
-       sha256 = "060nnwhrpk77d97plg2wz9yk8q8adl5b7wj159mdq249jsx7hw24";
+       version = "0.3.3.1";
+       sha256 = "16kdsnh22s85xpqycbkjdw35vc1qwg6jl8mxlwgcy5053984amzj";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -236141,8 +239764,8 @@ self: {
      }:
      mkDerivation {
        pname = "ridley-extras";
-       version = "0.1.2.0";
-       sha256 = "086wsj7xsxk8wzj2f6hc7qhklf3mm3swanhddhjvwj0fnnw5fha4";
+       version = "0.1.3.0";
+       sha256 = "0afzwmd5arvxdsjcz2kwfr715ayn5dlz2mk9wh01wq92z3d5gd04";
        libraryHaskellDepends = [
          base ekg-prometheus-adapter microlens mtl prometheus ridley shelly
          text transformers
@@ -236181,6 +239804,7 @@ self: {
        description = "A Riemann client for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "riemann-client";
        broken = true;
      }) {};
 
@@ -236312,6 +239936,7 @@ self: {
        executableHaskellDepends = [ base optparse-simple resourcet rio ];
        description = "Generic App type for rio";
        license = lib.licenses.bsd3;
+       mainProgram = "rio-app-example";
      }) {};
 
   "rio-orphans" = callPackage
@@ -236383,6 +240008,7 @@ self: {
        description = "A library for process pools coupled with asynchronous message queues";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rio-process-pool-memleak-test";
      }) {};
 
   "riot" = callPackage
@@ -236403,6 +240029,7 @@ self: {
        description = "Riot is an Information Organisation Tool";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "riot";
      }) {inherit (pkgs) ncurses;};
 
   "ripple" = callPackage
@@ -236476,6 +240103,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Reduced instruction set i386 simulator";
        license = lib.licenses.bsd3;
+       mainProgram = "risc386";
      }) {};
 
   "riscv-isa" = callPackage
@@ -236541,6 +240169,7 @@ self: {
        description = "A project management tool for Haskell applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rivet";
      }) {};
 
   "rivet-adaptor-postgresql" = callPackage
@@ -236565,6 +240194,7 @@ self: {
        executableHaskellDepends = [ base directory filepath ];
        description = "Database migration library; automatic importer";
        license = lib.licenses.bsd3;
+       mainProgram = "rivet-autoimporter";
      }) {};
 
   "rivet-core" = callPackage
@@ -236629,6 +240259,7 @@ self: {
        description = "Collection of Reinforcement Learning algorithms";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -236711,6 +240342,7 @@ self: {
        description = "Ring-LWE/LWR challenges using Lol";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rlwe-challenges";
      }) {};
 
   "rmonad" = callPackage
@@ -236796,6 +240428,7 @@ self: {
        description = "Simple projects generator";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rob";
      }) {};
 
   "robin" = callPackage
@@ -236816,6 +240449,7 @@ self: {
        description = "A build daemon for Haskell development";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "robin";
        broken = true;
      }) {};
 
@@ -236907,6 +240541,7 @@ self: {
        description = "Gloss interactive demo for roc-cluster package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roc-cluster-demo";
      }) {};
 
   "roc-id" = callPackage
@@ -237030,6 +240665,7 @@ self: {
        ];
        description = "Sci-fi roguelike game. Client application.";
        license = "unknown";
+       mainProgram = "roguestar";
      }) {};
 
   "roguestar-engine" = callPackage
@@ -237051,6 +240687,7 @@ self: {
        description = "Sci-fi roguelike game. Backend.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roguestar-engine";
      }) {};
 
   "roguestar-gl" = callPackage
@@ -237083,6 +240720,7 @@ self: {
        description = "Sci-fi roguelike game. GLUT front-end.";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roguestar-glut";
      }) {};
 
   "roku-api" = callPackage
@@ -237146,6 +240784,7 @@ self: {
        description = "Simple CLI tool to perform commons tasks such as tracking deploys";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rollbar";
      }) {};
 
   "rollbar-client" = callPackage
@@ -237263,6 +240902,7 @@ self: {
        description = "Playing with applicatives and dice!";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roller";
        broken = true;
      }) {};
 
@@ -237442,24 +241082,23 @@ self: {
      }) {};
 
   "rosa" = callPackage
-    ({ mkDerivation, aeson, base, bytestring, directory, lens
-     , namecoin-update, optparse-applicative, text, unordered-containers
-     , uri-encode, vector, wreq
+    ({ mkDerivation, aeson, base, bytestring, directory
+     , namecoin-update, optparse-applicative, text, uri-encode, vector
      }:
      mkDerivation {
        pname = "rosa";
-       version = "0.5.0.1";
-       sha256 = "1nk56nm6gcrcgi2i3x683i0ygbl8x5qc3xqhq14n2s5l45fmgw10";
+       version = "0.6.0.0";
+       sha256 = "1mbyl36pw9l6rjjz79b0fnnbhjnyf4s1pmw9frq95znrvsfasd1n";
        isLibrary = false;
        isExecutable = true;
        executableHaskellDepends = [
-         aeson base bytestring directory lens namecoin-update
-         optparse-applicative text unordered-containers uri-encode vector
-         wreq
+         aeson base bytestring directory namecoin-update
+         optparse-applicative text uri-encode vector
        ];
        description = "Query the namecoin blockchain";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rosa";
      }) {};
 
   "rose" = callPackage
@@ -237581,6 +241220,7 @@ self: {
        description = "Haskell support for the ROS robotics framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "roshask";
      }) {};
 
   "rosmsg" = callPackage
@@ -237638,6 +241278,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "ROS package system information";
        license = lib.licenses.bsd3;
+       mainProgram = "rospkg";
      }) {};
 
   "rosso" = callPackage
@@ -237846,6 +241487,7 @@ self: {
        description = "Utility to generate routes for use with yesod-routes";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "routeGenerator";
      }) {};
 
   "route-planning" = callPackage
@@ -237993,6 +241635,7 @@ self: {
        ];
        description = "Random projection trees";
        license = lib.licenses.bsd3;
+       mainProgram = "rp-tree";
      }) {};
 
   "rpc" = callPackage
@@ -238029,6 +241672,7 @@ self: {
        description = "a remote procedure call framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpc-test";
        broken = true;
      }) {};
 
@@ -238050,6 +241694,7 @@ self: {
        description = "Receiver Policy Framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpf";
      }) {};
 
   "rpm" = callPackage
@@ -238080,41 +241725,14 @@ self: {
      }) {};
 
   "rpmbuild-order" = callPackage
-    ({ mkDerivation, base, case-insensitive, containers, directory
-     , extra, fgl, filepath, graphviz, hspec, optparse-applicative
-     , process, simple-cmd, simple-cmd-args, unix
-     }:
-     mkDerivation {
-       pname = "rpmbuild-order";
-       version = "0.4.5";
-       sha256 = "1lz6w2nd8yq0arfpp6vnv7lazr9289wan00b6layfdhlql9f21vl";
-       revision = "1";
-       editedCabalFile = "05arkmpbh5fdqbqhkwl76isbigrsc0f54zkbdl21jap6k4g9kzsk";
-       isLibrary = true;
-       isExecutable = true;
-       libraryHaskellDepends = [
-         base case-insensitive containers directory extra fgl filepath
-         graphviz process
-       ];
-       executableHaskellDepends = [
-         base directory extra fgl optparse-applicative simple-cmd-args
-       ];
-       testHaskellDepends = [ base extra hspec simple-cmd unix ];
-       description = "Sort RPM packages in dependency order";
-       license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
-     }) {};
-
-  "rpmbuild-order_0_4_7" = callPackage
     ({ mkDerivation, base, case-insensitive, directory, extra, fgl
      , filepath, graphviz, hspec, optparse-applicative, simple-cmd
      , simple-cmd-args, unix
      }:
      mkDerivation {
        pname = "rpmbuild-order";
-       version = "0.4.7";
-       sha256 = "10qwndr8hxvgy386jy4zxkjsw4cj79fr9rh6qivivx6y0q2d2jnr";
+       version = "0.4.8";
+       sha256 = "16mzvgx4az9wjy4va85hprj2mqiw1mmc6pw8xjdfv8vxsw17kb16";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -238128,6 +241746,7 @@ self: {
        description = "Sort RPM packages in dependency order";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rpmbuild-order";
        broken = true;
      }) {};
 
@@ -238311,6 +241930,7 @@ self: {
        description = "watches an RSS/Atom feed and writes it to an IRC channel";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rss2irc";
        broken = true;
      }) {};
 
@@ -238378,9 +241998,7 @@ self: {
        libraryToolDepends = [ c2hs ];
        description = "Bindings to librtlsdr";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) rtl-sdr;};
 
   "rtnetlink" = callPackage
@@ -238481,9 +242099,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Binding to the C++ audio stretching library Rubber Band";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) rubberband;};
 
   "ruby-marshal" = callPackage
@@ -238578,6 +242194,7 @@ self: {
        description = "Ruler tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ruler";
      }) {};
 
   "ruler-core" = callPackage
@@ -238596,6 +242213,7 @@ self: {
        ];
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ruler-core";
      }) {};
 
   "run-haskell-module" = callPackage
@@ -238660,6 +242278,7 @@ self: {
        ];
        description = "runghc replacement for fast repeated runs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "runghc";
      }) {};
 
   "runhs" = callPackage
@@ -238680,6 +242299,7 @@ self: {
        description = "Stack wrapper for single-file Haskell programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runhs";
        broken = true;
      }) {};
 
@@ -238699,6 +242319,7 @@ self: {
        description = "Run multiple commands, interleaving output and errors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "runmany";
        broken = true;
      }) {};
 
@@ -238788,6 +242409,7 @@ self: {
        description = "Packet Generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "rws";
        broken = true;
      }) {};
 
@@ -238808,6 +242430,7 @@ self: {
        description = "Pipe interface for Rizin";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -238851,6 +242474,7 @@ self: {
        description = "simple general-purpose s-expressions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-s-expressions";
      }) {};
 
   "s3-signer" = callPackage
@@ -238960,7 +242584,6 @@ self: {
        ];
        testToolDepends = [ sydtest-discover ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "safe-coloured-text-layout" = callPackage
@@ -238978,7 +242601,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "Safely layout output coloured text";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "safe-coloured-text-layout-gen" = callPackage
@@ -238999,7 +242621,6 @@ self: {
        ];
        testToolDepends = [ sydtest-discover ];
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "safe-coloured-text-terminfo" = callPackage
@@ -239015,16 +242636,16 @@ self: {
 
   "safe-coupling" = callPackage
     ({ mkDerivation, HUnit, liquid-base, liquid-containers
-     , liquid-prelude, liquidhaskell, probability, sort, tasty
-     , tasty-discover, tasty-hunit
+     , liquid-prelude, liquidhaskell, probability, rest-rewrite, sort
+     , tasty, tasty-discover, tasty-hunit
      }:
      mkDerivation {
        pname = "safe-coupling";
-       version = "0.1.0.0";
-       sha256 = "1hcx4z7i6r7bldkrsyy407l171c0kwkdwxj7cwb9pkfbp6q3jbvz";
+       version = "0.1.0.1";
+       sha256 = "1lwvknf2i1ih3ki7phfvbhh8rqadwdaqpl3vxmx3yj055mhwpdnj";
        libraryHaskellDepends = [
          liquid-base liquid-containers liquid-prelude liquidhaskell
-         probability
+         probability rest-rewrite
        ];
        testHaskellDepends = [
          HUnit liquid-base probability sort tasty tasty-hunit
@@ -239612,6 +243233,7 @@ self: {
        description = "Fast JSON parsing powered by Chad Austin's sajson library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sajson-bench";
        broken = true;
      }) {};
 
@@ -239635,6 +243257,7 @@ self: {
        description = "Compression command-line tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sak";
      }) {};
 
   "sakuraio-platform" = callPackage
@@ -240004,6 +243627,7 @@ self: {
        description = "Conduit interface to SAM/BAM format files through samtools";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "samtools-conduit-copy";
      }) {};
 
   "samtools-enumerator" = callPackage
@@ -240088,6 +243712,7 @@ self: {
        description = "Manages Cabal sandboxes to avoid rebuilding packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandman";
        broken = true;
      }) {};
 
@@ -240182,6 +243807,7 @@ self: {
        ];
        description = "Sandwich integration with Slack";
        license = lib.licenses.bsd3;
+       mainProgram = "sandwich-slack-exe";
      }) {};
 
   "sandwich-webdriver" = callPackage
@@ -240226,6 +243852,7 @@ self: {
        description = "Sandwich integration with Selenium WebDriver";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sandwich-webdriver-exe";
      }) {};
 
   "sarasvati" = callPackage
@@ -240318,6 +243945,7 @@ self: {
        description = "A minimal SAT solver";
        license = "LGPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sat-micro";
      }) {};
 
   "satchmo" = callPackage
@@ -240535,7 +244163,7 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "sbp_4_3_0" = callPackage
+  "sbp_4_4_0" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, array, base
      , base64-bytestring, basic-prelude, binary, binary-conduit
      , bytestring, cmdargs, conduit, conduit-extra, data-binary-ieee754
@@ -240544,8 +244172,8 @@ self: {
      }:
      mkDerivation {
        pname = "sbp";
-       version = "4.3.0";
-       sha256 = "0fr9pc4y5wmyvw3ybyl1r7ypqgz5ngki4i0qh8d6qdsqy1m0vckg";
+       version = "4.4.0";
+       sha256 = "1alwz2ch0yb5x2djk2pfba1iiywgkq7qzsk31l4mc8ixy4bcx6sf";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -240581,6 +244209,7 @@ self: {
        ];
        description = "SBP to UDP";
        license = lib.licenses.bsd3;
+       mainProgram = "sbp2udp";
      }) {};
 
   "sbv_7_13" = callPackage
@@ -240779,6 +244408,7 @@ self: {
        description = "An interface to the Starcraft II bot API";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sc2hs-demo";
      }) {};
 
   "sc3-rdu" = callPackage
@@ -240849,6 +244479,7 @@ self: {
        description = "Scale an image to a new geometry";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scaleimage";
        broken = true;
      }) {};
 
@@ -240895,6 +244526,7 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scalp-webhooks";
      }) {};
 
   "scalpel" = callPackage
@@ -240922,6 +244554,8 @@ self: {
        pname = "scalpel-core";
        version = "0.6.2";
        sha256 = "07mjff8aqwabx8yhq8bd7jpnarkkrjqss8h8s2wkfmfj808fllmf";
+       revision = "1";
+       editedCabalFile = "1dn9ffblmfrr5ly3v1kbcmzc3z6m4x4p5mym8pfwc9p1vfxqbvz7";
        libraryHaskellDepends = [
          base bytestring containers data-default fail mtl pointedlist
          regex-base regex-tdfa tagsoup text transformers vector
@@ -240962,6 +244596,7 @@ self: {
        executableHaskellDepends = [ base parsec ];
        description = "lexical style suggestions for source code";
        license = lib.licenses.bsd3;
+       mainProgram = "scan";
      }) {};
 
   "scan-metadata" = callPackage
@@ -241057,9 +244692,8 @@ self: {
        ];
        description = "Generates unique passwords for various websites from a single password";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       mainProgram = "scat";
      }) {};
 
   "scc" = callPackage
@@ -241093,6 +244727,7 @@ self: {
        description = "Streaming component combinators";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shsh";
        broken = true;
      }) {};
 
@@ -241102,8 +244737,8 @@ self: {
      }:
      mkDerivation {
        pname = "scenegraph";
-       version = "0.2.0.0";
-       sha256 = "0nwaf1wpr8pqwwkxx0zpbkmvn4ww6v3xcv5w7krk02f985ajaq50";
+       version = "0.2.0.1";
+       sha256 = "0qssdwhbvn2fmfwfvi4rf397rfiqrrxq0dsi54gsixclp3djrdm8";
        libraryHaskellDepends = [
          base data-default fgl graphviz lens linear mtl text
        ];
@@ -241189,6 +244824,7 @@ self: {
        description = "Find the ideal lesson layout";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "schedule-planner";
        broken = true;
      }) {};
 
@@ -241234,6 +244870,7 @@ self: {
        description = "An interview scheduler using constraint satisfaction and Google Sheets";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scheduler";
      }) {};
 
   "schedyield" = callPackage
@@ -241365,6 +245002,7 @@ self: {
        description = "Converts ScholarlyMarkdown documents to HTML5/LaTeX/Docx format";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scholdoc";
      }) {};
 
   "scholdoc-citeproc" = callPackage
@@ -241399,6 +245037,7 @@ self: {
        description = "Scholdoc fork of pandoc-citeproc";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scholdoc-citeproc";
      }) {};
 
   "scholdoc-texmath" = callPackage
@@ -241498,6 +245137,7 @@ self: {
        description = "Haskell query for SciDB via shim";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hquery";
        broken = true;
      }) {};
 
@@ -241620,6 +245260,7 @@ self: {
        description = "Haskell IDE library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scion-server";
      }) {};
 
   "scion-browser" = callPackage
@@ -241655,6 +245296,7 @@ self: {
        description = "Command-line interface for browsing and searching packages documentation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scion-browser";
      }) {};
 
   "scons2dot" = callPackage
@@ -241669,6 +245311,7 @@ self: {
        description = "Generates graphviz file of scons dependency information";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scons2dot";
        broken = true;
      }) {};
 
@@ -241712,6 +245355,7 @@ self: {
        description = "An interactive renderer for plotting time-series data";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scope-cairo";
      }) {};
 
   "scottish" = callPackage
@@ -241745,8 +245389,8 @@ self: {
        pname = "scotty";
        version = "0.12";
        sha256 = "1lpggpdzgjk23mq7aa64yylds5dbm4ynhcvbarqihjxabvh7xmz1";
-       revision = "6";
-       editedCabalFile = "15gwvx9gdk4vxh1x2n5xvnrix8m0wl96a4aqbdmdfrka43sywfma";
+       revision = "7";
+       editedCabalFile = "1i8icc612w4dbmqmnf99drqpmjvhjnkmqgk9xr63amj8jkz5lp4m";
        libraryHaskellDepends = [
          aeson base base-compat-batteries blaze-builder bytestring
          case-insensitive data-default-class exceptions fail http-types
@@ -241873,6 +245517,7 @@ self: {
        description = "Response format helper for the Scotty web framework";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scotty-format-example";
        broken = true;
      }) {};
 
@@ -242045,6 +245690,7 @@ self: {
        executableHaskellDepends = [ base scotty text transformers ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "web";
        broken = true;
      }) {};
 
@@ -242088,6 +245734,7 @@ self: {
        description = "Scrabble play generation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrabble-bot";
      }) {};
 
   "scrapbook" = callPackage
@@ -242112,6 +245759,7 @@ self: {
        description = "collect posts of site that is wrote in config yaml using feed or scraping";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrapbook";
      }) {};
 
   "scrapbook-core" = callPackage
@@ -242165,6 +245813,27 @@ self: {
        broken = true;
      }) {};
 
+  "screenshot-to-clipboard" = callPackage
+    ({ mkDerivation, base, bytestring, filepath, gi-gdk, gi-gdkpixbuf
+     , gi-gio, gi-glib, gi-gtk, haskell-gi-base, process, temporary
+     , text
+     }:
+     mkDerivation {
+       pname = "screenshot-to-clipboard";
+       version = "0.1.0.0";
+       sha256 = "1pbslk15553vnvhwl2j2qzcp5lhm6fnksqfmf3d34l9a5n9y3d43";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring filepath gi-gdk gi-gdkpixbuf gi-gio gi-glib gi-gtk
+         haskell-gi-base process temporary text
+       ];
+       executableHaskellDepends = [ base ];
+       description = "Take screenshot and copy it to the system clipboard";
+       license = lib.licenses.bsd3;
+       mainProgram = "screenshot-to-clipboard";
+     }) {};
+
   "script-monad" = callPackage
     ({ mkDerivation, aeson, aeson-pretty, base, bytestring, http-client
      , http-types, lens, lens-aeson, QuickCheck, tasty, tasty-hunit
@@ -242190,6 +245859,7 @@ self: {
        description = "Stack of error, reader, writer, state, and prompt monad transformers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "script-monad-exe";
        broken = true;
      }) {};
 
@@ -242214,6 +245884,7 @@ self: {
        description = "Scrobbling server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrobble-server";
        broken = true;
      }) {};
 
@@ -242236,6 +245907,7 @@ self: {
        description = "scroll(6), a roguelike game";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scroll";
      }) {};
 
   "scroll-list" = callPackage
@@ -242268,9 +245940,7 @@ self: {
        ];
        description = "Stronger password hashing via sequential memory-hard functions";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
      }) {};
 
   "scrz" = callPackage
@@ -242295,6 +245965,7 @@ self: {
        description = "Process management and supervision daemon";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scrz";
        broken = true;
      }) {};
 
@@ -242329,6 +246000,7 @@ self: {
        description = "Fast CSV lexing on ByteString";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scythe";
        broken = true;
      }) {};
 
@@ -242352,6 +246024,7 @@ self: {
        description = "Automatic generation of Isabelle/HOL correctness proofs for security protocols";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "scyther-proof";
        broken = true;
      }) {};
 
@@ -242403,6 +246076,7 @@ self: {
        executableHaskellDepends = [ base pretty-simple sdl2 text ];
        description = "small testing tool for sdl2 and accelerated drivers";
        license = lib.licenses.mit;
+       mainProgram = "sdl-try-drivers";
      }) {};
 
   "sdl2" = callPackage
@@ -242426,14 +246100,14 @@ self: {
        license = lib.licenses.bsd3;
      }) {inherit (pkgs) SDL2;};
 
-  "sdl2_2_5_3_2" = callPackage
+  "sdl2_2_5_3_3" = callPackage
     ({ mkDerivation, base, bytestring, deepseq, exceptions, linear
      , SDL2, StateVar, text, transformers, vector, weigh
      }:
      mkDerivation {
        pname = "sdl2";
-       version = "2.5.3.2";
-       sha256 = "06v3zdfashd8f2jhrl2gfgkp7ykjsc06yvw2l4n3sy1p9xxk9q2y";
+       version = "2.5.3.3";
+       sha256 = "1a0vdw7nhwhq9zz1wq1w8j9za02js55h92n2rj8zrbqxcr2091ma";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -242536,6 +246210,7 @@ self: {
        executablePkgconfigDepends = [ SDL2 SDL2_gfx ];
        description = "Haskell bindings to SDL2_gfx";
        license = lib.licenses.mit;
+       mainProgram = "sdl2-gfx-example";
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_gfx;};
 
   "sdl2-image" = callPackage
@@ -242558,6 +246233,7 @@ self: {
        executablePkgconfigDepends = [ SDL2 SDL2_image ];
        description = "Haskell bindings to SDL2_image";
        license = lib.licenses.mit;
+       mainProgram = "sdl2-image-example";
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_image;};
 
   "sdl2-mixer" = callPackage
@@ -242581,9 +246257,7 @@ self: {
        executablePkgconfigDepends = [ SDL2_mixer ];
        description = "Haskell bindings to SDL2_mixer";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) SDL2_mixer;};
 
   "sdl2-sprite" = callPackage
@@ -242604,6 +246278,7 @@ self: {
        ];
        description = "Sprite previewer/animator";
        license = lib.licenses.bsd3;
+       mainProgram = "sdl2-sprite";
      }) {};
 
   "sdl2-ttf" = callPackage
@@ -242623,9 +246298,7 @@ self: {
        libraryPkgconfigDepends = [ SDL2 SDL2_ttf ];
        description = "Bindings to SDL2_ttf";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) SDL2; inherit (pkgs) SDL2_ttf;};
 
   "sdnv" = callPackage
@@ -242814,7 +246487,7 @@ self: {
        ];
        description = "A software defined radio library";
        license = lib.licenses.bsd3;
-       platforms = [ "x86_64-darwin" "x86_64-linux" ];
+       platforms = lib.platforms.x86_64;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {};
@@ -242959,6 +246632,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A Haskell implementation of the SECD abstract machine";
        license = lib.licenses.bsd3;
+       mainProgram = "secdi";
      }) {};
 
   "secdh" = callPackage
@@ -242975,6 +246649,7 @@ self: {
        description = "SECDH Machine Simulator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secdh";
        broken = true;
      }) {};
 
@@ -243111,6 +246786,7 @@ self: {
        description = "Secret Santa game assigner using QR-Codes";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secret-santa";
        broken = true;
      }) {};
 
@@ -243146,6 +246822,7 @@ self: {
        description = "Example of writing \"secure\" file removal in Haskell rather than C";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "secrm";
      }) {};
 
   "secure-memory" = callPackage
@@ -243173,6 +246850,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Securely allocated and deallocated memory";
        license = lib.licenses.mpl20;
+       mainProgram = "checkpw";
      }) {};
 
   "secure-sockets" = callPackage
@@ -243428,6 +247106,7 @@ self: {
        description = "A Haskell library to make self-extracting executables";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "self-bundle";
      }) {};
 
   "selfrestart" = callPackage
@@ -243517,6 +247196,7 @@ self: {
        description = "Evaluate code snippets in Literate Haskell";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "semdoc";
        broken = true;
      }) {};
 
@@ -243545,8 +247225,8 @@ self: {
        pname = "semialign";
        version = "1.2.0.1";
        sha256 = "0ci1jpp37p1lzyjxc1bljd6zgg407qmkl9s36b50qjxf85q6j06r";
-       revision = "1";
-       editedCabalFile = "00cmkdmgqlk8v2jg084nddlj2qkwj68nqk9p3l07kzwf796rn5qf";
+       revision = "2";
+       editedCabalFile = "0dm51m0qa1mbwk66wzidws1vvv6xy54swjg58nkjhw76yys2mcia";
        libraryHaskellDepends = [
          base containers hashable indexed-traversable
          indexed-traversable-instances semigroupoids tagged these
@@ -243912,11 +247592,8 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Automatically run Hspec tests on file modifications";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "aarch64-linux" "armv7l-linux" "i686-linux"
-         "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ libjared ];
+       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.libjared ];
      }) {};
 
   "sensenet" = callPackage
@@ -243935,6 +247612,7 @@ self: {
        description = "Distributed sensor network for the raspberry pi";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sensenet";
      }) {};
 
   "sensu-run" = callPackage
@@ -243957,6 +247635,7 @@ self: {
        description = "A tool to send command execution results to Sensu";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sensu-run";
        broken = true;
      }) {};
 
@@ -244046,6 +247725,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Check for common SEO mistakes on CI";
        license = lib.licenses.mit;
+       mainProgram = "seocheck";
      }) {};
 
   "seonbi" = callPackage
@@ -244146,6 +247826,7 @@ self: {
        libraryHaskellDepends = [ base bytestring vector ];
        description = "Sequence Alignment";
        license = lib.licenses.bsd3;
+       platforms = lib.platforms.x86;
      }) {};
 
   "seqid" = callPackage
@@ -244520,6 +248201,7 @@ self: {
        description = "Simple project template from stack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
      }) {};
 
   "serv" = callPackage
@@ -244608,6 +248290,7 @@ self: {
        ];
        description = "Servant support for JuicyPixels";
        license = lib.licenses.bsd3;
+       mainProgram = "image-conversion";
      }) {};
 
   "servant-aeson-specs" = callPackage
@@ -244770,6 +248453,7 @@ self: {
        description = "Authentication via HMAC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -245115,6 +248799,7 @@ self: {
        description = "Command line interface for Servant API clients";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "greet-cli";
      }) {};
 
   "servant-client" = callPackage
@@ -245349,6 +249034,7 @@ self: {
        ];
        description = "generate API docs for your servant webservice";
        license = lib.licenses.bsd3;
+       mainProgram = "greet-docs";
      }) {};
 
   "servant-docs-simple" = callPackage
@@ -245393,6 +249079,7 @@ self: {
        description = "Combinators for rendering EDE templates in servant web applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-ede-example";
      }) {};
 
   "servant-ekg" = callPackage
@@ -245656,6 +249343,7 @@ self: {
        description = "Bindings to GitHub API using servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -245751,6 +249439,7 @@ self: {
        description = "A library for using servant with htmx";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-htmx-exe";
        broken = true;
      }) {};
 
@@ -246049,6 +249738,7 @@ self: {
        description = "Derive a mock server for free from your servant API types";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mock-app";
        broken = true;
      }) {};
 
@@ -246685,6 +250375,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automatically generate Servant API modules";
        license = lib.licenses.mit;
+       mainProgram = "servant-serf";
      }) {};
 
   "servant-server" = callPackage
@@ -246724,6 +250415,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
+       mainProgram = "greet";
      }) {};
 
   "servant-server-namedargs" = callPackage
@@ -246804,6 +250496,7 @@ self: {
        description = "A family of combinators for defining webservices APIs and serving them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snap-greet";
      }) {};
 
   "servant-stache" = callPackage
@@ -246827,6 +250520,7 @@ self: {
        description = "Content-Types for rendering Mustache in servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -246967,6 +250661,7 @@ self: {
        description = "Servant Stream support for streamly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-streamly-example";
        broken = true;
      }) {};
 
@@ -246994,6 +250689,7 @@ self: {
        executableHaskellDepends = [ base purescript-bridge ];
        description = "When REST is not enough ...";
        license = lib.licenses.bsd3;
+       mainProgram = "subscriber-psGenerator";
      }) {};
 
   "servant-swagger" = callPackage
@@ -247190,6 +250886,7 @@ self: {
        description = "TypeScript client generation for Servant";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-typescript-exe";
      }) {};
 
   "servant-util" = callPackage
@@ -247239,6 +250936,7 @@ self: {
        description = "Servant servers utilities";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-util-examples";
      }) {};
 
   "servant-util-beam-pg" = callPackage
@@ -247270,6 +250968,7 @@ self: {
        description = "Implementation of servant-util primitives for beam-postgres";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "servant-util-beam-pg-examples";
      }) {};
 
   "servant-validate" = callPackage
@@ -247330,6 +251029,7 @@ self: {
        description = "Servant support for delivering WebAssembly";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "exe";
        broken = true;
      }) {};
 
@@ -247490,7 +251190,7 @@ self: {
        description = "Auto-generate a server for your datatype";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
        broken = true;
      }) {};
 
@@ -247721,6 +251421,7 @@ self: {
        ];
        description = "Warp web server with template rendering";
        license = lib.licenses.mit;
+       mainProgram = "servius";
      }) {};
 
   "ses-html" = callPackage
@@ -247793,6 +251494,7 @@ self: {
        description = "Session types library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-visualizer";
        broken = true;
      }) {};
 
@@ -247892,6 +251594,8 @@ self: {
        pname = "set-with";
        version = "0.0.1";
        sha256 = "0mkc44gkhjibq3zhxgiw3c7nfy03jmjmrafdr8x9f5ak4l9ns0h4";
+       revision = "1";
+       editedCabalFile = "1g7dal8vm6si1jck42pqwzicdgj8bivjlkdg8p9ywkz5rw4i0575";
        libraryHaskellDepends = [ base containers invariant ];
        testHaskellDepends = [
          base QuickCheck quickcheck-instances tasty tasty-hunit
@@ -247920,6 +251624,7 @@ self: {
        executableToolDepends = [ alex happy ];
        description = "Treating files as sets to perform rapid set manipulation";
        license = lib.licenses.bsd3;
+       mainProgram = "setdown";
      }) {};
 
   "setenv" = callPackage
@@ -247950,6 +251655,7 @@ self: {
        description = "A console interface to the game of Set";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "set-game";
        broken = true;
      }) {};
 
@@ -248005,6 +251711,7 @@ self: {
        ];
        description = "Perform set operations on files";
        license = lib.licenses.mit;
+       mainProgram = "setop";
      }) {};
 
   "setops" = callPackage
@@ -248029,6 +251736,8 @@ self: {
        pname = "sets";
        version = "0.0.6.2";
        sha256 = "0xgk04fvfrl8syyg2cf5s2jazmdasjqh3fdsgamxak2wvjpyvf9l";
+       revision = "1";
+       editedCabalFile = "1qfkr0rcqvqqgnrsjq4blgwha3ylzchcbvhhz65mz44ql71m76g8";
        libraryHaskellDepends = [
          base bytestring commutative composition containers contravariant
          hashable keys mtl QuickCheck semigroupoids semigroups transformers
@@ -248099,6 +251808,7 @@ self: {
        description = "S-Expression parsing/printing made fun and easy";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sexp";
        broken = true;
      }) {};
 
@@ -248146,6 +251856,7 @@ self: {
        executableHaskellDepends = [ base pretty-show ];
        description = "Produce a s-expression representation of Show values";
        license = lib.licenses.bsd3;
+       mainProgram = "sexp-show";
      }) {};
 
   "sexpr" = callPackage
@@ -248178,6 +251889,7 @@ self: {
        testHaskellDepends = [ base data-default hspec megaparsec ];
        description = "Simple s-expression parser";
        license = lib.licenses.mit;
+       mainProgram = "sexpr-parser-z3-demo";
      }) {};
 
   "sexpresso" = callPackage
@@ -248264,6 +251976,7 @@ self: {
        description = "A command line tool to convert TrueType/OpenType fonts to WOFF format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sfnt2woff";
        broken = true;
      }) {inherit (pkgs) zlib;};
 
@@ -248322,6 +252035,7 @@ self: {
        description = "Sgrep - grep Fasta files for sequences matching a regular expression";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sgrep";
      }) {};
 
   "sh2md" = callPackage
@@ -248349,6 +252063,7 @@ self: {
        description = "Record your shell session and print in the markdown format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sh2md";
        broken = true;
      }) {};
 
@@ -248365,6 +252080,7 @@ self: {
        description = "SHA hashes for io-streams";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sha-streams";
        broken = true;
      }) {};
 
@@ -248421,6 +252137,7 @@ self: {
        description = "An automated way to run doctests in files that are changing";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shadower";
        broken = true;
      }) {};
 
@@ -248521,6 +252238,7 @@ self: {
        ];
        description = "Build system library, like Make, but more accurate dependencies";
        license = lib.licenses.bsd3;
+       mainProgram = "shake";
      }) {};
 
   "shake-ats" = callPackage
@@ -248557,7 +252275,7 @@ self: {
        ];
        description = "Build rules for historical benchmarking";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shake-bindist" = callPackage
@@ -248619,6 +252337,7 @@ self: {
        description = "Utility for building Shake build systems using Cabal sandboxes";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shake-cabal-build";
        broken = true;
      }) {};
 
@@ -248816,6 +252535,7 @@ self: {
        description = "Shake build system on-disk caching";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ex.shake-persist";
        broken = true;
      }) {};
 
@@ -248925,6 +252645,7 @@ self: {
        description = "simple and interactive command-line build tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shaker";
      }) {};
 
   "shakers" = callPackage
@@ -248964,7 +252685,7 @@ self: {
        ];
        description = "A toolkit for making compile-time interpolated templates";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ psibi ];
+       maintainers = [ lib.maintainers.psibi ];
      }) {};
 
   "shakespeare-babel" = callPackage
@@ -249077,6 +252798,7 @@ self: {
        ];
        description = "Shannon-fano compression algorithm in Haskell";
        license = lib.licenses.mit;
+       mainProgram = "shannon-fano";
      }) {};
 
   "shapefile" = callPackage
@@ -249140,6 +252862,7 @@ self: {
        description = "physics engine and other tools for 2D shapes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shapes-bench";
        broken = true;
      }) {};
 
@@ -249161,6 +252884,7 @@ self: {
        description = "demos for the 'shapes' package";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shapes-demo";
      }) {};
 
   "shapes-math" = callPackage
@@ -249184,6 +252908,7 @@ self: {
        ];
        description = "faster vector/matrix math using unboxed numbers and Template Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "math-bench";
      }) {};
 
   "sharc-timbre" = callPackage
@@ -249269,6 +252994,7 @@ self: {
        description = "A Haskell preprocessor adding miscellaneous features";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "she";
        broken = true;
      }) {};
 
@@ -249318,6 +253044,7 @@ self: {
        description = "Test webhooks locally";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shelduck";
      }) {};
 
   "shell-conduit" = callPackage
@@ -249453,8 +253180,8 @@ self: {
      }:
      mkDerivation {
        pname = "shellmet";
-       version = "0.0.4.0";
-       sha256 = "1nrva50knx3ca0m6f84f1yim4apj949fqqmmrxqmxhlixjzafl8v";
+       version = "0.0.4.1";
+       sha256 = "0jd05bazny7y25jnminal5wv30kxg6pzchswxpw5yac027qjagd0";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [ base process text ];
@@ -249463,6 +253190,7 @@ self: {
        testHaskellDepends = [ base doctest Glob ];
        description = "Out of the shell solution for scripting in Haskell";
        license = lib.licenses.mpl20;
+       mainProgram = "readme";
      }) {};
 
   "shellout" = callPackage
@@ -249477,6 +253205,7 @@ self: {
        executableHaskellDepends = [ async base stm text typed-process ];
        description = "A threaded manager for Haskell that can run and stream external process output/err/exits";
        license = lib.licenses.bsd3;
+       mainProgram = "example";
      }) {};
 
   "shelltestrunner" = callPackage
@@ -249497,6 +253226,7 @@ self: {
        ];
        description = "Easy, repeatable testing of CLI programs/commands";
        license = "GPL";
+       mainProgram = "shelltest";
      }) {};
 
   "shellwords" = callPackage
@@ -249570,6 +253300,7 @@ self: {
        ];
        description = "A Haskell implementation of the Shen programming language";
        license = lib.licenses.bsd3;
+       mainProgram = "shen";
      }) {};
 
   "shh" = callPackage
@@ -249598,7 +253329,7 @@ self: {
        testToolDepends = [ markdown-unlit ];
        description = "Simple shell scripting from Haskell";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shh-extras" = callPackage
@@ -249613,7 +253344,7 @@ self: {
        testHaskellDepends = [ base tasty ];
        description = "Utility functions for using shh";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "shift" = callPackage
@@ -249632,6 +253363,7 @@ self: {
        ];
        description = "A tool to quickly switch between directories";
        license = lib.licenses.mit;
+       mainProgram = "teleport-hask";
      }) {};
 
   "shikensu" = callPackage
@@ -249673,6 +253405,7 @@ self: {
        description = "The Reflective Lambda Machine";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shimmer";
        broken = true;
      }) {};
 
@@ -250001,6 +253734,7 @@ self: {
        description = "A simple gtk based Russian Roulette game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "showdown";
      }) {};
 
   "shower" = callPackage
@@ -250026,6 +253760,7 @@ self: {
        ];
        description = "Clean up the formatting of 'show' output";
        license = lib.licenses.bsd3;
+       mainProgram = "shower";
      }) {};
 
   "shpider" = callPackage
@@ -250056,6 +253791,7 @@ self: {
        executableHaskellDepends = [ base mtl ];
        description = "A Haskell pattern splitter with emacs attachments";
        license = lib.licenses.publicDomain;
+       mainProgram = "shplit";
      }) {};
 
   "shqq" = callPackage
@@ -250093,6 +253829,7 @@ self: {
        description = "Shuffle tool for UHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shuffle";
      }) {};
 
   "shunya-library" = callPackage
@@ -250210,6 +253947,7 @@ self: {
        description = "Simple, visual, functional language for learning about recursion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sifflet";
        broken = true;
      }) {};
 
@@ -250272,6 +254010,7 @@ self: {
        description = "Thom polynomials of second order Thom-Boardman singularities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sigma-ij";
      }) {};
 
   "sign" = callPackage
@@ -250344,6 +254083,7 @@ self: {
        description = "Deterministic serialisation and signatures with proto-lens support";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "signable-haskell-protoc";
        broken = true;
      }) {};
 
@@ -250359,6 +254099,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Multiplatform signal support for Haskell";
        license = lib.licenses.mit;
+       mainProgram = "test";
      }) {};
 
   "signals" = callPackage
@@ -250431,6 +254172,7 @@ self: {
        description = "A Haskell clone of OpenBSD signify";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "signify-hs";
      }) {};
 
   "silently" = callPackage
@@ -250531,6 +254273,7 @@ self: {
        description = "stochastic simulation engine";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simgi";
      }) {};
 
   "simple" = callPackage
@@ -250566,6 +254309,7 @@ self: {
        description = "A minimalist web framework for the WAI server interface";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smpl";
      }) {};
 
   "simple-actors" = callPackage
@@ -250598,7 +254342,7 @@ self: {
        ];
        description = "A simple library for affine and vector spaces";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ turion ];
+       maintainers = [ lib.maintainers.turion ];
      }) {};
 
   "simple-amount" = callPackage
@@ -250702,6 +254446,23 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "simple-cmd_0_2_7" = callPackage
+    ({ mkDerivation, base, directory, extra, filepath, hspec, process
+     , time, unix
+     }:
+     mkDerivation {
+       pname = "simple-cmd";
+       version = "0.2.7";
+       sha256 = "1pjkcww6s45s6w757cyxniis2w4ndg7vgz6gj3c1iwfh10ajk0q4";
+       libraryHaskellDepends = [
+         base directory extra filepath process time unix
+       ];
+       testHaskellDepends = [ base hspec ];
+       description = "Simple String-based process commands";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "simple-cmd-args" = callPackage
     ({ mkDerivation, base, optparse-applicative }:
      mkDerivation {
@@ -250847,6 +254608,7 @@ self: {
        description = "Evaluate a Text to an Integer: \"1 + 1\" -> 2";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Eval";
        broken = true;
      }) {};
 
@@ -250893,6 +254655,7 @@ self: {
        description = "Simple parallel genetic algorithm implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ga-sin-example";
        broken = true;
      }) {};
 
@@ -250914,6 +254677,7 @@ self: {
        ];
        description = "Simple parallel genetic algorithm implementation";
        license = lib.licenses.bsd3;
+       mainProgram = "ga-sin-example";
      }) {};
 
   "simple-get-opt" = callPackage
@@ -251163,6 +254927,7 @@ self: {
        description = "Simplified Pascal language to SSVM compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spc";
      }) {};
 
   "simple-pipe" = callPackage
@@ -251349,6 +255114,7 @@ self: {
        description = "Simple stacked virtual machine: assembler, disassembler, bytecode interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ssvm";
        broken = true;
      }) {};
 
@@ -251560,6 +255326,7 @@ self: {
        executableHaskellDepends = [ base ];
        testHaskellDepends = [ base ];
        license = lib.licenses.bsd3;
+       mainProgram = "simplelru-exe";
      }) {};
 
   "simplemesh" = callPackage
@@ -251671,6 +255438,7 @@ self: {
        ];
        description = "A simple markup language that translates to LaTeX";
        license = lib.licenses.gpl3Only;
+       mainProgram = "simplex";
      }) {};
 
   "simplex-basic" = callPackage
@@ -251792,6 +255560,7 @@ self: {
        description = "Simulate sequencing with different models for priming and errors";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "simseq";
      }) {};
 
   "simtreelo" = callPackage
@@ -251841,6 +255610,7 @@ self: {
        executablePkgconfigDepends = [ libXft xext ];
        description = "A programming language for simple GUIs";
        license = lib.licenses.bsd3;
+       mainProgram = "sindre";
      }) {inherit (pkgs.xorg) libXft; xext = null;};
 
   "single-tuple" = callPackage
@@ -252260,6 +256030,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Sixel library to show images in a terminal emulator";
        license = lib.licenses.bsd3;
+       mainProgram = "sixel-exe";
      }) {};
 
   "sixfiguregroup" = callPackage
@@ -252312,24 +256083,24 @@ self: {
   "sized" = callPackage
     ({ mkDerivation, base, constraints, containers, deepseq
      , equational-reasoning, ghc-typelits-knownnat
-     , ghc-typelits-presburger, hashable, hspec, inspection-testing
-     , lens, mono-traversable, subcategories, template-haskell, th-lift
-     , these, type-natural, vector
+     , ghc-typelits-presburger, hashable, inspection-testing, lens
+     , mono-traversable, subcategories, tasty, tasty-expected-failure
+     , tasty-inspection-testing, template-haskell, th-lift, these
+     , type-natural, vector
      }:
      mkDerivation {
        pname = "sized";
-       version = "1.0.0.0";
-       sha256 = "0f6ql0yk0qi2wkzifhhhfn5z3wzh10d57ak9wrb4dv8s6mx34yk7";
-       revision = "3";
-       editedCabalFile = "13v3dkfdnzg2y7pfkn2dnvczd9y40izlm30vcssn2a5b1v7vy3bz";
+       version = "1.0.0.1";
+       sha256 = "1ayj3fzr4l4l5wmkqnv4h4fxgivmjgamq3wdlpixlwy43wbmf3fy";
        libraryHaskellDepends = [
          base constraints containers deepseq equational-reasoning
          ghc-typelits-knownnat ghc-typelits-presburger hashable lens
          mono-traversable subcategories these type-natural vector
        ];
        testHaskellDepends = [
-         base containers hspec inspection-testing mono-traversable
-         subcategories template-haskell th-lift type-natural vector
+         base containers inspection-testing mono-traversable subcategories
+         tasty tasty-expected-failure tasty-inspection-testing
+         template-haskell th-lift type-natural vector
        ];
        description = "Sized sequence data-types";
        license = lib.licenses.bsd3;
@@ -252419,6 +256190,7 @@ self: {
        description = "Recursively show space (size and i-nodes) used in subdirectories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sizes";
        broken = true;
      }) {};
 
@@ -252442,6 +256214,7 @@ self: {
        description = "Simple JavaScript Profiler";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sjsp";
        broken = true;
      }) {};
 
@@ -252500,6 +256273,7 @@ self: {
        description = "a tool to access the OSX keychain";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skeleton";
      }) {};
 
   "skeletons" = callPackage
@@ -252519,6 +256293,7 @@ self: {
        description = "Manage project skeletons";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skeletons";
      }) {};
 
   "skell" = callPackage
@@ -252555,6 +256330,7 @@ self: {
        description = "A MyAnimeList.net client.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mal";
        broken = true;
      }) {};
 
@@ -252673,6 +256449,7 @@ self: {
        ];
        description = "syntax highlighting library";
        license = lib.licenses.gpl2Only;
+       mainProgram = "skylighting";
      }) {};
 
   "skylighting-core" = callPackage
@@ -252786,6 +256563,7 @@ self: {
        description = "Export Skype chat logs to text files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "skypelogexport";
        broken = true;
      }) {ghc-binary = null;};
 
@@ -252850,6 +256628,7 @@ self: {
        description = "Slack notifier for Haskell project";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -252876,6 +256655,7 @@ self: {
          text transformers wreq
        ];
        license = lib.licenses.mit;
+       mainProgram = "slack-progressbar-exe";
      }) {};
 
   "slack-verify" = callPackage
@@ -252952,6 +256732,7 @@ self: {
        description = "A note taking CLI tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "slate";
      }) {};
 
   "slave-thread" = callPackage
@@ -252988,6 +256769,7 @@ self: {
        executableHaskellDepends = [ base time ];
        description = "zZzzZz";
        license = lib.licenses.gpl2Only;
+       mainProgram = "sleep";
      }) {};
 
   "slice-cpp-gen" = callPackage
@@ -253006,6 +256788,7 @@ self: {
        ];
        description = "Generate C++ skeletons from slice files";
        license = lib.licenses.bsd3;
+       mainProgram = "slice-cpp-gen";
      }) {};
 
   "sliceofpy" = callPackage
@@ -253031,6 +256814,7 @@ self: {
        description = "Python-ish slicing traversals for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "gen-sliceofpy-examples";
        broken = true;
      }) {};
 
@@ -253069,6 +256853,7 @@ self: {
        description = "ws convert markdown to reveal-js";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "slidemews";
      }) {};
 
   "slim" = callPackage
@@ -253145,6 +256930,7 @@ self: {
        description = "A command line interface to Sloane's OEIS";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sloane";
        broken = true;
      }) {};
 
@@ -253164,6 +256950,7 @@ self: {
        ];
        description = "Visualize mathematical function's slope fields";
        license = lib.licenses.gpl3Only;
+       mainProgram = "slope-field";
      }) {};
 
   "slot-lambda" = callPackage
@@ -253245,6 +257032,7 @@ self: {
        testHaskellDepends = [ base hspec text text-icu ];
        description = "Clean URI slugs for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "slugger";
      }) {};
 
   "slugify" = callPackage
@@ -253282,7 +257070,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle molecular sequences";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "slynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "small-bytearray-builder" = callPackage
@@ -253429,6 +257218,7 @@ self: {
        description = "A Haskell port of the smallpt path tracer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smallpt-hs";
        broken = true;
      }) {};
 
@@ -253493,6 +257283,7 @@ self: {
        description = "A command line tool for working with sets and maps";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smap";
        broken = true;
      }) {};
 
@@ -253530,6 +257321,7 @@ self: {
        description = "A smarter QuickCheck";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sc-qc";
        broken = true;
      }) {};
 
@@ -253786,6 +257578,7 @@ self: {
        description = "Command line tool for <https://smith.st/ Smith>.";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smith";
      }) {};
 
   "smith-client" = callPackage
@@ -254037,6 +257830,7 @@ self: {
        description = "Listen for SMTP traffic and send it to an MTA script";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "smtp2mta";
      }) {};
 
   "smtps-gmail" = callPackage
@@ -254080,6 +257874,7 @@ self: {
        description = "GHC Source Plugin that helps to manage imports";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "play-smuggler";
        broken = true;
      }) {};
 
@@ -254136,6 +257931,7 @@ self: {
        description = "A basic console snake game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snake";
        broken = true;
      }) {};
 
@@ -254185,7 +257981,7 @@ self: {
        ];
        description = "Top-level package for the Snap Web Framework";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "snap-accept" = callPackage
@@ -254235,6 +258031,7 @@ self: {
        description = "Command-line tool to manage Snap AuthManager database";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snap-auth-cli";
      }) {};
 
   "snap-blaze" = callPackage
@@ -254561,6 +258358,7 @@ self: {
        ];
        description = "Scaffolding CLI for the Snap Framework";
        license = lib.licenses.bsd3;
+       mainProgram = "snap";
      }) {};
 
   "snap-testing" = callPackage
@@ -254910,6 +258708,7 @@ self: {
        ];
        description = "snaplet-i18n";
        license = lib.licenses.bsd3;
+       mainProgram = "demo";
      }) {};
 
   "snaplet-influxdb" = callPackage
@@ -255573,6 +259372,7 @@ self: {
        executableHaskellDepends = [ base parsec ];
        description = "Extracts labeled snippets of code to files";
        license = lib.licenses.bsd3;
+       mainProgram = "snippet-extractor";
      }) {};
 
   "snm" = callPackage
@@ -255595,6 +259395,7 @@ self: {
        description = "The Simple Nice-Looking Manual Generator";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snm";
      }) {};
 
   "snmp" = callPackage
@@ -255637,6 +259438,7 @@ self: {
        description = "Strategic board game of medium complexity";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snorkels";
        broken = true;
      }) {};
 
@@ -255740,6 +259542,7 @@ self: {
        description = "snowflake http server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowflake-server";
      }) {};
 
   "snowglobe" = callPackage
@@ -255757,6 +259560,7 @@ self: {
        ];
        description = "randomized fractal snowflakes demo";
        license = lib.licenses.gpl3Only;
+       mainProgram = "snowglobe";
      }) {};
 
   "snowtify" = callPackage
@@ -255774,6 +259578,7 @@ self: {
        description = "snowtify send your result of `stack build` (`stack test`) to notify-daemon :dog2:";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "snowtify";
        broken = true;
      }) {};
 
@@ -255866,6 +259671,7 @@ self: {
        description = "Tunnel a socket over a single datastream (stdin/stdout)";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sock2stream";
      }) {};
 
   "sockaddr" = callPackage
@@ -255887,13 +259693,15 @@ self: {
        pname = "socket";
        version = "0.8.3.0";
        sha256 = "0gd0rw6mpzlimvcn3jiw7l0q9h4l3rhfr2n5hhg6k0bkklqp6rbr";
+       revision = "1";
+       editedCabalFile = "07n19jbgn6459v13l7x55x8l73d48jrn48dcf4402hnyab1mzhr5";
        libraryHaskellDepends = [ base bytestring ];
        testHaskellDepends = [
          async base bytestring QuickCheck tasty tasty-hunit tasty-quickcheck
        ];
        description = "An extensible socket library";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "socket-activation" = callPackage
@@ -255996,6 +259804,7 @@ self: {
        description = "simpe tool to serve piped data over http and websocket";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "socketed";
        broken = true;
      }) {};
 
@@ -256180,6 +259989,7 @@ self: {
        ];
        description = "Generate CSV Exports of your Solana Staking Rewards";
        license = lib.licenses.bsd3;
+       mainProgram = "solana-staking-csvs";
      }) {};
 
   "solar" = callPackage
@@ -256275,6 +260085,7 @@ self: {
        testHaskellDepends = [ base containers QuickCheck ];
        description = "Solving simple games";
        license = lib.licenses.mit;
+       mainProgram = "solve";
      }) {};
 
   "som" = callPackage
@@ -256308,6 +260119,19 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "some_1_0_4" = callPackage
+    ({ mkDerivation, base, deepseq }:
+     mkDerivation {
+       pname = "some";
+       version = "1.0.4";
+       sha256 = "0x1qivqnayybxa6nbnaqyay73yfglxwb3xwfy03pb6ycs639avs4";
+       libraryHaskellDepends = [ base deepseq ];
+       testHaskellDepends = [ base ];
+       description = "Existential type: Some";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "some-dict-of" = callPackage
     ({ mkDerivation, base, constraints }:
      mkDerivation {
@@ -256339,6 +260163,7 @@ self: {
        description = "Sonic Visualiser";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svdump";
        broken = true;
      }) {};
 
@@ -256461,6 +260286,7 @@ self: {
        description = "Sort lines per file size";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sorty";
        broken = true;
      }) {};
 
@@ -256496,8 +260322,8 @@ self: {
      }:
      mkDerivation {
        pname = "souffle-haskell";
-       version = "3.4.0";
-       sha256 = "1vyssicyj2pcnl9jg3gq4ha17wh3shy9yjbzhq3lv332vh1qy00z";
+       version = "3.5.0";
+       sha256 = "1s6398wfm6wly72b7kb7l13lskc1v4iivzz9d0vbwr8jv83grjbr";
        libraryHaskellDepends = [
          array base bytestring deepseq directory filepath mtl process
          profunctors temporary text text-short type-errors-pretty vector
@@ -256534,6 +260360,7 @@ self: {
        ];
        description = "Approximate a song from other pieces of sound";
        license = lib.licenses.bsd3;
+       mainProgram = "sound-collage";
      }) {};
 
   "sounddelay" = callPackage
@@ -256548,6 +260375,7 @@ self: {
        description = "Audio delay line";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "delay";
      }) {};
 
   "soundgen" = callPackage
@@ -256562,6 +260390,7 @@ self: {
        description = "sound generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "soundgen";
      }) {};
 
   "source-code-server" = callPackage
@@ -256586,6 +260415,7 @@ self: {
        description = "The server backend for the source code iPhone app";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "source-code-server";
      }) {};
 
   "source-constraints" = callPackage
@@ -256704,6 +260534,7 @@ self: {
        description = "DCPU-16 architecture utilities for Notch's 0x10c game";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "soyuz";
        broken = true;
      }) {};
 
@@ -256765,7 +260596,8 @@ self: {
        ];
        description = "Gopher server library and daemon";
        license = lib.licenses.gpl3Only;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       mainProgram = "spacecookie";
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "spacefill" = callPackage
@@ -256852,6 +260684,7 @@ self: {
        description = "A simple programming and debugging environment";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spade";
      }) {};
 
   "spake2" = callPackage
@@ -256879,6 +260712,7 @@ self: {
        description = "Implementation of the SPAKE2 Password-Authenticated Key Exchange algorithm";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "haskell-spake2-interop-entrypoint";
        broken = true;
      }) {};
 
@@ -256898,6 +260732,7 @@ self: {
        description = "A breakout clone written in netwire and gloss";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spanout";
        broken = true;
      }) {};
 
@@ -256927,6 +260762,7 @@ self: {
        description = "Distributed Apache Spark applications in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sparkle";
      }) {};
 
   "sparql-protocol" = callPackage
@@ -257164,6 +261000,7 @@ self: {
        description = "A unix-style (read from stdin, write to stdout) global hotkey daemon";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spartacon";
        broken = true;
      }) {};
 
@@ -257483,6 +261320,7 @@ self: {
        description = "Speechmatics api client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "speechmatics";
      }) {};
 
   "speedy-slice" = callPackage
@@ -257581,6 +261419,7 @@ self: {
        description = "Sphinx CLI and demo of Haskell Sphinx library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sphinx-cli";
      }) {};
 
   "sphinxesc" = callPackage
@@ -257600,6 +261439,7 @@ self: {
        description = "Transform queries for sphinx input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sphinxesc";
        broken = true;
      }) {};
 
@@ -257639,6 +261479,7 @@ self: {
        description = "Experimental web browser";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spike";
      }) {inherit (pkgs) libsoup;};
 
   "spine" = callPackage
@@ -257759,6 +261600,7 @@ self: {
        ];
        description = "A parallel implementation of the Sorokina/Zeilfelder spline scheme";
        license = lib.licenses.agpl3Only;
+       mainProgram = "spline3";
      }) {};
 
   "splines" = callPackage
@@ -257795,6 +261637,18 @@ self: {
        license = lib.licenses.isc;
      }) {};
 
+  "splint_1_0_2_0" = callPackage
+    ({ mkDerivation, base, containers, ghc, hlint, stm }:
+     mkDerivation {
+       pname = "splint";
+       version = "1.0.2.0";
+       sha256 = "18n97b6437yql0sk55kns9mz2x2rgdfjw9ajpmm4adh5n5kc5cf6";
+       libraryHaskellDepends = [ base containers ghc hlint stm ];
+       description = "HLint as a GHC source plugin";
+       license = lib.licenses.isc;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "split" = callPackage
     ({ mkDerivation, base, QuickCheck }:
      mkDerivation {
@@ -257850,6 +261704,7 @@ self: {
        ];
        description = "Split a big audio file into pieces at positions of silence";
        license = lib.licenses.bsd3;
+       mainProgram = "split-record";
      }) {};
 
   "split-tchan" = callPackage
@@ -257934,6 +261789,7 @@ self: {
        description = "Use numerical ranges to split out certain lines from a file";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "splitter";
        broken = true;
      }) {};
 
@@ -257954,6 +261810,7 @@ self: {
        ];
        description = "A tool for visualizing the lifecycle of many concurrent multi-staged processes";
        license = lib.licenses.bsd3;
+       mainProgram = "splot";
      }) {};
 
   "spooky" = callPackage
@@ -258009,6 +261866,7 @@ self: {
        description = "Spoon's utilities. Simple testing and nice looking error reporting.";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -258099,6 +261957,7 @@ self: {
        description = "JSON API to HTML website wrapper";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sprinkles";
      }) {};
 
   "spritz" = callPackage
@@ -258137,6 +261996,7 @@ self: {
        description = "HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sproxy";
        broken = true;
      }) {};
 
@@ -258164,6 +262024,7 @@ self: {
        description = "Web interface to sproxy database";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sproxy-web";
        broken = true;
      }) {};
 
@@ -258190,6 +262051,7 @@ self: {
        ];
        description = "Secure HTTP proxy for authenticating users via OAuth2";
        license = lib.licenses.mit;
+       mainProgram = "sproxy2";
      }) {};
 
   "spsa" = callPackage
@@ -258237,6 +262099,7 @@ self: {
        description = "A compact file system watcher for Mac OS X, Linux and Windows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "spy";
        broken = true;
      }) {};
 
@@ -258396,27 +262259,6 @@ self: {
   "sqlite-simple" = callPackage
     ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
      , blaze-textual, bytestring, containers, direct-sqlite, HUnit, Only
-     , semigroups, template-haskell, text, time, transformers
-     }:
-     mkDerivation {
-       pname = "sqlite-simple";
-       version = "0.4.18.0";
-       sha256 = "00icsf8pgrcqcn5562lmn12yz1f16a2v2q6bl90iknvjyrk1hgzp";
-       libraryHaskellDepends = [
-         attoparsec base blaze-builder blaze-textual bytestring containers
-         direct-sqlite Only semigroups template-haskell text time
-         transformers
-       ];
-       testHaskellDepends = [
-         base base16-bytestring bytestring direct-sqlite HUnit text time
-       ];
-       description = "Mid-Level SQLite client library";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "sqlite-simple_0_4_18_2" = callPackage
-    ({ mkDerivation, attoparsec, base, base16-bytestring, blaze-builder
-     , blaze-textual, bytestring, containers, direct-sqlite, HUnit, Only
      , template-haskell, text, time, transformers
      }:
      mkDerivation {
@@ -258432,7 +262274,6 @@ self: {
        ];
        description = "Mid-Level SQLite client library";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sqlite-simple-errors" = callPackage
@@ -258516,6 +262357,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sqsd-local";
      }) {};
 
   "squares" = callPackage
@@ -258571,7 +262413,8 @@ self: {
        ];
        description = "Squeal PostgreSQL Library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "example";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "squeal-postgresql-ltree" = callPackage
@@ -258639,6 +262482,7 @@ self: {
        ];
        description = "A file-packing application";
        license = "GPL";
+       mainProgram = "squeeze";
      }) {};
 
   "sr-extra" = callPackage
@@ -258686,6 +262530,7 @@ self: {
        description = "Build and install Debian packages completely from source";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "srcinst";
        broken = true;
      }) {};
 
@@ -258791,6 +262636,7 @@ self: {
        description = "text UI for scanning with SANE";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sscan";
        broken = true;
      }) {};
 
@@ -258917,6 +262763,7 @@ self: {
        description = "Check sshd configuration for adherence to best practices";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sshd-lint";
      }) {};
 
   "sshtun" = callPackage
@@ -258936,6 +262783,7 @@ self: {
        ];
        description = "Wrapper daemon to manage an ssh tunnel";
        license = lib.licenses.bsd3;
+       mainProgram = "sshtun";
      }) {};
 
   "sssp" = callPackage
@@ -258965,6 +262813,7 @@ self: {
        description = "HTTP proxy for S3";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sssp";
      }) {};
 
   "sstable" = callPackage
@@ -258984,6 +262833,7 @@ self: {
        description = "SSTables in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sstable";
      }) {};
 
   "ssv" = callPackage
@@ -258998,6 +262848,7 @@ self: {
        executableHaskellDepends = [ base containers ];
        description = "Comma-separated-value (CSV) read, show and write routines";
        license = lib.licenses.mit;
+       mainProgram = "csvclean";
      }) {};
 
   "st2" = callPackage
@@ -259094,6 +262945,7 @@ self: {
        description = "Trees whose branches are resistant to change";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "demo";
      }) {};
 
   "stache" = callPackage
@@ -259126,6 +262978,7 @@ self: {
        ];
        description = "Mustache templates for Haskell";
        license = lib.licenses.bsd3;
+       mainProgram = "stache";
      }) {};
 
   "stack" = callPackage
@@ -259152,8 +263005,8 @@ self: {
        pname = "stack";
        version = "2.7.5";
        sha256 = "103yyfl02chbmkb6csri403921z7jhfdrrv99lch951flv149pcx";
-       revision = "1";
-       editedCabalFile = "1mig6gkpfynjias4w8grg8s1zly2m51mnj29ljl1fs2qn93dq1iz";
+       revision = "2";
+       editedCabalFile = "18hiffjrzfn97yl9al97vxing6qajiv732nr61i4lv1y4xhhm6v8";
        configureFlags = [
          "-fdisable-git-info" "-fhide-dependency-versions"
          "-fsupported-build"
@@ -259222,7 +263075,8 @@ self: {
        '';
        description = "The Haskell Tool Stack";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       mainProgram = "stack";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {};
 
   "stack-all" = callPackage
@@ -259243,6 +263097,7 @@ self: {
        ];
        description = "CLI tool for building across Stackage major versions";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-all";
      }) {};
 
   "stack-bump" = callPackage
@@ -259267,6 +263122,7 @@ self: {
        description = "Dead simple version bumping for hpack packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-bump";
        broken = true;
      }) {};
 
@@ -259285,6 +263141,7 @@ self: {
        ];
        description = "Clean away old stack build artifacts";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-clean-old";
      }) {};
 
   "stack-fix" = callPackage
@@ -259299,6 +263156,7 @@ self: {
        description = "Console program used to fix Stack build errors automatically";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-fix";
        broken = true;
      }) {};
 
@@ -259327,6 +263185,7 @@ self: {
        description = "Initial project template from stack";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "shc";
        broken = true;
      }) {};
 
@@ -259387,6 +263246,7 @@ self: {
        description = "A program for extending Stack to add distributed capabilities";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-network";
      }) {};
 
   "stack-prism" = callPackage
@@ -259427,6 +263287,7 @@ self: {
        description = "An equivalent to cabal run for stack";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack-run";
        broken = true;
      }) {};
 
@@ -259477,6 +263338,7 @@ self: {
        ];
        description = "Create etags for Haskell projects based on Stack snapshots";
        license = lib.licenses.mit;
+       mainProgram = "stack-tag";
      }) {};
 
   "stack-templatizer" = callPackage
@@ -259490,6 +263352,7 @@ self: {
        executableHaskellDepends = [ base bytestring directory filepath ];
        description = "Generate a stack template from a folder";
        license = lib.licenses.bsd3;
+       mainProgram = "stack-templatizer";
      }) {};
 
   "stack-type" = callPackage
@@ -259564,6 +263427,7 @@ self: {
        description = "Convert stack projects to cabal.project + cabal.project.freeze";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack2cabal";
        broken = true;
      }) {};
 
@@ -259592,6 +263456,7 @@ self: {
        description = "Convert stack.yaml files into Nix build instructions.";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stack2nix";
        broken = true;
      }) {};
 
@@ -259637,6 +263502,7 @@ self: {
        description = "Calculate and print (in different formats) Stackage build plans";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-build-plan";
      }) {};
 
   "stackage-cabal" = callPackage
@@ -259747,6 +263613,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Secure download of packages for cabal-install";
        license = lib.licenses.mit;
+       mainProgram = "stackage-install";
      }) {};
 
   "stackage-metadata" = callPackage
@@ -259775,6 +263642,7 @@ self: {
        description = "DEPRECATED Grab current metadata for all packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "all-cabal-metadata-tool";
        broken = true;
      }) {};
 
@@ -259800,6 +263668,7 @@ self: {
        description = "Tool for querying Stackage";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage";
      }) {};
 
   "stackage-sandbox" = callPackage
@@ -259821,6 +263690,7 @@ self: {
        description = "Work with shared stackage sandboxes";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-sandbox";
      }) {};
 
   "stackage-setup" = callPackage
@@ -259845,6 +263715,7 @@ self: {
        description = "An executable for downloading a Haskell setup";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-setup";
      }) {};
 
   "stackage-to-hackage" = callPackage
@@ -259871,6 +263742,7 @@ self: {
        description = "Convert stack.yaml to cabal.project + cabal.project.freeze";
        license = lib.licenses.gpl3Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-to-hackage";
        broken = true;
      }) {};
 
@@ -259907,6 +263779,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Update your package index incrementally (requires git)";
        license = lib.licenses.mit;
+       mainProgram = "stackage-update";
      }) {};
 
   "stackage-upload" = callPackage
@@ -259930,6 +263803,7 @@ self: {
        description = "A more secure version of cabal upload which uses HTTPS";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage-upload";
      }) {};
 
   "stackage2nix" = callPackage
@@ -259961,6 +263835,7 @@ self: {
        description = "Convert Stack files into Nix build instructions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stackage2nix";
      }) {};
 
   "stackcollapse-ghc" = callPackage
@@ -259986,6 +263861,7 @@ self: {
        ];
        description = "Program to fold GHC prof files into flamegraph input";
        license = lib.licenses.gpl3Only;
+       mainProgram = "stackcollapse-ghc";
      }) {};
 
   "stacked-dag" = callPackage
@@ -260005,6 +263881,7 @@ self: {
        testHaskellDepends = [ base containers doctest graphviz text ];
        description = "Ascii DAG(Directed acyclic graph) for visualization of dataflow";
        license = lib.licenses.bsd3;
+       mainProgram = "stacked-dag";
      }) {};
 
   "staf" = callPackage
@@ -260055,6 +263932,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Static site generator";
        license = lib.licenses.bsd3;
+       mainProgram = "stagen";
      }) {};
 
   "stan" = callPackage
@@ -260087,6 +263965,7 @@ self: {
        description = "Haskell STatic ANalyser";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stan";
      }) {};
 
   "standalone-derive-topdown" = callPackage
@@ -260118,6 +263997,7 @@ self: {
        description = "Generate standalone haddock documentation for a set of packages";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "standalone-haddock";
        broken = true;
      }) {};
 
@@ -260187,6 +264067,7 @@ self: {
        description = "Space simulation game";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "starrover2";
      }) {};
 
   "starter" = callPackage
@@ -260317,6 +264198,7 @@ self: {
        executableHaskellDepends = [ base polyparse ];
        description = "Compiles Rhapsody statecharts to C";
        license = lib.licenses.bsd3;
+       mainProgram = "statechart";
      }) {};
 
   "stateful-mtl" = callPackage
@@ -260650,6 +264532,7 @@ self: {
        description = "command line statistics";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stats";
        broken = true;
      }) {};
 
@@ -260792,6 +264675,7 @@ self: {
        description = "What version is the package X in stackage lts-Y.ZZ?";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "staversion";
        broken = true;
      }) {};
 
@@ -260863,6 +264747,7 @@ self: {
        description = "A library for implicit, monadic dataflow parallelism";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ohua-stream-bench";
        broken = true;
      }) {};
 
@@ -260953,6 +264838,7 @@ self: {
        description = "List and launch steam games from the cli";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "steambrowser";
        broken = true;
      }) {};
 
@@ -260987,6 +264873,7 @@ self: {
        description = "A file watcher and development tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sos";
        broken = true;
      }) {};
 
@@ -261109,6 +264996,7 @@ self: {
        description = "Educational implementation of the STG (Spineless Tagless G-machine)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stgi-exe";
        broken = true;
      }) {};
 
@@ -261249,7 +265137,7 @@ self: {
        ];
        description = "Containers for STM";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "stm-delay" = callPackage
@@ -261868,6 +265756,7 @@ self: {
        description = "Simple Theorem Prover";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "mu-test";
        broken = true;
      }) {};
 
@@ -261934,6 +265823,7 @@ self: {
        description = "Client for Stratum protocol";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stratum-tool";
      }) {};
 
   "stratux" = callPackage
@@ -261973,6 +265863,7 @@ self: {
        description = "A demonstration of the stratux library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stratux-demo";
      }) {};
 
   "stratux-http" = callPackage
@@ -262628,7 +266519,7 @@ self: {
        ];
        description = "Streaming Wai utilities";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ jb55 ];
+       maintainers = [ lib.maintainers.jb55 ];
      }) {};
 
   "streaming-with" = callPackage
@@ -262666,7 +266557,7 @@ self: {
        ];
        description = "Dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "streamly_0_8_2" = callPackage
@@ -262688,7 +266579,7 @@ self: {
        description = "Dataflow programming and declarative concurrency";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "streamly-archive" = callPackage
@@ -263297,6 +267188,7 @@ self: {
        ];
        description = "Find a local optimum of strictness annotations";
        license = lib.licenses.bsd3;
+       mainProgram = "strictify";
      }) {};
 
   "strictly" = callPackage
@@ -263543,6 +267435,7 @@ self: {
        ];
        description = "A library for generating random string from a regular experession";
        license = lib.licenses.bsd3;
+       mainProgram = "hstrrand";
      }) {};
 
   "string-similarity" = callPackage
@@ -263701,6 +267594,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "new-template-exe";
      }) {};
 
   "strip-ansi-escape" = callPackage
@@ -263851,6 +267745,8 @@ self: {
        pname = "stripe-scotty";
        version = "1.1.0.2";
        sha256 = "123l1khqd0ilcihrij1givz4lg2jns2r2iyf90yjh7zdva1xf507";
+       revision = "1";
+       editedCabalFile = "0rr2vyw1vpa4psxqq2x9lsp67lgm0pylmnsnixm681qa6pykjnhr";
        libraryHaskellDepends = [
          aeson base bytestring http-types scotty stripe-concepts
          stripe-signature text
@@ -263922,6 +267818,8 @@ self: {
        pname = "stripe-wreq";
        version = "1.0.1.14";
        sha256 = "01z0hqqnnc2g8q0bzj4brjmd9wmpjda4rlk770brvk9ip9mjdlys";
+       revision = "1";
+       editedCabalFile = "1knsmrj0m1xjf8z8hsjcci3h7bg5afzbnx5v6znffc5vzgnphc64";
        libraryHaskellDepends = [
          aeson base bytestring lens stripe-concepts text wreq
        ];
@@ -263969,8 +267867,8 @@ self: {
      }:
      mkDerivation {
        pname = "strive";
-       version = "6.0.0.2";
-       sha256 = "02bw8qsfixjdlyzp1gpgrrj0qacw40rsw75858l0894lyq7x35hk";
+       version = "6.0.0.3";
+       sha256 = "1sj2s6cqcmyczbf09d2bzygd0gfgx0p16wgwcrmr9f9h84dk4bps";
        libraryHaskellDepends = [
          aeson base bytestring data-default gpolyline http-client
          http-client-tls http-types template-haskell text time transformers
@@ -264030,6 +267928,7 @@ self: {
        description = "Interface library for strongSwan SQL backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "strongswan-sql";
      }) {};
 
   "strongweak" = callPackage
@@ -264039,8 +267938,8 @@ self: {
      }:
      mkDerivation {
        pname = "strongweak";
-       version = "0.2.0";
-       sha256 = "1acx0rf2xrsxbj8b1zla92j46igghlij0s0mjaiwys15w98xg8lx";
+       version = "0.3.0";
+       sha256 = "00cl7dbqbaq81rsk3xzkdzyxra16kcz4dfdm0w7l1ysrgpfa1kbp";
        libraryHaskellDepends = [
          base either prettyprinter refined vector vector-sized
        ];
@@ -264130,8 +268029,8 @@ self: {
        pname = "structured";
        version = "0.1.1";
        sha256 = "1mz02ys85z79nj24ylsmgh8v2m7zv2rixf7w0iqnwc49lax52w4q";
-       revision = "2";
-       editedCabalFile = "1vsb5707b2mza2sd1xrrih4y85iaiwp05fajr359xlg1n1dfc1qf";
+       revision = "3";
+       editedCabalFile = "188vz6j28ir7c6qrch3i95p9dd98b9f4hk9yvilnwpzd5v86dm3x";
        libraryHaskellDepends = [
          aeson array base base16-bytestring binary bytestring containers
          hashable scientific tagged text time-compat transformers
@@ -264157,6 +268056,7 @@ self: {
        executableHaskellDepends = [ base data-default mtl split ];
        description = "Application library for building interactive console CLIs";
        license = lib.licenses.bsd3;
+       mainProgram = "some-cli";
      }) {};
 
   "structured-haskell-mode" = callPackage
@@ -264177,7 +268077,8 @@ self: {
        ];
        description = "Structured editing Emacs mode for Haskell";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "structured-haskell-mode";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "structured-mongoDB" = callPackage
@@ -264293,6 +268194,7 @@ self: {
        description = "A revival of the classic game Stunts (LambdaCube tech demo)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stunts";
      }) {};
 
   "stutter" = callPackage
@@ -264321,6 +268223,7 @@ self: {
        description = "(Stutter Text|String)-Utterer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stutter";
      }) {};
 
   "stylish-cabal" = callPackage
@@ -264348,6 +268251,7 @@ self: {
        description = "Format Cabal files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "stylish-cabal";
        broken = true;
      }) {};
 
@@ -264381,6 +268285,7 @@ self: {
        ];
        description = "Haskell code prettifier";
        license = lib.licenses.bsd3;
+       mainProgram = "stylish-haskell";
      }) {};
 
   "stylist" = callPackage
@@ -264434,6 +268339,7 @@ self: {
        ];
        description = "A generator of nix files";
        license = "GPL";
+       mainProgram = "styx";
      }) {};
 
   "suavemente" = callPackage
@@ -264577,6 +268483,7 @@ self: {
        description = "Toolchain of subleq computer";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "subleq";
        broken = true;
      }) {};
 
@@ -264612,6 +268519,7 @@ self: {
        ];
        description = "Extract a part from CommonMark/Markdown docs";
        license = lib.licenses.gpl3Only;
+       mainProgram = "submark";
      }) {};
 
   "subnet" = callPackage
@@ -264642,6 +268550,7 @@ self: {
        description = "Subsample data";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "subsample";
        broken = true;
      }) {};
 
@@ -264686,6 +268595,7 @@ self: {
        executableHaskellDepends = [ base split ];
        description = "Modify SRT subtitle files";
        license = lib.licenses.bsd3;
+       mainProgram = "subtitles";
      }) {};
 
   "subwordgraph" = callPackage
@@ -264759,6 +268669,7 @@ self: {
        description = "Simple and moderately efficient suffix array implementation";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "suffix-array-exe";
        broken = true;
      }) {};
 
@@ -264927,6 +268838,7 @@ self: {
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "summon";
        broken = true;
      }) {};
 
@@ -264948,6 +268860,7 @@ self: {
        description = "Tool for scaffolding fully configured batteries-included production-level Haskell projects using TUI";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "summon-tui";
      }) {};
 
   "sump" = callPackage
@@ -265088,6 +269001,8 @@ self: {
        description = "Configure your dotfile deployment with a DSL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "super-user-spark";
+       broken = true;
      }) {};
 
   "superbubbles" = callPackage
@@ -265279,6 +269194,7 @@ self: {
        description = "A Supercompiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "supero";
        broken = true;
      }) {};
 
@@ -265496,6 +269412,7 @@ self: {
        description = "SystemVerilog to Verilog conversion";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sv2v";
        broken = true;
      }) {};
 
@@ -265595,6 +269512,7 @@ self: {
        description = "Code generation tool for Quartz code from a SVG";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svg2q";
      }) {};
 
   "svgcairo" = callPackage
@@ -265611,7 +269529,7 @@ self: {
        libraryPkgconfigDepends = [ librsvg ];
        description = "Binding to the libsvg-cairo library";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ dalpd ];
+       maintainers = [ lib.maintainers.dalpd ];
      }) {inherit (pkgs) librsvg;};
 
   "svgone" = callPackage
@@ -265636,6 +269554,7 @@ self: {
        description = "Optimise SVGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "svgone";
      }) {};
 
   "svgsym" = callPackage
@@ -265655,6 +269574,7 @@ self: {
        ];
        description = "A tool to prune unused symbols from icon SVG files";
        license = lib.licenses.gpl3Plus;
+       mainProgram = "svgsym";
      }) {};
 
   "svgutils" = callPackage
@@ -265670,6 +269590,7 @@ self: {
        description = "Helper functions for dealing with SVG files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "SVGtile";
        broken = true;
      }) {};
 
@@ -265812,6 +269733,7 @@ self: {
        description = "Testing of Swagger APIs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "swagger-test";
        broken = true;
      }) {};
 
@@ -265826,8 +269748,8 @@ self: {
      }:
      mkDerivation {
        pname = "swagger2";
-       version = "2.8.2";
-       sha256 = "0vxqmc3wx01fx04cqq9l0gvcas7njsj6q2r960rb1gbmggydpysc";
+       version = "2.8.4";
+       sha256 = "11gpnh7dg6bqbvgwfw9xri3l08kvxply698arpz62ix38qyf14iv";
        setupHaskellDepends = [ base Cabal cabal-doctest ];
        libraryHaskellDepends = [
          aeson aeson-pretty base base-compat-batteries bytestring containers
@@ -265883,6 +269805,7 @@ self: {
        description = "Clojure without alphanumerics";
        license = lib.licenses.lgpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "swearjure";
        broken = true;
      }) {};
 
@@ -265962,6 +269885,7 @@ self: {
        ];
        description = "A semantic web toolkit";
        license = lib.licenses.lgpl21Only;
+       mainProgram = "Swish";
      }) {};
 
   "swiss-ephemeris" = callPackage
@@ -266045,6 +269969,7 @@ self: {
        description = "A simple web server for serving directories";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sws";
        broken = true;
      }) {};
 
@@ -266128,8 +270053,8 @@ self: {
      }:
      mkDerivation {
        pname = "sydtest";
-       version = "0.10.0.0";
-       sha256 = "009d4ai8dqhxcrgkd0d37l97dkiqh7qmr1wvhwj38mblrhpgpm3z";
+       version = "0.10.1.0";
+       sha256 = "149nn1shdwixg3is7fgjav0ff4vaqkm39ha0gswds7z57pr18qhm";
        libraryHaskellDepends = [
          async autodocodec autodocodec-yaml base bytestring containers Diff
          dlist envparse filepath MonadRandom mtl optparse-applicative path
@@ -266143,7 +270068,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A modern testing framework for Haskell with good defaults and advanced testing features";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-aeson" = callPackage
@@ -266162,7 +270086,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "An aeson companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-amqp" = callPackage
@@ -266203,6 +270126,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Automatic test suite discovery for sydtest";
        license = "unknown";
+       mainProgram = "sydtest-discover";
      }) {};
 
   "sydtest-hedgehog" = callPackage
@@ -266218,7 +270142,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A Hedgehog companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-hedis" = callPackage
@@ -266239,6 +270162,7 @@ self: {
        description = "An hedis companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sydtest-hspec" = callPackage
@@ -266247,8 +270171,8 @@ self: {
      }:
      mkDerivation {
        pname = "sydtest-hspec";
-       version = "0.3.0.0";
-       sha256 = "1vda3jhgnqbs0sw219li3s83vyqr1k1hzvy0prr2c4hv62cr47p3";
+       version = "0.3.0.1";
+       sha256 = "1h08s06vvgm47cqrvgrkd4wy7igjx30map0k4a3xwnypa5fvbxmh";
        libraryHaskellDepends = [
          base hspec-core mtl QuickCheck stm sydtest
        ];
@@ -266256,7 +270180,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "An Hspec companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-mongo" = callPackage
@@ -266277,6 +270200,7 @@ self: {
        description = "An mongoDB companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sydtest-persistent" = callPackage
@@ -266292,7 +270216,6 @@ self: {
        ];
        description = "A persistent companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-persistent-postgresql" = callPackage
@@ -266315,6 +270238,7 @@ self: {
        description = "An persistent-postgresql companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sydtest-persistent-sqlite" = callPackage
@@ -266333,7 +270257,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A persistent-sqlite companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-process" = callPackage
@@ -266349,7 +270272,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A typed-process companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-rabbitmq" = callPackage
@@ -266370,6 +270292,7 @@ self: {
        description = "An rabbitmq companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "sydtest-servant" = callPackage
@@ -266389,7 +270312,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A servant companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-typed-process" = callPackage
@@ -266405,7 +270327,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A typed-process companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-wai" = callPackage
@@ -266427,7 +270348,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A wai companion library for sydtest";
        license = "unknown";
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "sydtest-webdriver" = callPackage
@@ -266530,6 +270450,7 @@ self: {
        description = "A yesod companion library for sydtest";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "syfco" = callPackage
@@ -266551,6 +270472,7 @@ self: {
        description = "Synthesis Format Conversion Tool / Library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syfco";
        broken = true;
      }) {};
 
@@ -266578,6 +270500,7 @@ self: {
        description = "Lambda calculus visualization";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sylvia";
      }) {};
 
   "sym" = callPackage
@@ -267030,6 +270953,7 @@ self: {
        description = "SymEngine symbolic mathematics engine for Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "symengine-hs-exe";
        broken = true;
      }) {inherit (pkgs) gmp; inherit (pkgs) gmpxx; 
          inherit (pkgs) symengine;};
@@ -267076,6 +271000,7 @@ self: {
        ];
        description = "Minimal implementation(s) of the classic electronic memory game";
        license = lib.licenses.gpl3Only;
+       mainProgram = "symon-ansi";
      }) {};
 
   "sync" = callPackage
@@ -267127,6 +271052,7 @@ self: {
        description = "Fast incremental file transfer using Merkle-Hash-Trees";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sync-mht";
        broken = true;
      }) {};
 
@@ -267191,6 +271117,7 @@ self: {
        description = "Similar code analysis";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "synt";
        broken = true;
      }) {Synt = null;};
 
@@ -267279,6 +271206,7 @@ self: {
        description = "Example application using syntax, a library for abstract syntax descriptions";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syntax-example";
      }) {};
 
   "syntax-example-json" = callPackage
@@ -267298,6 +271226,7 @@ self: {
        description = "Example JSON parser/pretty-printer";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "syntax-example-json";
      }) {};
 
   "syntax-pretty" = callPackage
@@ -267428,9 +271357,7 @@ self: {
        ];
        description = "Control synthesizer effects via ALSA/MIDI";
        license = lib.licenses.gpl3Only;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "synthesizer-core" = callPackage
@@ -267796,6 +271723,7 @@ self: {
        description = "Lifted versions of System functions";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "main";
        broken = true;
      }) {};
 
@@ -267892,6 +271820,7 @@ self: {
        description = "Runs system tests of applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "system-test";
        broken = true;
      }) {};
 
@@ -267960,7 +271889,7 @@ self: {
        testHaskellDepends = [ base network unix ];
        description = "Systemd facilities (Socket activation, Notify)";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "systemd-socket-activation" = callPackage
@@ -267995,6 +271924,7 @@ self: {
        description = "An application that regularly logs system stats for later analysis";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "systemstats";
      }) {};
 
   "syz" = callPackage
@@ -268119,6 +272049,7 @@ self: {
        description = "Simple tool to generate tables from DSV input";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "table";
        broken = true;
      }) {};
 
@@ -268144,6 +272075,7 @@ self: {
        ];
        description = "Format tabular data as grid or table";
        license = lib.licenses.bsd3;
+       mainProgram = "table-layout-test-styles";
      }) {};
 
   "table-tennis" = callPackage
@@ -268175,6 +272107,7 @@ self: {
        description = "An interactive theorem prover based on semantic tableaux";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tableaux.cgi";
        broken = true;
      }) {};
 
@@ -268240,6 +272173,7 @@ self: {
        ];
        description = "Pretty-printing of CSV files";
        license = "unknown";
+       mainProgram = "tablize";
      }) {};
 
   "tabloid" = callPackage
@@ -268259,6 +272193,7 @@ self: {
        description = "View the output of shell commands in a table";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tabloid";
        broken = true;
      }) {};
 
@@ -268275,6 +272210,7 @@ self: {
        description = "Indents source files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tabs";
        broken = true;
      }) {};
 
@@ -268331,11 +272267,10 @@ self: {
        executablePkgconfigDepends = [ gtk3 ];
        description = "A desktop bar similar to xmobar, but with more GUI";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ rvl ];
+       mainProgram = "taffybar";
+       maintainers = [ lib.maintainers.rvl ];
        broken = true;
      }) {inherit (pkgs) gtk3;};
 
@@ -268549,6 +272484,7 @@ self: {
        ];
        description = "Efficient and simple HTML/XML parsing library";
        license = lib.licenses.bsd3;
+       mainProgram = "taggy";
      }) {};
 
   "taggy-lens" = callPackage
@@ -268749,6 +272685,7 @@ self: {
        ];
        description = "Black magic tagsoup";
        license = lib.licenses.bsd3;
+       mainProgram = "tagstew";
      }) {};
 
   "tagstream-conduit" = callPackage
@@ -268876,6 +272813,7 @@ self: {
        description = "Tailwind wrapped in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tailwind-run";
        broken = true;
      }) {};
 
@@ -268917,6 +272855,7 @@ self: {
        description = "AI(s) for playing Tak on playtak.com";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "takky";
      }) {};
 
   "takahashi" = callPackage
@@ -268933,6 +272872,28 @@ self: {
        broken = true;
      }) {};
 
+  "takedouble" = callPackage
+    ({ mkDerivation, base, bytestring, directory, extra, filepath
+     , hedgehog, temporary, unix
+     }:
+     mkDerivation {
+       pname = "takedouble";
+       version = "0.0.1.1";
+       sha256 = "0b0m96grcjjk1hw9i13d9nfs8k7i68zl4jv5raqw8lxqvav5yd3j";
+       isLibrary = true;
+       isExecutable = true;
+       libraryHaskellDepends = [
+         base bytestring directory extra filepath unix
+       ];
+       executableHaskellDepends = [ base ];
+       testHaskellDepends = [
+         base directory extra filepath hedgehog temporary unix
+       ];
+       description = "duplicate file finder";
+       license = lib.licenses.bsd3;
+       mainProgram = "takedouble";
+     }) {};
+
   "takusen-oracle" = callPackage
     ({ mkDerivation, base, clntsh, mtl, old-time, time }:
      mkDerivation {
@@ -268988,6 +272949,7 @@ self: {
        description = "Line oriented fast enough text search";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "talash";
        broken = true;
      }) {};
 
@@ -269019,6 +272981,7 @@ self: {
        description = "The Tamarin prover for security protocol analysis";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tamarin-prover";
      }) {};
 
   "tamarin-prover-term" = callPackage
@@ -269279,6 +273242,7 @@ self: {
        description = "Generate test-suites from refinement types";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "target";
      }) {inherit (pkgs) z3;};
 
   "tart" = callPackage
@@ -269301,6 +273265,7 @@ self: {
        ];
        description = "Terminal Art";
        license = lib.licenses.bsd3;
+       mainProgram = "tart";
      }) {};
 
   "task" = callPackage
@@ -269321,6 +273286,7 @@ self: {
        description = "A command line tool for keeping track of tasks you worked on";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "task";
      }) {};
 
   "task-distribution" = callPackage
@@ -269387,6 +273353,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A command-line kanban board/task manager";
        license = lib.licenses.bsd3;
+       mainProgram = "taskell";
      }) {};
 
   "taskpool" = callPackage
@@ -269414,10 +273381,8 @@ self: {
      }:
      mkDerivation {
        pname = "taskwarrior";
-       version = "0.6.0.2";
-       sha256 = "16m4578ybwawiza4fg8gc6ndfc8hpvdkh5bv3ghamwpqyw0aq766";
-       revision = "1";
-       editedCabalFile = "10yyjis1crs60h00z0nlrq8p4hqzafjjn63fqnwf7wjq1yqmg5h5";
+       version = "0.6.0.3";
+       sha256 = "177ylpifmij5lld5xqy8fpfcm5w8ng2fh5hckr3m5z638kk3q10z";
        libraryHaskellDepends = [
          aeson base bytestring containers process random text time uuid
        ];
@@ -269428,7 +273393,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Types and aeson instances for taskwarrior tasks";
        license = lib.licenses.agpl3Plus;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "tasty" = callPackage
@@ -269484,6 +273449,7 @@ self: {
        description = "Auto discovery for Tasty with support for ingredients and test tree generation";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-auto";
        broken = true;
      }) {};
 
@@ -269580,6 +273546,7 @@ self: {
        ];
        description = "Test discovery for the tasty framework";
        license = lib.licenses.mit;
+       mainProgram = "tasty-discover";
      }) {};
 
   "tasty-expected-failure" = callPackage
@@ -269596,7 +273563,7 @@ self: {
        ];
        description = "Mark tasty tests as failure expected";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ nomeata ];
+       maintainers = [ lib.maintainers.nomeata ];
      }) {};
 
   "tasty-fail-fast" = callPackage
@@ -269869,6 +273836,22 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "tasty-inspection-testing_0_2" = callPackage
+    ({ mkDerivation, base, ghc, inspection-testing, tasty
+     , template-haskell
+     }:
+     mkDerivation {
+       pname = "tasty-inspection-testing";
+       version = "0.2";
+       sha256 = "1gdwbg545gwfx2a26s7hkgz9l9mfb13i6v20j09hqrlbh1xsi3qz";
+       libraryHaskellDepends = [
+         base ghc inspection-testing tasty template-haskell
+       ];
+       description = "Inspection testing support for tasty";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "tasty-integrate" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cmdargs, containers
      , deepseq, directory, either, haskell-src-exts
@@ -270045,6 +274028,7 @@ self: {
        description = "Golden testing provider for tasty with muti-line diff output";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tasty-mgolden-example";
        broken = true;
      }) {};
 
@@ -270105,6 +274089,7 @@ self: {
        testHaskellDepends = [ base QuickCheck tasty ];
        description = "Pre-built tasty trees for checking lawful class properties using QuickCheck";
        license = lib.licenses.bsd3;
+       mainProgram = "tasty-quickcheck-laws-demo";
      }) {};
 
   "tasty-rerun" = callPackage
@@ -270333,6 +274318,7 @@ self: {
        description = "Meta tic-tac-toe ncurses game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tateti-tateti";
      }) {};
 
   "tau" = callPackage
@@ -270410,6 +274396,7 @@ self: {
        description = "TokyoCabinet CLI interface";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tchcli";
      }) {};
 
   "tce-conf" = callPackage
@@ -270645,6 +274632,7 @@ self: {
        description = "Codegen for TDLib";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tdlib-gen";
      }) {};
 
   "tdlib-types" = callPackage
@@ -270705,6 +274693,7 @@ self: {
        description = "Pure Haskell TDS protocol implementation. Mainly for beam-mssql and beam-sybase";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -270796,6 +274785,7 @@ self: {
        description = "Procedures and Sequences";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "technique";
        broken = true;
      }) {};
 
@@ -270913,6 +274903,7 @@ self: {
        description = "Telegram Bot microframework for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hello-bot";
      }) {};
 
   "telegram-bot-simple" = callPackage
@@ -271057,6 +275048,7 @@ self: {
        description = "A tool to quickly switch between directories";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "teleport-exe";
        broken = true;
      }) {};
 
@@ -271113,6 +275105,7 @@ self: {
        description = "IRC tellbot";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tellbot";
        broken = true;
      }) {};
 
@@ -271135,6 +275128,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "A dead-simple shell interpolation templating utility";
        license = lib.licenses.bsd3;
+       mainProgram = "tempered";
      }) {};
 
   "tempi" = callPackage
@@ -271188,23 +275182,11 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "template-haskell-compat-v0208";
-       version = "0.1.7";
-       sha256 = "1bqnshyf8n9xaybi5wjrj9akp9lxfyfd9zc8jv81m5bllbmxbp2z";
-       libraryHaskellDepends = [ base template-haskell ];
-       description = "A backwards compatibility layer for Template Haskell newer than 2.8";
-       license = lib.licenses.mit;
-     }) {};
-
-  "template-haskell-compat-v0208_0_1_9" = callPackage
-    ({ mkDerivation, base, template-haskell }:
-     mkDerivation {
-       pname = "template-haskell-compat-v0208";
        version = "0.1.9";
        sha256 = "082i7m3chwcxggfx5mgd716w83dxw6l9v8y4gl3p37f8rd2lqbrj";
        libraryHaskellDepends = [ base template-haskell ];
        description = "A backwards compatibility layer for Template Haskell newer than 2.8";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "template-haskell-optics" = callPackage
@@ -271305,6 +275287,7 @@ self: {
        description = "Make template from website";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "templateify";
        broken = true;
      }) {};
 
@@ -271522,6 +275505,7 @@ self: {
        description = "Interpreter for the FRP language Tempus";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tempus";
        broken = true;
      }) {};
 
@@ -271538,6 +275522,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Programmers' time tracker";
        license = lib.licenses.agpl3Only;
+       mainProgram = "tempus";
      }) {};
 
   "ten" = callPackage
@@ -271636,6 +275621,7 @@ self: {
        description = "Create valid deep neural network architectures";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tensor-safe";
        broken = true;
      }) {};
 
@@ -271751,6 +275737,7 @@ self: {
        description = "TensorFlow demo application for learning MNIST model";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Main";
        broken = true;
      }) {tensorflow-mnist-input-data = null;};
 
@@ -271941,6 +275928,7 @@ self: {
        description = "Bindings to the Termbox library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -271956,6 +275944,7 @@ self: {
        executableHaskellDepends = [ base cli ];
        description = "Composable terminal colors";
        license = lib.licenses.gpl3Only;
+       mainProgram = "termcolor";
      }) {};
 
   "terminal" = callPackage
@@ -272011,6 +276000,7 @@ self: {
        testHaskellDepends = [ base QuickCheck time ];
        description = "Simple terminal-based time tracker";
        license = lib.licenses.bsd3;
+       mainProgram = "punch";
      }) {};
 
   "terminal-size" = callPackage
@@ -272117,10 +276107,9 @@ self: {
        ];
        description = "Terminal emulator configurable in Haskell";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ cdepillabout ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "termonad";
+       maintainers = [ lib.maintainers.cdepillabout ];
      }) {inherit (pkgs) gtk3; inherit (pkgs) pcre2; 
          vte_291 = pkgs.vte;};
 
@@ -272141,6 +276130,7 @@ self: {
        description = "Plot time series in your terminal using commands stdout";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "termplot";
        broken = true;
      }) {};
 
@@ -272181,6 +276171,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "HTTP backend to store terraform state using pass and git";
        license = "AGPL";
+       mainProgram = "terraform-http-backend-pass";
      }) {};
 
   "terrahs" = callPackage
@@ -272215,6 +276206,7 @@ self: {
        description = "A semantic parser for lojban";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tersmu";
        broken = true;
      }) {};
 
@@ -272552,6 +276544,7 @@ self: {
        ];
        description = "Testing framework";
        license = lib.licenses.bsd3;
+       mainProgram = "test-karya-generate";
      }) {};
 
   "test-lib" = callPackage
@@ -272573,6 +276566,7 @@ self: {
        executableHaskellDepends = [ base simple-get-opt ];
        description = "A library to make a quick test-runner script";
        license = lib.licenses.isc;
+       mainProgram = "test-runner";
      }) {};
 
   "test-monad-laws" = callPackage
@@ -272667,6 +276661,7 @@ self: {
        description = "Lightweight development enviroments using test-sandbox";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test-sandbox-compose";
      }) {};
 
   "test-sandbox-hunit" = callPackage
@@ -272760,6 +276755,7 @@ self: {
        description = "Small test package";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testPkg";
        broken = true;
      }) {};
 
@@ -272888,6 +276884,7 @@ self: {
        description = "Display a monitor test pattern";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testpattern";
        broken = true;
      }) {};
 
@@ -272919,6 +276916,7 @@ self: {
        executableHaskellDepends = [ base GLUT random ];
        description = "A 2-D clone of Tetris";
        license = lib.licenses.bsd3;
+       mainProgram = "tetris";
      }) {};
 
   "tex-join-bib" = callPackage
@@ -272939,6 +276937,7 @@ self: {
        ];
        description = "Compile separate tex files with the same bibliography";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tex-join-bib";
      }) {};
 
   "tex2txt" = callPackage
@@ -272954,6 +276953,7 @@ self: {
        description = "LaTeX to plain-text conversion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tex2txt";
        broken = true;
      }) {};
 
@@ -272976,6 +276976,7 @@ self: {
        description = "View your latex output while editing";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "texbuilder";
        broken = true;
      }) {};
 
@@ -273214,17 +277215,18 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
-  "text-builder-dev_0_3_2" = callPackage
+  "text-builder-dev_0_3_3" = callPackage
     ({ mkDerivation, base, bytestring, criterion, deferred-folds
-     , QuickCheck, quickcheck-instances, rerebase, split, tasty
-     , tasty-hunit, tasty-quickcheck, text, transformers
+     , isomorphism-class, QuickCheck, quickcheck-instances, rerebase
+     , split, tasty, tasty-hunit, tasty-quickcheck, text, transformers
      }:
      mkDerivation {
        pname = "text-builder-dev";
-       version = "0.3.2";
-       sha256 = "0x77y8vrsxdrmx2d6y8wxw7qmdnxdjh4rzbs3lwmharxvrqdwnxs";
+       version = "0.3.3";
+       sha256 = "0h88yxj0w7ycpmzxyxnxkrz05dmi902dv9v8mxlx7nrr8idxss74";
        libraryHaskellDepends = [
-         base bytestring deferred-folds split text transformers
+         base bytestring deferred-folds isomorphism-class split text
+         transformers
        ];
        testHaskellDepends = [
          QuickCheck quickcheck-instances rerebase tasty tasty-hunit
@@ -273543,6 +277545,7 @@ self: {
        ];
        description = "Parser and Printer for LDAP text data stream";
        license = lib.licenses.bsd3;
+       mainProgram = "parseTest";
      }) {};
 
   "text-lens" = callPackage
@@ -273828,6 +277831,7 @@ self: {
        testHaskellDepends = [ base hedgehog neat-interpolation text ];
        description = "Simple text replacements from a list of search/replace pairs";
        license = lib.licenses.asl20;
+       mainProgram = "text-replace";
      }) {};
 
   "text-rope" = callPackage
@@ -273962,6 +277966,8 @@ self: {
        pname = "text-show-instances";
        version = "3.9";
        sha256 = "1bfangk4ys6pvhrv3j7i2c29xnhgin5lma2ndw051hnmmc7v2j7l";
+       revision = "1";
+       editedCabalFile = "1radrshv4flxlqsv36bz06pvw1l7nanqimfrx9rzspxcnldzv5q7";
        libraryHaskellDepends = [
          base base-compat-batteries bifunctors binary containers directory
          ghc-boot-th haskeline hpc old-locale old-time pretty random
@@ -274207,6 +278213,7 @@ self: {
        description = "A simple Haskell program to provide tags for Haskell code completion in TextMate";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "textmatetags";
      }) {};
 
   "textocat-api" = callPackage
@@ -274314,6 +278321,7 @@ self: {
        description = "A library for building tftp servers";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tftp_upload";
        broken = true;
      }) {};
 
@@ -274458,8 +278466,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "th-data-compat";
-       version = "0.1.0.0";
-       sha256 = "03d5ddbxzfn60ysxxn17q7gzdlls8hvlsvhzai4mn0qfjpwi6ljx";
+       version = "0.1.1.0";
+       sha256 = "0579yxlcl3cfirjim31capk7q2raf9bmmfnvcxxnicjmvx22790q";
        libraryHaskellDepends = [ base template-haskell ];
        description = "Compatibility for data definition template of TH";
        license = lib.licenses.bsd3;
@@ -275007,6 +279015,7 @@ self: {
        description = "Give your dependencies stars on GitHub!";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thank-you-stars";
        broken = true;
      }) {};
 
@@ -275049,6 +279058,7 @@ self: {
        description = "Haskell API bindings for http://themoviedb.org";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tmdb";
        broken = true;
      }) {};
 
@@ -275071,6 +279081,7 @@ self: {
        ];
        description = "Project templating tool";
        license = lib.licenses.bsd3;
+       mainProgram = "themplate";
      }) {};
 
   "thentos-cookie-session" = callPackage
@@ -275125,6 +279136,7 @@ self: {
        description = "A simple client for the TheoremQuest theorem proving game";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tq";
      }) {};
 
   "these" = callPackage
@@ -275210,6 +279222,7 @@ self: {
        description = "Typing Haskell In Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "thih";
        broken = true;
      }) {};
 
@@ -275372,6 +279385,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Runs other programs in the manner of a thread pool";
        license = "GPL";
+       mainProgram = "threadpool";
      }) {};
 
   "threaded" = callPackage
@@ -275454,8 +279468,8 @@ self: {
      }:
      mkDerivation {
        pname = "threads-supervisor";
-       version = "1.2.0.1";
-       sha256 = "013j28ma6bwmf50n05ywli9pf5r4vyg8w4liv4yibr459207k31m";
+       version = "1.2.0.2";
+       sha256 = "0qaazhx88g2rgr16v5xp6dv92vmn0vpvj6yyd07a1frkplhhcxpi";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -275468,6 +279482,7 @@ self: {
        ];
        description = "Simple, IO-based library for Erlang-style thread supervision";
        license = lib.licenses.mit;
+       mainProgram = "threads-supervisor-example";
      }) {};
 
   "threadscope" = callPackage
@@ -275489,6 +279504,7 @@ self: {
        ];
        description = "A graphical tool for profiling parallel Haskell programs";
        license = lib.licenses.bsd3;
+       mainProgram = "threadscope";
      }) {};
 
   "threefish" = callPackage
@@ -275538,8 +279554,8 @@ self: {
        pname = "threepenny-gui";
        version = "0.9.1.0";
        sha256 = "00sjkfa9qfnnwqfdw68yb8hq6nm1y5qv9896rzn5aachr7mlfpx2";
-       revision = "4";
-       editedCabalFile = "020yz8zgbk76cwi0z3bf2ikfpd7mm55jp1hjqdbjjxj7k2mwpl1h";
+       revision = "5";
+       editedCabalFile = "0034dl1mzzdi22c589qn5hb1k77vb97d54v3cgim4av42n8r76d1";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -275566,6 +279582,7 @@ self: {
        description = "Write simple nested context menus for threepenny-gui";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "threepenny-gui-contextmenu-exe";
        broken = true;
      }) {};
 
@@ -275582,6 +279599,7 @@ self: {
        description = "Flexbox layouts for Threepenny-gui";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "threepenny-flexbox-exe";
        broken = true;
      }) {};
 
@@ -275829,6 +279847,7 @@ self: {
        description = "A desktop bar based on WebKit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tianbar";
        broken = true;
      }) {inherit (pkgs) gtk3; inherit (pkgs) webkitgtk;};
 
@@ -275863,6 +279882,7 @@ self: {
        description = "Useful if reading \"Why FP matters\" by John Hughes";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tic-tac-toe";
      }) {};
 
   "ticker" = callPackage
@@ -275899,6 +279919,7 @@ self: {
        testHaskellDepends = [ base QuickCheck text ];
        description = "A basic implementation of a personal ticket management system";
        license = lib.licenses.mit;
+       mainProgram = "ticket-manager";
      }) {};
 
   "tickle" = callPackage
@@ -275960,6 +279981,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion weigh ];
        description = "Pattern language for improvised music";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tidal";
      }) {};
 
   "tidal_1_8_0" = callPackage
@@ -275988,6 +280010,7 @@ self: {
        description = "Pattern language for improvised music";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tidal";
      }) {};
 
   "tidal-midi" = callPackage
@@ -276042,6 +280065,7 @@ self: {
        description = "Visual rendering for Tidal patterns and osc messages";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tidal-vis";
        broken = true;
      }) {};
 
@@ -276086,6 +280110,7 @@ self: {
        description = "Tiger Compiler of Universiteit Utrecht";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tiger";
        broken = true;
      }) {};
 
@@ -276155,6 +280180,7 @@ self: {
        ];
        description = "A program for generating LaTeX code of string diagrams";
        license = lib.licenses.mit;
+       mainProgram = "tikzsd";
      }) {};
 
   "tile" = callPackage
@@ -276198,6 +280224,7 @@ self: {
        description = "The Timber Compiler";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timberc";
      }) {};
 
   "time_1_12_2" = callPackage
@@ -276521,6 +280548,7 @@ self: {
        description = "Time series analysis";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "time-series";
        broken = true;
      }) {};
 
@@ -276625,6 +280653,7 @@ self: {
        executableHaskellDepends = [ base haskeline uu-parsinglib ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timecalc";
        broken = true;
      }) {};
 
@@ -276639,6 +280668,7 @@ self: {
        executableHaskellDepends = [ base process time ];
        description = "time each line of terminal output";
        license = lib.licenses.gpl2Only;
+       mainProgram = "timeconsole";
      }) {};
 
   "timeit" = callPackage
@@ -276690,6 +280720,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Initial project template from stack";
        license = lib.licenses.bsd3;
+       mainProgram = "Tutorial1";
      }) {};
 
   "timelike" = callPackage
@@ -276833,6 +280864,7 @@ self: {
        ];
        description = "A tool for visualizing time series from log files";
        license = lib.licenses.bsd3;
+       mainProgram = "tplot";
      }) {};
 
   "timeprint" = callPackage
@@ -276869,6 +280901,8 @@ self: {
        pname = "timerep";
        version = "2.0.1.0";
        sha256 = "1l67gbfjydq0xapry5k9pwzxmp6z7ixzyvwshnszryspcckagxif";
+       revision = "1";
+       editedCabalFile = "1sk6bd6d0qvfbhn8b8na2m2z784gcbmxmgm1i6xcfbb8bls7bx7q";
        libraryHaskellDepends = [
          attoparsec base monoid-subclasses text time
        ];
@@ -276879,6 +280913,25 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "timerep_2_1_0_0" = callPackage
+    ({ mkDerivation, attoparsec, base, monoid-subclasses, QuickCheck
+     , tasty, tasty-hunit, tasty-quickcheck, text, time
+     }:
+     mkDerivation {
+       pname = "timerep";
+       version = "2.1.0.0";
+       sha256 = "1qik0bg609657y12vlkiip4ry586bkwyfmy5wabnf1qc184zqzir";
+       libraryHaskellDepends = [
+         attoparsec base monoid-subclasses text time
+       ];
+       testHaskellDepends = [
+         base QuickCheck tasty tasty-hunit tasty-quickcheck text time
+       ];
+       description = "Parse and display time according to some RFCs (RFC3339, RFC2822, RFC822)";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "timers" = callPackage
     ({ mkDerivation, base, lifted-base, monad-control, suspend
      , transformers-base
@@ -276980,6 +281033,7 @@ self: {
        ];
        description = "Run a command and timestamp its stdout/stderr lines";
        license = lib.licenses.bsd3;
+       mainProgram = "Timestamp";
      }) {};
 
   "timestamper" = callPackage
@@ -276993,6 +281047,7 @@ self: {
        executableHaskellDepends = [ base old-locale time ];
        description = "Read standard input and prepend each line with a timestamp";
        license = lib.licenses.mit;
+       mainProgram = "timestamper";
      }) {};
 
   "timeutils" = callPackage
@@ -277009,6 +281064,7 @@ self: {
        description = "Time utilities";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "timeutils";
        broken = true;
      }) {};
 
@@ -277144,6 +281200,7 @@ self: {
        description = "A softer alternative to Haddock";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tintin";
        broken = true;
      }) {};
 
@@ -277199,6 +281256,7 @@ self: {
        description = "A fast DOM parser for a subset of XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "validate";
        broken = true;
      }) {};
 
@@ -277268,6 +281326,7 @@ self: {
        description = "Convert from Haskell to Tip";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tip-ghc";
      }) {};
 
   "tip-lib" = callPackage
@@ -277292,6 +281351,7 @@ self: {
        description = "tons of inductive problems - support library and tools";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tip";
      }) {};
 
   "tiphys" = callPackage
@@ -277339,6 +281399,7 @@ self: {
        description = "Testing Infrastructure for Temporal AbstractioNs - GUI to debug temporal programs";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "titan";
      }) {};
 
   "titan-debug-yampa" = callPackage
@@ -277386,7 +281447,8 @@ self: {
        testHaskellDepends = [ base tasty tasty-hunit tasty-quickcheck ];
        description = "Convert English Words to Title Case";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "titlecase";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "tkhs" = callPackage
@@ -277406,6 +281468,7 @@ self: {
        description = "Simple Presentation Utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tkhs";
        broken = true;
      }) {};
 
@@ -277434,6 +281497,7 @@ self: {
        description = "A web-based visualizer for GHC Profiling Reports";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tkyprof";
        broken = true;
      }) {};
 
@@ -277470,6 +281534,7 @@ self: {
        testHaskellDepends = [ base tasty tasty-golden ];
        description = "Haskell tldr client";
        license = lib.licenses.bsd3;
+       mainProgram = "tldr";
      }) {};
 
   "tlex" = callPackage
@@ -277595,8 +281660,8 @@ self: {
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.5.7";
-       sha256 = "16pp6q0r4l23l3qi8v4yn4gjdsck8mg2jy3x7m7z5g6v9047v7mq";
+       version = "1.5.8";
+       sha256 = "0rxdv8ab98kd4nqql7djmmi51k4vayq21s38s43sx3rzn0iyla3b";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring cereal cryptonite
          data-default-class hourglass memory mtl network transformers x509
@@ -277614,7 +281679,7 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
-  "tls_1_5_8" = callPackage
+  "tls_1_6_0" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-types, async, base, bytestring
      , cereal, cryptonite, data-default-class, gauge, hourglass, memory
      , mtl, network, QuickCheck, tasty, tasty-quickcheck, transformers
@@ -277622,8 +281687,8 @@ self: {
      }:
      mkDerivation {
        pname = "tls";
-       version = "1.5.8";
-       sha256 = "0rxdv8ab98kd4nqql7djmmi51k4vayq21s38s43sx3rzn0iyla3b";
+       version = "1.6.0";
+       sha256 = "1674i73dwha42ia1wlngi346lnfbag46w1wvqfim5f61q6pj17fj";
        libraryHaskellDepends = [
          asn1-encoding asn1-types async base bytestring cereal cryptonite
          data-default-class hourglass memory mtl network transformers x509
@@ -277717,7 +281782,8 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Handle phylogenetic trees";
        license = lib.licenses.gpl3Plus;
-       maintainers = with lib.maintainers; [ dschrempf ];
+       mainProgram = "tlynx";
+       maintainers = [ lib.maintainers.dschrempf ];
      }) {};
 
   "tmapchan" = callPackage
@@ -277922,6 +281988,7 @@ self: {
        ];
        description = "simple executable for templating";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tmpl";
      }) {};
 
   "tn" = callPackage
@@ -277945,6 +282012,7 @@ self: {
        description = "A simple daily journal program";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tn";
      }) {};
 
   "tnet" = callPackage
@@ -278037,6 +282105,7 @@ self: {
        description = "Twitter bot generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toboggan";
      }) {};
 
   "todo" = callPackage
@@ -278076,6 +282145,7 @@ self: {
        description = "Easy-to-use TODOs manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "todos";
      }) {};
 
   "tofromxml" = callPackage
@@ -278113,6 +282183,7 @@ self: {
        ];
        description = "Manage the toilet queue at the IMO";
        license = "GPL";
+       mainProgram = "toilet";
      }) {};
 
   "token-bucket" = callPackage
@@ -278151,6 +282222,7 @@ self: {
        description = "Fast rate limiting using the token bucket algorithm (BSD)";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "token-limiter-extended-tests";
        broken = true;
      }) {};
 
@@ -278169,7 +282241,6 @@ self: {
        testToolDepends = [ sydtest-discover ];
        description = "A thread-safe concurrent token-bucket rate limiter that guarantees fairness";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "token-search" = callPackage
@@ -278196,6 +282267,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "token-search";
        broken = true;
      }) {};
 
@@ -278330,9 +282402,7 @@ self: {
        librarySystemDepends = [ tokyocabinet tokyotyrant ];
        description = "FFI bindings to libtokyotyrant";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
        hydraPlatforms = lib.platforms.none;
        broken = true;
      }) {inherit (pkgs) tokyocabinet; inherit (pkgs) tokyotyrant;};
@@ -278384,6 +282454,27 @@ self: {
        broken = true;
      }) {};
 
+  "toml-reader" = callPackage
+    ({ mkDerivation, aeson, base, bytestring, containers, deepseq
+     , directory, megaparsec, parser-combinators, process, tasty
+     , tasty-golden, tasty-hunit, text, time, unordered-containers
+     , vector
+     }:
+     mkDerivation {
+       pname = "toml-reader";
+       version = "0.1.0.0";
+       sha256 = "06gxp8pzh8cdrifg5n0mhlnrslrx7k235sz2ldpy60x7vz7qywv9";
+       libraryHaskellDepends = [
+         base containers deepseq megaparsec parser-combinators text time
+       ];
+       testHaskellDepends = [
+         aeson base bytestring containers directory process tasty
+         tasty-golden tasty-hunit text time unordered-containers vector
+       ];
+       description = "TOML format parser compliant with v1.0.0.";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "tomland" = callPackage
     ({ mkDerivation, base, bytestring, containers, deepseq, directory
      , hashable, hedgehog, hspec, hspec-hedgehog, hspec-megaparsec
@@ -278426,6 +282517,7 @@ self: {
        description = "Command-line tool to check syntax of TOML files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tomlcheck";
      }) {};
 
   "tonalude" = callPackage
@@ -278478,8 +282570,8 @@ self: {
      }:
      mkDerivation {
        pname = "tonatona-google-server-api";
-       version = "0.2.0.0";
-       sha256 = "01ilskcr8k219vijd3zkzy6lpzavqv36j3vxbx1hrms0hylnydah";
+       version = "0.3.0.0";
+       sha256 = "04bw1z2is1mr5mqllxrp1inagvnan95f4gckzyj3a87sv1x2qm8m";
        libraryHaskellDepends = [
          base google-server-api monad-logger persistent persistent-sqlite
          resource-pool servant-client tonalude tonaparser tonatona
@@ -278615,6 +282707,7 @@ self: {
        description = "Cluster single cells and analyze cell clade relationships";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "too-many-cells";
      }) {};
 
   "toodles" = callPackage
@@ -278651,6 +282744,7 @@ self: {
        description = "Manage the TODO entries in your code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toodles";
        broken = true;
      }) {};
 
@@ -278725,6 +282819,7 @@ self: {
        testHaskellDepends = [ base hspec profunctors text ];
        description = "Template-to-Haskell preprocessor, and templating language";
        license = lib.licenses.gpl3Only;
+       mainProgram = "tophat";
      }) {};
 
   "topkata" = callPackage
@@ -278744,6 +282839,7 @@ self: {
        description = "OpenGL Arcade Game";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "topkata";
      }) {};
 
   "topograph" = callPackage
@@ -278754,8 +282850,8 @@ self: {
        pname = "topograph";
        version = "1.0.0.1";
        sha256 = "1sd2gyirkdgwcll76zxw954wdsyxzajn59xa9zk55fbrsm6w24cv";
-       revision = "3";
-       editedCabalFile = "144pbbmir77ql5qzf031mh2qs946c05h22iz3fm8xkzg1cgils0z";
+       revision = "4";
+       editedCabalFile = "05pkc4byw9xqz4048sdlk24h311kw41nr18f3vs1p1vssyy10g36";
        libraryHaskellDepends = [
          base base-compat base-orphans containers vector
        ];
@@ -278822,7 +282918,7 @@ self: {
        libraryHaskellDepends = [ base void ];
        description = "Exhaustive pattern matching using lenses, traversals, and prisms";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "total-alternative" = callPackage
@@ -278877,6 +282973,7 @@ self: {
        description = "Library (and cli) to execute a procedure on file change";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "touched";
        broken = true;
      }) {};
 
@@ -278925,6 +283022,7 @@ self: {
        description = "A Tox protocol implementation in Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "toxsave-convert";
      }) {};
 
   "toxcore-c" = callPackage
@@ -278951,6 +283049,7 @@ self: {
        description = "Haskell bindings to the C reference implementation of Tox";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "groupbot";
      }) {toxcore = null;};
 
   "toxiproxy-haskell" = callPackage
@@ -279065,6 +283164,7 @@ self: {
        description = "simple, parallel job scheduling";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tpar";
      }) {};
 
   "tpb" = callPackage
@@ -279233,8 +283333,8 @@ self: {
      }:
      mkDerivation {
        pname = "tracing";
-       version = "0.0.7.2";
-       sha256 = "06cqj4801inww5lw5c1qbjp5yrbg5rpifnkr9w5lws8654v44iim";
+       version = "0.0.7.3";
+       sha256 = "1v178byysbl6cpx8dqs4a1failfzpr80fqv7icddq28rh95b2aj2";
        libraryHaskellDepends = [
          aeson base base16-bytestring bytestring case-insensitive containers
          http-client mtl network random stm text time transformers unliftio
@@ -279283,6 +283383,7 @@ self: {
        description = "Package to list all tracked and untracked existing files via Git";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tracked-files";
        broken = true;
      }) {};
 
@@ -279318,6 +283419,7 @@ self: {
        description = "A command-line tool for live monitoring";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trackit";
        broken = true;
      }) {};
 
@@ -279387,6 +283489,7 @@ self: {
          time transformers unordered-containers
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "trade-journal";
      }) {inherit (pkgs) gmp; inherit (pkgs) mpfr;};
 
   "traildb" = callPackage
@@ -279523,6 +283626,7 @@ self: {
        description = "Text transformer and interpreter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "transf";
      }) {};
 
   "transfer-db" = callPackage
@@ -279552,6 +283656,7 @@ self: {
        description = "ODBC database transfer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "transfer-db";
      }) {};
 
   "transformations" = callPackage
@@ -279573,6 +283678,7 @@ self: {
        description = "Generic representation of tree transformations";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "Benchmark";
      }) {};
 
   "transformers_0_6_0_4" = callPackage
@@ -279926,6 +284032,7 @@ self: {
        description = "Translation cli tool";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "translate";
      }) {};
 
   "trasa" = callPackage
@@ -280150,6 +284257,7 @@ self: {
        description = ".travis.yml preprocessor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "travis-meta-yaml";
        broken = true;
      }) {};
 
@@ -280165,6 +284273,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "A better travis_wait";
        license = lib.licenses.bsd3;
+       mainProgram = "travis-pogodi";
      }) {};
 
   "trawl" = callPackage
@@ -280184,6 +284293,7 @@ self: {
        description = "A tool for finding haddocks";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trawl";
        broken = true;
      }) {};
 
@@ -280200,6 +284310,7 @@ self: {
        description = "Tray Icon application to PowerOff / Reboot computer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "traypoweroff";
        broken = true;
      }) {};
 
@@ -280233,6 +284344,8 @@ self: {
        pname = "tree-diff";
        version = "0.2.1.1";
        sha256 = "0p1pvbqgrwkxmv4b8xmw9mx6a1xpyl6j8ivg1qs65q5nd7xaxqvp";
+       revision = "2";
+       editedCabalFile = "12smpqjg5ah2sr593d4glx8ib5yjj3wh1mhy6v4xy82xj27mhh11";
        libraryHaskellDepends = [
          aeson ansi-terminal ansi-wl-pprint base base-compat bytestring
          bytestring-builder containers deepseq hashable parsec parsers
@@ -280637,6 +284750,7 @@ self: {
        description = "A PostgreSQL Database Migrator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trek";
      }) {};
 
   "trek-db" = callPackage
@@ -280858,6 +284972,7 @@ self: {
        description = "Trigger is a cross platform file system watcher for super fast build-and-restart workflows";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trigger";
        broken = true;
      }) {};
 
@@ -280875,6 +284990,7 @@ self: {
        description = "A command-line tool for trimming whitespace";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trim";
        broken = true;
      }) {};
 
@@ -280906,6 +285022,7 @@ self: {
        description = "Search for, annotate and trim poly-A tail";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trimpolya";
      }) {};
 
   "tripLL" = callPackage
@@ -280933,6 +285050,8 @@ self: {
        pname = "triplesec";
        version = "0.2.2.1";
        sha256 = "0wfrb1qkisbypfw4djm2cwlzrb1xhmkkv6cy8wyxvyrhqs5zzdrs";
+       revision = "1";
+       editedCabalFile = "1axxq9q33jf79lv0ydwai24bgczvn4pdxw6a7sk3715js2di6xgn";
        libraryHaskellDepends = [
          base cryptonite memory mtl transformers
        ];
@@ -281004,6 +285123,7 @@ self: {
        description = "A Tropical Geometry package for Haskell";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tropical-geometry";
      }) {};
 
   "true-name" = callPackage
@@ -281034,6 +285154,7 @@ self: {
        description = "Audio file compressor-limiter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "truelevel";
      }) {};
 
   "trurl" = callPackage
@@ -281057,6 +285178,7 @@ self: {
        description = "Haskell template code generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "trurl";
      }) {};
 
   "trust-chain" = callPackage
@@ -281207,6 +285329,7 @@ self: {
        description = "Real time TSP tour visualization";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsp-viz";
        broken = true;
      }) {};
 
@@ -281259,6 +285382,7 @@ self: {
        description = "Interacts with tesseract to ease reading of RAW Japanese manga";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsuntsun";
        broken = true;
      }) {};
 
@@ -281274,6 +285398,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Convert tsv to csv";
        license = lib.licenses.bsd3;
+       mainProgram = "tsv2csv";
      }) {};
 
   "tsvsql" = callPackage
@@ -281293,6 +285418,7 @@ self: {
        description = "Template tsv into SQL";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsvsql";
        broken = true;
      }) {};
 
@@ -281323,6 +285449,7 @@ self: {
        description = "An API binding Web.Spock to Database.Beam";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tsweb";
      }) {};
 
   "ttask" = callPackage
@@ -281346,6 +285473,7 @@ self: {
        description = "This is task management tool for yourself, that inspired by scrum";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ttask";
        broken = true;
      }) {};
 
@@ -281420,7 +285548,7 @@ self: {
        ];
        description = "Things Tracker Network JSON Types";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "ttn-client" = callPackage
@@ -281442,7 +285570,8 @@ self: {
        description = "TheThingsNetwork client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sorki ];
+       mainProgram = "ttnc";
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "ttrie" = callPackage
@@ -281496,6 +285625,7 @@ self: {
        description = "Working with files for the Tiptoi® pen";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tttool";
        broken = true;
      }) {};
 
@@ -281557,6 +285687,7 @@ self: {
        description = "Homogeneous tuples";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tuplepp";
      }) {};
 
   "tuple" = callPackage
@@ -281747,6 +285878,7 @@ self: {
        description = "Plays music generated by Turing machines with 5 states and 2 symbols";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "turing-music";
        broken = true;
      }) {};
 
@@ -281781,6 +285913,7 @@ self: {
        testHaskellDepends = [ base HUnit ];
        description = "Haskell port of Deniz Yuret's Turkish deasciifier";
        license = lib.licenses.mit;
+       mainProgram = "turkish-deasciifier";
      }) {};
 
   "turn-loop" = callPackage
@@ -281805,6 +285938,7 @@ self: {
        executableHaskellDepends = [ base containers MonadRandom random ];
        description = "shifts scheduling tool";
        license = lib.licenses.bsd3;
+       mainProgram = "settimana";
      }) {};
 
   "turtle" = callPackage
@@ -281828,7 +285962,34 @@ self: {
        benchmarkHaskellDepends = [ base tasty-bench text ];
        description = "Shell programming, Haskell-style";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
+     }) {};
+
+  "turtle_1_6_1" = callPackage
+    ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock
+     , containers, directory, doctest, exceptions, filepath, foldl
+     , hostname, managed, optional-args, optparse-applicative, process
+     , stm, streaming-commons, tasty, tasty-bench, tasty-hunit
+     , temporary, text, time, transformers, unix, unix-compat
+     }:
+     mkDerivation {
+       pname = "turtle";
+       version = "1.6.1";
+       sha256 = "171viripwn8hg3afkkswr243bv7q0r0bz3mn0bflddm4jdf49597";
+       libraryHaskellDepends = [
+         ansi-wl-pprint async base bytestring clock containers directory
+         exceptions filepath foldl hostname managed optional-args
+         optparse-applicative process stm streaming-commons temporary text
+         time transformers unix unix-compat
+       ];
+       testHaskellDepends = [
+         base doctest filepath tasty tasty-hunit temporary
+       ];
+       benchmarkHaskellDepends = [ base tasty-bench text ];
+       description = "Shell programming, Haskell-style";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "turtle-options" = callPackage
@@ -281846,6 +286007,7 @@ self: {
        description = "Collection of command line options and parsers for these options";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -281860,6 +286022,7 @@ self: {
        executableHaskellDepends = [ base bytestring ];
        description = "Trailing Whitespace";
        license = lib.licenses.bsd3;
+       mainProgram = "tw";
      }) {};
 
   "twain" = callPackage
@@ -281911,6 +286074,7 @@ self: {
        ];
        description = "An equational theorem prover";
        license = lib.licenses.bsd3;
+       mainProgram = "twee";
      }) {};
 
   "twee-lib" = callPackage
@@ -281955,6 +286119,7 @@ self: {
        description = "Command-line tool for twitter";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tweet";
      }) {};
 
   "twentefp" = callPackage
@@ -282096,6 +286261,7 @@ self: {
        description = "Rubik's cube solver";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twentyseven";
      }) {};
 
   "twfy-api-client" = callPackage
@@ -282122,6 +286288,7 @@ self: {
        description = "They Work For You API Client Library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twfy-api-client";
        broken = true;
      }) {};
 
@@ -282154,6 +286321,7 @@ self: {
        description = "CLI twitter client";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twhs";
      }) {};
 
   "twidge" = callPackage
@@ -282175,6 +286343,7 @@ self: {
        description = "Unix Command-Line Twitter and Identica Client";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twidge";
      }) {};
 
   "twilight-stm" = callPackage
@@ -282347,6 +286516,7 @@ self: {
        description = "A Haskell-based CLI Twitter client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twitter";
        broken = true;
      }) {};
 
@@ -282526,6 +286696,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Filter to convert plain text files to RTF";
        license = "GPL";
+       mainProgram = "txt2rtf";
      }) {};
 
   "txtblk" = callPackage
@@ -282987,8 +287158,8 @@ self: {
     ({ mkDerivation, base, template-haskell }:
      mkDerivation {
        pname = "type-level-numbers";
-       version = "0.1.1.1";
-       sha256 = "12iiyaqi60fpds7fv1qvphy84rwyj71maq54mfwpcr0bdrgyymjv";
+       version = "0.1.1.2";
+       sha256 = "0bw2b0hw8svgsy3whqxj66qqffdrl7643ar8187n9a0drs81353i";
        libraryHaskellDepends = [ base template-haskell ];
        testHaskellDepends = [ base template-haskell ];
        description = "Type level numbers implemented using type families";
@@ -283482,27 +287653,6 @@ self: {
      }:
      mkDerivation {
        pname = "typed-process";
-       version = "0.2.8.0";
-       sha256 = "1af0g34sws7fppziv7firr9r2wrnly4y6sr9nyqa8bvbbmadly45";
-       revision = "1";
-       editedCabalFile = "1m017nqbaqishii32gwhxa1849h0qnn06w7k1rn8c9d8w71m4vqm";
-       libraryHaskellDepends = [
-         async base bytestring process stm transformers unliftio-core
-       ];
-       testHaskellDepends = [
-         async base base64-bytestring bytestring hspec process stm temporary
-         transformers unliftio-core
-       ];
-       description = "Run external processes, with strong typing of streams";
-       license = lib.licenses.mit;
-     }) {};
-
-  "typed-process_0_2_10_1" = callPackage
-    ({ mkDerivation, async, base, base64-bytestring, bytestring, hspec
-     , process, stm, temporary, transformers, unliftio-core
-     }:
-     mkDerivation {
-       pname = "typed-process";
        version = "0.2.10.1";
        sha256 = "17h9jl7gi26v3cxb4jdcksbp755sqqp8w7303q8x8r36rmf8fdp4";
        libraryHaskellDepends = [
@@ -283514,7 +287664,6 @@ self: {
        ];
        description = "Run external processes, with strong typing of streams";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "typed-spreadsheet" = callPackage
@@ -283534,7 +287683,7 @@ self: {
        executableHaskellDepends = [ base diagrams-lib text ];
        description = "Typed and composable spreadsheets";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ Gabriel439 ];
+       maintainers = [ lib.maintainers.Gabriel439 ];
      }) {};
 
   "typed-streams" = callPackage
@@ -283588,7 +287737,6 @@ self: {
        ];
        description = "Phantom-Typed version of UUID";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "typed-wire" = callPackage
@@ -283614,6 +287762,7 @@ self: {
        description = "Language-independent type-safe communication";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "twirec";
        broken = true;
      }) {};
 
@@ -283768,6 +287917,8 @@ self: {
        pname = "typelits-witnesses";
        version = "0.4.0.0";
        sha256 = "1khy5nacmsl7h4vg7driv4yb9m3zvkhbf8divyhd249i6bdmql70";
+       revision = "1";
+       editedCabalFile = "11lpv0zymmxlqh2sac324znmr5rhvvfvjipddgyhv6y3l7zy7jhs";
        libraryHaskellDepends = [ base dependent-sum ];
        description = "Existential witnesses, singletons, and classes for operations on GHC TypeLits";
        license = lib.licenses.mit;
@@ -283797,6 +287948,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "Small script for inferring types";
        license = lib.licenses.bsd3;
+       mainProgram = "typeof";
      }) {};
 
   "typeparams" = callPackage
@@ -283906,6 +288058,7 @@ self: {
        description = "A documentation generator for TypeScript Definition files";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typescript-docs";
      }) {};
 
   "typical" = callPackage
@@ -283944,6 +288097,7 @@ self: {
        description = "Just let me draw nice text already";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "typograffiti-exe";
        broken = true;
      }) {};
 
@@ -284096,7 +288250,7 @@ self: {
        preConfigure = "export TZDIR=${pkgs.tzdata}/share/zoneinfo";
        description = "Efficient time zone handling";
        license = lib.licenses.asl20;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "tzdata" = callPackage
@@ -284155,6 +288309,7 @@ self: {
        description = "A simplistic dependently-typed language with parametricity";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uAgda";
        broken = true;
      }) {};
 
@@ -284203,6 +288358,7 @@ self: {
        ];
        description = "Userspace Advanced Configuration and Power Interface event daemon";
        license = lib.licenses.bsd3;
+       mainProgram = "uacpid";
      }) {};
 
   "uber" = callPackage
@@ -284392,9 +288548,7 @@ self: {
        libraryPkgconfigDepends = [ systemd ];
        description = "libudev bindings";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       platforms = lib.platforms.linux;
      }) {inherit (pkgs) systemd;};
 
   "udp-conduit" = callPackage
@@ -284514,6 +288668,7 @@ self: {
        description = "hex dumper for UTF-8 text";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uhexdump";
        broken = true;
      }) {};
 
@@ -284540,6 +288695,7 @@ self: {
        description = "Minimal HTTP client library optimized for benchmarking";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uhttpc-bench";
        broken = true;
      }) {};
 
@@ -284555,6 +288711,7 @@ self: {
        description = "A framework for friendly commandline programs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ui-cmd-hello";
        broken = true;
      }) {};
 
@@ -284651,6 +288808,7 @@ self: {
        description = "Implementation of ULID - Universally Unique Lexicographically Sortable Identifier";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ulid-exe";
        broken = true;
      }) {};
 
@@ -284669,6 +288827,7 @@ self: {
        ];
        description = "Universal un-archiver utility";
        license = lib.licenses.bsd3;
+       mainProgram = "una";
      }) {};
 
   "unagi-bloomfilter" = callPackage
@@ -284904,6 +289063,7 @@ self: {
        description = "A library for reference cells backed by unboxed-vectors";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -284948,6 +289108,7 @@ self: {
        description = "Secure and resilient remote file storage utility";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unbreak";
        broken = true;
      }) {};
 
@@ -284963,6 +289124,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Customize uncaught exception handling";
        license = lib.licenses.mpl20;
+       mainProgram = "uncaught-exception-demo";
      }) {};
 
   "uncertain" = callPackage
@@ -285437,6 +289599,7 @@ self: {
        testHaskellDepends = [ base text ];
        description = "Make writing in unicode easy";
        license = lib.licenses.bsd3;
+       mainProgram = "unicoder";
      }) {};
 
   "unidecode" = callPackage
@@ -285745,6 +289908,7 @@ self: {
        ];
        description = "uniq-deep";
        license = lib.licenses.mit;
+       mainProgram = "uniq-deep";
      }) {};
 
   "unique" = callPackage
@@ -286093,6 +290257,7 @@ self: {
          semigroups split text
        ];
        license = lib.licenses.bsd3;
+       mainProgram = "unity-testresult-parser";
      }) {};
 
   "unitym" = callPackage
@@ -286571,6 +290736,7 @@ self: {
        executableHaskellDepends = [ base unix ];
        description = "Unlambda interpreter";
        license = "GPL";
+       mainProgram = "unlambda";
      }) {};
 
   "unlift" = callPackage
@@ -286684,6 +290850,7 @@ self: {
        description = "Fast and robust message queues for concurrent processes";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unliftio-messagebox-memleak-test";
        broken = true;
      }) {};
 
@@ -286704,8 +290871,8 @@ self: {
      }:
      mkDerivation {
        pname = "unliftio-pool";
-       version = "0.2.1.1";
-       sha256 = "0hxxngldp4zr55qv67gf62a87yxr1f0xfyh4gfzr45q62mscs8xv";
+       version = "0.2.2.0";
+       sha256 = "08246kbmgxv5afm6kngag2mh8mswifsh6017z8rirca37cwp01vr";
        libraryHaskellDepends = [
          base resource-pool time transformers unliftio-core
        ];
@@ -286739,6 +290906,7 @@ self: {
        executableHaskellDepends = [ base directory text ];
        description = "Tool to convert literate code between styles or to code";
        license = lib.licenses.bsd3;
+       mainProgram = "unlit";
      }) {};
 
   "unm-hip" = callPackage
@@ -286769,6 +290937,7 @@ self: {
        executableHaskellDepends = [ base storable-endian utility-ht ];
        description = "Extract useful information from Amiga MED files";
        license = lib.licenses.gpl3Only;
+       mainProgram = "unmed2";
      }) {};
 
   "unordered-containers" = callPackage
@@ -286904,6 +291073,7 @@ self: {
        doHaddock = false;
        description = "Unpacked containers via backpack";
        license = lib.licenses.bsd2;
+       mainProgram = "unpacked-set-example";
      }) {};
 
   "unpacked-either" = callPackage
@@ -287107,6 +291277,7 @@ self: {
        description = "Solve Boggle-like word games";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unscramble";
      }) {};
 
   "unsequential" = callPackage
@@ -287140,6 +291311,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "Utility construction of the graph depending unusable packages";
        license = lib.licenses.bsd3;
+       mainProgram = "unusablepkg";
      }) {};
 
   "unused" = callPackage
@@ -287169,6 +291341,7 @@ self: {
        description = "A command line tool to identify unused code";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "unused";
        broken = true;
      }) {};
 
@@ -287219,6 +291392,7 @@ self: {
        description = "Command-line tool to generate paths for moving upward in a file system";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "up";
      }) {};
 
   "up-grade" = callPackage
@@ -287232,6 +291406,7 @@ self: {
        executableHaskellDepends = [ base ports-tools process ];
        description = "Software management tool";
        license = "unknown";
+       mainProgram = "up";
      }) {};
 
   "update-monad" = callPackage
@@ -287272,7 +291447,10 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "A program to update fetchgit values in Nix expressions";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 sorki ];
+       mainProgram = "update-nix-fetchgit";
+       maintainers = [
+         lib.maintainers.expipiplus1 lib.maintainers.sorki
+       ];
      }) {};
 
   "update-repos" = callPackage
@@ -287295,6 +291473,7 @@ self: {
        testHaskellDepends = [ base hspec QuickCheck ];
        description = "Update all your git repositories with just one command";
        license = lib.licenses.asl20;
+       mainProgram = "update-repos";
      }) {};
 
   "uploadcare" = callPackage
@@ -287410,6 +291589,7 @@ self: {
        description = "Minimalistic CLI RSS reader";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ureader";
      }) {};
 
   "urembed" = callPackage
@@ -287431,6 +291611,7 @@ self: {
        description = "Ur/Web static content generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urembed";
      }) {};
 
   "uri" = callPackage
@@ -287610,6 +291791,7 @@ self: {
        description = "URI template library for Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "main";
        broken = true;
      }) {};
 
@@ -287744,6 +291926,7 @@ self: {
        description = "Parallel link checker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urlcheck";
        broken = true;
      }) {};
 
@@ -287759,6 +291942,7 @@ self: {
        description = "Decode percent-encoded strings";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urldecode";
        broken = true;
      }) {};
 
@@ -287858,6 +292042,7 @@ self: {
        description = "XML parser-printer supporting Ur/Web syntax extensions";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "urxml";
        broken = true;
      }) {};
 
@@ -287986,6 +292171,7 @@ self: {
        description = "A collection of user agents";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "random-user-agent";
        broken = true;
      }) {};
 
@@ -288108,7 +292294,7 @@ self: {
        description = "A pragmatic time and date library";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
        broken = true;
      }) {};
 
@@ -288184,6 +292370,7 @@ self: {
        description = "Variants of Prelude and System.IO with UTF8 text I/O operations";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "utf8-test";
        broken = true;
      }) {};
 
@@ -288472,6 +292659,7 @@ self: {
        executableHaskellDepends = [ base uuagc-cabal ];
        description = "Attribute Grammar System of Universiteit Utrecht";
        license = lib.licenses.bsd3;
+       mainProgram = "uuagc";
      }) {};
 
   "uuagc-bootstrap" = callPackage
@@ -288495,6 +292683,7 @@ self: {
        description = "Attribute Grammar System of Universiteit Utrecht";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "uuagc-bootstrap";
        broken = true;
      }) {};
 
@@ -288539,6 +292728,7 @@ self: {
        executableHaskellDepends = [ base process ];
        description = "A debugger for the UUAG system";
        license = "unknown";
+       mainProgram = "uuagd";
      }) {};
 
   "uuid" = callPackage
@@ -288706,7 +292896,7 @@ self: {
        testHaskellDepends = [ base Cabal HUnit text ];
        description = "Tweak .cabal files";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ berberman ];
+       maintainers = [ lib.maintainers.berberman ];
      }) {};
 
   "uvector" = callPackage
@@ -288811,6 +293001,7 @@ self: {
        description = "the cabal companion";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vabal";
      }) {};
 
   "vabal-lib" = callPackage
@@ -288892,6 +293083,7 @@ self: {
        description = "Visualize live Haskell data structures using vacuum, graphviz and OpenGL";
        license = lib.licenses.publicDomain;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vacuum-opengl-server";
      }) {};
 
   "vacuum-ubigraph" = callPackage
@@ -289070,8 +293262,8 @@ self: {
      }:
      mkDerivation {
        pname = "validation-selective";
-       version = "0.1.0.1";
-       sha256 = "005j45rm0bqjlyh3w67zi62hjv3fp0np7szz80s9nm203i8p6wzb";
+       version = "0.1.0.2";
+       sha256 = "1gsvcm8gjp8kdfprd1i4h9si8f2ym1gj3hqfwz7x1ylsa8qxwvq1";
        libraryHaskellDepends = [ base deepseq selective ];
        testHaskellDepends = [
          base doctest hedgehog hspec hspec-hedgehog selective text
@@ -289160,8 +293352,6 @@ self: {
        testHaskellDepends = [ aeson base hspec validity ];
        description = "Validity instances for aeson";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
-       broken = true;
      }) {};
 
   "validity-bytestring" = callPackage
@@ -289357,6 +293547,7 @@ self: {
        description = "Analyze and visualize expression trees";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vampire";
        broken = true;
      }) {};
 
@@ -289543,6 +293734,7 @@ self: {
        ];
        description = "FRP through value streams and monadic splines";
        license = lib.licenses.mit;
+       mainProgram = "varying-example";
      }) {};
 
   "vault" = callPackage
@@ -289702,6 +293894,7 @@ self: {
        description = "Recursively check that a directory is under version control";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vcatt";
        broken = true;
      }) {};
 
@@ -289757,6 +293950,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Library for handling files ignored by VCS systems";
        license = lib.licenses.bsd3;
+       mainProgram = "ignore";
      }) {};
 
   "vcs-revision" = callPackage
@@ -289827,6 +294021,7 @@ self: {
        description = "Wrapper for source code management systems";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vcswrapper";
        broken = true;
      }) {};
 
@@ -289949,6 +294144,28 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "vector_0_13_0_0" = callPackage
+    ({ mkDerivation, base, base-orphans, deepseq, HUnit, primitive
+     , QuickCheck, random, tasty, tasty-bench, tasty-hunit
+     , tasty-inspection-testing, tasty-quickcheck, template-haskell
+     , transformers, vector-stream
+     }:
+     mkDerivation {
+       pname = "vector";
+       version = "0.13.0.0";
+       sha256 = "0ksvs6ldb8bzbjy4gk39wds2lrwill2g7pbr13h54bz12myidly5";
+       libraryHaskellDepends = [ base deepseq primitive vector-stream ];
+       testHaskellDepends = [
+         base base-orphans HUnit primitive QuickCheck random tasty
+         tasty-hunit tasty-inspection-testing tasty-quickcheck
+         template-haskell transformers
+       ];
+       benchmarkHaskellDepends = [ base random tasty tasty-bench ];
+       description = "Efficient Arrays";
+       license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vector-algorithms" = callPackage
     ({ mkDerivation, base, bytestring, containers, mwc-random
      , primitive, QuickCheck, vector
@@ -289957,8 +294174,8 @@ self: {
        pname = "vector-algorithms";
        version = "0.8.0.4";
        sha256 = "0fxg6w0vh5g2vzw4alajj9ywdijfn9nyx28hbckhmwwbfxb6l5vn";
-       revision = "1";
-       editedCabalFile = "10zjr2cdsaxb71z9svl7h2bxrxbhr19ckqy9p2mhkvhg7ar60ixz";
+       revision = "2";
+       editedCabalFile = "0i55aqh2kfswmzvkyls1vlzlg3gvh1ydhksx9w7circ8ffj6lrg0";
        libraryHaskellDepends = [ base bytestring primitive vector ];
        testHaskellDepends = [
          base bytestring containers QuickCheck vector
@@ -290028,6 +294245,24 @@ self: {
        license = lib.licenses.mit;
      }) {};
 
+  "vector-builder_0_3_8_4" = callPackage
+    ({ mkDerivation, attoparsec, base, QuickCheck, quickcheck-instances
+     , rerebase, tasty, tasty-hunit, tasty-quickcheck, vector
+     }:
+     mkDerivation {
+       pname = "vector-builder";
+       version = "0.3.8.4";
+       sha256 = "0gc2n5j1ca07hd50shy7l5xybs1y720zrarzs5dj74dsdcpvmjxw";
+       libraryHaskellDepends = [ base vector ];
+       testHaskellDepends = [
+         attoparsec QuickCheck quickcheck-instances rerebase tasty
+         tasty-hunit tasty-quickcheck
+       ];
+       description = "Vector builder";
+       license = lib.licenses.mit;
+       hydraPlatforms = lib.platforms.none;
+     }) {};
+
   "vector-bytes-instances" = callPackage
     ({ mkDerivation, base, bytes, tasty, tasty-quickcheck, vector }:
      mkDerivation {
@@ -290154,8 +294389,8 @@ self: {
      }:
      mkDerivation {
        pname = "vector-extras";
-       version = "0.2.6";
-       sha256 = "08zf1h6inqziy52q2nmgkvnaccpbg389pz41yyg6h0drsg5x8r4h";
+       version = "0.2.7.1";
+       sha256 = "1a8aak9v68qmrx719w782ww7accn7bk11gnca3d2lvbzw793dl4q";
        libraryHaskellDepends = [
          base containers deferred-folds foldl hashable unordered-containers
          vector
@@ -290256,6 +294491,8 @@ self: {
        pname = "vector-instances";
        version = "3.4";
        sha256 = "10akvpa5w9bp0d8hflab63r9laa9gy2hv167smhjsdzq1kplc0hv";
+       revision = "1";
+       editedCabalFile = "177jllmcv0517vppc4lx0l0kvicgaf1h060lkcnv7fl0hnp16zf5";
        libraryHaskellDepends = [
          base comonad hashable keys pointed semigroupoids semigroups vector
        ];
@@ -290357,7 +294594,7 @@ self: {
        ];
        description = "Size tagged vectors";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "vector-space" = callPackage
@@ -290459,6 +294696,17 @@ self: {
        license = lib.licenses.bsd3;
      }) {};
 
+  "vector-stream" = callPackage
+    ({ mkDerivation, base, ghc-prim }:
+     mkDerivation {
+       pname = "vector-stream";
+       version = "0.1.0.0";
+       sha256 = "0v40vdpp35lhnnnx7q17fah0c14jrkjlnwsk0q4mbwb7ch7j3258";
+       libraryHaskellDepends = [ base ghc-prim ];
+       description = "Efficient Streams";
+       license = lib.licenses.bsd3;
+     }) {};
+
   "vector-text" = callPackage
     ({ mkDerivation, base, binary, prologue, text, vector
      , vector-binary-instances
@@ -290533,6 +294781,7 @@ self: {
        ];
        description = "Easily view Vega or Vega-Lite visualizations";
        license = lib.licenses.bsd3;
+       mainProgram = "vegaview";
      }) {};
 
   "velma" = callPackage
@@ -290553,6 +294802,7 @@ self: {
        description = "Automatically add files to exposed-modules and other-modules";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "velma";
        broken = true;
      }) {};
 
@@ -290581,6 +294831,7 @@ self: {
        description = "ASCII platform-adventure game";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "venzone";
      }) {};
 
   "verbalexpressions" = callPackage
@@ -290627,6 +294878,7 @@ self: {
        description = "Validation framework";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tutorial";
        broken = true;
      }) {};
 
@@ -290664,10 +294916,7 @@ self: {
        ];
        description = "An intermediate language for Hoare logic style verification";
        license = lib.licenses.asl20;
-       platforms = [
-         "aarch64-darwin" "armv7l-linux" "i686-linux" "x86_64-darwin"
-         "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" ];
      }) {};
 
   "verify" = callPackage
@@ -290691,6 +294940,7 @@ self: {
        description = "A new Haskeleton package";
        license = lib.licenses.isc;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "verify";
        broken = true;
      }) {};
 
@@ -290743,6 +294993,7 @@ self: {
        description = "Random verilog generation and simulator testing";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "verismith";
        broken = true;
      }) {};
 
@@ -290940,6 +295191,7 @@ self: {
        description = "VFR waypoints, as published in the AIP (ERSA)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vfr-waypoints";
      }) {};
 
   "vgrep" = callPackage
@@ -290973,6 +295225,7 @@ self: {
        ];
        description = "A pager for grep";
        license = lib.licenses.bsd3;
+       mainProgram = "vgrep";
      }) {};
 
   "vhd" = callPackage
@@ -291049,6 +295302,7 @@ self: {
        description = "Text-based interactive GHC .prof viewer";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "viewprof";
      }) {};
 
   "views" = callPackage
@@ -291130,6 +295384,7 @@ self: {
        description = "Frontend for video metadata tagging tools";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vimeta";
      }) {};
 
   "vimus" = callPackage
@@ -291160,6 +295415,7 @@ self: {
        description = "An MPD client with vim-like key bindings";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vimus";
        broken = true;
      }) {inherit (pkgs) ncurses;};
 
@@ -291182,6 +295438,7 @@ self: {
        description = "Interpreter for microcomputer-era BASIC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vintbas";
        broken = true;
      }) {};
 
@@ -291397,6 +295654,7 @@ self: {
        description = "Virtual Haskell Environment builder";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "virthualenv";
        broken = true;
      }) {};
 
@@ -291433,6 +295691,7 @@ self: {
        description = "An XMMS2 client";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vision";
      }) {};
 
   "visual-graphrewrite" = callPackage
@@ -291461,6 +295720,7 @@ self: {
        description = "Visualize the graph-rewrite steps of a Haskell program";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "visual-graphrewrite";
      }) {};
 
   "visual-prof" = callPackage
@@ -291480,6 +295740,7 @@ self: {
        description = "Create a visual profile of a program's source code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "visual-prof";
        broken = true;
      }) {};
 
@@ -291502,6 +295763,7 @@ self: {
        ];
        description = "Visualize CBN reduction";
        license = lib.licenses.bsd3;
+       mainProgram = "visualize-cbn";
      }) {};
 
   "vitrea" = callPackage
@@ -291599,6 +295861,7 @@ self: {
        executableHaskellDepends = [ base bytestring process unix ];
        description = "Pseudo terminal interaction with subprocesses";
        license = lib.licenses.bsd3;
+       mainProgram = "ptywrap";
      }) {};
 
   "vocabulary-kadma" = callPackage
@@ -291712,6 +295975,7 @@ self: {
        description = "Upload audio files to voicebase to get a transcription";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "voicebase";
      }) {};
 
   "void" = callPackage
@@ -291821,9 +296085,8 @@ self: {
        executableSystemDepends = [ quat vrpn ];
        description = "Bindings to VRPN";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "test-vrpn";
      }) {quat = null; inherit (pkgs) vrpn;};
 
   "vt-utils" = callPackage
@@ -291997,6 +296260,7 @@ self: {
        description = "A lib for displaying a menu and getting a selection using VTY";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vty-menu";
        broken = true;
      }) {};
 
@@ -292020,6 +296284,7 @@ self: {
        description = "An interactive terminal user interface library for Vty";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vty-ui-tests";
        broken = true;
      }) {};
 
@@ -292052,8 +296317,10 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Bindings to the Vulkan graphics API";
        license = lib.licenses.bsd3;
-       platforms = [ "aarch64-linux" "x86_64-linux" ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = [
+         "i686-linux" "armv7l-linux"
+       ] ++ lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {vulkan = null;};
 
   "vulkan-api" = callPackage
@@ -292086,10 +296353,8 @@ self: {
        testHaskellDepends = [ base doctest ];
        description = "Utils for the vulkan package";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
-       maintainers = with lib.maintainers; [ expipiplus1 ];
+       badPlatforms = lib.platforms.darwin;
+       maintainers = [ lib.maintainers.expipiplus1 ];
      }) {};
 
   "waargonaut" = callPackage
@@ -292236,6 +296501,7 @@ self: {
        ];
        description = "Rewrite based on Accept-Language header";
        license = lib.licenses.bsd3;
+       mainProgram = "wai-accept-language-exe";
      }) {};
 
   "wai-app-file-cgi" = callPackage
@@ -292296,6 +296562,7 @@ self: {
        ];
        description = "WAI application for static serving";
        license = lib.licenses.mit;
+       mainProgram = "warp";
      }) {};
 
   "wai-cli" = callPackage
@@ -292398,6 +296665,7 @@ self: {
        description = "A web server for the development of WAI compliant web applications";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-devel";
      }) {};
 
   "wai-digestive-functors" = callPackage
@@ -292508,8 +296776,8 @@ self: {
      }:
      mkDerivation {
        pname = "wai-feature-flags";
-       version = "0.1.0.3";
-       sha256 = "1w1n24w7wf3jxnlid437d4rva86vbhyvlrz8nq7z6bc3xi8bdlkz";
+       version = "0.1.0.4";
+       sha256 = "02fwha57wwjbjapkp519da2jml3921rdlna1zr7vdmrqdz6j327j";
        isLibrary = true;
        isExecutable = true;
        enableSeparateDataOutput = true;
@@ -292519,6 +296787,7 @@ self: {
        executableHaskellDepends = [ base wai warp ];
        description = "Feature flag support for WAI applications";
        license = lib.licenses.bsd3;
+       mainProgram = "example-app";
      }) {};
 
   "wai-frontend-monadcgi" = callPackage
@@ -292621,6 +296890,8 @@ self: {
        pname = "wai-handler-hal";
        version = "0.1.2.0";
        sha256 = "05q0aig70yfrhq73q8i79y4kvjkb2hlrbgza5m9sz5g3i0w21l3y";
+       revision = "1";
+       editedCabalFile = "1gkj8yhwqv6rf5b38xjiniwwyfnz5krbx4nx5r98danipjpr1fan";
        libraryHaskellDepends = [
          base base64-bytestring bytestring case-insensitive hal http-types
          network text unordered-containers vault wai
@@ -292777,6 +297048,7 @@ self: {
        description = "Haskell Webapps on AWS Lambda";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-lambda";
        broken = true;
      }) {};
 
@@ -292870,6 +297142,7 @@ self: {
        description = "Buffer requets before logging them";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -292918,6 +297191,7 @@ self: {
        ];
        description = "Compiling and serving assets";
        license = lib.licenses.bsd3;
+       mainProgram = "wai-make-assets";
      }) {};
 
   "wai-middleware-auth" = callPackage
@@ -292956,6 +297230,7 @@ self: {
        description = "Authentication middleware that secures WAI application";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-auth";
        broken = true;
      }) {};
 
@@ -293000,6 +297275,7 @@ self: {
        description = "WAI middleware for brotli compression";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-middleware-brotli-server";
      }) {};
 
   "wai-middleware-cache" = callPackage
@@ -293212,6 +297488,7 @@ self: {
        description = "Middleware and utilities for using Atlassian Crowd authentication";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-crowd";
        broken = true;
      }) {};
 
@@ -293867,6 +298144,7 @@ self: {
        ];
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "waicookie-genkey";
        broken = true;
      }) {};
 
@@ -293991,6 +298269,7 @@ self: {
        description = "Simple Redis backed wai-session backend";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wai-session-redis-example-exe";
        broken = true;
      }) {};
 
@@ -294159,6 +298438,7 @@ self: {
        ];
        description = "Provide a bridge between WAI and the websockets package";
        license = lib.licenses.mit;
+       mainProgram = "wai-websockets-example";
      }) {};
 
   "wait-handle" = callPackage
@@ -294309,6 +298589,7 @@ self: {
        ];
        description = "A parser for the Web Archive (WARC) format";
        license = lib.licenses.bsd3;
+       mainProgram = "warc-export";
      }) {};
 
   "warp" = callPackage
@@ -294360,6 +298641,7 @@ self: {
        description = "Dynamic configurable warp HTTP server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "warpd";
        broken = true;
      }) {};
 
@@ -294414,6 +298696,7 @@ self: {
        description = "Static file server based on Warp and wai-app-static (deprecated)";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "warp";
        broken = true;
      }) {};
 
@@ -294564,6 +298847,7 @@ self: {
        description = "File change watching utility";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "watchit";
        broken = true;
      }) {};
 
@@ -294578,6 +298862,7 @@ self: {
        executableHaskellDepends = [ base directory filepath process ];
        description = "Command-line tool for converting audio files and filling in ID3 tags";
        license = lib.licenses.bsd3;
+       mainProgram = "wavconvert";
      }) {};
 
   "wave" = callPackage
@@ -294933,6 +299218,7 @@ self: {
        description = "representations of a web page";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "web-rep-example";
        broken = true;
      }) {};
 
@@ -295418,6 +299704,7 @@ self: {
        description = "Turn an optparse-applicative program into a CGI program!";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testcloud";
        broken = true;
      }) {};
 
@@ -295625,6 +299912,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "A Haskell bindings for Webex Teams API";
        license = lib.licenses.mit;
+       mainProgram = "webex-teams-api-exe";
      }) {};
 
   "webex-teams-conduit" = callPackage
@@ -295651,6 +299939,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        description = "Conduit wrapper of Webex Teams List API";
        license = lib.licenses.mit;
+       mainProgram = "webex-teams-conduit-exe";
      }) {};
 
   "webex-teams-pipes" = callPackage
@@ -295678,6 +299967,7 @@ self: {
        description = "Pipes wrapper of Webex Teams List API";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webex-teams-pipes-exe";
        broken = true;
      }) {};
 
@@ -295709,8 +299999,8 @@ self: {
      }:
      mkDerivation {
        pname = "webgear-core";
-       version = "1.0.1";
-       sha256 = "06yg14x40j7jg5gy875f2g4fplnh08678qy3naqapd8ysvw52rmb";
+       version = "1.0.2";
+       sha256 = "18zzi1gs0sxa8x061lqavipjn82zzvpnlff02cz7k8lvyyivyn60";
        libraryHaskellDepends = [
          arrows base bytestring case-insensitive filepath http-api-data
          http-media http-types jose mime-types network safe-exceptions
@@ -295726,8 +300016,8 @@ self: {
      }:
      mkDerivation {
        pname = "webgear-openapi";
-       version = "1.0.1";
-       sha256 = "0fxj5bhsqxkjizyl0wcwbs5ai05lksf3cwzz2535lb4rh90ndx3b";
+       version = "1.0.2";
+       sha256 = "0k3smna51wm9rc00nzv8cf7pd16l4ddldr27niw11gy27viyzpj2";
        libraryHaskellDepends = [
          arrows base http-media http-types insert-ordered-containers lens
          openapi3 text webgear-core
@@ -295745,8 +300035,8 @@ self: {
      }:
      mkDerivation {
        pname = "webgear-server";
-       version = "1.0.1";
-       sha256 = "0v27iq4jqbxyn66pzi7sz0qapd4a0k1iifvj2ng488jl2j852xa2";
+       version = "1.0.2";
+       sha256 = "0zy0sxm3jcq8889494v7y1ydka739yw2gh38w60h2fw7awqlbj5w";
        libraryHaskellDepends = [
          aeson arrows base base64-bytestring bytestring
          bytestring-conversion http-api-data http-media http-types jose
@@ -295800,7 +300090,8 @@ self: {
        ];
        description = "webfont generator";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ erictapen ];
+       mainProgram = "webify";
+       maintainers = [ lib.maintainers.erictapen ];
      }) {};
 
   "webkit" = callPackage
@@ -295849,9 +300140,7 @@ self: {
        libraryPkgconfigDepends = [ webkitgtk ];
        description = "JavaScriptCore FFI from webkitgtk";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) webkitgtk;};
 
   "webkitgtk3" = callPackage
@@ -295991,6 +300280,7 @@ self: {
        description = "Show programming language printed values in a web UI";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "webshow";
        broken = true;
      }) {};
 
@@ -296006,6 +300296,7 @@ self: {
        description = "Transforms URLs to PNGs";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "websnap";
      }) {};
 
   "websockets" = callPackage
@@ -296156,6 +300447,7 @@ self: {
        executableHaskellDepends = [ base ];
        description = "a wedding announcement";
        license = lib.licenses.publicDomain;
+       mainProgram = "wedding-announcement";
      }) {};
 
   "wedged" = callPackage
@@ -296175,6 +300467,7 @@ self: {
        description = "Wedged postcard generator";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wedged";
        broken = true;
      }) {};
 
@@ -296201,7 +300494,8 @@ self: {
        description = "Detect dead code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weeder_2_3_1" = callPackage
@@ -296227,7 +300521,8 @@ self: {
        description = "Detect dead code";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weeder" = callPackage
@@ -296252,7 +300547,8 @@ self: {
        ];
        description = "Detect dead code";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ maralorn ];
+       mainProgram = "weeder";
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "weekdaze" = callPackage
@@ -296283,6 +300579,7 @@ self: {
        description = "A school-timetable problem-solver";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "weekdaze";
        broken = true;
      }) {};
 
@@ -296378,6 +300675,7 @@ self: {
        ];
        description = "Pretty-printing of codebases";
        license = lib.licenses.bsd3;
+       mainProgram = "wembley";
      }) {};
 
   "werewolf" = callPackage
@@ -296403,6 +300701,7 @@ self: {
        description = "A game engine for playing werewolf within an arbitrary chat client";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "werewolf";
        broken = true;
      }) {};
 
@@ -296424,6 +300723,7 @@ self: {
        description = "A chat interface for playing werewolf in Slack";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "werewolf-slack";
      }) {};
 
   "wgpu-hs" = callPackage
@@ -296508,6 +300808,7 @@ self: {
        description = "Solver-agnostic symbolic values support for issuing queries";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "quickstart";
      }) {};
 
   "wheb-mongo" = callPackage
@@ -296587,6 +300888,7 @@ self: {
        description = "A Haskell window manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "whim";
        broken = true;
      }) {};
 
@@ -296616,6 +300918,7 @@ self: {
        description = "Whitespace, an esoteric programming language";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wspace";
      }) {};
 
   "whois" = callPackage
@@ -296767,6 +301070,7 @@ self: {
        description = "Wikipedia EPUB E-Book construction from Firefox history";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wiki4e-mkepub-subtree";
      }) {};
 
   "wild-bind" = callPackage
@@ -296891,6 +301195,7 @@ self: {
        executableHaskellDepends = [ base process split ];
        description = "Work with multiple Haskell Platform versions on Windows";
        license = lib.licenses.bsd3;
+       mainProgram = "use-hppath";
      }) {};
 
   "windns" = callPackage
@@ -296977,6 +301282,7 @@ self: {
        description = "A compact, well-typed seralisation format for Haskell values";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "winery";
        broken = true;
      }) {};
 
@@ -297108,7 +301414,7 @@ self: {
        ];
        description = "Convert values from one type into another";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ maralorn ];
+       maintainers = [ lib.maintainers.maralorn ];
      }) {};
 
   "with-index" = callPackage
@@ -297156,6 +301462,7 @@ self: {
        testToolDepends = [ tasty-discover ];
        description = "Get your IO right on the first try";
        license = lib.licenses.mpl20;
+       mainProgram = "utf8-troubleshoot";
      }) {};
 
   "withdependencies" = callPackage
@@ -297184,8 +301491,8 @@ self: {
        pname = "witherable";
        version = "0.4.2";
        sha256 = "0121ic4xkv3k568j23zp22a5lrv0k11h94fq7cbijd18fjr2n3br";
-       revision = "2";
-       editedCabalFile = "1ljnv5xf6w7x58akj0a0yw16j63jkka0dvfvmjqwbn76aqg3pzc1";
+       revision = "3";
+       editedCabalFile = "1f2bvl41by904lnr0dk6qgasqwadq2w48l7fj51bp2h8bqbkdjyc";
        libraryHaskellDepends = [
          base base-orphans containers hashable indexed-traversable
          indexed-traversable-instances transformers unordered-containers
@@ -297226,21 +301533,6 @@ self: {
      }) {};
 
   "witness" = callPackage
-    ({ mkDerivation, base, constraints, countable, semigroupoids
-     , transformers
-     }:
-     mkDerivation {
-       pname = "witness";
-       version = "0.5";
-       sha256 = "0888969dypgykmhp33nar4a6yhrbd5i6agnbq415ni5cfdx1c2cr";
-       libraryHaskellDepends = [
-         base constraints countable semigroupoids transformers
-       ];
-       description = "values that witness types";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "witness_0_6" = callPackage
     ({ mkDerivation, base, constraints, countable }:
      mkDerivation {
        pname = "witness";
@@ -297250,6 +301542,7 @@ self: {
        description = "values that witness types";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "witty" = callPackage
@@ -297264,6 +301557,7 @@ self: {
        description = "A network server to show bottlenecks of GHC";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "witty";
        broken = true;
      }) {};
 
@@ -297504,6 +301798,7 @@ self: {
        description = "A simple and highly performant HTTP file server";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wobsurv";
      }) {};
 
   "woe" = callPackage
@@ -297533,6 +301828,7 @@ self: {
        description = "Web Open Font Format (WOFF) unpacker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "woffex";
        broken = true;
      }) {};
 
@@ -297549,6 +301845,7 @@ self: {
        description = "Send a Wake on LAN Magic Packet";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wol";
        broken = true;
      }) {};
 
@@ -297760,6 +302057,7 @@ self: {
        benchmarkHaskellDepends = [ base criterion pandoc text ];
        description = "Get word counts and distributions";
        license = lib.licenses.bsd3;
+       mainProgram = "wrd";
      }) {};
 
   "wordcloud" = callPackage
@@ -297813,6 +302111,7 @@ self: {
        ];
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordify-exe";
        broken = true;
      }) {};
 
@@ -297832,6 +302131,7 @@ self: {
        ];
        description = "Command-line tool to get random words";
        license = lib.licenses.asl20;
+       mainProgram = "wordlist";
      }) {};
 
   "wordn" = callPackage
@@ -297877,6 +302177,7 @@ self: {
        description = "Dictionary-based password generator";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordpass";
        broken = true;
      }) {};
 
@@ -297923,6 +302224,7 @@ self: {
        description = "A word search solver library and executable";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wordsearch";
        broken = true;
      }) {};
 
@@ -297942,6 +302244,7 @@ self: {
        ];
        description = "Compare two files as sets of N-tuples of words";
        license = lib.licenses.bsd3;
+       mainProgram = "wordsetdiff";
      }) {};
 
   "work-time" = callPackage
@@ -297957,6 +302260,7 @@ self: {
        description = "A library for parsing a chat-based work hour reporting scheme";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "work-time";
        broken = true;
      }) {};
 
@@ -297995,6 +302299,7 @@ self: {
        description = "Utilities (e.g. Googling the clipboard contents) for the `workflow` pacakge";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-extra";
      }) {};
 
   "workflow-osx" = callPackage
@@ -298015,6 +302320,7 @@ self: {
        description = "a \"Desktop Workflow\" monad with Objective-C bindings";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example";
        broken = true;
      }) {};
 
@@ -298039,6 +302345,7 @@ self: {
        description = "manipulate `workflow-types:Workflow`'s";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-pure";
      }) {};
 
   "workflow-types" = callPackage
@@ -298058,6 +302365,7 @@ self: {
        description = "Automate keyboard\\/mouse\\/clipboard\\/application interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "example-workflow-types";
      }) {};
 
   "workflow-windows" = callPackage
@@ -298073,6 +302381,7 @@ self: {
        description = "Automate keyboard/mouse/clipboard/application interaction";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "workflow-windows-example";
        broken = true;
      }) {};
 
@@ -298122,6 +302431,7 @@ self: {
        description = "Subscribe to a wiki's RSS feed and archive external links";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wp-archivebot";
        broken = true;
      }) {};
 
@@ -298231,6 +302541,7 @@ self: {
        description = "An HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wreck";
      }) {};
 
   "wrecker-ui" = callPackage
@@ -298264,6 +302575,7 @@ self: {
        description = "A web interface for Wrecker, the HTTP Performance Benchmarker";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wrecker-ui";
      }) {};
 
   "wreq" = callPackage
@@ -298602,6 +302914,7 @@ self: {
        description = "A simple CLI utility for interacting with a websocket";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "ws";
      }) {};
 
   "ws-chans" = callPackage
@@ -298663,6 +302976,7 @@ self: {
        description = "A small tool to list, add and remove webseeds from a torrent file";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wsedit";
        broken = true;
      }) {};
 
@@ -298685,6 +302999,7 @@ self: {
        ];
        description = "Terminal emulator over websockets";
        license = lib.licenses.bsd3;
+       mainProgram = "wshterm";
      }) {};
 
   "wsjtx-udp" = callPackage
@@ -298704,6 +303019,7 @@ self: {
        description = "WSJT-X UDP protocol";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wsjtx-dump-udp";
        broken = true;
      }) {};
 
@@ -298753,7 +303069,8 @@ self: {
        ];
        description = "Tunneling program over websocket protocol";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ gebner ];
+       mainProgram = "wstunnel";
+       maintainers = [ lib.maintainers.gebner ];
      }) {};
 
   "wtk" = callPackage
@@ -298799,6 +303116,7 @@ self: {
        description = "Unimportant Unix adminstration tool";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "pao";
      }) {};
 
   "wuerfelschlange" = callPackage
@@ -298903,20 +303221,6 @@ self: {
      }:
      mkDerivation {
        pname = "wuss";
-       version = "1.1.19";
-       sha256 = "1i7y6kqynbc5qbl091ihdfn9ak8ny8rdp83svl06m6ijvphjqskq";
-       libraryHaskellDepends = [
-         base bytestring connection network websockets
-       ];
-       description = "Secure WebSocket (WSS) clients";
-       license = lib.licenses.mit;
-     }) {};
-
-  "wuss_2_0_0_1" = callPackage
-    ({ mkDerivation, base, bytestring, connection, network, websockets
-     }:
-     mkDerivation {
-       pname = "wuss";
        version = "2.0.0.1";
        sha256 = "17s6wilzyzsdc174a3an12pkq20cy7x2pfrn4jmdp30f468r47fb";
        libraryHaskellDepends = [
@@ -298924,7 +303228,6 @@ self: {
        ];
        description = "Secure WebSocket (WSS) clients";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "wx" = callPackage
@@ -298953,6 +303256,7 @@ self: {
        description = "Try to avoid the asteroids with your space ship";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxAsteroids";
      }) {};
 
   "wxFruit" = callPackage
@@ -298968,6 +303272,7 @@ self: {
        description = "An implementation of Fruit using wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "paddle";
      }) {};
 
   "wxSimpleCanvas" = callPackage
@@ -299043,6 +303348,7 @@ self: {
        description = "helper tool for building wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxdirect";
        broken = true;
      }) {};
 
@@ -299059,6 +303365,7 @@ self: {
        description = "An example of how to implement a basic notepad with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wxhnotepad";
      }) {};
 
   "wxturtle" = callPackage
@@ -299075,6 +303382,7 @@ self: {
        description = "turtle like LOGO with wxHaskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "testTurtle";
      }) {};
 
   "wybor" = callPackage
@@ -299115,6 +303423,7 @@ self: {
        description = "An autoresponder for Dragon Go Server";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "wyvern";
      }) {};
 
   "x-dsp" = callPackage
@@ -299164,27 +303473,6 @@ self: {
   "x509" = callPackage
     ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
      , bytestring, containers, cryptonite, hourglass, memory, mtl, pem
-     , tasty, tasty-quickcheck
-     }:
-     mkDerivation {
-       pname = "x509";
-       version = "1.7.6";
-       sha256 = "114qjgx080zxbw5w9c3yy28k905bq99rwl6zgbsa0y3gawx9mmd5";
-       libraryHaskellDepends = [
-         asn1-encoding asn1-parse asn1-types base bytestring containers
-         cryptonite hourglass memory mtl pem
-       ];
-       testHaskellDepends = [
-         asn1-types base bytestring cryptonite hourglass mtl tasty
-         tasty-quickcheck
-       ];
-       description = "X509 reader and writer";
-       license = lib.licenses.bsd3;
-     }) {};
-
-  "x509_1_7_7" = callPackage
-    ({ mkDerivation, asn1-encoding, asn1-parse, asn1-types, base
-     , bytestring, containers, cryptonite, hourglass, memory, mtl, pem
      , tasty, tasty-quickcheck, transformers
      }:
      mkDerivation {
@@ -299201,7 +303489,6 @@ self: {
        ];
        description = "X509 reader and writer";
        license = lib.licenses.bsd3;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "x509-store" = callPackage
@@ -299255,6 +303542,7 @@ self: {
        ];
        description = "Utility for X509 certificate and chain";
        license = lib.licenses.bsd3;
+       mainProgram = "x509-util";
      }) {};
 
   "x509-validation" = callPackage
@@ -299311,9 +303599,7 @@ self: {
        ];
        description = "Haskell extended file attributes interface";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {inherit (pkgs) attr;};
 
   "xbattbar" = callPackage
@@ -299327,6 +303613,7 @@ self: {
        executableHaskellDepends = [ base old-time select X11 ];
        description = "Simple battery indicator";
        license = lib.licenses.mit;
+       mainProgram = "xbattbar";
      }) {};
 
   "xcb-types" = callPackage
@@ -299366,6 +303653,7 @@ self: {
        ];
        description = "A cffi-based python binding for X";
        license = "unknown";
+       mainProgram = "xcffibgen";
      }) {};
 
   "xchat-plugin" = callPackage
@@ -299384,6 +303672,7 @@ self: {
        description = "XChat";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "hsxchat";
        broken = true;
      }) {};
 
@@ -299428,6 +303717,7 @@ self: {
        description = "A wget-like utility for retrieving files from XDCC bots on IRC";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xdcc";
      }) {};
 
   "xdg-basedir" = callPackage
@@ -299489,6 +303779,7 @@ self: {
        ];
        description = "Parse Graphviz xdot files and interactively view them using GTK and Cairo";
        license = lib.licenses.bsd3;
+       mainProgram = "xdot-demo";
      }) {};
 
   "xeno" = callPackage
@@ -299579,9 +303870,8 @@ self: {
        executableSystemDepends = [ xgboost ];
        description = "XGBoost library for Haskell";
        license = lib.licenses.mit;
-       platforms = [
-         "aarch64-darwin" "i686-linux" "x86_64-darwin" "x86_64-linux"
-       ];
+       badPlatforms = [ "aarch64-linux" "armv7l-linux" ];
+       mainProgram = "xgb-agaricus";
      }) {inherit (pkgs) xgboost;};
 
   "xhaskell-library" = callPackage
@@ -299798,6 +304088,7 @@ self: {
        description = "Downloads the most recent xkcd comic";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xkcd";
        broken = true;
      }) {};
 
@@ -299838,6 +304129,7 @@ self: {
        description = "Parse Microsoft Excel xls files (BIFF/Excel 97-2004)";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xls2csv";
        broken = true;
      }) {};
 
@@ -299869,34 +304161,6 @@ self: {
   "xlsx" = callPackage
     ({ mkDerivation, attoparsec, base, base64-bytestring, binary-search
      , bytestring, conduit, containers, criterion, data-default, deepseq
-     , Diff, errors, extra, filepath, groom, lens, mtl, network-uri
-     , old-locale, raw-strings-qq, safe, smallcheck, tasty, tasty-hunit
-     , tasty-smallcheck, text, time, transformers, vector, xeno
-     , xml-conduit, zip-archive, zlib
-     }:
-     mkDerivation {
-       pname = "xlsx";
-       version = "0.8.4";
-       sha256 = "0xmz9qpqyz2gwlrjsy2m79s4xswb6lz7fbvybd4awg5vy0y6pl41";
-       libraryHaskellDepends = [
-         attoparsec base base64-bytestring binary-search bytestring conduit
-         containers data-default deepseq errors extra filepath lens mtl
-         network-uri old-locale safe text time transformers vector xeno
-         xml-conduit zip-archive zlib
-       ];
-       testHaskellDepends = [
-         base bytestring containers Diff groom lens mtl raw-strings-qq
-         smallcheck tasty tasty-hunit tasty-smallcheck text time vector
-         xml-conduit
-       ];
-       benchmarkHaskellDepends = [ base bytestring criterion ];
-       description = "Simple and incomplete Excel file parser/writer";
-       license = lib.licenses.mit;
-     }) {};
-
-  "xlsx_1_0_0_1" = callPackage
-    ({ mkDerivation, attoparsec, base, base64-bytestring, binary-search
-     , bytestring, conduit, containers, criterion, data-default, deepseq
      , Diff, directory, dlist, errors, exceptions, extra, filepath
      , groom, hexpat, lens, monad-control, mtl, network-uri, old-locale
      , raw-strings-qq, safe, smallcheck, tasty, tasty-hunit
@@ -299925,7 +304189,6 @@ self: {
        ];
        description = "Simple and incomplete Excel file parser/writer";
        license = lib.licenses.mit;
-       hydraPlatforms = lib.platforms.none;
      }) {};
 
   "xlsx-tabular" = callPackage
@@ -299961,6 +304224,7 @@ self: {
        description = "Simple and incomplete Excel file templater";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "test";
        broken = true;
      }) {};
 
@@ -300430,6 +304694,7 @@ self: {
        description = "Pretty print XML";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml-prettify";
        broken = true;
      }) {};
 
@@ -300454,6 +304719,7 @@ self: {
        benchmarkHaskellDepends = [ base gauge protolude ];
        description = "XML pretty printer";
        license = lib.licenses.gpl2Only;
+       mainProgram = "xml-prettify";
      }) {};
 
   "xml-push" = callPackage
@@ -300570,6 +304836,7 @@ self: {
        description = "Library and command line tool for converting XML files to json";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml-to-json";
        broken = true;
      }) {};
 
@@ -300585,6 +304852,7 @@ self: {
        executableHaskellDepends = [ base directory process ];
        description = "Fast, light converter of xml to json capable of handling huge xml files";
        license = lib.licenses.mit;
+       mainProgram = "xml-to-json-fast";
      }) {};
 
   "xml-tydom-conduit" = callPackage
@@ -300690,6 +304958,7 @@ self: {
        description = "translate xml to json";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml2json";
        broken = true;
      }) {};
 
@@ -300710,6 +304979,7 @@ self: {
        description = "Convert BLAST output in XML format to CSV or HTML";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xml2x";
      }) {};
 
   "xmlbf" = callPackage
@@ -300842,6 +305112,7 @@ self: {
        description = "Show tv channels in the terminal";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "tv";
      }) {};
 
   "xmms2-client" = callPackage
@@ -300916,9 +305187,8 @@ self: {
        benchmarkHaskellDepends = [ base gauge mtl time ];
        description = "A Minimalistic Text Based Status Bar";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
+       mainProgram = "xmobar";
      }) {inherit (pkgs.xorg) libXpm; inherit (pkgs.xorg) libXrandr; 
          inherit (pkgs.xorg) libXrender; inherit (pkgs) wirelesstools;};
 
@@ -300947,7 +305217,8 @@ self: {
        '';
        description = "A tiling window manager";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       mainProgram = "xmonad";
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "xmonad-bluetilebranch" = callPackage
@@ -300968,6 +305239,7 @@ self: {
        description = "A tiling window manager";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xmonad";
        broken = true;
      }) {};
 
@@ -300990,7 +305262,7 @@ self: {
        ];
        description = "Community-maintained extensions extensions for xmonad";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ peti ];
+       maintainers = [ lib.maintainers.peti ];
      }) {};
 
   "xmonad-contrib-bluetilebranch" = callPackage
@@ -301037,6 +305309,7 @@ self: {
        executableHaskellDepends = [ base dbus ];
        testHaskellDepends = [ base dbus ];
        license = lib.licenses.bsd3;
+       mainProgram = "xmonad-dbus";
      }) {};
 
   "xmonad-entryhelper" = callPackage
@@ -301094,9 +305367,7 @@ self: {
        ];
        description = "Third party extensions for xmonad with wacky dependencies";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "xmonad-screenshot" = callPackage
@@ -301176,9 +305447,7 @@ self: {
        ];
        description = "XMonad volume controls";
        license = lib.licenses.bsd3;
-       platforms = [
-         "aarch64-linux" "armv7l-linux" "i686-linux" "x86_64-linux"
-       ];
+       badPlatforms = lib.platforms.darwin;
      }) {};
 
   "xmonad-wallpaper" = callPackage
@@ -301329,6 +305598,7 @@ self: {
        description = "convert utility for xoj files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xournal-convert";
      }) {};
 
   "xournal-parser" = callPackage
@@ -301402,6 +305672,7 @@ self: {
        ];
        description = "Command line tool to extract DSV data from HTML and XML with XPATH expressions";
        license = lib.licenses.bsd3;
+       mainProgram = "xpathdsv";
      }) {};
 
   "xrefcheck" = callPackage
@@ -301448,6 +305719,7 @@ self: {
        testToolDepends = [ hspec-discover ];
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "xrefcheck";
        broken = true;
      }) {};
 
@@ -301628,6 +305900,7 @@ self: {
        description = "#plaimi's all-encompassing bot";
        license = lib.licenses.agpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yolobot";
        broken = true;
      }) {};
 
@@ -301644,6 +305917,7 @@ self: {
        executableHaskellDepends = [ base word8 ];
        description = "Yet Another Brainfuck Interpreter";
        license = lib.licenses.mit;
+       mainProgram = "yabi";
      }) {};
 
   "yabi-muno" = callPackage
@@ -301663,6 +305937,7 @@ self: {
        description = "Yet Another Brainfuck Interpreter";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yabi";
        broken = true;
      }) {};
 
@@ -302058,6 +306333,7 @@ self: {
        description = "Yam Web";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yam-web";
      }) {};
 
   "yamemo" = callPackage
@@ -302317,34 +306593,8 @@ self: {
      }:
      mkDerivation {
        pname = "yaml-unscrambler";
-       version = "0.1.0.9";
-       sha256 = "18xl26w4w7ql0936n5h7fqmcpyg284gn507wx67vs3yqqva1n07a";
-       libraryHaskellDepends = [
-         acc attoparsec attoparsec-data attoparsec-time base
-         base64-bytestring bytestring conduit containers foldl hashable
-         libyaml mtl scientific selective text text-builder-dev time
-         transformers unordered-containers uuid vector yaml
-       ];
-       testHaskellDepends = [
-         foldl neat-interpolation QuickCheck quickcheck-instances rerebase
-         tasty tasty-hunit tasty-quickcheck
-       ];
-       description = "Flexible declarative YAML parsing toolkit";
-       license = lib.licenses.mit;
-     }) {};
-
-  "yaml-unscrambler_0_1_0_10" = callPackage
-    ({ mkDerivation, acc, attoparsec, attoparsec-data, attoparsec-time
-     , base, base64-bytestring, bytestring, conduit, containers, foldl
-     , hashable, libyaml, mtl, neat-interpolation, QuickCheck
-     , quickcheck-instances, rerebase, scientific, selective, tasty
-     , tasty-hunit, tasty-quickcheck, text, text-builder-dev, time
-     , transformers, unordered-containers, uuid, vector, yaml
-     }:
-     mkDerivation {
-       pname = "yaml-unscrambler";
-       version = "0.1.0.10";
-       sha256 = "07pwdd6w6gh0x05925hfk5mhzmig6rh9yb87rkyx15197r9hj7xw";
+       version = "0.1.0.11";
+       sha256 = "1znca5my1z2pjgnw4x37lmh0lqipbg4xkw7lsijjn4ddhazwpd7x";
        libraryHaskellDepends = [
          acc attoparsec attoparsec-data attoparsec-time base
          base64-bytestring bytestring conduit containers foldl hashable
@@ -302358,6 +306608,7 @@ self: {
        description = "Flexible declarative YAML parsing toolkit";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       broken = true;
      }) {};
 
   "yaml2owl" = callPackage
@@ -302376,6 +306627,7 @@ self: {
        ];
        description = "Generate OWL schema from YAML syntax, and an RDFa template";
        license = "LGPL";
+       mainProgram = "yaml2owl";
      }) {};
 
   "yamlkeysdiff" = callPackage
@@ -302394,6 +306646,7 @@ self: {
        description = "Compares the keys from two yaml files";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yamlkeysdiff";
        broken = true;
      }) {};
 
@@ -302447,6 +306700,7 @@ self: {
        description = "Connects GLFW-b (GLFW 3+) with the Yampa FRP library";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampa-glfw-example";
        broken = true;
      }) {};
 
@@ -302510,8 +306764,8 @@ self: {
      }:
      mkDerivation {
        pname = "yampa-test";
-       version = "0.13.4";
-       sha256 = "08gb3z83vxj39fnvb3gyck54r01l0gh62cp9d2yfjhdr214d2lx3";
+       version = "0.13.5";
+       sha256 = "1dc2cicrd6w1y5z14xp0h1zd1xwkj8sm5ihqlpwyvikqnzlvvi7z";
        libraryHaskellDepends = [
          base normaldistribution QuickCheck Yampa
        ];
@@ -302536,6 +306790,7 @@ self: {
        description = "2048 game clone using Yampa/Gloss";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yampa2048";
        broken = true;
      }) {};
 
@@ -302629,7 +306884,7 @@ self: {
        ];
        description = "Represent and parse yarn.lock files";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "yarn2nix" = callPackage
@@ -302667,7 +306922,7 @@ self: {
        ];
        description = "Convert yarn.lock files to nix expressions";
        license = lib.licenses.mit;
-       maintainers = with lib.maintainers; [ sternenseemann ];
+       maintainers = [ lib.maintainers.sternenseemann ];
      }) {};
 
   "yarr" = callPackage
@@ -302761,6 +307016,7 @@ self: {
        description = "yet another visual editor";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yavie";
      }) {};
 
   "yaya" = callPackage
@@ -302959,6 +307215,7 @@ self: {
        testHaskellDepends = [ base containers hspec QuickCheck ];
        description = "Extended yes command to reproduce phrases in Yes! Precure 5";
        license = lib.licenses.mit;
+       mainProgram = "yes";
      }) {};
 
   "yeshql" = callPackage
@@ -303551,6 +307808,7 @@ self: {
        description = "A yesod-auth plugin for multi-tenant SSO via OpenID Connect";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-auth-oidc-test";
        broken = true;
      }) {broch = null;};
 
@@ -303610,6 +307868,7 @@ self: {
        description = "Traditional email/pass auth for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-auth-simple-test";
      }) {};
 
   "yesod-auth-smbclient" = callPackage
@@ -303667,6 +307926,7 @@ self: {
        testHaskellDepends = [ base ];
        description = "Auto-reload a yesod app during development";
        license = lib.licenses.mit;
+       mainProgram = "yesod-autoreload-example";
      }) {};
 
   "yesod-bin" = callPackage
@@ -303694,6 +307954,7 @@ self: {
        ];
        description = "The yesod helper executable";
        license = lib.licenses.mit;
+       mainProgram = "yesod";
      }) {};
 
   "yesod-bootstrap" = callPackage
@@ -303794,6 +308055,7 @@ self: {
        description = "Continuations for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesodContinuationsTest";
      }) {};
 
   "yesod-core" = callPackage
@@ -303958,6 +308220,7 @@ self: {
        description = "DSL for generating Yesod subsite to manage an RDBMS;";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-dsl";
        broken = true;
      }) {};
 
@@ -304033,6 +308296,7 @@ self: {
        description = "Fast live-reloading for yesod applications";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-fast-devel";
        broken = true;
      }) {};
 
@@ -304498,8 +308762,8 @@ self: {
      }:
      mkDerivation {
        pname = "yesod-paginator";
-       version = "1.1.2.1";
-       sha256 = "0d27jh5qizi9ppf7lvvpmmlih80hhgl5znjbknl12r95pkcjjy2r";
+       version = "1.1.2.2";
+       sha256 = "1j6mkzx0grdjnd3xldshx1lhlwshcjl8n5wsqj2pmxsrfh4a2qqg";
        isLibrary = true;
        isExecutable = true;
        libraryHaskellDepends = [
@@ -304638,6 +308902,7 @@ self: {
        description = "Yet another getMessage/setMessage using pnotify jquery plugins";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "sample";
        broken = true;
      }) {};
 
@@ -304720,6 +308985,7 @@ self: {
        description = "The raml helper executable";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yesod-raml-bin";
      }) {};
 
   "yesod-raml-docs" = callPackage
@@ -305179,6 +309445,7 @@ self: {
        description = "Simple CRUD classes for easy view creation for Yesod";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "vend-test-user";
        broken = true;
      }) {};
 
@@ -305258,6 +309525,7 @@ self: {
        ];
        description = "Yet Another Logger";
        license = lib.licenses.asl20;
+       mainProgram = "example";
      }) {};
 
   "yggdrasil" = callPackage
@@ -305308,6 +309576,7 @@ self: {
        description = "Calculation of YH sequence system";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yhseq";
        broken = true;
      }) {};
 
@@ -305332,6 +309601,7 @@ self: {
        description = "Yi editor";
        license = lib.licenses.gpl2Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yi";
      }) {};
 
   "yi-contrib" = callPackage
@@ -305801,6 +310071,7 @@ self: {
        ];
        testToolDepends = [ hspec-discover ];
        license = lib.licenses.gpl3Only;
+       mainProgram = "yiyd";
      }) {};
 
   "yjftp" = callPackage
@@ -305821,6 +310092,7 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yjftp";
      }) {};
 
   "yjftp-libs" = callPackage
@@ -305835,6 +310107,7 @@ self: {
        description = "CUI FTP client like 'ftp', 'ncftp'";
        license = "GPL";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yjftp-ni";
      }) {};
 
   "yjsvg" = callPackage
@@ -305985,6 +310258,7 @@ self: {
        description = "A YQL engine to execute Open Data Tables";
        license = lib.licenses.bsd2;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yql";
      }) {};
 
   "yst" = callPackage
@@ -306008,6 +310282,7 @@ self: {
        description = "Builds a static website from templates and data in YAML or CSV files";
        license = lib.licenses.gpl2Plus;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yst";
        broken = true;
      }) {};
 
@@ -306067,6 +310342,7 @@ self: {
        description = "The launcher for Yu";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yu-launch";
      }) {};
 
   "yu-tool" = callPackage
@@ -306085,6 +310361,7 @@ self: {
        description = "Tool for Yu";
        license = lib.licenses.gpl3Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yu";
        broken = true;
      }) {};
 
@@ -306146,6 +310423,7 @@ self: {
        description = "A transcendental HTML parser gently wrapping the HXT library";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "yuuko";
      }) {};
 
   "yx" = callPackage
@@ -306297,6 +310575,7 @@ self: {
        description = "A tool for checking how much work is done on group projects";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zampolit";
        broken = true;
      }) {};
 
@@ -306369,6 +310648,7 @@ self: {
        ];
        description = "A standard compliant HTML parsing library";
        license = lib.licenses.mit;
+       mainProgram = "zenacy-html-exe";
      }) {};
 
   "zenacy-unicode" = callPackage
@@ -306453,6 +310733,7 @@ self: {
        description = "An automated proof system for Haskell programs";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeno";
        broken = true;
      }) {};
 
@@ -306515,6 +310796,7 @@ self: {
        description = "Zephyr, tree-shaking for the PureScript language";
        license = lib.licenses.mpl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zephyr";
      }) {};
 
   "zephyr-copilot" = callPackage
@@ -306566,6 +310848,7 @@ self: {
        ];
        description = "Post to 0bin services";
        license = lib.licenses.mit;
+       mainProgram = "zerobin";
      }) {};
 
   "zeromq-haskell" = callPackage
@@ -306652,6 +310935,9 @@ self: {
        ];
        description = "Haskell implementation of the ZeroMQ clone pattern";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeromq4-clone-pattern-exe";
+       broken = true;
      }) {};
 
   "zeromq4-conduit" = callPackage
@@ -306716,6 +311002,9 @@ self: {
        ];
        description = "Haskell implementation of several ZeroMQ patterns";
        license = lib.licenses.bsd3;
+       hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeromq4-patterns-exe";
+       broken = true;
      }) {};
 
   "zeromq4-simple" = callPackage
@@ -306755,6 +311044,7 @@ self: {
        description = "ZeroTH - remove unnecessary TH dependencies";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zeroth";
      }) {};
 
   "zettelkast" = callPackage
@@ -306780,6 +311070,7 @@ self: {
        description = "Command-line utility for working with zettelkast files";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zettelkast";
        broken = true;
      }) {};
 
@@ -307021,6 +311312,7 @@ self: {
        ];
        description = "Operations on zip archives";
        license = lib.licenses.bsd3;
+       mainProgram = "haskell-zip-app";
      }) {};
 
   "zip-archive" = callPackage
@@ -307356,6 +311648,7 @@ self: {
        description = "Command-line tool for ZeroMQ";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmcat";
      }) {};
 
   "zmidi-core" = callPackage
@@ -307404,6 +311697,7 @@ self: {
        description = "A socat-like tool for zeromq library";
        license = "unknown";
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zmqat";
        broken = true;
      }) {};
 
@@ -307437,6 +311731,7 @@ self: {
        description = "A rake/thor-like task runner written in Haskell";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom";
        broken = true;
      }) {};
 
@@ -307470,6 +311765,7 @@ self: {
        description = "A streamable, seekable, zoomable cache file format";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom-cache";
      }) {};
 
   "zoom-cache-pcm" = callPackage
@@ -307507,6 +311803,7 @@ self: {
        description = "Tools for generating zoom-cache-pcm files";
        license = lib.licenses.lgpl21Only;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zoom-cache-sndfile";
      }) {};
 
   "zoom-refs" = callPackage
@@ -307552,6 +311849,7 @@ self: {
        executableHaskellDepends = [ base monads-tf ];
        description = "Zot language";
        license = lib.licenses.bsd3;
+       mainProgram = "zot";
      }) {};
 
   "zre" = callPackage
@@ -307585,7 +311883,7 @@ self: {
        ];
        description = "ZRE protocol implementation";
        license = lib.licenses.bsd3;
-       maintainers = with lib.maintainers; [ sorki ];
+       maintainers = [ lib.maintainers.sorki ];
      }) {};
 
   "zsdd" = callPackage
@@ -307617,6 +311915,7 @@ self: {
        description = "Ascii bars representing battery status";
        license = lib.licenses.bsd3;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zsh-battery";
        broken = true;
      }) {};
 
@@ -307672,6 +311971,7 @@ self: {
        ];
        description = "Multi-file, colored, filtered log tailer";
        license = lib.licenses.bsd3;
+       mainProgram = "ztail";
      }) {};
 
   "ztar" = callPackage
@@ -307734,6 +312034,7 @@ self: {
        description = "A lisp processor, An inline-lisp, in Haskell";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "maru";
      }) {};
 
   "zuul" = callPackage
@@ -307758,6 +312059,7 @@ self: {
        description = "A zuul client library";
        license = lib.licenses.asl20;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zuul-cli";
        broken = true;
      }) {};
 
@@ -307826,6 +312128,7 @@ self: {
        description = "Password strength estimation based on zxcvbn";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zxcvbn-example";
        broken = true;
      }) {};
 
@@ -307870,6 +312173,7 @@ self: {
        description = "Haskell zyre bindings for reliable group messaging over local area networks";
        license = lib.licenses.mit;
        hydraPlatforms = lib.platforms.none;
+       mainProgram = "zyre-example-exe";
        broken = true;
      }) {inherit (pkgs) czmq; zyre = null;};
 
diff --git a/pkgs/development/haskell-modules/lib/compose.nix b/pkgs/development/haskell-modules/lib/compose.nix
index a831a83a15f55..600bf80cb19c9 100644
--- a/pkgs/development/haskell-modules/lib/compose.nix
+++ b/pkgs/development/haskell-modules/lib/compose.nix
@@ -123,7 +123,8 @@ rec {
    */
   doDistribute = overrideCabal (drv: {
     # lib.platforms.all is the default value for platforms (since GHC can cross-compile)
-    hydraPlatforms = drv.platforms or lib.platforms.all;
+    hydraPlatforms = lib.subtractLists (drv.badPlatforms or [])
+      (drv.platforms or lib.platforms.all);
   });
   /* dontDistribute disables the distribution of binaries for the package
      via hydra.
diff --git a/pkgs/development/haskell-modules/non-hackage-packages.nix b/pkgs/development/haskell-modules/non-hackage-packages.nix
index beb81a58d8638..e3b21514831e5 100644
--- a/pkgs/development/haskell-modules/non-hackage-packages.nix
+++ b/pkgs/development/haskell-modules/non-hackage-packages.nix
@@ -13,7 +13,9 @@ self: super: {
 
   # Used by maintainers/scripts/regenerate-hackage-packages.sh, and generated
   # from the latest master instead of the current version on Hackage.
-  cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix { };
+  cabal2nix-unstable = self.callPackage ./cabal2nix-unstable.nix {
+    distribution-nixpkgs = self.distribution-nixpkgs_1_7_0;
+  };
 
   # https://github.com/channable/vaultenv/issues/1
   vaultenv = self.callPackage ../tools/haskell/vaultenv { };
diff --git a/pkgs/development/interpreters/clojure/default.nix b/pkgs/development/interpreters/clojure/default.nix
index ece7d42bed47d..49cba2ca62144 100644
--- a/pkgs/development/interpreters/clojure/default.nix
+++ b/pkgs/development/interpreters/clojure/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "clojure";
-  version = "1.11.1.1129";
+  version = "1.11.1.1149";
 
   src = fetchurl {
     # https://clojure.org/releases/tools
     url = "https://download.clojure.org/install/clojure-tools-${version}.tar.gz";
-    sha256 = "sha256-kib1gGN4krlvEuCGdAYV3ejaMXOIhJ7ZBaUO4ulc6SQ=";
+    sha256 = "sha256-IIhonPSwpADNAuv9DQIKrdsJcGAlX+6uHe+jvA6i3KQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/interpreters/dhall/build-dhall-url.nix b/pkgs/development/interpreters/dhall/build-dhall-url.nix
index 766fe3c1c2e3f..6d7103f78e6fa 100644
--- a/pkgs/development/interpreters/dhall/build-dhall-url.nix
+++ b/pkgs/development/interpreters/dhall/build-dhall-url.nix
@@ -59,6 +59,7 @@ let
         outputHash = hash;
         name = baseNameOf url;
         nativeBuildInputs = [ cacert ];
+        impureEnvVars = lib.fetchers.proxyImpureEnvVars;
       }
       ''
         echo "${url} ${dhallHash}" > in-dhall-file
@@ -76,7 +77,8 @@ let
    sourceFile = "source.dhall";
 
 in
-  runCommand name { } (''
+  runCommand name { }
+ (''
     set -eu
 
     mkdir -p ${cacheDhall} $out/${cacheDhall}
diff --git a/pkgs/development/interpreters/groovy/default.nix b/pkgs/development/interpreters/groovy/default.nix
index 9d2b9a8f03871..e4c8c60754422 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.7";
+  version = "3.0.11";
 
   src = fetchurl {
-    url = "http://dl.bintray.com/groovy/maven/apache-groovy-binary-${version}.zip";
-    sha256 = "1xdpjqx7qaq0syw448b32q36g12pgh1hn6knyqi3k5isp0f09qmr";
+    url = "mirror://apache/groovy/${version}/distribution/apache-groovy-binary-${version}.zip";
+    sha256 = "85abb44e81f94d794230cf5c2c7f1003e598a5f8a6ae04322f28c6f9efe395f6";
   };
 
   nativeBuildInputs = [ makeWrapper unzip ];
diff --git a/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch b/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch
new file mode 100644
index 0000000000000..bcf16acbea422
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/CVE-2022-28805.patch
@@ -0,0 +1,10 @@
+--- a/src/lparser.c
++++ b/src/lparser.c
+@@ -301,6 +301,7 @@
+     expdesc key;
+     singlevaraux(fs, ls->envn, var, 1);  /* get environment variable */
+     lua_assert(var->k == VLOCAL || var->k == VUPVAL);
++    luaK_exp2anyregup(fs, var);  /* but could be a constant */
+     codestring(ls, &key, varname);  /* key is variable name */
+     luaK_indexed(fs, var, &key);  /* env[varname] */
+   }
diff --git a/pkgs/development/interpreters/lua-5/build-lua-package.nix b/pkgs/development/interpreters/lua-5/build-lua-package.nix
index ff93e842eeae1..0af7b470b0b38 100644
--- a/pkgs/development/interpreters/lua-5/build-lua-package.nix
+++ b/pkgs/development/interpreters/lua-5/build-lua-package.nix
@@ -4,6 +4,7 @@
 , wrapLua
 # Whether the derivation provides a lua module or not.
 , toLuaModule
+, luarocksCheckHook
 }:
 
 {
@@ -42,6 +43,7 @@ pname
 
 , passthru ? {}
 , doCheck ? false
+, doInstallCheck ? false
 
 # Non-Lua / system (e.g. C library) dependencies. Is a list of deps, where
 # each dep is either a derivation, or an attribute set like
@@ -97,10 +99,12 @@ let
   # Filter out the lua derivation itself from the Lua module dependency
   # closure, as it doesn't have a rock tree :)
   requiredLuaRocks = lib.filter (d: d ? luaModule)
-    (lua.pkgs.requiredLuaModules luarocksDrv.propagatedBuildInputs);
+    (lua.pkgs.requiredLuaModules (luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs));
 
   # example externalDeps': [ { name = "CRYPTO"; dep = pkgs.openssl; } ]
-  externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs));
+  externalDepsGenerated = lib.unique (lib.filter (drv: !drv ? luaModule) (
+    luarocksDrv.nativeBuildInputs ++ luarocksDrv.propagatedBuildInputs ++ luarocksDrv.buildInputs)
+    );
   externalDeps' = lib.filter (dep: !lib.isDerivation dep) externalDeps;
 
   luarocksDrv = toLuaModule ( lua.stdenv.mkDerivation (
@@ -108,15 +112,17 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
 
   name = namePrefix + pname + "-" + version;
 
-  buildInputs = [ wrapLua lua.pkgs.luarocks ]
+  nativeBuildInputs = [
+    wrapLua
+    lua.pkgs.luarocks
+  ]
     ++ buildInputs
-    ++ lib.optionals doCheck checkInputs
+    ++ lib.optionals doCheck ([ luarocksCheckHook ] ++ checkInputs)
     ++ (map (d: d.dep) externalDeps')
     ;
 
   # propagate lua to active setup-hook in nix-shell
   propagatedBuildInputs = propagatedBuildInputs ++ [ lua ];
-  inherit doCheck;
 
   # @-patterns do not capture formal argument default values, so we need to
   # explicitly inherit this for it to be available as a shell variable in the
@@ -190,6 +196,14 @@ builtins.removeAttrs attrs ["disabled" "checkInputs" "externalDeps" "extraVariab
     runHook postCheck
   '';
 
+  LUAROCKS_CONFIG="$PWD/${luarocks_config}";
+
+  shellHook = ''
+    runHook preShell
+    export LUAROCKS_CONFIG="$PWD/${luarocks_config}";
+    runHook postShell
+  '';
+
   passthru = {
     inherit lua; # The lua interpreter
     inherit externalDeps;
diff --git a/pkgs/development/interpreters/lua-5/default.nix b/pkgs/development/interpreters/lua-5/default.nix
index 5230a46afef32..a160ee039f3a0 100644
--- a/pkgs/development/interpreters/lua-5/default.nix
+++ b/pkgs/development/interpreters/lua-5/default.nix
@@ -7,7 +7,17 @@ rec {
     hash = "1yxvjvnbg4nyrdv10bq42gz6dr66pyan28lgzfygqfwy2rv24qgq";
     makeWrapper = makeBinaryWrapper;
 
-    patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch;
+    patches = lib.optional stdenv.isDarwin ./5.4.darwin.patch
+      ++ [
+        (fetchpatch {
+          name = "CVE-2022-28805.patch";
+          url = "https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa.patch";
+          sha256 = "sha256-YTwoolSnRNJIHFPVijSO6ZDw35BG5oWYralZ8qOb9y8=";
+          stripLen = 1;
+          extraPrefix = "src/";
+          excludes = [ "src/testes/*" ];
+        })
+      ];
   };
 
   lua5_4_compat = lua5_4.override({
@@ -32,7 +42,9 @@ rec {
     sourceVersion = { major = "5"; minor = "2"; patch = "4"; };
     hash = "0jwznq0l8qg9wh5grwg07b5cy3lzngvl5m2nl1ikp6vqssmf9qmr";
     makeWrapper = makeBinaryWrapper;
-    patches = lib.optional stdenv.isDarwin ./5.2.darwin.patch;
+    patches = [
+      ./CVE-2022-28805.patch
+    ] ++ lib.optional stdenv.isDarwin ./5.2.darwin.patch;
   };
 
   lua5_2_compat = lua5_2.override({
diff --git a/pkgs/development/interpreters/lua-5/hooks/default.nix b/pkgs/development/interpreters/lua-5/hooks/default.nix
index 8fd725a9b8a4f..fc92c59bb910c 100644
--- a/pkgs/development/interpreters/lua-5/hooks/default.nix
+++ b/pkgs/development/interpreters/lua-5/hooks/default.nix
@@ -24,4 +24,17 @@ in {
       mv hook.sh $out
     '';
 
+  luarocksCheckHook = callPackage ({ luarocks }:
+    makeSetupHook {
+      name = "luarocks-check-hook";
+      deps = [ luarocks ];
+    } ./luarocks-check-hook.sh) {};
+
+  # luarocks installs data in a non-overridable location. Until a proper luarocks patch,
+  # we move the files around ourselves
+  luarocksMoveDataFolder = callPackage ({ }:
+    makeSetupHook {
+      name = "luarocks-move-rock";
+      deps = [ ];
+    } ./luarocks-move-data.sh) {};
 }
diff --git a/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh b/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh
new file mode 100644
index 0000000000000..bc6c6255d5601
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/hooks/luarocks-check-hook.sh
@@ -0,0 +1,18 @@
+# Setup hook for checking whether Python imports succeed
+echo "Sourcing luarocks-check-hook.sh"
+
+luarocksCheckPhase () {
+    echo "Executing luarocksCheckPhase"
+    runHook preCheck
+
+    luarocks test
+
+    runHook postCheck
+    echo "Finished executing luarocksCheckPhase"
+}
+
+if [ -z "${dontLuarocksCheck-}" ] && [ -z "${checkPhase-}" ]; then
+    echo "Using luarocksCheckPhase"
+    checkPhase+=" luarocksCheckPhase"
+fi
+
diff --git a/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh b/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh
new file mode 100644
index 0000000000000..f0b56178f01e7
--- /dev/null
+++ b/pkgs/development/interpreters/lua-5/hooks/luarocks-move-data.sh
@@ -0,0 +1,15 @@
+# luarocks installs data in a non-overridable location. Until a proper luarocks patch,
+# we move the files around ourselves
+echo "Sourcing luarocks-move-data-hook.sh"
+
+luarocksMoveDataHook () {
+    echo "Executing luarocksMoveDataHook"
+    if [ -d "$out/$rocksSubdir" ]; then
+        cp -rfv "$out/$rocksSubdir/$pname/$version/." "$out"
+    fi
+
+    echo "Finished executing luarocksMoveDataHook"
+}
+
+echo "Using luarocksMoveDataHook"
+preDistPhases+=" luarocksMoveDataHook"
diff --git a/pkgs/development/interpreters/oak/default.nix b/pkgs/development/interpreters/oak/default.nix
new file mode 100644
index 0000000000000..29b476e7c7e3f
--- /dev/null
+++ b/pkgs/development/interpreters/oak/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "oak";
+  version = "0.2";
+
+  src = fetchFromGitHub {
+    owner = "thesephist";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-00UanINtrFyjQWiAw1ucB4eEODMr9+wT+99Zy2Oc1j4=";
+  };
+
+  vendorSha256 = "sha256-iQtb3zNa57nB6x4InVPw7FCmW7XPw5yuz0OcfASXPD8=";
+
+  meta = with lib; {
+    description = "Expressive, simple, dynamic programming language";
+    homepage = "https://oaklang.org/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ tejasag ];
+  };
+}
diff --git a/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch b/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch
new file mode 100644
index 0000000000000..92b846be00022
--- /dev/null
+++ b/pkgs/development/interpreters/python/cpython/3.11/darwin-libutil.patch
@@ -0,0 +1,13 @@
+diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
+index 40229bce0f..3cc604930e 100644
+--- a/Modules/posixmodule.c
++++ b/Modules/posixmodule.c
+@@ -7258,7 +7258,7 @@ os_sched_getaffinity_impl(PyObject *module, pid_t pid)
+ #ifdef HAVE_UTMP_H
+ #include <utmp.h>
+ #endif /* HAVE_UTMP_H */
+-#elif defined(HAVE_LIBUTIL_H)
++#elif defined(HAVE_LIBUTIL_H) && !defined(__APPLE__)
+ #include <libutil.h>
+ #elif defined(HAVE_UTIL_H)
+ #include <util.h>
diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix
index 1218f2eb24e04..a52935c69dfda 100644
--- a/pkgs/development/interpreters/python/cpython/default.nix
+++ b/pkgs/development/interpreters/python/cpython/default.nix
@@ -82,7 +82,7 @@ let
 
   passthru = let
     # When we override the interpreter we also need to override the spliced versions of the interpreter
-    inputs' = lib.filterAttrs (_: v: ! lib.isDerivation v) inputs;
+    inputs' = lib.filterAttrs (n: v: ! lib.isDerivation v && n != "passthruFun") inputs;
     override = attr: let python = attr.override (inputs' // { self = python; }); in python;
   in passthruFun rec {
     inherit self sourceVersion packageOverrides;
@@ -144,7 +144,19 @@ let
     # The configure script uses "arm" as the CPU name for all 32-bit ARM
     # variants when cross-compiling, but native builds include the version
     # suffix, so we do the same.
-    pythonHostPlatform = "${parsed.kernel.name}-${parsed.cpu.name}";
+    pythonHostPlatform = let
+      cpu = {
+        # According to PEP600, Python's name for the Power PC
+        # architecture is "ppc", not "powerpc".  Without the Rosetta
+        # Stone below, the PEP600 requirement that "${ARCH} matches
+        # the return value from distutils.util.get_platform()" fails.
+        # https://peps.python.org/pep-0600/
+        powerpc = "ppc";
+        powerpcle = "ppcle";
+        powerpc64 = "ppc64";
+        powerpc64le = "ppc64le";
+      }.${parsed.cpu.name} or parsed.cpu.name;
+    in "${parsed.kernel.name}-${cpu}";
 
     # https://github.com/python/cpython/blob/e488e300f5c01289c10906c2e53a8e43d6de32d8/configure.ac#L724
     multiarchCpu =
@@ -225,9 +237,11 @@ in with passthru; stdenv.mkDerivation {
     # * https://bugs.python.org/issue35523
     # * https://github.com/python/cpython/commit/e6b247c8e524
     ./3.7/no-win64-workaround.patch
-  ] ++ optionals (pythonAtLeast "3.7") [
+  ] ++ optionals (pythonAtLeast "3.7" && pythonOlder "3.11") [
     # Fix darwin build https://bugs.python.org/issue34027
     ./3.7/darwin-libutil.patch
+  ] ++ optionals (pythonAtLeast "3.11") [
+    ./3.11/darwin-libutil.patch
   ] ++ optionals (pythonOlder "3.8") [
     # Backport from CPython 3.8 of a good list of tests to run for PGO.
     (
diff --git a/pkgs/development/interpreters/python/default.nix b/pkgs/development/interpreters/python/default.nix
index 518bb0ec0f861..307633fc5d6f7 100644
--- a/pkgs/development/interpreters/python/default.nix
+++ b/pkgs/development/interpreters/python/default.nix
@@ -199,9 +199,9 @@ in {
       major = "3";
       minor = "11";
       patch = "0";
-      suffix = "a7";
+      suffix = "b3";
     };
-    sha256 = "sha256-t8Vt10wvRy1Ja1qNNWvWrZ75sD8mKIwyN9P/aYqwPXQ=";
+    sha256 = "sha256-ybmfUxXqMPjp/LzmgHo3Oeh1SA0pEk5tmUD2+ry3yQI=";
     inherit (darwin) configd;
     inherit passthruFun;
   };
@@ -230,7 +230,7 @@ in {
     enableOptimizations = false;
     enableLTO = false;
     mimetypesSupport = false;
-  } // sources.python39)).overrideAttrs(old: {
+  } // sources.python310)).overrideAttrs(old: {
     # TODO(@Artturin): Add this to the main cpython expr
     strictDeps = true;
     pname = "python3-minimal";
diff --git a/pkgs/development/interpreters/spidermonkey/78.nix b/pkgs/development/interpreters/spidermonkey/78.nix
index f2a68158266b5..0ce007057a230 100644
--- a/pkgs/development/interpreters/spidermonkey/78.nix
+++ b/pkgs/development/interpreters/spidermonkey/78.nix
@@ -4,7 +4,7 @@
 , autoconf213
 , pkg-config
 , perl
-, python3
+, python39
 , zip
 , buildPackages
 , which
@@ -54,7 +54,7 @@ stdenv.mkDerivation rec {
     rustc.llvmPackages.llvm # for llvm-objdump
     perl
     pkg-config
-    python3
+    python39
     rust-cbindgen
     rustc
     which
diff --git a/pkgs/development/interpreters/wasmtime/default.nix b/pkgs/development/interpreters/wasmtime/default.nix
index 47bdaf8623627..508dc2be60b9b 100644
--- a/pkgs/development/interpreters/wasmtime/default.nix
+++ b/pkgs/development/interpreters/wasmtime/default.nix
@@ -1,42 +1,34 @@
-{ rustPlatform, fetchFromGitHub, lib, stdenv, v8 }:
+{ rustPlatform, fetchFromGitHub, lib }:
 
 rustPlatform.buildRustPackage rec {
   pname = "wasmtime";
-  version = "0.37.0";
+  version = "0.38.0";
 
   src = fetchFromGitHub {
     owner = "bytecodealliance";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ZUr1v94If8ER4lTHLwuP+F3xfXU7IW4ZEztBA2TPvVg=";
+    sha256 = "sha256-q+6w22MbI3HRpmkybZXXWbkK7jbd6lyxodC3EpSovRI=";
     fetchSubmodules = true;
   };
 
-  cargoSha256 = "sha256-X+KDeWavFTBaxbSPlIiyuiBC7wg1/5C/NXp+VEY8Mk8=";
-
-  # This environment variable is required so that when wasmtime tries
-  # to run tests by using the rusty_v8 crate, it does not try to
-  # download a static v8 build from the Internet, what would break
-  # build hermetism.
-  RUSTY_V8_ARCHIVE = lib.optionalString stdenv.isLinux "${v8}/lib/libv8.a";
+  cargoSha256 = "sha256-uuhGb0/RDz1/3O8WYiyGIUQFh0WZWJgujqtvH+hgbdA=";
 
   doCheck = true;
   checkFlags = [
     "--skip=cli_tests::run_cwasm"
-    "--skip=commands::compile::test::test_successful_compile"
     "--skip=commands::compile::test::test_aarch64_flags_compile"
-    "--skip=commands::compile::test::test_unsupported_flags_compile"
+    "--skip=commands::compile::test::test_successful_compile"
     "--skip=commands::compile::test::test_x64_flags_compile"
     "--skip=commands::compile::test::test_x64_presets_compile"
     "--skip=traps::parse_dwarf_info"
   ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Standalone JIT-style runtime for WebAssembly, using Cranelift";
     homepage = "https://github.com/bytecodealliance/wasmtime";
     license = licenses.asl20;
-    maintainers = [ maintainers.matthewbauer ];
+    maintainers = with maintainers; [ ereslibre matthewbauer ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/allegro/5.nix b/pkgs/development/libraries/allegro/5.nix
index 859d46459cb8a..6bb1a70b86506 100644
--- a/pkgs/development/libraries/allegro/5.nix
+++ b/pkgs/development/libraries/allegro/5.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "allegro";
-  version = "5.2.7.0";
+  version = "5.2.8.0";
 
   src = fetchFromGitHub {
     owner = "liballeg";
     repo = "allegro5";
     rev = version;
-    sha256 = "sha256-JdnzEW+qAhAljR+WfmgE3P9xeR2HvjS64tFgCC0tNA0=";
+    sha256 = "sha256-uNcaeTelFNfg+YjPYc7nK4TrFDxJsEuPhsF8x1cvIYQ=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/amdvlk/default.nix b/pkgs/development/libraries/amdvlk/default.nix
index cafa505da621b..54bd91db3ae81 100644
--- a/pkgs/development/libraries/amdvlk/default.nix
+++ b/pkgs/development/libraries/amdvlk/default.nix
@@ -22,13 +22,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "amdvlk";
-  version = "2022.Q2.2";
+  version = "2022.Q2.3";
 
   src = fetchRepoProject {
     name = "${pname}-src";
     manifest = "https://github.com/GPUOpen-Drivers/AMDVLK.git";
     rev = "refs/tags/v-${version}";
-    sha256 = "4LV6g2snT1usY+Ic9Hb/IwXAJQ97I9DigZCah6mwewA=";
+    sha256 = "Yd2juNdSP8TdSX9j/iXsC2xrIRzDEuXJbms91AqwjEc=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/armadillo/default.nix b/pkgs/development/libraries/armadillo/default.nix
index 6513d4be3964b..539288acd4c85 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 = "11.1.1";
+  version = "11.2.0";
 
   src = fetchurl {
     url = "mirror://sourceforge/arma/armadillo-${version}.tar.xz";
-    sha256 = "sha256-v6YVSl/v2DLSjVMKWCIf5KLP8qO729guEJveU/sp3Ns=";
+    sha256 = "sha256-31yiFZAcaMY0Z8C/7hTwjjTYdaR6sPCVCCqzLd/08kM=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
new file mode 100644
index 0000000000000..8d5ef86a89671
--- /dev/null
+++ b/pkgs/development/libraries/audio/libopenmpt-modplug/default.nix
@@ -0,0 +1,42 @@
+{ stdenv
+, lib
+, fetchurl
+, autoreconfHook
+, pkg-config
+, libopenmpt
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libopenmpt-modplug";
+  version = "0.8.9.0-openmpt1";
+
+  outputs = [ "out" "dev" ];
+
+  src = fetchurl {
+    url = "https://lib.openmpt.org/files/libopenmpt-modplug/libopenmpt-modplug-${version}.tar.gz";
+    sha256 = "sha256-7M4aDuz9sLWCTKuJwnDc5ZWWKVosF8KwQyFez018T/c=";
+  };
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
+
+  buildInputs = [
+    libopenmpt
+  ];
+
+  configureFlags = [
+    "--enable-libmodplug"
+  ];
+
+  meta = with lib; {
+    description = "A libmodplug emulation layer based on libopenmpt";
+    homepage = "https://lib.openmpt.org/libopenmpt/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ OPNA2608 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/boost/1.72.nix b/pkgs/development/libraries/boost/1.72.nix
index 666a3cacb656a..4f2cc4848b193 100644
--- a/pkgs/development/libraries/boost/1.72.nix
+++ b/pkgs/development/libraries/boost/1.72.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_72_0.html
     sha256 = "59c9b274bc451cf91a9ba1dd2c7fdcaf5d60b1b3aa83f2c9fa143417cc660722";
diff --git a/pkgs/development/libraries/boost/1.73.nix b/pkgs/development/libraries/boost/1.73.nix
index 1d53ebcccd75e..97506873980f0 100644
--- a/pkgs/development/libraries/boost/1.73.nix
+++ b/pkgs/development/libraries/boost/1.73.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_73_0.html
     sha256 = "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402";
diff --git a/pkgs/development/libraries/boost/1.74.nix b/pkgs/development/libraries/boost/1.74.nix
index f3a29dafbcd9c..f28f40048632a 100644
--- a/pkgs/development/libraries/boost/1.74.nix
+++ b/pkgs/development/libraries/boost/1.74.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_74_0.html
     sha256 = "83bfc1507731a0906e387fc28b7ef5417d591429e51e788417fe9ff025e116b1";
diff --git a/pkgs/development/libraries/boost/1.75.nix b/pkgs/development/libraries/boost/1.75.nix
index 1432899f99673..ec77070c932c0 100644
--- a/pkgs/development/libraries/boost/1.75.nix
+++ b/pkgs/development/libraries/boost/1.75.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_75_0.html
     sha256 = "953db31e016db7bb207f11432bef7df100516eeb746843fa0486a222e3fd49cb";
diff --git a/pkgs/development/libraries/boost/1.77.nix b/pkgs/development/libraries/boost/1.77.nix
index 634523b244ce7..3da1a455ead4b 100644
--- a/pkgs/development/libraries/boost/1.77.nix
+++ b/pkgs/development/libraries/boost/1.77.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_77_0.html
     sha256 = "sha256-/J+F/AMOIzFCkIJBr3qEbmBjCqc4jeml+vsfOiaECFQ=";
diff --git a/pkgs/development/libraries/boost/1.78.nix b/pkgs/development/libraries/boost/1.78.nix
index a7ec9b0e04e49..2cc818e63ce03 100644
--- a/pkgs/development/libraries/boost/1.78.nix
+++ b/pkgs/development/libraries/boost/1.78.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_78_0.html
     sha256 = "8681f175d4bdb26c52222665793eef08490d7758529330f98d3b29dd0735bccc";
diff --git a/pkgs/development/libraries/boost/1.79.nix b/pkgs/development/libraries/boost/1.79.nix
index efb176c07a7fc..87975e2846d30 100644
--- a/pkgs/development/libraries/boost/1.79.nix
+++ b/pkgs/development/libraries/boost/1.79.nix
@@ -6,7 +6,7 @@ callPackage ./generic.nix (args // rec {
   src = fetchurl {
     urls = [
       "mirror://sourceforge/boost/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
-      "https://dl.bintray.com/boostorg/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
+      "https://boostorg.jfrog.io/artifactory/main/release/${version}/source/boost_${builtins.replaceStrings ["."] ["_"] version}.tar.bz2"
     ];
     # SHA256 from http://www.boost.org/users/history/version_1_79_0.html
     sha256 = "475d589d51a7f8b3ba2ba4eda022b170e562ca3b760ee922c146b6c65856ef39";
diff --git a/pkgs/development/libraries/capnproto/default.nix b/pkgs/development/libraries/capnproto/default.nix
index aeb9728af8269..3f1d121989946 100644
--- a/pkgs/development/libraries/capnproto/default.nix
+++ b/pkgs/development/libraries/capnproto/default.nix
@@ -6,14 +6,14 @@
 
 stdenv.mkDerivation rec {
   pname = "capnproto";
-  version = "0.9.1";
+  version = "0.10.1";
 
   # release tarballs are missing some ekam rules
   src = fetchFromGitHub {
     owner = "capnproto";
     repo = "capnproto";
     rev = "v${version}";
-    sha256 = "0cbiwkmd29abih8rjjm35dfkrkr8c6axbzq3fkryay6jyvpi42c5";
+    sha256 = "sha256-VdeoTU802kAqTdu8CJTIhy3xHM3ZCPqb5YNUS2k1x7E=";
   };
 
   nativeBuildInputs = [ cmake ]
@@ -21,9 +21,6 @@ stdenv.mkDerivation rec {
 
   cmakeFlags = lib.optional (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) "-DEXTERNAL_CAPNP";
 
-  # Upstream 77ac9154440bcc216fda1092fd5bb51da62ae09c, modified to apply to v0.9.1.  Drop on update.
-  patches = lib.optional stdenv.hostPlatform.isMusl ./musl-no-fibers.patch;
-
   meta = with lib; {
     homepage    = "https://capnproto.org/";
     description = "Cap'n Proto cerealization protocol";
diff --git a/pkgs/development/libraries/capnproto/musl-no-fibers.patch b/pkgs/development/libraries/capnproto/musl-no-fibers.patch
deleted file mode 100644
index bb7804fb0abb4..0000000000000
--- a/pkgs/development/libraries/capnproto/musl-no-fibers.patch
+++ /dev/null
@@ -1,244 +0,0 @@
-From 3d983eff304c28574c330a52d70a60145c9e157e Mon Sep 17 00:00:00 2001
-From: Jonas Vautherin <jonas.vautherin@gmail.com>
-Date: Fri, 14 Jan 2022 00:14:26 +0100
-Subject: [PATCH] Add support for musl
-
----
-Based on upstream 77ac9154440bcc216fda1092fd5bb51da62ae09c,
-modified slightly by dtzWill to apply to v0.9.1.
-
-(drop whitespace change to a cmake "if (WITH_OPENSSL)",
-leave the other instance of that change since it applies)
----
-
-Co-authored-by: Guillaume Papin <guillaume.papin@epitech.eu>
-(cherry picked from commit 77ac9154440bcc216fda1092fd5bb51da62ae09c)
----
- .github/workflows/quick-test.yml   |  9 ++++++
- c++/CMakeLists.txt                 | 46 ++++++++++++++++++++++++++++-
- c++/cmake/CapnProtoConfig.cmake.in | 32 ++++++++++++++++++++
- c++/configure.ac                   | 47 ++++++++++++++++++++++++++++--
- c++/src/kj/CMakeLists.txt          | 11 ++++++-
- 5 files changed, 141 insertions(+), 4 deletions(-)
-
-diff --git a/.github/workflows/quick-test.yml b/.github/workflows/quick-test.yml
-index c18ef6a6..773ff043 100644
---- a/.github/workflows/quick-test.yml
-+++ b/.github/workflows/quick-test.yml
-@@ -10,6 +10,15 @@ on:
-     - 'release-*'
- 
- jobs:
-+  Linux-musl:
-+    runs-on: ubuntu-latest
-+    container: alpine:latest
-+    steps:
-+      - uses: actions/checkout@v2
-+      - name: install dependencies
-+        run: apk add autoconf automake build-base cmake libtool libucontext-dev linux-headers openssl-dev
-+      - name: super-test
-+        run: ./super-test.sh quick
-   Linux:
-     runs-on: ubuntu-latest
-     strategy:
-diff --git a/c++/CMakeLists.txt b/c++/CMakeLists.txt
-index 548dfd1f..5de7ab26 100644
---- a/c++/CMakeLists.txt
-+++ b/c++/CMakeLists.txt
-@@ -1,4 +1,4 @@
--cmake_minimum_required(VERSION 3.4)
-+cmake_minimum_required(VERSION 3.6)
- project("Cap'n Proto" CXX)
- set(VERSION 0.9.1)
- 
-@@ -64,6 +64,50 @@ elseif (WITH_OPENSSL)
-   find_package(OpenSSL REQUIRED COMPONENTS Crypto SSL)
- endif()
- 
-+set(WITH_FIBERS "AUTO" CACHE STRING
-+  "Whether or not to build libkj-async with fibers")
-+# define list of values GUI will offer for the variable
-+set_property(CACHE WITH_FIBERS PROPERTY STRINGS AUTO ON OFF)
-+
-+# CapnProtoConfig.cmake.in needs this variable.
-+set(_WITH_LIBUCONTEXT OFF)
-+
-+if (WITH_FIBERS OR WITH_FIBERS STREQUAL "AUTO")
-+  set(_capnp_fibers_found OFF)
-+  if (WIN32 OR CYGWIN)
-+    set(_capnp_fibers_found ON)
-+  else()
-+    # Fibers need makecontext, setcontext, getcontext, swapcontext that may be in libc,
-+    # or in libucontext (e.g. for musl).
-+    # We assume that makecontext implies that the others are present.
-+    include(CheckLibraryExists)
-+    check_library_exists(c makecontext "" HAVE_UCONTEXT_LIBC)
-+    if (HAVE_UCONTEXT_LIBC)
-+      set(_capnp_fibers_found ON)
-+    else()
-+      # Try with libucontext
-+      find_package(PkgConfig)
-+      if (PKG_CONFIG_FOUND)
-+        pkg_check_modules(libucontext IMPORTED_TARGET libucontext)
-+        if (libucontext_FOUND)
-+          set(_WITH_LIBUCONTEXT ON)
-+          set(_capnp_fibers_found ON)
-+        endif()
-+      else()
-+        set(_capnp_fibers_found OFF)
-+      endif()
-+    endif()
-+  endif()
-+
-+  if (_capnp_fibers_found)
-+    set(WITH_FIBERS ON)
-+  elseif(WITH_FIBERS STREQUAL "AUTO")
-+    set(WITH_FIBERS OFF)
-+  else()
-+    message(FATAL_ERROR "Missing 'makecontext', 'getcontext', 'setcontext' or 'swapcontext' symbol in libc and no libucontext found: KJ won't be able to build with fibers. Disable fibers (-DWITH_FIBERS=OFF).")
-+  endif()
-+endif()
-+
- if(MSVC)
-   # TODO(cleanup): Enable higher warning level in MSVC, but make sure to test
-   #   build with that warning level and clean out false positives.
-diff --git a/c++/cmake/CapnProtoConfig.cmake.in b/c++/cmake/CapnProtoConfig.cmake.in
-index 667f502f..0580b11a 100644
---- a/c++/cmake/CapnProtoConfig.cmake.in
-+++ b/c++/cmake/CapnProtoConfig.cmake.in
-@@ -62,6 +62,38 @@ if (@WITH_OPENSSL@)  # WITH_OPENSSL
-   endif()
- endif()
- 
-+if (@_WITH_LIBUCONTEXT@) # _WITH_LIBUCONTEXT
-+  set(forwarded_config_flags)
-+  if(CapnProto_FIND_QUIETLY)
-+    list(APPEND forwarded_config_flags QUIET)
-+  endif()
-+  if(CapnProto_FIND_REQUIRED)
-+    list(APPEND forwarded_config_flags REQUIRED)
-+  endif()
-+  # If the consuming project called find_package(CapnProto) with the QUIET or REQUIRED flags, forward
-+  # them to calls to find_package(PkgConfig) and pkg_check_modules(). Note that find_dependency()
-+  # would do this for us in the former case, but there is no such forwarding wrapper for
-+  # pkg_check_modules().
-+
-+  find_package(PkgConfig ${forwarded_config_flags})
-+  if(NOT ${PkgConfig_FOUND})
-+    # If we're here, the REQUIRED flag must not have been passed, else we would have had a fatal
-+    # error. Nevertheless, a diagnostic for this case is probably nice.
-+    if(NOT CapnProto_FIND_QUIETLY)
-+      message(WARNING "pkg-config cannot be found")
-+    endif()
-+    set(CapnProto_FOUND OFF)
-+    return()
-+  endif()
-+
-+  if (CMAKE_VERSION VERSION_LESS 3.6)
-+    # CMake >= 3.6 required due to the use of IMPORTED_TARGET
-+    message(SEND_ERROR "libucontext support requires CMake >= 3.6.")
-+  endif()
-+
-+  pkg_check_modules(libucontext IMPORTED_TARGET ${forwarded_config_flags} libucontext)
-+endif()
-+
- include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoTargets.cmake")
- include("${CMAKE_CURRENT_LIST_DIR}/CapnProtoMacros.cmake")
- 
-diff --git a/c++/configure.ac b/c++/configure.ac
-index 72fe8456..b627bec8 100644
---- a/c++/configure.ac
-+++ b/c++/configure.ac
-@@ -32,6 +32,11 @@ AC_ARG_WITH([openssl],
-     [build libkj-tls by linking against openssl @<:@default=check@:>@])],
-   [],[with_openssl=check])
- 
-+AC_ARG_WITH([fibers],
-+  [AS_HELP_STRING([--with-fibers],
-+    [build libkj-async with fibers @<:@default=check@:>@])],
-+  [],[with_fibers=check])
-+
- AC_ARG_ENABLE([reflection], [
-   AS_HELP_STRING([--disable-reflection], [
-     compile Cap'n Proto in "lite mode", in which all reflection APIs (schema.h, dynamic.h, etc.)
-@@ -195,8 +200,46 @@ AS_IF([test "$with_openssl" != no], [
- ])
- AM_CONDITIONAL([BUILD_KJ_TLS], [test "$with_openssl" != no])
- 
--# CapnProtoConfig.cmake.in needs this variable.
--AC_SUBST(WITH_OPENSSL, $with_openssl)
-+# Fibers need the symbols getcontext, setcontext, swapcontext and makecontext.
-+# We assume that makecontext implies the rest.
-+AS_IF([test "$with_fibers" != no], [
-+  libc_supports_fibers=yes
-+  AC_SEARCH_LIBS([makecontext], [], [], [
-+    libc_supports_fibers=no
-+  ])
-+
-+  AS_IF([test "$libc_supports_fibers" = yes], [
-+      with_fibers=yes
-+    ], [
-+    # If getcontext does not exist in libc, try with libucontext
-+    ucontext_supports_fibers=yes
-+    AC_CHECK_LIB(ucontext, [makecontext], [], [
-+      ucontext_supports_fibers=no
-+    ])
-+    AS_IF([test "$ucontext_supports_fibers" = yes], [
-+      ASYNC_LIBS="$ASYNC_LIBS -lucontext"
-+      with_fibers=yes
-+    ], [
-+      AS_IF([test "$with_fibers" = yes], [
-+        AC_MSG_ERROR([Missing symbols required for fibers (makecontext, setcontext, ...). Disable fibers (--without-fibers) or install libucontext])
-+      ], [
-+        AC_MSG_WARN([could not find required symbols (makecontext, setcontext, ...) -- won't build with fibers])
-+        with_fibers=no
-+      ])
-+    ])
-+  ])
-+])
-+AS_IF([test "$with_fibers" = yes], [
-+  CXXFLAGS="$CXXFLAGS -DKJ_USE_FIBERS"
-+], [
-+  CXXFLAGS="$CXXFLAGS -DKJ_USE_FIBERS=0"
-+])
-+
-+# CapnProtoConfig.cmake.in needs these variables,
-+# we force them to NO because we don't need the CMake dependency for them,
-+# the dependencies are provided by the .pc files.
-+AC_SUBST(WITH_OPENSSL, NO)
-+AC_SUBST(_WITH_LIBUCONTEXT, NO)
- 
- AM_CONDITIONAL([HAS_FUZZING_ENGINE], [test "x$LIB_FUZZING_ENGINE" != "x"])
- 
-diff --git a/c++/src/kj/CMakeLists.txt b/c++/src/kj/CMakeLists.txt
-index 813fac4d..f7b4dddf 100644
---- a/c++/src/kj/CMakeLists.txt
-+++ b/c++/src/kj/CMakeLists.txt
-@@ -136,6 +136,15 @@ if(NOT CAPNP_LITE)
-   add_library(kj-async ${kj-async_sources})
-   add_library(CapnProto::kj-async ALIAS kj-async)
-   target_link_libraries(kj-async PUBLIC kj)
-+  if(WITH_FIBERS)
-+    target_compile_definitions(kj-async PUBLIC KJ_USE_FIBERS)
-+    if(_WITH_LIBUCONTEXT)
-+      target_link_libraries(kj-async PUBLIC PkgConfig::libucontext)
-+    endif()
-+  else()
-+    target_compile_definitions(kj-async PUBLIC KJ_USE_FIBERS=0)
-+  endif()
-+
-   if(UNIX)
-     # external clients of this library need to link to pthreads
-     target_compile_options(kj-async INTERFACE "-pthread")
-@@ -181,7 +190,7 @@ if(NOT CAPNP_LITE)
-   add_library(kj-tls ${kj-tls_sources})
-   add_library(CapnProto::kj-tls ALIAS kj-tls)
-   target_link_libraries(kj-tls PUBLIC kj-async)
--  if (WITH_OPENSSL)
-+  if(WITH_OPENSSL)
-     target_compile_definitions(kj-tls PRIVATE KJ_HAS_OPENSSL)
-     target_link_libraries(kj-tls PRIVATE OpenSSL::SSL OpenSSL::Crypto)
-   endif()
--- 
-2.35.1
-
diff --git a/pkgs/development/libraries/catch2/3.nix b/pkgs/development/libraries/catch2/3.nix
new file mode 100644
index 0000000000000..aaf8c5d5d057b
--- /dev/null
+++ b/pkgs/development/libraries/catch2/3.nix
@@ -0,0 +1,42 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, python3
+}:
+
+stdenv.mkDerivation rec {
+  pname = "catch2";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "catchorg";
+    repo = "Catch2";
+    rev = "v${version}";
+    hash = "sha256-GcMkAgSfQnWs8wQeQD4ZMxJZED8V7FWBU04qMCutlPo=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  cmakeFlags = [
+    "-DCATCH_DEVELOPMENT_BUILD=ON"
+    "-DCATCH_BUILD_TESTING=${if doCheck then "ON" else "OFF"}"
+  ];
+
+  doCheck = true;
+
+  checkInputs = [
+    python3
+  ];
+
+  meta = {
+    description = "Modern, C++-native, test framework for unit-tests";
+    homepage = "https://github.com/catchorg/Catch2";
+    changelog = "https://github.com/catchorg/Catch2/blob/${src.rev}/docs/release-notes.md";
+    license = lib.licenses.boost;
+    maintainers = with lib.maintainers; [ dotlambda ];
+    platforms = lib.platforms.unix;
+  };
+}
diff --git a/pkgs/development/libraries/cpp-utilities/default.nix b/pkgs/development/libraries/cpp-utilities/default.nix
index f2f331eec6878..7064964adc580 100644
--- a/pkgs/development/libraries/cpp-utilities/default.nix
+++ b/pkgs/development/libraries/cpp-utilities/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "cpp-utilities";
-  version = "5.15.0";
+  version = "5.16.0";
 
   src = fetchFromGitHub {
     owner = "Martchus";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3D/5Bl5vANZrHtJGehoHwQ0mDrL8TJ7iK2GoViiuj6E=";
+    sha256 = "sha256-B/pWdfK3KddAIppJXQRohiIK8mouAQjXRHic75IzY/Q=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix
index e785294924975..4e41384847d46 100644
--- a/pkgs/development/libraries/dbus/default.nix
+++ b/pkgs/development/libraries/dbus/default.nix
@@ -37,6 +37,10 @@ stdenv.mkDerivation rec {
   ] ++ (lib.optional stdenv.isSunOS ./implement-getgrouplist.patch);
 
   postPatch = ''
+    # We need to generate the file ourselves.
+    # https://gitlab.freedesktop.org/dbus/dbus/-/merge_requests/317
+    rm doc/catalog.xml
+
     substituteInPlace bus/Makefile.am \
       --replace 'install-data-hook:' 'disabled:' \
       --replace '$(mkinstalldirs) $(DESTDIR)$(localstatedir)/run/dbus' ':'
@@ -98,6 +102,11 @@ stdenv.mkDerivation rec {
 
   doCheck = true;
 
+  makeFlags = [
+    # Fix paths in XML catalog broken by mismatching build/install datadir.
+    "dtddir=${placeholder "out"}/share/xml/dbus-1"
+  ];
+
   installFlags = [
     "sysconfdir=${placeholder "out"}/etc"
     "datadir=${placeholder "out"}/share"
diff --git a/pkgs/development/libraries/dbus/make-dbus-conf.nix b/pkgs/development/libraries/dbus/make-dbus-conf.nix
index ce5c0b3b57721..125da383c8d1b 100644
--- a/pkgs/development/libraries/dbus/make-dbus-conf.nix
+++ b/pkgs/development/libraries/dbus/make-dbus-conf.nix
@@ -1,4 +1,8 @@
-{ runCommand, writeText, libxslt, dbus
+{ runCommand
+, writeText
+, libxslt
+, dbus
+, findXMLCatalogs
 , serviceDirectories ? []
 , suidHelper ? "/var/setuid-wrappers/dbus-daemon-launch-helper"
 , apparmor ? "disabled" # one of enabled, disabled, required
@@ -14,19 +18,15 @@ runCommand "dbus-1"
     inherit serviceDirectories suidHelper apparmor;
     preferLocalBuild = true;
     allowSubstitutes = false;
-    XML_CATALOG_FILES = writeText "dbus-catalog.xml" ''
-      <?xml version="1.0"?>
-      <!DOCTYPE catalog PUBLIC
-        "-//OASIS//DTD Entity Resolution XML Catalog V1.0//EN"
-        "http://www.oasis-open.org/committees/entity/release/1.0/catalog.dtd">
 
-      <catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog">
-        <rewriteSystem
-          systemIdStartString="http://www.freedesktop.org/standards/dbus/1.0/"
-          rewritePrefix="file://${dbus}/share/xml/dbus-1/"/>
-      </catalog>
-    '';
-    nativeBuildInputs = [ libxslt.bin ];
+    nativeBuildInputs = [
+      libxslt.bin
+      findXMLCatalogs
+    ];
+
+    buildInputs = [
+      dbus.out
+    ];
   }
   ''
     mkdir -p $out
diff --git a/pkgs/development/libraries/doctest/default.nix b/pkgs/development/libraries/doctest/default.nix
index 360c643f52336..6c9281bda9918 100644
--- a/pkgs/development/libraries/doctest/default.nix
+++ b/pkgs/development/libraries/doctest/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "doctest";
-  version = "2.4.8";
+  version = "2.4.9";
 
   src = fetchFromGitHub {
     owner = "doctest";
     repo = "doctest";
     rev = "v${version}";
-    sha256 = "sha256-/4lyCQZHsa32ozes5MJ0JZpQ99MECRlgFeSzN/Zs/BQ=";
+    sha256 = "sha256-ugmkeX2PN4xzxAZpWgswl4zd2u125Q/ADSKzqTfnd94=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/duckdb/default.nix b/pkgs/development/libraries/duckdb/default.nix
index b128ed7094529..059c79bfcbb53 100644
--- a/pkgs/development/libraries/duckdb/default.nix
+++ b/pkgs/development/libraries/duckdb/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchFromGitHub
+, fetchpatch
 , cmake
 , ninja
 , openssl
@@ -16,16 +17,24 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "duckdb";
-  version = "0.3.4";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2PBc5qe2md87u2nvMTx/XZVzLsr8QrvUkw46/6VTlGs=";
+    sha256 = "sha256-pQ/t26dv9ZWLl0MHcAn0sgxryW2T2hM8XyOkXyfC5CY=";
   };
 
-  patches = [ ./version.patch ];
+  patches = [
+    ./version.patch
+    (fetchpatch {
+      name = "fix-tpce-test.patch";
+      url = "https://github.com/duckdb/duckdb/commit/82e13a4bb9f0683af6c52468af2fb903cce4286d.patch";
+      sha256 = "sha256-m0Bs0DOJQtkadbKZKk88NHyBFJkjxXUsiWYciuRIJLU=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace CMakeLists.txt --subst-var-by DUCKDB_VERSION "v${version}"
   '';
@@ -62,6 +71,7 @@ stdenv.mkDerivation rec {
         "test/common/test_cast_hugeint.test"
         "test/sql/copy/csv/test_csv_remote.test"
         "test/sql/copy/parquet/test_parquet_remote.test"
+        "test/sql/copy/parquet/test_parquet_remote_foreign_files.test"
       ] ++ lib.optionals stdenv.isAarch64 [
         "test/sql/aggregate/aggregates/test_kurtosis.test"
         "test/sql/aggregate/aggregates/test_skewness.test"
diff --git a/pkgs/development/libraries/egl-wayland/default.nix b/pkgs/development/libraries/egl-wayland/default.nix
index 3881f8f7ee38b..83cde54f348e7 100644
--- a/pkgs/development/libraries/egl-wayland/default.nix
+++ b/pkgs/development/libraries/egl-wayland/default.nix
@@ -42,7 +42,7 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "egl-wayland";
-  version = "1.1.9";
+  version = "1.1.10";
 
   outputs = [ "out" "dev" ];
 
@@ -50,7 +50,7 @@ in stdenv.mkDerivation rec {
     owner = "Nvidia";
     repo = pname;
     rev = version;
-    sha256 = "sha256-rcmGVEcOtKTR8sVkHV7Xb+8NuKWUapYn+/Fswi4z6Mc=";
+    sha256 = "sha256-dbcEMtPnzF2t7O8YtKVUGSvJqb5WPMmmW+SyqOFnDY4=";
   };
 
   depsBuildBuild = [
diff --git a/pkgs/development/libraries/faudio/default.nix b/pkgs/development/libraries/faudio/default.nix
index 58601c39a57f7..f085f33827c3c 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 = "22.02";
+  version = "22.04";
 
   src = fetchFromGitHub {
     owner = "FNA-XNA";
     repo = "FAudio";
     rev = version;
-    sha256 = "sha256-qjXFpxoFF70aOaEq9/JfI2DtFxxHjyK2OnDaXMiqQMM=";
+    sha256 = "sha256-2XQpwPNWjK5FF9ex5QxrGEPsUXT/MBqjXy7P2D/SxZw=";
   };
 
   nativeBuildInputs = [cmake];
diff --git a/pkgs/development/libraries/ffmpeg-full/default.nix b/pkgs/development/libraries/ffmpeg-full/default.nix
index 9d9a1a126cb21..0270855ae53d6 100644
--- a/pkgs/development/libraries/ffmpeg-full/default.nix
+++ b/pkgs/development/libraries/ffmpeg-full/default.nix
@@ -101,9 +101,12 @@
 , libXext ? null # Xlib support
 , libxml2 ? null # libxml2 support, for IMF and DASH demuxers
 , xz ? null # xz-utils
-, nvenc ? !stdenv.isDarwin && !stdenv.isAarch64, nv-codec-headers ? null # NVIDIA NVENC support
+, nv-codec-headers ? null
+, nvdec ? !stdenv.isDarwin && !stdenv.isAarch64 # NVIDIA NVDEC support
+, nvenc ? !stdenv.isDarwin && !stdenv.isAarch64 # NVIDIA NVENC support
 , openal ? null # OpenAL 1.1 capture support
-#, opencl ? null # OpenCL code
+, ocl-icd ? null # OpenCL ICD
+, opencl-headers ? null # OpenCL headers
 , opencore-amr ? null # AMR-NB de/encoder & AMR-WB decoder
 #, opencv ? null # Video filtering
 , openglExtlib ? false, libGL ? null, libGLU ? null # OpenGL rendering
@@ -164,7 +167,7 @@
  *
  * Not packaged:
  *   aacplus avisynth cdio-paranoia crystalhd libavc1394 libiec61883
- *   libnut libquvi nvenc opencl oss shine twolame
+ *   libnut libquvi nvenc oss shine twolame
  *   utvideo vo-aacenc vo-amrwbenc xvmc zvbi blackmagic-design-desktop-video
  *
  * Need fixes to support Darwin:
@@ -375,9 +378,11 @@ stdenv.mkDerivation rec {
     (enableFeature libxcbshapeExtlib "libxcb-shape")
     (enableFeature (libxml2 != null) "libxml2")
     (enableFeature (xz != null) "lzma")
+    (enableFeature nvdec "cuvid")
+    (enableFeature nvdec "nvdec")
     (enableFeature nvenc "nvenc")
     (enableFeature (openal != null) "openal")
-    #(enableFeature opencl "opencl")
+    (enableFeature (ocl-icd != null && opencl-headers != null) "opencl")
     (enableFeature (opencore-amr != null && version3Licensing) "libopencore-amrnb")
     #(enableFeature (opencv != null) "libopencv")
     (enableFeature openglExtlib "opengl")
@@ -431,7 +436,7 @@ stdenv.mkDerivation rec {
     bzip2 celt dav1d fontconfig freetype frei0r fribidi game-music-emu gnutls gsm
     libjack2 ladspaH lame libaom libass libbluray libbs2b libcaca libdc1394 libmodplug libmysofa
     libogg libopus librsvg libssh libtheora libvdpau libvorbis libvpx libwebp libX11
-    libxcb libXv libXext libxml2 xz openal openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
+    libxcb libXv libXext libxml2 xz openal ocl-icd opencl-headers openjpeg libpulseaudio rav1e svt-av1 rtmpdump opencore-amr
     samba SDL2 soxr speex srt vid-stab vo-amrwbenc x264 x265 xavs xvidcore
     zeromq4 zimg zlib openh264
   ] ++ optionals openglExtlib [ libGL libGLU ]
@@ -441,7 +446,7 @@ stdenv.mkDerivation rec {
     ++ optional (!isAarch64 && libvmaf != null && version3Licensing) libvmaf
     ++ optionals isLinux [ alsa-lib libraw1394 libv4l vulkan-loader glslang ]
     ++ optional (isLinux && !isAarch64 && libmfx != null) libmfx
-    ++ optional nvenc nv-codec-headers
+    ++ optional (nvdec || nvenc) nv-codec-headers
     ++ optionals stdenv.isDarwin [ Cocoa CoreServices CoreAudio AVFoundation
                                    MediaToolbox VideoDecodeAcceleration
                                    libiconv ];
diff --git a/pkgs/development/libraries/flint/default.nix b/pkgs/development/libraries/flint/default.nix
index 79b0e4caa1f05..eeb2cf1127e43 100644
--- a/pkgs/development/libraries/flint/default.nix
+++ b/pkgs/development/libraries/flint/default.nix
@@ -13,11 +13,11 @@ assert withBlas -> openblas != null && blas.implementation == "openblas" && lapa
 
 stdenv.mkDerivation rec {
   pname = "flint";
-  version = "2.8.5";
+  version = "2.9.0";
 
   src = fetchurl {
     url = "https://www.flintlib.org/flint-${version}.tar.gz";
-    sha256 = "sha256-WRH+3/kREA8VeB8146T6k0/mDkrqAqjBDMiRgQHB7tg=";
+    sha256 = "sha256-L8CQ1RAzyTII5sENQGOXpTyYOuU0O5WOsl9ypXpM52o=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/folly/default.nix b/pkgs/development/libraries/folly/default.nix
index a3626feca9de8..fdda2b3a62051 100644
--- a/pkgs/development/libraries/folly/default.nix
+++ b/pkgs/development/libraries/folly/default.nix
@@ -21,13 +21,13 @@
 
 stdenv.mkDerivation rec {
   pname = "folly";
-  version = "2022.05.23.00";
+  version = "2022.06.13.00";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = "folly";
     rev = "v${version}";
-    sha256 = "sha256-ti/aqVg6b3ZPEI72AZNo/4NrtlI/mKQb39tlTw+3VG4=";
+    sha256 = "sha256-30Fzk97wVK0JR/6YllyBjW9KlYrFj+GJpuV+V2bKXL8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/libraries/geos/default.nix b/pkgs/development/libraries/geos/default.nix
index c067a705d0bfe..32b3155b8c564 100644
--- a/pkgs/development/libraries/geos/default.nix
+++ b/pkgs/development/libraries/geos/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 , cmake }:
 
 stdenv.mkDerivation rec {
@@ -12,13 +13,15 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-ULvFmaw4a0wrOWLcxBHwBAph8gSq7066ciXs3Qz0VxU=";
   };
 
-  nativeBuildInputs = [ cmake ];
+  patches = [
+    # Fix paths with absolute CMAKE_INSTALL_*DIR
+    (fetchpatch {
+      url = "https://github.com/libgeos/geos/commit/11faa4db672ed61d64fd8a6f1a59114f5b5f2406.patch";
+      hash = "sha256-oAArwGq91Z93C6hBPQD0AlY8Q4Nnn6tA40HUPoZ5ftc=";
+    })
+  ];
 
-  postPatch = ''
-    substituteInPlace tools/geos-config.in \
-      --replace "@libdir@" "@prefix@/lib" \
-      --replace "@includedir@" "@prefix@/include"
-  '';
+  nativeBuildInputs = [ cmake ];
 
   meta = with lib; {
     description = "C++ port of the Java Topology Suite (JTS)";
diff --git a/pkgs/development/libraries/glib/default.nix b/pkgs/development/libraries/glib/default.nix
index 2c02bac92d2ca..29a1f642089dd 100644
--- a/pkgs/development/libraries/glib/default.nix
+++ b/pkgs/development/libraries/glib/default.nix
@@ -45,11 +45,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "glib";
-  version = "2.72.1";
+  version = "2.72.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/glib/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "wH5XFHslTO+SzoCgN43AwCpDWOfeRwLp9AMGl4EJX+I=";
+    sha256 = "eNWZoTPbp/4gNt+o24+2Exq5ZCeD/JV4sHogmVJS0t4=";
   };
 
   patches = optionals stdenv.isDarwin [
diff --git a/pkgs/development/libraries/gnu-efi/default.nix b/pkgs/development/libraries/gnu-efi/default.nix
index ef8ef7648ebdd..f331a8f753b9f 100644
--- a/pkgs/development/libraries/gnu-efi/default.nix
+++ b/pkgs/development/libraries/gnu-efi/default.nix
@@ -1,24 +1,17 @@
-{ lib, stdenv, buildPackages, fetchurl, fetchpatch, pciutils }:
+{ lib, stdenv, buildPackages, fetchurl, pciutils
+, gitUpdater }:
 
 with lib;
 
 stdenv.mkDerivation rec {
   pname = "gnu-efi";
-  version = "3.0.11";
+  version = "3.0.14";
 
   src = fetchurl {
     url = "mirror://sourceforge/gnu-efi/${pname}-${version}.tar.bz2";
-    sha256 = "1ffnc4xbzfggs37ymrgfx76j56kk2644c081ivhr2bjkla9ag3gj";
+    sha256 = "tztkOg1Wl9HzltdDFEjoht2AVmh4lXjj4aKCd8lShDU=";
   };
 
-  patches = [
-    # Fix build on armv6l
-    (fetchpatch {
-      url = "https://sourceforge.net/p/gnu-efi/patches/_discuss/thread/25bb273a18/9c4d/attachment/0001-Fix-ARCH-on-armv6-and-other-32-bit-ARM-platforms.patch";
-      sha256 = "0pj03h20g2bbz6fr753bj1scry6919h57l1h86z3b6q7hqfj0b4r";
-    })
-  ];
-
   buildInputs = [ pciutils ];
 
   hardeningDisable = [ "stackprotector" ];
@@ -29,6 +22,12 @@ stdenv.mkDerivation rec {
     "CROSS_COMPILE=${stdenv.cc.targetPrefix}"
   ];
 
+  passthru.updateScript = gitUpdater {
+    inherit pname version;
+    # No nicer place to find latest release.
+    url = "https://git.code.sf.net/p/gnu-efi/code";
+  };
+
   meta = with lib; {
     description = "GNU EFI development toolchain";
     homepage = "https://sourceforge.net/projects/gnu-efi/";
diff --git a/pkgs/development/libraries/gstreamer/bad/default.nix b/pkgs/development/libraries/gstreamer/bad/default.nix
index 758c4b091cda4..28bcbe9a74c48 100644
--- a/pkgs/development/libraries/gstreamer/bad/default.nix
+++ b/pkgs/development/libraries/gstreamer/bad/default.nix
@@ -93,6 +93,7 @@
 , Foundation
 , MediaToolbox
 , enableGplPlugins ? true
+, bluezSupport ? stdenv.isLinux
 }:
 
 stdenv.mkDerivation rec {
@@ -181,8 +182,9 @@ stdenv.mkDerivation rec {
     mjpegtools
     faad2
     x265
-  ] ++ lib.optionals stdenv.isLinux [
+  ] ++ lib.optionals bluezSupport [
     bluez
+  ] ++ lib.optionals stdenv.isLinux [
     libva # vaapi requires libva -> libdrm -> libpciaccess, which is Linux-only in nixpkgs
     wayland
     wayland-protocols
@@ -264,12 +266,12 @@ stdenv.mkDerivation rec {
     "-Dgs=disabled" # depends on `google-cloud-cpp`
     "-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing
     "-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx`
+    "-Dbluez=${if bluezSupport then "enabled" else "disabled"}"
   ]
   ++ lib.optionals (!stdenv.isLinux) [
     "-Dva=disabled" # see comment on `libva` in `buildInputs`
   ]
   ++ lib.optionals stdenv.isDarwin [
-    "-Dbluez=disabled"
     "-Dchromaprint=disabled"
     "-Ddirectfb=disabled"
     "-Dflite=disabled"
diff --git a/pkgs/development/libraries/gtksourceview/5.x.nix b/pkgs/development/libraries/gtksourceview/5.x.nix
index 29d85980accc0..307fb15e98d87 100644
--- a/pkgs/development/libraries/gtksourceview/5.x.nix
+++ b/pkgs/development/libraries/gtksourceview/5.x.nix
@@ -23,13 +23,13 @@
 
 stdenv.mkDerivation rec {
   pname = "gtksourceview";
-  version = "5.4.1";
+  version = "5.4.2";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "6zWECZz6CtyaCx7eCN72MgvQmeeedKLQrvtAV82T1o4=";
+    sha256 = "rRQOB+uEGRDeSDwJK9SIWr0puq3W6V+iLZPtLfC3nec=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/hunspell/dictionaries.nix b/pkgs/development/libraries/hunspell/dictionaries.nix
index 4f520772b7502..b6c4c4e6570cf 100644
--- a/pkgs/development/libraries/hunspell/dictionaries.nix
+++ b/pkgs/development/libraries/hunspell/dictionaries.nix
@@ -845,4 +845,15 @@ rec {
       platforms = platforms.all;
     };
   };
+
+  /* CROATIAN */
+
+  hr_HR = hr-hr;
+  hr-hr = mkDictFromLibreOffice {
+    shortName = "hr-hr";
+    dictFileName = "hr_HR";
+    shortDescription = "Croatian (Croatia)";
+    readmeFile = "README_hr_HR.txt";
+    license = with lib.licenses; [ gpl2Only lgpl21Only mpl11 ];
+  };
 }
diff --git a/pkgs/development/libraries/intel-media-driver/default.nix b/pkgs/development/libraries/intel-media-driver/default.nix
index bac5512aed6f6..a386f4d878bc4 100644
--- a/pkgs/development/libraries/intel-media-driver/default.nix
+++ b/pkgs/development/libraries/intel-media-driver/default.nix
@@ -14,7 +14,7 @@
 
 stdenv.mkDerivation rec {
   pname = "intel-media-driver";
-  version = "22.4.2";
+  version = "22.4.3";
 
   outputs = [ "out" "dev" ];
 
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
     owner = "intel";
     repo = "media-driver";
     rev = "intel-media-${version}";
-    sha256 = "sha256-wJiXtRPv9t34GujUhkhDKmIblMMR8yx8Fe1Xony6QVY=";
+    sha256 = "sha256-NcbtgJjDAHRv7Qs6fPRwScMBPLXci6e2oLxm8DC2nnw=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/jansson/default.nix b/pkgs/development/libraries/jansson/default.nix
index 21a697f1e3abb..fbc9a676a85cd 100644
--- a/pkgs/development/libraries/jansson/default.nix
+++ b/pkgs/development/libraries/jansson/default.nix
@@ -1,18 +1,30 @@
-{lib, stdenv, fetchurl}:
+{ lib, stdenv, fetchFromGitHub, cmake }:
 
 stdenv.mkDerivation rec {
   pname = "jansson";
-  version = "2.13.1";
+  version = "2.14";
 
-  src = fetchurl {
-    url = "https://digip.org/jansson/releases/${pname}-${version}.tar.gz";
-    sha256 = "0ks7gbs0j8p4dmmi2sq129mxy5gfg0z6220i1jk020mi2zd7gwzl";
+  src = fetchFromGitHub {
+    owner = "akheron";
+    repo = "jansson";
+    rev = "v${version}";
+    sha256 = "sha256-FQgy2+g3AyRVJeniqPQj0KNeHgPdza2pmEIXqSyYry4=";
   };
 
+  nativeBuildInputs = [ cmake ];
+
+  cmakeFlags = [
+    # networkmanager relies on libjansson.so:
+    #   https://github.com/NixOS/nixpkgs/pull/176302#issuecomment-1150239453
+    "-DJANSSON_BUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
+
   meta = with lib; {
-    homepage = "http://www.digip.org/jansson/";
+    homepage = "https://github.com/akheron/jansson";
     description = "C library for encoding, decoding and manipulating JSON data";
+    changelog = "https://github.com/akheron/jansson/raw/v${version}/CHANGES";
     license = licenses.mit;
     platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
   };
 }
diff --git a/pkgs/development/libraries/jarowinkler-cpp/default.nix b/pkgs/development/libraries/jarowinkler-cpp/default.nix
index f89c54121ca1d..0cbfdcea64475 100644
--- a/pkgs/development/libraries/jarowinkler-cpp/default.nix
+++ b/pkgs/development/libraries/jarowinkler-cpp/default.nix
@@ -2,18 +2,18 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, catch2
+, catch2_3
 }:
 
 stdenv.mkDerivation rec {
   pname = "jarowinkler-cpp";
-  version = "1.0.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "jarowinkler-cpp";
     rev = "v${version}";
-    hash = "sha256-6dIyCyoPs/2wHyGqlE+NC0pwz5ggS5edhN4Jbltx0jg=";
+    hash = "sha256-GuwDSCYTfSwqTnzZSft3ufVSKL7255lVvbJhBxKxjJw=";
   };
 
   nativeBuildInputs = [
@@ -21,19 +21,19 @@ stdenv.mkDerivation rec {
   ];
 
   cmakeFlags = lib.optionals doCheck [
-    "-DRAPIDFUZZ_BUILD_TESTING=ON"
+    "-DJARO_WINKLER_BUILD_TESTING=ON"
   ];
 
   checkInputs = [
-    catch2
+    catch2_3
   ];
 
-  # uses unreleased Catch2 version 3
-  doCheck = false;
+  doCheck = true;
 
   meta = {
     description = "Fast Jaro and Jaro-Winkler distance";
     homepage = "https://github.com/maxbachmann/jarowinkler-cpp";
+    changelog = "https://github.com/maxbachmann/jarowinkler-cpp/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/java/commons/daemon/default.nix b/pkgs/development/libraries/java/commons/daemon/default.nix
index 7b5be45e200cf..e41c475c829d3 100644
--- a/pkgs/development/libraries/java/commons/daemon/default.nix
+++ b/pkgs/development/libraries/java/commons/daemon/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  version = "1.3.0";
+  version = "1.3.1";
   pname = "commons-daemon";
 
   src = fetchurl {
     url    = "mirror://apache/commons/daemon/binaries/commons-daemon-${version}-bin.tar.gz";
-    sha256 = "sha256-Fihsar8HR2adN2f9deo7bk8tRgeiD6BljVZ/mfkLUUA=";
+    sha256 = "sha256-EaQ4wy32GX1MGByCqo811WblqZgsNSw3psr94lrxEqw=";
   };
 
   installPhase = ''
diff --git a/pkgs/development/libraries/json-c/default.nix b/pkgs/development/libraries/json-c/default.nix
index 5a77ea789afeb..d6aac7161d4fd 100644
--- a/pkgs/development/libraries/json-c/default.nix
+++ b/pkgs/development/libraries/json-c/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "json-c";
-  version = "0.15";
+  version = "0.16";
 
   src = fetchurl {
     url    = "https://s3.amazonaws.com/json-c_releases/releases/${pname}-${version}.tar.gz";
-    sha256 = "1im484iz08j3gmzpw07v16brwq46pxxj65i996kkp2vivcfhmn5q";
+    sha256 = "sha256-jkWsj5bsd5Hq87t+5Q6cIQC7vIe40PHQMMW6igKI2Ws=";
   };
 
   outputs = [ "out" "dev" ];
@@ -15,16 +15,15 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     description = "A JSON implementation in C";
-    homepage    = "https://github.com/json-c/json-c/wiki";
-    maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
-    license = licenses.mit;
-
     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
       and parse JSON formatted strings back into the C representation of JSON
       objects.
     '';
+    homepage    = "https://github.com/json-c/json-c/wiki";
+    maintainers = with maintainers; [ lovek323 ];
+    platforms   = platforms.unix;
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/libraries/kde-frameworks/fetch.sh b/pkgs/development/libraries/kde-frameworks/fetch.sh
index 7b9931877f07f..e742a5c4f9769 100644
--- a/pkgs/development/libraries/kde-frameworks/fetch.sh
+++ b/pkgs/development/libraries/kde-frameworks/fetch.sh
@@ -1 +1 @@
-WGET_ARGS=( https://download.kde.org/stable/frameworks/5.94/ -A '*.tar.xz' )
+WGET_ARGS=( https://download.kde.org/stable/frameworks/5.95/ -A '*.tar.xz' )
diff --git a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
index cf118beaabce7..83a7cc2546d35 100644
--- a/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
+++ b/pkgs/development/libraries/kde-frameworks/plasma-framework.nix
@@ -1,5 +1,5 @@
 {
-  mkDerivation,
+  mkDerivation, fetchpatch,
   extra-cmake-modules, kdoctools,
   kactivities, karchive, kconfig, kconfigwidgets, kcoreaddons, kdbusaddons,
   kdeclarative, kglobalaccel, kguiaddons, ki18n, kiconthemes, kio,
@@ -9,6 +9,14 @@
 
 mkDerivation {
   pname = "plasma-framework";
+  patches = [
+    # FIXME: remove on kf5.96
+    (fetchpatch {
+      name = "fix-thumbnails-task-manager.patch";
+      url = "https://invent.kde.org/frameworks/plasma-framework/-/commit/dff1b034c1162062aa2292099d3d01fc53dafdf6.patch";
+      sha256 = "sha256-0162bi3J5bl5BmmUSrhxxy8MpLtSXkdHGK8wMcS5BB8=";
+    })
+  ];
   nativeBuildInputs = [ extra-cmake-modules kdoctools ];
   buildInputs = [
     kactivities karchive kconfig kconfigwidgets kcoreaddons kdbusaddons
diff --git a/pkgs/development/libraries/kde-frameworks/srcs.nix b/pkgs/development/libraries/kde-frameworks/srcs.nix
index 1fbd8f7edeb37..297d9a80e4b7d 100644
--- a/pkgs/development/libraries/kde-frameworks/srcs.nix
+++ b/pkgs/development/libraries/kde-frameworks/srcs.nix
@@ -4,667 +4,667 @@
 
 {
   attica = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/attica-5.94.0.tar.xz";
-      sha256 = "0rgg5n7m0bw5ir6k5bvq4r9k1s05xas42bdsh0h8352pvackcagn";
-      name = "attica-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/attica-5.95.0.tar.xz";
+      sha256 = "0g3kbjjvdfry23d6ss79bc1k2f6wijy9n3ymxyq7blmr5cyzjq6n";
+      name = "attica-5.95.0.tar.xz";
     };
   };
   baloo = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/baloo-5.94.0.tar.xz";
-      sha256 = "0fi7p586322h8x0f83x98kxkfs5klvv8h9d8sr3jmhq3b0p1ii4x";
-      name = "baloo-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/baloo-5.95.0.tar.xz";
+      sha256 = "1zg2s4r74mamfl5dj97yg6c6hah3n5snq4wafy0j9w8y4lmajhcd";
+      name = "baloo-5.95.0.tar.xz";
     };
   };
   bluez-qt = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/bluez-qt-5.94.0.tar.xz";
-      sha256 = "0ch6rkifx7vrgljz73vvaah09mw17jpb7i7yl2z7lwjy17mnyxvy";
-      name = "bluez-qt-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/bluez-qt-5.95.0.tar.xz";
+      sha256 = "051prfbbzrisr9g0dh9rd5js02w36ddl95v7ak1pv64kzp1dybi3";
+      name = "bluez-qt-5.95.0.tar.xz";
     };
   };
   breeze-icons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/breeze-icons-5.94.0.tar.xz";
-      sha256 = "1fx3nfzn4ky8cy91d9ywhpmv09az6hw6j1jc63585fjd6z93y2ry";
-      name = "breeze-icons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/breeze-icons-5.95.0.tar.xz";
+      sha256 = "0bx9680pz1ffnzrm2bmcsdb61scdc4hg3h94s6zb3wgcanvpqiqs";
+      name = "breeze-icons-5.95.0.tar.xz";
     };
   };
   extra-cmake-modules = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/extra-cmake-modules-5.94.0.tar.xz";
-      sha256 = "0yfjg3bci0yj6bwgs2sg34jyw51rz4mi207wfnkcz65rwa68lm13";
-      name = "extra-cmake-modules-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/extra-cmake-modules-5.95.0.tar.xz";
+      sha256 = "0nmdj6n7hsxz88s4w1qqbbd7b1031l79fdvqiqz3an19v44j787z";
+      name = "extra-cmake-modules-5.95.0.tar.xz";
     };
   };
   frameworkintegration = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/frameworkintegration-5.94.0.tar.xz";
-      sha256 = "19psnjxs19xbf7fvhmpd8wq400wsh74iyqarwxd7chnjz3msnr4s";
-      name = "frameworkintegration-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/frameworkintegration-5.95.0.tar.xz";
+      sha256 = "04dzy1acjgjrsryjq05lwrhph25fi363qg09gc45q0zy38zwbi55";
+      name = "frameworkintegration-5.95.0.tar.xz";
     };
   };
   kactivities = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kactivities-5.94.0.tar.xz";
-      sha256 = "1pss8h7w3yhdaz1p0a3w6nk3qyr734r5p1m1nfxskcmf7nx5xpaj";
-      name = "kactivities-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kactivities-5.95.0.tar.xz";
+      sha256 = "1mxlmwy1radgklm4mh7rm309v6j7bw1kwfms5jmmv08anrlj5hg3";
+      name = "kactivities-5.95.0.tar.xz";
     };
   };
   kactivities-stats = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kactivities-stats-5.94.0.tar.xz";
-      sha256 = "0h13xwlgpfz7kbwg7fjcjdm8mvh04y84jaa3327k83w3kl87vzl3";
-      name = "kactivities-stats-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kactivities-stats-5.95.0.tar.xz";
+      sha256 = "0lyad8rh0d4dxcm4azg4i60mdlcfi3hsgdpss9lgzcqhnama6mjj";
+      name = "kactivities-stats-5.95.0.tar.xz";
     };
   };
   kapidox = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kapidox-5.94.0.tar.xz";
-      sha256 = "0xsmwm35jfz7nzxzjs0aa86hhy0l71y9l2xmx2d1gqxz742m59qw";
-      name = "kapidox-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kapidox-5.95.0.tar.xz";
+      sha256 = "0f0q0f705adrfhzpq0fkgxqhx6qs8dd0fwsfj0f6764kf2w0xxz5";
+      name = "kapidox-5.95.0.tar.xz";
     };
   };
   karchive = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/karchive-5.94.0.tar.xz";
-      sha256 = "1r71apql80gzgknqqflsvmksm4mr6bqlmkpviqb9qr3s8fjqgkam";
-      name = "karchive-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/karchive-5.95.0.tar.xz";
+      sha256 = "0jfmrndpkg6axci65y89y13y9iczc1wwp0va47m5210xpwhcx30y";
+      name = "karchive-5.95.0.tar.xz";
     };
   };
   kauth = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kauth-5.94.0.tar.xz";
-      sha256 = "0na1svylmkzk2vd3pmg9scfgyvbv1lsfz9bkhbw5vym8d6nx1zlw";
-      name = "kauth-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kauth-5.95.0.tar.xz";
+      sha256 = "0fjgffdw7r637sv5h37h5k8kd128p8bxfrwwgpjdhl9gzkrvc5iy";
+      name = "kauth-5.95.0.tar.xz";
     };
   };
   kbookmarks = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kbookmarks-5.94.0.tar.xz";
-      sha256 = "0z2ibxrpap40wbabgls8jbyrr11v32ml7l5b0gasp6vfdymrkjwc";
-      name = "kbookmarks-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kbookmarks-5.95.0.tar.xz";
+      sha256 = "1w2m7bjkn6c1d0jn936qbidkkq80flvzp5jvv8sbxbnr6v3rmykp";
+      name = "kbookmarks-5.95.0.tar.xz";
     };
   };
   kcalendarcore = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcalendarcore-5.94.0.tar.xz";
-      sha256 = "0aq4gkbj2vf6j7636jac1bs0pzdcqvra9m22ny4vhkr1x3i1marv";
-      name = "kcalendarcore-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcalendarcore-5.95.0.tar.xz";
+      sha256 = "10194vpkw19by7cl5r6fcj9vv241n1s6xpm15pqgalhgznj6qskq";
+      name = "kcalendarcore-5.95.0.tar.xz";
     };
   };
   kcmutils = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcmutils-5.94.0.tar.xz";
-      sha256 = "029ksln66n1g993zp4vfh2bmg8ws1cy2r89fhbj25jydj1lyz33r";
-      name = "kcmutils-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcmutils-5.95.0.tar.xz";
+      sha256 = "0m0b7ymh8xix4psa0l58g7g53b7clzma5chr5bjvwc22fxxhbp8r";
+      name = "kcmutils-5.95.0.tar.xz";
     };
   };
   kcodecs = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcodecs-5.94.0.tar.xz";
-      sha256 = "1yg7p18z4fac4k4gprncw2v4nv547431dpi6lc2ry98x3kxykh5w";
-      name = "kcodecs-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcodecs-5.95.0.tar.xz";
+      sha256 = "0d4mnfqzixqd91n3cfhis3ppzp9kxfkhgp7v5h6miaknc5ib0yz2";
+      name = "kcodecs-5.95.0.tar.xz";
     };
   };
   kcompletion = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcompletion-5.94.0.tar.xz";
-      sha256 = "193fz8xpmlcyrhmlllzprd0r8pq1b70dikrf1hmkbghbcm0kvl8s";
-      name = "kcompletion-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcompletion-5.95.0.tar.xz";
+      sha256 = "1wi8zbjcklc1yzljwpy32lla4jhv0w4vylv93nygqjdcp414kb4f";
+      name = "kcompletion-5.95.0.tar.xz";
     };
   };
   kconfig = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kconfig-5.94.0.tar.xz";
-      sha256 = "1mxk3jlixxamki6gl46i1ndlkqyad88yl0707c44znbhy0292vcf";
-      name = "kconfig-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kconfig-5.95.0.tar.xz";
+      sha256 = "1w9icxfbxa6wkjlc6qs6lj00gjid797s6k20x09blgc7lhqgccpx";
+      name = "kconfig-5.95.0.tar.xz";
     };
   };
   kconfigwidgets = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kconfigwidgets-5.94.0.tar.xz";
-      sha256 = "025m5zw060jclar73gw9j8jmqzyk0y9wgdgrcw70yjzlgximy19m";
-      name = "kconfigwidgets-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kconfigwidgets-5.95.0.tar.xz";
+      sha256 = "0llx74g252d4w2j6qdyxwgbkkbsjcm5z5mghz0cx1vpn2hgz7drb";
+      name = "kconfigwidgets-5.95.0.tar.xz";
     };
   };
   kcontacts = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcontacts-5.94.0.tar.xz";
-      sha256 = "1y2jc9b2k7mmhv8z2bpc45dhnj9njarrk9k8y6f28w5jv7gigwzp";
-      name = "kcontacts-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcontacts-5.95.0.tar.xz";
+      sha256 = "1jad89h7yhp0ba7w43s6m6fzcclsfc6dmzqmj1zi52jlllh37mqh";
+      name = "kcontacts-5.95.0.tar.xz";
     };
   };
   kcoreaddons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcoreaddons-5.94.0.tar.xz";
-      sha256 = "02qirq0hwz5233yfxsp0fp0ww0l8gyv86x5ybaqsjshd0z7bc42w";
-      name = "kcoreaddons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcoreaddons-5.95.0.tar.xz";
+      sha256 = "04rwqw5b8lspnbvfxl995shdrmm6dqlglk2vc2gh03ykcpj7pkwg";
+      name = "kcoreaddons-5.95.0.tar.xz";
     };
   };
   kcrash = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kcrash-5.94.0.tar.xz";
-      sha256 = "1x9wy1qzcyyyk6hsii39hy6yvrffvw62d6lfdjdnxbf2m0n7kis8";
-      name = "kcrash-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kcrash-5.95.0.tar.xz";
+      sha256 = "1y7rs59h61zsasdas2r5y8q3r1vblvymykzihw0wjf6qnzx8pz74";
+      name = "kcrash-5.95.0.tar.xz";
     };
   };
   kdav = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdav-5.94.0.tar.xz";
-      sha256 = "0gjv6dbsl25805ks3a4y8z5dcwx48wcy4s87bnp137q0w731w8cb";
-      name = "kdav-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdav-5.95.0.tar.xz";
+      sha256 = "09sg4h1vjsy0ncvaq4wb4m66l71ndx9rh3wrsa3273pp4lyvszbm";
+      name = "kdav-5.95.0.tar.xz";
     };
   };
   kdbusaddons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdbusaddons-5.94.0.tar.xz";
-      sha256 = "1s6syhzqy0l5v31r94rzbzqygpwsz6ym7dlxggmg3mnagh8k058a";
-      name = "kdbusaddons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdbusaddons-5.95.0.tar.xz";
+      sha256 = "0qx4h365isw8vkbn632gfw39b81gjczvd6ldcwfdfj9ldgwxxzz7";
+      name = "kdbusaddons-5.95.0.tar.xz";
     };
   };
   kdeclarative = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdeclarative-5.94.0.tar.xz";
-      sha256 = "023bvl93ia8nwl3swr98n71gz4xwsq87v29kj8ng950rcyknr6gj";
-      name = "kdeclarative-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdeclarative-5.95.0.tar.xz";
+      sha256 = "1qm0nnxmnldla8z7wz4sjl5bd5bqgql29qbm982gsbyx1z4c9l64";
+      name = "kdeclarative-5.95.0.tar.xz";
     };
   };
   kded = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kded-5.94.0.tar.xz";
-      sha256 = "1igk8in16i29jckqyf5dqn83h2hx727d8n35j7jq2ky6x2in2k9g";
-      name = "kded-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kded-5.95.0.tar.xz";
+      sha256 = "0hdfx8yl66sck6j339q9417s2yvcpr5r27klgw4phz89hca8h6wr";
+      name = "kded-5.95.0.tar.xz";
     };
   };
   kdelibs4support = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kdelibs4support-5.94.0.tar.xz";
-      sha256 = "0cv0lzcgyny2xravgdsbpjz5j5jlp7202dk077nxblv60yqfn9np";
-      name = "kdelibs4support-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kdelibs4support-5.95.0.tar.xz";
+      sha256 = "0pnm8hw96f2jvcy5fjd2pr8x52d8zmzvm0f4wjb5hcq5jf55596n";
+      name = "kdelibs4support-5.95.0.tar.xz";
     };
   };
   kdesignerplugin = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kdesignerplugin-5.94.0.tar.xz";
-      sha256 = "00walz1w0mx1jqx7yx76qyig5k1n39mh6xmq4qg317rsgzj53l3b";
-      name = "kdesignerplugin-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kdesignerplugin-5.95.0.tar.xz";
+      sha256 = "1zz1jl2cdxs5jwl21hr89c5wgnpdn1wf0ww5hkss4mmgssr32pgw";
+      name = "kdesignerplugin-5.95.0.tar.xz";
     };
   };
   kdesu = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdesu-5.94.0.tar.xz";
-      sha256 = "1qfwm4l30iy4gy4df8gf7i8mg11szv2c4s60jgfqqk5bxcil6jch";
-      name = "kdesu-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdesu-5.95.0.tar.xz";
+      sha256 = "1b63rsb21pjxy0zd2gxarbrm5xsvf8mbf4fnja7ghadck43jnx1f";
+      name = "kdesu-5.95.0.tar.xz";
     };
   };
   kdewebkit = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kdewebkit-5.94.0.tar.xz";
-      sha256 = "0n8df6y84hd4b3iwfjxk7h06avigq3vgcksi8jh8kjvwwvl77jlv";
-      name = "kdewebkit-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kdewebkit-5.95.0.tar.xz";
+      sha256 = "0b6ykwdb52zvgmcs79drgk8i44gib2si80x6p0sc9adpbk1nwqgj";
+      name = "kdewebkit-5.95.0.tar.xz";
     };
   };
   kdnssd = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdnssd-5.94.0.tar.xz";
-      sha256 = "0qs8jr506aq9i39p8smjsiswjh5zspap3dsvmh7bhayrhgzs5sr8";
-      name = "kdnssd-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdnssd-5.95.0.tar.xz";
+      sha256 = "10v8w1c7sskf5x956qbfwvca55qwk48jcaa2gv7wrb19bj0dms67";
+      name = "kdnssd-5.95.0.tar.xz";
     };
   };
   kdoctools = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kdoctools-5.94.0.tar.xz";
-      sha256 = "1x6j7h1lg4bbr1jjb8nl4jsl0v9lcc5h4hg3svkk9rn5x3zn2kpm";
-      name = "kdoctools-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kdoctools-5.95.0.tar.xz";
+      sha256 = "10isqvlhfqlhl8w46hhn7nmy8yhdi30z99pks8qm75pp3grx0mkg";
+      name = "kdoctools-5.95.0.tar.xz";
     };
   };
   kemoticons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kemoticons-5.94.0.tar.xz";
-      sha256 = "00hkwg63pqz7m10sybcyknn246nr7np62hxg2iayf5x0fmfv2zgs";
-      name = "kemoticons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kemoticons-5.95.0.tar.xz";
+      sha256 = "0wpl0bd3xd613wyhl11b2gvrh9dkwvl32ik64hzjmq9c7xik3a1n";
+      name = "kemoticons-5.95.0.tar.xz";
     };
   };
   kfilemetadata = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kfilemetadata-5.94.0.tar.xz";
-      sha256 = "1rkp95bx4yvg6qia2lq4vmmlnc3s9lvy7yfw149k77il60d3nmvz";
-      name = "kfilemetadata-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kfilemetadata-5.95.0.tar.xz";
+      sha256 = "018120fygj482capdbl6p30i31b1lhc7zcvdi6l200lcv5n0anvy";
+      name = "kfilemetadata-5.95.0.tar.xz";
     };
   };
   kglobalaccel = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kglobalaccel-5.94.0.tar.xz";
-      sha256 = "1s9md2iz03xhxpx4sacygqqcqqys6z9aa0xjvqy9gl3jd88h0jx3";
-      name = "kglobalaccel-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kglobalaccel-5.95.0.tar.xz";
+      sha256 = "1jq4b6ln7ch6dkj9ki30pn3aga6q0kbzrmw3xv1xwdy1r931xjlk";
+      name = "kglobalaccel-5.95.0.tar.xz";
     };
   };
   kguiaddons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kguiaddons-5.94.0.tar.xz";
-      sha256 = "0wrqjxqnrngn85wga4prxyl2jr6wvp4vsxxa5v1wndwd4skq4cgj";
-      name = "kguiaddons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kguiaddons-5.95.0.tar.xz";
+      sha256 = "037j1vn151xp76ylrd690fwavf49nqs3f6jy2zq658n4jyxskwn7";
+      name = "kguiaddons-5.95.0.tar.xz";
     };
   };
   kholidays = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kholidays-5.94.0.tar.xz";
-      sha256 = "0p85i8l157616an8p1iaydzy575wh47qn3cfq7imhxlxki9kadz5";
-      name = "kholidays-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kholidays-5.95.0.tar.xz";
+      sha256 = "01zdl4l0gnzl4fvxbgzqygffnliy1ldnzf3rf931if7pqpcyffak";
+      name = "kholidays-5.95.0.tar.xz";
     };
   };
   khtml = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/khtml-5.94.0.tar.xz";
-      sha256 = "0ycvzqj1xdjbwwgqp97siljxbk5fig8ijrydjcnirg1g98l2mgcq";
-      name = "khtml-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/khtml-5.95.0.tar.xz";
+      sha256 = "01iyrgx322wi2sqlcfkij95yxgv54q1mbpxiv3m814xx85iqljsk";
+      name = "khtml-5.95.0.tar.xz";
     };
   };
   ki18n = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/ki18n-5.94.0.tar.xz";
-      sha256 = "0jll112q4wrcjrd8wmspf95a0a1aqxkhv1390i9yhw1m6hr86nhc";
-      name = "ki18n-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/ki18n-5.95.0.tar.xz";
+      sha256 = "0va28798xj1xk0agggxc8g96kd1ygigfsi438ni4qb54d7fpxmsx";
+      name = "ki18n-5.95.0.tar.xz";
     };
   };
   kiconthemes = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kiconthemes-5.94.0.tar.xz";
-      sha256 = "14s9h6mk3f4qg97bj0d3b6j7x80jhnlb4kdx9bpp9jvwrlfxhwnr";
-      name = "kiconthemes-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kiconthemes-5.95.0.tar.xz";
+      sha256 = "1sy34s7vf915vwnighvfvzdlzk58vwc5pkhjry9hncvkw5wlmrnd";
+      name = "kiconthemes-5.95.0.tar.xz";
     };
   };
   kidletime = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kidletime-5.94.0.tar.xz";
-      sha256 = "1s73nk23js4ly679pq5c4lbry8sgvh0dzf5fyrn8dj6fbda3s756";
-      name = "kidletime-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kidletime-5.95.0.tar.xz";
+      sha256 = "05wjx19lgwnf5mbw9vx34mf0a2wfg3vkrkv96f5a9hir58j0q3ds";
+      name = "kidletime-5.95.0.tar.xz";
     };
   };
   kimageformats = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kimageformats-5.94.0.tar.xz";
-      sha256 = "0m2ffzlgjl4sz1plf1lpsxvkni1nr93rq8kab2frbj8x15n652di";
-      name = "kimageformats-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kimageformats-5.95.0.tar.xz";
+      sha256 = "1zmqvgl768lyysszq8pc00a2m1ipdbra5a2rhmn250n610b02yi5";
+      name = "kimageformats-5.95.0.tar.xz";
     };
   };
   kinit = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kinit-5.94.0.tar.xz";
-      sha256 = "0qdw3qz9zbp3i19zgal8wffwiylib3d3ydmfih7dqdx8rq4zk67f";
-      name = "kinit-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kinit-5.95.0.tar.xz";
+      sha256 = "0yzhkfj724lc25cab97lywsshm0180kcmgw1991zzbhikjnyfnyc";
+      name = "kinit-5.95.0.tar.xz";
     };
   };
   kio = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kio-5.94.0.tar.xz";
-      sha256 = "16yhj3wh57gc0azqq01ssqzg0nqa6f904p68jl6p6ifq967bzh45";
-      name = "kio-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kio-5.95.0.tar.xz";
+      sha256 = "11vnwcfb65a8x2hrb0xp89bvljgapjzm5vffy6q4j4pcbbgz1iwp";
+      name = "kio-5.95.0.tar.xz";
     };
   };
   kirigami2 = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kirigami2-5.94.0.tar.xz";
-      sha256 = "0fcf8ah4vh7arb3iavpk0psy81agyj6vfg8s9sgk7ssz6aipvwnp";
-      name = "kirigami2-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kirigami2-5.95.0.tar.xz";
+      sha256 = "078fm14y9k0nsdxkci7k25l11zd2zd6r6nbhfmsfhn6hb4dbz77g";
+      name = "kirigami2-5.95.0.tar.xz";
     };
   };
   kitemmodels = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kitemmodels-5.94.0.tar.xz";
-      sha256 = "12ag11m7sf23h9nd41jvpws7cakzwicvawckdx1vmch2fnwz4pvh";
-      name = "kitemmodels-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kitemmodels-5.95.0.tar.xz";
+      sha256 = "1mr2dd7aj1vi1nkm8c93adyj51ins2kynmp0dsh8gzbf0sh338bm";
+      name = "kitemmodels-5.95.0.tar.xz";
     };
   };
   kitemviews = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kitemviews-5.94.0.tar.xz";
-      sha256 = "0bmm71lm59spxwc0hrw1yd7m0a8qs55yydijld57zq4wf55k6xav";
-      name = "kitemviews-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kitemviews-5.95.0.tar.xz";
+      sha256 = "1zi2vchnxjy9spxg0405lg5616sf4j6c847zckmh66w6vxq41nvj";
+      name = "kitemviews-5.95.0.tar.xz";
     };
   };
   kjobwidgets = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kjobwidgets-5.94.0.tar.xz";
-      sha256 = "01xh880avavzbbrk65y6gsn011w6pbsk7ian753az1i8m3y4akq1";
-      name = "kjobwidgets-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kjobwidgets-5.95.0.tar.xz";
+      sha256 = "0v8l46wjmkcy1ifbfc3w05qahy5lnpjrhyxziszbs05wc3yglprf";
+      name = "kjobwidgets-5.95.0.tar.xz";
     };
   };
   kjs = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kjs-5.94.0.tar.xz";
-      sha256 = "06rw7gch4hw2kib4v9p5zzlkz8n3wjifdrxhwywcqy5rvsi18gpr";
-      name = "kjs-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kjs-5.95.0.tar.xz";
+      sha256 = "1g2yg4p32q0s7rdx98ig7hk11f0awn14xzwid0xfi64wvdfz65ss";
+      name = "kjs-5.95.0.tar.xz";
     };
   };
   kjsembed = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kjsembed-5.94.0.tar.xz";
-      sha256 = "0bpnvvz0gc8j5ywljhc8i5ws6f6inds710xwxvp9ymqgkm3kgkpk";
-      name = "kjsembed-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kjsembed-5.95.0.tar.xz";
+      sha256 = "1cbvfvp6dnbgh14156gpcl9fds8dxbkxcn9svhkfha4157zwq7xb";
+      name = "kjsembed-5.95.0.tar.xz";
     };
   };
   kmediaplayer = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kmediaplayer-5.94.0.tar.xz";
-      sha256 = "1310v2krzgxz7ghcws83p47hrlap7qxpnc38l5y3j7g21kgzdw8b";
-      name = "kmediaplayer-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kmediaplayer-5.95.0.tar.xz";
+      sha256 = "1qxh43qamvcr6wzhj2rnlhvdyp6hkyx98iwbygsr46g41nhc7ygv";
+      name = "kmediaplayer-5.95.0.tar.xz";
     };
   };
   knewstuff = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/knewstuff-5.94.0.tar.xz";
-      sha256 = "0vrkj2p9pqp49ph0rpy45dawli3j4mbcncw3x45d8rmbk57h3kda";
-      name = "knewstuff-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/knewstuff-5.95.0.tar.xz";
+      sha256 = "0px9di3973bm8vjnikfjhqlfwsj5q4phidzc0s23x941nrv3d0gq";
+      name = "knewstuff-5.95.0.tar.xz";
     };
   };
   knotifications = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/knotifications-5.94.0.tar.xz";
-      sha256 = "1gs39fvk0rylrlxsvym8pb58c8106fqbvrx3bp3rdw355giirmf8";
-      name = "knotifications-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/knotifications-5.95.0.tar.xz";
+      sha256 = "0hl1q0rz5g35vzxczaf5lap5pj9h7a8s706220s7b6z89mi8c95x";
+      name = "knotifications-5.95.0.tar.xz";
     };
   };
   knotifyconfig = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/knotifyconfig-5.94.0.tar.xz";
-      sha256 = "0449pb1j2m3jxafvv53qyrma309g3xm3q7fxxlpqxaw2fjd9i1db";
-      name = "knotifyconfig-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/knotifyconfig-5.95.0.tar.xz";
+      sha256 = "1s1npl1h22b2pp2r43f0h2jmlrgrlf2sf33zc3acxhalvg9zwgkd";
+      name = "knotifyconfig-5.95.0.tar.xz";
     };
   };
   kpackage = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kpackage-5.94.0.tar.xz";
-      sha256 = "057lpas5d9m43rshp36p2dmrwpk14saa5n7jg5l0zcf940lrqk2d";
-      name = "kpackage-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kpackage-5.95.0.tar.xz";
+      sha256 = "0pv0zyazf0bawj8wh4jz3m7kny84vana5a6w0s1ff4z2igqib11z";
+      name = "kpackage-5.95.0.tar.xz";
     };
   };
   kparts = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kparts-5.94.0.tar.xz";
-      sha256 = "1fkbs0gfcg6ps5az0anf03w961xm9vmq0pd8br7yip4p387i5985";
-      name = "kparts-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kparts-5.95.0.tar.xz";
+      sha256 = "097zr2mn2l5rlgv6alhs1gyrig2vzvsgzikv6dspdhh4f3ydz962";
+      name = "kparts-5.95.0.tar.xz";
     };
   };
   kpeople = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kpeople-5.94.0.tar.xz";
-      sha256 = "0x2jdb9x1fss95bzra51dz902q8h78qgq4j5j4c3agi2ihvvlzi1";
-      name = "kpeople-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kpeople-5.95.0.tar.xz";
+      sha256 = "0002yhlzvwmhmdcnx48xc5q577r9yxq5jv978avx7axl4fmxjzi9";
+      name = "kpeople-5.95.0.tar.xz";
     };
   };
   kplotting = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kplotting-5.94.0.tar.xz";
-      sha256 = "1ah6fsskdnkh6m2nyjm64rxqfyxgg6jj0ydcqivq1m81hrhnsgbq";
-      name = "kplotting-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kplotting-5.95.0.tar.xz";
+      sha256 = "0jyip5s2razcg8rfg4li3a14bisqbfzh1x6zc2z90vg8cgihqjny";
+      name = "kplotting-5.95.0.tar.xz";
     };
   };
   kpty = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kpty-5.94.0.tar.xz";
-      sha256 = "1jj6aw0zlbw5mljv2q990m62y381aqjih7pvqnjsdk2licqn16jn";
-      name = "kpty-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kpty-5.95.0.tar.xz";
+      sha256 = "0pjzb7n8y3frp3b88caqhrnzfckkrgq1rq0j1n298ym78pjq077n";
+      name = "kpty-5.95.0.tar.xz";
     };
   };
   kquickcharts = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kquickcharts-5.94.0.tar.xz";
-      sha256 = "0a4mxb7wkqjq3iclhxnb7pkikb7yj2y4lyb080cni2wknjyzlr9h";
-      name = "kquickcharts-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kquickcharts-5.95.0.tar.xz";
+      sha256 = "09fkhxm3vx488xiiqm9wg7vwcqyj7k54rxrgk8pc2gjbg2af22bs";
+      name = "kquickcharts-5.95.0.tar.xz";
     };
   };
   kross = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kross-5.94.0.tar.xz";
-      sha256 = "0j9dchgldl0z2xi25r82fcflvqp05njgscpqjzmddpih4nyjas8x";
-      name = "kross-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kross-5.95.0.tar.xz";
+      sha256 = "05brnf4dy8vrrqsv1394g26wr593857zf808pjr3mj97pkbgszjm";
+      name = "kross-5.95.0.tar.xz";
     };
   };
   krunner = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/krunner-5.94.0.tar.xz";
-      sha256 = "1lfbnwhk74b42cs5vnlx36mrrlnj9s2qqnca5zggk10837dbrc1j";
-      name = "krunner-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/krunner-5.95.0.tar.xz";
+      sha256 = "0w0nc0a0i6bbgsp1l6iky6lixhyyzgq1p8rxas72dbrjbs541lb0";
+      name = "krunner-5.95.0.tar.xz";
     };
   };
   kservice = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kservice-5.94.0.tar.xz";
-      sha256 = "0civwkm4wknrh30674lw2mag46m0jdpzjabfpqf0n1m4q1gi1b8s";
-      name = "kservice-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kservice-5.95.0.tar.xz";
+      sha256 = "1rh48ij8vh72q7v9dlawgqb4kwvdgj8xl45hpn9dfx43h2iyjwfw";
+      name = "kservice-5.95.0.tar.xz";
     };
   };
   ktexteditor = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/ktexteditor-5.94.0.tar.xz";
-      sha256 = "1dmkw5am89pjzazs2s9f1yv5lni0aa3hxr6w46w8lwbx2sbrjbfq";
-      name = "ktexteditor-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/ktexteditor-5.95.0.tar.xz";
+      sha256 = "0yrykpangay6jb74hbr6i6m0v88dshy078qxd2myvj4gx8xbdrfm";
+      name = "ktexteditor-5.95.0.tar.xz";
     };
   };
   ktextwidgets = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/ktextwidgets-5.94.0.tar.xz";
-      sha256 = "0rnqkqwq9zffxh6swpd5riyir21rpdbm5mf1cqy4qvsjrgdfxz24";
-      name = "ktextwidgets-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/ktextwidgets-5.95.0.tar.xz";
+      sha256 = "0vjyq80nn8g4xxsq6d3z5lphl2ikg64jbl5c59q5vsnkkg4j534x";
+      name = "ktextwidgets-5.95.0.tar.xz";
     };
   };
   kunitconversion = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kunitconversion-5.94.0.tar.xz";
-      sha256 = "0jc0lffaz1wq26a251vgk6c16lqfqdkb81p789016ifv4kqz1bg4";
-      name = "kunitconversion-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kunitconversion-5.95.0.tar.xz";
+      sha256 = "079ljkgmx5nkhs29rinbrld4scy2k69fjnbia2jfwijy0slac00g";
+      name = "kunitconversion-5.95.0.tar.xz";
     };
   };
   kwallet = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kwallet-5.94.0.tar.xz";
-      sha256 = "0ciabsayzy2r1aknwgns7s9759y2kfrxwmzycwxm9rsffm16ndh1";
-      name = "kwallet-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kwallet-5.95.0.tar.xz";
+      sha256 = "1gk55ny4zxhwq78gn8da4zwcjxvwf5z9y7dipiam0ybkwjz2pkrd";
+      name = "kwallet-5.95.0.tar.xz";
     };
   };
   kwayland = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kwayland-5.94.0.tar.xz";
-      sha256 = "0di6rax4mdismqa4fzx30rj5y2ds211b7kwir6cff76qnkhxi95j";
-      name = "kwayland-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kwayland-5.95.0.tar.xz";
+      sha256 = "0ba71k97qp5czg4d07pp75gfrkp5rgmvd2y9vv7n6mhfrgqsd3rb";
+      name = "kwayland-5.95.0.tar.xz";
     };
   };
   kwidgetsaddons = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kwidgetsaddons-5.94.0.tar.xz";
-      sha256 = "0cix00d2dbbb3l523xri4is4xvbf3bn6vg10yyjrhqjxqqayv3k7";
-      name = "kwidgetsaddons-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kwidgetsaddons-5.95.0.tar.xz";
+      sha256 = "0b3i47p6495pz9nph85qliscbxsrpq76s9a37bkb8nv1wf3nyyw3";
+      name = "kwidgetsaddons-5.95.0.tar.xz";
     };
   };
   kwindowsystem = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kwindowsystem-5.94.0.tar.xz";
-      sha256 = "0y1wlhm3ng2pb970hvgsyv6gn3irrkw5y9nmvzx28gxcx7abgssj";
-      name = "kwindowsystem-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kwindowsystem-5.95.0.tar.xz";
+      sha256 = "1wxvhi8jwvnvgg5pyj6q6gqs24akzmjdw76g57qcfgq95a9byszi";
+      name = "kwindowsystem-5.95.0.tar.xz";
     };
   };
   kxmlgui = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/kxmlgui-5.94.0.tar.xz";
-      sha256 = "1mlxc4wdqnh77g7j0hxrg9jfrdjk9sh3bahp10r17l8fzwq1g8s3";
-      name = "kxmlgui-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/kxmlgui-5.95.0.tar.xz";
+      sha256 = "16rk1fb8n0ay3g305qmjfhrv6zq7fbilq02386wwgdczg98x8r8h";
+      name = "kxmlgui-5.95.0.tar.xz";
     };
   };
   kxmlrpcclient = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/portingAids/kxmlrpcclient-5.94.0.tar.xz";
-      sha256 = "10hz8nijhih0n3z83n3khy2hdflsjq8i4q0y9jjpqp1d0b5rbb35";
-      name = "kxmlrpcclient-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/portingAids/kxmlrpcclient-5.95.0.tar.xz";
+      sha256 = "1ldykbr4x582k43b8bh01zzxbdfzyz2ckpqd9hpq9iab4njlh6gw";
+      name = "kxmlrpcclient-5.95.0.tar.xz";
     };
   };
   modemmanager-qt = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/modemmanager-qt-5.94.0.tar.xz";
-      sha256 = "1wmz27713kh2i2m227008f412dcf65nvnnax60hrg2nkp8vdqa3r";
-      name = "modemmanager-qt-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/modemmanager-qt-5.95.0.tar.xz";
+      sha256 = "0n9majjny43gic3s73v317wxyfzicf1j2cd7ly7fb1wpm5l9684x";
+      name = "modemmanager-qt-5.95.0.tar.xz";
     };
   };
   networkmanager-qt = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/networkmanager-qt-5.94.0.tar.xz";
-      sha256 = "00k5k1xv53hf24k9w3sd5am64zz5zph3fx63q6xpf3pz371qq80j";
-      name = "networkmanager-qt-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/networkmanager-qt-5.95.0.tar.xz";
+      sha256 = "0wkk6kblbvazplfr7wwzb552jv3560ng80wp56kihnagxkhch491";
+      name = "networkmanager-qt-5.95.0.tar.xz";
     };
   };
   oxygen-icons5 = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/oxygen-icons5-5.94.0.tar.xz";
-      sha256 = "1l6izhrqqvf5vh2ib8zf1fjh5d9i9ri5jg9x3k1wi0xp7yy9sg90";
-      name = "oxygen-icons5-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/oxygen-icons5-5.95.0.tar.xz";
+      sha256 = "1993sy7a4zvw5nbzjc9ii67f9wsba683szi39rl3gl6iy17i3lrd";
+      name = "oxygen-icons5-5.95.0.tar.xz";
     };
   };
   plasma-framework = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/plasma-framework-5.94.0.tar.xz";
-      sha256 = "0apd2n453yk8ifv6zq6845rwsacm1vpw9xwv26a221k1gfggpsvc";
-      name = "plasma-framework-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/plasma-framework-5.95.0.tar.xz";
+      sha256 = "0px54bymfvwl9cyd31vgnmn1h87w1fwzqmdis3hv4q2yk2anqnsz";
+      name = "plasma-framework-5.95.0.tar.xz";
     };
   };
   prison = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/prison-5.94.0.tar.xz";
-      sha256 = "1jyi0vd5msj7cf2jv21ibpp8lkn5yvd5wv3rbnkdnqwzamw7jq4r";
-      name = "prison-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/prison-5.95.0.tar.xz";
+      sha256 = "0i3gczd1qmxd80m4pra3fgzg1q7xvv6kfmf7c9a24misc02vwvb1";
+      name = "prison-5.95.0.tar.xz";
     };
   };
   purpose = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/purpose-5.94.0.tar.xz";
-      sha256 = "1axk852xpiz1a67b5zh08r01zr6x15k0sd7np9564s9agybzzbbk";
-      name = "purpose-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/purpose-5.95.0.tar.xz";
+      sha256 = "002py7c162991p40hsyiqpafd6zfd5amr2b9khw0bkf72ckj0936";
+      name = "purpose-5.95.0.tar.xz";
     };
   };
   qqc2-desktop-style = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/qqc2-desktop-style-5.94.0.tar.xz";
-      sha256 = "0j3y1vnqv12lz33vrif6fb5nc3sk5z52fsw77i12xhlkpq6j258b";
-      name = "qqc2-desktop-style-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/qqc2-desktop-style-5.95.0.tar.xz";
+      sha256 = "04vkwbdlm141zgm46y1h2ypkf5w8lcbj6xbbmrkii6crv8g88ass";
+      name = "qqc2-desktop-style-5.95.0.tar.xz";
     };
   };
   solid = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/solid-5.94.0.tar.xz";
-      sha256 = "01qiz8l12jw9rd085swx2kbbjaci6lnqx323a6g4nskbwc0x93lx";
-      name = "solid-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/solid-5.95.0.tar.xz";
+      sha256 = "0vind63kb4kl4741fy0h9rcj7579w80csmkz4ldiik50gl8hjjjc";
+      name = "solid-5.95.0.tar.xz";
     };
   };
   sonnet = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/sonnet-5.94.0.tar.xz";
-      sha256 = "0k27nxk20i4r9sa6gy56r4s7dnn51igbyvzz3nwvcswdfij0lmwc";
-      name = "sonnet-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/sonnet-5.95.0.tar.xz";
+      sha256 = "18praj54sgnmsgqhmwp0w2jvs78k5i9j831dxfjnrzmc2ncgn1aw";
+      name = "sonnet-5.95.0.tar.xz";
     };
   };
   syndication = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/syndication-5.94.0.tar.xz";
-      sha256 = "0nv88hhdy8r42ghm2r0pskshihjqc46zx8x61rk5x3c9skj153j5";
-      name = "syndication-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/syndication-5.95.0.tar.xz";
+      sha256 = "0dh8hikdfd7xdvp3rqi453v10gxq0sf5z3hzb0xsgx1y402z9mfc";
+      name = "syndication-5.95.0.tar.xz";
     };
   };
   syntax-highlighting = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/syntax-highlighting-5.94.0.tar.xz";
-      sha256 = "19p5vn6rrhqlhzjs73zagzzdbcrj5jl37n7x35lq6m83llr171yg";
-      name = "syntax-highlighting-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/syntax-highlighting-5.95.0.tar.xz";
+      sha256 = "00j88xgya0xcwrg1n0kzp5ba2f3ppp8whw66fzpksahzfvcwm71x";
+      name = "syntax-highlighting-5.95.0.tar.xz";
     };
   };
   threadweaver = {
-    version = "5.94.0";
+    version = "5.95.0";
     src = fetchurl {
-      url = "${mirror}/stable/frameworks/5.94/threadweaver-5.94.0.tar.xz";
-      sha256 = "1ig1m00bpil0qixa3kshd8smijyasr7svps97d1pwfy5c8d47n47";
-      name = "threadweaver-5.94.0.tar.xz";
+      url = "${mirror}/stable/frameworks/5.95/threadweaver-5.95.0.tar.xz";
+      sha256 = "0gnxy97az0jy88rl2ly5f858yzwml9la1hkln9nvh8c7q2girc5s";
+      name = "threadweaver-5.95.0.tar.xz";
     };
   };
 }
diff --git a/pkgs/development/libraries/libbluedevil/default.nix b/pkgs/development/libraries/libbluedevil/default.nix
deleted file mode 100644
index 7cb4c9e2b32c5..0000000000000
--- a/pkgs/development/libraries/libbluedevil/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, stdenv, fetchurl, cmake, qt4 }:
-
-stdenv.mkDerivation rec {
-  pname = "libbluedevil";
-  # bluedevil must have the same major version (x.y) as libbluedevil!
-  # do not update this package without checking bluedevil
-  version = "2.1";
-
-  src = fetchurl {
-    url = "mirror://kde/stable/${pname}/${version}/src/${pname}-${version}.tar.xz";
-    sha256 = "0p4f0brhcz9gfxfd6114fa5x6swfdmgzv350xwncdr0s1qnamk8c";
-  };
-
-  nativeBuildInputs = [ cmake ];
-  buildInputs = [ qt4 ];
-
-  meta = {
-    platforms = lib.platforms.unix;
-    license = lib.licenses.gpl2Plus;
-  };
-}
diff --git a/pkgs/development/libraries/libcef/default.nix b/pkgs/development/libraries/libcef/default.nix
index bbc39a111b810..87471114a87b6 100644
--- a/pkgs/development/libraries/libcef/default.nix
+++ b/pkgs/development/libraries/libcef/default.nix
@@ -112,6 +112,10 @@ stdenv.mkDerivation rec {
     description = "Simple framework for embedding Chromium-based browsers in other applications";
     homepage = "https://cef-builds.spotifycdn.com/index.html";
     maintainers = with maintainers; [ puffnfresh ];
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.bsd3;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" ];
   };
diff --git a/pkgs/development/libraries/libdbusmenu-qt/default.nix b/pkgs/development/libraries/libdbusmenu-qt/default.nix
deleted file mode 100644
index 75d4f76b31ffa..0000000000000
--- a/pkgs/development/libraries/libdbusmenu-qt/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, stdenv, fetchurl, qt4, cmake }:
-
-let
-  baseName = "libdbusmenu-qt";
-  v = "0.9.2";
-  homepage = "https://launchpad.net/${baseName}";
-  name = "${baseName}-${v}";
-in
-
-stdenv.mkDerivation {
-  inherit name;
-
-  src = fetchurl {
-    url = "${homepage}/trunk/${v}/+download/${name}.tar.bz2";
-    sha256 = "1v0ri5g9xw2z64ik0kx0ra01v8rpjn2kxprrxppkls1wvav1qv5f";
-  };
-
-  buildInputs = [ qt4 ];
-  nativeBuildInputs = [ cmake ];
-
-  cmakeFlags = [ "-DWITH_DOC=OFF" ];
-
-  dontWrapQtApps = true;
-
-  meta = with lib; {
-    description = "Provides a Qt implementation of the DBusMenu spec";
-    inherit homepage;
-    inherit (qt4.meta) platforms;
-    license = licenses.lgpl2;
-  };
-}
diff --git a/pkgs/development/libraries/libffi/default.nix b/pkgs/development/libraries/libffi/default.nix
index 7387a4a1f0628..0971091d8a105 100644
--- a/pkgs/development/libraries/libffi/default.nix
+++ b/pkgs/development/libraries/libffi/default.nix
@@ -7,11 +7,6 @@
 , dejagnu
 }:
 
-# Note: this package is used for bootstrapping fetchurl, and thus
-# cannot use fetchpatch! All mutable patches (generated by GitHub or
-# cgit) that are needed here should be included directly in Nixpkgs as
-# files.
-
 stdenv.mkDerivation rec {
   pname = "libffi";
   version = "3.4.2";
@@ -21,7 +16,13 @@ stdenv.mkDerivation rec {
     sha256 = "081nx7wpzds168jbr59m34n6s3lyiq6r8zggvqxvlslsc4hvf3sl";
   };
 
-  patches = [];
+  # Note: this package is used for bootstrapping fetchurl, and thus
+  # cannot use fetchpatch! All mutable patches (generated by GitHub or
+  # cgit) that are needed here should be included directly in Nixpkgs as
+  # files.
+  patches = [
+    ./libffi-powerpc64.patch
+  ];
 
   strictDeps = true;
   outputs = [ "out" "dev" "man" "info" ];
diff --git a/pkgs/development/libraries/libffi/libffi-powerpc64.patch b/pkgs/development/libraries/libffi/libffi-powerpc64.patch
new file mode 100644
index 0000000000000..5748ac0849829
--- /dev/null
+++ b/pkgs/development/libraries/libffi/libffi-powerpc64.patch
@@ -0,0 +1,23 @@
+https://github.com/libffi/libffi/issues/668
+--- a/src/powerpc/linux64.S
++++ b/src/powerpc/linux64.S
+@@ -29,6 +29,8 @@
+ #include <fficonfig.h>
+ #include <ffi.h>
+ 
++	.machine altivec
++
+ #ifdef POWERPC64
+ 	.hidden	ffi_call_LINUX64
+ 	.globl	ffi_call_LINUX64
+--- a/src/powerpc/linux64_closure.S
++++ b/src/powerpc/linux64_closure.S
+@@ -30,6 +30,8 @@
+ 
+ 	.file	"linux64_closure.S"
+ 
++	.machine altivec
++
+ #ifdef POWERPC64
+ 	FFI_HIDDEN (ffi_closure_LINUX64)
+ 	.globl  ffi_closure_LINUX64
diff --git a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
index e4121bc9e9080..eb7de9bbc09df 100644
--- a/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
+++ b/pkgs/development/libraries/libfprint-2-tod1-goodix/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Goodix driver module for libfprint-2-tod Touch OEM Driver";
     homepage = "https://git.launchpad.net/~oem-solutions-engineers/libfprint-2-tod1-goodix/+git/libfprint-2-tod1-goodix/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ grahamc ];
diff --git a/pkgs/development/libraries/libkqueue/default.nix b/pkgs/development/libraries/libkqueue/default.nix
index 8a4bfdedd1e33..5f96353d9d69f 100644
--- a/pkgs/development/libraries/libkqueue/default.nix
+++ b/pkgs/development/libraries/libkqueue/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libkqueue";
-  version = "2.6.1";
+  version = "2.6.2";
 
   src = fetchFromGitHub {
     owner = "mheily";
     repo = "libkqueue";
     rev = "v${version}";
-    sha256 = "sha256-YKKBHOxjUS7+/ib4gcR7EYjjVOwhHVksYasLhErdV8s=";
+    sha256 = "sha256-5Zds9sqHkFldJf3ThTPOiaGKohmFcIzY0ARDA0iswVk=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -16,6 +16,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "kqueue(2) compatibility library";
     homepage = "https://github.com/mheily/libkqueue";
+    changelog = "https://github.com/mheily/libkqueue/raw/v${version}/ChangeLog";
     license = licenses.bsd2;
     maintainers = [ maintainers.marsam ];
     platforms = platforms.linux;
diff --git a/pkgs/development/libraries/libqmi/default.nix b/pkgs/development/libraries/libqmi/default.nix
index 0906d7b967c96..fb2d4aa69c9cb 100644
--- a/pkgs/development/libraries/libqmi/default.nix
+++ b/pkgs/development/libraries/libqmi/default.nix
@@ -45,8 +45,8 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--with-udev-base-dir=${placeholder "out"}/lib/udev"
-    "--enable-gtk-doc"
-    "--enable-introspection"
+    "--enable-gtk-doc=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "yes" else "no"}"
+    "--enable-introspection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "yes" else "no"}"
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/development/libraries/libsciter/default.nix b/pkgs/development/libraries/libsciter/default.nix
index 6f3016ce47a4e..034ccc4208f86 100644
--- a/pkgs/development/libraries/libsciter/default.nix
+++ b/pkgs/development/libraries/libsciter/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
     description = "Embeddable HTML/CSS/JavaScript engine for modern UI development";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ leixb ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/development/libraries/libunwind/default.nix b/pkgs/development/libraries/libunwind/default.nix
index bda9001f913fa..89ca036eeed4f 100644
--- a/pkgs/development/libraries/libunwind/default.nix
+++ b/pkgs/development/libraries/libunwind/default.nix
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
     })
   ];
 
-  postPatch = if stdenv.cc.isClang then ''
+  postPatch = if (stdenv.cc.isClang || stdenv.hostPlatform.isStatic) then ''
     substituteInPlace configure.ac --replace "-lgcc_s" ""
   '' else lib.optionalString stdenv.hostPlatform.isMusl ''
     substituteInPlace configure.ac --replace "-lgcc_s" "-lgcc_eh"
diff --git a/pkgs/development/libraries/libusb1/default.nix b/pkgs/development/libraries/libusb1/default.nix
index 24b147d142d74..3b23402fe33c3 100644
--- a/pkgs/development/libraries/libusb1/default.nix
+++ b/pkgs/development/libraries/libusb1/default.nix
@@ -13,13 +13,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libusb";
-  version = "1.0.25";
+  version = "1.0.26";
 
   src = fetchFromGitHub {
     owner = "libusb";
     repo = "libusb";
     rev = "v${version}";
-    sha256 = "141wygijjcgka0h31504cdlvih4l2j02j67pcbb2l527p7dbc5pn";
+    sha256 = "sha256-LEy45YiFbueCCi8d2hguujMsxBezaTUERHUpFsTKGZQ=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/development/libraries/libvgm/default.nix b/pkgs/development/libraries/libvgm/default.nix
index 6575561691a6a..43b145be62bf5 100644
--- a/pkgs/development/libraries/libvgm/default.nix
+++ b/pkgs/development/libraries/libvgm/default.nix
@@ -42,13 +42,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "libvgm";
-  version = "unstable-2022-05-27";
+  version = "unstable-2022-06-18";
 
   src = fetchFromGitHub {
     owner = "ValleyBell";
     repo = "libvgm";
-    rev = "ec6ddae3e3488b6dc9e993cb0f76d3015d2f6fff";
-    sha256 = "AwIx4LuVSuCf7xgtximcB6N+rzC7g1ajeBdaBz6RSyk=";
+    rev = "001ca758538ca3f82403dff654d82342730b215d";
+    sha256 = "O3jvEEW1M0cwZoG6j2ndmuQW4jP0dvt6gGp2BS4VD5s=";
   };
 
   outputs = [
diff --git a/pkgs/development/libraries/libzip/default.nix b/pkgs/development/libraries/libzip/default.nix
index 3620943d6c537..f794868baf0d1 100644
--- a/pkgs/development/libraries/libzip/default.nix
+++ b/pkgs/development/libraries/libzip/default.nix
@@ -32,6 +32,10 @@ stdenv.mkDerivation rec {
     ++ lib.optionals withOpenssl [ openssl ]
     ++ lib.optionals withZstd [ zstd ];
 
+  # Don't build the regression tests because they don't build with
+  # pkgsStatic and are not executed anyway.
+  cmakeFlags = [ "-DBUILD_REGRESS=0" ];
+
   preCheck = ''
     # regress/runtest is a generated file
     patchShebangs regress
diff --git a/pkgs/development/libraries/live555/default.nix b/pkgs/development/libraries/live555/default.nix
index 851f52fe4ab2e..f212adb03beb3 100644
--- a/pkgs/development/libraries/live555/default.nix
+++ b/pkgs/development/libraries/live555/default.nix
@@ -10,7 +10,7 @@
 
 stdenv.mkDerivation rec {
   pname = "live555";
-  version = "2022.02.07";
+  version = "2022.06.16";
 
   src = fetchurl {
     urls = [
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
       "https://download.videolan.org/contrib/live555/live.${version}.tar.gz"
       "mirror://sourceforge/slackbuildsdirectlinks/live.${version}.tar.gz"
     ];
-    sha256 = "sha256-bwwfinHOtQa8v5abArSww2l7ThXa623LqYcsh0XOksY=";
+    sha256 = "sha256-84OUQw++RNqH3sAY4S6yXRJXZY+5T0VdTIUqELuVdV0=";
   };
 
   nativeBuildInputs = lib.optional stdenv.isDarwin darwin.cctools;
@@ -42,27 +42,21 @@ stdenv.mkDerivation rec {
   configurePhase = ''
     runHook preConfigure
 
-    ./genMakefiles ${{
-      x86_64-darwin = "macosx-catalina";
-      i686-linux = "linux";
-      x86_64-linux = "linux-64bit";
-      aarch64-linux = "linux-64bit";
-    }.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}")}
+    ./genMakefiles ${
+      if stdenv.isLinux then
+        "linux"
+      else if stdenv.isDarwin then
+        "macosx-catalina"
+      else
+        throw "Unsupported platform ${stdenv.hostPlatform.system}"}
 
     runHook postConfigure
   '';
 
-  installPhase = ''
-    runHook preInstall
-
-    for dir in BasicUsageEnvironment groupsock liveMedia UsageEnvironment; do
-      install -dm755 $out/{bin,lib,include/$dir}
-      install -m644 $dir/*.a "$out/lib"
-      install -m644 $dir/include/*.h* "$out/include/$dir"
-    done
-
-    runHook postInstall
-  '';
+  makeFlags = [
+    "DESTDIR=${placeholder "out"}"
+    "PREFIX="
+  ];
 
   enableParallelBuilding = true;
 
@@ -77,6 +71,5 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ AndersonTorres ];
     platforms = platforms.unix;
-    broken = stdenv.hostPlatform.isAarch64;
   };
 }
diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix
index 791fae96f0fcf..4154f0315cd24 100644
--- a/pkgs/development/libraries/malcontent/default.nix
+++ b/pkgs/development/libraries/malcontent/default.nix
@@ -19,7 +19,7 @@
 
 stdenv.mkDerivation rec {
   pname = "malcontent";
-  version = "0.10.4";
+  version = "0.10.5";
 
   outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ];
 
@@ -28,7 +28,7 @@ stdenv.mkDerivation rec {
     owner = "pwithnall";
     repo = pname;
     rev = version;
-    sha256 = "sha256-s2wQLb3tCfO3p8yYG8Nc6pu+y2TLfrmo7Ug1LgDLEdw=";
+    sha256 = "sha256-UPKAStB6wTd3qbbISHMgNw1bJjIRgn89tHnsw4ZptvQ=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/mapnik/default.nix b/pkgs/development/libraries/mapnik/default.nix
index 14eb3c047e2a4..13e34bebee639 100644
--- a/pkgs/development/libraries/mapnik/default.nix
+++ b/pkgs/development/libraries/mapnik/default.nix
@@ -1,12 +1,15 @@
 { lib, stdenv, fetchzip
 , boost, cairo, freetype, gdal, harfbuzz, icu, libjpeg, libpng, libtiff
 , libwebp, libxml2, proj, python3, python ? python3, sqlite, zlib
+, sconsPackages
 
 # supply a postgresql package to enable the PostGIS input plugin
 , postgresql ? null
 }:
 
-stdenv.mkDerivation rec {
+let
+  scons = sconsPackages.scons_3_0_1;
+in stdenv.mkDerivation rec {
   pname = "mapnik";
   version = "3.1.0";
 
@@ -16,10 +19,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qqPqN4vs3ZsqKgnx21yQhX8OzHca/0O+3mvQ/vnC5EY=";
   };
 
+  postPatch = ''
+    substituteInPlace configure \
+      --replace '$PYTHON scons/scons.py' ${scons}/bin/scons
+    rm -r scons
+  '';
+
   # a distinct dev output makes python-mapnik fail
   outputs = [ "out" ];
 
-  nativeBuildInputs = [ python3 ];
+  nativeBuildInputs = [ scons ];
 
   buildInputs = [
     boost cairo freetype gdal harfbuzz icu libjpeg libpng libtiff
diff --git a/pkgs/development/libraries/mesa/default.nix b/pkgs/development/libraries/mesa/default.nix
index 8954eae19b469..0e10135d3d391 100644
--- a/pkgs/development/libraries/mesa/default.nix
+++ b/pkgs/development/libraries/mesa/default.nix
@@ -34,7 +34,8 @@ with lib;
 let
   # Release calendar: https://www.mesa3d.org/release-calendar.html
   # Release frequency: https://www.mesa3d.org/releasing.html#schedule
-  version = "22.0.4";
+  # 22.1 on darwin won't build: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6519
+  version = if stdenv.isDarwin then "22.0.4" else "22.1.1";
   branch  = versions.major version;
 
 self = stdenv.mkDerivation {
@@ -48,7 +49,10 @@ self = stdenv.mkDerivation {
       "ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
       "ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
     ];
-    sha256 = "1m0y8wgy48hmcidsr7sbk5hcw3v0qr8359fd2x34fvl2z9c1z5y7";
+    sha256 = {
+      "22.1.1" = "1w8fpki67238l4yc92hsnsh4402py9zspirbmirxp577zxjhi526";
+      "22.0.4" = "1m0y8wgy48hmcidsr7sbk5hcw3v0qr8359fd2x34fvl2z9c1z5y7";
+    }.${version};
   };
 
   # TODO:
diff --git a/pkgs/development/libraries/monocypher/default.nix b/pkgs/development/libraries/monocypher/default.nix
new file mode 100644
index 0000000000000..7ce84cbba8359
--- /dev/null
+++ b/pkgs/development/libraries/monocypher/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchurl, fetchpatch }:
+
+stdenv.mkDerivation rec {
+  pname = "monocypher";
+  version = "3.1.3";
+
+  src = fetchurl {
+    url = "https://monocypher.org/download/monocypher-${version}.tar.gz";
+    hash = "sha256-tEK1d98o+MNsqgHZrpARtd2ccX2UvlIBaKBONtf1AW4=";
+  };
+
+  patches = [
+    # Fix cross-compilation
+    (fetchpatch {
+      url = "https://github.com/LoupVaillant/Monocypher/commit/376715e1c0ebb375e50dfa757bc89486c9a7b404.patch";
+      hash = "sha256-tuwSUaU4w+jkaj10ChMgUmOQmoKYnv5JgJ1og8EXxFk=";
+    })
+  ];
+
+  makeFlags = [ "AR:=$(AR)" "CC:=$(CC)" ];
+
+  installFlags = [ "PREFIX=$(out)" ];
+
+  doCheck = true;
+
+  meta = with lib; {
+    description = "Boring crypto that simply works";
+    homepage = "https://monocypher.org";
+    license = with licenses; [ bsd2 cc0 ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/pkgs/development/libraries/ncurses/default.nix b/pkgs/development/libraries/ncurses/default.nix
index 72d64854238f3..2cfe41956a4b1 100644
--- a/pkgs/development/libraries/ncurses/default.nix
+++ b/pkgs/development/libraries/ncurses/default.nix
@@ -41,7 +41,17 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.hostPlatform.isWindows [
       "--enable-sp-funcs"
       "--enable-term-driver"
-    ];
+  ] ++ lib.optionals (stdenv.hostPlatform.isUnix && stdenv.hostPlatform.isStatic) [
+      # 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.
+      "--with-terminfo-dirs=${lib.concatStringsSep ":" [
+        "/etc/terminfo" # Debian, Fedora, Gentoo
+        "/lib/terminfo" # Debian
+        "/usr/share/terminfo" # upstream default, probably all FHS-based distros
+        "/run/current-system/sw/share/terminfo" # NixOS
+      ]}"
+  ];
 
   # Only the C compiler, and explicitly not C++ compiler needs this flag on solaris:
   CFLAGS = lib.optionalString stdenv.isSunOS "-D_XOPEN_SOURCE_EXTENDED";
diff --git a/pkgs/development/libraries/ndi/default.nix b/pkgs/development/libraries/ndi/default.nix
index 90032f774bbcd..7ea64aa3f1348 100644
--- a/pkgs/development/libraries/ndi/default.nix
+++ b/pkgs/development/libraries/ndi/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation rec {
     description = "NDI Software Developer Kit";
     platforms = ["x86_64-linux"];
     hydraPlatforms = [];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
   };
 }
diff --git a/pkgs/development/libraries/nghttp3/default.nix b/pkgs/development/libraries/nghttp3/default.nix
index 32e3917e72c11..e0392901eccfa 100644
--- a/pkgs/development/libraries/nghttp3/default.nix
+++ b/pkgs/development/libraries/nghttp3/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "nghttp3";
-  version = "0.4.1";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-1+0ln0J8dqHqmE+fsawhbfbbMNlCkDpJx4xomUuoHdE=";
+    sha256 = "sha256-EEwo4KIBNVb/O1htUN8GkuiU/P3r/DyEn6L9l1r1I6E=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/ngtcp2/default.nix b/pkgs/development/libraries/ngtcp2/default.nix
index 68dabef6d9fbc..02812e004322a 100644
--- a/pkgs/development/libraries/ngtcp2/default.nix
+++ b/pkgs/development/libraries/ngtcp2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "ngtcp2";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "ngtcp2";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-hpIGsQBJCOyaEqopdES/hRXc2makIERonUju9D/HvgE=";
+    sha256 = "sha256-1cbbH411kn2OnxLWXQvmae0JW4HzXnEHYnucQEVAslk=";
   };
 
   outputs = [ "out" "dev" "doc" ];
diff --git a/pkgs/development/libraries/nss/esr.nix b/pkgs/development/libraries/nss/esr.nix
index a958fa059d6d5..a789f0306d327 100644
--- a/pkgs/development/libraries/nss/esr.nix
+++ b/pkgs/development/libraries/nss/esr.nix
@@ -1,4 +1,4 @@
 import ./generic.nix {
-  version = "3.68.3";
-  sha256 = "sha256-5NDZsLVhfLM0gSZC7YAfjlH1mVyN2FwN78jMra/Lwzc=";
+  version = "3.68.4";
+  hash = "sha256-K5/T9aG0nzs7KdEgAmdPcEgRViV1b7R3KELsfDm+Fgs=";
 }
diff --git a/pkgs/development/libraries/nss/generic.nix b/pkgs/development/libraries/nss/generic.nix
index 3affffda0820c..9a3d7bdfe2702 100644
--- a/pkgs/development/libraries/nss/generic.nix
+++ b/pkgs/development/libraries/nss/generic.nix
@@ -1,4 +1,4 @@
-{ version, sha256 }:
+{ version, hash }:
 { lib
 , stdenv
 , fetchurl
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://mozilla/security/nss/releases/NSS_${underscoreVersion}_RTM/src/${pname}-${version}.tar.gz";
-    inherit sha256;
+    inherit hash;
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/libraries/nss/latest.nix b/pkgs/development/libraries/nss/latest.nix
index 622c9fca85863..40f88afed29fc 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.78";
-  sha256 = "sha256-9FXzQeeHwRZzKOgKhPd7mlV9WVBm3aZIahh01y2miAA=";
+  version = "3.80";
+  hash = "sha256-wL8f0sfimmsCswliK6r8RD7skMiTS7FV2ku5iYh4S2o=";
 }
diff --git a/pkgs/development/libraries/olm/default.nix b/pkgs/development/libraries/olm/default.nix
index 21f5a83073fe6..47a2656871222 100644
--- a/pkgs/development/libraries/olm/default.nix
+++ b/pkgs/development/libraries/olm/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   pname = "olm";
-  version = "3.2.11";
+  version = "3.2.12";
 
   src = fetchFromGitLab {
     domain = "gitlab.matrix.org";
     owner = "matrix-org";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/ozMvcHDhYruhzp8xfskKOYCbe/vS4pEOPn1+1Pb+Q0=";
+    sha256 = "sha256-EvqQvg7khsJ2OrcoHBImd9fTgjA65pVRqbJuMV5MG80=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/libraries/opencv/default.nix b/pkgs/development/libraries/opencv/default.nix
index 34dcd240838ef..73b0874dde5ae 100644
--- a/pkgs/development/libraries/opencv/default.nix
+++ b/pkgs/development/libraries/opencv/default.nix
@@ -1,6 +1,5 @@
 { lib, stdenv, fetchFromGitHub, cmake, pkg-config, unzip
 , zlib
-, enablePython ? false, python2Packages
 , enableGtk2 ? false, gtk2
 , enableJPEG ? true, libjpeg
 , enablePNG ? true, libpng
@@ -44,7 +43,6 @@ stdenv.mkDerivation rec {
 
   buildInputs =
        [ zlib ]
-    ++ lib.optional enablePython python2Packages.python
     ++ lib.optional enableGtk2 gtk2
     ++ lib.optional enableJPEG libjpeg
     ++ lib.optional enablePNG libpng
@@ -56,8 +54,6 @@ stdenv.mkDerivation rec {
     ++ lib.optionals stdenv.isDarwin [ Cocoa QTKit ]
     ;
 
-  propagatedBuildInputs = lib.optional enablePython python2Packages.numpy;
-
   nativeBuildInputs = [ cmake pkg-config unzip ];
 
   NIX_CFLAGS_COMPILE = lib.optionalString enableEXR "-I${ilmbase.dev}/include/OpenEXR";
@@ -78,8 +74,6 @@ stdenv.mkDerivation rec {
     sed -i $dev/lib/pkgconfig/opencv.pc -e "s|includedir_new=.*|includedir_new=$dev/include|"
   '';
 
-  passthru = lib.optionalAttrs enablePython { pythonPath = []; };
-
   meta = with lib; {
     description = "Open Computer Vision Library with more than 500 algorithms";
     homepage = "https://opencv.org/";
diff --git a/pkgs/development/libraries/openldap/default.nix b/pkgs/development/libraries/openldap/default.nix
index c57aa560fc2bb..551a0827eee23 100644
--- a/pkgs/development/libraries/openldap/default.nix
+++ b/pkgs/development/libraries/openldap/default.nix
@@ -1,6 +1,7 @@
 { lib
 , stdenv
 , fetchurl
+, fetchpatch
 
 # dependencies
 , cyrus_sasl
@@ -21,6 +22,39 @@ stdenv.mkDerivation rec {
     hash = "sha256-gdCTRSMutiSG7PWsrNLFbAxFtKbIwGZhLn9CGiOhz4c";
   };
 
+  patches = [
+    # ITS#9840 - ldif-filter: fix parallel build failure
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/7d977f51e6dfa570a471d163b9e8255bdd3dc12f.patch";
+      hash = "sha256:1vid6pj2gmqywbghnd380x19ml241ldc1fyslb6br6q27zpgbdlp";
+    })
+    # ITS#9840 - libraries/Makefile.in: ignore the mkdir errors
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/71f24015c312171c00ce94c9ff9b9c6664bdca8d.patch";
+      hash = "sha256:1a81vv6nkhgiadnj4g1wyzgzdp2zd151h0vkwvv9gzmqvhwcnc04";
+    })
+    # ITS#7165 back-mdb: check for stale readers on
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/7e7f01c301db454e8c507999c77b55a1d97efc21.patch";
+      hash = "sha256:1fc2yck2gn3zlpfqjdn56ar206npi8cmb8yg5ny4lww0ygmyzdfz";
+    })
+    # ITS#9858 back-mdb: delay indexer task startup
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/ac061c684cc79d64ab4089fe3020921a0064a307.patch";
+      hash = "sha256:01f0y50zlcj6n5mfkmb0di4p5vrlgn31zccx4a9k5m8vzxaqmw9d";
+    })
+    # ITS#9858 back-mdb: fix index reconfig
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/c43c7a937cfb3a781f99b458b7ad71eb564a2bc2.patch";
+      hash = "sha256:02yh0c8cyx14iir5qhfam5shrg5d3115s2nv0pmqdj6najrqc5mm";
+    })
+    # ITS#9157: check for NULL ld
+    (fetchpatch {
+      url = "https://github.com/openldap/openldap/commit/6675535cd6ad01f9519ecd5d75061a74bdf095c7.patch";
+      hash = "sha256:0dali5ifcwba8400s065f0fizl9h44i0mzb06qgxhygff6yfrgif";
+    })
+  ];
+
   # TODO: separate "out" and "bin"
   outputs = [
     "out"
@@ -59,7 +93,7 @@ stdenv.mkDerivation rec {
     "ac_cv_func_memcmp_working=yes"
   ] ++ lib.optional stdenv.isFreeBSD "--with-pic";
 
-  makeFlags= [
+  makeFlags = [
     "CC=${stdenv.cc.targetPrefix}cc"
     "STRIP="  # Disable install stripping as it breaks cross-compiling. We strip binaries anyway in fixupPhase.
     "prefix=${placeholder "out"}"
@@ -81,7 +115,7 @@ stdenv.mkDerivation rec {
   ];
 
   postBuild = ''
-    for module in ${lib.concatStringsSep " " extraContribModules}; do
+    for module in $extraContribModules; do
       make $makeFlags CC=$CC -C contrib/slapd-modules/$module
     done
   '';
@@ -105,7 +139,7 @@ stdenv.mkDerivation rec {
   ];
 
   postInstall = ''
-    for module in ${lib.concatStringsSep " " extraContribModules}; do
+    for module in $extraContribModules; do
       make $installFlags install -C contrib/slapd-modules/$module
     done
     chmod +x "$out"/lib/*.{so,dylib}
@@ -116,6 +150,6 @@ stdenv.mkDerivation rec {
     description = "An open source implementation of the Lightweight Directory Access Protocol";
     license = licenses.openldap;
     maintainers = with maintainers; [ ajs124 das_j hexa ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/partio/default.nix b/pkgs/development/libraries/partio/default.nix
index d4af69532b396..69dba0004f59a 100644
--- a/pkgs/development/libraries/partio/default.nix
+++ b/pkgs/development/libraries/partio/default.nix
@@ -1,37 +1,24 @@
-{ lib, stdenv, fetchFromGitHub, unzip, cmake, freeglut, libGLU, libGL, zlib, swig, doxygen, xorg }:
+{ lib, stdenv, fetchFromGitHub, unzip, cmake, freeglut, libGLU, libGL, zlib, swig, doxygen, xorg, python3 }:
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   pname = "partio";
-  version = "2018-03-01";
+  version = "1.14.6";
 
   src = fetchFromGitHub {
     owner = "wdas";
     repo = "partio";
-    rev = "8b6ea0d20f1ab77cd7f18390999251e60932de4a";
-    sha256 = "16sdj103v02l2dgq9y9cna9jakafabz9jxzdxsd737ir6wn10ksb";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-S8U5I3dllFzDSocU1mJ8FYCCmBpsOR4n174oiX5hvAM=";
   };
 
   outputs = [ "dev" "out" "lib" ];
 
   nativeBuildInputs = [ unzip cmake doxygen ];
-  buildInputs = [ freeglut libGLU libGL zlib swig xorg.libXi xorg.libXmu ];
-
-  buildPhase = ''
-    make partio
-
-    mkdir $dev
-    mkdir $out
-      '';
+  buildInputs = [ freeglut libGLU libGL zlib swig xorg.libXi xorg.libXmu python3 ];
 
   # TODO:
   # Sexpr support
 
-  installPhase = ''
-    make install prefix=$out
-    mkdir $dev/include/partio
-    mv $dev/include/*.h $dev/include/partio
-  '';
-
   strictDeps = true;
 
   meta = with lib; {
diff --git a/pkgs/development/libraries/pipewire/default.nix b/pkgs/development/libraries/pipewire/default.nix
index 96d8c9c205297..c60787d5b6220 100644
--- a/pkgs/development/libraries/pipewire/default.nix
+++ b/pkgs/development/libraries/pipewire/default.nix
@@ -2,11 +2,14 @@
 , lib
 , buildPackages
 , fetchFromGitLab
+, fetchpatch
 , removeReferencesTo
 , python3
 , meson
 , ninja
+, eudev
 , systemd
+, enableSystemd ? true
 , pkg-config
 , docutils
 , doxygen
@@ -67,7 +70,7 @@ let
 
   self = stdenv.mkDerivation rec {
     pname = "pipewire";
-    version = "0.3.51";
+    version = "0.3.52";
 
     outputs = [
       "out"
@@ -85,7 +88,7 @@ let
       owner = "pipewire";
       repo = "pipewire";
       rev = version;
-      sha256 = "sha256-k5OdKgkQUaelvrGS4KtO0MtSJg6cF2Nf8RrsR8Kf+C8=";
+      sha256 = "sha256-JWmO36+OF2O9sLB+Z0znwm3TH+O+pEv3cXnuwP6Wy1E=";
     };
 
     patches = [
@@ -101,6 +104,12 @@ let
       ./0090-pipewire-config-template-paths.patch
       # Place SPA data files in lib output to avoid dependency cycles
       ./0095-spa-data-dir.patch
+      # Remove 44.1KHz from allowed rates (multiple regressions reported)
+      # To be removed when 0.3.53 is released
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/16a7c274989f47b0c0d8ba192a30316b545bd26a.patch";
+        sha256 = "sha256-VZ7ChjcR/PGfmH2DmLxfIhd3mj9668l9zLO4k2KBoqg=";
+      })
     ];
 
     nativeBuildInputs = [
@@ -127,8 +136,8 @@ let
       vulkan-headers
       vulkan-loader
       webrtc-audio-processing
-      systemd
-    ] ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
+    ] ++ (if enableSystemd then [ systemd ] else [ eudev ])
+    ++ lib.optionals gstreamerSupport [ gst_all_1.gst-plugins-base gst_all_1.gstreamer ]
     ++ lib.optionals libcameraSupport [ libcamera libdrm ]
     ++ lib.optional ffmpegSupport ffmpeg
     ++ lib.optionals bluezSupport [ bluez libfreeaptx ldacbt sbc fdk_aac ]
@@ -153,13 +162,16 @@ let
       "-Dlibpulse=${mesonEnableFeature pulseTunnelSupport}"
       "-Davahi=${mesonEnableFeature zeroconfSupport}"
       "-Dgstreamer=${mesonEnableFeature gstreamerSupport}"
-      "-Dsystemd-system-service=enabled"
+      "-Dsystemd-system-service=${mesonEnableFeature enableSystemd}"
+      "-Dudev=${mesonEnableFeature (!enableSystemd)}"
+      "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
       "-Dffmpeg=${mesonEnableFeature ffmpegSupport}"
       "-Dbluez5=${mesonEnableFeature bluezSupport}"
       "-Dbluez5-backend-hsp-native=${mesonEnableFeature nativeHspSupport}"
       "-Dbluez5-backend-hfp-native=${mesonEnableFeature nativeHfpSupport}"
       "-Dbluez5-backend-ofono=${mesonEnableFeature ofonoSupport}"
       "-Dbluez5-backend-hsphfpd=${mesonEnableFeature hsphfpdSupport}"
+      "-Dbluez5-codec-lc3plus=disabled"
       "-Dsysconfdir=/etc"
       "-Dpipewire_confdata_dir=${placeholder "lib"}/share/pipewire"
       "-Draop=${mesonEnableFeature raopSupport}"
@@ -193,8 +205,11 @@ let
         cp ${buildPackages.pipewire}/nix-support/*.json "$out/nix-support"
       ''}
 
-      moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
-      moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
+      ${lib.optionalString enableSystemd ''
+        moveToOutput "share/systemd/user/pipewire-pulse.*" "$pulse"
+        moveToOutput "lib/systemd/user/pipewire-pulse.*" "$pulse"
+      ''}
+
       moveToOutput "bin/pipewire-pulse" "$pulse"
 
       moveToOutput "bin/pw-jack" "$jack"
diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix
index c1c76a900175a..22ff1e450c192 100644
--- a/pkgs/development/libraries/portaudio/default.nix
+++ b/pkgs/development/libraries/portaudio/default.nix
@@ -3,6 +3,7 @@
 , fetchurl
 , alsa-lib
 , pkg-config
+, which
 , AudioUnit
 , AudioToolbox
 , CoreAudio
@@ -18,7 +19,8 @@ stdenv.mkDerivation rec {
     sha256 = "1vrdrd42jsnffh6rq8ap2c6fr4g9fcld89z649fs06bwqx1bzvs7";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  strictDeps = true;
+  nativeBuildInputs = [ pkg-config which ];
   buildInputs = lib.optional (!stdenv.isDarwin) alsa-lib;
 
   configureFlags = [ "--disable-mac-universal" "--enable-cxx" ];
@@ -34,6 +36,11 @@ stdenv.mkDerivation rec {
   #     https://github.com/PortAudio/portaudio/commit/28d2781d9216115543aa3f0a0ffb7b4ee0fac551.patch
   enableParallelBuilding = false;
 
+  postPatch = ''
+    # workaround for the configure script which expects an absolute path
+    export AR=$(which $AR)
+  '';
+
   # not sure why, but all the headers seem to be installed by the make install
   installPhase = ''
     make install
diff --git a/pkgs/development/libraries/psol/generic.nix b/pkgs/development/libraries/psol/generic.nix
index aa2522a5dad19..8f312fe9dbc83 100644
--- a/pkgs/development/libraries/psol/generic.nix
+++ b/pkgs/development/libraries/psol/generic.nix
@@ -9,6 +9,7 @@
     description = "PageSpeed Optimization Libraries";
     homepage    = "https://developers.google.com/speed/pagespeed/psol";
     license     = lib.licenses.asl20;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     # WARNING: This only works with Linux because the pre-built PSOL binary is only supplied for Linux.
     # TODO: Build PSOL from source to support more platforms.
     platforms   = lib.platforms.linux;
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 2b8dccf162c94..da54865a18bde 100644
--- a/pkgs/development/libraries/qt-5/5.12/default.nix
+++ b/pkgs/development/libraries/qt-5/5.12/default.nix
@@ -19,6 +19,7 @@ top-level attribute to `top-level/all-packages.nix`.
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
 , darwin
+, buildPackages
 
   # options
 , developerBuild ? false
@@ -236,7 +237,7 @@ let
       } ../hooks/qmake-hook.sh;
 
       wrapQtAppsHook = makeSetupHook {
-        deps = [ self.qtbase.dev makeWrapper ]
+        deps = [ self.qtbase.dev buildPackages.makeWrapper ]
           ++ lib.optional stdenv.isLinux self.qtwayland.dev;
       } ../hooks/wrap-qt-apps-hook.sh;
     };
diff --git a/pkgs/development/libraries/qt-5/5.14/default.nix b/pkgs/development/libraries/qt-5/5.14/default.nix
index b95d49fef876c..59b04b6a52c39 100644
--- a/pkgs/development/libraries/qt-5/5.14/default.nix
+++ b/pkgs/development/libraries/qt-5/5.14/default.nix
@@ -19,6 +19,7 @@ top-level attribute to `top-level/all-packages.nix`.
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
 , darwin
+, buildPackages
 
   # options
 , developerBuild ? false
@@ -234,7 +235,7 @@ let
       } ../hooks/qmake-hook.sh;
 
       wrapQtAppsHook = makeSetupHook {
-        deps = [ self.qtbase.dev makeWrapper ]
+        deps = [ self.qtbase.dev buildPackages.makeWrapper ]
           ++ lib.optional stdenv.isLinux self.qtwayland.dev;
       } ../hooks/wrap-qt-apps-hook.sh;
     };
diff --git a/pkgs/development/libraries/qt-5/5.15/default.nix b/pkgs/development/libraries/qt-5/5.15/default.nix
index 763bfc675cbe1..02b1b0db99b71 100644
--- a/pkgs/development/libraries/qt-5/5.15/default.nix
+++ b/pkgs/development/libraries/qt-5/5.15/default.nix
@@ -12,6 +12,7 @@ Check for any minor version changes.
 , bison, cups ? null, harfbuzz, libGL, perl
 , gstreamer, gst-plugins-base, gtk3, dconf
 , darwin
+, buildPackages
 
   # options
 , developerBuild ? false
@@ -192,7 +193,7 @@ let
       } ../hooks/qmake-hook.sh;
 
       wrapQtAppsHook = makeSetupHook {
-        deps = [ self.qtbase.dev makeWrapper ]
+        deps = [ self.qtbase.dev buildPackages.makeWrapper ]
           ++ lib.optional stdenv.isLinux self.qtwayland.dev;
       } ../hooks/wrap-qt-apps-hook.sh;
     };
diff --git a/pkgs/development/libraries/qt-6/default.nix b/pkgs/development/libraries/qt-6/default.nix
index 5dbb241c6c5eb..8c12cc2fb671a 100644
--- a/pkgs/development/libraries/qt-6/default.nix
+++ b/pkgs/development/libraries/qt-6/default.nix
@@ -19,6 +19,7 @@
 , gst-plugins-base
 , gtk3
 , dconf
+, buildPackages
 
   # options
 , developerBuild ? false
@@ -84,7 +85,7 @@ let
       qtwebview = callPackage ./modules/qtwebview.nix { };
 
       wrapQtAppsHook = makeSetupHook {
-          deps = [ makeWrapper ];
+          deps = [ buildPackages.makeWrapper ];
         } ./hooks/wrap-qt-apps-hook.sh;
     };
 
diff --git a/pkgs/development/libraries/qtscriptgenerator/default.nix b/pkgs/development/libraries/qtscriptgenerator/default.nix
deleted file mode 100644
index dc7cab8d4d524..0000000000000
--- a/pkgs/development/libraries/qtscriptgenerator/default.nix
+++ /dev/null
@@ -1,51 +0,0 @@
-{ lib, stdenv, fetchurl, qt4 }:
-
-stdenv.mkDerivation rec {
-  pname = "qtscriptgenerator";
-  version = "0.1.0";
-
-  src = fetchurl {
-    url = "https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/qtscriptgenerator/qtscriptgenerator-src-${version}.tar.gz";
-    sha256 = "0h8zjh38n2wfz7jld0jz6a09y66dbsd2jhm4f2024qfgcmxcabj6";
-  };
-  buildInputs = [ qt4 ];
-
-  patches = [ ./qtscriptgenerator.gcc-4.4.patch ./qt-4.8.patch ];
-
-  postPatch = ''
-    # remove phonon stuff which causes errors (thanks to Gentoo bug reports)
-    sed -i "/typesystem_phonon.xml/d" generator/generator.qrc
-    sed -i "/qtscript_phonon/d" qtbindings/qtbindings.pro
-  '';
-
-  configurePhase = ''
-    ( cd generator; qmake )
-    ( cd qtbindings; qmake )
-  '';
-
-  buildPhase = ''
-    makeFlags="SHELL=$SHELL ''${enableParallelBuilding:+-j$NIX_BUILD_CORES -l$NIX_BUILD_CORES}"
-    make $makeFlags -C generator
-
-    # Set QTDIR, see https://code.google.com/archive/p/qtscriptgenerator/issues/38
-    ( cd generator; QTDIR=${qt4} ./generator )
-    make $makeFlags -C qtbindings
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib/qt4/plugins/script
-    cp -av plugins/script/* $out/lib/qt4/plugins/script
-  '';
-
-  enableParallelBuilding = true;
-
-  hardeningDisable = [ "format" ];
-
-  meta = {
-    broken = (stdenv.isLinux && stdenv.isAarch64);
-    description = "QtScript bindings generator";
-    homepage = "https://code.qt.io/cgit/qt-labs/qtscriptgenerator.git/";
-    inherit (qt4.meta) platforms;
-    license = lib.licenses.lgpl21;
-  };
-}
diff --git a/pkgs/development/libraries/qtscriptgenerator/qt-4.8.patch b/pkgs/development/libraries/qtscriptgenerator/qt-4.8.patch
deleted file mode 100644
index 8fe643e2c98f8..0000000000000
--- a/pkgs/development/libraries/qtscriptgenerator/qt-4.8.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Origin: http://src.fedoraproject.org/gitweb/?p=qtscriptgenerator.git;a=blob_plain;f=qtscriptgenerator-src-0.1.0-no_QFileOpenEvent.patch;h=f397b5ab13bcfc268e6d7b7ba4c6bc66ae38b5c0;hb=HEAD
-diff -up qtscriptgenerator-src-0.1.0/generator/typesystem_gui-common.xml.no_QFileOpenEvent qtscriptgenerator-src-0.1.0/generator/typesystem_gui-common.xml
---- qtscriptgenerator-src-0.1.0/generator/typesystem_gui-common.xml.no_QFileOpenEvent	2011-12-22 11:34:52.615149619 -0600
-+++ qtscriptgenerator-src-0.1.0/generator/typesystem_gui-common.xml	2011-12-22 11:35:31.808659632 -0600
-@@ -2233,7 +2233,6 @@
-     
-                
-   </object-type>
--  <object-type name="QFileOpenEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FileOpen"/>
-   <object-type name="QFocusEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FocusIn || %1-&gt;type() == QEvent::FocusOut">
-         <modify-function signature="reason()const">
-             <remove/>
-diff -up qtscriptgenerator-src-0.1.0/generator/typesystem_gui.xml.no_QFileOpenEvent qtscriptgenerator-src-0.1.0/generator/typesystem_gui.xml
---- qtscriptgenerator-src-0.1.0/generator/typesystem_gui.xml.no_QFileOpenEvent	2009-02-20 05:42:24.000000000 -0600
-+++ qtscriptgenerator-src-0.1.0/generator/typesystem_gui.xml	2011-12-22 11:33:43.058019203 -0600
-@@ -2555,7 +2555,6 @@
-     
-                
-   </object-type>
--  <object-type name="QFileOpenEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FileOpen"/>
-   <object-type name="QFocusEvent" polymorphic-id-expression="%1-&gt;type() == QEvent::FocusIn || %1-&gt;type() == QEvent::FocusOut">
-         <modify-function signature="reason()const">
-             <remove/>
diff --git a/pkgs/development/libraries/qtscriptgenerator/qtscriptgenerator.gcc-4.4.patch b/pkgs/development/libraries/qtscriptgenerator/qtscriptgenerator.gcc-4.4.patch
deleted file mode 100644
index c0a710efb1579..0000000000000
--- a/pkgs/development/libraries/qtscriptgenerator/qtscriptgenerator.gcc-4.4.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -uNr generator.orig/parser/rpp/pp.h generator/parser/rpp/pp.h
---- qtscriptgenerator-src-0.1.0/generator.orig/parser/rpp/pp.h	2008-12-05 11:01:44.000000000 +0100
-+++ qtscriptgenerator-src-0.1.0/generator/parser/rpp/pp.h	2008-12-13 10:42:22.000000000 +0100
-@@ -30,6 +30,7 @@
- #include <cctype>
- 
- #include <fcntl.h>
-+#include <cstdio>
- 
- #ifdef HAVE_MMAP
- #  include <sys/mman.h>
diff --git a/pkgs/development/libraries/rapidfuzz-cpp/default.nix b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
index 2e1ad8080fa44..0831539dd570b 100644
--- a/pkgs/development/libraries/rapidfuzz-cpp/default.nix
+++ b/pkgs/development/libraries/rapidfuzz-cpp/default.nix
@@ -2,20 +2,24 @@
 , stdenv
 , fetchFromGitHub
 , cmake
-, catch2
+, catch2_3
 }:
 
 stdenv.mkDerivation rec {
   pname = "rapidfuzz-cpp";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "rapidfuzz-cpp";
     rev = "v${version}";
-    hash = "sha256-331iW0nu5MlxuKNTgMkRSASnglxn+hEWBhRMnw0lY2Y=";
+    hash = "sha256-8SJU+ERFRGkbGBmGJa5Ypetc3LPeytg5pR4S29RkvR8=";
   };
 
+  patches = [
+    ./dont-fetch-project-options.patch
+  ];
+
   nativeBuildInputs = [
     cmake
   ];
@@ -25,15 +29,15 @@ stdenv.mkDerivation rec {
   ];
 
   checkInputs = [
-    catch2
+    catch2_3
   ];
 
-  # uses unreleased Catch2 version 3
-  doCheck = false;
+  doCheck = true;
 
   meta = {
     description = "Rapid fuzzy string matching in C++ using the Levenshtein Distance";
     homepage = "https://github.com/maxbachmann/rapidfuzz-cpp";
+    changelog = "https://github.com/maxbachmann/rapidfuzz-cpp/blob/${src.rev}/CHANGELOG.md";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
     platforms = lib.platforms.unix;
diff --git a/pkgs/development/libraries/rapidfuzz-cpp/dont-fetch-project-options.patch b/pkgs/development/libraries/rapidfuzz-cpp/dont-fetch-project-options.patch
new file mode 100644
index 0000000000000..ab88c530d400d
--- /dev/null
+++ b/pkgs/development/libraries/rapidfuzz-cpp/dont-fetch-project-options.patch
@@ -0,0 +1,58 @@
+diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
+index 5ba4464..ad72319 100644
+--- a/test/CMakeLists.txt
++++ b/test/CMakeLists.txt
+@@ -12,39 +12,10 @@ else()
+     FetchContent_MakeAvailable(Catch2)
+ endif()
+ 
+-# include aminya & jason turner's C++ best practices recommended cmake project utilities
+-include(FetchContent)
+-FetchContent_Declare(_project_options URL https://github.com/aminya/project_options/archive/refs/tags/v0.20.0.zip)
+-FetchContent_MakeAvailable(_project_options)
+-include(${_project_options_SOURCE_DIR}/Index.cmake)
+-
+-project_options(
+-        # ENABLE_CACHE
+-        # ENABLE_CONAN
+-        WARNINGS_AS_ERRORS
+-        # ENABLE_CPPCHECK
+-        # ENABLE_CLANG_TIDY
+-        # ENABLE_INCLUDE_WHAT_YOU_USE
+-        # ENABLE_COVERAGE
+-        # ENABLE_PCH
+-        # PCH_HEADERS <Eigen/Dense> <fmt/core.h> <vector> <utility> <string> <string_view>
+-        # ENABLE_DOXYGEN
+-        # ENABLE_IPO
+-        # ENABLE_USER_LINKER
+-        # ENABLE_BUILD_WITH_TIME_TRACE
+-        # ENABLE_UNITY
+-        # ENABLE_SANITIZER_ADDRESS
+-        # ENABLE_SANITIZER_LEAK
+-        # ENABLE_SANITIZER_UNDEFINED_BEHAVIOR
+-        # ENABLE_SANITIZER_THREAD
+-        # ENABLE_SANITIZER_MEMORY
+-        # CLANG_WARNINGS "-Weverything"
+-)
+-
+ function(rapidfuzz_add_test test)
+     add_executable(test_${test} tests-${test}.cpp)
+     target_link_libraries(test_${test} ${PROJECT_NAME})
+-    target_link_libraries(test_${test} Catch2::Catch2WithMain project_warnings)
++    target_link_libraries(test_${test} Catch2::Catch2WithMain)
+     add_test(NAME ${test} COMMAND test_${test})
+ endfunction()
+ 
+diff --git a/test/distance/CMakeLists.txt b/test/distance/CMakeLists.txt
+index 2a70054..7a43c88 100644
+--- a/test/distance/CMakeLists.txt
++++ b/test/distance/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ function(rapidfuzz_add_test test)
+     add_executable(test_${test} tests-${test}.cpp)
+     target_link_libraries(test_${test} ${PROJECT_NAME})
+-    target_link_libraries(test_${test} Catch2::Catch2WithMain project_warnings)
++    target_link_libraries(test_${test} Catch2::Catch2WithMain)
+     add_test(NAME ${test} COMMAND test_${test})
+ endfunction()
+ 
diff --git a/pkgs/development/libraries/rapidjson/default.nix b/pkgs/development/libraries/rapidjson/default.nix
index 1211892890add..49cbc7ab764c3 100644
--- a/pkgs/development/libraries/rapidjson/default.nix
+++ b/pkgs/development/libraries/rapidjson/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, pkg-config, cmake }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, pkg-config
+, cmake
+, gtest
+}:
 
 stdenv.mkDerivation rec {
   pname = "rapidjson";
@@ -16,20 +23,42 @@ stdenv.mkDerivation rec {
       url = "https://src.fedoraproject.org/rpms/rapidjson/raw/48402da9f19d060ffcd40bf2b2e6987212c58b0c/f/rapidjson-1.1.0-c++20.patch";
       sha256 = "1qm62iad1xfsixv1li7qy475xc7gc04hmi2q21qdk6l69gk7mf82";
     })
+    (fetchpatch {
+      url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch";
+      hash = "sha256-BjSZEwfCXA/9V+kxQ/2JPWbc26jQn35CfN8+8NW24s4=";
+    })
   ];
 
+  postPatch = ''
+    find -name CMakeLists.txt | xargs \
+      sed -i -e "s/-Werror//g" -e "s/-march=native//g"
+  '';
+
   nativeBuildInputs = [ pkg-config cmake ];
 
-  preConfigure = ''
-    substituteInPlace CMakeLists.txt --replace "-Werror" ""
-    substituteInPlace example/CMakeLists.txt --replace "-Werror" ""
+  cmakeFlags = [
+    "-DGTEST_SOURCE_DIR=${gtest.dev}/include"
+  ];
+
+  checkInputs = [
+    gtest
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    ctest -E '.*valgrind.*'
+
+    runHook postCheck
   '';
 
+  doCheck = true;
+
   meta = with lib; {
     description = "Fast JSON parser/generator for C++ with both SAX/DOM style API";
     homepage = "http://rapidjson.org/";
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ cstrahan ];
+    maintainers = with maintainers; [ cstrahan dotlambda ];
   };
 }
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index 1e9bac5efed29..731b5588f887c 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -107,6 +107,7 @@ stdenv.mkDerivation {
     broken = !(elem cudaVersion supportedCudaVersions);
     description = "NVIDIA CUDA Deep Neural Network library (cuDNN)";
     homepage = "https://developer.nvidia.com/cudnn";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     # TODO: consider marking unfreRedistributable when not using runfile
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/science/math/cutensor/generic.nix b/pkgs/development/libraries/science/math/cutensor/generic.nix
index e7c5e0b298c07..e4cbf0ab7bf72 100644
--- a/pkgs/development/libraries/science/math/cutensor/generic.nix
+++ b/pkgs/development/libraries/science/math/cutensor/generic.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "cuTENSOR: A High-Performance CUDA Library For Tensor Primitives";
     homepage = "https://developer.nvidia.com/cutensor";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ obsidian-systems-maintenance ];
diff --git a/pkgs/development/libraries/science/math/m4rie/default.nix b/pkgs/development/libraries/science/math/m4rie/default.nix
index 38a633e58c712..2a46e22b60d26 100644
--- a/pkgs/development/libraries/science/math/m4rie/default.nix
+++ b/pkgs/development/libraries/science/math/m4rie/default.nix
@@ -5,14 +5,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "20200115";
+  version = "20200125";
   pname = "m4rie";
 
   src = fetchFromBitbucket {
     owner = "malb";
     repo = "m4rie";
     rev = "release-${version}";
-    sha256 = "0s8if80x5d6mikbcfsbbxg347136spahp9f3x8i1hflbwl8xj9k8";
+    sha256 = "sha256-bjAcxfXsC6+jPYC472CN78jm4UljJQlkWyvsqckCDh0=";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/science/math/mkl/default.nix b/pkgs/development/libraries/science/math/mkl/default.nix
index 1f60f4d953882..dc68abe38c36e 100644
--- a/pkgs/development/libraries/science/math/mkl/default.nix
+++ b/pkgs/development/libraries/science/math/mkl/default.nix
@@ -189,6 +189,7 @@ in stdenvNoCC.mkDerivation ({
       threading models.
     '';
     homepage = "https://software.intel.com/en-us/mkl";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.issl;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/libraries/science/math/tensorflow/bin.nix b/pkgs/development/libraries/science/math/tensorflow/bin.nix
index e084fce9e9ecd..1b769f44eeb1a 100644
--- a/pkgs/development/libraries/science/math/tensorflow/bin.nix
+++ b/pkgs/development/libraries/science/math/tensorflow/bin.nix
@@ -68,6 +68,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "C API for TensorFlow";
     homepage = "https://www.tensorflow.org/install/lang_c";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
   };
diff --git a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
index adf8bdd54b721..5e02398d1b4ec 100644
--- a/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
+++ b/pkgs/development/libraries/science/robotics/edgetpu-compiler/default.nix
@@ -51,6 +51,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A command line tool that compiles a TensorFlow Lite model into an Edge TPU compatible file.";
     homepage = "https://coral.ai/docs/edgetpu/compiler";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ cpcloud ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/libraries/scmccid/default.nix b/pkgs/development/libraries/scmccid/default.nix
index f6b9194a608ca..daa861b31ea7c 100644
--- a/pkgs/development/libraries/scmccid/default.nix
+++ b/pkgs/development/libraries/scmccid/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.scmmicro.com/support/pc-security-support/downloads.html";
     description = "PCSC drivers for linux, for the SCM SCR3310 v2.0 card and others";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
diff --git a/pkgs/development/libraries/smpeg/default.nix b/pkgs/development/libraries/smpeg/default.nix
index 8e50945ee9962..8b54cb37a32c2 100644
--- a/pkgs/development/libraries/smpeg/default.nix
+++ b/pkgs/development/libraries/smpeg/default.nix
@@ -1,13 +1,14 @@
-{ lib, stdenv, fetchsvn, SDL, autoconf, automake, libtool, gtk2, m4, pkg-config, libGLU, libGL, makeWrapper }:
+{ lib, stdenv, fetchFromGitHub, SDL, autoconf, automake, libtool, gtk2, m4, pkg-config, libGLU, libGL, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  pname = "smpeg-svn";
-  version = "390";
-
-  src = fetchsvn {
-    url = "svn://svn.icculus.org/smpeg/trunk";
-    rev = version;
-    sha256 = "0ynwn7ih5l2b1kpzpibns9bb9wzfjak7mgrb1ji0dkn2q5pv6lr0";
+  pname = "smpeg";
+  version = "0.4.5";
+
+  src = fetchFromGitHub {
+    owner = "icculus";
+    repo = "smpeg";
+    rev = "release_${builtins.replaceStrings ["."] ["_"] version}";
+    sha256 = "sha256-nq/i7cFGpJXIuTwN/ScLMX7FN8NMdgdsRM9xOD3uycs=";
   };
 
   patches = [
@@ -19,10 +20,10 @@ stdenv.mkDerivation rec {
 
   enableParallelBuilding = true;
 
-  buildInputs = [ SDL gtk2 libGLU libGL ];
-
   nativeBuildInputs = [ autoconf automake libtool m4 pkg-config makeWrapper ];
 
+  buildInputs = [ SDL gtk2 libGLU libGL ];
+
   preConfigure = ''
     touch NEWS AUTHORS ChangeLog
     sh autogen.sh
diff --git a/pkgs/development/libraries/smpeg2/default.nix b/pkgs/development/libraries/smpeg2/default.nix
index d57cc91f26e28..48281ba04ec16 100644
--- a/pkgs/development/libraries/smpeg2/default.nix
+++ b/pkgs/development/libraries/smpeg2/default.nix
@@ -2,7 +2,7 @@
 , autoconf
 , automake
 , darwin
-, fetchsvn
+, fetchFromGitHub
 , makeWrapper
 , pkg-config
 , SDL2
@@ -10,18 +10,15 @@
 
 stdenv.mkDerivation rec {
   pname = "smpeg2";
-  version = "unstable-2017-10-18";
+  version = "unstable-2022-05-26";
 
-  src = fetchsvn {
-    url = "svn://svn.icculus.org/smpeg/trunk";
-    rev = "413";
-    sha256 = "193amdwgxkb1zp7pgr72fvrdhcg3ly72qpixfxxm85rzz8g2kr77";
+  src = fetchFromGitHub {
+    owner = "icculus";
+    repo = "smpeg";
+    rev = "c5793e5f3f2765fc09c24380d7e92136a0e33d3b";
+    sha256 = "sha256-Z0u83K1GIXd0jUYo5ZyWUH2Zt7Hn8z+yr06DAtAEukw=";
   };
 
-  patches = [
-    ./hufftable-uint_max.patch
-  ];
-
   nativeBuildInputs = [ autoconf automake makeWrapper pkg-config ];
 
   buildInputs = [ SDL2 ]
diff --git a/pkgs/development/libraries/smpeg2/hufftable-uint_max.patch b/pkgs/development/libraries/smpeg2/hufftable-uint_max.patch
deleted file mode 100644
index 165feb4428c24..0000000000000
--- a/pkgs/development/libraries/smpeg2/hufftable-uint_max.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/audio/hufftable.cpp
-+++ b/audio/hufftable.cpp
-@@ -9,6 +9,7 @@
- #include "config.h"
- #endif
- 
-+#include <climits>
- #include "MPEGaudio.h"
- 
- static const unsigned int
-@@ -550,11 +551,11 @@ htd33[ 31][2]={{ 16,  1},{  8,  1},{  4,
- 
- const HUFFMANCODETABLE MPEGaudio::ht[HTN]=
- {
--  { 0, 0-1, 0-1, 0,  0, htd33},
-+  { 0, UINT_MAX, UINT_MAX, 0,  0, htd33},
-   { 1, 2-1, 2-1, 0,  7,htd01},
-   { 2, 3-1, 3-1, 0, 17,htd02},
-   { 3, 3-1, 3-1, 0, 17,htd03},
--  { 4, 0-1, 0-1, 0,  0, htd33},
-+  { 4, UINT_MAX, UINT_MAX, 0,  0, htd33},
-   { 5, 4-1, 4-1, 0, 31,htd05},
-   { 6, 4-1, 4-1, 0, 31,htd06},
-   { 7, 6-1, 6-1, 0, 71,htd07},
-@@ -564,7 +565,7 @@ const HUFFMANCODETABLE MPEGaudio::ht[HTN
-   {11, 8-1, 8-1, 0,127,htd11},
-   {12, 8-1, 8-1, 0,127,htd12},
-   {13,16-1,16-1, 0,511,htd13},
--  {14, 0-1, 0-1, 0,  0, htd33},
-+  {14, UINT_MAX, UINT_MAX, 0,  0, htd33},
-   {15,16-1,16-1, 0,511,htd15},
-   {16,16-1,16-1, 1,511,htd16},
-   {17,16-1,16-1, 2,511,htd16},
diff --git a/pkgs/development/libraries/sokol/default.nix b/pkgs/development/libraries/sokol/default.nix
new file mode 100644
index 0000000000000..daf1509e58527
--- /dev/null
+++ b/pkgs/development/libraries/sokol/default.nix
@@ -0,0 +1,35 @@
+{ lib, stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  pname = "sokol";
+  version = "unstable-2022-06-13";
+
+  src = fetchFromGitHub {
+    owner = "floooh";
+    repo = "sokol";
+    rev = "3c7016105f3b7463f0cfc74df8a55642e5448c11";
+    sha256 = "sha256-dKHb6GTp5aJPuWWXI4ZYnhgdXs23gGWyPymGPGwxcLY=";
+  };
+
+  dontBuild = true;
+  dontConfigure = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/include/sokol
+    cp *.h $out/include/sokol/
+    cp -R util $out/include/sokol/util
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Minimal cross-platform standalone C headers";
+    homepage = "https://github.com/floooh/sokol";
+    license = licenses.zlib;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ jonnybolton ];
+  };
+}
+
diff --git a/pkgs/development/libraries/taskflow/default.nix b/pkgs/development/libraries/taskflow/default.nix
index 29760cdb94bd2..dd2f8fb391448 100644
--- a/pkgs/development/libraries/taskflow/default.nix
+++ b/pkgs/development/libraries/taskflow/default.nix
@@ -8,13 +8,13 @@
 
 stdenv.mkDerivation rec {
   pname = "taskflow";
-  version = "3.3.0";
+  version = "3.4.0";
 
   src = fetchFromGitHub {
     owner = "taskflow";
     repo = "taskflow";
     rev = "v${version}";
-    hash = "sha256-UfXGupxgtowIt3BnIVWwim3rTE57TT1C9TCx9LVyN34=";
+    hash = "sha256-5bTTV/WAxslHQ+hvATtUUA1h3MuNzwVTlYMbD/sINRM=";
   };
 
   patches = [
diff --git a/pkgs/development/libraries/thrift/default.nix b/pkgs/development/libraries/thrift/default.nix
index f85e56578bbe8..f54288b5a3faa 100644
--- a/pkgs/development/libraries/thrift/default.nix
+++ b/pkgs/development/libraries/thrift/default.nix
@@ -1,5 +1,15 @@
-{ lib, stdenv, fetchurl, boost, zlib, libevent, openssl, python3, cmake, pkg-config
-, bison, flex
+{ lib
+, stdenv
+, fetchurl
+, boost
+, zlib
+, libevent
+, openssl
+, python3
+, cmake
+, pkg-config
+, bison
+, flex
 , static ? stdenv.hostPlatform.isStatic
 }:
 
@@ -12,15 +22,39 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-9GC1wcow2JGP+V6j62KRs5Uc9RhVNWYIjz8r6JgfYgk=";
   };
 
-  # Workaround to make the python wrapper not drop this package:
+  # Workaround to make the Python wrapper not drop this package:
   # pythonFull.buildEnv.override { extraLibs = [ thrift ]; }
   pythonPath = [];
 
-  nativeBuildInputs = [ cmake pkg-config bison flex ];
-  buildInputs = [ boost zlib libevent openssl ]
-    ++ lib.optionals (!static) [ (python3.withPackages (ps: [ps.twisted])) ];
+  nativeBuildInputs = [
+    bison
+    cmake
+    flex
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    libevent
+    openssl
+    zlib
+  ] ++ lib.optionals (!static) [
+    (python3.withPackages (ps: [ps.twisted]))
+  ];
+
+  postPatch = ''
+    # Python 3.10 related failures:
+    # SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
+    # AttributeError: module 'collections' has no attribute 'Hashable'
+    substituteInPlace test/py/RunClientServer.py \
+      --replace "'FastbinaryTest.py'," "" \
+      --replace "'TestEof.py'," "" \
+      --replace "'TestFrozen.py'," ""
+  '';
 
-  preConfigure = "export PY_PREFIX=$out";
+  preConfigure = ''
+    export PY_PREFIX=$out
+  '';
 
   patches = [
     # ToStringTest.cpp is failing from some reason due to locale issue, this
@@ -43,12 +77,12 @@ stdenv.mkDerivation rec {
   disabledTests = [
     "PythonTestSSLSocket"
   ] ++ lib.optionals stdenv.isDarwin [
-    # tests that hang up in the darwin sandbox
+    # Tests that hang up in the Darwin sandbox
     "SecurityTest"
     "SecurityFromBufferTest"
     "python_test"
 
-    # tests that fail in the darwin sandbox when trying to use network
+    # Tests that fail in the Darwin sandbox when trying to use network
     "UnitTests"
     "TInterruptTest"
     "TServerIntegrationTest"
@@ -62,6 +96,7 @@ stdenv.mkDerivation rec {
   ];
 
   doCheck = !static;
+
   checkPhase = ''
     runHook preCheck
 
@@ -69,6 +104,7 @@ stdenv.mkDerivation rec {
 
     runHook postCheck
   '';
+
   enableParallelChecking = false;
 
   meta = with lib; {
@@ -76,6 +112,6 @@ stdenv.mkDerivation rec {
     homepage = "https://thrift.apache.org/";
     license = licenses.asl20;
     platforms = platforms.linux ++ platforms.darwin;
-    maintainers = [ maintainers.bjornfor ];
+    maintainers = with maintainers; [ bjornfor ];
   };
 }
diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix
index 5cb3dc73daa8d..8489655dcb631 100644
--- a/pkgs/development/libraries/tracker/default.nix
+++ b/pkgs/development/libraries/tracker/default.nix
@@ -29,13 +29,13 @@
 
 stdenv.mkDerivation rec {
   pname = "tracker";
-  version = "3.3.0";
+  version = "3.3.1";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Bwb5b+f5XfQqzsgSwd57RZOg1kgyHKg1BqnXHiJBe9o=";
+    sha256 = "Wtb1vJd4Hr9V7NaUfNSuf/QZJRZYDRC9g4Dx3UcZbtI=";
   };
 
   nativeBuildInputs = [
@@ -79,11 +79,7 @@ stdenv.mkDerivation rec {
   doCheck = true;
 
   postPatch = ''
-    patchShebangs utils/g-ir-merge/g-ir-merge
     patchShebangs utils/data-generators/cc/generate
-    patchShebangs tests/functional-tests/test-runner.sh.in
-    patchShebangs tests/functional-tests/*.py
-    patchShebangs examples/python/endpoint.py
   '';
 
   preCheck = ''
diff --git a/pkgs/development/libraries/unicorn/default.nix b/pkgs/development/libraries/unicorn/default.nix
index 30ceba76163eb..e558bbbbb5426 100644
--- a/pkgs/development/libraries/unicorn/default.nix
+++ b/pkgs/development/libraries/unicorn/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
 , pkg-config
 , cmake
@@ -7,17 +8,23 @@
 
 stdenv.mkDerivation rec {
   pname = "unicorn";
-  version = "2.0.0-rc5";
+  version = "2.0.0-rc7";
 
   src = fetchFromGitHub {
     owner = "unicorn-engine";
     repo = pname;
     rev = version;
-    sha256 = "1q9k8swnq4qsi54zdfaap69z56w3yj4n4ggm9pscmmmr69nply5f";
+    hash = "sha256-qlxtFCJBmouPuUEu8RduZM+rbOr52sGjdb8ZRHWmJ/w=";
   };
 
-  nativeBuildInputs = [ pkg-config cmake ];
-  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    IOKit
+  ];
 
   meta = with lib; {
     description = "Lightweight multi-platform CPU emulator library";
diff --git a/pkgs/development/libraries/unixODBCDrivers/default.nix b/pkgs/development/libraries/unixODBCDrivers/default.nix
index 0f702b2282449..1e5149683d4cc 100644
--- a/pkgs/development/libraries/unixODBCDrivers/default.nix
+++ b/pkgs/development/libraries/unixODBCDrivers/default.nix
@@ -173,6 +173,7 @@
       broken = stdenv.isDarwin;
       description = "ODBC Driver 17 for SQL Server";
       homepage = "https://docs.microsoft.com/en-us/sql/connect/odbc/linux-mac/installing-the-microsoft-odbc-driver-for-sql-server?view=sql-server-2017";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = platforms.linux;
       maintainers = with maintainers; [ spencerjanssen ];
@@ -217,6 +218,7 @@
       broken = stdenv.isDarwin;
       description = "Amazon Redshift ODBC driver";
       homepage = "https://docs.aws.amazon.com/redshift/latest/mgmt/configure-odbc-connection.html";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = platforms.linux;
       maintainers = with maintainers; [ sir4ur0n ];
diff --git a/pkgs/development/libraries/v8/8_x.nix b/pkgs/development/libraries/v8/8_x.nix
index 5d95a0716eff3..b5184bafcbff9 100644
--- a/pkgs/development/libraries/v8/8_x.nix
+++ b/pkgs/development/libraries/v8/8_x.nix
@@ -1,5 +1,5 @@
 { stdenv, lib, fetchgit, fetchFromGitHub
-, gn, ninja, python3, glib, pkg-config, icu
+, gn, ninja, python39, glib, pkg-config, icu
 , xcbuild, darwin
 , fetchpatch
 }:
@@ -132,11 +132,11 @@ stdenv.mkDerivation rec {
     myGn
     ninja
     pkg-config
-    python3
+    python39
   ] ++ lib.optionals stdenv.isDarwin [
     xcbuild
     darwin.DarwinTools
-    python3.pkgs.setuptools
+    python39.pkgs.setuptools
   ];
   buildInputs = [ glib icu ];
 
@@ -148,6 +148,7 @@ stdenv.mkDerivation rec {
     install -D d8 $out/bin/d8
     install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
     install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
+    ln -s libv8.a $out/lib/libv8_monolith.a
     cp -r ../../include $out
 
     mkdir -p $out/lib/pkgconfig
diff --git a/pkgs/development/libraries/v8/default.nix b/pkgs/development/libraries/v8/default.nix
index 2b56d2e5dcf8e..cf9d597edc21c 100644
--- a/pkgs/development/libraries/v8/default.nix
+++ b/pkgs/development/libraries/v8/default.nix
@@ -148,6 +148,7 @@ stdenv.mkDerivation rec {
     install -D d8 $out/bin/d8
     install -D -m644 obj/libv8_monolith.a $out/lib/libv8.a
     install -D -m644 icudtl.dat $out/share/v8/icudtl.dat
+    ln -s libv8.a $out/lib/libv8_monolith.a
     cp -r ../../include $out
 
     mkdir -p $out/lib/pkgconfig
diff --git a/pkgs/development/libraries/wtk/default.nix b/pkgs/development/libraries/wtk/default.nix
index 94dea0edae1d6..da856226d4e95 100644
--- a/pkgs/development/libraries/wtk/default.nix
+++ b/pkgs/development/libraries/wtk/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://java.sun.com/products/sjwtoolkit/download.html";
     description = "Sun Java Wireless Toolkit 2.5.2_01 for CLDC";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
   };
 }
diff --git a/pkgs/development/libraries/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix
index 05a4655b800f7..a8c97bb5b49b9 100644
--- a/pkgs/development/libraries/wxSVG/default.nix
+++ b/pkgs/development/libraries/wxSVG/default.nix
@@ -7,6 +7,8 @@
 , pango
 , pkg-config
 , wxGTK
+# darwin deps
+, Cocoa
 }:
 
 stdenv.mkDerivation rec {
@@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
     libexif
     pango
     wxGTK
-  ];
+  ] ++ lib.optional stdenv.isDarwin Cocoa;
 
   meta = with lib; {
     homepage = "http://wxsvg.sourceforge.net/";
@@ -37,9 +39,8 @@ stdenv.mkDerivation rec {
       wxSVG is C++ library to create, manipulate and render Scalable Vector
       Graphics (SVG) files with the wxWidgets toolkit.
     '';
-    license = with licenses; gpl2Plus;
-    maintainers = with maintainers; [ AndersonTorres ];
-    platforms = wxGTK.meta.platforms;
-    broken = stdenv.isDarwin;
+    license = licenses.gpl2Plus;
+    maintainers = [ maintainers.AndersonTorres ];
+    inherit (wxGTK.meta) platforms;
   };
 }
diff --git a/pkgs/development/libraries/wxsqliteplus/default.nix b/pkgs/development/libraries/wxsqliteplus/default.nix
index 7cf5484bef77d..fecd61bb6e51c 100644
--- a/pkgs/development/libraries/wxsqliteplus/default.nix
+++ b/pkgs/development/libraries/wxsqliteplus/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, wxGTK, wxsqlite3, sqlite }:
+{ lib, stdenv, fetchFromGitHub, wxGTK, wxsqlite3, sqlite, Cocoa, setfile }:
 
 stdenv.mkDerivation rec {
   pname = "wxsqliteplus";
@@ -11,27 +11,32 @@ stdenv.mkDerivation rec {
     sha256 = "0mgfq813pli56mar7pdxlhwjf5k10j196rs3jd0nc8b6dkzkzlnf";
   };
 
-  buildInputs = [ wxGTK wxsqlite3 sqlite ];
+  buildInputs = [ wxGTK wxsqlite3 sqlite ] ++ lib.optional stdenv.isDarwin Cocoa;
 
   makeFlags = [
     "LDFLAGS=-L${wxsqlite3}/lib"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "SETFILE=${setfile}/bin/SetFile"
   ];
 
   preBuild = ''
     sed -ie 's|all: $(LIBPREFIX)wxsqlite$(LIBEXT)|all: |g' Makefile
     sed -ie 's|wxsqliteplus$(EXEEXT): $(WXSQLITEPLUS_OBJECTS) $(LIBPREFIX)wxsqlite$(LIBEXT)|wxsqliteplus$(EXEEXT):  $(WXSQLITEPLUS_OBJECTS) |g' Makefile
-    sed -ie 's|-lwxsqlite |-lwxcode_gtk2u_wxsqlite3-3.0 |g' Makefile
+    sed -ie 's|-lwxsqlite |-lwxcode_${if stdenv.isDarwin then "osx_cocoau_wxsqlite3-3.0.0" else "gtk2u_wxsqlite3-3.0"} |g' Makefile
   '';
 
   installPhase = ''
-    install -D wxsqliteplus $out/bin/wxsqliteplus
+    install -D ${lib.optionalString stdenv.isDarwin "wxsqliteplus.app/Contents/MacOS/"}wxsqliteplus $out/bin/wxsqliteplus
+  '' + lib.optionalString stdenv.isDarwin ''
+    mkdir -p $out/Applications
+    mv wxsqliteplus.app $out/Applications/
   '';
 
   meta = with lib; {
-    homepage = "https://github.com/guanlisheng/wxsqliteplus";
     description = "A simple SQLite database browser built with wxWidgets";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ vrthra ];
+    homepage = "https://github.com/guanlisheng/wxsqliteplus";
     license = licenses.gpl2;
+    maintainers = [ maintainers.vrthra ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/wxwidgets/wxGTK30.nix b/pkgs/development/libraries/wxwidgets/wxGTK30.nix
index 6157786a5d041..82005a12dd2fc 100644
--- a/pkgs/development/libraries/wxwidgets/wxGTK30.nix
+++ b/pkgs/development/libraries/wxwidgets/wxGTK30.nix
@@ -18,6 +18,7 @@
 , withGtk2 ? true
 , withWebKit ? false, webkitgtk
 , AGL
+, AVFoundation
 , Carbon
 , Cocoa
 , Kernel
@@ -57,6 +58,7 @@ stdenv.mkDerivation rec {
   ++ lib.optional withMesa libGLU
   ++ lib.optional withWebKit webkitgtk
   ++ lib.optionals stdenv.isDarwin [
+    AVFoundation
     Carbon
     Cocoa
     Kernel
@@ -130,7 +132,6 @@ stdenv.mkDerivation rec {
     license = licenses.wxWindows;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux ++ platforms.darwin;
-    badPlatforms = [ "x86_64-darwin" ];
   };
 
   passthru = {
diff --git a/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
index a8450b414e542..5ccd9d6fa49e1 100644
--- a/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
+++ b/pkgs/development/libraries/xdg-desktop-portal-wlr/default.nix
@@ -1,20 +1,35 @@
-{ lib, stdenv, fetchFromGitHub, makeWrapper
-, meson, ninja, pkg-config, wayland-protocols
-, pipewire, wayland, systemd, libdrm, inih, scdoc, grim, slurp }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, meson
+, ninja
+, pkg-config
+, wayland-protocols
+, grim
+, inih
+, libdrm
+, mesa
+, pipewire
+, scdoc
+, slurp
+, systemd
+, wayland
+}:
 
 stdenv.mkDerivation rec {
   pname = "xdg-desktop-portal-wlr";
-  version = "0.5.0";
+  version = "0.6.0";
 
   src = fetchFromGitHub {
     owner = "emersion";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-weePlNcLmZ3R0IDQ95p0wQvsKTYp+sVlTENJtF8Z78Y=";
+    sha256 = "sha256-UztkfvMIbslPd/d262NZFb6WfESc9nBsSSH96BA4Aqw=";
   };
 
   nativeBuildInputs = [ meson ninja pkg-config wayland-protocols makeWrapper ];
-  buildInputs = [ pipewire wayland systemd libdrm inih scdoc ];
+  buildInputs = [ inih libdrm mesa pipewire scdoc systemd wayland ];
 
   mesonFlags = [
     "-Dsd-bus-provider=libsystemd"
diff --git a/pkgs/development/libraries/xxHash/default.nix b/pkgs/development/libraries/xxHash/default.nix
index f4fa061128148..d5a8df6f437e6 100644
--- a/pkgs/development/libraries/xxHash/default.nix
+++ b/pkgs/development/libraries/xxHash/default.nix
@@ -1,4 +1,9 @@
-{ lib, stdenv, fetchFromGitHub }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+, fetchpatch
+}:
 
 stdenv.mkDerivation rec {
   pname = "xxHash";
@@ -11,21 +16,35 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-2WoYCO6QRHWrbGP2mK04/sLNTyQLOuL3urVktilAwMA=";
   };
 
-  # Upstream Makefile does not anticipate that user may not want to
-  # build .so library.
-  postPatch = lib.optionalString stdenv.hostPlatform.isStatic ''
-    sed -i 's/lib: libxxhash.a libxxhash/lib: libxxhash.a/' Makefile
-    sed -i '/LIBXXH) $(DESTDIR/ d' Makefile
-  '';
+  # CMake build fixes
+  patches = [
+    # Merged in https://github.com/Cyan4973/xxHash/pull/649
+    # Should be present in next release
+    (fetchpatch {
+      name = "cmake-install-fix";
+      url = "https://github.com/Cyan4973/xxHash/commit/636f966ecc713c84ddd3b7ccfde2bfb2cc7492a0.patch";
+      sha256 = "sha256-B1PZ/0BXlOrSiPvgCPLvI/sjQvnR0n5PQHOO38LOij0=";
+    })
 
-  outputs = [ "out" "dev" ];
+    # Submitted at https://github.com/Cyan4973/xxHash/pull/723
+    (fetchpatch {
+      name = "cmake-pkgconfig-fix";
+      url = "https://github.com/Cyan4973/xxHash/commit/5db353bbd05ee5eb1f90afc08d10da9416154e55.patch";
+      sha256 = "sha256-dElgSu9DVo2hY6TTVHLTtt0zkXmQV3nc9i/KbrDkK8s=";
+    })
+  ];
 
-  makeFlags = [ "PREFIX=$(dev)" "EXEC_PREFIX=$(out)" ];
 
-  # pkgs/build-support/setup-hooks/compress-man-pages.sh hook fails
-  # to compress symlinked manpages. Avoid compressing manpages until
-  # it's fixed.
-  dontGzipMan = true;
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  # Using unofficial CMake build script to install CMake module files.
+  cmakeDir = "../cmake_unofficial";
+
+  cmakeFlags = [
+    "-DBUILD_SHARED_LIBS=${if stdenv.hostPlatform.isStatic then "OFF" else "ON"}"
+  ];
 
   meta = with lib; {
     description = "Extremely fast hash algorithm";
@@ -39,6 +58,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/Cyan4973/xxHash";
     license = with licenses; [ bsd2 gpl2 ];
     maintainers = with maintainers; [ orivej ];
-    platforms = platforms.unix;
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/libraries/zimlib/default.nix b/pkgs/development/libraries/zimlib/default.nix
index 9f8e357d3ab0f..56438f8e17354 100644
--- a/pkgs/development/libraries/zimlib/default.nix
+++ b/pkgs/development/libraries/zimlib/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub
+{ lib, stdenv, fetchFromGitHub, fetchzip
 , meson, ninja, pkg-config
 , python3
 , icu
@@ -11,13 +11,19 @@
 
 stdenv.mkDerivation rec {
   pname = "zimlib";
-  version = "6.3.2";
+  version = "7.2.2";
 
   src = fetchFromGitHub {
     owner = "openzim";
     repo = "libzim";
     rev = version;
-    sha256 = "sha256-xlYu74akK9WFy86hcQe7zp11TImwl8llgDIZBRgmbAI=";
+    sha256 = "sha256-AEhhjinnnMA4NbYL7NVHYeRZX/zfNiidbY/VeFjZuQs=";
+  };
+
+  testData = fetchzip rec {
+    passthru.version = "0.4";
+    url = "https://github.com/openzim/zim-testing-suite/releases/download/v${passthru.version}/zim-testing-suite-${passthru.version}.tar.gz";
+    sha256 = "sha256-2eJqmvs/GrvOD/pq8dTubaiO9ZpW2WqTNQByv354Z0w=";
   };
 
   nativeBuildInputs = [
@@ -39,6 +45,8 @@ stdenv.mkDerivation rec {
     patchShebangs scripts
   '';
 
+  mesonFlags = [  "-Dtest_data_dir=${testData}" ];
+
   checkInputs = [
     gtest
   ];
diff --git a/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch b/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch
new file mode 100644
index 0000000000000..85a6a7e3ab413
--- /dev/null
+++ b/pkgs/development/libraries/zlib/comprehensive-crc-validation-for-wrong-implementations.patch
@@ -0,0 +1,51 @@
+From ec3df00224d4b396e2ac6586ab5d25f673caa4c2 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Wed, 30 Mar 2022 11:14:53 -0700
+Subject: [PATCH] Correct incorrect inputs provided to the CRC functions.
+
+The previous releases of zlib were not sensitive to incorrect CRC
+inputs with bits set above the low 32. This commit restores that
+behavior, so that applications with such bugs will continue to
+operate as before.
+---
+ crc32.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/crc32.c b/crc32.c
+index a1bdce5c2..451887bc7 100644
+--- a/crc32.c
++++ b/crc32.c
+@@ -630,7 +630,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
+ #endif /* DYNAMIC_CRC_TABLE */
+ 
+     /* Pre-condition the CRC */
+-    crc ^= 0xffffffff;
++    crc = (~crc) & 0xffffffff;
+ 
+     /* Compute the CRC up to a word boundary. */
+     while (len && ((z_size_t)buf & 7) != 0) {
+@@ -749,7 +749,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
+ #endif /* DYNAMIC_CRC_TABLE */
+ 
+     /* Pre-condition the CRC */
+-    crc ^= 0xffffffff;
++    crc = (~crc) & 0xffffffff;
+ 
+ #ifdef W
+ 
+@@ -1077,7 +1077,7 @@ uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
+ #ifdef DYNAMIC_CRC_TABLE
+     once(&made, make_crc_table);
+ #endif /* DYNAMIC_CRC_TABLE */
+-    return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;
++    return multmodp(x2nmodp(len2, 3), crc1) ^ (crc2 & 0xffffffff);
+ }
+ 
+ /* ========================================================================= */
+@@ -1112,5 +1112,5 @@ uLong crc32_combine_op(crc1, crc2, op)
+     uLong crc2;
+     uLong op;
+ {
+-    return multmodp(op, crc1) ^ crc2;
++    return multmodp(op, crc1) ^ (crc2 & 0xffffffff);
+ }
diff --git a/pkgs/development/libraries/zlib/default.nix b/pkgs/development/libraries/zlib/default.nix
index 6681be3c34c03..1527be44f7a79 100644
--- a/pkgs/development/libraries/zlib/default.nix
+++ b/pkgs/development/libraries/zlib/default.nix
@@ -42,6 +42,12 @@ stdenv.mkDerivation (rec {
 
   patches = [
     ./fix-configure-issue-cross.patch
+    # Starting zlib 1.2.12, zlib is stricter to incorrect CRC inputs
+    # with bits set above the low 32.
+    # see https://github.com/madler/zlib/issues/618
+    # TODO: remove the patch if upstream releases https://github.com/madler/zlib/commit/ec3df00224d4b396e2ac6586ab5d25f673caa4c2
+    # see https://github.com/NixOS/nixpkgs/issues/170539 for history.
+    ./comprehensive-crc-validation-for-wrong-implementations.patch
   ];
 
   strictDeps = true;
diff --git a/pkgs/development/lua-modules/generated-packages.nix b/pkgs/development/lua-modules/generated-packages.nix
index f38b16e1a9732..22570d3fbb4bb 100644
--- a/pkgs/development/lua-modules/generated-packages.nix
+++ b/pkgs/development/lua-modules/generated-packages.nix
@@ -2546,6 +2546,38 @@ buildLuarocksPackage {
   };
 }) {};
 
+sqlite = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
+, fetchgit, luv
+}:
+buildLuarocksPackage {
+  pname = "sqlite";
+  version = "v1.2.2-0";
+  knownRockspec = (fetchurl {
+    url    = "mirror://luarocks/sqlite-v1.2.2-0.rockspec";
+    sha256 = "0jxsl9lpxsbzc6s5bwmh27mglkqz1299lz68vfxayvailwl3xbxm";
+  }).outPath;
+  src = fetchgit ( removeAttrs (builtins.fromJSON ''{
+  "url": "https://github.com/tami5/sqlite.lua.git",
+  "rev": "6c00ab414dc1b69621b145908c582b747f24b46e",
+  "date": "2022-06-17T15:57:13+03:00",
+  "path": "/nix/store/637s46bsvsxfnzmy6ygig3y0vqmf3r8p-sqlite.lua",
+  "sha256": "0ckifx6xxrannn9szacgiiqjsp4rswghxscdl3s411dhas8djj1m",
+  "fetchLFS": false,
+  "fetchSubmodules": true,
+  "deepClone": false,
+  "leaveDotGit": false
+}
+ '') ["date" "path"]) ;
+
+  propagatedBuildInputs = [ luv ];
+
+  meta = {
+    homepage = "https://github.com/tami5/sqlite.lua";
+    description = "SQLite/LuaJIT binding and a highly opinionated wrapper for storing, retrieving, caching, and persisting [SQLite] databases";
+    license.fullName = "MIT";
+  };
+}) {};
+
 std-_debug = callPackage({ buildLuarocksPackage, luaOlder, luaAtLeast
 , fetchgit, lua
 }:
diff --git a/pkgs/development/lua-modules/overrides.nix b/pkgs/development/lua-modules/overrides.nix
index 1fe4cd3574f1a..60fcf2ca1ca59 100644
--- a/pkgs/development/lua-modules/overrides.nix
+++ b/pkgs/development/lua-modules/overrides.nix
@@ -15,7 +15,7 @@ with prev;
   });
 
   busted = prev.busted.overrideAttrs(oa: {
-    nativeBuildInputs = [
+    nativeBuildInputs = oa.nativeBuildInputs ++ [
       pkgs.installShellFiles
     ];
     postConfigure = ''
@@ -30,9 +30,6 @@ with prev;
   });
 
   cqueues = (prev.lib.overrideLuarocks prev.cqueues (drv: {
-    nativeBuildInputs = [
-      pkgs.gnum4
-    ];
     externalDeps = [
       { name = "CRYPTO"; dep = pkgs.openssl; }
       { name = "OPENSSL"; dep = pkgs.openssl; }
@@ -46,6 +43,11 @@ with prev;
       date = head rel;
       rev = last (splitString "-" (last rel));
     in "${date}-${rev}";
+
+    nativeBuildInputs = oa.nativeBuildInputs ++ [
+      pkgs.gnum4
+    ];
+
     # Upstream rockspec is pointlessly broken into separate rockspecs, per Lua
     # version, which doesn't work well for us, so modify it
     postConfigure = let inherit (prev.cqueues) pname; in ''
@@ -111,8 +113,8 @@ with prev;
     propagatedBuildInputs = with pkgs.lib; optional (!isLuaJIT) luaffi;
   });
 
-  lgi = prev.lib.overrideLuarocks prev.lgi (drv: {
-    nativeBuildInputs = [
+  lgi = prev.lgi.overrideAttrs (oa: {
+    nativeBuildInputs = oa.nativeBuildInputs ++ [
       pkgs.pkg-config
     ];
     buildInputs = [
@@ -415,6 +417,23 @@ with prev;
     '';
   });
 
+  sqlite = prev.lib.overrideLuarocks  prev.sqlite (drv: {
+
+    doCheck = true;
+    checkInputs = [ final.plenary-nvim pkgs.neovim-unwrapped ];
+
+    # we override 'luarocks test' because otherwise neovim doesn't find/load the plenary plugin
+    checkPhase = ''
+      export LIBSQLITE="${pkgs.sqlite.out}/lib/libsqlite3.so"
+      export HOME="$TMPDIR";
+
+      nvim --headless -i NONE \
+        -u test/minimal_init.vim --cmd "set rtp+=${pkgs.vimPlugins.plenary-nvim}" \
+        -c "PlenaryBustedDirectory test/auto/ { minimal_init = './test/minimal_init.vim' }"
+    '';
+
+  });
+
   std-_debug = prev.std-_debug.overrideAttrs(oa: {
     # run make to generate lib/std/_debug/version.lua
     preConfigure = ''
diff --git a/pkgs/development/misc/msp430/mspds/binary.nix b/pkgs/development/misc/msp430/mspds/binary.nix
index 967562580c67f..5b64ec328ae62 100644
--- a/pkgs/development/misc/msp430/mspds/binary.nix
+++ b/pkgs/development/misc/msp430/mspds/binary.nix
@@ -29,6 +29,7 @@ in stdenv.mkDerivation rec {
   meta = {
     description = "Unfree binary release of the TI MSP430 FET debug driver";
     homepage = "https://www.ti.com/tool/MSPDS";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ aerialx ];
diff --git a/pkgs/development/mobile/adb-sync/default.nix b/pkgs/development/mobile/adb-sync/default.nix
index c88ac5dbca5e6..90087c48dddad 100644
--- a/pkgs/development/mobile/adb-sync/default.nix
+++ b/pkgs/development/mobile/adb-sync/default.nix
@@ -38,6 +38,6 @@ stdenv.mkDerivation {
     license = licenses.asl20;
     platforms = platforms.unix;
     hydraPlatforms = [];
-    maintainers = with maintainers; [ scolobb ma27 ];
+    maintainers = with maintainers; [ scolobb ];
   };
 }
diff --git a/pkgs/development/mobile/androidenv/emulator.nix b/pkgs/development/mobile/androidenv/emulator.nix
index 41a2dd709137e..94a76078c477c 100644
--- a/pkgs/development/mobile/androidenv/emulator.nix
+++ b/pkgs/development/mobile/androidenv/emulator.nix
@@ -13,7 +13,7 @@ deployAndroidPackage {
       zlib
       ncurses5
       stdenv.cc.cc
-      i686.glibc
+      pkgs_i686.glibc
       expat
       freetype
       nss
diff --git a/pkgs/development/mobile/androidenv/tools/25.nix b/pkgs/development/mobile/androidenv/tools/25.nix
index 7489569d5071e..5ce21a2fee3e4 100644
--- a/pkgs/development/mobile/androidenv/tools/25.nix
+++ b/pkgs/development/mobile/androidenv/tools/25.nix
@@ -58,5 +58,5 @@ deployAndroidPackage {
     ${postInstall}
   '';
 
-  meta.licenses = lib.licenses.unfree;
+  meta.license = lib.licenses.unfree;
 }
diff --git a/pkgs/development/mobile/androidenv/tools/26.nix b/pkgs/development/mobile/androidenv/tools/26.nix
index 7a8f4cd660f1a..361e02661f375 100644
--- a/pkgs/development/mobile/androidenv/tools/26.nix
+++ b/pkgs/development/mobile/androidenv/tools/26.nix
@@ -40,5 +40,5 @@ deployAndroidPackage {
     ${postInstall}
   '';
 
-  meta.licenses = lib.licenses.unfree;
+  meta.license = lib.licenses.unfree;
 }
diff --git a/pkgs/development/mobile/checkra1n/default.nix b/pkgs/development/mobile/checkra1n/default.nix
index 110bb187f61c0..a44a6d8b2b8d2 100644
--- a/pkgs/development/mobile/checkra1n/default.nix
+++ b/pkgs/development/mobile/checkra1n/default.nix
@@ -19,6 +19,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Jailbreak for iPhone 5s though iPhone X, iOS 12.0 and up";
     homepage = "https://checkra.in/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ onny ];
     platforms = platforms.linux;
diff --git a/pkgs/development/mobile/genymotion/default.nix b/pkgs/development/mobile/genymotion/default.nix
index 2b94ed14aa9c1..d8413117a30b8 100644
--- a/pkgs/development/mobile/genymotion/default.nix
+++ b/pkgs/development/mobile/genymotion/default.nix
@@ -89,6 +89,7 @@ stdenv.mkDerivation rec {
       suitable for application testing.
      '';
     homepage = "https://www.genymotion.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = ["x86_64-linux"];
     maintainers = [ maintainers.puffnfresh ];
diff --git a/pkgs/development/mobile/gomobile/default.nix b/pkgs/development/mobile/gomobile/default.nix
index 4087f1cca807f..44841d889c43f 100644
--- a/pkgs/development/mobile/gomobile/default.nix
+++ b/pkgs/development/mobile/gomobile/default.nix
@@ -9,15 +9,15 @@
 
 buildGoModule {
   pname = "gomobile";
-  version = "unstable-2021-06-14";
+  version = "unstable-2022-05-18";
 
-  vendorSha256 = "1irgkgv72rakg7snk1bnp10ibr64ykz9l40s59l4fnl63zsh12a0";
+  vendorSha256 = "sha256-AmOy3X+d2OD7ZLbFuy+SptdlgWbZJaXYEgO79M64ufE=";
 
   src = fetchgit {
-    rev = "7c8f154d100840bc5828285bb390bbae1cb5a98c";
+    rev = "8578da9835fd365e78a6e63048c103b27a53a82c";
     name = "gomobile";
     url = "https://go.googlesource.com/mobile";
-    sha256 = "1w9mra1mqf60iafp0ywvja5196fjsjyfhvz4yizqq4qkyll5qmj1";
+    sha256 = "sha256-AOR/p+DW83f2+BOxm2rFXBCrotcIyunK3UzQ/dnauWY=";
   };
 
   subPackages = [ "bind" "cmd/gobind" "cmd/gomobile" ];
@@ -32,8 +32,7 @@ buildGoModule {
   postPatch = ''
     substituteInPlace cmd/gomobile/env.go --replace \
       'tmpdir, err = ioutil.TempDir("", "gomobile-work-")' \
-      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "gomobile-work")' \
-      --replace '"io/ioutil"' ""
+      'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "gomobile-work")'
     substituteInPlace cmd/gomobile/init.go --replace \
       'tmpdir, err = ioutil.TempDir(gomobilepath, "work-")' \
       'tmpdir = filepath.Join(os.Getenv("NIX_BUILD_TOP"), "work")'
@@ -43,13 +42,18 @@ buildGoModule {
   postInstall = ''
     mkdir -p $out/src/golang.org/x
     ln -s $src $out/src/golang.org/x/mobile
-    wrapProgram $out/bin/gomobile \
+  '';
+
+  postFixup = ''
+    for bin in $(ls $out/bin); do
+      wrapProgram $out/bin/$bin \
+        --suffix GOPATH : $out \
   '' + lib.optionalString withAndroidPkgs ''
-      --prefix PATH : "${androidPkgs.androidsdk}/bin" \
-      --set ANDROID_NDK_HOME "${androidPkgs.androidsdk}/libexec/android-sdk/ndk-bundle" \
-      --set ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk" \
+        --prefix PATH : "${androidPkgs.androidsdk}/bin" \
+        --set-default ANDROID_HOME "${androidPkgs.androidsdk}/libexec/android-sdk" \
   '' + ''
-      --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}"
+        --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ zlib ]}"
+    done
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/node-packages/main-programs.nix b/pkgs/development/node-packages/main-programs.nix
index 837fa53ecc3a4..8004f2025a91b 100644
--- a/pkgs/development/node-packages/main-programs.nix
+++ b/pkgs/development/node-packages/main-programs.nix
@@ -16,6 +16,7 @@
   "@astrojs/language-server" = "astro-ls";
   "@bitwarden/cli" = "bw";
   "@commitlint/cli" = "commitlint";
+  "@forge/cli" = "forge";
   "@gitbeaker/cli" = "gitbeaker";
   "@google/clasp" = "clasp";
   "@hyperspace/cli" = "hyp";
@@ -31,6 +32,7 @@
   "@webassemblyjs/wasm-strip" = "wasm-strip";
   "@webassemblyjs/wasm-text-gen" = "wasmgen";
   "@webassemblyjs/wast-refmt" = "wast-refmt";
+  aws-cdk = "cdk";
   balanceofsatoshis = "bos";
   carbon-now-cli = "carbon-now";
   cdk8s-cli = "cdk8s";
diff --git a/pkgs/development/node-packages/node-packages.json b/pkgs/development/node-packages/node-packages.json
index 68c1e9e35d269..5f8ddcfd09666 100644
--- a/pkgs/development/node-packages/node-packages.json
+++ b/pkgs/development/node-packages/node-packages.json
@@ -7,6 +7,7 @@
 , "@bitwarden/cli"
 , "@commitlint/cli"
 , "@commitlint/config-conventional"
+, "@forge/cli"
 , "@google/clasp"
 , "@hyperspace/cli"
 , "@medable/mdctl-cli"
@@ -32,6 +33,7 @@
 , "audiosprite"
 , "autoprefixer"
 , "aws-azure-login"
+, "aws-cdk"
 , "awesome-lint"
 , "balanceofsatoshis"
 , "bash-language-server"
@@ -51,6 +53,7 @@
 , "coc-cmake"
 , "coc-css"
 , "coc-diagnostic"
+, "coc-docker"
 , "coc-emmet"
 , "coc-eslint"
 , "coc-explorer"
@@ -74,12 +77,16 @@
 , "coc-r-lsp"
 , "coc-rls"
 , "coc-rust-analyzer"
+, "coc-sh"
 , "coc-smartf"
 , "coc-snippets"
 , "coc-solargraph"
 , "coc-stylelint"
+, "coc-sumneko-lua"
+, "coc-sqlfluff"
 , "coc-tabnine"
 , "coc-texlab"
+, "coc-toml"
 , "coc-tslint"
 , "coc-tslint-plugin"
 , "coc-tsserver"
@@ -379,6 +386,7 @@
 , "webtorrent-cli"
 , "wring"
 , "write-good"
+, "@yaegassy/coc-nginx"
 , "yaml-language-server"
 , "yalc"
 , "yarn"
diff --git a/pkgs/development/node-packages/node-packages.nix b/pkgs/development/node-packages/node-packages.nix
index 9ea921bb38df2..974499eb783fc 100644
--- a/pkgs/development/node-packages/node-packages.nix
+++ b/pkgs/development/node-packages/node-packages.nix
@@ -22,6 +22,15 @@ let
         sha512 = "b90U39dx0cU6emsOvy5hxU4ApNXnE3+Tuo8XQZfiKTGelDwpMwBVgBP7QX6dGTcJgu/miyJuNJ/2naFBliNWEw==";
       };
     };
+    "@achrinza/node-ipc-9.2.5" = {
+      name = "_at_achrinza_slash_node-ipc";
+      packageName = "@achrinza/node-ipc";
+      version = "9.2.5";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@achrinza/node-ipc/-/node-ipc-9.2.5.tgz";
+        sha512 = "kBX7Ay911iXZ3VZ1pYltj3Rfu7Ow9H7sK4H4RSfWIfWR2JKNB40K808wppoRIEzE2j2hXLU+r6TJgCAliCGhyQ==";
+      };
+    };
     "@akryum/winattr-3.0.0" = {
       name = "_at_akryum_slash_winattr";
       packageName = "@akryum/winattr";
@@ -58,6 +67,15 @@ let
         sha512 = "gouPoWdQ6NyIqsISkx526taLlnPB13SPJji4qRZ+MWf8Z60Bn6lF0xmoIEn+hpkTrSH+k9P9HvC2ENqfhq1YdQ==";
       };
     };
+    "@alexbosworth/fiat-1.0.3" = {
+      name = "_at_alexbosworth_slash_fiat";
+      packageName = "@alexbosworth/fiat";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@alexbosworth/fiat/-/fiat-1.0.3.tgz";
+        sha512 = "M1OE/iyK+H77lrOEZz93f9QIi7B4RaD66O3ICRv24ECDbZogddwPWwG9HK9QDJvdGPlni67PYu8krpzEsTvFPg==";
+      };
+    };
     "@alexbosworth/html2unicode-1.1.5" = {
       name = "_at_alexbosworth_slash_html2unicode";
       packageName = "@alexbosworth/html2unicode";
@@ -103,13 +121,13 @@ let
         sha512 = "qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==";
       };
     };
-    "@angular-devkit/architect-0.1400.1" = {
+    "@angular-devkit/architect-0.1400.2" = {
       name = "_at_angular-devkit_slash_architect";
       packageName = "@angular-devkit/architect";
-      version = "0.1400.1";
+      version = "0.1400.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1400.1.tgz";
-        sha512 = "GJ4hWLIJmhCq4nKNN9c4xocKtCt28muJxN88Wna292SOIaNQuNY5MP9860/4IWRGCJTeJH7LyCc4j/3V0zWrSQ==";
+        url = "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1400.2.tgz";
+        sha512 = "L+QIaN17M2APAJ4v3eVOSohqhnqTloDjT4omdaPA9XZpob+WQ6+ALCvMuEczCRrGBskXiOsBgXeyMjGBtq1+pw==";
       };
     };
     "@angular-devkit/core-13.3.5" = {
@@ -121,13 +139,13 @@ let
         sha512 = "w7vzK4VoYP9rLgxJ2SwEfrkpKybdD+QgQZlsDBzT0C6Ebp7b4gkNcNVFo8EiZvfDl6Yplw2IAP7g7fs3STn0hQ==";
       };
     };
-    "@angular-devkit/core-14.0.1" = {
+    "@angular-devkit/core-14.0.2" = {
       name = "_at_angular-devkit_slash_core";
       packageName = "@angular-devkit/core";
-      version = "14.0.1";
+      version = "14.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.1.tgz";
-        sha512 = "yiduPSPRp4s4yYKc3BOvbL5gOzaOPvRCMcJ3jeQbitLIXD/xwSHO8OmmsLsN/PnM1RzA8vVHsK7lN4v1JvhqPA==";
+        url = "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.2.tgz";
+        sha512 = "lT875LhgO+23HvjUmuCZomH/0ivetzo8xsaT+7YM8SeUpmjsNTpTA/xNAQ4uD4JGscsJeCKsGT/zJIwPAAe6vQ==";
       };
     };
     "@angular-devkit/schematics-13.3.5" = {
@@ -139,13 +157,13 @@ let
         sha512 = "0N/kL/Vfx0yVAEwa3HYxNx9wYb+G9r1JrLjJQQzDp+z9LtcojNf7j3oey6NXrDUs1WjVZOa/AIdRl3/DuaoG5w==";
       };
     };
-    "@angular-devkit/schematics-14.0.1" = {
+    "@angular-devkit/schematics-14.0.2" = {
       name = "_at_angular-devkit_slash_schematics";
       packageName = "@angular-devkit/schematics";
-      version = "14.0.1";
+      version = "14.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.1.tgz";
-        sha512 = "Ub9W2SIgmYs9+SWCW117/N+wSThOWWDo1j+JiZlh9jML7ZRc9HCTEzo8Yic+6/ZuouVcKExCUO90z0InVkOB7g==";
+        url = "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.2.tgz";
+        sha512 = "NCAYwvQBL71MbAzeF8XOM9LXYfZbUK7THYCW8UteKDY4Df6EdVOGhBdWY2LstAkZeVCaQWSJU7FcVRS9Ulvg0A==";
       };
     };
     "@angular-devkit/schematics-cli-13.3.5" = {
@@ -454,13 +472,13 @@ let
         sha512 = "JJmFFwvbm08lULw4Nm5QOLg8+lAQeC8aCXK5xrtxntYzYXCGfHwUJ4Is3770Q7HmICsXthGQ+ZsDL7C2uH3yBQ==";
       };
     };
-    "@aws-sdk/abort-controller-3.78.0" = {
+    "@aws-sdk/abort-controller-3.110.0" = {
       name = "_at_aws-sdk_slash_abort-controller";
       packageName = "@aws-sdk/abort-controller";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.78.0.tgz";
-        sha512 = "iz1YLwM2feJUj/y97yO4XmDeTxs+yZ1XJwQgoawKuc8IDBKUutnJNCHL5jL04WUKU7Nrlq+Hr2fCTScFh2z9zg==";
+        url = "https://registry.npmjs.org/@aws-sdk/abort-controller/-/abort-controller-3.110.0.tgz";
+        sha512 = "zok/WEVuK7Jh6V9YeA56pNZtxUASon9LTkS7vE65A4UFmNkPGNBCNgoiBcbhWfxwrZ8wtXcQk6rtUut39831mA==";
       };
     };
     "@aws-sdk/chunked-blob-reader-3.55.0" = {
@@ -472,202 +490,202 @@ let
         sha512 = "o/xjMCq81opAjSBjt7YdHJwIJcGVG5XIV9+C2KXcY5QwVimkOKPybWTv0mXPvSwSilSx+EhpLNhkcJuXdzhw4w==";
       };
     };
-    "@aws-sdk/chunked-blob-reader-native-3.58.0" = {
+    "@aws-sdk/chunked-blob-reader-native-3.109.0" = {
       name = "_at_aws-sdk_slash_chunked-blob-reader-native";
       packageName = "@aws-sdk/chunked-blob-reader-native";
-      version = "3.58.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.58.0.tgz";
-        sha512 = "+D3xnPD5985iphgAqgUerBDs371a2WzzoEVi7eHJUMMsP/gEnSTdSH0HNxsqhYv6CW4EdKtvDAQdAwA1VtCf2A==";
+        url = "https://registry.npmjs.org/@aws-sdk/chunked-blob-reader-native/-/chunked-blob-reader-native-3.109.0.tgz";
+        sha512 = "Ybn3vDZ3CqGyprL2qdF6QZqoqlx8lA3qOJepobjuKKDRw+KgGxjUY4NvWe0R2MdRoduyaDj6uvhIay0S1MOSJQ==";
       };
     };
-    "@aws-sdk/client-s3-3.107.0" = {
+    "@aws-sdk/client-s3-3.113.0" = {
       name = "_at_aws-sdk_slash_client-s3";
       packageName = "@aws-sdk/client-s3";
-      version = "3.107.0";
+      version = "3.113.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.107.0.tgz";
-        sha512 = "2wWlr4lnfr/3NCKjven0umTRNxpMwrrt1fm8ZN0DucFhD4B3jee7qZQtpTnQxkGJkzyzKeE7qlzsHYeMi2HL1Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.113.0.tgz";
+        sha512 = "QHynLFWwhQFB2bULxMOlnIYzKPmE6ky5yRo0NPGklz4bnWc8RY/vSvlaii4JBxPee9TGxNM1/NCF0oMLUdXK3Q==";
       };
     };
-    "@aws-sdk/client-sso-3.105.0" = {
+    "@aws-sdk/client-sso-3.112.0" = {
       name = "_at_aws-sdk_slash_client-sso";
       packageName = "@aws-sdk/client-sso";
-      version = "3.105.0";
+      version = "3.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.105.0.tgz";
-        sha512 = "Lp92m3ayckXpAElpgZ8E6JEGB7B5sBsjCkTmYeZq3uVXF8uCVMQFmFo4v2yndLQ3NFCEE8qN2PE8obLDOAsNIA==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.112.0.tgz";
+        sha512 = "FwFmiapxuVQiyMdDaBvCpajnJkVWEUHBdO+7rIpzgKHkODEPou5/AwboaGRPEFYULOyYeI0HiDFzpK0G6de+7Q==";
       };
     };
-    "@aws-sdk/client-sts-3.105.0" = {
+    "@aws-sdk/client-sts-3.112.0" = {
       name = "_at_aws-sdk_slash_client-sts";
       packageName = "@aws-sdk/client-sts";
-      version = "3.105.0";
+      version = "3.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.105.0.tgz";
-        sha512 = "ZZyw5hu0Ip/jHc9umpWTnWNUHV270fS25LB7fecUwQeC/cok+EvaG5QGBVI5t0GSUynEIC0sNlG9SDc1wLTZPA==";
+        url = "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.112.0.tgz";
+        sha512 = "hSApRO2wg3jk9VRGM6SCZO3aFP7DKVSUqs6FrvlXlj+JU88ZKObjrGE61cCzXoD89Dh+b9t8A2T6W51Nzriaxw==";
       };
     };
-    "@aws-sdk/config-resolver-3.80.0" = {
+    "@aws-sdk/config-resolver-3.110.0" = {
       name = "_at_aws-sdk_slash_config-resolver";
       packageName = "@aws-sdk/config-resolver";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.80.0.tgz";
-        sha512 = "vFruNKlmhsaC8yjnHmasi1WW/7EELlEuFTj4mqcqNqR4dfraf0maVvpqF1VSR8EstpFMsGYI5dmoWAnnG4PcLQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/config-resolver/-/config-resolver-3.110.0.tgz";
+        sha512 = "7VvtKy4CL63BAktQ2vgsjhWDSXpkXO5YdiI56LQnHztrvSuJBBaxJ7R1p/k0b2tEUhYKUziAIW8EKE/7EGPR4g==";
       };
     };
-    "@aws-sdk/credential-provider-env-3.78.0" = {
+    "@aws-sdk/credential-provider-env-3.110.0" = {
       name = "_at_aws-sdk_slash_credential-provider-env";
       packageName = "@aws-sdk/credential-provider-env";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.78.0.tgz";
-        sha512 = "K41VTIzVHm2RyIwtBER8Hte3huUBXdV1WKO+i7olYVgLFmaqcZUNrlyoGDRqZcQ/u4AbxTzBU9jeMIbIfzMOWg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.110.0.tgz";
+        sha512 = "oFU3IYk/Bl5tdsz1qigtm3I25a9cvXPqlE8VjYjxVDdLujF5zd/4HLbhP4GQWhpEwZmM1ijcSNfLcyywVevTZg==";
       };
     };
-    "@aws-sdk/credential-provider-imds-3.81.0" = {
+    "@aws-sdk/credential-provider-imds-3.110.0" = {
       name = "_at_aws-sdk_slash_credential-provider-imds";
       packageName = "@aws-sdk/credential-provider-imds";
-      version = "3.81.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.81.0.tgz";
-        sha512 = "BHopP+gaovTYj+4tSrwCk8NNCR48gE9CWmpIOLkP9ell0gOL81Qh7aCEiIK0BZBZkccv1s16cYq1MSZZGS7PEQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-imds/-/credential-provider-imds-3.110.0.tgz";
+        sha512 = "atl+7/dAB+8fG9XI2fYyCgXKYDbOzot65VAwis+14bOEUCVp7PCJifBEZ/L8GEq564p+Fa2p1IpV0wuQXxqFUQ==";
       };
     };
-    "@aws-sdk/credential-provider-ini-3.105.0" = {
+    "@aws-sdk/credential-provider-ini-3.112.0" = {
       name = "_at_aws-sdk_slash_credential-provider-ini";
       packageName = "@aws-sdk/credential-provider-ini";
-      version = "3.105.0";
+      version = "3.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.105.0.tgz";
-        sha512 = "qYEUciSpeIBkIDt3ljWkVphG7OUIvQOMklYjtEYjYGFjHX7GuyNbV0NI0T6W/edV0aU/a/KpBi0uKd93Gi43Lg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.112.0.tgz";
+        sha512 = "ebgZ6/jZdTGHQ3zfq/ccmS+7YmLk6yUWHDmh69VK+B1Dd+S1jFwbD9EQ+pYWCp/gEl9F620NSwb6KghRylPWEQ==";
       };
     };
-    "@aws-sdk/credential-provider-node-3.105.0" = {
+    "@aws-sdk/credential-provider-node-3.112.0" = {
       name = "_at_aws-sdk_slash_credential-provider-node";
       packageName = "@aws-sdk/credential-provider-node";
-      version = "3.105.0";
+      version = "3.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.105.0.tgz";
-        sha512 = "A781wWAcghqw21Vddj2jZo1BeKDyqqMcBYIuXJxjwK4fq+IBxlnI6De1vzv3H7QxosDyDS4mKWGW2FqUQI8ofg==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.112.0.tgz";
+        sha512 = "7txS7P3BAaU4cksFw/PnoVskVvO8h/TPvOl/BxFtCiUdwA6FRltLvBeMlN08fwUoqgM6z06q8areBdeDqCHOSw==";
       };
     };
-    "@aws-sdk/credential-provider-process-3.80.0" = {
+    "@aws-sdk/credential-provider-process-3.110.0" = {
       name = "_at_aws-sdk_slash_credential-provider-process";
       packageName = "@aws-sdk/credential-provider-process";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.80.0.tgz";
-        sha512 = "3Ro+kMMyLUJHefOhGc5pOO/ibGcJi8bkj0z/Jtqd5I2Sm1qi7avoztST67/k48KMW1OqPnD/FUqxz5T8B2d+FQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.110.0.tgz";
+        sha512 = "JJcZePvRTfQHYj/+EEY13yItnZH/e8exlARFUjN0L13UrgHpOJtDQBa+YBHXo6MbTFQh+re25z2kzc+zOYSMNQ==";
       };
     };
-    "@aws-sdk/credential-provider-sso-3.105.0" = {
+    "@aws-sdk/credential-provider-sso-3.112.0" = {
       name = "_at_aws-sdk_slash_credential-provider-sso";
       packageName = "@aws-sdk/credential-provider-sso";
-      version = "3.105.0";
+      version = "3.112.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.105.0.tgz";
-        sha512 = "oHvMZ0uHfOzFkepX29GPXUrI7HTQklQl01laVxEdCNtgZGfos9gjz+xPUDBCaoiEzM+xF9uu4wtaQ15c1bCclQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.112.0.tgz";
+        sha512 = "b6rOrSXbNK3fGyPvNpyF5zdktmAoNOqHCTmFSUcxRxOipyRGb5JACsbjWthIQkpWkpNCT8GFNLEg9spXPFIdLA==";
       };
     };
-    "@aws-sdk/credential-provider-web-identity-3.78.0" = {
+    "@aws-sdk/credential-provider-web-identity-3.110.0" = {
       name = "_at_aws-sdk_slash_credential-provider-web-identity";
       packageName = "@aws-sdk/credential-provider-web-identity";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.78.0.tgz";
-        sha512 = "9/IvqHdJaVqMEABA8xZE3t5YF1S2PepfckVu0Ws9YUglj6oO+2QyVX6aRgMF1xph6781+Yc31TDh8/3eaDja7w==";
+        url = "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.110.0.tgz";
+        sha512 = "e4e5u7v3fsUFZsMcFMhMy1NdJBQpunYcLwpYlszm3OEICwTTekQ+hVvnVRd134doHvzepE4yp9sAop0Cj+IRVQ==";
       };
     };
-    "@aws-sdk/eventstream-marshaller-3.78.0" = {
+    "@aws-sdk/eventstream-marshaller-3.110.0" = {
       name = "_at_aws-sdk_slash_eventstream-marshaller";
       packageName = "@aws-sdk/eventstream-marshaller";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.78.0.tgz";
-        sha512 = "BMbRvLe6wNWQ+NO1pdPw3kGXXEdYV94BxEr3rTkKwr5yHpl8sUb/Va9sJJufUjzggpgE4vYu5nVsrT8ByMYXuA==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-marshaller/-/eventstream-marshaller-3.110.0.tgz";
+        sha512 = "ZVJI2iCmjxigtLKfc9v48NHY34Qos5l9wgxzB1lU+RwaBppbmjogvIpPlKewEuAFsLTrErUK4ONBWGGsvLYlBQ==";
       };
     };
-    "@aws-sdk/eventstream-serde-browser-3.78.0" = {
+    "@aws-sdk/eventstream-serde-browser-3.110.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-browser";
       packageName = "@aws-sdk/eventstream-serde-browser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.78.0.tgz";
-        sha512 = "ehQI2iLsj8MMskDRbrPB7SibIdJq6LleBP6ojT+cgrLJRbVXUOxK+3MPHDZVdGYx4ukVg48E1fA2DzVfAp7Emw==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-browser/-/eventstream-serde-browser-3.110.0.tgz";
+        sha512 = "zeZpKO9Ccsg6seB9oYf9rEQkYfM4nWnyQJtfGvpj/BlkJ7i3UhpbVca8q6aC61WLb3fcO/JROqNfDK1Vis8RgA==";
       };
     };
-    "@aws-sdk/eventstream-serde-config-resolver-3.78.0" = {
+    "@aws-sdk/eventstream-serde-config-resolver-3.110.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-config-resolver";
       packageName = "@aws-sdk/eventstream-serde-config-resolver";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.78.0.tgz";
-        sha512 = "iUG0wtZH/L7d6XfipwbhgjBHip0uTm9S27EasCn+g0CunbW6w7rXd7rfMqA+gSLVXPTBYjTMPIwRxrTCdRprwA==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-3.110.0.tgz";
+        sha512 = "0kyKUU5/46OGe6rgIqbNRJEQhNYwxLdgcJXlBl6q6CdgyQApz6jsAgG0C5xhSLSi4iJijDRriJTowAhkq4AlWQ==";
       };
     };
-    "@aws-sdk/eventstream-serde-node-3.78.0" = {
+    "@aws-sdk/eventstream-serde-node-3.110.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-node";
       packageName = "@aws-sdk/eventstream-serde-node";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.78.0.tgz";
-        sha512 = "H78LLoZEngZBSdk3lRQkAaR3cGsy/3UIjq9AFPeqoPVQtHkzBob1jVfE/5VSVAMhKLxWn8iqhRPS37AvyBGOwQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-node/-/eventstream-serde-node-3.110.0.tgz";
+        sha512 = "Bd7d57BANdy1RBnZ6EBxEaDzC4DidR40EMEk08Ho3+md6CW/vmW63n9wAhKjdoq9a+Hp6aDWP4huVKhyT/d6PA==";
       };
     };
-    "@aws-sdk/eventstream-serde-universal-3.78.0" = {
+    "@aws-sdk/eventstream-serde-universal-3.110.0" = {
       name = "_at_aws-sdk_slash_eventstream-serde-universal";
       packageName = "@aws-sdk/eventstream-serde-universal";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.78.0.tgz";
-        sha512 = "PZTLdyF923/1GJuMNtq9VMGd2vEx33HhsGInXvYtulKDSD5SgaTGj+Dz5wYepqL1gUEuXqZjBD71uZgrY/JgRg==";
+        url = "https://registry.npmjs.org/@aws-sdk/eventstream-serde-universal/-/eventstream-serde-universal-3.110.0.tgz";
+        sha512 = "VjzOxDaHCzPlZs+9UqqQABP47gCWf97kqwhuoPUsCzV8leEHnLfAX3BvIZ58kNr4Fycua5AgK7Ww6uFfXVeW8w==";
       };
     };
-    "@aws-sdk/fetch-http-handler-3.78.0" = {
+    "@aws-sdk/fetch-http-handler-3.110.0" = {
       name = "_at_aws-sdk_slash_fetch-http-handler";
       packageName = "@aws-sdk/fetch-http-handler";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.78.0.tgz";
-        sha512 = "cR6r2h2kJ1DNEZSXC6GknQB7OKmy+s9ZNV+g3AsNqkrUmNNOaHpFoSn+m6SC3qaclcGd0eQBpqzSu/TDn23Ihw==";
+        url = "https://registry.npmjs.org/@aws-sdk/fetch-http-handler/-/fetch-http-handler-3.110.0.tgz";
+        sha512 = "vk+K4GeCZL2J2rtvKO+T0Q7i3MDpEGZBMg5K2tj9sMcEQwty0BF0aFnP7Eu2l4/Zif2z1mWuUFM2WcZI6DVnbw==";
       };
     };
-    "@aws-sdk/hash-blob-browser-3.78.0" = {
+    "@aws-sdk/hash-blob-browser-3.110.0" = {
       name = "_at_aws-sdk_slash_hash-blob-browser";
       packageName = "@aws-sdk/hash-blob-browser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.78.0.tgz";
-        sha512 = "IEkA+t6qJEtEYEZgsqFRRITeZJ3mirw7IHJVHxwb86lpeufTVcbILI59B8/rhbqG+9dk0kWTjYSjC/ZdM+rgHA==";
+        url = "https://registry.npmjs.org/@aws-sdk/hash-blob-browser/-/hash-blob-browser-3.110.0.tgz";
+        sha512 = "NkTosjlYwP2dcBXY6yzhNafAK+W2nceheffvWdyGA29+E9YdRjDminXvKc/WAkZUMOW0CaCbD90otOiimAAYyQ==";
       };
     };
-    "@aws-sdk/hash-node-3.78.0" = {
+    "@aws-sdk/hash-node-3.110.0" = {
       name = "_at_aws-sdk_slash_hash-node";
       packageName = "@aws-sdk/hash-node";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.78.0.tgz";
-        sha512 = "ev48yXaqZVtMeuKy52LUZPHCyKvkKQ9uiUebqkA+zFxIk+eN8SMPFHmsififIHWuS6ZkXBUSctjH9wmLebH60A==";
+        url = "https://registry.npmjs.org/@aws-sdk/hash-node/-/hash-node-3.110.0.tgz";
+        sha512 = "wakl+kP2O8wTGYiQ3InZy+CVfGrIpFfq9fo4zif9PZac0BbUbguUU1dkY34uZiaf+4o2/9MoDYrHU2HYeXKxWw==";
       };
     };
-    "@aws-sdk/hash-stream-node-3.78.0" = {
+    "@aws-sdk/hash-stream-node-3.110.0" = {
       name = "_at_aws-sdk_slash_hash-stream-node";
       packageName = "@aws-sdk/hash-stream-node";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.78.0.tgz";
-        sha512 = "y42Pm0Nk6zf/MI6acLFVFAMya0Ncvy6F6Xu5aYAmwIMIoMI0ctNeyuL/Dikgt8+oyxC+kORw+W9jtzgWj2zY/w==";
+        url = "https://registry.npmjs.org/@aws-sdk/hash-stream-node/-/hash-stream-node-3.110.0.tgz";
+        sha512 = "srlStn+dCnBlQy4oWBz3oFS8vT5Xgxhra91rt9U+vHruCyQ0L1es0J87X4uwy2HRlnIw3daPtVLtxekahEXzKQ==";
       };
     };
-    "@aws-sdk/invalid-dependency-3.78.0" = {
+    "@aws-sdk/invalid-dependency-3.110.0" = {
       name = "_at_aws-sdk_slash_invalid-dependency";
       packageName = "@aws-sdk/invalid-dependency";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.78.0.tgz";
-        sha512 = "zUo+PbeRMN/Mzj6y+6p9qqk/znuFetT1gmpOcZGL9Rp2T+b9WJWd+daq5ktsL10sVCzIt2UvneJRz6b+aU+bfw==";
+        url = "https://registry.npmjs.org/@aws-sdk/invalid-dependency/-/invalid-dependency-3.110.0.tgz";
+        sha512 = "O8J1InmtJkoiUMbQDtxBfOzgigBp9iSVsNXQrhs2qHh3826cJOfE7NGT3u+NMw73Pk5j2cfmOh1+7k/76IqxOg==";
       };
     };
     "@aws-sdk/is-array-buffer-3.55.0" = {
@@ -679,292 +697,283 @@ let
         sha512 = "NbiPHVYuPxdqdFd6FxzzN3H1BQn/iWA3ri3Ry7AyLeP/tGs1yzEWMwf8BN8TSMALI0GXT6Sh0GDWy3Ok5xB6DA==";
       };
     };
-    "@aws-sdk/md5-js-3.78.0" = {
+    "@aws-sdk/md5-js-3.110.0" = {
       name = "_at_aws-sdk_slash_md5-js";
       packageName = "@aws-sdk/md5-js";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.78.0.tgz";
-        sha512 = "vKOXJWJvv6QH6rnqMYEWzwAnMr4hfcmY8+t6BAuTcDpcEVF77e3bwUcaajXi2U0JMuNvnLwuJF3h6kL6aX4l6g==";
+        url = "https://registry.npmjs.org/@aws-sdk/md5-js/-/md5-js-3.110.0.tgz";
+        sha512 = "66gV6CH8O7ymTZMIbGjdUI71K7ErDfudhtN/ULb97kD2TYX4NlFtxNZxx3+iZH1G0H636lWm9hJcU5ELG9B+bw==";
       };
     };
-    "@aws-sdk/middleware-bucket-endpoint-3.80.0" = {
+    "@aws-sdk/middleware-bucket-endpoint-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-bucket-endpoint";
       packageName = "@aws-sdk/middleware-bucket-endpoint";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.80.0.tgz";
-        sha512 = "FSSx6IgT7xftSlpjxoPKv8XI9nv7EK+OCODo2s3CmElMW1kBRdmQ/ImVuTwvqhdxJEVUeUdgupmC7cqyqgt04w==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.110.0.tgz";
+        sha512 = "l1q0KzMRFyGSSc7LZGEh2xhCha1933C8uJE5g23b7dZdklEU5I62l4daELo+TBANcxFzDiRXd6g5mly/T+ZTSg==";
       };
     };
-    "@aws-sdk/middleware-content-length-3.78.0" = {
+    "@aws-sdk/middleware-content-length-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-content-length";
       packageName = "@aws-sdk/middleware-content-length";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.78.0.tgz";
-        sha512 = "5MpKt6lB9TdFy25/AGrpOjPY0iDHZAKpEHc+jSOJBXLl6xunXA7qHdiYaVqkWodLxy70nIckGNHqQ3drabidkA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-content-length/-/middleware-content-length-3.110.0.tgz";
+        sha512 = "hKU+zdqfAJQg22LXMVu/z35nNIHrVAKpVKPe9+WYVdL/Z7JKUPK7QymqKGOyDuDbzW6OxyulC1zKGEX12zGmdA==";
       };
     };
-    "@aws-sdk/middleware-expect-continue-3.78.0" = {
+    "@aws-sdk/middleware-expect-continue-3.113.0" = {
       name = "_at_aws-sdk_slash_middleware-expect-continue";
       packageName = "@aws-sdk/middleware-expect-continue";
-      version = "3.78.0";
+      version = "3.113.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.78.0.tgz";
-        sha512 = "IXfcSugFV3uNk50VQsN/Cm80iCsUSwcYJ5RzEwy7wXbZ+KM03xWXlbXzqkeTDnS74wLWSw09nKF3rkp1eyfDfg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.113.0.tgz";
+        sha512 = "LLtSunCYVWeAhRP+6enn0kYF119WooV6gepMGOWeRCpKXO2iyi8YOx2Mtgc3T8ybiAG/dVlmZoX47Y1HINcuqg==";
       };
     };
-    "@aws-sdk/middleware-flexible-checksums-3.78.0" = {
+    "@aws-sdk/middleware-flexible-checksums-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-flexible-checksums";
       packageName = "@aws-sdk/middleware-flexible-checksums";
-      version = "3.78.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.78.0.tgz";
-        sha512 = "1jjxHcB3Le/2Z7BzugXzZnIwKGlUluNm0d1lB4fF2QVq3GHlA6e8uv0rCtqe/3wSsrzV6YzJ8vjioymKSNIjKQ==";
-      };
-    };
-    "@aws-sdk/middleware-header-default-3.78.0" = {
-      name = "_at_aws-sdk_slash_middleware-header-default";
-      packageName = "@aws-sdk/middleware-header-default";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-header-default/-/middleware-header-default-3.78.0.tgz";
-        sha512 = "USyOIF7ObBVMKbV/8lOBLDNwMAGdOtujd+RO/9dX6OQLceUTKIS1dOfJoYYwRHgengn7ikpDxoyROyspPYYDZQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.110.0.tgz";
+        sha512 = "Z/v1Da+e1McxrVr1s4jUykp2EXsOHpTxZ4M0X8vNkXCIVSuaMp4UI0P+LQawbDA+j3FaecqqBfWMZ2sHQ8bpoA==";
       };
     };
-    "@aws-sdk/middleware-host-header-3.78.0" = {
+    "@aws-sdk/middleware-host-header-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-host-header";
       packageName = "@aws-sdk/middleware-host-header";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.78.0.tgz";
-        sha512 = "1zL8uaDWGmH50c8B8jjz75e0ePj6/3QeZEhjJgTgL6DTdiqvRt32p3t+XWHW+yDI14fZZUYeTklAaLVxqFrHqQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.110.0.tgz";
+        sha512 = "/Cknn1vL2LTlclI0MX2RzmtdPlCJ5palCRXxm/mod1oHwg4oNTKRlUX3LUD+L8g7JuJ4h053Ch9KS/A0vanE5Q==";
       };
     };
-    "@aws-sdk/middleware-location-constraint-3.78.0" = {
+    "@aws-sdk/middleware-location-constraint-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-location-constraint";
       packageName = "@aws-sdk/middleware-location-constraint";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.78.0.tgz";
-        sha512 = "m626H1WwXYJtwHEkV/2DsLlu1ckWq3j57NzsexZki3qS0nU8HEiDl6YYi+k84vDD4Qpba6EI9AdhzwnvZLXtGw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.110.0.tgz";
+        sha512 = "8ZSo9sqrTMcSp0xEJQ3ypmQpeSMQl1NXXv72khJPweZqDoO0eAbfytwyH4JH4sP0VwVVmuDHdwPXyDZX7I0iQg==";
       };
     };
-    "@aws-sdk/middleware-logger-3.78.0" = {
+    "@aws-sdk/middleware-logger-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-logger";
       packageName = "@aws-sdk/middleware-logger";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.78.0.tgz";
-        sha512 = "GBhwxNjhCJUIeQQDaGasX/C23Jay77al2vRyGwmxf8no0DdFsa4J1Ik6/2hhIqkqko+WM4SpCnpZrY4MtnxNvA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.110.0.tgz";
+        sha512 = "+pz+a+8dfTnzLj79nHrv3aONMp/N36/erMd+7JXeR84QEosVLrFBUwKA8x5x6O3s1iBbQzRKMYEIuja9xn1BPA==";
       };
     };
-    "@aws-sdk/middleware-recursion-detection-3.105.0" = {
+    "@aws-sdk/middleware-recursion-detection-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-recursion-detection";
       packageName = "@aws-sdk/middleware-recursion-detection";
-      version = "3.105.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.105.0.tgz";
-        sha512 = "KksW6cBQ3BWTNlN+4eMW8//oqsuKLYJsSUsdSLQb7MFBHnw+6r8GS9WXMYN0IBswlhdYi9fv83zlKDTV21ZL+g==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.110.0.tgz";
+        sha512 = "Wav782zd7bcd1e6txRob76CDOdVOaUQ8HXoywiIm/uFrEEUZvhs2mgnXjVUVCMBUehdNgnL99z420aS13JeL/Q==";
       };
     };
-    "@aws-sdk/middleware-retry-3.80.0" = {
+    "@aws-sdk/middleware-retry-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-retry";
       packageName = "@aws-sdk/middleware-retry";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.80.0.tgz";
-        sha512 = "CTk+tA4+WMUNOcUfR6UQrkhwvPYFpnMsQ1vuHlpLFOGG3nCqywA2hueLMRQmVcDXzP0sGeygce6dzRI9dJB/GA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-retry/-/middleware-retry-3.110.0.tgz";
+        sha512 = "lwLAQQveCiUqymQvVYjCee6QOXw3Zqbc9yq+pxYdXbs1Cv1XMA6PeJeUU5r5KEVuSceBLyyrnl6E0R1l1om1MQ==";
       };
     };
-    "@aws-sdk/middleware-sdk-s3-3.105.0" = {
+    "@aws-sdk/middleware-sdk-s3-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-s3";
       packageName = "@aws-sdk/middleware-sdk-s3";
-      version = "3.105.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.105.0.tgz";
-        sha512 = "GI2vYiboOc3GNpjNUtGyBVi9R6hwLhjId2PPqchyiRntlzz9CfF4F2qMjH/Vv0kE383hT8TN+5kGmaVSmeJqmg==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.110.0.tgz";
+        sha512 = "/PpZU11dkGldD6yeAccPxFd5nzofLOA3+j25RdIwz2jlJMLl9TeznYRtFH5JhHonP3lsK+IPEnFPwuL6gkBxIQ==";
       };
     };
-    "@aws-sdk/middleware-sdk-sts-3.78.0" = {
+    "@aws-sdk/middleware-sdk-sts-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-sdk-sts";
       packageName = "@aws-sdk/middleware-sdk-sts";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.78.0.tgz";
-        sha512 = "Lu/kN0J0/Kt0ON1hvwNel+y8yvf35licfIgtedHbBCa/ju8qQ9j+uL9Lla6Y5Tqu29yVaye1JxhiIDhscSwrLA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-sdk-sts/-/middleware-sdk-sts-3.110.0.tgz";
+        sha512 = "EjY/YFdlr5jECde6qIrTIyGBbn/34CKcQGKvmvRd31+3qaClIJLAwNuHfcVzWvCUGbAslsfvdbOpLju33pSQRA==";
       };
     };
-    "@aws-sdk/middleware-serde-3.78.0" = {
+    "@aws-sdk/middleware-serde-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-serde";
       packageName = "@aws-sdk/middleware-serde";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.78.0.tgz";
-        sha512 = "4DPsNOxsl1bxRzfo1WXEZjmD7OEi7qGNpxrDWucVe96Fqj2dH08jR8wxvBIVV1e6bAad07IwdPuCGmivNvwRuQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-serde/-/middleware-serde-3.110.0.tgz";
+        sha512 = "brVupxgEAmcZ9cZvdHEH8zncjvGKIiud8pOe4fiimp5NpHmjBLew4jUbnOKNZNAjaidcKUtz//cxtutD6yXEww==";
       };
     };
-    "@aws-sdk/middleware-signing-3.78.0" = {
+    "@aws-sdk/middleware-signing-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-signing";
       packageName = "@aws-sdk/middleware-signing";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.78.0.tgz";
-        sha512 = "OEjJJCNhHHSOprLZ9CzjHIXEKFtPHWP/bG9pMhkV3/6Bmscsgcf8gWHcOnmIrjqX+hT1VALDNpl/RIh0J6/eQw==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.110.0.tgz";
+        sha512 = "y6ZKrGYfgDlFMzWhZmoq5J1UctBgZOUvMmnU9sSeZ020IlEPiOxFMvR0Zu6TcYThp8uy3P0wyjQtGYeTl9Z/kA==";
       };
     };
-    "@aws-sdk/middleware-ssec-3.78.0" = {
+    "@aws-sdk/middleware-ssec-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-ssec";
       packageName = "@aws-sdk/middleware-ssec";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.78.0.tgz";
-        sha512 = "3z+UOd95rxvj+iO6WxMjuRNNUMlO6xhXZdBHvQmoiyS+9nMDcNieTu6gfQyLAilVeCh8xU9a0IenJuIYVdJ96g==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.110.0.tgz";
+        sha512 = "Zrm+h+C+MXv2Q+mh8O/zwK2hUYM4kq4I1vx72RPpvyfIk4/F5ZzeA3LSVluISyAW+iNqS8XFvGFrzl2gB8zWsg==";
       };
     };
-    "@aws-sdk/middleware-stack-3.78.0" = {
+    "@aws-sdk/middleware-stack-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-stack";
       packageName = "@aws-sdk/middleware-stack";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.78.0.tgz";
-        sha512 = "UoNfRh6eAJN3BJHlG1eb+KeuSe+zARTC2cglroJRyHc2j7GxH2i9FD3IJbj5wvzopJEnQzuY/VCs6STFkqWL1g==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-stack/-/middleware-stack-3.110.0.tgz";
+        sha512 = "iaLHw6ctOuGa9UxNueU01Xes+15dR+mqioRpUOUZ9Zx+vhXVpD7C8lnNqhRnYeFXs10/rNIzASgsIrAHTlnlIQ==";
       };
     };
-    "@aws-sdk/middleware-user-agent-3.78.0" = {
+    "@aws-sdk/middleware-user-agent-3.110.0" = {
       name = "_at_aws-sdk_slash_middleware-user-agent";
       packageName = "@aws-sdk/middleware-user-agent";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.78.0.tgz";
-        sha512 = "wdN5uoq8RxxhLhj0EPeuDSRFuXfUwKeEqRzCKMsYAOC0cAm+PryaP2leo0oTGJ9LUK8REK7zyfFcmtC4oOzlkA==";
+        url = "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.110.0.tgz";
+        sha512 = "Y6FgiZr99DilYq6AjeaaWcNwVlSQpNGKrILzvV4Tmz03OaBIspe4KL+8EZ2YA/sAu5Lpw80vItdezqDOwGAlnQ==";
       };
     };
-    "@aws-sdk/node-config-provider-3.80.0" = {
+    "@aws-sdk/node-config-provider-3.110.0" = {
       name = "_at_aws-sdk_slash_node-config-provider";
       packageName = "@aws-sdk/node-config-provider";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.80.0.tgz";
-        sha512 = "vyTOMK04huB7n10ZUv0thd2TE6KlY8livOuLqFTMtj99AJ6vyeB5XBNwKnQtJIt/P7CijYgp8KcFvI9fndOmKg==";
+        url = "https://registry.npmjs.org/@aws-sdk/node-config-provider/-/node-config-provider-3.110.0.tgz";
+        sha512 = "46p4dCPGYctuybTQTwLpjenA1QFHeyJw/OyggGbtUJUy+833+ldnAwcPVML2aXJKUKv3APGI8vq1kaloyNku3Q==";
       };
     };
-    "@aws-sdk/node-http-handler-3.94.0" = {
+    "@aws-sdk/node-http-handler-3.110.0" = {
       name = "_at_aws-sdk_slash_node-http-handler";
       packageName = "@aws-sdk/node-http-handler";
-      version = "3.94.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.94.0.tgz";
-        sha512 = "g9q6k+PS+BrtOzt8jrBWr9D543uB3ZoYZ2JCriwuCwnP4uIHlMf9wAOGcOgqgykfUAPBOLvz2rTwVs3Xl8GUmQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/node-http-handler/-/node-http-handler-3.110.0.tgz";
+        sha512 = "/rP+hY516DpP8fZhwFW5xM/ElH0w6lxw/15VvZCoY5EnOLAF5XIsJdzscWPSEW2FHCylBM4SNrKhGar14BDXhA==";
       };
     };
-    "@aws-sdk/property-provider-3.78.0" = {
+    "@aws-sdk/property-provider-3.110.0" = {
       name = "_at_aws-sdk_slash_property-provider";
       packageName = "@aws-sdk/property-provider";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.78.0.tgz";
-        sha512 = "PZpLvV0hF6lqg3CSN9YmphrB/t5LVJVWGJLB9d9qm7sJs5ksjTYBb5bY91OQ3zit0F4cqBMU8xt2GQ9J6d4DvQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/property-provider/-/property-provider-3.110.0.tgz";
+        sha512 = "7NkpmYeOkK3mhWBNU+/zSDqwzeaSPH1qrq4L//WV7WS/weYyE/jusQeZoOxVsuZQnQEXHt5O2hKVeUwShl12xA==";
       };
     };
-    "@aws-sdk/protocol-http-3.78.0" = {
+    "@aws-sdk/protocol-http-3.110.0" = {
       name = "_at_aws-sdk_slash_protocol-http";
       packageName = "@aws-sdk/protocol-http";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.78.0.tgz";
-        sha512 = "SQB26MhEK96yDxyXd3UAaxLz1Y/ZvgE4pzv7V3wZiokdEedM0kawHKEn1UQJlqJLEZcQI9QYyysh3rTvHZ3fyg==";
+        url = "https://registry.npmjs.org/@aws-sdk/protocol-http/-/protocol-http-3.110.0.tgz";
+        sha512 = "qdi2gCbJiyPyLn+afebPNp/5nVCRh1X7t7IRIFl3FHVEC+o54u/ojay/MLZ4M/+X9Fa4Zxsb0Wpp3T0xAHVDBg==";
       };
     };
-    "@aws-sdk/querystring-builder-3.78.0" = {
+    "@aws-sdk/querystring-builder-3.110.0" = {
       name = "_at_aws-sdk_slash_querystring-builder";
       packageName = "@aws-sdk/querystring-builder";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.78.0.tgz";
-        sha512 = "aib6RW1WAaTQDqVgRU1Ku9idkhm90gJKbCxVaGId+as6QHNUqMChEfK2v+0afuKiPNOs5uWmqvOXI9+Gt+UGDg==";
+        url = "https://registry.npmjs.org/@aws-sdk/querystring-builder/-/querystring-builder-3.110.0.tgz";
+        sha512 = "7V3CDXj519izmbBn9ZE68ymASwGriA+Aq+cb/yHSVtffnvXjPtvONNw7G/5iVblisGLSCUe2hSvpYtcaXozbHw==";
       };
     };
-    "@aws-sdk/querystring-parser-3.78.0" = {
+    "@aws-sdk/querystring-parser-3.110.0" = {
       name = "_at_aws-sdk_slash_querystring-parser";
       packageName = "@aws-sdk/querystring-parser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.78.0.tgz";
-        sha512 = "csaH8YTyN+KMNczeK6fBS8l7iJaqcQcKOIbpQFg5upX4Ly5A56HJn4sVQhY1LSgfSk4xRsNfMy5mu6BlsIiaXA==";
+        url = "https://registry.npmjs.org/@aws-sdk/querystring-parser/-/querystring-parser-3.110.0.tgz";
+        sha512 = "//pJHH7hrhdDMZGBPKXKymmC/tJM7gFT0w/qbu/yd3Wm4W2fMB+8gkmj6EZctx7jrsWlfRQuvFejKqEfapur/g==";
       };
     };
-    "@aws-sdk/s3-request-presigner-3.107.0" = {
+    "@aws-sdk/s3-request-presigner-3.113.0" = {
       name = "_at_aws-sdk_slash_s3-request-presigner";
       packageName = "@aws-sdk/s3-request-presigner";
-      version = "3.107.0";
+      version = "3.113.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.107.0.tgz";
-        sha512 = "sQLnUf+7moyZBMGZLGV5nZWoIY78K3MRz8IYi+2rZIZHyo29kVr+KUPqDo+nDQDCNTnjvnNNK/DmAVlcnPhqmw==";
+        url = "https://registry.npmjs.org/@aws-sdk/s3-request-presigner/-/s3-request-presigner-3.113.0.tgz";
+        sha512 = "ysA+an9LiIRXIUEKsU4OXQ8SNXFnh8pJxaUs5N/TwcamwsUBqNkEtvyNZbUrhnKXxxqBv6/yc5Lvmlho2uebgg==";
       };
     };
-    "@aws-sdk/service-error-classification-3.78.0" = {
+    "@aws-sdk/service-error-classification-3.110.0" = {
       name = "_at_aws-sdk_slash_service-error-classification";
       packageName = "@aws-sdk/service-error-classification";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.78.0.tgz";
-        sha512 = "x7Lx8KWctJa01q4Q72Zb4ol9L/era3vy2daASu8l2paHHxsAPBE0PThkvLdUSLZSzlHSVdh3YHESIsT++VsK4w==";
+        url = "https://registry.npmjs.org/@aws-sdk/service-error-classification/-/service-error-classification-3.110.0.tgz";
+        sha512 = "ccgCE0pU/4RmXR6CP3fLAdhPAve7bK/yXBbGzpSHGAQOXqNxYzOsAvQ30Jg6X+qjLHsI/HR2pLIE65z4k6tynw==";
       };
     };
-    "@aws-sdk/shared-ini-file-loader-3.80.0" = {
+    "@aws-sdk/shared-ini-file-loader-3.110.0" = {
       name = "_at_aws-sdk_slash_shared-ini-file-loader";
       packageName = "@aws-sdk/shared-ini-file-loader";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.80.0.tgz";
-        sha512 = "3d5EBJjnWWkjLK9skqLLHYbagtFaZZy+3jUTlbTuOKhlOwe8jF7CUM3j6I4JA6yXNcB3w0exDKKHa8w+l+05aA==";
+        url = "https://registry.npmjs.org/@aws-sdk/shared-ini-file-loader/-/shared-ini-file-loader-3.110.0.tgz";
+        sha512 = "E1ERoqEoG206XNBYWCKLgHkzCbTxdpDEGbsLET2DnvjFsT0s9p2dPvVux3bYl7JVAhyGduE+qcqWk7MzhFCBNQ==";
       };
     };
-    "@aws-sdk/signature-v4-3.78.0" = {
+    "@aws-sdk/signature-v4-3.110.0" = {
       name = "_at_aws-sdk_slash_signature-v4";
       packageName = "@aws-sdk/signature-v4";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.78.0.tgz";
-        sha512 = "eePjRYuzKoi3VMr/lgrUEF1ytLeH4fA/NMCykr/uR6NMo4bSJA59KrFLYSM7SlWLRIyB0UvJqygVEvSxFluyDw==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4/-/signature-v4-3.110.0.tgz";
+        sha512 = "utxxdllOnmQDhbpipnFAbuQ4c2pwefZ+2hi48jKvQRULQ2PO4nxLmdZm6B0FXaTijbKsyO7GrMik+EZ6mi3ARQ==";
       };
     };
-    "@aws-sdk/signature-v4-multi-region-3.88.0" = {
+    "@aws-sdk/signature-v4-multi-region-3.110.0" = {
       name = "_at_aws-sdk_slash_signature-v4-multi-region";
       packageName = "@aws-sdk/signature-v4-multi-region";
-      version = "3.88.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.88.0.tgz";
-        sha512 = "RBbyQRpohlIQiuZc5qAvwbXO0Bob9XhHFS/kuLh+DcyeaBp+m+Bt291FX1Ksz2A0Q3ETNM34LFt7kTOBtMvjIQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.110.0.tgz";
+        sha512 = "D5nlq6em9fU9EMmpjQtLItr2d6MmfM9yofOaeNQcgY8wFJEOCc2ADccq8dCO0F4twakAvjuUIkBAWMBviiuC7Q==";
       };
     };
-    "@aws-sdk/smithy-client-3.99.0" = {
+    "@aws-sdk/smithy-client-3.110.0" = {
       name = "_at_aws-sdk_slash_smithy-client";
       packageName = "@aws-sdk/smithy-client";
-      version = "3.99.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.99.0.tgz";
-        sha512 = "N9xgCcwbOBZ4/WuROzlErExXV6+vFrFkNJzeBT31/avvrHXjxgxwQlMoXoQCfM8PyRuDuVSfZeoh1iIRfoxidA==";
+        url = "https://registry.npmjs.org/@aws-sdk/smithy-client/-/smithy-client-3.110.0.tgz";
+        sha512 = "gNLYrmdAe/1hVF2Nv2LF4OkL1A0a1o708pEMZHzql9xP164omRDaLrGDhz9tH7tsJEgLz+Bf4E8nTuISeDwvGg==";
       };
     };
-    "@aws-sdk/types-3.78.0" = {
+    "@aws-sdk/types-3.110.0" = {
       name = "_at_aws-sdk_slash_types";
       packageName = "@aws-sdk/types";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.78.0.tgz";
-        sha512 = "I9PTlVNSbwhIgMfmDM5as1tqRIkVZunjVmfogb2WVVPp4CaX0Ll01S0FSMSLL9k6tcQLXqh45pFRjrxCl9WKdQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/types/-/types-3.110.0.tgz";
+        sha512 = "dLVoqODU3laaqNFPyN1QLtlQnwX4gNPMXptEBIt/iJpuZf66IYJe6WCzVZGt4Zfa1CnUmrlA428AzdcA/KCr2A==";
       };
     };
-    "@aws-sdk/url-parser-3.78.0" = {
+    "@aws-sdk/url-parser-3.110.0" = {
       name = "_at_aws-sdk_slash_url-parser";
       packageName = "@aws-sdk/url-parser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.78.0.tgz";
-        sha512 = "iQn2AjECUoJE0Ae9XtgHtGGKvUkvE8hhbktGopdj+zsPBe4WrBN2DgVxlKPPrBonG/YlcL1D7a5EXaujWSlUUw==";
+        url = "https://registry.npmjs.org/@aws-sdk/url-parser/-/url-parser-3.110.0.tgz";
+        sha512 = "tILFB8/Q73yzgO0dErJNnELmmBszd0E6FucwAnG3hfDefjqCBe09Q/1yhu2aARXyRmZa4AKp0sWcdwIWHc8dnA==";
       };
     };
     "@aws-sdk/util-arn-parser-3.55.0" = {
@@ -976,13 +985,13 @@ let
         sha512 = "76KJxp4MRWufHYWys7DFl64znr5yeJ3AIQNAPCKKw1sP0hzO7p6Kx0PaJnw9x+CPSzOrT4NbuApL6/srYhKDGg==";
       };
     };
-    "@aws-sdk/util-base64-browser-3.58.0" = {
+    "@aws-sdk/util-base64-browser-3.109.0" = {
       name = "_at_aws-sdk_slash_util-base64-browser";
       packageName = "@aws-sdk/util-base64-browser";
-      version = "3.58.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.58.0.tgz";
-        sha512 = "0ebsXIZNpu/fup9OgsFPnRKfCFbuuI9PPRzvP6twzLxUB0c/aix6Co7LGHFKcRKHZdaykoJMXArf8eHj2Nzv1Q==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-base64-browser/-/util-base64-browser-3.109.0.tgz";
+        sha512 = "lAZ6fyDGiRLaIsKT9qh7P9FGuNyZ4gAbr1YOSQk/5mHtaTuUvxlPptZuInNM/0MPQm6lpcot00D8IWTucn4PbA==";
       };
     };
     "@aws-sdk/util-base64-node-3.55.0" = {
@@ -1021,58 +1030,58 @@ let
         sha512 = "uVzKG1UgvnV7XX2FPTylBujYMKBPBaq/qFBxfl0LVNfrty7YjpfieQxAe6yRLD+T0Kir/WDQwGvYC+tOYG3IGA==";
       };
     };
-    "@aws-sdk/util-config-provider-3.55.0" = {
+    "@aws-sdk/util-config-provider-3.109.0" = {
       name = "_at_aws-sdk_slash_util-config-provider";
       packageName = "@aws-sdk/util-config-provider";
-      version = "3.55.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.55.0.tgz";
-        sha512 = "30dzofQQfx6tp1jVZkZ0DGRsT0wwC15nEysKRiAcjncM64A0Cm6sra77d0os3vbKiKoPCI/lMsFr4o3533+qvQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-config-provider/-/util-config-provider-3.109.0.tgz";
+        sha512 = "GrAZl/aBv0A28LkyNyq8SPJ5fmViCwz80fWLMeWx/6q5AbivuILogjlWwEZSvZ9zrlHOcFC0+AnCa5pQrjaslw==";
       };
     };
-    "@aws-sdk/util-create-request-3.99.0" = {
+    "@aws-sdk/util-create-request-3.110.0" = {
       name = "_at_aws-sdk_slash_util-create-request";
       packageName = "@aws-sdk/util-create-request";
-      version = "3.99.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.99.0.tgz";
-        sha512 = "7+jM8xe2u5FW7ufRqHTmvJa7nH9f8uZXuWpHcmITKm8IRnkst1ib1DUctEZE+go9lnonzy4TttSNMt5NqFCgOA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-create-request/-/util-create-request-3.110.0.tgz";
+        sha512 = "8u+6WjzVNUdG4181y/zafIlGJ80qdSIKo09utlY7kvSZhYeufjkgMLhJtthb9uEEmXNn/UlKGJNRbGChjSL4Xw==";
       };
     };
-    "@aws-sdk/util-defaults-mode-browser-3.99.0" = {
+    "@aws-sdk/util-defaults-mode-browser-3.110.0" = {
       name = "_at_aws-sdk_slash_util-defaults-mode-browser";
       packageName = "@aws-sdk/util-defaults-mode-browser";
-      version = "3.99.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.99.0.tgz";
-        sha512 = "qSYjUGuN8n7Q/zAi0tzU4BrU389jQosXtjp7eHpLATl0pKGpaHx6rJNwbiNhvBhBEfmSgqsJ09b4gZUpUezHEw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-browser/-/util-defaults-mode-browser-3.110.0.tgz";
+        sha512 = "Y2dcOOD20S3bv/IjUqpdKIiDt6995SXNG5Pu/LeSdXNyLCOIm9rX4gHTxl9fC1KK5M/gR9fGJ362f67WwqEEqw==";
       };
     };
-    "@aws-sdk/util-defaults-mode-node-3.99.0" = {
+    "@aws-sdk/util-defaults-mode-node-3.110.0" = {
       name = "_at_aws-sdk_slash_util-defaults-mode-node";
       packageName = "@aws-sdk/util-defaults-mode-node";
-      version = "3.99.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.99.0.tgz";
-        sha512 = "8TUO0kEnQcgT1gAW9y9oO6a5gKhfEGEUeKidEgbTczEUrjr3aCXIC+p0DI5FJfImwPrTKXra8A22utDM92phWw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-defaults-mode-node/-/util-defaults-mode-node-3.110.0.tgz";
+        sha512 = "Cr3Z5nyrw1KowjbW76xp8hkT/zJtYjAVZ9PS4l84KxIicbVvDOBpxG3yNddkuQcavmlH6G4wH9uM5DcnpKDncg==";
       };
     };
-    "@aws-sdk/util-format-url-3.78.0" = {
+    "@aws-sdk/util-format-url-3.110.0" = {
       name = "_at_aws-sdk_slash_util-format-url";
       packageName = "@aws-sdk/util-format-url";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.78.0.tgz";
-        sha512 = "wdjt8ZAMyBrH/02QrQtB+S9cwtsBJ6bXRJ3XwL6z7L75nwTflKkzOQUS5Ie7HBf3j3JH0KhlqlEbf2nnM9jsPQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-format-url/-/util-format-url-3.110.0.tgz";
+        sha512 = "NES/Kf92stj6bMl3WyaKFlA5yKbYlb357buoXKv51MnjcLL6NAgIWm0lMQv6UgzLVTxKdbw4BxErpSiKM+10Xg==";
       };
     };
-    "@aws-sdk/util-hex-encoding-3.58.0" = {
+    "@aws-sdk/util-hex-encoding-3.109.0" = {
       name = "_at_aws-sdk_slash_util-hex-encoding";
       packageName = "@aws-sdk/util-hex-encoding";
-      version = "3.58.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.58.0.tgz";
-        sha512 = "Rl+jXUzk/FJkOLYfUVYPhKa2aUmTpeobRP31l8IatQltSzDgLyRHO35f6UEs7Ztn5s1jbu/POatLAZ2WjbgVyg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-hex-encoding/-/util-hex-encoding-3.109.0.tgz";
+        sha512 = "s8CgTNrn3cLkrdiohfxLuOYPCanzvHn/aH5RW6DaMoeQiG5Hl9QUiP/WtdQ9QQx3xvpQFpmvxIaSBwSgFNLQxA==";
       };
     };
     "@aws-sdk/util-locate-window-3.55.0" = {
@@ -1084,31 +1093,31 @@ let
         sha512 = "0sPmK2JaJE2BbTcnvybzob/VrFKCXKfN4CUKcvn0yGg/me7Bz+vtzQRB3Xp+YSx+7OtWxzv63wsvHoAnXvgxgg==";
       };
     };
-    "@aws-sdk/util-middleware-3.78.0" = {
+    "@aws-sdk/util-middleware-3.110.0" = {
       name = "_at_aws-sdk_slash_util-middleware";
       packageName = "@aws-sdk/util-middleware";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.78.0.tgz";
-        sha512 = "Hi3wv2b0VogO4mzyeEaeU5KgIt4qeo0LXU5gS6oRrG0T7s2FyKbMBkJW3YDh/Y8fNwqArZ+/QQFujpP0PIKwkA==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-middleware/-/util-middleware-3.110.0.tgz";
+        sha512 = "PTVWrI5fA9d5hHJs6RzX2dIS2jRQ3uW073Fm0BePpQeDdZrEk+S5KNwRhUtpN6sdSV45vm6S9rrjZUG51qwGmA==";
       };
     };
-    "@aws-sdk/util-stream-browser-3.78.0" = {
+    "@aws-sdk/util-stream-browser-3.110.0" = {
       name = "_at_aws-sdk_slash_util-stream-browser";
       packageName = "@aws-sdk/util-stream-browser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.78.0.tgz";
-        sha512 = "EcThf/sJoD4NYTUNO/nehR57lqkOuL6btRoVnm4LGUR8XgQcJ/WMYYgxOMY8E81xXzRFX2ukRHRxL2xmQsbHDw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-stream-browser/-/util-stream-browser-3.110.0.tgz";
+        sha512 = "kAMrHtgrhr6ODRnzt/V+LSDVDvejcbdUp19n4My2vrPwKw3lM65vT+FAPIlGeDQBtOOhmlTbrYM3G3KKnlnHyg==";
       };
     };
-    "@aws-sdk/util-stream-node-3.78.0" = {
+    "@aws-sdk/util-stream-node-3.110.0" = {
       name = "_at_aws-sdk_slash_util-stream-node";
       packageName = "@aws-sdk/util-stream-node";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.78.0.tgz";
-        sha512 = "CHfX37ioUyamAnlS2p4Nq+4BBjCSlZolFkVyxtVJwzPBBksdvjW67nKG+SShR48RBPJ5LEzbgAaEXNRktCSf6w==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-stream-node/-/util-stream-node-3.110.0.tgz";
+        sha512 = "jgkO7aLRpE3EUqU5XUdo0FmlyBVCFHKyHd/jdEN8h9+XMa44rl2QMdOSFQtwaNI4NC8J+OC66u2dQ+8QQnOLig==";
       };
     };
     "@aws-sdk/util-uri-escape-3.55.0" = {
@@ -1120,58 +1129,58 @@ let
         sha512 = "mmdDLUpFCN2nkfwlLdOM54lTD528GiGSPN1qb8XtGLgZsJUmg3uJSFIN2lPeSbEwJB3NFjVas/rnQC48i7mV8w==";
       };
     };
-    "@aws-sdk/util-user-agent-browser-3.78.0" = {
+    "@aws-sdk/util-user-agent-browser-3.110.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-browser";
       packageName = "@aws-sdk/util-user-agent-browser";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.78.0.tgz";
-        sha512 = "diGO/Bf4ggBOEnfD7lrrXaaXOwOXGz0bAJ0HhpizwEMlBld5zfDlWXjNpslh+8+u3EHRjPJQ16KGT6mp/Dm+aw==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.110.0.tgz";
+        sha512 = "rNdhmHDMV5dNJctqlBWimkZLJRB+x03DB+61pm+SKSFk6gPIVIvc1WNXqDFphkiswT4vA13ZUkGHzt+N4+noQQ==";
       };
     };
-    "@aws-sdk/util-user-agent-node-3.80.0" = {
+    "@aws-sdk/util-user-agent-node-3.110.0" = {
       name = "_at_aws-sdk_slash_util-user-agent-node";
       packageName = "@aws-sdk/util-user-agent-node";
-      version = "3.80.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.80.0.tgz";
-        sha512 = "QV26qIXws1m6sZXg65NS+XrQ5NhAzbDVQLtEVE4nC39UN8fuieP6Uet/gZm9mlLI9hllwvcV7EfgBM3GSC7pZg==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.110.0.tgz";
+        sha512 = "OQ915TPCCBwZWz5Np8zkNWn7U6KvrTZfFoCOy/VIemK3dUqmnBZ7HqGpuZx8SwJ2R9JE1x+j0niYSJ5fWJZZKA==";
       };
     };
-    "@aws-sdk/util-utf8-browser-3.55.0" = {
+    "@aws-sdk/util-utf8-browser-3.109.0" = {
       name = "_at_aws-sdk_slash_util-utf8-browser";
       packageName = "@aws-sdk/util-utf8-browser";
-      version = "3.55.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.55.0.tgz";
-        sha512 = "ljzqJcyjfJpEVSIAxwtIS8xMRUly84BdjlBXyp6cu4G8TUufgjNS31LWdhyGhgmW5vYBNr+LTz0Kwf6J+ou7Ug==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.109.0.tgz";
+        sha512 = "FmcGSz0v7Bqpl1SE8G1Gc0CtDpug+rvqNCG/szn86JApD/f5x8oByjbEiAyTU2ZH2VevUntx6EW68ulHyH+x+w==";
       };
     };
-    "@aws-sdk/util-utf8-node-3.55.0" = {
+    "@aws-sdk/util-utf8-node-3.109.0" = {
       name = "_at_aws-sdk_slash_util-utf8-node";
       packageName = "@aws-sdk/util-utf8-node";
-      version = "3.55.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.55.0.tgz";
-        sha512 = "FsFm7GFaC7j0tlPEm/ri8bU2QCwFW5WKjxUg8lm1oWaxplCpKGUsmcfPJ4sw58GIoyoGu4QXBK60oCWosZYYdQ==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-utf8-node/-/util-utf8-node-3.109.0.tgz";
+        sha512 = "Ti/ZBdvz2eSTElsucjzNmzpyg2MwfD1rXmxD0hZuIF8bPON/0+sZYnWd5CbDw9kgmhy28dmKue086tbZ1G0iLQ==";
       };
     };
-    "@aws-sdk/util-waiter-3.78.0" = {
+    "@aws-sdk/util-waiter-3.110.0" = {
       name = "_at_aws-sdk_slash_util-waiter";
       packageName = "@aws-sdk/util-waiter";
-      version = "3.78.0";
+      version = "3.110.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.78.0.tgz";
-        sha512 = "8pWd0XiNOS8AkWQyac8VNEI+gz/cGWlC2TAE2CJp0rOK5XhvlcNBINai4D6TxQ+9foyJXLOI1b8nuXemekoG8A==";
+        url = "https://registry.npmjs.org/@aws-sdk/util-waiter/-/util-waiter-3.110.0.tgz";
+        sha512 = "8dE6W6XYfjk1gx/aeb8NeLfMMLkLFhlV1lmKpFSBJhY8msajU8aQahTuykq5JW8QT/wCGbqbu7dH35SdX7kO+A==";
       };
     };
-    "@aws-sdk/xml-builder-3.55.0" = {
+    "@aws-sdk/xml-builder-3.109.0" = {
       name = "_at_aws-sdk_slash_xml-builder";
       packageName = "@aws-sdk/xml-builder";
-      version = "3.55.0";
+      version = "3.109.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.55.0.tgz";
-        sha512 = "BH+i5S2FLprmfSeIuGy3UbNtEoJPVjh8arl5+LV3i2KY/+TmrS4yT8JtztDlDxHF0cMtNLZNO0KEPtsACS6SOg==";
+        url = "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.109.0.tgz";
+        sha512 = "+aAXynnrqya1Eukz4Gxch4xIXCZolIMWGD4Ll/Q5yXT5uAjGh2HQWd9J0LWE+gYChpWetZbAVYZ3cEJ6F+SpZA==";
       };
     };
     "@azu/format-text-1.0.1" = {
@@ -1228,22 +1237,22 @@ let
         sha512 = "iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==";
       };
     };
-    "@babel/compat-data-7.17.10" = {
+    "@babel/compat-data-7.18.5" = {
       name = "_at_babel_slash_compat-data";
       packageName = "@babel/compat-data";
-      version = "7.17.10";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz";
-        sha512 = "GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==";
+        url = "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.5.tgz";
+        sha512 = "BxhE40PVCBxVEJsSBhB6UWyAuqJRxGsAw8BdHMJ3AKGydcwuWW4kOO3HmqBQAdcq/OP+/DlTVxLvsCzRTnZuGg==";
       };
     };
-    "@babel/core-7.18.2" = {
+    "@babel/core-7.18.5" = {
       name = "_at_babel_slash_core";
       packageName = "@babel/core";
-      version = "7.18.2";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz";
-        sha512 = "A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==";
+        url = "https://registry.npmjs.org/@babel/core/-/core-7.18.5.tgz";
+        sha512 = "MGY8vg3DxMnctw0LdvSEojOsumc70g0t18gNyUdAZqB1Rpd1Bqo/svHGvt+UJ6JcGX+DIekGFDxxIWofBxLCnQ==";
       };
     };
     "@babel/core-7.9.0" = {
@@ -1489,13 +1498,13 @@ let
         sha512 = "7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==";
       };
     };
-    "@babel/node-7.17.10" = {
+    "@babel/node-7.18.5" = {
       name = "_at_babel_slash_node";
       packageName = "@babel/node";
-      version = "7.17.10";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/node/-/node-7.17.10.tgz";
-        sha512 = "sFFMyvw23U8QOcTnLJnw2/Myr01e4+iLVy7rHAHrNSnXAfnwS3j2NqihpmZm7TotyNKKf/y8cJ96T5asY46eyw==";
+        url = "https://registry.npmjs.org/@babel/node/-/node-7.18.5.tgz";
+        sha512 = "zv94ESipS2/YKAOJ+/WAfVEzsl9M8UmPZ7Hwx5qVPgytdrgwUPxfi700iR9KO/w5ZhIHyFyvoZtCTSEcQJF8vQ==";
       };
     };
     "@babel/parser-7.17.10" = {
@@ -1507,13 +1516,13 @@ let
         sha512 = "n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==";
       };
     };
-    "@babel/parser-7.18.4" = {
+    "@babel/parser-7.18.5" = {
       name = "_at_babel_slash_parser";
       packageName = "@babel/parser";
-      version = "7.18.4";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz";
-        sha512 = "FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==";
+        url = "https://registry.npmjs.org/@babel/parser/-/parser-7.18.5.tgz";
+        sha512 = "YZWVaglMiplo7v8f1oMQ5ZPQr0vn7HPeZXxXWsxXJRjGVrzUFn9OxFQl1sb5wzfootjA/yChhW84BV+383FSOw==";
       };
     };
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12" = {
@@ -2002,13 +2011,13 @@ let
         sha512 = "f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==";
       };
     };
-    "@babel/plugin-transform-modules-systemjs-7.18.4" = {
+    "@babel/plugin-transform-modules-systemjs-7.18.5" = {
       name = "_at_babel_slash_plugin-transform-modules-systemjs";
       packageName = "@babel/plugin-transform-modules-systemjs";
-      version = "7.18.4";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz";
-        sha512 = "lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.5.tgz";
+        sha512 = "SEewrhPpcqMF1V7DhnEbhVJLrC+nnYfe1E0piZMZXBpxi9WvZqWGwpsk7JYP7wPWeqaBh4gyKlBhHJu3uz5g4Q==";
       };
     };
     "@babel/plugin-transform-modules-umd-7.18.0" = {
@@ -2029,13 +2038,13 @@ let
         sha512 = "vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==";
       };
     };
-    "@babel/plugin-transform-new-target-7.17.12" = {
+    "@babel/plugin-transform-new-target-7.18.5" = {
       name = "_at_babel_slash_plugin-transform-new-target";
       packageName = "@babel/plugin-transform-new-target";
-      version = "7.17.12";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz";
-        sha512 = "CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.5.tgz";
+        sha512 = "TuRL5uGW4KXU6OsRj+mLp9BM7pO8e7SGNTEokQRRxHFkXYMFiy2jlKSZPFtI/mKORDzciH+hneskcSOp0gU8hg==";
       };
     };
     "@babel/plugin-transform-object-super-7.16.7" = {
@@ -2119,13 +2128,13 @@ let
         sha512 = "1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==";
       };
     };
-    "@babel/plugin-transform-runtime-7.18.2" = {
+    "@babel/plugin-transform-runtime-7.18.5" = {
       name = "_at_babel_slash_plugin-transform-runtime";
       packageName = "@babel/plugin-transform-runtime";
-      version = "7.18.2";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz";
-        sha512 = "mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==";
+        url = "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.5.tgz";
+        sha512 = "Q17hHxXr2fplrE+5BSC1j1Fo5cOA8YeP8XW3/1paI8MzF/faZGh0MaH1KC4jLAvqLPamQWHB5/B7KqSLY1kuHA==";
       };
     };
     "@babel/plugin-transform-shorthand-properties-7.16.7" = {
@@ -2272,15 +2281,6 @@ let
         sha512 = "fg56SwvXRifootQEDQAu1mKdjh5uthPzdO0N6t358FktfL4XjAVXuH58ULoiW8mesxiOgNIrxiImqEwv0+hRRA==";
       };
     };
-    "@babel/runtime-7.13.9" = {
-      name = "_at_babel_slash_runtime";
-      packageName = "@babel/runtime";
-      version = "7.13.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/runtime/-/runtime-7.13.9.tgz";
-        sha512 = "aY2kU+xgJ3dJ1eU6FMB9EH8dIe8dmusF1xEku52joLvw6eAFN0AI+WxCLDnpev2LEejWBAy2sBvBOBAjI3zmvA==";
-      };
-    };
     "@babel/runtime-7.18.3" = {
       name = "_at_babel_slash_runtime";
       packageName = "@babel/runtime";
@@ -2317,13 +2317,13 @@ let
         sha512 = "I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==";
       };
     };
-    "@babel/traverse-7.18.2" = {
+    "@babel/traverse-7.18.5" = {
       name = "_at_babel_slash_traverse";
       packageName = "@babel/traverse";
-      version = "7.18.2";
+      version = "7.18.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz";
-        sha512 = "9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==";
+        url = "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.5.tgz";
+        sha512 = "aKXj1KT66sBj0vVzk6rEeAO6Z9aiiQ68wfDgge3nHhA/my6xMM/7HGQUNumKZaoa2qUPQ5whJG9aAifsxUKfLA==";
       };
     };
     "@babel/types-7.17.10" = {
@@ -2353,13 +2353,13 @@ let
         sha512 = "ANRQZT5h9+zC8B/y0S9B+SqEpicL0XRT4drAhiPFHBrOStRZWzOh3bPrwNSPqr7tdShxYtMyxbH+fkHMetZaxg==";
       };
     };
-    "@blueprintjs/core-4.4.1" = {
+    "@blueprintjs/core-4.5.1" = {
       name = "_at_blueprintjs_slash_core";
       packageName = "@blueprintjs/core";
-      version = "4.4.1";
+      version = "4.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@blueprintjs/core/-/core-4.4.1.tgz";
-        sha512 = "gYHpu0u30R7wWlQljHX0Y+Rf2F2NJI965bMio3GcrI3L3T86jA2w1w+5bNQ/v04o7GdNwKHmuF8CG73kYB0LJQ==";
+        url = "https://registry.npmjs.org/@blueprintjs/core/-/core-4.5.1.tgz";
+        sha512 = "CrMkeuvVo+GD/hv6T9W6GNWvTJ7TGpzs2r3v0zO1lMfAYj4v2gaisSXQQ2HziT7zO/kYDyu9aRpbGv0KSvryQA==";
       };
     };
     "@blueprintjs/icons-4.3.0" = {
@@ -2641,31 +2641,31 @@ let
         sha512 = "do5jDoX9oCR/dGHE4POVQ3PYDCmQ2Fow4CA72UL4WoE8zUImA/0lChczjfl+ucNjE4sXFWUnzoO6j4WzrUvLnw==";
       };
     };
-    "@cspell/cspell-bundled-dicts-6.1.1" = {
+    "@cspell/cspell-bundled-dicts-6.1.2" = {
       name = "_at_cspell_slash_cspell-bundled-dicts";
       packageName = "@cspell/cspell-bundled-dicts";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.1.1.tgz";
-        sha512 = "zv0VQsbzIC37Swbg4eXT/SzOtdDxogFV/vfn4fXhgnWTh7jtx+DVcEKJkw51eGcF9m8pPxYMeBiYEJPOXhWxRg==";
+        url = "https://registry.npmjs.org/@cspell/cspell-bundled-dicts/-/cspell-bundled-dicts-6.1.2.tgz";
+        sha512 = "vMS15jKPNH93Fv0bu/lrTSmXKt6hDCEEwOIyajO84cJMuKRVuR9Vw0ZtkFsVAwHyTNZ8mGxposQ20TbAL/SUlw==";
       };
     };
-    "@cspell/cspell-pipe-6.1.1" = {
+    "@cspell/cspell-pipe-6.1.2" = {
       name = "_at_cspell_slash_cspell-pipe";
       packageName = "@cspell/cspell-pipe";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.1.1.tgz";
-        sha512 = "P18BgA7vDnoaGj1SmoSpUAJ/dy+iuJb2bvPBthHO79MA9Ac7hXkRGvSmYb6GPM1WIKcRXmWsUJ6e4UasWCaenA==";
+        url = "https://registry.npmjs.org/@cspell/cspell-pipe/-/cspell-pipe-6.1.2.tgz";
+        sha512 = "QPbRsumSbu2h6Sdls2bv6FeLFBvs+XSSOmBwVXTaRu6Vl0hEi3P69BiHIWTYQqWTe2NYZnW8lpXUh5/J8/nolw==";
       };
     };
-    "@cspell/cspell-types-6.1.1" = {
+    "@cspell/cspell-types-6.1.2" = {
       name = "_at_cspell_slash_cspell-types";
       packageName = "@cspell/cspell-types";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.1.1.tgz";
-        sha512 = "TetE43cGzDiP11+t83aYreh/cnDXd77f52OPsLQjfll62ZxTD5b94d7dCpvbWRNtWmv2EFMRuV1e3f70UmlYrQ==";
+        url = "https://registry.npmjs.org/@cspell/cspell-types/-/cspell-types-6.1.2.tgz";
+        sha512 = "EENGQ469e3mTpSWfMF/GS29eOAAONiavdVF/uiV8kcxf8SqfkMJvVjFZ1w0KgC80pnCVUzRzMBO4HKmXPj6Ncg==";
       };
     };
     "@cspell/dict-ada-2.0.0" = {
@@ -2758,13 +2758,13 @@ let
         sha512 = "GkJdJv6cmzrKcmq2/oxTXjKF5uv71r4eTqnFmgPbNBW1t+G4VYpzOf0QrVQrhx2RC4DdW5XfcTf+iS0FxHOTmw==";
       };
     };
-    "@cspell/dict-docker-1.1.0" = {
+    "@cspell/dict-docker-1.1.1" = {
       name = "_at_cspell_slash_dict-docker";
       packageName = "@cspell/dict-docker";
-      version = "1.1.0";
+      version = "1.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.0.tgz";
-        sha512 = "2OI5srKxeoiOnAD34jGK2pDGbgeQDnBCuE64bM04Uct7QxPjIv1RDpWLa3VMWhFIzeoyNSNWwDB+x5ufVc6VXA==";
+        url = "https://registry.npmjs.org/@cspell/dict-docker/-/dict-docker-1.1.1.tgz";
+        sha512 = "UEYoeRDm7oUN9yz1mYSozz6D4+2N14S/cd2Re9et6Xzq6yi62s4ky3knF92Of2weelADjnN41UA22VBhRAf7Sw==";
       };
     };
     "@cspell/dict-dotnet-2.0.1" = {
@@ -2794,22 +2794,22 @@ let
         sha512 = "tKSSUf9BJEV+GJQAYGw5e+ouhEe2ZXE620S7BLKe3ZmpnjlNG9JqlnaBhkIMxKnNFkLY2BP/EARzw31AZnOv4g==";
       };
     };
-    "@cspell/dict-en_us-2.2.5" = {
+    "@cspell/dict-en_us-2.2.6" = {
       name = "_at_cspell_slash_dict-en_us";
       packageName = "@cspell/dict-en_us";
-      version = "2.2.5";
+      version = "2.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.2.5.tgz";
-        sha512 = "gRHem02ZY83AQUTYBxtiVNmtM6gWFCJKumRoAKLj7vWYelmNLcCBsMA3BOOOJ7cZNKCI04lDEdh0u2f2akKZtQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-en_us/-/dict-en_us-2.2.6.tgz";
+        sha512 = "TJ4edLus8TV6Tr7ceOxHG5ZV2MhKJioteNT9jhdcSTdySsfQJjDAx6AIGiVVeRu5s9yR61oL5In7UyMCA80RWQ==";
       };
     };
-    "@cspell/dict-filetypes-2.0.1" = {
+    "@cspell/dict-filetypes-2.0.2" = {
       name = "_at_cspell_slash_dict-filetypes";
       packageName = "@cspell/dict-filetypes";
-      version = "2.0.1";
+      version = "2.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-2.0.1.tgz";
-        sha512 = "bQ7K3U/3hKO2lpQjObf0veNP/n50qk5CVezSwApMBckf/sAVvDTR1RGAvYdr+vdQnkdQrk6wYmhbshXi0sLDVg==";
+        url = "https://registry.npmjs.org/@cspell/dict-filetypes/-/dict-filetypes-2.0.2.tgz";
+        sha512 = "do7/Iwxjx+FHybe6UTocsWNRF1ar4cwhQoV2K2YzYTm73CoU5LMEwi2LY0Mwp/mn90TKbpPPQGCJ0sRpvaZ4AA==";
       };
     };
     "@cspell/dict-fonts-2.0.0" = {
@@ -2857,13 +2857,13 @@ let
         sha512 = "cjX1Br+gSWqtcmJD/IMHz1UoP3pUaKIIKy/JfhEs7ANtRt6hhfEKe9dl2kQzDkkKt4pXol+YgdYxL/sVc/nLgQ==";
       };
     };
-    "@cspell/dict-html-3.0.1" = {
+    "@cspell/dict-html-3.0.2" = {
       name = "_at_cspell_slash_dict-html";
       packageName = "@cspell/dict-html";
-      version = "3.0.1";
+      version = "3.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-3.0.1.tgz";
-        sha512 = "sbuFd+nSjgbrGf5eYwSddFhm1eLLePKWyH6Zn8Zb0OODrBK5e4vGn1/scI/MOH5a2IvNs8W9wp84uMBFJcQZtw==";
+        url = "https://registry.npmjs.org/@cspell/dict-html/-/dict-html-3.0.2.tgz";
+        sha512 = "ugMVQHZTvpYA/w8/E2dbSx2hdfFU9y91Omx40VUC6cNyF7jx00VKueK6gcRF3QZoB1PUhjla2YzxqRxuXI908A==";
       };
     };
     "@cspell/dict-html-symbol-entities-3.0.0" = {
@@ -2875,22 +2875,22 @@ let
         sha512 = "04K7cPTcbYXmHICfiob4gZA1yaj4hpfM+Nl5WIJ1EAZsSGHdqmGEF28GuCjyQ8ZeKiJAsPt/vXuLBbjxkHqZyQ==";
       };
     };
-    "@cspell/dict-java-3.0.2" = {
+    "@cspell/dict-java-3.0.3" = {
       name = "_at_cspell_slash_dict-java";
       packageName = "@cspell/dict-java";
-      version = "3.0.2";
+      version = "3.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-3.0.2.tgz";
-        sha512 = "OUhtLruqN+ztDEViEQDw22L883xaignSZHyl7CnD8rTwcuhcaumdAhu4c3mygIDnFGtk/a+pk4ZaXk1ZINvK7g==";
+        url = "https://registry.npmjs.org/@cspell/dict-java/-/dict-java-3.0.3.tgz";
+        sha512 = "aARF22BmO03YgV0robADNVf32KnvF/wMMoByYQk4IaQWh8kJ1s///S44aY/4n/Cg2tX/1kNa60VMkdCNFD7FPw==";
       };
     };
-    "@cspell/dict-latex-2.0.5" = {
+    "@cspell/dict-latex-2.0.6" = {
       name = "_at_cspell_slash_dict-latex";
       packageName = "@cspell/dict-latex";
-      version = "2.0.5";
+      version = "2.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-2.0.5.tgz";
-        sha512 = "r6aOaLWzvH3lZteVo/TiS6Ee2vng2qDwtvHLEHrzsq/SaIeHb6FoKJxnMpaNE1H85G/LMkG0LA1tMtl0C3JxsQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-latex/-/dict-latex-2.0.6.tgz";
+        sha512 = "DCe/YlUMnY+/BaaHLIs2LYPgpWF4to5V9lggEkJy4CsHyD0WPqV4JpoaOMrcsK/jbUrD39T91NruwlcPJoo7xQ==";
       };
     };
     "@cspell/dict-lorem-ipsum-2.0.0" = {
@@ -2983,13 +2983,13 @@ let
         sha512 = "qGqhYfFeoBOashv/l0Kj5o4ilyvfq0s+t+r32juPOkOnbHz+hzxnJo2tMMg/L/UdjVV7Y8ovg4LDBC/seVrMYQ==";
       };
     };
-    "@cspell/dict-rust-2.0.0" = {
+    "@cspell/dict-rust-2.0.1" = {
       name = "_at_cspell_slash_dict-rust";
       packageName = "@cspell/dict-rust";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-2.0.0.tgz";
-        sha512 = "EWlQivTKXMU3TTcq/Pi6KPKTQADknasQ700UrxRPzxhwQ4sKVZ88GDu6VZJlsbFUz8Vko289KS6wjiox/7WpmQ==";
+        url = "https://registry.npmjs.org/@cspell/dict-rust/-/dict-rust-2.0.1.tgz";
+        sha512 = "ATDpIh0VWpQdUIZa8zqqJY4wQz3q00BTXlQCodeOmObYSb23+L6KWWzJ8mKLgpbc1lqTkogWrqxiCxlrCmqNmg==";
       };
     };
     "@cspell/dict-scala-2.0.0" = {
@@ -3064,13 +3064,13 @@ let
         sha512 = "IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==";
       };
     };
-    "@csstools/selector-specificity-2.0.0" = {
+    "@csstools/selector-specificity-2.0.1" = {
       name = "_at_csstools_slash_selector-specificity";
       packageName = "@csstools/selector-specificity";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.0.tgz";
-        sha512 = "rZ6vufeY/UjAgtyiJ4WvfF6XP6HizIyOfbZOg0RnecIwjrvH8Am3nN1BpKnnPZunYAkUcPPXDhwbxOtGop8cfQ==";
+        url = "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.1.tgz";
+        sha512 = "aG20vknL4/YjQF9BSV7ts4EWm/yrjagAN7OWBNmlbEOUiu0llj4OGrFoOKK3g2vey4/p2omKCoHrWtPxSwV3HA==";
       };
     };
     "@cycle/dom-18.3.0" = {
@@ -3154,31 +3154,31 @@ let
         sha512 = "MdsQTo1Q18IUP3yMADQHDeWlVCq9p+LV96+dKCyNSBffaZ/5nE4J+Rbldd9QjPyVL615Hp4m9cubVfk/iAIjyA==";
       };
     };
-    "@devicefarmer/adbkit-2.11.3" = {
+    "@devicefarmer/adbkit-3.2.3" = {
       name = "_at_devicefarmer_slash_adbkit";
       packageName = "@devicefarmer/adbkit";
-      version = "2.11.3";
+      version = "3.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-2.11.3.tgz";
-        sha512 = "rsgWREAvSRQjdP9/3GoAV6Tq+o97haywgbTfCgt5yUqiDpaaq3hlH9FTo9XsdG8x+Jd0VQ9nTC2IXsDu8JGRSA==";
+        url = "https://registry.npmjs.org/@devicefarmer/adbkit/-/adbkit-3.2.3.tgz";
+        sha512 = "wK9rVrabs4QU0oK8Jnwi+HRBEm+s1x/o63kgthUe0y7K1bfcYmgLuQf41/adsj/5enddlSxzkJavl2EwOu+r1g==";
       };
     };
-    "@devicefarmer/adbkit-logcat-1.1.0" = {
+    "@devicefarmer/adbkit-logcat-2.1.2" = {
       name = "_at_devicefarmer_slash_adbkit-logcat";
       packageName = "@devicefarmer/adbkit-logcat";
-      version = "1.1.0";
+      version = "2.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-1.1.0.tgz";
-        sha512 = "K90P5gUXM/w+yzLvJIRQ+tJooNU6ipUPPQkljtPJ0laR66TGtpt4Gqsjm0n9dPHK1W5KGgU1R5wnCd6RTSlPNA==";
+        url = "https://registry.npmjs.org/@devicefarmer/adbkit-logcat/-/adbkit-logcat-2.1.2.tgz";
+        sha512 = "G4grpEa5s9s9wCRs8YB9LjFSnz0Os3g3RYIwZSxH3JFfV3aejL5xlu4hHMH4JY+d4oCCwImcEZJcFPY9BEP21w==";
       };
     };
-    "@devicefarmer/adbkit-monkey-1.0.1" = {
+    "@devicefarmer/adbkit-monkey-1.2.1" = {
       name = "_at_devicefarmer_slash_adbkit-monkey";
       packageName = "@devicefarmer/adbkit-monkey";
-      version = "1.0.1";
+      version = "1.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@devicefarmer/adbkit-monkey/-/adbkit-monkey-1.0.1.tgz";
-        sha512 = "HilPrVrCosYWqSyjfpDtaaN1kJwdlBpS+IAflP3z+e7nsEgk3JGJf1Vg0NgHJooTf5HDfXSyZqMVg+5jvXCK0g==";
+        url = "https://registry.npmjs.org/@devicefarmer/adbkit-monkey/-/adbkit-monkey-1.2.1.tgz";
+        sha512 = "ZzZY/b66W2Jd6NHbAhLyDWOEIBWC11VizGFk7Wx7M61JZRz7HR9Cq5P+65RKWUU7u6wgsE8Lmh9nE4Mz+U2eTg==";
       };
     };
     "@discoveryjs/json-ext-0.5.7" = {
@@ -3190,166 +3190,166 @@ let
         sha512 = "dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==";
       };
     };
-    "@electron-forge/async-ora-6.0.0-beta.63" = {
+    "@electron-forge/async-ora-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_async-ora";
       packageName = "@electron-forge/async-ora";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.63.tgz";
-        sha512 = "e1BbeUV20yWZWeRJ3LDLcloPPgHwTXV1wAJXpAdDbmTmcRyAGx9iVx2Qyh6t878c7zX36XXlqfCIOvODsgiuOQ==";
+        url = "https://registry.npmjs.org/@electron-forge/async-ora/-/async-ora-6.0.0-beta.64.tgz";
+        sha512 = "27ACgh9VhM+ahqTNIFeCfKuSoZxM/8dQp99ZMAgMFzcniKkNCXLxsbGF/7esu++zarDqhSUOhf70Z2bffgjX2w==";
       };
     };
-    "@electron-forge/core-6.0.0-beta.63" = {
+    "@electron-forge/core-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_core";
       packageName = "@electron-forge/core";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.63.tgz";
-        sha512 = "NuiWRXUfpv6/PwP8AgPxcmRPiWvQMfllTHz163wmBWz8UBclzhu7Brpu6dwmszAJG68erW15ym+cUlpvGDEltg==";
+        url = "https://registry.npmjs.org/@electron-forge/core/-/core-6.0.0-beta.64.tgz";
+        sha512 = "FKms2M5+qMh7sfS9MTNUY9dHj7XRE8WJgKqwOQMYP7H4KPGlL2cRYkItmq5bNCu7sYbZOqgHruuDmAnap0B5Pw==";
       };
     };
-    "@electron-forge/installer-base-6.0.0-beta.63" = {
+    "@electron-forge/installer-base-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-base";
       packageName = "@electron-forge/installer-base";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.63.tgz";
-        sha512 = "y4SKJZaxE8lnfwicWuAiUZBpBY6UB/mE/dA+w6uigKEffZzRPbrbBUIuknII6wEaFnnScmCrQaBRjxy+zsEihQ==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-base/-/installer-base-6.0.0-beta.64.tgz";
+        sha512 = "SDyVrVmXOD8iHv57gf5SmJQNmBKg1AdoZh4tQm3lSl39XcYwSScm8O54WDi8mV1Q+K8bk/Zsi7bX34XFeQFr6g==";
       };
     };
-    "@electron-forge/installer-darwin-6.0.0-beta.63" = {
+    "@electron-forge/installer-darwin-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-darwin";
       packageName = "@electron-forge/installer-darwin";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.63.tgz";
-        sha512 = "LQE6UKPP7tJ+Ki3tPzYUIBRAAzEpalqkz8zYUh+2pS/nk9w2BgQeOJ84NzWUfoeLWZnsWtjp8kox8xTS8/BsSQ==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-darwin/-/installer-darwin-6.0.0-beta.64.tgz";
+        sha512 = "dKHifmeQ++y/ZzxwT+QXWkFiP53j+ZCxel6VA6aj9PMhL2tE7jSeyqwqav+vU6RiFztlfMYBAUoXwBQlYMhnCg==";
       };
     };
-    "@electron-forge/installer-deb-6.0.0-beta.63" = {
+    "@electron-forge/installer-deb-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-deb";
       packageName = "@electron-forge/installer-deb";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.63.tgz";
-        sha512 = "gvjCXdGXBxC/O8QuwNHKsLIlfOwVc9y/e5pURcuFRvPf7Ibw7e53w3pfR2pquWHNzAccrw8P5WBEuPSeDPBlLw==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-deb/-/installer-deb-6.0.0-beta.64.tgz";
+        sha512 = "WB0rIF7GjPf7b1py9GFQGVpWQVTjWS3gffLeQ6TlazHZhufJu68nCe+hiHYVmknQDGrpe6zgT/jedTckXOUqjw==";
       };
     };
-    "@electron-forge/installer-dmg-6.0.0-beta.63" = {
+    "@electron-forge/installer-dmg-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-dmg";
       packageName = "@electron-forge/installer-dmg";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.63.tgz";
-        sha512 = "o+Zd2CmpoMQOk9SfuUPIoQ4GONVNHdlmI4mMIJ22OrLQnZJYAdsQUFO87jtxmJuippTpEbnqaKc9yl6mLh89TQ==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-dmg/-/installer-dmg-6.0.0-beta.64.tgz";
+        sha512 = "HccPl7jkFR0I5xFMYZFuxOPmptF+j38WAV+Uev3K2iAgZD8bwdVojecswM2V85lvxkAKdAVVpU+317KWxGEoWQ==";
       };
     };
-    "@electron-forge/installer-exe-6.0.0-beta.63" = {
+    "@electron-forge/installer-exe-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-exe";
       packageName = "@electron-forge/installer-exe";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.63.tgz";
-        sha512 = "HhogUMTTgOXTEMQE+A20USamuAcnClSSWzlInzVQ2cGT5AdZio6zqNJ/et7zPx7Jz71gmJ/cfhNstzc/ew1IAA==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-exe/-/installer-exe-6.0.0-beta.64.tgz";
+        sha512 = "6EWXEmodkYuz2Nc9VouhRI4tqqwMaLz/Z86OM8f6fJHPE7iFDR7EvQE0lHfan8D/zoBRRIxOLofu+u6AT+wlPg==";
       };
     };
-    "@electron-forge/installer-linux-6.0.0-beta.63" = {
+    "@electron-forge/installer-linux-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-linux";
       packageName = "@electron-forge/installer-linux";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.63.tgz";
-        sha512 = "yC2wYQ3uXGnvWEG4AdjSmas5qaXXtXIoxO6/cXJrywMT9ujWlp2GB1i+I5xrFCusgbjdvdzJ3JhLRmIAKpW6ZA==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-linux/-/installer-linux-6.0.0-beta.64.tgz";
+        sha512 = "CKToVN9TuYF/nhfXyTn3hYYD6BrG3T0e+lcxqwHOm7OJ98b08f5ZzvdktHv4brIaD9mUgSHnQ5z4YdguFRvo/Q==";
       };
     };
-    "@electron-forge/installer-rpm-6.0.0-beta.63" = {
+    "@electron-forge/installer-rpm-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-rpm";
       packageName = "@electron-forge/installer-rpm";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.63.tgz";
-        sha512 = "4p+zDInl6sMnx1jdIcRSXgRAGFSwtcBPBStAlVuxPMefM8ElBPhskUyHrk33TqMZUdzbr+vYA+pQGj/6jlET4A==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-rpm/-/installer-rpm-6.0.0-beta.64.tgz";
+        sha512 = "0w0Q8MbNefjDGVaGMlk1OPMWYe+Ct/XiOXaWX3jF+fgkaKUzXbkN91gBhIKXBkLlxWqQI+5BlLTh+CjRyBZV5g==";
       };
     };
-    "@electron-forge/installer-zip-6.0.0-beta.63" = {
+    "@electron-forge/installer-zip-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_installer-zip";
       packageName = "@electron-forge/installer-zip";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.63.tgz";
-        sha512 = "ZORm3jVvswvKSv+iuufTVXwIM/OOtBSQPeAay8hVubf6MudWBdntWv1Xg/BAUAcdRbAH/EIbMv83LZvmt7cufw==";
+        url = "https://registry.npmjs.org/@electron-forge/installer-zip/-/installer-zip-6.0.0-beta.64.tgz";
+        sha512 = "qA5+pe1c2znrKyTjcYZ+6yL56a31sQexH19ik+wigIor2d0nevGo6hZgNl0YOyOfrt/M8lyGTDksWFAGuNyxNQ==";
       };
     };
-    "@electron-forge/maker-base-6.0.0-beta.63" = {
+    "@electron-forge/maker-base-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_maker-base";
       packageName = "@electron-forge/maker-base";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.63.tgz";
-        sha512 = "0Fh6OOjS/1sXIGReKgU5NCMf8ZUyaCUSjd190oUNaX8OSxGDbHrbWO3CgIbsAOsxRnxzhYY1UtPo6VkexjCQBA==";
+        url = "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-6.0.0-beta.64.tgz";
+        sha512 = "jQbZgnsTpDK60KXhJWiDhmo7aHsBMnfZIpbr4w9QhjPPbQKUqcUo6Geg2OFbX+9HTGOz1jUC4jDbVPvR+zmzuQ==";
       };
     };
-    "@electron-forge/plugin-base-6.0.0-beta.63" = {
+    "@electron-forge/plugin-base-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_plugin-base";
       packageName = "@electron-forge/plugin-base";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.63.tgz";
-        sha512 = "K9nyGRI9NY2kax7aS/1eWxGrOSwNO3JnmbfvFQf5I0Yl/HKClrfGJq4o3q4N9lf55arPRJBROP8+rHJ115VCrA==";
+        url = "https://registry.npmjs.org/@electron-forge/plugin-base/-/plugin-base-6.0.0-beta.64.tgz";
+        sha512 = "398mJ50B61BwiwehKrRQfRoB/A2+Nd/SzHYzuQxio4gIWOg5aJXCi6kZGGpRNpQ+UYx+v7rP/WxWQedA7U/Urw==";
       };
     };
-    "@electron-forge/publisher-base-6.0.0-beta.63" = {
+    "@electron-forge/publisher-base-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_publisher-base";
       packageName = "@electron-forge/publisher-base";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.63.tgz";
-        sha512 = "ag+/e6eqM6k1jxUhXg8618IbUa1IsF8OcbZtjcLSZSp/ZEGLAlZ3IpfIrk5C9cRUdibhDJyT6oFLfbG7KUhpRg==";
+        url = "https://registry.npmjs.org/@electron-forge/publisher-base/-/publisher-base-6.0.0-beta.64.tgz";
+        sha512 = "OIEThucgKKUmXIF8Gb7xAPl0Hlpsnf37e1DsvpRC3gP3kClPFwitx2u5PNCIg1HwQ75UoViGeFcwjjs9VZPkIg==";
       };
     };
-    "@electron-forge/shared-types-6.0.0-beta.63" = {
+    "@electron-forge/shared-types-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_shared-types";
       packageName = "@electron-forge/shared-types";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.63.tgz";
-        sha512 = "ayw8IBtHKZ1oIN3y3t3Jm80TTvstvKrPASCXMEJ/fh4gHah8pUmDFZEvyAsGgy/XFHqsjlpTmD2hdOtQqCRpMQ==";
+        url = "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-6.0.0-beta.64.tgz";
+        sha512 = "E+uIpZsKPku4QHWzBGNm5RkcOyLXn98qHvJevziKnUOfRSe2y66XFpHyu9FmBnEYYoyGDvBktV70yK6gsjdigQ==";
       };
     };
-    "@electron-forge/template-base-6.0.0-beta.63" = {
+    "@electron-forge/template-base-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_template-base";
       packageName = "@electron-forge/template-base";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.63.tgz";
-        sha512 = "u1rPlrc8bqajkiKe2tmGROL9/o0xx8OzMBHsT7i2+oAFPicSZoyrELCxx9htCeLgUf0iR0K0EzLsFjdyRjTBkg==";
+        url = "https://registry.npmjs.org/@electron-forge/template-base/-/template-base-6.0.0-beta.64.tgz";
+        sha512 = "mdYHCk6H7L+hdSPnh6kdg6nBC7QnQZuySwi7z/Hv3APCfPZMLVLcVkWQNCYyl+5ysyhzjPGtdm7MSV8kJ5ZMtA==";
       };
     };
-    "@electron-forge/template-typescript-6.0.0-beta.63" = {
+    "@electron-forge/template-typescript-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_template-typescript";
       packageName = "@electron-forge/template-typescript";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.63.tgz";
-        sha512 = "npFOyak+F+p086GoSifCWwhBxRSJqzzvEwztnONpbjp7BasvtWUyOVpXyyzvt7GaawjRg5Gx/NUgVi5Oi9BIfg==";
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript/-/template-typescript-6.0.0-beta.64.tgz";
+        sha512 = "gu63ehKG4q92UQhDMAMt/e73moav1fLyKVNwQakcxrD/D2klprKXf2qa6lMBsxaZFnAZ5b249R6WZWmXnk6r6A==";
       };
     };
-    "@electron-forge/template-typescript-webpack-6.0.0-beta.63" = {
+    "@electron-forge/template-typescript-webpack-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_template-typescript-webpack";
       packageName = "@electron-forge/template-typescript-webpack";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.63.tgz";
-        sha512 = "8S3GW2MRmYF6BsgozCm0CPqAuqaK48MZvJJ3v3XbO1tWPtz4vvw21XxQeOqRMpECdNbqnRBtil4QxVditEx3Kw==";
+        url = "https://registry.npmjs.org/@electron-forge/template-typescript-webpack/-/template-typescript-webpack-6.0.0-beta.64.tgz";
+        sha512 = "oFLC88qXhFXvD1H9CthtMIPE2CKoXPNiR0LRDieL/vNvnRb0UKaqay/o3df2rJp31h5CEY63BrHC9nnQ8i+ZCw==";
       };
     };
-    "@electron-forge/template-webpack-6.0.0-beta.63" = {
+    "@electron-forge/template-webpack-6.0.0-beta.64" = {
       name = "_at_electron-forge_slash_template-webpack";
       packageName = "@electron-forge/template-webpack";
-      version = "6.0.0-beta.63";
+      version = "6.0.0-beta.64";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.63.tgz";
-        sha512 = "CE5zjnyfmHlapwQSJ54kUeTNsvhx/7HAjvfMXpE689LxlFnr0VhiTxuc5kwEetPcxsXhei7IBy/PdJ41v4dswA==";
+        url = "https://registry.npmjs.org/@electron-forge/template-webpack/-/template-webpack-6.0.0-beta.64.tgz";
+        sha512 = "hExHBXIoH7cRSW0f2jUjlKtEdkUqZEutr12GphB3MoMWWlef8SOZ9eDfpvJkEHbPJQmKNdkJjtboakK6DAucFg==";
       };
     };
     "@electron/get-1.14.1" = {
@@ -3406,13 +3406,13 @@ let
         sha512 = "8HqW8EVqjnCmWXVpqAOZf+EGESdkR27odcMMMGefgKXtar00SoYNSryGv//TELI4T3QFsECo78p+0lmalk/CFA==";
       };
     };
-    "@emotion/is-prop-valid-1.1.2" = {
+    "@emotion/is-prop-valid-1.1.3" = {
       name = "_at_emotion_slash_is-prop-valid";
       packageName = "@emotion/is-prop-valid";
-      version = "1.1.2";
+      version = "1.1.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.2.tgz";
-        sha512 = "3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==";
+        url = "https://registry.npmjs.org/@emotion/is-prop-valid/-/is-prop-valid-1.1.3.tgz";
+        sha512 = "RFg04p6C+1uO19uG8N+vqanzKqiM9eeV1LDOG3bmkYmuOj7NbKNlFC/4EZq5gnwAIlcC/jOT24f8Td0iax2SXA==";
       };
     };
     "@emotion/memoize-0.7.5" = {
@@ -3532,13 +3532,13 @@ let
         sha512 = "PT3HT+3h4ZS1bw6Zz8fqjNeryKOWe1FqGdnz4RSASxZGCzib6VHLfLbJeYHkq7t+ashSXRoAw3XW/9yVdbUqLA==";
       };
     };
-    "@expo/dev-tools-0.13.156" = {
+    "@expo/dev-tools-0.13.158" = {
       name = "_at_expo_slash_dev-tools";
       packageName = "@expo/dev-tools";
-      version = "0.13.156";
+      version = "0.13.158";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.156.tgz";
-        sha512 = "4mUxhkxpufigrTCcO8gRrZyHFMixjqVMptZWairSBepGRGRlsy2O1ZCqe1okOeUAFdaBDH62MovzNwcUvibUiA==";
+        url = "https://registry.npmjs.org/@expo/dev-tools/-/dev-tools-0.13.158.tgz";
+        sha512 = "wPvY0+6jJRbJQ7DqlFMn4FuiYbY/kTDFfZ2Z7G4cM3flcTQCJRC+j0HWykDCPzuCEXjxrdXJAOrXVr49olamog==";
       };
     };
     "@expo/devcert-1.0.0" = {
@@ -3586,13 +3586,13 @@ let
         sha512 = "FQinlwHrTlJbntp8a7NAlCKedVXe06Va/0DSLXRO8lZVtgbEMrYYSUZWQNcOlNtc58c2elNph6z9dMOYwSo3JQ==";
       };
     };
-    "@expo/package-manager-0.0.54" = {
+    "@expo/package-manager-0.0.55" = {
       name = "_at_expo_slash_package-manager";
       packageName = "@expo/package-manager";
-      version = "0.0.54";
+      version = "0.0.55";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.54.tgz";
-        sha512 = "Sr7UsDh9Pcta1gAFZJgszodewEvg/XSRV1oV+iTrkUEhP7NziMrK5dE71O2FHmKGfdrDQgLexvq8HLZdfRskKw==";
+        url = "https://registry.npmjs.org/@expo/package-manager/-/package-manager-0.0.55.tgz";
+        sha512 = "GWfC+s7XT+sydlGVkHRURWi+Wk9LWdgGBKpk3jqjQi5+jy6kjlY3VqoZbhtXw55oSi/3P2FAO9ifscwut56cvg==";
       };
     };
     "@expo/plist-0.0.18" = {
@@ -3622,13 +3622,13 @@ let
         sha512 = "uy/hS/awclDJ1S88w9UGpc6Nm9XnNUjzOAAib1A3PVAnGQIwebg8DpFqOthFBTlZxeuV/BKbZ5jmTbtNZkp1WQ==";
       };
     };
-    "@expo/schemer-1.4.1" = {
+    "@expo/schemer-1.4.2" = {
       name = "_at_expo_slash_schemer";
       packageName = "@expo/schemer";
-      version = "1.4.1";
+      version = "1.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.4.1.tgz";
-        sha512 = "dW5xz/8TfXcHtlH8q4nZxN/Ru9DyUtsTx6Sl6tb7FByvYvqHKBPz0g/uIMkZBSIppPRvdgEUp9LpYkBR2tx48Q==";
+        url = "https://registry.npmjs.org/@expo/schemer/-/schemer-1.4.2.tgz";
+        sha512 = "Kq6oMV+IdBjM22naGfaN8aEup95wx5MNeVvThIjUMAQrrNSAkxi86YbLAHl3/VUN56gX0sxUZNnSa17k/9V/pg==";
       };
     };
     "@expo/sdk-runtime-versions-1.0.0" = {
@@ -3748,31 +3748,31 @@ let
         sha512 = "ax8izl48JJuymEuvJzvNH22GHmpPEWLP+h4doyFZ/9IhR9AEycNc2rGBthZ5FiuktnFgusNag1AHr/WCj5pttw==";
       };
     };
-    "@fluentui/react-8.72.2" = {
+    "@fluentui/react-8.76.1" = {
       name = "_at_fluentui_slash_react";
       packageName = "@fluentui/react";
-      version = "8.72.2";
+      version = "8.76.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.72.2.tgz";
-        sha512 = "/Wn2qIhHl5fJ7zhTNURbs3KzgXe3NuJOBirpZUd/RkLaWxEgb+1+ylw9ijae4Ll65LmEC3Qyu98o+ALxVS83Ww==";
+        url = "https://registry.npmjs.org/@fluentui/react/-/react-8.76.1.tgz";
+        sha512 = "oMekX87wpjBv2AD9oz1XUbdM9vFOM4zePe6OtgVh3MdCDsQ7DZ9Un/nhd50GOq7nf/XBKR6U0fhxI9WoyvnV5w==";
       };
     };
-    "@fluentui/react-focus-8.6.1" = {
+    "@fluentui/react-focus-8.7.0" = {
       name = "_at_fluentui_slash_react-focus";
       packageName = "@fluentui/react-focus";
-      version = "8.6.1";
+      version = "8.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.6.1.tgz";
-        sha512 = "0DasQ31xEqND3OMd+svWto68+U5p6Z8Z+U92jZAlahfh5A6dRcDixu42hQkETmYg8oYaF0zMsVHAZKPx5EVy7w==";
+        url = "https://registry.npmjs.org/@fluentui/react-focus/-/react-focus-8.7.0.tgz";
+        sha512 = "HuV3zcoe5FRDXCDqVzqj+6mhWzz19hQA4MgQQ42x/0bCdjWMN7fFMuU78cwhxenjG/vWlNgO2Yo+eEZ8j8/CEA==";
       };
     };
-    "@fluentui/react-hooks-8.5.5" = {
+    "@fluentui/react-hooks-8.6.0" = {
       name = "_at_fluentui_slash_react-hooks";
       packageName = "@fluentui/react-hooks";
-      version = "8.5.5";
+      version = "8.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.5.5.tgz";
-        sha512 = "jtEBOi6iubsdyBfW3Z034t2TrF7uncXvx6/yYZn9zD5YBpPMMJKcUmxjbpcApRdMUA6BarKq+MqyvkbxCpcsWw==";
+        url = "https://registry.npmjs.org/@fluentui/react-hooks/-/react-hooks-8.6.0.tgz";
+        sha512 = "mo5dqMDcXoY+Utnq65WzDKdHT8zgLxR4ZEwen884dyisN7g/+wjfy4JZmhi8Cm9gnD7anNJvSKP9pPJGwCt26Q==";
       };
     };
     "@fluentui/react-portal-compat-context-9.0.0-rc.2" = {
@@ -3829,6 +3829,96 @@ let
         sha512 = "ZehG5uy/9v5h/Q4CC9yJ5xEC0jqUJlDYen8Op7ki2vunvE+GTdNP9lkTUk2H7/cVKmSgEHsaMr37ZYc2V1N5vw==";
       };
     };
+    "@forge/api-2.7.0" = {
+      name = "_at_forge_slash_api";
+      packageName = "@forge/api";
+      version = "2.7.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/api/-/api-2.7.0.tgz";
+        sha512 = "5divMMwC4PVCUy3r84/CUUUTMWFNyeibtg7gpZGS1xK4OuOILRf+DjIRGWWFwxHHJNP+12YsPqSpdSgldEgU0w==";
+      };
+    };
+    "@forge/auth-0.0.1" = {
+      name = "_at_forge_slash_auth";
+      packageName = "@forge/auth";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/auth/-/auth-0.0.1.tgz";
+        sha512 = "twZjWbIk+PrW2XzrUfVCzYhh1qe5igS4h9NpapZLHNm2CaCi1gjh8klVcGJijcYJWT1Sj6Qr9gBUtkZjCinJXw==";
+      };
+    };
+    "@forge/babel-plugin-transform-ui-1.1.0" = {
+      name = "_at_forge_slash_babel-plugin-transform-ui";
+      packageName = "@forge/babel-plugin-transform-ui";
+      version = "1.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/babel-plugin-transform-ui/-/babel-plugin-transform-ui-1.1.0.tgz";
+        sha512 = "+GFtFqBhFzwKaKmeEfw1jWQgZJNX4q11CCx1fSPFJB49Fdjb7k3lx74jAyzHlX0UWnm6DMK+/cYT7j5t6G9LfA==";
+      };
+    };
+    "@forge/bundler-3.0.7" = {
+      name = "_at_forge_slash_bundler";
+      packageName = "@forge/bundler";
+      version = "3.0.7";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/bundler/-/bundler-3.0.7.tgz";
+        sha512 = "fYnZF6W61pG4ij54ylXw3YhHGME3v2uRyi/5/Ocso4M5F/kAYfmTu/DaaWpz489jJ4pxNbVsgJSlUSqVyQtHbw==";
+      };
+    };
+    "@forge/cli-shared-2.5.0" = {
+      name = "_at_forge_slash_cli-shared";
+      packageName = "@forge/cli-shared";
+      version = "2.5.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/cli-shared/-/cli-shared-2.5.0.tgz";
+        sha512 = "oBEsmRAo7+9nUR2SOpxLS6qE7a9qKb3EeM3J8aKVnms3GduwQOvRODqmRPeL99juOFk9ztUH5iWxeRPwbS1bAg==";
+      };
+    };
+    "@forge/csp-1.10.0" = {
+      name = "_at_forge_slash_csp";
+      packageName = "@forge/csp";
+      version = "1.10.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/csp/-/csp-1.10.0.tgz";
+        sha512 = "uVpxfrfuUP+VUBomdfgi2wIjY9XgQOBn98VLn7hfuvGtZVyN0Ehoc2Dj5F+x1vgu52vudoJecziQwK6h4K0Q1w==";
+      };
+    };
+    "@forge/lint-3.1.1" = {
+      name = "_at_forge_slash_lint";
+      packageName = "@forge/lint";
+      version = "3.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/lint/-/lint-3.1.1.tgz";
+        sha512 = "ndrpnPdhCw41i0sU8Rf7r3/ZJxluKUoAwEM4u0y9YcbW1WpE3A7KtlfsiqNPPN7QtHVm8kgtDfoQt+r9f5XFfA==";
+      };
+    };
+    "@forge/manifest-3.8.0" = {
+      name = "_at_forge_slash_manifest";
+      packageName = "@forge/manifest";
+      version = "3.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/manifest/-/manifest-3.8.0.tgz";
+        sha512 = "fCE/igDKD1OkCjetT0g4V0kOMq8u2BafKW0+2vtz/F/Y6vtnsR9OZssnQN546EvgwHq/o0/A0CM+GkjGnB+DSg==";
+      };
+    };
+    "@forge/storage-1.3.0" = {
+      name = "_at_forge_slash_storage";
+      packageName = "@forge/storage";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/storage/-/storage-1.3.0.tgz";
+        sha512 = "Tje/X+KY8i/u624YoxiOY+zP5sQc6rqo+vXA//nmIFGx0yWlPhUNf6ft7fFJrFe2JGpqgtNgfo3AjspveyMkzg==";
+      };
+    };
+    "@forge/util-1.2.0" = {
+      name = "_at_forge_slash_util";
+      packageName = "@forge/util";
+      version = "1.2.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@forge/util/-/util-1.2.0.tgz";
+        sha512 = "oi3SxvXIpW/9oH+IHCP3O50B47HaEkBNxI/i+WxF6W8q5K6qSE7pXyd2JVYpboo/9Ph+18VAwyRqtrZbcaWzBQ==";
+      };
+    };
     "@gar/promisify-1.1.3" = {
       name = "_at_gar_slash_promisify";
       packageName = "@gar/promisify";
@@ -3865,13 +3955,13 @@ let
         sha512 = "5IVzv1gO626qaC7CEV7LUG68IHgEjWovIHXQsbI9MraxhrI9eSV5/l/81Povv7tJlni7u8OnARPU7bmxlXlx7g==";
       };
     };
-    "@google-cloud/paginator-3.0.7" = {
+    "@google-cloud/paginator-4.0.0" = {
       name = "_at_google-cloud_slash_paginator";
       packageName = "@google-cloud/paginator";
-      version = "3.0.7";
+      version = "4.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.7.tgz";
-        sha512 = "jJNutk0arIQhmpUUQJPJErsojqo834KcyB6X7a1mxuic8i1tKXxde8E69IZxNZawRIlZdIK2QY4WALvlK5MzYQ==";
+        url = "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-4.0.0.tgz";
+        sha512 = "wNmCZl+2G2DmgT/VlF+AROf80SoaC/CwS8trwmjNaq26VRNK8yPbU5F/Vy+R9oDAGKWQU2k8+Op5H4kFJVXFaQ==";
       };
     };
     "@google-cloud/precise-date-2.0.4" = {
@@ -3901,13 +3991,13 @@ let
         sha512 = "j8yRSSqswWi1QqUGKVEKOG03Q7qOoZP6/h2zN2YO+F5h2+DHU0bSrHCK9Y7lo2DI9fBd8qGAw795sf+3Jva4yA==";
       };
     };
-    "@google-cloud/pubsub-2.19.4" = {
+    "@google-cloud/pubsub-3.0.1" = {
       name = "_at_google-cloud_slash_pubsub";
       packageName = "@google-cloud/pubsub";
-      version = "2.19.4";
+      version = "3.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-2.19.4.tgz";
-        sha512 = "+aZxq6N5XGarQS3xGXjKSRFy4TB+3PMpI0CBmSrcC59g3TB5nmwps3pv/KkdLa0Cd+CPHDdfrEW1uSrGBMLICw==";
+        url = "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-3.0.1.tgz";
+        sha512 = "dznNbRd/Y8J0C0xvdvCPi3B1msK/dj/Nya+NQZ2doUOLT6eoa261tBwk9umOQs5L5GKcdlqQKbBjrNjDYVbzQA==";
       };
     };
     "@grammyjs/types-2.7.2" = {
@@ -4081,13 +4171,13 @@ let
         sha512 = "DSDrbhQIv7fheQ60pfDpGD256ixUQIR6Hhf9Z5bRjVkXOCvO5XrkwoWLiU7iHL81GB1r0Ba31bf+sl+D4nyyfw==";
       };
     };
-    "@graphql-tools/url-loader-7.9.24" = {
+    "@graphql-tools/url-loader-7.9.25" = {
       name = "_at_graphql-tools_slash_url-loader";
       packageName = "@graphql-tools/url-loader";
-      version = "7.9.24";
+      version = "7.9.25";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.24.tgz";
-        sha512 = "DpIP9EVZSyhSJgX3P2/ka7lzmpDLqOQ4hDkt1oCBcRDzkeyMOKl5XQAg5/X6AaIonhss+/el0ELqTVOHt9zDxQ==";
+        url = "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-7.9.25.tgz";
+        sha512 = "l1C4xym79RbZk3Fe4P2JeNxDogQWPOETZrb+jCHniQ7GT7bjpM20ZcS9oqSNgMyPKQE4vGjV3zRph8vItRQgOg==";
       };
     };
     "@graphql-tools/utils-6.2.4" = {
@@ -4144,33 +4234,6 @@ let
         sha512 = "qzlrOg9ddaA+30OdG8NU/zDPV2sbJ4Rvool+Zf0nLVRqkAUP/1uxXTQBLgEJKO1xxTlhJ+27FCJ42lG6JG9ZrA==";
       };
     };
-    "@grpc/grpc-js-1.6.1" = {
-      name = "_at_grpc_slash_grpc-js";
-      packageName = "@grpc/grpc-js";
-      version = "1.6.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.1.tgz";
-        sha512 = "ix3rQS64rKL1s6CfIaRgnts+RNYZZ2NaYyTK7iimai6an/0GGDbukzy990hJ5vtKHjhaqJxJMB6Qq7BMZ0zZSQ==";
-      };
-    };
-    "@grpc/grpc-js-1.6.2" = {
-      name = "_at_grpc_slash_grpc-js";
-      packageName = "@grpc/grpc-js";
-      version = "1.6.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.2.tgz";
-        sha512 = "9+89Ne1K8F9u86T+l1yIV2DS+dWHYVK61SsDZN4MFTFehOOaJ4rHxa1cW8Lwdn2/6tOx7N3+SY/vfcjztOHopA==";
-      };
-    };
-    "@grpc/grpc-js-1.6.4" = {
-      name = "_at_grpc_slash_grpc-js";
-      packageName = "@grpc/grpc-js";
-      version = "1.6.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.6.4.tgz";
-        sha512 = "Jqq8t3ylPLPK4XXnYPj2uuESirRCAaQ0//GxRLPK6Xq2TBHb2DlmSzJUh15a6R4uUIjBwA8wI69JuKleZXz4jQ==";
-      };
-    };
     "@grpc/grpc-js-1.6.7" = {
       name = "_at_grpc_slash_grpc-js";
       packageName = "@grpc/grpc-js";
@@ -4189,13 +4252,13 @@ let
         sha512 = "filTVbETFnxb9CyRX98zN18ilChTuf/C5scZ2xyaOTp0EHGq0/ufX8rjqXUcSb1Gpv7eZq4M2jDvbh9BogKnrg==";
       };
     };
-    "@grpc/proto-loader-0.6.9" = {
+    "@grpc/proto-loader-0.6.13" = {
       name = "_at_grpc_slash_proto-loader";
       packageName = "@grpc/proto-loader";
-      version = "0.6.9";
+      version = "0.6.13";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.9.tgz";
-        sha512 = "UlcCS8VbsU9d3XTXGiEVFonN7hXk+oMXZtoHHG2oSA1/GcDP1q6OUgs20PzHDGizzyi8ufGSUDlk3O2NyY7leg==";
+        url = "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.13.tgz";
+        sha512 = "FjxPYDRTn6Ec3V0arm1FtSpmP6V50wuph2yILpyvTKzjc76oDdoihXqM1DzOW5ubvCC8GivfCnNtfaRE8myJ7g==";
       };
     };
     "@gulp-sourcemaps/identity-map-2.0.1" = {
@@ -4738,22 +4801,22 @@ let
         sha512 = "4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==";
       };
     };
-    "@jsii/check-node-1.60.0" = {
+    "@jsii/check-node-1.61.0" = {
       name = "_at_jsii_slash_check-node";
       packageName = "@jsii/check-node";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.60.0.tgz";
-        sha512 = "c1RfJlZIKuJUFtN6t3ZrSJtaOLUylVcPfJGvrijv0Y2VbpuJz+LtCYj0wDpEEVXO9MNmdn5yxTSeSpb4bUBthw==";
+        url = "https://registry.npmjs.org/@jsii/check-node/-/check-node-1.61.0.tgz";
+        sha512 = "U6b2iNZZweV2qRvidCCZIOLFpTe6Kc8eZc9v8CbUtK2btChNYiWTkms4VUOcONIYT5uPfNlZpHZiqTr+Oqxmkg==";
       };
     };
-    "@jsii/spec-1.60.0" = {
+    "@jsii/spec-1.61.0" = {
       name = "_at_jsii_slash_spec";
       packageName = "@jsii/spec";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.60.0.tgz";
-        sha512 = "rlmicpzxrY6t93RK6UICgTmm1GQZ6U8UbA4gy1XXmcQxY4zM8/r2D5sKFIC0RPNDFR4LI3l1ltGlwrNbZJyCdw==";
+        url = "https://registry.npmjs.org/@jsii/spec/-/spec-1.61.0.tgz";
+        sha512 = "pv1jAZY+gez62BCiHwfdCnjl2reye88QOKsD5IlCf7XbmvyQ4xFXVV2EnFzv4HUUtr+yuBj/tZz0HjOFsEBUQw==";
       };
     };
     "@juggle/resize-observer-3.3.1" = {
@@ -4927,544 +4990,544 @@ let
         sha512 = "Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==";
       };
     };
-    "@lerna/add-5.1.0" = {
+    "@lerna/add-5.1.4" = {
       name = "_at_lerna_slash_add";
       packageName = "@lerna/add";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/add/-/add-5.1.0.tgz";
-        sha512 = "JK6ezKNQCfXnuHuxd63HcFbgVzfXMcyC0HFKCU5juPaIvqVCXBFR2xNy4gYcMPE9dZS9THT719hf3c0RgWMl0w==";
+        url = "https://registry.npmjs.org/@lerna/add/-/add-5.1.4.tgz";
+        sha512 = "kysQaV0+6aFtT0rkbaeuP6qb0vYDwo7TiC+Og4STyXxv2mHXi3F8r6Z9xXNUn8LPi29gaCmB8DLmbEGlTBM4xg==";
       };
     };
-    "@lerna/bootstrap-5.1.0" = {
+    "@lerna/bootstrap-5.1.4" = {
       name = "_at_lerna_slash_bootstrap";
       packageName = "@lerna/bootstrap";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.1.0.tgz";
-        sha512 = "TAIoRLiHfmFB1wZlHQ+YkkSaniqWshcxz2703U5iwrCeSOtWRE5+4G7d0wvNAXTLou8Azxjx+gXzU32IHS7k1g==";
+        url = "https://registry.npmjs.org/@lerna/bootstrap/-/bootstrap-5.1.4.tgz";
+        sha512 = "uCP0WdxGCGAGkwcuhv2nLqLByq9WJ5yr+93A8T15xZJfQsXLtYjjlivIe35MjS77eR+krwl5uY6WmGPJ33+afg==";
       };
     };
-    "@lerna/changed-5.1.0" = {
+    "@lerna/changed-5.1.4" = {
       name = "_at_lerna_slash_changed";
       packageName = "@lerna/changed";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/changed/-/changed-5.1.0.tgz";
-        sha512 = "u6yHa/CLG9rQd0+TZLNSYTjiDIqN6hCfLbXrnT3oVsGmu2Agp/uSGvMS9SXsQEmztQLevOEZ/Rl7LCPVBa21dg==";
+        url = "https://registry.npmjs.org/@lerna/changed/-/changed-5.1.4.tgz";
+        sha512 = "XwA3+pw5keO2CyjobLN8dU7mvGbzB3FD+LtLPI/zk7UbNIbl7V6uaIkoPJIdTWwP1e6S1BnGCVsAMtwQ980gTA==";
       };
     };
-    "@lerna/check-working-tree-5.1.0" = {
+    "@lerna/check-working-tree-5.1.4" = {
       name = "_at_lerna_slash_check-working-tree";
       packageName = "@lerna/check-working-tree";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.1.0.tgz";
-        sha512 = "Vd6Roa0TIXZVXXplx/EP/A4QtHFeCFHbk2MbK7t7CWiCK9pEU9nhF/j6SJhuPes3z1mSOn/FjaN2JjShvJII1w==";
+        url = "https://registry.npmjs.org/@lerna/check-working-tree/-/check-working-tree-5.1.4.tgz";
+        sha512 = "yFkRmZd25viwxyyOHZd3g7k2Od2Mk0Sf15fol3h/a7P0rUMf6UaMoGo2qlyo+DS51sz+eNalMmFKLpRrDXcSSw==";
       };
     };
-    "@lerna/child-process-5.1.0" = {
+    "@lerna/child-process-5.1.4" = {
       name = "_at_lerna_slash_child-process";
       packageName = "@lerna/child-process";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.1.0.tgz";
-        sha512 = "BkPkeFpApuPYBYvnqLjdY3/qQV/6zouchrtMUnaQ3N8pdkU/NkSDEeBtl4hR5Coyb1jGjpYt63IrrD4i4Snyvg==";
+        url = "https://registry.npmjs.org/@lerna/child-process/-/child-process-5.1.4.tgz";
+        sha512 = "F7xP+bEdkE3JTyKz0t33QA5v2meXZrQQ0JmHa7/AlEg6D2r7gQ8UHSHuSUiNfX4drjpePe/9XaZylj01KLcx/w==";
       };
     };
-    "@lerna/clean-5.1.0" = {
+    "@lerna/clean-5.1.4" = {
       name = "_at_lerna_slash_clean";
       packageName = "@lerna/clean";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/clean/-/clean-5.1.0.tgz";
-        sha512 = "hX0Y6cumy3Gn21WriFUEJgznbfaZQQYrOQJDu5FOd9EShKb0gfWpX8l/DmnDfcQoIXJSYV85oHPuB619sdZwUA==";
+        url = "https://registry.npmjs.org/@lerna/clean/-/clean-5.1.4.tgz";
+        sha512 = "4Du/r8iYSYFpo1t5J1BYivmj84n9mGebt89isVsyqMmrCqd5B2ix/Z8PYPQFMwm7k9YYbV+sZGSpRvtXkn8kIw==";
       };
     };
-    "@lerna/cli-5.1.0" = {
+    "@lerna/cli-5.1.4" = {
       name = "_at_lerna_slash_cli";
       packageName = "@lerna/cli";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/cli/-/cli-5.1.0.tgz";
-        sha512 = "Mwod1swfQvYat60S2/otQVe64WQMUtdnNz/GaKoIbyIekqUC0Ozo6Ui0Qv9UdmowADdIRpHPEb3tK1i8Ze7rew==";
+        url = "https://registry.npmjs.org/@lerna/cli/-/cli-5.1.4.tgz";
+        sha512 = "ckLSNJBY4iVmu6nBhHb8UchpWGm49z9pjsAEJQ4F/VNkT6zKsmOCfv2ahkvudQ77gc0K/dH+MTvoOHsH85bpow==";
       };
     };
-    "@lerna/collect-uncommitted-5.1.0" = {
+    "@lerna/collect-uncommitted-5.1.4" = {
       name = "_at_lerna_slash_collect-uncommitted";
       packageName = "@lerna/collect-uncommitted";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.0.tgz";
-        sha512 = "NTE0z3mRILv/NY5iWUCbXt0W3LWYr5oBHXPRDwYOtb4K3c7WXHIZ6v4ZtsGFG++K+74Ak1sZj8wCQjntUklx9w==";
+        url = "https://registry.npmjs.org/@lerna/collect-uncommitted/-/collect-uncommitted-5.1.4.tgz";
+        sha512 = "CI9PXYQuewqA4ZBMRycDUSVRJmAxUeP8HEZ3aKNvAwlLxLlGCueh8qOHXZHxgkmF6eQtcEjblsReiDt8bFJZpA==";
       };
     };
-    "@lerna/collect-updates-5.1.0" = {
+    "@lerna/collect-updates-5.1.4" = {
       name = "_at_lerna_slash_collect-updates";
       packageName = "@lerna/collect-updates";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.1.0.tgz";
-        sha512 = "MKRTTZpBNeMsSp2FAjbczGN08ni2Cxrb4Y+RRX3FFNi46T+hfugkWWJraXRXJ+D4HNt6IsndxK0/5J6G3sIl9A==";
+        url = "https://registry.npmjs.org/@lerna/collect-updates/-/collect-updates-5.1.4.tgz";
+        sha512 = "P1zlaZ0QkKIjbU3o7hjd4zcxzti1ndS4+eQNmlxZP3IcmlJ4+Ne+VxGeaACsjzPPBqSBWX1xcyMFLALH/Jo2CA==";
       };
     };
-    "@lerna/command-5.1.0" = {
+    "@lerna/command-5.1.4" = {
       name = "_at_lerna_slash_command";
       packageName = "@lerna/command";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/command/-/command-5.1.0.tgz";
-        sha512 = "lPHtnvjsYVEqMQ06YjHcSqZrH7jjMPLC9vCo6lkm43QvtLmow5tGzUSt+ZkXJFa5iQp3/Qdzuf3KV2Oq2FAFbw==";
+        url = "https://registry.npmjs.org/@lerna/command/-/command-5.1.4.tgz";
+        sha512 = "S/3oIagN9/ntuGtljSxHu4liB9e9YFWsq/xZOR8YoqROJENv5G5zyAmHjXq90AR/tGmLvufzFliBfEIG9CywFA==";
       };
     };
-    "@lerna/conventional-commits-5.1.0" = {
+    "@lerna/conventional-commits-5.1.4" = {
       name = "_at_lerna_slash_conventional-commits";
       packageName = "@lerna/conventional-commits";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.1.0.tgz";
-        sha512 = "bC0oITKwaAGbM3I7pE3jf5NwwzjUoQH68DC1WAtaJurCtSvvuM00irtz8KqXeWsW9nUtY68gYUuV5btSkEZ4FA==";
+        url = "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.1.4.tgz";
+        sha512 = "0v0exYOH9cJTNpKggqAw7vHVLlPjqO6Y20PUg44F3GOEjd54VIGDqu+MkVhflqvUftzZjmcUHDUGHVP+8dFBNw==";
       };
     };
-    "@lerna/create-5.1.0" = {
+    "@lerna/create-5.1.4" = {
       name = "_at_lerna_slash_create";
       packageName = "@lerna/create";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create/-/create-5.1.0.tgz";
-        sha512 = "5xw46aZrAQhJByKMyNs78Nl3SZI6yxqNA12pQR7HWf+2/VX29dxKao6W+4658OQIOw2G148TTadP4G9zRiRKRw==";
+        url = "https://registry.npmjs.org/@lerna/create/-/create-5.1.4.tgz";
+        sha512 = "UPR5EnFg0WzXiRIKl+MGHH3hBB6s1xkLDJNLGzac5Ztry/ibLDhl47wYoYcToiQ3/y3/3751WLJErF+A52mCyw==";
       };
     };
-    "@lerna/create-symlink-5.1.0" = {
+    "@lerna/create-symlink-5.1.4" = {
       name = "_at_lerna_slash_create-symlink";
       packageName = "@lerna/create-symlink";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.1.0.tgz";
-        sha512 = "FYCNdgP0xf65CokOyFFI63sAA2MfZbSPyDqRHyIJXkrjLCXIl6NZDsu6ppM2XqczDtawmo9YFPAUGZ2QgfowIQ==";
+        url = "https://registry.npmjs.org/@lerna/create-symlink/-/create-symlink-5.1.4.tgz";
+        sha512 = "VTTuCgM5gXk0frAFxfVQqfX9QxXKz6TKpKsHcC39BAR3aiSUW8vqRImbLvaFtKpnEMW0HshDfuzp6rRkaiyWYw==";
       };
     };
-    "@lerna/describe-ref-5.1.0" = {
+    "@lerna/describe-ref-5.1.4" = {
       name = "_at_lerna_slash_describe-ref";
       packageName = "@lerna/describe-ref";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.1.0.tgz";
-        sha512 = "eM7H4JJUyzpDoonSuH0kl3/UggvZUAE5UNFhkW2dTJESABusg7UOOnw615iwfiFcm9VeqEs7rXdhRpeBorPj4A==";
+        url = "https://registry.npmjs.org/@lerna/describe-ref/-/describe-ref-5.1.4.tgz";
+        sha512 = "ztLWLIyrHPxVhs8yfVpCDIw2st5c246KfoTqjEX8N6s8v0dLs3vfCKCM70ej6lBNkwqBXSilgHrd3AkGq3kq6Q==";
       };
     };
-    "@lerna/diff-5.1.0" = {
+    "@lerna/diff-5.1.4" = {
       name = "_at_lerna_slash_diff";
       packageName = "@lerna/diff";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/diff/-/diff-5.1.0.tgz";
-        sha512 = "IfI9wLklqM9PRtdLXd3nZL0B/Dh0AdQ4hkEUexxQQYa9vGSk8f1oZ8W/mMQ43yvF+HrLOq9ggR0ZFR+9rm9fDA==";
+        url = "https://registry.npmjs.org/@lerna/diff/-/diff-5.1.4.tgz";
+        sha512 = "o5chvMHcKQS4zkdGX7LCaMgNn0flrG9OEiGt8DCIzRUa6aWJAlE2oZyOj+VsiUxzaZJxm2oV+GkISQYRJPlPug==";
       };
     };
-    "@lerna/exec-5.1.0" = {
+    "@lerna/exec-5.1.4" = {
       name = "_at_lerna_slash_exec";
       packageName = "@lerna/exec";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/exec/-/exec-5.1.0.tgz";
-        sha512 = "JgHz/hTF47mRPd3o+gRtHSv7DMOvnXAkVdj/YLTCPgJ4IMvIeVY70sCWuvnJPo728k4fdIrgmw0BWpUBD64q9w==";
+        url = "https://registry.npmjs.org/@lerna/exec/-/exec-5.1.4.tgz";
+        sha512 = "6vn1UCxJZTTt90WlWItI05yj4xaNOShgIl5Yi9mx1Ex6nVS32mmTOqHI/+Cn4M+P0C4u1hFymd2aIEfWnmdUsA==";
       };
     };
-    "@lerna/filter-options-5.1.0" = {
+    "@lerna/filter-options-5.1.4" = {
       name = "_at_lerna_slash_filter-options";
       packageName = "@lerna/filter-options";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.1.0.tgz";
-        sha512 = "FeUb2jjbNNm1pBbEclktQ7Yqxy5KBxpHAuHic4Arruaai2lxYEQaJKb3NoTFT+cBlY1zFPQcjc8bPbEshu0vuA==";
+        url = "https://registry.npmjs.org/@lerna/filter-options/-/filter-options-5.1.4.tgz";
+        sha512 = "a6hLVZOb7awjI9Tk5hx90BB6GZz59npBRQN0kSG6drV1H+vi+wU7ee6OZ5EMHQgnzdZ6OjZQRHlWCCTXyNdKgQ==";
       };
     };
-    "@lerna/filter-packages-5.1.0" = {
+    "@lerna/filter-packages-5.1.4" = {
       name = "_at_lerna_slash_filter-packages";
       packageName = "@lerna/filter-packages";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.1.0.tgz";
-        sha512 = "X5FuSDeYBcEPPKmea/uA3FLz4Vheqv9Dmm3ZkVE+w9TRb1t52azavPm/bm99I/7aKr4+clOgf7AZ4NqFOaA+aQ==";
+        url = "https://registry.npmjs.org/@lerna/filter-packages/-/filter-packages-5.1.4.tgz";
+        sha512 = "a+ThrgYyGrTfBZUMfi/WvcqX3Ce6JaMZjTYoNAmKpHYNZFRqdmgOT1fFLLF+/y62XGqCf0wo50xRYNg0hIAf3Q==";
       };
     };
-    "@lerna/get-npm-exec-opts-5.1.0" = {
+    "@lerna/get-npm-exec-opts-5.1.4" = {
       name = "_at_lerna_slash_get-npm-exec-opts";
       packageName = "@lerna/get-npm-exec-opts";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.0.tgz";
-        sha512 = "54lkBLpuwq9XTaiejkNOvBk75SUNOj6YxZY+lbZzfMxqy107w4Fcwp3MdvYFaRO+0q8aderdYOUysv0X4q62Xg==";
+        url = "https://registry.npmjs.org/@lerna/get-npm-exec-opts/-/get-npm-exec-opts-5.1.4.tgz";
+        sha512 = "A+cNgTWWQOcNGWz9wj40/NWK46v8TtTAmXuEPfzDruv6VdmXEVIuq7SCeUPj9+aRxMQXVCil0/Vyo2z6R9TDLw==";
       };
     };
-    "@lerna/get-packed-5.1.0" = {
+    "@lerna/get-packed-5.1.4" = {
       name = "_at_lerna_slash_get-packed";
       packageName = "@lerna/get-packed";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.1.0.tgz";
-        sha512 = "waCjBLhIJ2Y1C3H3ny6zMFLH3Y8z6+ZiGYGgKXFuBD6ovmqZz7QInY63i+6FWIgwTE4FakbDsTK0xhaJEjz6/g==";
+        url = "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.1.4.tgz";
+        sha512 = "JD9U4Sp7Dpt3nUdXAo5f9SIXK2QsBaguChCZ8VTAl3eb7j0o7nrHYoh1eAa8rDT2L9+AxcUFDMi/wDdCotlJmA==";
       };
     };
-    "@lerna/github-client-5.1.0" = {
+    "@lerna/github-client-5.1.4" = {
       name = "_at_lerna_slash_github-client";
       packageName = "@lerna/github-client";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.1.0.tgz";
-        sha512 = "wow6KytR+pPXU+0DyCWnNuMdCTRotQCtGf5K+2PziJI0zfow4uFh60hs58bRrv3GgotnXeEB6433tYdajNa+nA==";
+        url = "https://registry.npmjs.org/@lerna/github-client/-/github-client-5.1.4.tgz";
+        sha512 = "VAaH9ycnGVsaGWM5uRKvd0oXlOERHOEOwxXLaCnR1mA7k5490B5jTlwhSWYdA4s40CF9AOdIVNgBhP+T7MlcPw==";
       };
     };
-    "@lerna/gitlab-client-5.1.0" = {
+    "@lerna/gitlab-client-5.1.4" = {
       name = "_at_lerna_slash_gitlab-client";
       packageName = "@lerna/gitlab-client";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.1.0.tgz";
-        sha512 = "nXUK6h8SpYRdocrzhA3wJDZ6ghQREBBxPbA5v2jVSY2xR3NxOcWjYOpq2BaQ5KE0j4OYenFL1kNn6baAQsw/XQ==";
+        url = "https://registry.npmjs.org/@lerna/gitlab-client/-/gitlab-client-5.1.4.tgz";
+        sha512 = "F0Pa6Cv6TE0gbhuHR2gVVwdzstqePMZhTNcVY5So3YJrb1ppuUH/4cVXhRcEOj16QuWJ6yysxb7mj8tY4Zv0Bw==";
       };
     };
-    "@lerna/global-options-5.1.0" = {
+    "@lerna/global-options-5.1.4" = {
       name = "_at_lerna_slash_global-options";
       packageName = "@lerna/global-options";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.1.0.tgz";
-        sha512 = "yh66x9+gQk5Wcjoys10DyzJ6EkCdx2+wjW9gdY+1KyfKHY3v4sLgHohGi8o7lKLr3ihaT/MgZSKmN9oLGpJVow==";
+        url = "https://registry.npmjs.org/@lerna/global-options/-/global-options-5.1.4.tgz";
+        sha512 = "gs6y97tomIuyYdDr9uKQ5B5AR9m6wVft6lrxWlGlLo0prz39tx7fJ9wT2IpJ9iALCadkQW6g7XFtddwfm5VRhg==";
       };
     };
-    "@lerna/has-npm-version-5.1.0" = {
+    "@lerna/has-npm-version-5.1.4" = {
       name = "_at_lerna_slash_has-npm-version";
       packageName = "@lerna/has-npm-version";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.1.0.tgz";
-        sha512 = "qihV4JthS3RG2w/GoioPIuU5MCauWI9+dddNgh5rHGfOuOudE4kPOLBa0CpcV06fjpgFNiyL0QOoSok2LVvnBQ==";
+        url = "https://registry.npmjs.org/@lerna/has-npm-version/-/has-npm-version-5.1.4.tgz";
+        sha512 = "U81b1nvqwF8PGyHib8/AWeGbaNipGdqXZsRO5g3ob9A5X57GXJ86cQVLejLi+znY4SmQcHladC4TotJkpNF1Ag==";
       };
     };
-    "@lerna/import-5.1.0" = {
+    "@lerna/import-5.1.4" = {
       name = "_at_lerna_slash_import";
       packageName = "@lerna/import";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/import/-/import-5.1.0.tgz";
-        sha512 = "oG7KmYCiXikYFk8VXvew2hioFKNUgve0NGXpIW3eHM5vtWUoGa2EA+5TDJnzXWNDiW27PULrD/MBBfLchWfIpA==";
+        url = "https://registry.npmjs.org/@lerna/import/-/import-5.1.4.tgz";
+        sha512 = "Kswe1NKJDUDlO/gbkFcurzaYlaj/fXlapHTaih9LmQDiVPOE9GphD5qnABCV0c4CqeSnCzRujT5BUjjL5z7viA==";
       };
     };
-    "@lerna/info-5.1.0" = {
+    "@lerna/info-5.1.4" = {
       name = "_at_lerna_slash_info";
       packageName = "@lerna/info";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/info/-/info-5.1.0.tgz";
-        sha512 = "RS25MvC2PpbPg8110e1FXo4rgU8VH0749/Kt4qwoMjXOxx/XecLWB69+YT1XZwi42XnzmfTSBWpi7ZuKZF++HA==";
+        url = "https://registry.npmjs.org/@lerna/info/-/info-5.1.4.tgz";
+        sha512 = "9OMdNtmDMKLwfX+aZk9nHLfksYXuU7IcIiVJ9dR7gYx1PoKjXvTpd/+hd7t/tmElM21kmPVxQBu02L3KmXw+hQ==";
       };
     };
-    "@lerna/init-5.1.0" = {
+    "@lerna/init-5.1.4" = {
       name = "_at_lerna_slash_init";
       packageName = "@lerna/init";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/init/-/init-5.1.0.tgz";
-        sha512 = "Nhc6rUCYLo17zqZF3ONoyw7d6TEhQwADdEiDe3LWe2lv/AuTGFI7ZNgo5gduLkAsfw54i8kGUQNh2/lvfGqB1g==";
+        url = "https://registry.npmjs.org/@lerna/init/-/init-5.1.4.tgz";
+        sha512 = "OdI5iWYT1JcB6f5mjmCjgpkOrpDdSSDzmSi34kp/NP1FkbskDoMffVBTQiV8/h6zAg3jk1+aLQYLMuR5E6nIwA==";
       };
     };
-    "@lerna/link-5.1.0" = {
+    "@lerna/link-5.1.4" = {
       name = "_at_lerna_slash_link";
       packageName = "@lerna/link";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/link/-/link-5.1.0.tgz";
-        sha512 = "OHShGKIe83/GcBVivmFWO6R9g3K8MDZfKwtcgBxy6GeLNQ+IfxxwOIbPEcn2afpBrEuGaisaNHKf00YnnmCdRQ==";
+        url = "https://registry.npmjs.org/@lerna/link/-/link-5.1.4.tgz";
+        sha512 = "j73MW+vam6e8XdwyQGeHR9X7TUmgvLG0wV1vDLjSyrhk/Q5oFo0RTRgfDJqR4tCtRnv0vujvw5oDXfSbBmg67g==";
       };
     };
-    "@lerna/list-5.1.0" = {
+    "@lerna/list-5.1.4" = {
       name = "_at_lerna_slash_list";
       packageName = "@lerna/list";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/list/-/list-5.1.0.tgz";
-        sha512 = "MW+2ebEm/eEcHfEpdS/JM8XC0OrBbVH1HbTTHba7WUHTvjIeKj8qFD6wJa4YSqVWLC415Ev9ET9JnesIfL375w==";
+        url = "https://registry.npmjs.org/@lerna/list/-/list-5.1.4.tgz";
+        sha512 = "D7FAUik18s5FtHnBoPzodR8LUvH5b0a/ziV8ICaKWZ98H4w9qpNsQtBe0O+7DwUuqLKYpycst5tY5WVGnNwuNA==";
       };
     };
-    "@lerna/listable-5.1.0" = {
+    "@lerna/listable-5.1.4" = {
       name = "_at_lerna_slash_listable";
       packageName = "@lerna/listable";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/listable/-/listable-5.1.0.tgz";
-        sha512 = "L+zlyn+6LltxzER8c1GXq4k1EaRluuzQmEBIXnlHYgAQxrYpZ/L8U8h4zXWyaxUoJULHBCoLWxGq2cgJFxHE3w==";
+        url = "https://registry.npmjs.org/@lerna/listable/-/listable-5.1.4.tgz";
+        sha512 = "grGLrffBNX38l5mzZgkv4xE9UcAAKBi1s+LgloI3rusgTdE/B8gvCOYMqLf9V08iojs7Ke2xPf0whJmbEeK/qA==";
       };
     };
-    "@lerna/log-packed-5.1.0" = {
+    "@lerna/log-packed-5.1.4" = {
       name = "_at_lerna_slash_log-packed";
       packageName = "@lerna/log-packed";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.1.0.tgz";
-        sha512 = "nHoVWnq01RkIC4BDfGWRjaGSuKuVx31eY/JDx0NV+eVGoaTAp5YgMmZilRBSIQPRBlGMxEex89YLfXmOWfXuPg==";
+        url = "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.1.4.tgz";
+        sha512 = "qJlWMVjc/uM1I7AWqrOPeBLVZy9YExi/QqUyvmkb8mmsPXnW7rxIJQdYgRifS5aFNTbX/MtG8Q65Rr4syiVnSA==";
       };
     };
-    "@lerna/npm-conf-5.1.0" = {
+    "@lerna/npm-conf-5.1.4" = {
       name = "_at_lerna_slash_npm-conf";
       packageName = "@lerna/npm-conf";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.1.0.tgz";
-        sha512 = "S//5yGukBEhVveGxrjKkGd7YUhAD2Es9wz5ec5GkfxH3jmPtc0Uxn/v87p7P6zxR/elt0fnFiwyK9Za1CDcmaA==";
+        url = "https://registry.npmjs.org/@lerna/npm-conf/-/npm-conf-5.1.4.tgz";
+        sha512 = "kNbw2jO0HD9P4+nS8RIFub549BiQYG/sdFUuNWu7cCjErB+g/5ayfE6Mn5HyiRPMYXVw73iR8IzvkCCDWEOB7Q==";
       };
     };
-    "@lerna/npm-dist-tag-5.1.0" = {
+    "@lerna/npm-dist-tag-5.1.4" = {
       name = "_at_lerna_slash_npm-dist-tag";
       packageName = "@lerna/npm-dist-tag";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.0.tgz";
-        sha512 = "PlLJKsSUfdizQRMhvVCvnpGparTO9JTdybkiOeKApbz+BEnL+eANodY+eJs+ubO2mMsku8LEGyyUs2OyCP/23Q==";
+        url = "https://registry.npmjs.org/@lerna/npm-dist-tag/-/npm-dist-tag-5.1.4.tgz";
+        sha512 = "9q5N3iy8KGFBsyRBmNEftj8ACeCXNh2JUBqk/wYGiB0WH0oVf0UY/uo6VUy8dZjyJ9Q0eZa1ONtFHIg3QrzGDA==";
       };
     };
-    "@lerna/npm-install-5.1.0" = {
+    "@lerna/npm-install-5.1.4" = {
       name = "_at_lerna_slash_npm-install";
       packageName = "@lerna/npm-install";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.1.0.tgz";
-        sha512 = "uUiAN9eLyrvTjGKPLSgRtFi6Bu9QDGNu/EbYG14iBPLOmFbFVyhAQr4QHJ8lA/orJDKrTgEMWVl/rI++MX9Hxw==";
+        url = "https://registry.npmjs.org/@lerna/npm-install/-/npm-install-5.1.4.tgz";
+        sha512 = "DbbUK2Zy7ZBpkHimlFKf7XbGzBsoPfqzf0i9hIYBHmND9YWSgIgVFJcyRH7E6UKpr4wRChW4h6xEV81jKykB7w==";
       };
     };
-    "@lerna/npm-publish-5.1.0" = {
+    "@lerna/npm-publish-5.1.4" = {
       name = "_at_lerna_slash_npm-publish";
       packageName = "@lerna/npm-publish";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.1.0.tgz";
-        sha512 = "vGCxUG1T2TmSzSlIMs8FGpdyLjv3kD8Wl68mI4g3NC4uOHuOPGCXlLjbgYlcT/v+d3L69jDfTFgiZhTiPFx8Jg==";
+        url = "https://registry.npmjs.org/@lerna/npm-publish/-/npm-publish-5.1.4.tgz";
+        sha512 = "MXtd2cFN+oJMxj9m1fXYAo+KE2BzO84Ukt3uAhQb1cXU01ZCwqGl/lQRWw5vI88emrKs0akx3d6E77PFpX9rpw==";
       };
     };
-    "@lerna/npm-run-script-5.1.0" = {
+    "@lerna/npm-run-script-5.1.4" = {
       name = "_at_lerna_slash_npm-run-script";
       packageName = "@lerna/npm-run-script";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.1.0.tgz";
-        sha512 = "zaBfisZVSd0q8Q9+Dm4p9d1GoWdLjSbMpIs00QA/dTXtMr+X64AVcgZVsiXqxCzK/ZJh6uOPsUbv6NNMhFQERA==";
+        url = "https://registry.npmjs.org/@lerna/npm-run-script/-/npm-run-script-5.1.4.tgz";
+        sha512 = "vw2G69lFmFzdX553GidE66QgCZ3cGyxoOvnpCdvZ1n9AS5ZwZSiL8Ms6N3Vj+AOhESFZmFZkzIVhtpX5/xNzLg==";
       };
     };
-    "@lerna/otplease-5.1.0" = {
+    "@lerna/otplease-5.1.4" = {
       name = "_at_lerna_slash_otplease";
       packageName = "@lerna/otplease";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.1.0.tgz";
-        sha512 = "s3ps5aPcUlSUMVQ92UZSEairm+9MXOtlZ1P0BEolUL+e/Fj6jKL2r8A+RRfTXXoIDNLmAiM7BXkkUqvtHTWScw==";
+        url = "https://registry.npmjs.org/@lerna/otplease/-/otplease-5.1.4.tgz";
+        sha512 = "t3qKC55D7rCacNTsqQwn25XxDRQXgRHYWS0gqn2ch+dTwXOI61Uto9okVhgn2ZfZVydJ3sjnktOsPeSXhQRQew==";
       };
     };
-    "@lerna/output-5.1.0" = {
+    "@lerna/output-5.1.4" = {
       name = "_at_lerna_slash_output";
       packageName = "@lerna/output";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/output/-/output-5.1.0.tgz";
-        sha512 = "UKkyTFmZrDYOXKtXlub8K8uQ3FrbA59x6lxjCV1ucUuodIVuFU5zT604ae5zPy8eLPDSy3UmjkxkAlnbEw13OA==";
+        url = "https://registry.npmjs.org/@lerna/output/-/output-5.1.4.tgz";
+        sha512 = "E9nLEcV5GJbTKJd/d+cvU54CIzQqoU2rJAeXeyHTufbjgCTPk4I8uDNHmG7uJ+aPrif6PPBt1IIw+w5UnStfdw==";
       };
     };
-    "@lerna/pack-directory-5.1.0" = {
+    "@lerna/pack-directory-5.1.4" = {
       name = "_at_lerna_slash_pack-directory";
       packageName = "@lerna/pack-directory";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.1.0.tgz";
-        sha512 = "OBYtkUz5GpDvU+JCZSIPwB7XCv6B9xILd3pYYCM5ditkwI3te+J9AZt+aleYa1/NfJdTxenPdBjui656dCEMdw==";
+        url = "https://registry.npmjs.org/@lerna/pack-directory/-/pack-directory-5.1.4.tgz";
+        sha512 = "TsltQrbwC/bPwQbL5i7WCMNM4Chl8+iqzawRZbILfjYpt3UK9xSV2tWfc9QtbmRBETvcFz/UMKQQDz+LMWN9jw==";
       };
     };
-    "@lerna/package-5.1.0" = {
+    "@lerna/package-5.1.4" = {
       name = "_at_lerna_slash_package";
       packageName = "@lerna/package";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package/-/package-5.1.0.tgz";
-        sha512 = "Y2HF4Lrv4E7AwT97+G1lx6qIJB4Wzi4nHsNOgRC/dK4Hr7b5Qubv2bPEcb0mMqWlwSrvYQI4Zacelgy/mgxPsA==";
+        url = "https://registry.npmjs.org/@lerna/package/-/package-5.1.4.tgz";
+        sha512 = "L0zsxslJZ+swkG/KLU3TQHmWPR0hf0eLIdOROyA9Nxvuo8C/702ddYZcuEYcz9t/jOuSgSB2s90iK2oTIncNbw==";
       };
     };
-    "@lerna/package-graph-5.1.0" = {
+    "@lerna/package-graph-5.1.4" = {
       name = "_at_lerna_slash_package-graph";
       packageName = "@lerna/package-graph";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.1.0.tgz";
-        sha512 = "Ero1z9fnu65WxzrAzw9/I5+kfbT7HkyV9F9MTxYpnk7zOAAYvR4qSCkc/yNEJPr4kN8NvcY8CifNEQtORxkVXg==";
+        url = "https://registry.npmjs.org/@lerna/package-graph/-/package-graph-5.1.4.tgz";
+        sha512 = "dP1gLcrqou5/8zef7u5ne4GTslNXULjpi3dDiljohKNR4XelsC4lkkF9m1Uzn9E1nAphHRhWXrRq40kqxmdYXg==";
       };
     };
-    "@lerna/prerelease-id-from-version-5.1.0" = {
+    "@lerna/prerelease-id-from-version-5.1.4" = {
       name = "_at_lerna_slash_prerelease-id-from-version";
       packageName = "@lerna/prerelease-id-from-version";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.0.tgz";
-        sha512 = "sNjthszV+VkBVHPfTVquxoUQ+p8mtBxPFFoLjK+Bq+57xdmV6VGhZ/QL8HTQ7H7y8KzWuqVNMl0Z7G6PZXON9g==";
+        url = "https://registry.npmjs.org/@lerna/prerelease-id-from-version/-/prerelease-id-from-version-5.1.4.tgz";
+        sha512 = "kDcXKKFD6Ww/FinLEvsY1P3aIiuVLyonkttvfKJTJvm3ymz7/fBKz8GotFXuONVC1xSIK9Nrk3jGYs6ZGoha+w==";
       };
     };
-    "@lerna/profiler-5.1.0" = {
+    "@lerna/profiler-5.1.4" = {
       name = "_at_lerna_slash_profiler";
       packageName = "@lerna/profiler";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.1.0.tgz";
-        sha512 = "/CCYMtkF2xj3kjD9w29k7TDe40K/gk7goR2fvUf/6akPBG2KhFY+sQ0TQ2Ojnaym75OAn4WXta+FLdTQSdAFRQ==";
+        url = "https://registry.npmjs.org/@lerna/profiler/-/profiler-5.1.4.tgz";
+        sha512 = "JLkS90+CSmi85v3SlJc5Wjk73MHmIviqtL3fM/Z6clBLbsRPkbBBfSwXKp7O281knF6E2UNTrWOtEG7b6wG3TQ==";
       };
     };
-    "@lerna/project-5.1.0" = {
+    "@lerna/project-5.1.4" = {
       name = "_at_lerna_slash_project";
       packageName = "@lerna/project";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/project/-/project-5.1.0.tgz";
-        sha512 = "QLrF+2CzPjP3ew8MJejI4pupRZDJvhpTDx/2f1sSfmHOiPsyxmx7DNhc/p9780MOhrSlokqDNfXDKph8bN3TrQ==";
+        url = "https://registry.npmjs.org/@lerna/project/-/project-5.1.4.tgz";
+        sha512 = "k0z3w45t746uAUkN+jY/jF+/BqHodGFYaUfM0DTDOGUWC8tXzxuqk3bchShp6Wct2gwNQWbtWHl50Jhhw5PC5g==";
       };
     };
-    "@lerna/prompt-5.1.0" = {
+    "@lerna/prompt-5.1.4" = {
       name = "_at_lerna_slash_prompt";
       packageName = "@lerna/prompt";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.1.0.tgz";
-        sha512 = "CiQEtULXK3zF+mwP5bKhXvPKpw2fqXxLZ4InfokYVcLcR3PgUyu8wmmDxFqkaG7hZnBcDPsn/QAE2P9yYvvoDQ==";
+        url = "https://registry.npmjs.org/@lerna/prompt/-/prompt-5.1.4.tgz";
+        sha512 = "AiE8NIzh+x2+F0t96M+rfwLtKzBNXjQEWXtBfEcA1eRqanMWUr6ejfmdkoEzXVrMzyY/ugPdWQYbGCI00iF7Tg==";
       };
     };
-    "@lerna/publish-5.1.0" = {
+    "@lerna/publish-5.1.4" = {
       name = "_at_lerna_slash_publish";
       packageName = "@lerna/publish";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/publish/-/publish-5.1.0.tgz";
-        sha512 = "7WlmuY5SxlFQz80EAziv0vgO0wbUufns9RYZZv8QKM6c17tBJJbRxguc3oxCx8m7V3BvrBeyvLBZUJhIKcyGNw==";
+        url = "https://registry.npmjs.org/@lerna/publish/-/publish-5.1.4.tgz";
+        sha512 = "hbFAwOlyUR4AUBd7qTQXXVKgaxTS4Mz4Kkjxz8g7jtqo+T0KvU3JbfwDqxOiCwcDk+qkrBbkwbvc27jcObSwkw==";
       };
     };
-    "@lerna/pulse-till-done-5.1.0" = {
+    "@lerna/pulse-till-done-5.1.4" = {
       name = "_at_lerna_slash_pulse-till-done";
       packageName = "@lerna/pulse-till-done";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.1.0.tgz";
-        sha512 = "CSYYtWk2/FMx7D7J/91MKstX+/zHdhtxAnSl+c+MDcf8gOtrcEdI41h4UDJi/q7E1STWvIhcq5OmFTOipoP37w==";
+        url = "https://registry.npmjs.org/@lerna/pulse-till-done/-/pulse-till-done-5.1.4.tgz";
+        sha512 = "zFPzv6cY0OcqtcR91ueZqd+ulTLE4vPk9l6iPAfefgqh6w0E6hSmG6J9RmYE3gaMHSFJdvYHb/yyTPLF32J9lg==";
       };
     };
-    "@lerna/query-graph-5.1.0" = {
+    "@lerna/query-graph-5.1.4" = {
       name = "_at_lerna_slash_query-graph";
       packageName = "@lerna/query-graph";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.1.0.tgz";
-        sha512 = "O/c7frgoQFzmgOOWqm+EcY8s2zDKZBq3zyoy5xCbx5ohG5OBA7pHti3SvOP2Ex+YnAwl50r6Eb9Jdixo5ydWHg==";
+        url = "https://registry.npmjs.org/@lerna/query-graph/-/query-graph-5.1.4.tgz";
+        sha512 = "G8DYNqp5ISbbMjEJhGst1GHk59zO18IG9oaVSK14M7iF3qCLtg0iJ1Do4LDNpda3EF8PrLOx2mrNM5MBcGMjEg==";
       };
     };
-    "@lerna/resolve-symlink-5.1.0" = {
+    "@lerna/resolve-symlink-5.1.4" = {
       name = "_at_lerna_slash_resolve-symlink";
       packageName = "@lerna/resolve-symlink";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.1.0.tgz";
-        sha512 = "dNIdtQMgsTLkeAZ5U7VH2oPt/ha81XgEiutIvgjjQH87Y5lYRNkX++ahN2/ccnDbv4aPf0tMxFEtRU6Jbh88Lw==";
+        url = "https://registry.npmjs.org/@lerna/resolve-symlink/-/resolve-symlink-5.1.4.tgz";
+        sha512 = "hpnaX5tznAtbQXlyc92kJiywdTnnbCf6wihSZwDiVnVgXuHJ3LvmjN677h9A0jobY6KdTT+wIoAHpJuZHj60vQ==";
       };
     };
-    "@lerna/rimraf-dir-5.1.0" = {
+    "@lerna/rimraf-dir-5.1.4" = {
       name = "_at_lerna_slash_rimraf-dir";
       packageName = "@lerna/rimraf-dir";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.1.0.tgz";
-        sha512 = "RkLxq2SveLuhEFeVb6tRBzdxiOVJcV56CfcKupCAHmhewEI2At+T/mbqTSzIr+dX3tIWni1uDg2ASWdfgQbGZw==";
+        url = "https://registry.npmjs.org/@lerna/rimraf-dir/-/rimraf-dir-5.1.4.tgz";
+        sha512 = "WvHm4gE1/HWbI4gCjJw3clPT+FRq2Ob9I9EDbfw4c307MNT4kW4bJU2mt0nyv/uwYhUkTG+GQVrlt+Dtcif77g==";
       };
     };
-    "@lerna/run-5.1.0" = {
+    "@lerna/run-5.1.4" = {
       name = "_at_lerna_slash_run";
       packageName = "@lerna/run";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run/-/run-5.1.0.tgz";
-        sha512 = "RoBRZCoGklAbCvhPXh9CjUkB0IhdR0FciiFXlB+Wl1y6LZeNB5QEztCArrWiMO17gpa8+ZWAguPaWXhOcH1LZw==";
+        url = "https://registry.npmjs.org/@lerna/run/-/run-5.1.4.tgz";
+        sha512 = "iaTioOF66z02Y9ml/Ba0ePpXOwZ+BkODcNXrJbyW8WhraL0fSjyno0FspO1Eu0nG4JMtgCsoEzHNphsk7Wg+7A==";
       };
     };
-    "@lerna/run-lifecycle-5.1.0" = {
+    "@lerna/run-lifecycle-5.1.4" = {
       name = "_at_lerna_slash_run-lifecycle";
       packageName = "@lerna/run-lifecycle";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.1.0.tgz";
-        sha512 = "CJ9LunNtzsLIt9wemwirBaIGGmwrHuEWWa7wIqPKee0R3LZJoUP471A/xK7eAkzmo2rty1JriMPsqg2SyfFDZg==";
+        url = "https://registry.npmjs.org/@lerna/run-lifecycle/-/run-lifecycle-5.1.4.tgz";
+        sha512 = "ubmqi1ixebBHSTYS0oK8MoqBoJE7UDrXWTWsv84UrXiPutTffLR8ZQJKlMEcetQVzX9qbjpKbzc+jQWXPWid2A==";
       };
     };
-    "@lerna/run-topologically-5.1.0" = {
+    "@lerna/run-topologically-5.1.4" = {
       name = "_at_lerna_slash_run-topologically";
       packageName = "@lerna/run-topologically";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.1.0.tgz";
-        sha512 = "CZs9GhiTVkfPsMivOzfrf8eWzSoKxJY57arwfPwSFmUdUTok6uZKmC4bo6uqd1eyRGIba6j03ivg0ehUbr7APQ==";
+        url = "https://registry.npmjs.org/@lerna/run-topologically/-/run-topologically-5.1.4.tgz";
+        sha512 = "MckWfLu/xuRtaThdUgrJC2naumv2LOIiMoJfxCdYpiCrIgq5YrwqOxjQ0awHqQhkvFZ5G91ucBcBEIMsOou1iw==";
       };
     };
-    "@lerna/symlink-binary-5.1.0" = {
+    "@lerna/symlink-binary-5.1.4" = {
       name = "_at_lerna_slash_symlink-binary";
       packageName = "@lerna/symlink-binary";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.1.0.tgz";
-        sha512 = "D357qFkPhADU/bjK3vSPydG85gQGspgGg83EupAyocCPUyH0vE2YGNF713CXRTaMOkV8oxoH/QDcUVmqGybTVA==";
+        url = "https://registry.npmjs.org/@lerna/symlink-binary/-/symlink-binary-5.1.4.tgz";
+        sha512 = "SNjHxCNTCD0Xfj3CNBTG+3ut4aDAVaq+SrB2ckFNmZ5Z9yFdnX6aP+PBzLD/0q5hj18lGlaJ8iZjD/ubbrgFCA==";
       };
     };
-    "@lerna/symlink-dependencies-5.1.0" = {
+    "@lerna/symlink-dependencies-5.1.4" = {
       name = "_at_lerna_slash_symlink-dependencies";
       packageName = "@lerna/symlink-dependencies";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.0.tgz";
-        sha512 = "DN+Zk/aAbfhDx5dxbccb0n6AFj27cO3Tu+RITmzt1N4KfIrVpcsrxRN+dt+pc945SE8ccdO5vkKrybijjlGb4Q==";
+        url = "https://registry.npmjs.org/@lerna/symlink-dependencies/-/symlink-dependencies-5.1.4.tgz";
+        sha512 = "SuzylyNs1R5bVRqSCwfbQLdDP83RX8ncQxOy2SSSrScwkzdBCDqDPh4haeADsq2+RoOQBItn1PDfzUCNAWomDA==";
       };
     };
-    "@lerna/temp-write-5.1.0" = {
+    "@lerna/temp-write-5.1.4" = {
       name = "_at_lerna_slash_temp-write";
       packageName = "@lerna/temp-write";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.1.0.tgz";
-        sha512 = "IvtYcrnWISEe9nBjhvq+o1mfn85Kup6rd+/PHb3jFmxx7E6ON4BnuqGPOOjmEjboMIRaopWQrkuCoIVotP+sDw==";
+        url = "https://registry.npmjs.org/@lerna/temp-write/-/temp-write-5.1.4.tgz";
+        sha512 = "f+6+ud87pyitM9zAq7GBhB7uoHTcgLJvR3YGv5sNja4jIl3+zdKPDcyxzVyQb38knuRSkGM8NjYOWi4zwcMaGw==";
       };
     };
-    "@lerna/timer-5.1.0" = {
+    "@lerna/timer-5.1.4" = {
       name = "_at_lerna_slash_timer";
       packageName = "@lerna/timer";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/timer/-/timer-5.1.0.tgz";
-        sha512 = "ukVB3eDBKjZd8TjOSB3uHJWpPBtf7Ryk5AfA1yAotVd0Uk4wztGE6ULpGteAAS4AyJ1Tw9Ux7OLWu6QGVNvYLQ==";
+        url = "https://registry.npmjs.org/@lerna/timer/-/timer-5.1.4.tgz";
+        sha512 = "fhQtqkLxNexPWzhI1WAxZnHIBM8VhChvUJu503u1Rmp2JxhXbTE4Txnu1gPvqlDjdoE6ck0vN5icmfMVRwKc8g==";
       };
     };
-    "@lerna/validation-error-5.1.0" = {
+    "@lerna/validation-error-5.1.4" = {
       name = "_at_lerna_slash_validation-error";
       packageName = "@lerna/validation-error";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.1.0.tgz";
-        sha512 = "Csogf+BzsMa8vxj51KcHIg3RVWr0FbIkRXXALRT5c/shUsV7NClV/cpz35r3DzBIXdh168LftHBW49wxPXX5uw==";
+        url = "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.1.4.tgz";
+        sha512 = "wys9Fv/bUy7sYXOK9t+V3XSyEHK5tUXwY22nfIDYu416WcSkkE4DI8Q2nTv4nYYOmG2Y7IOhaSenbsPLQ0VqtQ==";
       };
     };
-    "@lerna/version-5.1.0" = {
+    "@lerna/version-5.1.4" = {
       name = "_at_lerna_slash_version";
       packageName = "@lerna/version";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/version/-/version-5.1.0.tgz";
-        sha512 = "KXvrudKfAUl/Fx1QkZXIaQ62O6/hcUZO48vCDG5ngEIfCUYxSneNgC/mp1J1rh3qC5ame9T3crP//ixYjGyHqQ==";
+        url = "https://registry.npmjs.org/@lerna/version/-/version-5.1.4.tgz";
+        sha512 = "cYgm1SNdiK129JoWI8WMwjsxaIyeAC1gCaToWk36Tw+BCF3PbkdoTKdneDmJ+7qbX1QrzxsgHTcjwIt4lZPEqQ==";
       };
     };
-    "@lerna/write-log-file-5.1.0" = {
+    "@lerna/write-log-file-5.1.4" = {
       name = "_at_lerna_slash_write-log-file";
       packageName = "@lerna/write-log-file";
-      version = "5.1.0";
+      version = "5.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.1.0.tgz";
-        sha512 = "azYryoUcNnpKmV09PhyvkBManGvdWWdY3Zb6MGF73/mDeM4G9UoM/6mpNrcPwS3oEzKrc0hTwquuP3QyPiSuWw==";
+        url = "https://registry.npmjs.org/@lerna/write-log-file/-/write-log-file-5.1.4.tgz";
+        sha512 = "ISJbkjaSKhJ4d7V90RFvuwDQFq9ZH/KN475KFJr+TBFZTwMiXuBahlq+j8/a+nItejNnuPD4/xlWuzCOuGJORQ==";
       };
     };
     "@lezer/common-0.15.12" = {
@@ -5503,6 +5566,60 @@ let
         sha512 = "fkAZCkkpB90Nepvfd2NqwAF6wa3O+/ofhBDeQd7+79JwEtBqhCVGfa/xVb2j1mUscxmTIqwo1WIJtKM7YgGYsw==";
       };
     };
+    "@lmdb/lmdb-darwin-arm64-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-darwin-arm64";
+      packageName = "@lmdb/lmdb-darwin-arm64";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-darwin-arm64/-/lmdb-darwin-arm64-2.5.2.tgz";
+        sha512 = "+F8ioQIUN68B4UFiIBYu0QQvgb9FmlKw2ctQMSBfW2QBrZIxz9vD9jCGqTCPqZBRbPHAS/vG1zSXnKqnS2ch/A==";
+      };
+    };
+    "@lmdb/lmdb-darwin-x64-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-darwin-x64";
+      packageName = "@lmdb/lmdb-darwin-x64";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-darwin-x64/-/lmdb-darwin-x64-2.5.2.tgz";
+        sha512 = "KvPH56KRLLx4KSfKBx0m1r7GGGUMXm0jrKmNE7plbHlesZMuPJICtn07HYgQhj1LNsK7Yqwuvnqh1QxhJnF1EA==";
+      };
+    };
+    "@lmdb/lmdb-linux-arm-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-linux-arm";
+      packageName = "@lmdb/lmdb-linux-arm";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-linux-arm/-/lmdb-linux-arm-2.5.2.tgz";
+        sha512 = "5kQAP21hAkfW5Bl+e0P57dV4dGYnkNIpR7f/GAh6QHlgXx+vp/teVj4PGRZaKAvt0GX6++N6hF8NnGElLDuIDw==";
+      };
+    };
+    "@lmdb/lmdb-linux-arm64-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-linux-arm64";
+      packageName = "@lmdb/lmdb-linux-arm64";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-linux-arm64/-/lmdb-linux-arm64-2.5.2.tgz";
+        sha512 = "aLl89VHL/wjhievEOlPocoefUyWdvzVrcQ/MHQYZm2JfV1jUsrbr/ZfkPPUFvZBf+VSE+Q0clWs9l29PCX1hTQ==";
+      };
+    };
+    "@lmdb/lmdb-linux-x64-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-linux-x64";
+      packageName = "@lmdb/lmdb-linux-x64";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-linux-x64/-/lmdb-linux-x64-2.5.2.tgz";
+        sha512 = "xUdUfwDJLGjOUPH3BuPBt0NlIrR7f/QHKgu3GZIXswMMIihAekj2i97oI0iWG5Bok/b+OBjHPfa8IU9velnP/Q==";
+      };
+    };
+    "@lmdb/lmdb-win32-x64-2.5.2" = {
+      name = "_at_lmdb_slash_lmdb-win32-x64";
+      packageName = "@lmdb/lmdb-win32-x64";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@lmdb/lmdb-win32-x64/-/lmdb-win32-x64-2.5.2.tgz";
+        sha512 = "zrBczSbXKxEyK2ijtbRdICDygRqWSRPpZMN5dD1T8VMEW5RIhIbwFWw2phDRXuBQdVDpSjalCIUMWMV2h3JaZA==";
+      };
+    };
     "@malept/cross-spawn-promise-1.1.1" = {
       name = "_at_malept_slash_cross-spawn-promise";
       packageName = "@malept/cross-spawn-promise";
@@ -5674,13 +5791,13 @@ let
         sha512 = "ES5rj6J39FUkHe/b3C9SJs8bqIungYhuU7rBINTBaHOv/Ce4RCb3Gw08CZVl32W33UEkgRkzyWaIedV4at+QHg==";
       };
     };
-    "@mdn/browser-compat-data-4.1.12" = {
+    "@mdn/browser-compat-data-5.0.1" = {
       name = "_at_mdn_slash_browser-compat-data";
       packageName = "@mdn/browser-compat-data";
-      version = "4.1.12";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.1.12.tgz";
-        sha512 = "y3Ntio6hb5+m6asxcA3nnIN6URjAFMji2EZZVYGd2Ag5On4mmvPhMnXdiIScCMXgHjFX+5qXuKaojLLhJHZPAg==";
+        url = "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-5.0.1.tgz";
+        sha512 = "c+RIBgZSqSWgxZdNWLaaCAfBon2YM4pz0QD+VoT32rIOGChJl3l99E7B/xSWvVlSSiE7jQkEuJx3hbKoUdAi3w==";
       };
     };
     "@medable/mdctl-api-1.0.66" = {
@@ -5845,13 +5962,13 @@ let
         sha512 = "W6CLUJ2eBMw3Rec70qrsEW0jOm/3twwJv21mrmj2yORiaVmVYGS4sSS5yUwvQc1ZlDLYGPnClVWmUUMagKNsfA==";
       };
     };
-    "@microsoft/load-themed-styles-1.10.268" = {
+    "@microsoft/load-themed-styles-1.10.270" = {
       name = "_at_microsoft_slash_load-themed-styles";
       packageName = "@microsoft/load-themed-styles";
-      version = "1.10.268";
+      version = "1.10.270";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.268.tgz";
-        sha512 = "2n4beGOWbxJp6D+eatPWocpywcJUlNCtkjQ6k7RSHiLWuv23HetqmESqrqZTTDjQ3JG0jOv+wVkXVNqXcfVlPw==";
+        url = "https://registry.npmjs.org/@microsoft/load-themed-styles/-/load-themed-styles-1.10.270.tgz";
+        sha512 = "HvzX1iTkQgpTl+BucTrfszOWJEQ1K1DD8Ibr1sDpS/jtFVhppuL+56mGW4tYlx5+XgN3j8FN8j/XnA0tHCK+Tw==";
       };
     };
     "@mischnic/json-sourcemap-0.1.0" = {
@@ -6241,6 +6358,15 @@ let
         sha512 = "3BGrt6FLjqM6br5AhWRKTr3u5GIVkjRYeAFrMp3HjnfICrg4xOrVRwFavKT6tsp++bq5dluL5t8ME/Nha/6c1Q==";
       };
     };
+    "@npmcli/config-4.1.0" = {
+      name = "_at_npmcli_slash_config";
+      packageName = "@npmcli/config";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@npmcli/config/-/config-4.1.0.tgz";
+        sha512 = "cPQmIQ2Q0vuOfrenrA3isikdMFMAHgzlXV+EmvZ8f2JeJsU5xTU2bG7ipXECiMvPF9nM+QDnMLuIg8QLw9H4xg==";
+      };
+    };
     "@npmcli/fs-1.1.1" = {
       name = "_at_npmcli_slash_fs";
       packageName = "@npmcli/fs";
@@ -6592,13 +6718,13 @@ let
         sha512 = "0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg==";
       };
     };
-    "@octokit/openapi-types-11.2.0" = {
+    "@octokit/openapi-types-12.1.0" = {
       name = "_at_octokit_slash_openapi-types";
       packageName = "@octokit/openapi-types";
-      version = "11.2.0";
+      version = "12.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-11.2.0.tgz";
-        sha512 = "PBsVO+15KSlGmiI8QAzaqvsNlZlrDlyAJYcrXBCvVUxCp7VnXjkwPoFHgjEJXx3WF9BAwkA6nfCUA7i9sODzKA==";
+        url = "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.1.0.tgz";
+        sha512 = "kQzJh3ZUv3lDpi6M+uekMRHULvf9DlWoI1XgKN6nPeGDzkSgtkhVq1MMz3bFKQ6H6GbdC3ZqG/a6VzKhIx0VeA==";
       };
     };
     "@octokit/plugin-enterprise-rest-6.0.1" = {
@@ -6610,13 +6736,13 @@ let
         sha512 = "93uGjlhUD+iNg1iWhUENAtJata6w5nE+V4urXOAlIXdco6xNZtUSfYY8dzp3Udy74aqO/B5UZL80x/YMa5PKRw==";
       };
     };
-    "@octokit/plugin-paginate-rest-2.17.0" = {
+    "@octokit/plugin-paginate-rest-2.18.0" = {
       name = "_at_octokit_slash_plugin-paginate-rest";
       packageName = "@octokit/plugin-paginate-rest";
-      version = "2.17.0";
+      version = "2.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.17.0.tgz";
-        sha512 = "tzMbrbnam2Mt4AhuyCHvpRkS0oZ5MvwwcQPYGtMv4tUa5kkzG58SVB0fcsLulOZQeRnOgdkZWkRUiyBlh0Bkyw==";
+        url = "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.18.0.tgz";
+        sha512 = "n5/AzIoy5Wzp85gqzSbR+dWQDHlyHZrGijnDfLh452547Ynu0hCvszH7EfRE0eqM5ZjfkplO0k+q+P8AAIIJEA==";
       };
     };
     "@octokit/plugin-request-log-1.0.4" = {
@@ -6628,13 +6754,13 @@ let
         sha512 = "mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==";
       };
     };
-    "@octokit/plugin-rest-endpoint-methods-5.13.0" = {
+    "@octokit/plugin-rest-endpoint-methods-5.14.0" = {
       name = "_at_octokit_slash_plugin-rest-endpoint-methods";
       packageName = "@octokit/plugin-rest-endpoint-methods";
-      version = "5.13.0";
+      version = "5.14.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.13.0.tgz";
-        sha512 = "uJjMTkN1KaOIgNtUPMtIXDOjx6dGYysdIFhgA52x4xSadQCz3b/zJexvITDVpANnfKPW/+E0xkOvLntqMYpviA==";
+        url = "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.14.0.tgz";
+        sha512 = "MRnMs4Dcm1OSaz/g/RLr4YY9otgysS7vN5SUkHGd7t+R8323cHsHFoEWHYPSmgUC0BieHRhvnCRWb4i3Pl+Lgg==";
       };
     };
     "@octokit/plugin-retry-3.0.9" = {
@@ -6682,13 +6808,13 @@ let
         sha512 = "gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q==";
       };
     };
-    "@octokit/types-6.34.0" = {
+    "@octokit/types-6.35.0" = {
       name = "_at_octokit_slash_types";
       packageName = "@octokit/types";
-      version = "6.34.0";
+      version = "6.35.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@octokit/types/-/types-6.34.0.tgz";
-        sha512 = "s1zLBjWhdEI2zwaoSgyOFoKSl109CUcVBCc7biPJ3aAf6LGLU6szDvi31JPU7bxfla2lqfhjbbg/5DdFNxOwHw==";
+        url = "https://registry.npmjs.org/@octokit/types/-/types-6.35.0.tgz";
+        sha512 = "DhLfdUuv3H37u6jBDfkwamypx3HflHg29b26nbA6iVFYkAlZ5cMEtu/9pQoihGnQE5M7jJFnNo25Rr1UwQNF8Q==";
       };
     };
     "@opencensus/core-0.0.8" = {
@@ -7078,157 +7204,157 @@ let
         sha512 = "xrgAFbPWSS1uKYtPqUTfahc2Ga1kc3tKIzVg9Kp2cFF8atTeinsZ2aWLtnBT2nzf0Z1z/PyWrT08w5bGvL/01A==";
       };
     };
-    "@parcel/bundler-default-2.6.0" = {
+    "@parcel/bundler-default-2.6.1" = {
       name = "_at_parcel_slash_bundler-default";
       packageName = "@parcel/bundler-default";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.6.0.tgz";
-        sha512 = "AplEdGm/odV7yGmoeOnglxnY31WlNB5EqGLFGxkgs7uwDaTWoTX/9SWPG6xfvirhjDpms8sLSiVuBdFRCCLtNA==";
+        url = "https://registry.npmjs.org/@parcel/bundler-default/-/bundler-default-2.6.1.tgz";
+        sha512 = "hCaLnvanoQcWp+09WGdo3q1/qrqLuwgoWf3wU5IrQgx77JqnASBTn0/qkEes5vNH0VbHDWmwtPSoECPLWxNS/A==";
       };
     };
-    "@parcel/cache-2.6.0" = {
+    "@parcel/cache-2.6.1" = {
       name = "_at_parcel_slash_cache";
       packageName = "@parcel/cache";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.6.0.tgz";
-        sha512 = "4vbD5uSuf+kRnrFesKhpn0AKnOw8u2UlvCyrplYmp1g9bNAkIooC/nDGdmkb/9SviPEbni9PEanQEHDU2+slpA==";
+        url = "https://registry.npmjs.org/@parcel/cache/-/cache-2.6.1.tgz";
+        sha512 = "FjG9DDLUCxlnS32cF7riga8gwMKbwxKnVIUsKZU5K9I+Sd5HtKRqn8H3e7dksCiVCPqZR3jItnr7FH9bEniWJA==";
       };
     };
-    "@parcel/codeframe-2.6.0" = {
+    "@parcel/codeframe-2.6.1" = {
       name = "_at_parcel_slash_codeframe";
       packageName = "@parcel/codeframe";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.6.0.tgz";
-        sha512 = "yXXxrO9yyedHKpTwC+Af0+vPmQm+A9xeEhkt4f0yVg1n4t4yUIxYlTedzbM8ygZEEBtkXU9jJ+PkgXbfMf0dqw==";
+        url = "https://registry.npmjs.org/@parcel/codeframe/-/codeframe-2.6.1.tgz";
+        sha512 = "6GR9w9cccxCMbDqXNfEGwFjju+Ks3mMDaiLuLXIITkuEYgxdbXrpNlcpD0tJiSJn3cyo8gieUYFF4wlJyuS/gQ==";
       };
     };
-    "@parcel/compressor-raw-2.6.0" = {
+    "@parcel/compressor-raw-2.6.1" = {
       name = "_at_parcel_slash_compressor-raw";
       packageName = "@parcel/compressor-raw";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.6.0.tgz";
-        sha512 = "rtMU2mGl88bic6Xbq1u5L49bMK4s5185b0k7h3JRdS6/0rR+Xp4k/o9Wog+hHjK/s82z1eF9WmET779ZpIDIQQ==";
+        url = "https://registry.npmjs.org/@parcel/compressor-raw/-/compressor-raw-2.6.1.tgz";
+        sha512 = "UbA1xndQHZVWXdkVN/3PH0libsB6M1urEvTOrtxXiZS4bVGqj/UwoZ47OZA92ls0q35Qa0tWjQ6zBmlrgRWCsg==";
       };
     };
-    "@parcel/config-default-2.6.0" = {
+    "@parcel/config-default-2.6.1" = {
       name = "_at_parcel_slash_config-default";
       packageName = "@parcel/config-default";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.6.0.tgz";
-        sha512 = "DXovFPhZITmTvFaSEdC8RRqROs9FLIJ4u8yFSU6FUyq2wpvtYVRXXoDrvXgClh2csXmK7JTJTp5JF7r0rd2UaA==";
+        url = "https://registry.npmjs.org/@parcel/config-default/-/config-default-2.6.1.tgz";
+        sha512 = "upW4K2fdljpcHhmniEGVdBjqonFUqfONMWnxrS3WEikcuCwr2/IVLD61w0MPLEeu8Xbr2anHJwh2/kl7DiWDZQ==";
       };
     };
-    "@parcel/core-2.6.0" = {
+    "@parcel/core-2.6.1" = {
       name = "_at_parcel_slash_core";
       packageName = "@parcel/core";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/core/-/core-2.6.0.tgz";
-        sha512 = "8OOWbPuxpFydpwNyKoz6d3e3O4DmxNYmMw4DXwrPSj/jyg7oa+SDtMT0/VXEhujE0HYkQPCHt4npRajkSuf99A==";
+        url = "https://registry.npmjs.org/@parcel/core/-/core-2.6.1.tgz";
+        sha512 = "FcinQQEtqqb0cSj4JPD8vx/qMkz1rWdbxtdEPG0W1cA2I5qcVPMgkHsVFrDnWQlQIquwu98um8zg1MrN1KrRew==";
       };
     };
-    "@parcel/css-1.9.0" = {
+    "@parcel/css-1.10.1" = {
       name = "_at_parcel_slash_css";
       packageName = "@parcel/css";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css/-/css-1.9.0.tgz";
-        sha512 = "egCetUQ1H6pgYxOIxVQ8X/YT5e8G0R8eq6aVaUHrqnZ7A8cc6FYgknl9XRmoy2Xxo9h1htrbzdaEShQ5gROwvw==";
+        url = "https://registry.npmjs.org/@parcel/css/-/css-1.10.1.tgz";
+        sha512 = "qnoQM4qH6ytYE3RK8PzMoI8dGPmJv/fNFkeC8Ku0A08GbG/ssir2TCQCarcKFVNgvtfDZ0AX3+vjSkYEAfzhJA==";
       };
     };
-    "@parcel/css-darwin-arm64-1.9.0" = {
+    "@parcel/css-darwin-arm64-1.10.1" = {
       name = "_at_parcel_slash_css-darwin-arm64";
       packageName = "@parcel/css-darwin-arm64";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.9.0.tgz";
-        sha512 = "f/guZseS2tNKtKw94LgpNTItZqdVA0mnznqPsmQaR5lSB+cM3IPrSV8cgOOpAS7Vwo9ggxuJartToxBBN+dWSw==";
+        url = "https://registry.npmjs.org/@parcel/css-darwin-arm64/-/css-darwin-arm64-1.10.1.tgz";
+        sha512 = "0ukr4/hSrM24ef8bcZ5b/o8iJrPVAxXOKCPGpmKFd+R/31SYjvFfMJzS2XAYUy0W0FunMW2fte3iTPNMDigyww==";
       };
     };
-    "@parcel/css-darwin-x64-1.9.0" = {
+    "@parcel/css-darwin-x64-1.10.1" = {
       name = "_at_parcel_slash_css-darwin-x64";
       packageName = "@parcel/css-darwin-x64";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.9.0.tgz";
-        sha512 = "4SpuwiM/4ayOgKflqSLd87XT7YwyC3wd2QuzOOkasjbe38UU+tot/87l2lQYEB538YinLdfwFQuFLDY0x9MxgA==";
+        url = "https://registry.npmjs.org/@parcel/css-darwin-x64/-/css-darwin-x64-1.10.1.tgz";
+        sha512 = "PFMPptY+OswU68XgBO2RlL6JckeWz/a36r7ys6LMPrNonIOWGce155lwnylBK1Pnx1DRQAN8jWaolo+OkD9RRQ==";
       };
     };
-    "@parcel/css-linux-arm-gnueabihf-1.9.0" = {
+    "@parcel/css-linux-arm-gnueabihf-1.10.1" = {
       name = "_at_parcel_slash_css-linux-arm-gnueabihf";
       packageName = "@parcel/css-linux-arm-gnueabihf";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.9.0.tgz";
-        sha512 = "KxCyX5fFvX5636Y8LSXwCxXMtIncgP7Lkw8nLsqd24C5YqMokmuOtAcHb/vQ9zQG6YiUWTv0MybqDuL7dBDfVw==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm-gnueabihf/-/css-linux-arm-gnueabihf-1.10.1.tgz";
+        sha512 = "QICiX10CDudilEV+DUBKbbJb7ckSuj2hyI3NyzphRqkxBE7t4Hb04x6RPKITEJwHgvqUQ3OUPWyvtalVAi36Ww==";
       };
     };
-    "@parcel/css-linux-arm64-gnu-1.9.0" = {
+    "@parcel/css-linux-arm64-gnu-1.10.1" = {
       name = "_at_parcel_slash_css-linux-arm64-gnu";
       packageName = "@parcel/css-linux-arm64-gnu";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.9.0.tgz";
-        sha512 = "wZ6Gsn6l+lSuvRdfWoyr7TdY24l29eGCD8QhXcqA1ALnFI7+KOTMBJ6aV3tjWUjMw3sg5qkosMHVqlWZzvrgXw==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-gnu/-/css-linux-arm64-gnu-1.10.1.tgz";
+        sha512 = "dHaQiBXlrDPdqE8O1qnlYqp1N9la1jgcYgIUCtm4NkNltzLVbbSFXyeG7OXeT6njP6ltMb4mmEFL18I2Wr3l3A==";
       };
     };
-    "@parcel/css-linux-arm64-musl-1.9.0" = {
+    "@parcel/css-linux-arm64-musl-1.10.1" = {
       name = "_at_parcel_slash_css-linux-arm64-musl";
       packageName = "@parcel/css-linux-arm64-musl";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.9.0.tgz";
-        sha512 = "N6n5HhMzcNR5oXWr0Md91gKYtuDhqDlp+aGDb3VT21uSCNLOvijOUz248v/VaPoRno1BPFYlMxn0fYYTTReB3A==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-arm64-musl/-/css-linux-arm64-musl-1.10.1.tgz";
+        sha512 = "inBbDCGhJaZcNCb588wQz5tYpGbnz8W/g9aFOH6X3nSBNToknOHplBHjOMLOB7vBxAykNjbywaNtE5H9qoY0/A==";
       };
     };
-    "@parcel/css-linux-x64-gnu-1.9.0" = {
+    "@parcel/css-linux-x64-gnu-1.10.1" = {
       name = "_at_parcel_slash_css-linux-x64-gnu";
       packageName = "@parcel/css-linux-x64-gnu";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.9.0.tgz";
-        sha512 = "QufawDkaiOjsh6jcZk/dgDBPMqBtIs+LGTOgcJDM6XL4mcbDNxO6VkDANssRUgPnbG66YYy419CUWFta9aeVOg==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-x64-gnu/-/css-linux-x64-gnu-1.10.1.tgz";
+        sha512 = "gBaHgMXom1lCGu/ummD1wqknxF9ZKFBUlxQ/0DtCdOtZlRBEKeWtoskK9tgH4YMnwTpMIagCwWB4UbP/9Yzz6A==";
       };
     };
-    "@parcel/css-linux-x64-musl-1.9.0" = {
+    "@parcel/css-linux-x64-musl-1.10.1" = {
       name = "_at_parcel_slash_css-linux-x64-musl";
       packageName = "@parcel/css-linux-x64-musl";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.9.0.tgz";
-        sha512 = "s528buicSd83/5M5DN31JqwefZ8tqx4Jm97srkLDVBCZg+XEe9P0bO7q1Ngz5ZVFqfwvv8OYLPOtAtBmEppG3g==";
+        url = "https://registry.npmjs.org/@parcel/css-linux-x64-musl/-/css-linux-x64-musl-1.10.1.tgz";
+        sha512 = "arjLARo/3l0uwPf5qYxCkrS0FTE8n6JH/S1/7DitvhG22fsZdJTGPwe4MYLTIn4s3QXLOVVRrkPDZlUPM1yjFA==";
       };
     };
-    "@parcel/css-win32-x64-msvc-1.9.0" = {
+    "@parcel/css-win32-x64-msvc-1.10.1" = {
       name = "_at_parcel_slash_css-win32-x64-msvc";
       packageName = "@parcel/css-win32-x64-msvc";
-      version = "1.9.0";
+      version = "1.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.9.0.tgz";
-        sha512 = "L4s84iK4PXnO/SzZyTsazAuzadtEYLGHgi1dyKYxMMGCjToCDjuwsn5K8bykeewZxjoL7RaunQGqCBRt5dfB5Q==";
+        url = "https://registry.npmjs.org/@parcel/css-win32-x64-msvc/-/css-win32-x64-msvc-1.10.1.tgz";
+        sha512 = "f/jkhL2uOZCHJg3/IGcuieZ4TTwkxExLd7SWVuiqJZI2nwOy/gLHTZJz3yzu/D1aLOe0M9/glgzUKRtK0DrUNA==";
       };
     };
-    "@parcel/diagnostic-2.6.0" = {
+    "@parcel/diagnostic-2.6.1" = {
       name = "_at_parcel_slash_diagnostic";
       packageName = "@parcel/diagnostic";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.6.0.tgz";
-        sha512 = "+p8gC2FKxSI2veD7SoaNlP572v4kw+nafCQEPDtJuzYYRqywYUGncch25dkpgNApB4W4cXVkZu3ZbtIpCAmjQQ==";
+        url = "https://registry.npmjs.org/@parcel/diagnostic/-/diagnostic-2.6.1.tgz";
+        sha512 = "7lbmRCHEeS8uzO+BzfTtiJMfeOKf5HOTaVE+kzTkfqHT/H3ChD1rNQQdxTjE+TvX2k7lLdEE6Qstj7OmrE/xQg==";
       };
     };
-    "@parcel/events-2.6.0" = {
+    "@parcel/events-2.6.1" = {
       name = "_at_parcel_slash_events";
       packageName = "@parcel/events";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/events/-/events-2.6.0.tgz";
-        sha512 = "2WaKtBs4iYwS88j4zRdyTJTgh8iuY4E32FMmjzzbheqETs6I05gWuPReGukJYxk8vc0Ir7tbzp12oAfpgo0Y+g==";
+        url = "https://registry.npmjs.org/@parcel/events/-/events-2.6.1.tgz";
+        sha512 = "x0PkTFm2wm1hIfwD/p0jNuCUM0t2NwzUxdZrTHm9ncqrYbO2tpG0N5jkTC9V9fu7j639vGVA7uOHYFgExTKUbQ==";
       };
     };
     "@parcel/fs-1.11.0" = {
@@ -7240,40 +7366,40 @@ let
         sha512 = "86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA==";
       };
     };
-    "@parcel/fs-2.6.0" = {
+    "@parcel/fs-2.6.1" = {
       name = "_at_parcel_slash_fs";
       packageName = "@parcel/fs";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.6.0.tgz";
-        sha512 = "6vxtx5Zy6MvDvH1EPx9JxjKGF03bR7VE1dUf4HLeX2D8YmpL5hkHJnlRCFdcH08rzOVwaJLzg1QNtblWJXQ9CA==";
+        url = "https://registry.npmjs.org/@parcel/fs/-/fs-2.6.1.tgz";
+        sha512 = "+kI2IPdZ5WH94+9LMCO/INnJUcbPcfVim97ORMjfe3mOYEPEQYqzM5g8SLjqiW/H5OIVapdIYoHWBEBpo3itdA==";
       };
     };
-    "@parcel/fs-search-2.6.0" = {
+    "@parcel/fs-search-2.6.1" = {
       name = "_at_parcel_slash_fs-search";
       packageName = "@parcel/fs-search";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.6.0.tgz";
-        sha512 = "1nXzM3H/cA4kzLKvDBvwmNisKCdRqlgkLXh+OR1Zu28Kn4W34KuJMcHWW8cC+WIuuKqDh5oo2WPsC5y65GXBKQ==";
+        url = "https://registry.npmjs.org/@parcel/fs-search/-/fs-search-2.6.1.tgz";
+        sha512 = "vfbknvzUjy1PQuCfjfbCQUIQXCUb+n+sd5CZHOODvE4PewvspW/YmKJpYluDr0S4mOa1GX7cHJCL675DALW5yQ==";
       };
     };
-    "@parcel/graph-2.6.0" = {
+    "@parcel/graph-2.6.1" = {
       name = "_at_parcel_slash_graph";
       packageName = "@parcel/graph";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/graph/-/graph-2.6.0.tgz";
-        sha512 = "rxrAzWm6rwbCRPbu0Z+zwMscpG8omffODniVWPlX2G0jgQGpjKsutBQ6RMfFIcfaQ4MzL3pIQOTf8bkjQOPsbg==";
+        url = "https://registry.npmjs.org/@parcel/graph/-/graph-2.6.1.tgz";
+        sha512 = "tzv9P3hyS9SZiwmE6KB1ZFhXV3/vjFNZV7+XGbf1opI3oTwawBb+XaH4k7InPyVYZTo1QrlauhoP+EQZFyzPEQ==";
       };
     };
-    "@parcel/hash-2.6.0" = {
+    "@parcel/hash-2.6.1" = {
       name = "_at_parcel_slash_hash";
       packageName = "@parcel/hash";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/hash/-/hash-2.6.0.tgz";
-        sha512 = "YugWqhLxqK80Lo++3B3Kr5UPCHOdS8iI2zJ1jkzUeH9v6WUzbwWOnmPf6lN2S5m1BrIFFJd8Jc+CbEXWi8zoJA==";
+        url = "https://registry.npmjs.org/@parcel/hash/-/hash-2.6.1.tgz";
+        sha512 = "5gve/OKOXzYADfCJ+atpR6L13n4clexazkNRcsm6LZtE2Gm84Nx81gdb8z08EJrZALC62f9J2FOmQxm6ZHrTSQ==";
       };
     };
     "@parcel/logger-1.11.1" = {
@@ -7285,211 +7411,211 @@ let
         sha512 = "9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA==";
       };
     };
-    "@parcel/logger-2.6.0" = {
+    "@parcel/logger-2.6.1" = {
       name = "_at_parcel_slash_logger";
       packageName = "@parcel/logger";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.6.0.tgz";
-        sha512 = "J1/7kPfSGBvMKSZdi0WCNuN0fIeiWxifnDGn7W/K8KhD422YwFJA8N046ps8nkDOPIXf1osnIECNp4GIR9oSYw==";
+        url = "https://registry.npmjs.org/@parcel/logger/-/logger-2.6.1.tgz";
+        sha512 = "AnKAVS/QRi1ee+Q1MxL+oUZT7dBZ36VUtevmXMSaaoN3W1KwYjM4Brq3zdiTZRfa7Akpdu6Ca1QVK5hGpvXKSg==";
       };
     };
-    "@parcel/markdown-ansi-2.6.0" = {
+    "@parcel/markdown-ansi-2.6.1" = {
       name = "_at_parcel_slash_markdown-ansi";
       packageName = "@parcel/markdown-ansi";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.6.0.tgz";
-        sha512 = "fyjkrJQQSfKTUFTTasdZ6WrAkDoQ2+DYDjj+3p+RncYyrIa9zArKx4IiRiipsvNdtMvP0/hTdK8F3BOJ3KSU/g==";
+        url = "https://registry.npmjs.org/@parcel/markdown-ansi/-/markdown-ansi-2.6.1.tgz";
+        sha512 = "p4dDINi+UeEUQfkA70R9gNJIuSnMuljSUfHf7erTU8vSqRD1tQpnmH7GfzzQLHYwHk8UYICGU8C6z7EtPH92Ng==";
       };
     };
-    "@parcel/namer-default-2.6.0" = {
+    "@parcel/namer-default-2.6.1" = {
       name = "_at_parcel_slash_namer-default";
       packageName = "@parcel/namer-default";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.6.0.tgz";
-        sha512 = "r8O12r7ozJBctnFxVdXbf/fK97GIdNj3hiiUNWlXEmED9sw6ZPcChaLcfot0/443g8i87JDmSTKJ8js2tuz5XA==";
+        url = "https://registry.npmjs.org/@parcel/namer-default/-/namer-default-2.6.1.tgz";
+        sha512 = "J7KajS6s0GvpZ0YIN8t/Z4Go/E7tS136bKyvSdWhVOUosmt2pW1L20lq9KfPVYDvWQNu12jqJbAHQFsqOLyllw==";
       };
     };
-    "@parcel/node-resolver-core-2.6.0" = {
+    "@parcel/node-resolver-core-2.6.1" = {
       name = "_at_parcel_slash_node-resolver-core";
       packageName = "@parcel/node-resolver-core";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.6.0.tgz";
-        sha512 = "AJDj5DZbB58plv0li8bdVSD+zpnkHE36Om3TYyNn1jgXXwgBM64Er/9p8yQn356jBqTQMh7zlJqvbdIyOiMeMg==";
+        url = "https://registry.npmjs.org/@parcel/node-resolver-core/-/node-resolver-core-2.6.1.tgz";
+        sha512 = "LaLiJkgr5Cq9ue5wxsFR97S3R+IOGkmvivNsdc4Y9Gdj9WO1nMTaNMBlw+AIjtbzdbw0MUvKQik2tR4AmfBcLw==";
       };
     };
-    "@parcel/optimizer-css-2.6.0" = {
+    "@parcel/optimizer-css-2.6.1" = {
       name = "_at_parcel_slash_optimizer-css";
       packageName = "@parcel/optimizer-css";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.6.0.tgz";
-        sha512 = "VMJknUwfKCw6Woov0lnPGdsGZewcI4ghW8WKmNZzC5uKCetk1XetV55QHBc1RNjGfsjfSTZiSa3guATj2zFJkQ==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-css/-/optimizer-css-2.6.1.tgz";
+        sha512 = "VNdATqH068XCbzaOBbgdZOBJAMomkXOqcmxXOmQkHqTKqBO11xXLIESP+PQwTXoxy7If+2ufxOPCHTI20691Jg==";
       };
     };
-    "@parcel/optimizer-htmlnano-2.6.0" = {
+    "@parcel/optimizer-htmlnano-2.6.1" = {
       name = "_at_parcel_slash_optimizer-htmlnano";
       packageName = "@parcel/optimizer-htmlnano";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.6.0.tgz";
-        sha512 = "HmvcUoYpfdx8ZfID4WOj/SE8N78NEBmzAffZ8f827mYMr4ZrbKzAgg6OG3tBbfF0zxH0bIjZcwqwZYk4SdbG7g==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-htmlnano/-/optimizer-htmlnano-2.6.1.tgz";
+        sha512 = "m+S3lvmSPEnPaUZzM2J/Lk8APYvMXXiJiz9UdjGa6yeW8yfR5TBPKoNPdO3XgAt13YGiNFhi/QasqsvE18iX+A==";
       };
     };
-    "@parcel/optimizer-image-2.6.0" = {
+    "@parcel/optimizer-image-2.6.1" = {
       name = "_at_parcel_slash_optimizer-image";
       packageName = "@parcel/optimizer-image";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.6.0.tgz";
-        sha512 = "FDNr3LJ8SWR9rrtdCrZOlYF1hE9G5pxUWawGxUasbvqwcY5lEQwr2KRmfGZeg+KwOnzlImlY6dP2LGox1NFddQ==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-image/-/optimizer-image-2.6.1.tgz";
+        sha512 = "xZ8+dygBgHQyOsMv7O1YzNGO1MKFNiE+72gN9LhjG7ld6bSix4he1af0ac7p9bpTv1cNfx/eTY604u+gv8XPqg==";
       };
     };
-    "@parcel/optimizer-svgo-2.6.0" = {
+    "@parcel/optimizer-svgo-2.6.1" = {
       name = "_at_parcel_slash_optimizer-svgo";
       packageName = "@parcel/optimizer-svgo";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.6.0.tgz";
-        sha512 = "LMTDVMd7T/IfLG59yLWl8Uw2HYGbj2C3jIwkMqH9MBUT5KILK66T3t0yV86SoZJnxZ6xBIJ+kCcCRssCzhvanw==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-svgo/-/optimizer-svgo-2.6.1.tgz";
+        sha512 = "oyEs/8JzMJnAmJYZsWeEpC3jgyDwxA9KAnntG/41n6WDX6KDdDhY5p8B+jEvt/WQu5MQXcvIoWnMWv0W6brq+Q==";
       };
     };
-    "@parcel/optimizer-terser-2.6.0" = {
+    "@parcel/optimizer-terser-2.6.1" = {
       name = "_at_parcel_slash_optimizer-terser";
       packageName = "@parcel/optimizer-terser";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.6.0.tgz";
-        sha512 = "oezRt6Lz/QqcVDXyMfFjzQc7n0ThJowLJ4Lyhu8rMh0ZJYzc4UCFCw/19d4nRnzE+Qg0vj3mQCpdkA9/64E44g==";
+        url = "https://registry.npmjs.org/@parcel/optimizer-terser/-/optimizer-terser-2.6.1.tgz";
+        sha512 = "h/bRdIU7Rh5MEhdX9cIGgqnu4+BpVBjRwDMqRvNirkAY6fZTLXgVb6ZxJq2jx8G4+j3sGzUmP1WaIPHeC0YJcg==";
       };
     };
-    "@parcel/package-manager-2.6.0" = {
+    "@parcel/package-manager-2.6.1" = {
       name = "_at_parcel_slash_package-manager";
       packageName = "@parcel/package-manager";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.6.0.tgz";
-        sha512 = "AqFfdkbOw51q/3ia2mIsFTmrpYEyUb3k+2uYC5GsLMz3go6OGn7/Crz0lZLSclv5EtwpRg3TWr9yL7RekVN/Uw==";
+        url = "https://registry.npmjs.org/@parcel/package-manager/-/package-manager-2.6.1.tgz";
+        sha512 = "lC+e0l+rB2QYBtXetAdDSqcidni0V1eYEAYXv4+sLnAMwyCeH3x4Ctivj/w0ILzuAFnS5ow9V91boM6DQegqHQ==";
       };
     };
-    "@parcel/packager-css-2.6.0" = {
+    "@parcel/packager-css-2.6.1" = {
       name = "_at_parcel_slash_packager-css";
       packageName = "@parcel/packager-css";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.6.0.tgz";
-        sha512 = "iXUttSe+wtnIM2PKCyFC2I4+Szv+8qHpC3wXeJlXlzd8wljm42y+6Fs4FZ0zihTccRxI2UUhFnKu90ag+5AmjA==";
+        url = "https://registry.npmjs.org/@parcel/packager-css/-/packager-css-2.6.1.tgz";
+        sha512 = "wUGzbH8u9FyybaiCbDYdWkyrObh994PzYzj0m6rwRz+g8HNDSvzHafOnms3e/IzhtchavVwq4yvhl4xyA2WYLQ==";
       };
     };
-    "@parcel/packager-html-2.6.0" = {
+    "@parcel/packager-html-2.6.1" = {
       name = "_at_parcel_slash_packager-html";
       packageName = "@parcel/packager-html";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.6.0.tgz";
-        sha512 = "HsiXMkU9AJr3LLjsP2Kteho2jCVpabTwcU/fauwbwirhg0xNlRsKxYZRCllRhPkb0FWAnkjzwjOj01MHD6NJCg==";
+        url = "https://registry.npmjs.org/@parcel/packager-html/-/packager-html-2.6.1.tgz";
+        sha512 = "AzlhBG00yVvAO+3jeky5z09GLxvb9YPV+VjlExQd7OpVHlCXU7m6JafxdtesUzb63gSOsu00Hms6iNN2USv2Gg==";
       };
     };
-    "@parcel/packager-js-2.6.0" = {
+    "@parcel/packager-js-2.6.1" = {
       name = "_at_parcel_slash_packager-js";
       packageName = "@parcel/packager-js";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.6.0.tgz";
-        sha512 = "Uz3pqIFchFfKszWnNGDgIwM1uwHHJp7Dts6VzS9lf/2RbRgZT0fmce+NPgnVO5MMKBHzdvm32ShT6gFAABF5Vw==";
+        url = "https://registry.npmjs.org/@parcel/packager-js/-/packager-js-2.6.1.tgz";
+        sha512 = "NW2fag24sGrLwBohwk/QwqC+TYvUbh1qEWzOHQ6s1nW+12eKm+kFpSUiK3WTHhMOZoyqH/DNCdsvvHTtCXFgCA==";
       };
     };
-    "@parcel/packager-raw-2.6.0" = {
+    "@parcel/packager-raw-2.6.1" = {
       name = "_at_parcel_slash_packager-raw";
       packageName = "@parcel/packager-raw";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.0.tgz";
-        sha512 = "ktT6Qc/GgCq8H1+6y+AXufVzQj1s6KRoKf83qswCD0iY3MwCbJoEfc3IsB4K64FpHIL5Eu0z54IId+INvGbOYA==";
+        url = "https://registry.npmjs.org/@parcel/packager-raw/-/packager-raw-2.6.1.tgz";
+        sha512 = "v7C9Jlp1ybUs9qbYZWIdzmdXKOZ5q5e05/YxE205UQgHy7cbuTD9ZY4xiuHAsP9qA8oBY4nD5kYyWuNSU92WWA==";
       };
     };
-    "@parcel/packager-svg-2.6.0" = {
+    "@parcel/packager-svg-2.6.1" = {
       name = "_at_parcel_slash_packager-svg";
       packageName = "@parcel/packager-svg";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.6.0.tgz";
-        sha512 = "OF2RShyspXu7H4Dn2PmchfMMYPx+kWjOXiYVQ6OkOI0MZmOydx7p8nrcG5+y7vCJTPlta828BSwva0GdKfn46A==";
+        url = "https://registry.npmjs.org/@parcel/packager-svg/-/packager-svg-2.6.1.tgz";
+        sha512 = "ziAVCkDI7HjdXbQy3NfinRbw/nsZ8COn2oPFfukx1H3DmNhGeur3TYYLhiN0PZB45j8w9rSWoUEgDWXRqSMN4w==";
       };
     };
-    "@parcel/plugin-2.6.0" = {
+    "@parcel/plugin-2.6.1" = {
       name = "_at_parcel_slash_plugin";
       packageName = "@parcel/plugin";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.6.0.tgz";
-        sha512 = "LzOaiK8R6eFEoov1cb3/W+o0XvXdI/VbDhMDl0L0II+/56M0UeayYtFP5QGTDn/fZqVlYfzPCtt3EMwdG7/dow==";
+        url = "https://registry.npmjs.org/@parcel/plugin/-/plugin-2.6.1.tgz";
+        sha512 = "0QVS7mhrS9gGHtaT0KpPes2CCCAyPvvI2oZLq+NX3z7Qa73kj3Ct5QL2JuRywnefDVnkY79256oTdsq/nJrnXg==";
       };
     };
-    "@parcel/reporter-cli-2.6.0" = {
+    "@parcel/reporter-cli-2.6.1" = {
       name = "_at_parcel_slash_reporter-cli";
       packageName = "@parcel/reporter-cli";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.6.0.tgz";
-        sha512 = "QFG957NXx3L0D8Zw0+B2j7IHy8f/UzOVu6VvKE3rMkhq/iR2qLrPohQ+uvxlee+CLC0cG2qRSgJ7Ve/rjQPoJg==";
+        url = "https://registry.npmjs.org/@parcel/reporter-cli/-/reporter-cli-2.6.1.tgz";
+        sha512 = "VpVIUXReEvNko1DP+75++YQMhKLKjtyu7OziDR3AMPcRFnSbygttonK0TYg88gZ0QtHF3lNkFvn4LMECVAL5PQ==";
       };
     };
-    "@parcel/reporter-dev-server-2.6.0" = {
+    "@parcel/reporter-dev-server-2.6.1" = {
       name = "_at_parcel_slash_reporter-dev-server";
       packageName = "@parcel/reporter-dev-server";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.6.0.tgz";
-        sha512 = "VvygsCA+uzWyijIV8zqU1gFyhAWknuaY4KIWhV4kCT8afRJwsLSwt/tpdaKDPuPU45h3tTsUdXH1wjaIk+dGeQ==";
+        url = "https://registry.npmjs.org/@parcel/reporter-dev-server/-/reporter-dev-server-2.6.1.tgz";
+        sha512 = "JerLdJZdYJEchJ7lbBS79lJJHxEG2qDBmSQ5LUuX94/YNo1pQEOAQtc2Ogv98ZSjOdp8xaNYCKYKXIVd2d4gYA==";
       };
     };
-    "@parcel/resolver-default-2.6.0" = {
+    "@parcel/resolver-default-2.6.1" = {
       name = "_at_parcel_slash_resolver-default";
       packageName = "@parcel/resolver-default";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.6.0.tgz";
-        sha512 = "ATk9wXvy5GOHAqyHbnCnU11fUPTtf8dLjpgVqL5XylwugZnyBXbynoTWX4w8h6mffkVtdfmzTJx/o4Lresz9sA==";
+        url = "https://registry.npmjs.org/@parcel/resolver-default/-/resolver-default-2.6.1.tgz";
+        sha512 = "C9kEwzluijSqdD7hXmFTRfOBNjxxrMepT5M3ZpgvtPABhZyR3epkOugD1p54ChHr3vsrfWJIjRZLi7JoI8o/VA==";
       };
     };
-    "@parcel/runtime-browser-hmr-2.6.0" = {
+    "@parcel/runtime-browser-hmr-2.6.1" = {
       name = "_at_parcel_slash_runtime-browser-hmr";
       packageName = "@parcel/runtime-browser-hmr";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.6.0.tgz";
-        sha512 = "90xvv/10cFML5dAhClBEJZ/ExiBQVPqQsZcvRmVZmc5mpZVJMKattWCQrd7pAf7FDYl4JAcvsK3DTwvRT/oLNA==";
+        url = "https://registry.npmjs.org/@parcel/runtime-browser-hmr/-/runtime-browser-hmr-2.6.1.tgz";
+        sha512 = "TJzONMgyU6mZ8faI8viuPzVfpPJLtesioCqDpV9/8f27JXBCL/3mRWVzoD0CJ5u94xmF0R1ErySJX5odDD++lQ==";
       };
     };
-    "@parcel/runtime-js-2.6.0" = {
+    "@parcel/runtime-js-2.6.1" = {
       name = "_at_parcel_slash_runtime-js";
       packageName = "@parcel/runtime-js";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.6.0.tgz";
-        sha512 = "R4tJAIT/SX7VBQ+f7WmeekREQzzLsmgP1j486uKhQNyYrpvsN0HnRbg5aqvZjEjkEmSeJR0mOlWtMK5/m+0yTA==";
+        url = "https://registry.npmjs.org/@parcel/runtime-js/-/runtime-js-2.6.1.tgz";
+        sha512 = "nZkSD2QR677GYS+wIS2vuqCVqIMc91+8KidkwPqrzodGVzAS1QF4SD5Fy4sB2sqGJU9yRpxIB6q8figM0uZ1SQ==";
       };
     };
-    "@parcel/runtime-react-refresh-2.6.0" = {
+    "@parcel/runtime-react-refresh-2.6.1" = {
       name = "_at_parcel_slash_runtime-react-refresh";
       packageName = "@parcel/runtime-react-refresh";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.6.0.tgz";
-        sha512 = "2sRd13gc2EbMV/O5n2NPVGGhKBasb1fDTXGEY8y7qi9xDKc+ewok/D83T+w243FhCPS9Pf3ur5GkbPlrJGcenQ==";
+        url = "https://registry.npmjs.org/@parcel/runtime-react-refresh/-/runtime-react-refresh-2.6.1.tgz";
+        sha512 = "+ZrWKChGqsJ3xtUTd/fIeEMruSLvIMpmgujAjo6cFCzG3cOcpRcLa7mpWDydicUaWsiIx7lL5LIWu5bCS9G+DQ==";
       };
     };
-    "@parcel/runtime-service-worker-2.6.0" = {
+    "@parcel/runtime-service-worker-2.6.1" = {
       name = "_at_parcel_slash_runtime-service-worker";
       packageName = "@parcel/runtime-service-worker";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.6.0.tgz";
-        sha512 = "nVlknGw5J5Bkd1Wr1TbyWHhUd9CmVVebaRg/lpfVKYhAuE/2r+3N0+J8qbEIgtTRcHaSV7wTNpg4weSWq46VeA==";
+        url = "https://registry.npmjs.org/@parcel/runtime-service-worker/-/runtime-service-worker-2.6.1.tgz";
+        sha512 = "v9VbhZEEtxG3gdp4BF4JX5ji9O87RS+4HxxY2w1LHKz+t3t1ODWG5WVfIQmKD/wBwFYwQWaI6qAVXuIY26SfjQ==";
       };
     };
     "@parcel/source-map-2.0.5" = {
@@ -7501,112 +7627,112 @@ let
         sha512 = "DRVlCFKLpqBSIbMxUoVlHgfiv12HTW/U7nnhzw52YgzDVXUX9OA41dXS1PU0pJ1si+D1k8msATUC+AoldN43mg==";
       };
     };
-    "@parcel/transformer-babel-2.6.0" = {
+    "@parcel/transformer-babel-2.6.1" = {
       name = "_at_parcel_slash_transformer-babel";
       packageName = "@parcel/transformer-babel";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.6.0.tgz";
-        sha512 = "qTDzhLoaTpRJoppCNqaAlcUYxcDEvJffem1h3SAQiwvCLUBQowLyeaBy8sUxu54AU6eHFJyBld5ZocENyHTBCA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-babel/-/transformer-babel-2.6.1.tgz";
+        sha512 = "VEB62Okq7epZmmGMBro3B7LoCfLKY3HqVGWXbY3kJ+R36+2UImMyG7eGVPGf3FCJY9Jt3McGfCUKdDR4en2rFg==";
       };
     };
-    "@parcel/transformer-css-2.6.0" = {
+    "@parcel/transformer-css-2.6.1" = {
       name = "_at_parcel_slash_transformer-css";
       packageName = "@parcel/transformer-css";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.6.0.tgz";
-        sha512 = "Ei9NPE5Rl9V+MGd8qddfZD0Fsqbvky8J62RwYsqLkptFl9FkhgwOu8Cmokz7IIc4GJ2qzfnG5y54K/Bi7Moq4Q==";
+        url = "https://registry.npmjs.org/@parcel/transformer-css/-/transformer-css-2.6.1.tgz";
+        sha512 = "trVn7+Mx9/XNr9+eXumMuDbNRfkCmrplGQ6nlf6ZeuSs7ayNFDVuudsnC7SN1Yn+YpyWjgOD17RmlS581ZKTAw==";
       };
     };
-    "@parcel/transformer-html-2.6.0" = {
+    "@parcel/transformer-html-2.6.1" = {
       name = "_at_parcel_slash_transformer-html";
       packageName = "@parcel/transformer-html";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.6.0.tgz";
-        sha512 = "YQh5WzNFjPhgV09P+zVS++albTCTvbPYAJXp5zUJ4HavzcpV2IB3HAPRk9x+iXUeRBQYYiO5SMMRkdy9a4CzQQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-html/-/transformer-html-2.6.1.tgz";
+        sha512 = "GpHXG8v1U0heCbNVQ8gmnJJqAkceKROvj7BreR7UokXP+Frr+ydKKumbVLK7kjwwlagy85VMnIMaFG8/zZ4lqA==";
       };
     };
-    "@parcel/transformer-image-2.6.0" = {
+    "@parcel/transformer-image-2.6.1" = {
       name = "_at_parcel_slash_transformer-image";
       packageName = "@parcel/transformer-image";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.6.0.tgz";
-        sha512 = "Zkh1i6nWNOTOReKlZD+bLJCHA16dPLO6Or7ETAHtSF3iRzMNFcVFp+851Awj3l4zeJ6CoCWlyxsR4CEdioRgiQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-image/-/transformer-image-2.6.1.tgz";
+        sha512 = "s+ht/DD2pzCx0yq4L6rNHu8oxTQ6Xx8PKcxZxlEsaW2xyDWJ0nvhLE0p296Xa+A4Vw31DENIe1Wq1PQ2C6UrTA==";
       };
     };
-    "@parcel/transformer-js-2.6.0" = {
+    "@parcel/transformer-js-2.6.1" = {
       name = "_at_parcel_slash_transformer-js";
       packageName = "@parcel/transformer-js";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.6.0.tgz";
-        sha512 = "4v2r3EVdMKowBziVBW9HZqvAv88HaeiezkWyMX4wAfplo9jBtWEp99KEQINzSEdbXROR81M9oJjlGF5+yoVr/w==";
+        url = "https://registry.npmjs.org/@parcel/transformer-js/-/transformer-js-2.6.1.tgz";
+        sha512 = "jtf154aL7OCbsgi0A4Bk/2oYfdNIFRILho7UXIQ0qszkCj0IDO67bzUF1Q4JuAFS9vyqulyId6HYFqCkmOlv3A==";
       };
     };
-    "@parcel/transformer-json-2.6.0" = {
+    "@parcel/transformer-json-2.6.1" = {
       name = "_at_parcel_slash_transformer-json";
       packageName = "@parcel/transformer-json";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.6.0.tgz";
-        sha512 = "zb+TQAdHWdXijKcFhLe+5KN1O0IzXwW1gJhPr8DJEA3qhPaCsncsw5RCVjQlP3a7NXr1mMm1eMtO6bhIMqbXeA==";
+        url = "https://registry.npmjs.org/@parcel/transformer-json/-/transformer-json-2.6.1.tgz";
+        sha512 = "GPI+mUiLm/B8eR7zXWIV252TQarN6Qv3S0wnJhs30gA8EI8/MkFkEgJFoKAKP7saV/r2gnONEZlovQvTuF0oqw==";
       };
     };
-    "@parcel/transformer-postcss-2.6.0" = {
+    "@parcel/transformer-postcss-2.6.1" = {
       name = "_at_parcel_slash_transformer-postcss";
       packageName = "@parcel/transformer-postcss";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.6.0.tgz";
-        sha512 = "czmh2mOPJLwYbtnPTFlxKYcaQHH6huIlpfNX1XgdsaEYS+yFs8ZXpzqjxI1wu6rMW0R0q5aon72yB3PJewvqNQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-postcss/-/transformer-postcss-2.6.1.tgz";
+        sha512 = "NeZDXa9PkvHgwNWWtxaJWgGu7oq+jReCd1L/uXQRcNys2feUApdlQuKIjea1uL1UK6ydsS2kzmv/HqGWK3nGxA==";
       };
     };
-    "@parcel/transformer-posthtml-2.6.0" = {
+    "@parcel/transformer-posthtml-2.6.1" = {
       name = "_at_parcel_slash_transformer-posthtml";
       packageName = "@parcel/transformer-posthtml";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.6.0.tgz";
-        sha512 = "R1FmPMZ0pgrbPZkDppa2pE+6KDK3Wxof6uQo7juHLB2ELGOTaYofsG3nrRdk+chyAHaVv4qWLqXbfZK6pGepEg==";
+        url = "https://registry.npmjs.org/@parcel/transformer-posthtml/-/transformer-posthtml-2.6.1.tgz";
+        sha512 = "XzfQf193m0RrlTzKDpqWWnS3ONn9xD9C8pKGvWapmrfFIMSwiOTY3EHUD8P3kCeon2CyddfshU1Y6yPkVdreww==";
       };
     };
-    "@parcel/transformer-raw-2.6.0" = {
+    "@parcel/transformer-raw-2.6.1" = {
       name = "_at_parcel_slash_transformer-raw";
       packageName = "@parcel/transformer-raw";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.6.0.tgz";
-        sha512 = "QDirlWCS/qy0DQ3WvDIAnFP52n1TJW/uWH+4PGMNnX4/M3/2UchY8xp9CN0tx4NQ4g09S8o3gLlHvNxQqZxFrQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-raw/-/transformer-raw-2.6.1.tgz";
+        sha512 = "gkuUksA8TDjaSlU9I2MFH4R3WfHXBOHLZlZ+juPK2rlLhhe8A/mvwOuWreNyjQTnKt6QXkdIkvgc9gTlsSHnXQ==";
       };
     };
-    "@parcel/transformer-react-refresh-wrap-2.6.0" = {
+    "@parcel/transformer-react-refresh-wrap-2.6.1" = {
       name = "_at_parcel_slash_transformer-react-refresh-wrap";
       packageName = "@parcel/transformer-react-refresh-wrap";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.6.0.tgz";
-        sha512 = "G34orfvLDUTumuerqNmA8T8NUHk+R0jwUjbVPO7gpB6VCVQ5ocTABdE9vN9Uu/cUsHij40TUFwqK4R9TFEBIEQ==";
+        url = "https://registry.npmjs.org/@parcel/transformer-react-refresh-wrap/-/transformer-react-refresh-wrap-2.6.1.tgz";
+        sha512 = "EZg2OKsurEmvcCkbroL2v6sBk7X790BK7nlrCHug9EX8aatiwvabxBPlx9aRUwUEjqRBosmS+fmU1exKpqBZxA==";
       };
     };
-    "@parcel/transformer-svg-2.6.0" = {
+    "@parcel/transformer-svg-2.6.1" = {
       name = "_at_parcel_slash_transformer-svg";
       packageName = "@parcel/transformer-svg";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.6.0.tgz";
-        sha512 = "e7yrb7775A7tEGRsAHQSMhXe+u4yisH5W0PuIzAQQy/a2IwBjaSxNnvyelN7tNX0FYq0BK6An5wRbhK4YmM+xw==";
+        url = "https://registry.npmjs.org/@parcel/transformer-svg/-/transformer-svg-2.6.1.tgz";
+        sha512 = "k9ccxU4eLMrmKDTdXbabq6C/TsF+bOSrWQYOC8QK+VPSF91S47vhVqLTiFeguB8bJGeLgd4uGS+YgdOLGjAJcw==";
       };
     };
-    "@parcel/types-2.6.0" = {
+    "@parcel/types-2.6.1" = {
       name = "_at_parcel_slash_types";
       packageName = "@parcel/types";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/types/-/types-2.6.0.tgz";
-        sha512 = "lAMYvOBfNEJMsPJ+plbB50305o0TwNrY1xX5RRIWBqwOa6bYmbW1ZljUk1tQvnkpIE4eAHQwnPR5Z2XWg18wGQ==";
+        url = "https://registry.npmjs.org/@parcel/types/-/types-2.6.1.tgz";
+        sha512 = "IXt0MiBmg95SKOAyvRNjcNlJvWUMtvCw6ea7+h1mWStm4gcJBoaznbgLJsG2C17AJ2F8CNR/5jZKlM9SDzTayg==";
       };
     };
     "@parcel/utils-1.11.0" = {
@@ -7618,13 +7744,13 @@ let
         sha512 = "cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ==";
       };
     };
-    "@parcel/utils-2.6.0" = {
+    "@parcel/utils-2.6.1" = {
       name = "_at_parcel_slash_utils";
       packageName = "@parcel/utils";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.6.0.tgz";
-        sha512 = "ElXz+QHtT1JQIucbQJBk7SzAGoOlBp4yodEQVvTKS7GA+hEGrSP/cmibl6qm29Rjtd0zgQsdd+2XmP3xvP2gQQ==";
+        url = "https://registry.npmjs.org/@parcel/utils/-/utils-2.6.1.tgz";
+        sha512 = "jMoNNBVGGs1IeNZnGGJv3R2otmf39X/0OerpuI27Ut4iCt79y6TVMFdoB7eG2aEYFdL6cD7xNfieQvX+6nrjoQ==";
       };
     };
     "@parcel/watcher-1.12.1" = {
@@ -7654,22 +7780,22 @@ let
         sha512 = "USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ==";
       };
     };
-    "@parcel/workers-2.6.0" = {
+    "@parcel/workers-2.6.1" = {
       name = "_at_parcel_slash_workers";
       packageName = "@parcel/workers";
-      version = "2.6.0";
+      version = "2.6.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.6.0.tgz";
-        sha512 = "3tcI2LF5fd/WZtSnSjyWdDE+G+FitdNrRgSObzSp+axHKMAM23sO0z7KY8s2SYCF40msdYbFUW8eI6JlYNJoWQ==";
+        url = "https://registry.npmjs.org/@parcel/workers/-/workers-2.6.1.tgz";
+        sha512 = "KIXu5HAmnEDIDwwJDnLzlr0avsewux3rWHe/nN43ERgj2j5j1nVqIulE7tX+XKAM3AHTFKWHJi5RLX4Htl2wwg==";
       };
     };
-    "@peculiar/asn1-schema-2.1.8" = {
+    "@peculiar/asn1-schema-2.1.9" = {
       name = "_at_peculiar_slash_asn1-schema";
       packageName = "@peculiar/asn1-schema";
-      version = "2.1.8";
+      version = "2.1.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.8.tgz";
-        sha512 = "u34H/bpqCdDuqrCVZvH0vpwFBT/dNEdNY+eE8u4IuC26yYnhDkXF4+Hliqca88Avbb7hyN2EF/eokyDdyS7G/A==";
+        url = "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.1.9.tgz";
+        sha512 = "Ipio+pXGpL/Vb0qB4GnOgFMgc1RAhKHOVy24rQYLvmOAVp9z/aFb+VdIiQH09NjgvGVmaWOUqSWd9vRHk3xbrg==";
       };
     };
     "@peculiar/json-schema-1.1.12" = {
@@ -7735,13 +7861,13 @@ let
         sha512 = "DiIjtous4XPuR2deTctD3/RVZy/vRzVYBgYYvHV313MmTfkbVP60qLH5txrT3/bYNvnb0poNDelLS6U0kqlvHA==";
       };
     };
-    "@prisma/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372" = {
+    "@prisma/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e" = {
       name = "_at_prisma_slash_engines";
       packageName = "@prisma/engines";
-      version = "3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372";
+      version = "3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372.tgz";
-        sha512 = "S5T0NuVF2+NoKoxY5bN6O/7avv4ifcjqqk5+JFZ6C4g+P7JMM3nY0wGBPI+46A8yGIDsyyFmvFTYiIDsEUwUeQ==";
+        url = "https://registry.npmjs.org/@prisma/engines/-/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e.tgz";
+        sha512 = "NHlojO1DFTsSi3FtEleL9QWXeSF/UjhCW0fgpi7bumnNZ4wj/eQ+BJJ5n2pgoOliTOGv9nX2qXvmHap7rJMNmg==";
       };
     };
     "@prisma/prisma-fmt-wasm-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372" = {
@@ -7897,13 +8023,13 @@ let
         sha512 = "y9qNj0//tZtWB2jfXNK3BX18BSBp9zNR7KE7lMysVHwbZtY392OJCjm6Rb/h4UHH2r1AqjNEHFD6bRn+DqU9Mw==";
       };
     };
-    "@redocly/openapi-core-1.0.0-beta.100" = {
+    "@redocly/openapi-core-1.0.0-beta.102" = {
       name = "_at_redocly_slash_openapi-core";
       packageName = "@redocly/openapi-core";
-      version = "1.0.0-beta.100";
+      version = "1.0.0-beta.102";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.100.tgz";
-        sha512 = "jf0UKP1nmuAwqe3I2D1FPZYDhcOrnnAQM36wYkPWZSYzO2OQv2Gcfms2g7vSQeq8+yK+8SZk+vP35lNR+IF70g==";
+        url = "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.102.tgz";
+        sha512 = "3Fr3fg+9VEF4+4uoyvOOk+9ipmX2GYhlb18uZbpC4v3cUgGpkTRGZM2Qetfah7Tgx2LgqLuw8A1icDD6Zed2Gw==";
       };
     };
     "@remix-run/node-1.4.3" = {
@@ -7978,13 +8104,13 @@ let
         sha512 = "c/qwwcHyafOQuVQJj0IlBjf5yYgBI7YPJ77k4fOJYesb41jio65eaJODRUmfYKhTOFBrIZ66kgvGPlNbjuoRdQ==";
       };
     };
-    "@schematics/angular-14.0.1" = {
+    "@schematics/angular-14.0.2" = {
       name = "_at_schematics_slash_angular";
       packageName = "@schematics/angular";
-      version = "14.0.1";
+      version = "14.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@schematics/angular/-/angular-14.0.1.tgz";
-        sha512 = "K4y3/Zbtc38M66J5KJ5oXeGSkDrAJXdhtY9ksU6NHXQ0uUiXNzyG05+v8aFrQ5CinyuLZK3v/mqmS/cBQmdT9Q==";
+        url = "https://registry.npmjs.org/@schematics/angular/-/angular-14.0.2.tgz";
+        sha512 = "DmLD0s4zUGuX+hjkIkW/aZi+JZZFZfhBxhumG9nftWPYT9/AjX3C2YZCarRWJ83jy/K3N9y4cnva0NVqKxTa3A==";
       };
     };
     "@segment/loosely-validate-event-2.0.0" = {
@@ -8392,13 +8518,13 @@ let
         sha512 = "2kGbqUVJUGE8dM+bMzXG/PYUWKkjLIkRLWNh39OaADkiabDRdw8ATFCgbMz5xdIcvwspPAluSL7uY+ZiTWdWmQ==";
       };
     };
-    "@swc/helpers-0.3.17" = {
+    "@swc/helpers-0.4.2" = {
       name = "_at_swc_slash_helpers";
       packageName = "@swc/helpers";
-      version = "0.3.17";
+      version = "0.4.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.3.17.tgz";
-        sha512 = "tb7Iu+oZ+zWJZ3HJqwx8oNwSDIU440hmVMDPhpACWQWnrZHK99Bxs70gT1L2dnr5Hg50ZRWEFkQCAnOVVV0z1Q==";
+        url = "https://registry.npmjs.org/@swc/helpers/-/helpers-0.4.2.tgz";
+        sha512 = "556Az0VX7WR6UdoTn4htt/l3zPQ7bsQWK+HqdG4swV7beUCxo/BqmvbOpUkTIm/9ih86LIf1qsUnywNL3obGHw==";
       };
     };
     "@szmarczak/http-timer-1.1.2" = {
@@ -8419,6 +8545,15 @@ let
         sha512 = "4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==";
       };
     };
+    "@taplo/lsp-0.2.4" = {
+      name = "_at_taplo_slash_lsp";
+      packageName = "@taplo/lsp";
+      version = "0.2.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@taplo/lsp/-/lsp-0.2.4.tgz";
+        sha512 = "/FcGQVvXAslhiC9aMG5gxKXJctg8N7XLZrP+wYrFTFccWEPZd/Xon5y7jUXpKOVSOFEA1MOKZKbPuK4ET5/T8Q==";
+      };
+    };
     "@textlint/ast-node-types-12.1.1" = {
       name = "_at_textlint_slash_ast-node-types";
       packageName = "@textlint/ast-node-types";
@@ -8617,15 +8752,6 @@ let
         sha512 = "XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==";
       };
     };
-    "@trufflesuite/bigint-buffer-1.1.9" = {
-      name = "_at_trufflesuite_slash_bigint-buffer";
-      packageName = "@trufflesuite/bigint-buffer";
-      version = "1.1.9";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@trufflesuite/bigint-buffer/-/bigint-buffer-1.1.9.tgz";
-        sha512 = "bdM5cEGCOhDSwminryHJbRmXc1x7dPKg6Pqns3qyTwFlxsqUgxE29lsERS3PlIW1HTjoIGMUqsk1zQQwST1Yxw==";
-      };
-    };
     "@trysound/sax-0.2.0" = {
       name = "_at_trysound_slash_sax";
       packageName = "@trysound/sax";
@@ -8635,40 +8761,40 @@ let
         sha512 = "L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==";
       };
     };
-    "@tsconfig/node10-1.0.8" = {
+    "@tsconfig/node10-1.0.9" = {
       name = "_at_tsconfig_slash_node10";
       packageName = "@tsconfig/node10";
-      version = "1.0.8";
+      version = "1.0.9";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz";
-        sha512 = "6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==";
+        url = "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz";
+        sha512 = "jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==";
       };
     };
-    "@tsconfig/node12-1.0.9" = {
+    "@tsconfig/node12-1.0.11" = {
       name = "_at_tsconfig_slash_node12";
       packageName = "@tsconfig/node12";
-      version = "1.0.9";
+      version = "1.0.11";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz";
-        sha512 = "/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==";
+        url = "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz";
+        sha512 = "cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==";
       };
     };
-    "@tsconfig/node14-1.0.1" = {
+    "@tsconfig/node14-1.0.3" = {
       name = "_at_tsconfig_slash_node14";
       packageName = "@tsconfig/node14";
-      version = "1.0.1";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz";
-        sha512 = "509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==";
+        url = "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz";
+        sha512 = "ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==";
       };
     };
-    "@tsconfig/node16-1.0.2" = {
+    "@tsconfig/node16-1.0.3" = {
       name = "_at_tsconfig_slash_node16";
       packageName = "@tsconfig/node16";
-      version = "1.0.2";
+      version = "1.0.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz";
-        sha512 = "eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==";
+        url = "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz";
+        sha512 = "yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==";
       };
     };
     "@turist/fetch-7.2.0" = {
@@ -9058,13 +9184,13 @@ let
         sha512 = "6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==";
       };
     };
-    "@types/express-serve-static-core-4.17.28" = {
+    "@types/express-serve-static-core-4.17.29" = {
       name = "_at_types_slash_express-serve-static-core";
       packageName = "@types/express-serve-static-core";
-      version = "4.17.28";
+      version = "4.17.29";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz";
-        sha512 = "P1BJAEAW3E2DJUlkgq4tOL3RyMunoWXqbSCygWo5ZIWTjUgN1YnaXWW4VWl/oc8vs/XoYibEGBKP0uZyF4AHig==";
+        url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz";
+        sha512 = "uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==";
       };
     };
     "@types/file-type-10.9.1" = {
@@ -9625,13 +9751,13 @@ let
         sha512 = "qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A==";
       };
     };
-    "@types/node-16.11.39" = {
+    "@types/node-16.11.41" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
-      version = "16.11.39";
+      version = "16.11.41";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-16.11.39.tgz";
-        sha512 = "K0MsdV42vPwm9L6UwhIxMAOmcvH/1OoVkZyCgEtVu4Wx7sElGloy/W7kMBNe/oJ7V/jW9BVt1F6RahH6e7tPXw==";
+        url = "https://registry.npmjs.org/@types/node/-/node-16.11.41.tgz";
+        sha512 = "mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ==";
       };
     };
     "@types/node-16.11.6" = {
@@ -9643,24 +9769,6 @@ let
         sha512 = "ua7PgUoeQFjmWPcoo9khiPum3Pd60k4/2ZGXt18sm2Slk0W0xZTqt5Y0Ny1NyBiN1EVQ/+FaF9NcY4Qe6rwk5w==";
       };
     };
-    "@types/node-17.0.23" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "17.0.23";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.23.tgz";
-        sha512 = "UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==";
-      };
-    };
-    "@types/node-17.0.25" = {
-      name = "_at_types_slash_node";
-      packageName = "@types/node";
-      version = "17.0.25";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node/-/node-17.0.25.tgz";
-        sha512 = "wANk6fBrUwdpY4isjWrKTufkrXdu1D2YHCot2fD/DfWxF5sMrVSA+KN7ydckvaTCh0HiqX9IVl0L5/ZoXg5M7w==";
-      };
-    };
     "@types/node-17.0.33" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -9688,6 +9796,24 @@ let
         sha512 = "xA6drNNeqb5YyV5fO3OAEsnXLfO7uF0whiOfPTz5AeDo8KeZFmODKnvwPymMNO8qE/an8pVY/O50tig2SQCrGw==";
       };
     };
+    "@types/node-17.0.45" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "17.0.45";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-17.0.45.tgz";
+        sha512 = "w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==";
+      };
+    };
+    "@types/node-18.0.0" = {
+      name = "_at_types_slash_node";
+      packageName = "@types/node";
+      version = "18.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@types/node/-/node-18.0.0.tgz";
+        sha512 = "cHlGmko4gWLVI27cGJntjs/Sj8th9aYwplmZFwmmgYQQvL5NUsgVJG7OddLvNfLqYS31KFN0s3qlaD9qCaxACA==";
+      };
+    };
     "@types/node-6.14.13" = {
       name = "_at_types_slash_node";
       packageName = "@types/node";
@@ -9715,13 +9841,13 @@ let
         sha512 = "/aKAdg5c8n468cYLy2eQrcR5k6chlbNwZNGUj3TboyPa2hcO2QAJcfymlqPzMiRj8B6nYKXjzQz36minFE0RwQ==";
       };
     };
-    "@types/node-fetch-2.6.1" = {
+    "@types/node-fetch-2.6.2" = {
       name = "_at_types_slash_node-fetch";
       packageName = "@types/node-fetch";
-      version = "2.6.1";
+      version = "2.6.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.1.tgz";
-        sha512 = "oMqjURCaxoSIsHSr1E47QHzbmzNR5rK8McHuNb11BOM9cHcIK3Avy0s/b2JlXHoQGTYS3NsvWzV1M0iK7l0wbA==";
+        url = "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.6.2.tgz";
+        sha512 = "DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==";
       };
     };
     "@types/normalize-package-data-2.4.1" = {
@@ -9841,13 +9967,13 @@ let
         sha512 = "+TRLFmHLnpoV0uw4O/PzqMbPT6bhQM0q2KO0l+R7M3sHYRndPpNL6kv8p7Ee9ZxgQ6noYB18/t+heQi7eijOHA==";
       };
     };
-    "@types/react-17.0.45" = {
+    "@types/react-17.0.47" = {
       name = "_at_types_slash_react";
       packageName = "@types/react";
-      version = "17.0.45";
+      version = "17.0.47";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/react/-/react-17.0.45.tgz";
-        sha512 = "YfhQ22Lah2e3CHPsb93tRwIGNiSwkuz1/blk4e6QrWS0jQzCSNbGLtOEYhPg02W0yGTTmpajp7dCTbBAMN3qsg==";
+        url = "https://registry.npmjs.org/@types/react/-/react-17.0.47.tgz";
+        sha512 = "mk0BL8zBinf2ozNr3qPnlu1oyVTYq+4V7WA76RgxUAtf0Em/Wbid38KN6n4abEkvO4xMTBWmnP1FtQzgkEiJoA==";
       };
     };
     "@types/react-dom-17.0.17" = {
@@ -10102,13 +10228,13 @@ let
         sha512 = "Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==";
       };
     };
-    "@types/uglify-js-3.13.3" = {
+    "@types/uglify-js-3.16.0" = {
       name = "_at_types_slash_uglify-js";
       packageName = "@types/uglify-js";
-      version = "3.13.3";
+      version = "3.16.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.3.tgz";
-        sha512 = "9dmBYXt/rKxedUXfCvXSxyiPvpDXLkiRlv17DnqdhS+pRustL1967rI1jZVt1xysTO+xJGMoZzcy3cWC9+b6Tw==";
+        url = "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.16.0.tgz";
+        sha512 = "0yeUr92L3r0GLRnBOvtYK1v2SjqMIqQDHMl7GLb+l2L8+6LSFWEEWEIgVsPdMn5ImLM8qzWT8xFPtQYpp8co0g==";
       };
     };
     "@types/unist-2.0.6" = {
@@ -10183,13 +10309,13 @@ let
         sha512 = "ZfJck4M7nrGasfs4A4YbUoxis3Vu24cETw3DERsNYtDZmYSYtk6ljKexKFKhImO/ZmY6ZMsmegu2FPkXoUFImA==";
       };
     };
-    "@types/vscode-1.67.0" = {
+    "@types/vscode-1.68.0" = {
       name = "_at_types_slash_vscode";
       packageName = "@types/vscode";
-      version = "1.67.0";
+      version = "1.68.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.67.0.tgz";
-        sha512 = "GH8BDf8cw9AC9080uneJfulhSa7KHSMI2s/CyKePXoGNos9J486w2V4YKoeNUqIEkW4hKoEAWp6/cXTwyGj47g==";
+        url = "https://registry.npmjs.org/@types/vscode/-/vscode-1.68.0.tgz";
+        sha512 = "duBwEK5ta/eBBMJMQ7ECMEsMvlE3XJdRGh3xoS1uOO4jl2Z4LPBl5vx8WvBP10ERAgDRmIt/FaSD4RHyBGbChw==";
       };
     };
     "@types/webidl-conversions-6.1.1" = {
@@ -10354,13 +10480,13 @@ let
         sha512 = "aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==";
       };
     };
-    "@typescript-eslint/eslint-plugin-5.27.1" = {
+    "@typescript-eslint/eslint-plugin-5.28.0" = {
       name = "_at_typescript-eslint_slash_eslint-plugin";
       packageName = "@typescript-eslint/eslint-plugin";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.27.1.tgz";
-        sha512 = "6dM5NKT57ZduNnJfpY81Phe9nc9wolnMCnknb1im6brWi1RYv84nbMS3olJa27B6+irUVV1X/Wb+Am0FjJdGFw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.28.0.tgz";
+        sha512 = "DXVU6Cg29H2M6EybqSg2A+x8DgO9TCUBRp4QEXQHJceLS7ogVDP0g3Lkg/SZCqcvkAP/RruuQqK0gdlkgmhSUA==";
       };
     };
     "@typescript-eslint/experimental-utils-4.33.0" = {
@@ -10381,13 +10507,13 @@ let
         sha512 = "ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==";
       };
     };
-    "@typescript-eslint/parser-5.27.1" = {
+    "@typescript-eslint/parser-5.28.0" = {
       name = "_at_typescript-eslint_slash_parser";
       packageName = "@typescript-eslint/parser";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.27.1.tgz";
-        sha512 = "7Va2ZOkHi5NP+AZwb5ReLgNF6nWLGTeUJfxdkVUAPPSaAdbWNnFZzLZ4EGGmmiCTg+AwlbE1KyUYTBglosSLHQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.28.0.tgz";
+        sha512 = "ekqoNRNK1lAcKhZESN/PdpVsWbP9jtiNqzFWkp/yAUdZvJalw2heCYuqRmM5eUJSIYEkgq5sGOjq+ZqsLMjtRA==";
       };
     };
     "@typescript-eslint/scope-manager-4.33.0" = {
@@ -10399,22 +10525,31 @@ let
         sha512 = "5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==";
       };
     };
-    "@typescript-eslint/scope-manager-5.27.1" = {
+    "@typescript-eslint/scope-manager-5.28.0" = {
       name = "_at_typescript-eslint_slash_scope-manager";
       packageName = "@typescript-eslint/scope-manager";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.27.1.tgz";
-        sha512 = "fQEOSa/QroWE6fAEg+bJxtRZJTH8NTskggybogHt4H9Da8zd4cJji76gA5SBlR0MgtwF7rebxTbDKB49YUCpAg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.28.0.tgz";
+        sha512 = "LeBLTqF/he1Z+boRhSqnso6YrzcKMTQ8bO/YKEe+6+O/JGof9M0g3IJlIsqfrK/6K03MlFIlycbf1uQR1IjE+w==";
       };
     };
-    "@typescript-eslint/type-utils-5.27.1" = {
+    "@typescript-eslint/type-utils-5.28.0" = {
       name = "_at_typescript-eslint_slash_type-utils";
       packageName = "@typescript-eslint/type-utils";
-      version = "5.27.1";
+      version = "5.28.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.28.0.tgz";
+        sha512 = "SyKjKh4CXPglueyC6ceAFytjYWMoPHMswPQae236zqe1YbhvCVQyIawesYywGiu98L9DwrxsBN69vGIVxJ4mQQ==";
+      };
+    };
+    "@typescript-eslint/types-3.10.1" = {
+      name = "_at_typescript-eslint_slash_types";
+      packageName = "@typescript-eslint/types";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.27.1.tgz";
-        sha512 = "+UC1vVUWaDHRnC2cQrCJ4QtVjpjjCgjNFpg8b03nERmkHv9JV9X5M19D7UFMd+/G7T/sgFwX2pGmWK38rqyvXw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz";
+        sha512 = "+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==";
       };
     };
     "@typescript-eslint/types-4.33.0" = {
@@ -10426,13 +10561,22 @@ let
         sha512 = "zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==";
       };
     };
-    "@typescript-eslint/types-5.27.1" = {
+    "@typescript-eslint/types-5.28.0" = {
       name = "_at_typescript-eslint_slash_types";
       packageName = "@typescript-eslint/types";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.27.1.tgz";
-        sha512 = "LgogNVkBhCTZU/m8XgEYIWICD6m4dmEDbKXESCbqOXfKZxRKeqpiJXQIErv66sdopRKZPo5l32ymNqibYEH/xg==";
+        url = "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.28.0.tgz";
+        sha512 = "2OOm8ZTOQxqkPbf+DAo8oc16sDlVR5owgJfKheBkxBKg1vAfw2JsSofH9+16VPlN9PWtv8Wzhklkqw3k/zCVxA==";
+      };
+    };
+    "@typescript-eslint/typescript-estree-3.10.1" = {
+      name = "_at_typescript-eslint_slash_typescript-estree";
+      packageName = "@typescript-eslint/typescript-estree";
+      version = "3.10.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-3.10.1.tgz";
+        sha512 = "QbcXOuq6WYvnB3XPsZpIwztBoquEYLXh2MtwVU+kO8jgYCiv4G5xrSP/1wg4tkvrEE+esZVquIPX/dxPlePk1w==";
       };
     };
     "@typescript-eslint/typescript-estree-4.33.0" = {
@@ -10444,22 +10588,31 @@ let
         sha512 = "rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==";
       };
     };
-    "@typescript-eslint/typescript-estree-5.27.1" = {
+    "@typescript-eslint/typescript-estree-5.28.0" = {
       name = "_at_typescript-eslint_slash_typescript-estree";
       packageName = "@typescript-eslint/typescript-estree";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.27.1.tgz";
-        sha512 = "DnZvvq3TAJ5ke+hk0LklvxwYsnXpRdqUY5gaVS0D4raKtbznPz71UJGnPTHEFo0GDxqLOLdMkkmVZjSpET1hFw==";
+        url = "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.28.0.tgz";
+        sha512 = "9GX+GfpV+F4hdTtYc6OV9ZkyYilGXPmQpm6AThInpBmKJEyRSIjORJd1G9+bknb7OTFYL+Vd4FBJAO6T78OVqA==";
       };
     };
-    "@typescript-eslint/utils-5.27.1" = {
+    "@typescript-eslint/utils-5.28.0" = {
       name = "_at_typescript-eslint_slash_utils";
       packageName = "@typescript-eslint/utils";
-      version = "5.27.1";
+      version = "5.28.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.28.0.tgz";
+        sha512 = "E60N5L0fjv7iPJV3UGc4EC+A3Lcj4jle9zzR0gW7vXhflO7/J29kwiTGITA2RlrmPokKiZbBy2DgaclCaEUs6g==";
+      };
+    };
+    "@typescript-eslint/visitor-keys-3.10.1" = {
+      name = "_at_typescript-eslint_slash_visitor-keys";
+      packageName = "@typescript-eslint/visitor-keys";
+      version = "3.10.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.27.1.tgz";
-        sha512 = "mZ9WEn1ZLDaVrhRaYgzbkXBkTPghPFsup8zDbbsYTxC5OmqrFE7skkKS/sraVsLP3TcT3Ki5CSyEFBRkLH/H/w==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz";
+        sha512 = "9JgC82AaQeglebjZMgYR5wgmfUdUc+EitGUUMW8u2nDckaeimzW+VsoLV6FoimPv2id3VQzfjwBxEMVz08ameQ==";
       };
     };
     "@typescript-eslint/visitor-keys-4.33.0" = {
@@ -10471,13 +10624,13 @@ let
         sha512 = "uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==";
       };
     };
-    "@typescript-eslint/visitor-keys-5.27.1" = {
+    "@typescript-eslint/visitor-keys-5.28.0" = {
       name = "_at_typescript-eslint_slash_visitor-keys";
       packageName = "@typescript-eslint/visitor-keys";
-      version = "5.27.1";
+      version = "5.28.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.27.1.tgz";
-        sha512 = "xYs6ffo01nhdJgPieyk7HAOpjhTsx7r/oB9LWEhwAXgwn33tkr+W8DI2ChboqhZlC4q3TC6geDYPoiX8ROqyOQ==";
+        url = "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.28.0.tgz";
+        sha512 = "BtfP1vCor8cWacovzzPFOoeW4kBQxzmhxGoOpt0v1SFvG+nJ0cWaVdJk7cky1ArTcFHHKNIxyo2LLr3oNkSuXA==";
       };
     };
     "@ungap/promise-all-settled-1.1.2" = {
@@ -10489,13 +10642,13 @@ let
         sha512 = "sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==";
       };
     };
-    "@unicode/unicode-14.0.0-1.2.1" = {
+    "@unicode/unicode-14.0.0-1.2.2" = {
       name = "_at_unicode_slash_unicode-14.0.0";
       packageName = "@unicode/unicode-14.0.0";
-      version = "1.2.1";
+      version = "1.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@unicode/unicode-14.0.0/-/unicode-14.0.0-1.2.1.tgz";
-        sha512 = "M7NfPQP0PsCRFIUnmtFMgMiC5CCB26YwURCWIE48RQKbtN61sXrDhuXNq9w/tkBOtVeU84IAB1MMK9c+d2iR7A==";
+        url = "https://registry.npmjs.org/@unicode/unicode-14.0.0/-/unicode-14.0.0-1.2.2.tgz";
+        sha512 = "NMs5JhYXGojBQJNJ7DumqktgRqs95Qt1cj6JMPz8lKBfHYRTRn7Am4CdyX/hS1zTn1lKwsWXBpMP9Hp0nelINg==";
       };
     };
     "@uphold/request-logger-2.0.0" = {
@@ -10624,22 +10777,22 @@ let
         sha512 = "lUki5QLS47bz/U8IlG9VQ+1lfxMtxMZENmU5nu4Z71eOD5j9FK0SmYGL5NiVJg9WBWeAU0VxRADMY2Qpq7BfVg==";
       };
     };
-    "@vscode/test-electron-2.1.3" = {
+    "@vscode/test-electron-2.1.4" = {
       name = "_at_vscode_slash_test-electron";
       packageName = "@vscode/test-electron";
-      version = "2.1.3";
+      version = "2.1.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.1.3.tgz";
-        sha512 = "ps/yJ/9ToUZtR1dHfWi1mDXtep1VoyyrmGKC3UnIbScToRQvbUjyy1VMqnMEW3EpMmC3g7+pyThIPtPyCLHyow==";
+        url = "https://registry.npmjs.org/@vscode/test-electron/-/test-electron-2.1.4.tgz";
+        sha512 = "tHHAWNVwl8C7nyezHAHdNPWkksdXWvmae6bt4k1tJ9hvMm6QIIk95Mkutl82XHcD60mdP46EHDGU+xFsAvygOQ==";
       };
     };
-    "@vue/cli-overlay-4.5.17" = {
+    "@vue/cli-overlay-4.5.18" = {
       name = "_at_vue_slash_cli-overlay";
       packageName = "@vue/cli-overlay";
-      version = "4.5.17";
+      version = "4.5.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.17.tgz";
-        sha512 = "QKKp66VbMg+X8Qh0wgXSwgxLfxY7EIkZkV6bZ6nFqBx8xtaJQVDbTL+4zcUPPA6nygbIcQ6gvTinNEqIqX6FUQ==";
+        url = "https://registry.npmjs.org/@vue/cli-overlay/-/cli-overlay-4.5.18.tgz";
+        sha512 = "PZW6WRbmWx/I+PaP7PdjZGscvtUiIq/pRU38p3GLKMl53InBer12549CEAhPicAF5c38gBzGu/ifoPSvlPSZyg==";
       };
     };
     "@vue/cli-plugin-eslint-4.5.12" = {
@@ -10651,13 +10804,13 @@ let
         sha512 = "nbjGJkWxo/xdD32DwvnEAUwkWYsObpqNk9NuU7T62ehdzHPzz58o3j03YZ7a7T7Le8bYyOWMYsdNfz63F+XiZQ==";
       };
     };
-    "@vue/cli-plugin-router-4.5.17" = {
+    "@vue/cli-plugin-router-4.5.18" = {
       name = "_at_vue_slash_cli-plugin-router";
       packageName = "@vue/cli-plugin-router";
-      version = "4.5.17";
+      version = "4.5.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.17.tgz";
-        sha512 = "9r9CSwqv2+39XHQPDZJ0uaTtTP7oe0Gx17m7kBhHG3FA7R7AOSk2aVzhHZmDRhzlOxjx9kQSvrOSMfUG0kV4dQ==";
+        url = "https://registry.npmjs.org/@vue/cli-plugin-router/-/cli-plugin-router-4.5.18.tgz";
+        sha512 = "J2SJpi7OKy6NE5yUz7eubTnzc+k2LHEcI+c0W8i4UoUumIVSkAgvKWZPFqoy/QIqnQpwW/75CUjpLGf6Fht2wQ==";
       };
     };
     "@vue/cli-plugin-typescript-4.5.13" = {
@@ -10687,49 +10840,49 @@ let
         sha512 = "CKAZN4iokMMsaUyJRU22oUAz3oS/X9sVBSKAF2/shFBV5xh3jqAlKl8OXZYz4cXGFLA6djNuYrniuLAo7Ku97A==";
       };
     };
-    "@vue/cli-shared-utils-4.5.17" = {
+    "@vue/cli-shared-utils-4.5.18" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "4.5.17";
+      version = "4.5.18";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.17.tgz";
-        sha512 = "VoFNdxvTW4vZu3ne+j1Mf7mU99J2SAoRVn9XPrsouTUUJablglM8DASk7Ixhsh6ymyL/W9EADQFR6Pgj8Ujjuw==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-4.5.18.tgz";
+        sha512 = "rYX8watG/+SFmkedXMZ3hJP+26/bz80f9zG9dMUfBMqTAqIDGICDtuP4H4QXZL3PCKI/HWFCMhRWf2wO4eGEPg==";
       };
     };
-    "@vue/cli-shared-utils-5.0.4" = {
+    "@vue/cli-shared-utils-5.0.6" = {
       name = "_at_vue_slash_cli-shared-utils";
       packageName = "@vue/cli-shared-utils";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-5.0.4.tgz";
-        sha512 = "nfAsj8Nopu5sVHMBIaut/YL7NaJFVmTBSTJD7LM17jc5uytrM9JwiRtzCiv3JWRBG78Xdb/s2Xb/1YR4fkdmkQ==";
+        url = "https://registry.npmjs.org/@vue/cli-shared-utils/-/cli-shared-utils-5.0.6.tgz";
+        sha512 = "5HmlRtMByOCFO0P3mMUx8dVruTRhZ3pqQ0f1cCH9TmAoDjetmD/Ib7yx/5KxTHV8QY3xZJxYvgAmOU5C49K5xA==";
       };
     };
-    "@vue/cli-ui-5.0.4" = {
+    "@vue/cli-ui-5.0.6" = {
       name = "_at_vue_slash_cli-ui";
       packageName = "@vue/cli-ui";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-5.0.4.tgz";
-        sha512 = "6RkvN5XphYHfBUhKS7wG2ChrEhdLx05v6ppq53wy0/3N126j/5UM+fl48vbnMzCeRgpTn75IRI89ysPqiDyX3A==";
+        url = "https://registry.npmjs.org/@vue/cli-ui/-/cli-ui-5.0.6.tgz";
+        sha512 = "FiqRfA0zy53OikLRW9cz00+DXhRjaRRAoRSa5TPBJt8ZwYNdBOwKMw3jssKCrl97Ye4lK5/qE0Y3UGb+gDIHUw==";
       };
     };
-    "@vue/cli-ui-addon-webpack-5.0.4" = {
+    "@vue/cli-ui-addon-webpack-5.0.6" = {
       name = "_at_vue_slash_cli-ui-addon-webpack";
       packageName = "@vue/cli-ui-addon-webpack";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-5.0.4.tgz";
-        sha512 = "QVF5rG9qOVizdq4iZ4NhqwLEigOH+Ulhx9IZpaoLh0VlLqbqrwuHs4QOKNFsuvdGM4LHXCp8XH6EKFScPbJ9Mg==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-webpack/-/cli-ui-addon-webpack-5.0.6.tgz";
+        sha512 = "rkVVTlzo2vqQJZCfcF9LVM1m1KU6p4HAJ0D/1I786uusOp45pfIptymCBqIgp8w7CzjlEkaRs8TgGrjMk3L6PQ==";
       };
     };
-    "@vue/cli-ui-addon-widgets-5.0.4" = {
+    "@vue/cli-ui-addon-widgets-5.0.6" = {
       name = "_at_vue_slash_cli-ui-addon-widgets";
       packageName = "@vue/cli-ui-addon-widgets";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-5.0.4.tgz";
-        sha512 = "KmJUazIEZWhy0UaFHV5Uy8AXpTqJgCPizEHhtxs3f8mIkUnwWjcQFG7FGfsAW7RgsN8hwcSZ5ZFjmXhllVwrkw==";
+        url = "https://registry.npmjs.org/@vue/cli-ui-addon-widgets/-/cli-ui-addon-widgets-5.0.6.tgz";
+        sha512 = "ZhRO1RIA/oNeEJfrLWcwX2pXvc3ohMtDeLHkxDFKDtqafgwrww9wr+Gdg4ZLFY6ldmfurU9/vHPmowTBHx2O+Q==";
       };
     };
     "@vue/compiler-core-3.2.37" = {
@@ -11371,31 +11524,31 @@ let
         sha512 = "2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==";
       };
     };
-    "@webpack-cli/configtest-1.1.1" = {
+    "@webpack-cli/configtest-1.2.0" = {
       name = "_at_webpack-cli_slash_configtest";
       packageName = "@webpack-cli/configtest";
-      version = "1.1.1";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.1.1.tgz";
-        sha512 = "1FBc1f9G4P/AxMqIgfZgeOTuRnwZMten8E7zap5zgpPInnCrP8D4Q81+4CWIch8i/Nf7nXjP0v6CjjbHOrXhKg==";
+        url = "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-1.2.0.tgz";
+        sha512 = "4FB8Tj6xyVkyqjj1OaTqCjXYULB9FMkqQ8yGrZjRDrYh0nOE+7Lhs45WioWQQMV+ceFlE368Ukhe6xdvJM9Egg==";
       };
     };
-    "@webpack-cli/info-1.4.1" = {
+    "@webpack-cli/info-1.5.0" = {
       name = "_at_webpack-cli_slash_info";
       packageName = "@webpack-cli/info";
-      version = "1.4.1";
+      version = "1.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.4.1.tgz";
-        sha512 = "PKVGmazEq3oAo46Q63tpMr4HipI3OPfP7LiNOEJg963RMgT0rqheag28NCML0o3GIzA3DmxP1ZIAv9oTX1CUIA==";
+        url = "https://registry.npmjs.org/@webpack-cli/info/-/info-1.5.0.tgz";
+        sha512 = "e8tSXZpw2hPl2uMJY6fsMswaok5FdlGNRTktvFk2sD8RjH0hE2+XistawJx1vmKteh4NmGmNUrp+Tb2w+udPcQ==";
       };
     };
-    "@webpack-cli/serve-1.6.1" = {
+    "@webpack-cli/serve-1.7.0" = {
       name = "_at_webpack-cli_slash_serve";
       packageName = "@webpack-cli/serve";
-      version = "1.6.1";
+      version = "1.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.6.1.tgz";
-        sha512 = "gNGTiTrjEVQ0OcVnzsRSqTxaBSr+dmTfm+qJsCDluky8uhdLWep7Gcr62QsAKHTMxjCS/8nEITsmFAhfIx+QSw==";
+        url = "https://registry.npmjs.org/@webpack-cli/serve/-/serve-1.7.0.tgz";
+        sha512 = "oxnCNGj88fL+xzV+dacXs44HcDwf1ovs3AuEzvP7mqXw7fQntqIhQ1BRmynh4qEKQSSSRSWVyXRjmTbZIX9V2Q==";
       };
     };
     "@webtorrent/http-node-1.3.0" = {
@@ -11875,15 +12028,6 @@ let
         sha512 = "TU5nlYgta8YrBMNpc9FwQzRbiXsj49gsALsXadbGHt9CROPzX5fB0rWDR5mtdpOOKa5XqRFpbj1QroPAoPzVjQ==";
       };
     };
-    "abstract-leveldown-7.2.0" = {
-      name = "abstract-leveldown";
-      packageName = "abstract-leveldown";
-      version = "7.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-7.2.0.tgz";
-        sha512 = "DnhQwcFEaYsvYDnACLZhMmCWd3rkOeEvglpa4q5i/5Jlm3UIsWaxVzuXvDLFCSCWRO3yy2/+V/G7FusFgejnfQ==";
-      };
-    };
     "abstract-logging-1.0.0" = {
       name = "abstract-logging";
       packageName = "abstract-logging";
@@ -12154,13 +12298,13 @@ let
         sha512 = "qQLMr+8o0WC4FZGQTcJiKBVC59JylcPSrTtk6usvmIDFUOCKegapy1VHQwRbFMOFyb/inzUVqHs+eMYKDM1YeQ==";
       };
     };
-    "addons-linter-4.14.0" = {
+    "addons-linter-5.7.0" = {
       name = "addons-linter";
       packageName = "addons-linter";
-      version = "4.14.0";
+      version = "5.7.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-4.14.0.tgz";
-        sha512 = "TH3/PMS4Dd0Jf3kXW7DLXseHZcD7ZbnfnQAztkrP4YC0HQKQVZJ+lGOuDOGUtVQDMwC/eEdvHvZoRnHDer5qkg==";
+        url = "https://registry.npmjs.org/addons-linter/-/addons-linter-5.7.0.tgz";
+        sha512 = "w2QPCPfRbxTUDVuhtfMwOp1J+xIjUXCQMcGjg9t3Hu+vx8h9NZEGiBwYPYyoR5OD6yow52GvZncUMeO8+hIp+Q==";
       };
     };
     "addons-moz-compare-1.2.0" = {
@@ -12172,13 +12316,13 @@ let
         sha512 = "COG8qk2/dubPqabfcoJW4E7pm2EQDI43iMrHnhlobvq/uRMEzx/PYJ1KaUZ97Vgg44R3QdRG5CvDsTRbMUHcDw==";
       };
     };
-    "addons-scanner-utils-6.3.0" = {
+    "addons-scanner-utils-7.0.0" = {
       name = "addons-scanner-utils";
       packageName = "addons-scanner-utils";
-      version = "6.3.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-6.3.0.tgz";
-        sha512 = "sD4U7TX/NFDUYVheydrcpHH9xG3E0eVBFDn1RuUkGpqRyay3SsOU75Pl2lWAbCmeE0Mh9inU1Fwl7Mm1VRWkZw==";
+        url = "https://registry.npmjs.org/addons-scanner-utils/-/addons-scanner-utils-7.0.0.tgz";
+        sha512 = "5j/qMzL13uGSiaFKvUNiMwyWMYD2YtEeY477q7Ahan3c90wLCwXIGCdpCfstgT3hpl44r+d6lqTIo2j2FW6uJQ==";
       };
     };
     "addr-to-ip-port-1.5.4" = {
@@ -12460,13 +12604,13 @@ let
         sha512 = "YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==";
       };
     };
-    "ajv-merge-patch-4.1.0" = {
+    "ajv-merge-patch-5.0.1" = {
       name = "ajv-merge-patch";
       packageName = "ajv-merge-patch";
-      version = "4.1.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ajv-merge-patch/-/ajv-merge-patch-4.1.0.tgz";
-        sha512 = "0mAYXMSauA8RZ7r+B4+EAOYcZEcO9OK5EiQCR7W7Cv4E44pJj56ZnkKLJ9/PAcOc0dT+LlV9fdDcq2TxVJfOYw==";
+        url = "https://registry.npmjs.org/ajv-merge-patch/-/ajv-merge-patch-5.0.1.tgz";
+        sha512 = "0UP3aJCzfzBOkmLR+EinJDCfg6DNtprj3bVPo7JJNgUpZMKt097t9xxQOWFGRoB4JvKKIHE2qe0HkVaS/HyrjQ==";
       };
     };
     "alex-9.1.1" = {
@@ -12574,7 +12718,7 @@ let
       version = "0.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ansi-color/-/ansi-color-0.2.1.tgz";
-        sha1 = "3e75c037475217544ed763a8db5709fa9ae5bf9a";
+        sha512 = "bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ==";
       };
     };
     "ansi-colors-1.1.0" = {
@@ -13576,6 +13720,15 @@ let
         sha512 = "THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==";
       };
     };
+    "array-differ-4.0.0" = {
+      name = "array-differ";
+      packageName = "array-differ";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array-differ/-/array-differ-4.0.0.tgz";
+        sha512 = "Q6VPTLMsmXZ47ENG3V+wQyZS1ZxXMxFyYzA+Z/GMrJ6yIutAIEf9wTyroTzmGjNfox9/h3GdGBCVh43GVFx4Uw==";
+      };
+    };
     "array-each-1.0.1" = {
       name = "array-each";
       packageName = "array-each";
@@ -13846,6 +13999,15 @@ let
         sha512 = "sn40qmUiLYAcRb/1HsIQjTTZ1kCy8II8VtZJpMn2Aoen9twULhbWXisfh3HimGqMlHGUul0/TfKCnXg42LuPpQ==";
       };
     };
+    "array.prototype.flatmap-1.3.0" = {
+      name = "array.prototype.flatmap";
+      packageName = "array.prototype.flatmap";
+      version = "1.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.0.tgz";
+        sha512 = "PZC9/8TKAIxcWKdyeb77EzULHPrIX/tIZebLJUQOMR1OwYosT8yggdfWScfTBCDj5utONvOuPQQumYsU2ULbkg==";
+      };
+    };
     "array.prototype.reduce-1.0.4" = {
       name = "array.prototype.reduce";
       packageName = "array.prototype.reduce";
@@ -14404,13 +14566,13 @@ let
         sha512 = "eKEYj1+jDgQ15jazjmelcPGXO77pa5epzlyXyEQcwwLtnACtBTCrxaW+96uXF2j4rzIikmUtVlzXwejx6iIhWw==";
       };
     };
-    "asyncjs-util-1.2.8" = {
+    "asyncjs-util-1.2.10" = {
       name = "asyncjs-util";
       packageName = "asyncjs-util";
-      version = "1.2.8";
+      version = "1.2.10";
       src = fetchurl {
-        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.8.tgz";
-        sha512 = "wUcEKoAxBWWNE1wXkoIvIyM1vVDfvItYXANYTgwemeRL8FgV6z70XdLGLBMty0WiQSub0fBuKIyF+Hz3DCahOg==";
+        url = "https://registry.npmjs.org/asyncjs-util/-/asyncjs-util-1.2.10.tgz";
+        sha512 = "p4U6HQUw4k/xZKrwEQO7ZuF+8/OkzAQS4iAMhFUBGtSD8p3KkKBaTBuUTEH8TWKB3ArNbrP0401TGE2vIiU7uQ==";
       };
     };
     "asyncjs-util-1.2.9" = {
@@ -14449,6 +14611,15 @@ let
         sha512 = "+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==";
       };
     };
+    "atlassian-openapi-1.0.17" = {
+      name = "atlassian-openapi";
+      packageName = "atlassian-openapi";
+      version = "1.0.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/atlassian-openapi/-/atlassian-openapi-1.0.17.tgz";
+        sha512 = "8aW0Xgl9mVdL9dCABSZAvCayMPyh6uVu86UzOat8Kc1qDMUtXn2OxcwDsJfm/qCtBSeZ+GE/PkFxx3ZRIp3hFg==";
+      };
+    };
     "atob-2.1.2" = {
       name = "atob";
       packageName = "atob";
@@ -14602,13 +14773,13 @@ let
         sha512 = "545VawhsCQ7yEx9jZKV0hTTW3FS/waycISWMvnNwqRfpU9o4FQ4DSu3je7ekn5yFKM+91dxJC+IfJgtIV8WaUw==";
       };
     };
-    "aws-sdk-2.1151.0" = {
+    "aws-sdk-2.1157.0" = {
       name = "aws-sdk";
       packageName = "aws-sdk";
-      version = "2.1151.0";
+      version = "2.1157.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1151.0.tgz";
-        sha512 = "VvyzXAmWrX+klvwzA+9gSTY7blDnZOTl0UTKrqmFL4K7tOLieGLYTUkpUegcPxCjYgEg7JwvYolYUnUKiHa4oA==";
+        url = "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1157.0.tgz";
+        sha512 = "30t+zhCECib8uaggd0Du8ifab4vtJjgVvNKxHWTpiLa3deTnM+0K7x3pwM99zxw0gLDxAUet/oURaoPJHwk/5Q==";
       };
     };
     "aws-sign2-0.6.0" = {
@@ -15169,6 +15340,15 @@ let
         sha512 = "ZNB4525U7BxT6v9C8LEtywyCgB4Pjnm7/bh+ru/Z9Ecxvg3fDjaJ6z305z9a61orQdbB1zqYHh5JbUqx4s4K0g==";
       };
     };
+    "bash-language-server-3.0.3" = {
+      name = "bash-language-server";
+      packageName = "bash-language-server";
+      version = "3.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-3.0.3.tgz";
+        sha512 = "UhYd0YYaXjYn0M3dVeL6jv1X9L2VR8dJp3fUCcdyHTgzJOvmntpUrkjcoKASV0qqZt0u8DSPT4xE+HjegQoEvQ==";
+      };
+    };
     "basic-auth-1.1.0" = {
       name = "basic-auth";
       packageName = "basic-auth";
@@ -16276,15 +16456,6 @@ let
         sha512 = "LhBa/3hqtSY7fBgE4FzoJXNPtE1tzxEfuWc32LQXNAwvgeWJP3tlQtNqhfPwfDFflSIysSe5N/yK/ybgd/oniA==";
       };
     };
-    "bolt07-1.8.0" = {
-      name = "bolt07";
-      packageName = "bolt07";
-      version = "1.8.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bolt07/-/bolt07-1.8.0.tgz";
-        sha512 = "UJq+p94UK9QsU3P1npJyWF3r8TuJd6kv6P4m656VQK/m5ifw0bWCkYF0ngcHbFGq3j8u3gP8/tkGtB8WwPPRbQ==";
-      };
-    };
     "bolt07-1.8.1" = {
       name = "bolt07";
       packageName = "bolt07";
@@ -16303,24 +16474,6 @@ let
         sha512 = "jq1b/ZdMambhh+yi+pm+1PJBAnlYvQYljaBgSajvVAINHrHg32ovCBra8d0ADE3BAoj6G/tK7OSV4t/yT9A+/g==";
       };
     };
-    "bolt09-0.2.1" = {
-      name = "bolt09";
-      packageName = "bolt09";
-      version = "0.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.2.1.tgz";
-        sha512 = "ON1CY0awM/VsOxcmCtz7WggxjGRH+G5rSEAdWp1UoU43BHiGw1T6eEt1t4gFvLi8eUSV0hB7vF1QOba65k/7FA==";
-      };
-    };
-    "bolt09-0.2.2" = {
-      name = "bolt09";
-      packageName = "bolt09";
-      version = "0.2.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/bolt09/-/bolt09-0.2.2.tgz";
-        sha512 = "m533YWZ/R/p1buxEK/19v94Ay1vS1PJNwfP30BCVj6l96NGpOa9t40HYuMpoX+xFYwOx8kZs+GGTb9TbJund0w==";
-      };
-    };
     "bolt09-0.2.3" = {
       name = "bolt09";
       packageName = "bolt09";
@@ -17906,22 +18059,22 @@ let
         sha512 = "L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==";
       };
     };
-    "camelcase-6.2.0" = {
+    "camelcase-6.3.0" = {
       name = "camelcase";
       packageName = "camelcase";
-      version = "6.2.0";
+      version = "6.3.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz";
-        sha512 = "c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==";
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz";
+        sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==";
       };
     };
-    "camelcase-6.3.0" = {
+    "camelcase-7.0.0" = {
       name = "camelcase";
       packageName = "camelcase";
-      version = "6.3.0";
+      version = "7.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz";
-        sha512 = "Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==";
+        url = "https://registry.npmjs.org/camelcase/-/camelcase-7.0.0.tgz";
+        sha512 = "JToIvOmz6nhGsUhAYScbo2d6Py5wojjNfoxoc2mEVLUdJ70gJK2gnd+ABY1Tc3sVMyK7QDPtN0T/XdlCQWITyQ==";
       };
     };
     "camelcase-css-2.0.1" = {
@@ -17987,22 +18140,13 @@ let
         sha512 = "bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==";
       };
     };
-    "caniuse-lite-1.0.30001351" = {
+    "caniuse-lite-1.0.30001356" = {
       name = "caniuse-lite";
       packageName = "caniuse-lite";
-      version = "1.0.30001351";
+      version = "1.0.30001356";
       src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001351.tgz";
-        sha512 = "u+Ll+RDaiQEproTQjZLjZwyfNgNezA1fERMT7/54npcz+PkbVJUAHXMUz4bkXQYRPWrcFNO0Fbi1mwjfXg6N5g==";
-      };
-    };
-    "caniuse-lite-1.0.30001352" = {
-      name = "caniuse-lite";
-      packageName = "caniuse-lite";
-      version = "1.0.30001352";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz";
-        sha512 = "GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==";
+        url = "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001356.tgz";
+        sha512 = "/30854bktMLhxtjieIxsrJBfs2gTM1pel6MXKF3K+RdIVJZcsn2A2QdhsuR4/p9+R204fZw0zCBBhktX8xWuyQ==";
       };
     };
     "canvas-2.9.1" = {
@@ -18113,15 +18257,6 @@ let
         sha512 = "2diOsC0vSSxa3QEOgoGBy9fZRHzNXatHz464Kje2OpwQ7GM5vulyrD0gLFOQ1P4rgLAFsYiSGQl4gK402nEEuA==";
       };
     };
-    "catering-2.1.1" = {
-      name = "catering";
-      packageName = "catering";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/catering/-/catering-2.1.1.tgz";
-        sha512 = "K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w==";
-      };
-    };
     "catharsis-0.9.0" = {
       name = "catharsis";
       packageName = "catharsis";
@@ -18167,22 +18302,22 @@ let
         sha512 = "eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==";
       };
     };
-    "cdk8s-2.3.21" = {
+    "cdk8s-2.3.31" = {
       name = "cdk8s";
       packageName = "cdk8s";
-      version = "2.3.21";
+      version = "2.3.31";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.3.21.tgz";
-        sha512 = "fim79DP8podyZU/yQFmdNWrvihlyY+k7wUTn/bqOoYjtRrlXZRDKbLrmiump2diMKeSU7zUMm/M/gsWR7hoW7A==";
+        url = "https://registry.npmjs.org/cdk8s/-/cdk8s-2.3.31.tgz";
+        sha512 = "l0d5vDsnRhVxBn+w30B9erVijHX5/zYutshMoa7Gz2wfCAfy/ms3Y4RT9VSgZGYmbVlNxXYbgWwZn4ZSrpJ8VA==";
       };
     };
-    "cdk8s-plus-22-2.0.0-rc.13" = {
+    "cdk8s-plus-22-2.0.0-rc.23" = {
       name = "cdk8s-plus-22";
       packageName = "cdk8s-plus-22";
-      version = "2.0.0-rc.13";
+      version = "2.0.0-rc.23";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-2.0.0-rc.13.tgz";
-        sha512 = "GyVVMjzNP+tmEe0b57AFtTSYNmnBldJBPyCHCBKDUQ8jz9kRIwsXZ9q3+m0sIICFzf+oJ1u+MW9hgMwkMf5/Rw==";
+        url = "https://registry.npmjs.org/cdk8s-plus-22/-/cdk8s-plus-22-2.0.0-rc.23.tgz";
+        sha512 = "EZm8HnPOJLk+wJFHLEPtJVt0J0MeZAb7jGH0aVen+yYTQufdUaSLyljweWqqHLwWQRHxhhMv1bPIlWOKha51og==";
       };
     };
     "cdktf-0.11.2" = {
@@ -18752,13 +18887,13 @@ let
         sha512 = "HqsYJgIc8ljJJOqOzLphjAs79EUuWSX3nzZi2LNkzlw3GIzAeZbaSektC8iT/tKvLqZq8yl1GJu5o6doA4TRbg==";
       };
     };
-    "chrome-launcher-0.15.0" = {
+    "chrome-launcher-0.15.1" = {
       name = "chrome-launcher";
       packageName = "chrome-launcher";
-      version = "0.15.0";
+      version = "0.15.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.0.tgz";
-        sha512 = "ZQqX5kb9H0+jy1OqLnWampfocrtSZaGl7Ny3F9GRha85o4odbL8x55paUzh51UC7cEmZ5obp3H2Mm70uC2PpRA==";
+        url = "https://registry.npmjs.org/chrome-launcher/-/chrome-launcher-0.15.1.tgz";
+        sha512 = "UugC8u59/w2AyX5sHLZUHoxBAiSiunUhZa3zZwMH6zPVis0C3dDKiRWyUGIo14tTbZHGVviWxv3PQWZ7taZ4fg==";
       };
     };
     "chrome-net-3.3.4" = {
@@ -18851,13 +18986,13 @@ let
         sha512 = "5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==";
       };
     };
-    "ci-info-3.3.1" = {
+    "ci-info-3.3.2" = {
       name = "ci-info";
       packageName = "ci-info";
-      version = "3.3.1";
+      version = "3.3.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.3.1.tgz";
-        sha512 = "SXgeMX9VwDe7iFFaEWkA5AstuER9YKqy4EhHqr4DVqkwmD9rpVimkMKWHdjn30Ja45txyjhSn63lVX69eVCckg==";
+        url = "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz";
+        sha512 = "xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==";
       };
     };
     "cint-8.2.1" = {
@@ -19679,33 +19814,6 @@ let
         sha512 = "m7pOT6CdLN7FuXUcpuz/8lfQ/L77x8SchHCF4G0RBTJO20Wzmhn5Sp4/5WsKy8OSpifBSUrmg83qEqaDHdyFuQ==";
       };
     };
-    "co-from-stream-0.0.0" = {
-      name = "co-from-stream";
-      packageName = "co-from-stream";
-      version = "0.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/co-from-stream/-/co-from-stream-0.0.0.tgz";
-        sha512 = "w1GOkQmvYMWr5B3VsjyS/gxXd5YLhy4wcC1YxwajoGgMFJQLSsuzTxb6o9SiK+TMKN+DRJpsj4MN0CeOKSDAQA==";
-      };
-    };
-    "co-fs-extra-1.2.1" = {
-      name = "co-fs-extra";
-      packageName = "co-fs-extra";
-      version = "1.2.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/co-fs-extra/-/co-fs-extra-1.2.1.tgz";
-        sha512 = "zvN7PK5lcqgoxetadOTaYxQyyl0qBn6szmb6o8Xf6CjHnqv8zI9YdjbQhjE3OmKyJgN4WzUec1pGf7i9LLL8+g==";
-      };
-    };
-    "co-read-0.0.1" = {
-      name = "co-read";
-      packageName = "co-read";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/co-read/-/co-read-0.0.1.tgz";
-        sha512 = "OLceyyztHxwNtjuS2NjQ3QlczQIwOIW+n18DXAk89ej0wDso3exNvNrB7A3AiTVvFNEFe8LdqETIvRhtpkvLeA==";
-      };
-    };
     "coa-1.0.4" = {
       name = "coa";
       packageName = "coa";
@@ -19778,13 +19886,13 @@ let
         sha512 = "3WQV/Fpa77nvzjUlc+0u53uIroJyyMB2Qwl++aXpAiDIsrsiAQq4uCURwdRBRX+eLkOTIAmT0L4qna3T7+2pUg==";
       };
     };
-    "codemaker-1.60.0" = {
+    "codemaker-1.61.0" = {
       name = "codemaker";
       packageName = "codemaker";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.60.0.tgz";
-        sha512 = "Am1yw3/P5t/FLTnracIUO0QvnEGC46+BjZCWOphRulanNWWTSrMZ+eT3xIsf4oT0uclIYDWF8mAqFk3iTC0jFg==";
+        url = "https://registry.npmjs.org/codemaker/-/codemaker-1.61.0.tgz";
+        sha512 = "do01ygDHvcw0ZqV4isyzwMMJmAO+LtqROLC3dlp6XJk7XdTaZHoyMXRLoDdB50o4QLmGf2NZEVZmbKEOOXNYRw==";
       };
     };
     "codepage-1.4.0" = {
@@ -19958,6 +20066,15 @@ let
         sha512 = "hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==";
       };
     };
+    "colorette-2.0.19" = {
+      name = "colorette";
+      packageName = "colorette";
+      version = "2.0.19";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz";
+        sha512 = "3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==";
+      };
+    };
     "colors-0.6.2" = {
       name = "colors";
       packageName = "colors";
@@ -20858,13 +20975,13 @@ let
         sha512 = "xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==";
       };
     };
-    "constructs-10.1.33" = {
+    "constructs-10.1.42" = {
       name = "constructs";
       packageName = "constructs";
-      version = "10.1.33";
+      version = "10.1.42";
       src = fetchurl {
-        url = "https://registry.npmjs.org/constructs/-/constructs-10.1.33.tgz";
-        sha512 = "OgqPYjBLbMFcaQ9bsdvF59orh46GNwg3tBdyOlhuWm8ljRxaQ2jEJ3XAj06I0/+sTAcsF9sZ9GAVmJIiCTnBkA==";
+        url = "https://registry.npmjs.org/constructs/-/constructs-10.1.42.tgz";
+        sha512 = "5AELa/PFtZG+WTjn9HoXhqsDZYV6l3J7Li9xw6vREYVMasF8cnVbTZvA4crP1gIyKtBAxAlnZCmzmCbicnH6eg==";
       };
     };
     "consume-http-header-1.0.0" = {
@@ -20921,6 +21038,15 @@ let
         sha512 = "FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==";
       };
     };
+    "content-security-policy-parser-0.3.0" = {
+      name = "content-security-policy-parser";
+      packageName = "content-security-policy-parser";
+      version = "0.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/content-security-policy-parser/-/content-security-policy-parser-0.3.0.tgz";
+        sha512 = "ub90B4t9EfDPv3DCH7vEwGe4tVMkSm4Ow1HsmvmEQwinDfpTEDmkuJVa5WpzHDTt2bUirNRZuzL6S0msASlJhg==";
+      };
+    };
     "content-type-1.0.4" = {
       name = "content-type";
       packageName = "content-type";
@@ -21480,40 +21606,40 @@ let
         sha512 = "Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ==";
       };
     };
-    "core-js-3.21.0" = {
+    "core-js-3.22.8" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.21.0";
+      version = "3.22.8";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.21.0.tgz";
-        sha512 = "YUdI3fFu4TF/2WykQ2xzSiTQdldLB4KVuL9WeAy5XONZYt5Cun/fpQvctoKbCgvPhmzADeesTk/j2Rdx77AcKQ==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz";
+        sha512 = "UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==";
       };
     };
-    "core-js-3.22.8" = {
+    "core-js-3.23.1" = {
       name = "core-js";
       packageName = "core-js";
-      version = "3.22.8";
+      version = "3.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js/-/core-js-3.22.8.tgz";
-        sha512 = "UoGQ/cfzGYIuiq6Z7vWL1HfkE9U9IZ4Ub+0XSiJTCzvbZzgPA69oDF2f+lgJ6dFFLEdjW5O6svvoKzXX23xFkA==";
+        url = "https://registry.npmjs.org/core-js/-/core-js-3.23.1.tgz";
+        sha512 = "wfMYHWi1WQjpgZNC9kAlN4ut04TM9fUTdi7CqIoTVM7yaiOUQTklOzfb+oWH3r9edQcT3F887swuVmxrV+CC8w==";
       };
     };
-    "core-js-compat-3.22.8" = {
+    "core-js-compat-3.23.1" = {
       name = "core-js-compat";
       packageName = "core-js-compat";
-      version = "3.22.8";
+      version = "3.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz";
-        sha512 = "pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==";
+        url = "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.1.tgz";
+        sha512 = "KeYrEc8t6FJsKYB2qnDwRHWaC0cJNaqlHfCpMe5q3j/W1nje3moib/txNklddLPCtGb+etcBIyJ8zuMa/LN5/A==";
       };
     };
-    "core-js-pure-3.22.8" = {
+    "core-js-pure-3.23.1" = {
       name = "core-js-pure";
       packageName = "core-js-pure";
-      version = "3.22.8";
+      version = "3.23.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.22.8.tgz";
-        sha512 = "bOxbZIy9S5n4OVH63XaLVXZ49QKicjowDx/UELyJ68vxfCRpYsbyh/WNZNfEfAk+ekA8vSjt+gCDpvh672bc3w==";
+        url = "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.23.1.tgz";
+        sha512 = "3qNgf6TqI3U1uhuSYRzJZGfFd4T+YlbyVPl+jgRiKjdZopvG4keZQwWZDAWpu1UH9nCgTpUzIV3GFawC7cJsqg==";
       };
     };
     "core-util-is-1.0.2" = {
@@ -21948,13 +22074,13 @@ let
         sha512 = "mkLtJJcYbDCxEG7Js6eUnUNndWjyUZwJ3H7bErmmtOYU/Zb99DyUkpamuIZE0b3bhmJyZ7D90uS6f+CGxRRjOw==";
       };
     };
-    "cross-undici-fetch-0.4.5" = {
+    "cross-undici-fetch-0.4.7" = {
       name = "cross-undici-fetch";
       packageName = "cross-undici-fetch";
-      version = "0.4.5";
+      version = "0.4.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.4.5.tgz";
-        sha512 = "3u5LFSPiD5frvhBmU2bH7kv7pa8/WSh3gfwyLsx84oP5mSGttd8eNXU7UofketwKCnCb2gjhCGnVpoUCb1RxDQ==";
+        url = "https://registry.npmjs.org/cross-undici-fetch/-/cross-undici-fetch-0.4.7.tgz";
+        sha512 = "e5KZdjHigxFECfw1B7cjmXLm3yT8eiffSJYUSyIWxy6c+f/MGiJsV1NHegZvG23ZgQ0o8rNaZxbtu5NdF5FmwQ==";
       };
     };
     "crossroads-0.12.2" = {
@@ -22029,49 +22155,49 @@ let
         sha512 = "v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==";
       };
     };
-    "cspell-gitignore-6.1.1" = {
+    "cspell-gitignore-6.1.2" = {
       name = "cspell-gitignore";
       packageName = "cspell-gitignore";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.1.1.tgz";
-        sha512 = "aqEiD6JZyx0Sko8laorP8OUoMFg6T/wzi3oq/xJ4RV/3PL+SgRpxWOtuLslmCYTdZT74zwNs8YmrLvvLe+OPzQ==";
+        url = "https://registry.npmjs.org/cspell-gitignore/-/cspell-gitignore-6.1.2.tgz";
+        sha512 = "9P4ltD5DF/Dogz/+IgW8BZjqvgbOghg2OKk165+ilKgoQc73zHQy8bZRdJsDo2NBevmT8Z9RswEN37pQvzmMqQ==";
       };
     };
-    "cspell-glob-6.1.1" = {
+    "cspell-glob-6.1.2" = {
       name = "cspell-glob";
       packageName = "cspell-glob";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.1.1.tgz";
-        sha512 = "ftVhF+T+zzP4i3j22A/mn91Y4+dR+juvTH0pwdcNhDV/cryiAWFPJZPvj7wmH+sYzEpXCDTxMhqhHUwuEZoPyA==";
+        url = "https://registry.npmjs.org/cspell-glob/-/cspell-glob-6.1.2.tgz";
+        sha512 = "+EN4DEyK8ohwZLShPw9vhU6114fnGYi8q4IQAGc5qCCcnMTgb1H3N840YyG+EuP0Q1o3TwMYMA+B+tw4w+yQSg==";
       };
     };
-    "cspell-io-6.1.1" = {
+    "cspell-io-6.1.2" = {
       name = "cspell-io";
       packageName = "cspell-io";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-6.1.1.tgz";
-        sha512 = "3i4upVlFXqlCfgQtwqr1vS9sCctYrUWUbLcSrHKpJfgO5/FCRi+phaFdT/xhMfvNS4UIC79qLJshOoz9g2SLfQ==";
+        url = "https://registry.npmjs.org/cspell-io/-/cspell-io-6.1.2.tgz";
+        sha512 = "WVRKjOzB3BgwJPk4hWH19jiqXzbtWGzJ1yNLaB2r3KYCDh+FYT4jVaHb5DWERASahvukb05go7G623FuYeoY3Q==";
       };
     };
-    "cspell-lib-6.1.1" = {
+    "cspell-lib-6.1.2" = {
       name = "cspell-lib";
       packageName = "cspell-lib";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.1.1.tgz";
-        sha512 = "tKPnYs7AFsGwhT0ohtkxVV8gmgeu2Okcab/JTUiaWSEJ91aFQvDZMg+5laJ/kNGJoVDv37ahjdWXh6jBXmhrhw==";
+        url = "https://registry.npmjs.org/cspell-lib/-/cspell-lib-6.1.2.tgz";
+        sha512 = "oJVAvxnP6jsiglLIdFy9agO5vfArTQdLweRjkR8SbVPoYQ8vyDfrbQT9J+K+ekKpCvpzKKzjleOJHHwJFeltGQ==";
       };
     };
-    "cspell-trie-lib-6.1.1" = {
+    "cspell-trie-lib-6.1.2" = {
       name = "cspell-trie-lib";
       packageName = "cspell-trie-lib";
-      version = "6.1.1";
+      version = "6.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.1.1.tgz";
-        sha512 = "VAB4f9aP1WwZwXyDoIm81XbeXvuLRIx7fi9BYN7sk5pliga8nXBCoxNB5AKqBWRld9OMFPJAmv+Dj0CmLJ+aYA==";
+        url = "https://registry.npmjs.org/cspell-trie-lib/-/cspell-trie-lib-6.1.2.tgz";
+        sha512 = "VQasYB6WYQZz71Uo0Z4K/i6qOZpBqOh0SbKQr6n0lkejnmoAv324SKJqKyXyizWCQQvWDq+ax18bW+KBFNBzxQ==";
       };
     };
     "csrf-3.1.0" = {
@@ -22515,13 +22641,13 @@ let
         sha512 = "byxnDBxM1AVF3YfmsK7Smop9/usNz7gAZYSo9eYp61TGcNXraJby1rAiLyJSt1/8Iho2qaxZOtZCOvQMXogPtg==";
       };
     };
-    "csv-parse-5.1.0" = {
+    "csv-parse-5.2.0" = {
       name = "csv-parse";
       packageName = "csv-parse";
-      version = "5.1.0";
+      version = "5.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.1.0.tgz";
-        sha512 = "JL+Q6YEikT2uoe57InjFFa6VejhSv0tDwOxeQ1bVQKeUC/NCnLAAZ8n3PzowPQQLuZ37fysDYZipB2UJkH9C6A==";
+        url = "https://registry.npmjs.org/csv-parse/-/csv-parse-5.2.0.tgz";
+        sha512 = "ZuLjTp3Qx2gycoB7FKS9q11KgDL3f0wQszTlNOajS3fHa0jypN/zgjmkam+rczX5dXw5z7+KrDW2hWkM4542Ug==";
       };
     };
     "csv-stream-0.2.0" = {
@@ -23730,15 +23856,6 @@ let
         sha512 = "YKw0BmJSWxkjtQsbgn6Q9CHSWB7DKMen8vKrgyC006zy0UZ6nWyGidB0IzZgqkVRkOglAeUaFtiRTeLyel72bg==";
       };
     };
-    "debounce-1.2.0" = {
-      name = "debounce";
-      packageName = "debounce";
-      version = "1.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/debounce/-/debounce-1.2.0.tgz";
-        sha512 = "mYtLl1xfZLi1m4RtQYlZgJUNQjl4ZxVnHzIR8nLLgi4q1YT8o/WM+MK/f8yfcc9s5Ir5zRaPZyZU6xs1Syoocg==";
-      };
-    };
     "debounce-1.2.1" = {
       name = "debounce";
       packageName = "debounce";
@@ -23946,22 +24063,22 @@ let
         sha512 = "9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==";
       };
     };
-    "decamelize-5.0.0" = {
+    "decamelize-5.0.1" = {
       name = "decamelize";
       packageName = "decamelize";
-      version = "5.0.0";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-5.0.0.tgz";
-        sha512 = "U75DcT5hrio3KNtvdULAWnLiAPbFUC4191ldxMmj4FA/mRuBnmDwU0boNfPyFRhnan+Jm+haLeSn3P0afcBn4w==";
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz";
+        sha512 = "VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==";
       };
     };
-    "decamelize-5.0.1" = {
+    "decamelize-6.0.0" = {
       name = "decamelize";
       packageName = "decamelize";
-      version = "5.0.1";
+      version = "6.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/decamelize/-/decamelize-5.0.1.tgz";
-        sha512 = "VfxadyCECXgQlkoEAjeghAr5gY3Hf+IKjKb+X8tGVDtveCjN+USwprd2q3QXBR9T1+x2DG0XZF5/w+7HAtSaXA==";
+        url = "https://registry.npmjs.org/decamelize/-/decamelize-6.0.0.tgz";
+        sha512 = "Fv96DCsdOgB6mdGl67MT5JaTNKRzrzill5OH5s8bjYJXVlcXyPYGyPsUkWyGV5p1TXI5esYIYMMeDJL0hEIwaA==";
       };
     };
     "decamelize-keys-1.1.0" = {
@@ -24873,6 +24990,15 @@ let
         sha512 = "0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==";
       };
     };
+    "dezalgo-1.0.3" = {
+      name = "dezalgo";
+      packageName = "dezalgo";
+      version = "1.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz";
+        sha512 = "K7i4zNfT2kgQz3GylDw40ot9GAE47sFZ9EXHFSPP6zONLgH6kWXE0KWJchkbQJLBkRazq4APwZ4OwiFFlT95OQ==";
+      };
+    };
     "dezalgo-1.0.4" = {
       name = "dezalgo";
       packageName = "dezalgo";
@@ -25215,13 +25341,13 @@ let
         sha512 = "BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA==";
       };
     };
-    "dns-packet-5.3.1" = {
+    "dns-packet-5.4.0" = {
       name = "dns-packet";
       packageName = "dns-packet";
-      version = "5.3.1";
+      version = "5.4.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-5.3.1.tgz";
-        sha512 = "spBwIj0TK0Ey3666GwIdWVfUpLyubpU53BTCu8iPn4r4oXd9O14Hjg3EHw3ts2oed77/SeckunUYCyRlSngqHw==";
+        url = "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz";
+        sha512 = "EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==";
       };
     };
     "dns-txt-2.0.2" = {
@@ -25242,6 +25368,15 @@ let
         sha512 = "2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==";
       };
     };
+    "dockerfile-ast-0.1.0" = {
+      name = "dockerfile-ast";
+      packageName = "dockerfile-ast";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile-ast/-/dockerfile-ast-0.1.0.tgz";
+        sha512 = "qKftHMVoMliYBaYLkgttm+NXhRISVNkIMfAL4ecmXjiWRElfdfY+xNgITiehG0LpUEDbFUa/UDCByYq/2UZIpQ==";
+      };
+    };
     "dockerfile-ast-0.4.2" = {
       name = "dockerfile-ast";
       packageName = "dockerfile-ast";
@@ -25251,6 +25386,24 @@ let
         sha512 = "k770mVWaCm3KbyOSPFizP6WB2ucZjfAv8aun4UsKl+IivowK7ItwBixNbziBjN05yNpvCL1/IxBdZiSz6KQIvA==";
       };
     };
+    "dockerfile-language-server-nodejs-0.2.2" = {
+      name = "dockerfile-language-server-nodejs";
+      packageName = "dockerfile-language-server-nodejs";
+      version = "0.2.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile-language-server-nodejs/-/dockerfile-language-server-nodejs-0.2.2.tgz";
+        sha512 = "PdDtFhzVywa2bZK6OFQhIPMSNPNJQa03Ri3ONxBJpxtOwtAaDSnh95iGj/bdPqQLJGoj1Y/yTheDTxLOTTe5JA==";
+      };
+    };
+    "dockerfile-language-service-0.1.1" = {
+      name = "dockerfile-language-service";
+      packageName = "dockerfile-language-service";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile-language-service/-/dockerfile-language-service-0.1.1.tgz";
+        sha512 = "Lw4QlxJoy9F1559wxX+0xe5iSNK95Fbzx/YhdmAzfwgbPvdPzvFouIuuMyMPj/Q5JyFH1QAr7VeagOe24w0cqg==";
+      };
+    };
     "dockerfile-language-service-0.9.0" = {
       name = "dockerfile-language-service";
       packageName = "dockerfile-language-service";
@@ -25260,6 +25413,15 @@ let
         sha512 = "sDUkTR4LUimEAWXDIbUTEx2CytCBlx+XlJkg4B2Ptvak9HkwPD4JpXesaWxXPpp6YHCzxqwsTDY7Gf79ic340g==";
       };
     };
+    "dockerfile-utils-0.1.1" = {
+      name = "dockerfile-utils";
+      packageName = "dockerfile-utils";
+      version = "0.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/dockerfile-utils/-/dockerfile-utils-0.1.1.tgz";
+        sha512 = "ddAA8PCAcT4pBQ1AFRnPjetJ31/7BqNKLHQkZebNE0hBAiOr8SzrnIWvJUcBDHrVbASCVl1Ye37hbaTsUmYHsw==";
+      };
+    };
     "dockerfile-utils-0.10.0" = {
       name = "dockerfile-utils";
       packageName = "dockerfile-utils";
@@ -25548,15 +25710,6 @@ let
         sha512 = "kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==";
       };
     };
-    "dompurify-2.3.6" = {
-      name = "dompurify";
-      packageName = "dompurify";
-      version = "2.3.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz";
-        sha512 = "OFP2u/3T1R5CEgWCEONuJ1a5+MFKnOYpkywpUSxv/dj1LeBT1erK+JwM7zK0ROy2BRhqVCf0LRw/kHqKuMkVGg==";
-      };
-    };
     "dompurify-2.3.8" = {
       name = "dompurify";
       packageName = "dompurify";
@@ -26106,13 +26259,13 @@ let
         sha512 = "/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==";
       };
     };
-    "electron-18.3.3" = {
+    "electron-18.3.4" = {
       name = "electron";
       packageName = "electron";
-      version = "18.3.3";
+      version = "18.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron/-/electron-18.3.3.tgz";
-        sha512 = "LYxf3uCDc/r0klu7LL0eZLxkseoGIY/vrCfS0Qj4YTU3M7LLjOaIqrajI7icKwaI2dgxiuJJH3n4eqALFpJAFg==";
+        url = "https://registry.npmjs.org/electron/-/electron-18.3.4.tgz";
+        sha512 = "MIxQnaQR7NzWZOuAhRbJAf+pPyoXXGNge9E6pz7nGLXE/DxeN6BUbKb0iWVCCMkxIpqdIhXdc5sViUCX74dvsw==";
       };
     };
     "electron-notarize-1.2.1" = {
@@ -26151,13 +26304,13 @@ let
         sha512 = "WvaW1EgRinDQ61khHFZfx30rkPQG5ItaOT0wrI7iJv9A3SbghriQGfZQfHZs25fWLBe6/vkv05LOqg6aDw6Wzw==";
       };
     };
-    "electron-to-chromium-1.4.150" = {
+    "electron-to-chromium-1.4.161" = {
       name = "electron-to-chromium";
       packageName = "electron-to-chromium";
-      version = "1.4.150";
+      version = "1.4.161";
       src = fetchurl {
-        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.150.tgz";
-        sha512 = "MP3oBer0X7ZeS9GJ0H6lmkn561UxiwOIY9TTkdxVY7lI9G6GVCKfgJaHaDcakwdKxBXA4T3ybeswH/WBIN/KTA==";
+        url = "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.161.tgz";
+        sha512 = "sTjBRhqh6wFodzZtc5Iu8/R95OkwaPNn7tj/TaDU5nu/5EFiQDtADGAXdR4tJcTEHlYfJpHqigzJqHvPgehP8A==";
       };
     };
     "electrum-client-git+https://github.com/janoside/electrum-client" = {
@@ -26225,15 +26378,6 @@ let
         sha512 = "Bt1sBAGFHY9DKY+4/2cV6izcKJUf5T7/gkdmkxzX/qv9CcGH8xSwVRW5mtX03SWJtRTWSOpzCuWN9rBFYZepZQ==";
       };
     };
-    "emittery-0.10.0" = {
-      name = "emittery";
-      packageName = "emittery";
-      version = "0.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/emittery/-/emittery-0.10.0.tgz";
-        sha512 = "AGvFfs+d0JKCJQ4o01ASQLGPmSCxgfU9RFXvzPvZdjKK8oscynksuJhWrSTSw7j7Ep/sZct5b5ZhYCi8S/t0HQ==";
-      };
-    };
     "emmet-2.3.6" = {
       name = "emmet";
       packageName = "emmet";
@@ -26351,15 +26495,6 @@ let
         sha512 = "7iCAsVoMYjRo+3DziH6szDxEL3h10dbuhD/aDKlcH0nzStbn4Yb3zWVaHivGtH5TsqZsTIl94Dr80OqRYcAlAQ==";
       };
     };
-    "enable-1.3.2" = {
-      name = "enable";
-      packageName = "enable";
-      version = "1.3.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/enable/-/enable-1.3.2.tgz";
-        sha512 = "X836S0L169pR8DOBMw6pWruSSUuosq7yTjzD74neq6k9I4XJD50R648Hl7G0j3On0a3uAfqWd6oE5WtyIRb3Lg==";
-      };
-    };
     "enabled-2.0.0" = {
       name = "enabled";
       packageName = "enabled";
@@ -27260,22 +27395,22 @@ let
         sha512 = "VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==";
       };
     };
-    "eslint-8.11.0" = {
+    "eslint-8.17.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "8.11.0";
+      version = "8.17.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.11.0.tgz";
-        sha512 = "/KRpd9mIRg2raGxHRGwW9ZywYNAClZrHjdueHcrVDuO3a6bj83eoTirCCk0M0yPwOjWYKHwRVRid+xK4F/GHgA==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz";
+        sha512 = "gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==";
       };
     };
-    "eslint-8.17.0" = {
+    "eslint-8.18.0" = {
       name = "eslint";
       packageName = "eslint";
-      version = "8.17.0";
+      version = "8.18.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz";
-        sha512 = "gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==";
+        url = "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz";
+        sha512 = "As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==";
       };
     };
     "eslint-config-prettier-6.15.0" = {
@@ -27512,15 +27647,6 @@ let
         sha512 = "v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==";
       };
     };
-    "espree-9.3.1" = {
-      name = "espree";
-      packageName = "espree";
-      version = "9.3.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz";
-        sha512 = "bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==";
-      };
-    };
     "espree-9.3.2" = {
       name = "espree";
       packageName = "espree";
@@ -27692,13 +27818,13 @@ let
         sha512 = "MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==";
       };
     };
-    "estree-util-is-identifier-name-2.0.0" = {
+    "estree-util-is-identifier-name-2.0.1" = {
       name = "estree-util-is-identifier-name";
       packageName = "estree-util-is-identifier-name";
-      version = "2.0.0";
+      version = "2.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.0.tgz";
-        sha512 = "aXXZFVMnBBDRP81vS4YtAYJ0hUkgEsXea7lNKWCOeaAquGb1Jm2rcONPB5fpzwgbNxulTvrWuKnp9UElUGAKeQ==";
+        url = "https://registry.npmjs.org/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.0.1.tgz";
+        sha512 = "rxZj1GkQhY4x1j/CSnybK9cGuMFQYFPLq0iNyopqf14aOVLFtMv7Esika+ObJWPWiOHuMOAHz3YkWoLYYRnzWQ==";
       };
     };
     "estree-util-visit-1.1.0" = {
@@ -28178,15 +28304,6 @@ let
         sha512 = "Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==";
       };
     };
-    "exit-code-1.0.2" = {
-      name = "exit-code";
-      packageName = "exit-code";
-      version = "1.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz";
-        sha512 = "U80QYrKun5np62yRqG6geNRP5TZKU2HF73Bb6IE3XjDHXKlserAdP14tIaP3W9J6ezv84DwbpbRTAtu4FsKcgw==";
-      };
-    };
     "exit-hook-1.1.1" = {
       name = "exit-hook";
       packageName = "exit-hook";
@@ -28484,13 +28601,13 @@ let
         sha512 = "ytpHAAOQ/G5Nm7jyyEKzaoGiDhrUGPHeeJfyI2q7jii5dcPCLogf8EyWzSNcxAX8FZy1U6gfGY46SMmEhP3lMw==";
       };
     };
-    "express-validator-6.14.1" = {
+    "express-validator-6.14.2" = {
       name = "express-validator";
       packageName = "express-validator";
-      version = "6.14.1";
+      version = "6.14.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.14.1.tgz";
-        sha512 = "4w7gn/jPW1a+r833xBqpu4pL7XiiScDwlbBIMtiqUEt/MVNqR94HOHyKLcCtnqCnEPiqrX1Mqt9l/SVN/iqeLA==";
+        url = "https://registry.npmjs.org/express-validator/-/express-validator-6.14.2.tgz";
+        sha512 = "8XfAUrQ6Y7dIIuy9KcUPCfG/uCbvREctrxf5EeeME+ulanJ4iiW71lWmm9r4YcKKYOCBMan0WpVg7FtHu4Z4Wg==";
       };
     };
     "express-ws-2.0.0" = {
@@ -28853,13 +28970,13 @@ let
         sha512 = "xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==";
       };
     };
-    "fast-equals-3.0.3" = {
+    "fast-equals-4.0.1" = {
       name = "fast-equals";
       packageName = "fast-equals";
-      version = "3.0.3";
+      version = "4.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-3.0.3.tgz";
-        sha512 = "NCe8qxnZFARSHGztGMZOO/PC1qa5MIFB5Hp66WdzbCRAz8U8US3bx1UTgLS49efBQPcUtO9gf5oVEY8o7y/7Kg==";
+        url = "https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.1.tgz";
+        sha512 = "OXqyj3MD0p8Kee16Jz7CbCnXo+5CHKKu4xBh5UhC1NbmMkHn8WScLRy/B2q5UOlWMlNSQJc4mwXW30Lz+JUZJw==";
       };
     };
     "fast-fifo-1.1.0" = {
@@ -29105,13 +29222,13 @@ let
         sha512 = "WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==";
       };
     };
-    "faunadb-4.5.4" = {
+    "faunadb-4.6.0" = {
       name = "faunadb";
       packageName = "faunadb";
-      version = "4.5.4";
+      version = "4.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.5.4.tgz";
-        sha512 = "v0e1aXPhitIGMtuC7NFtp//hyr0d2NtHFcGqsEJgWx49rRJoonZQl6hLQ3lBjhA/LPg26U4R/BAlmDFE2pzsUA==";
+        url = "https://registry.npmjs.org/faunadb/-/faunadb-4.6.0.tgz";
+        sha512 = "lBCS9wOLIdoeQmhzFvNAXM9B4T3Ptv2HUf0RrPsC2LA1zPtTQFBtdhH7fvTlwRyUawIKDjs1wn5pk2o8g0Cylg==";
       };
     };
     "faye-websocket-0.10.0" = {
@@ -29771,6 +29888,15 @@ let
         sha512 = "78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==";
       };
     };
+    "find-up-6.3.0" = {
+      name = "find-up";
+      packageName = "find-up";
+      version = "6.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz";
+        sha512 = "v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==";
+      };
+    };
     "find-versions-3.2.0" = {
       name = "find-versions";
       packageName = "find-versions";
@@ -29996,13 +30122,13 @@ let
         sha512 = "d+9na7t9FyH8gBJoNDSi28mE4NgQVGGvxQ4aHtFRetjyh5SXjuus+V5EZaxFmFdXVemSOrx0lsgEl/ZMjnOWJA==";
       };
     };
-    "flow-parser-0.179.0" = {
+    "flow-parser-0.180.0" = {
       name = "flow-parser";
       packageName = "flow-parser";
-      version = "0.179.0";
+      version = "0.180.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.179.0.tgz";
-        sha512 = "M4dEgnvsGFa1lUTK05RFW+cwle8tkTHioFm6gGWdeGpDJjjhmvyaN8vLIqb8sAHI05TQxARsnUC3U2chzQP1Dw==";
+        url = "https://registry.npmjs.org/flow-parser/-/flow-parser-0.180.0.tgz";
+        sha512 = "kkzsuGAhckWgn/G+JfCyEa6BYslGrjlH4CJL0LZhdn9of9ukvi7SzVQSFsrEhuhh/zQUghfUEoaeZy1wjQXpUg==";
       };
     };
     "fluent-ffmpeg-2.1.2" = {
@@ -30383,13 +30509,13 @@ let
         sha512 = "wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==";
       };
     };
-    "formdata-node-4.3.2" = {
+    "formdata-node-4.3.3" = {
       name = "formdata-node";
       packageName = "formdata-node";
-      version = "4.3.2";
+      version = "4.3.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.2.tgz";
-        sha512 = "k7lYJyzDOSL6h917favP8j1L0/wNyylzU+x+1w4p5haGVHNlP58dbpdJhiCUsDbWsa9HwEtLp89obQgXl2e0qg==";
+        url = "https://registry.npmjs.org/formdata-node/-/formdata-node-4.3.3.tgz";
+        sha512 = "coTew7WODO2vF+XhpUdmYz4UBvlsiTMSNaFYZlrXIqYbFd4W7bMwnoALNLE6uvNgzTg2j1JDF0ZImEfF06VPAA==";
       };
     };
     "formdata-polyfill-4.0.10" = {
@@ -30428,6 +30554,15 @@ let
         sha512 = "KcpbcpuLNOwrEjnbpMC0gS+X8ciDoZE1kkqzat4a8vrprf+s9pKNQ/QIwWfbfs4ltgmFl3MD177SNTkve3BwGQ==";
       };
     };
+    "formidable-2.0.1" = {
+      name = "formidable";
+      packageName = "formidable";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/formidable/-/formidable-2.0.1.tgz";
+        sha512 = "rjTMNbp2BpfQShhFbR3Ruk3qk2y9jKpvMW78nJgx8QKtxjDVrwbZG+wvDOmVbifHyOUOQJXxqEy6r0faRrPzTQ==";
+      };
+    };
     "forwarded-0.1.2" = {
       name = "forwarded";
       packageName = "forwarded";
@@ -30887,6 +31022,15 @@ let
         sha512 = "xNDktvwzSsXT8Xqnpz59VbuFwGHhtn1w+dS7QQ+wAu5cbH0p3WMGKU9Duf7cPna+nubhR+5ZG1MTl6/V6xgRgw==";
       };
     };
+    "fswin-3.22.106" = {
+      name = "fswin";
+      packageName = "fswin";
+      version = "3.22.106";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/fswin/-/fswin-3.22.106.tgz";
+        sha512 = "j/fa7L2fiwEZkyLHRVecd2d5iZAvFUIS8VcvqaSN1SQe5WlL9xfQT4wZFUl8YafH9vTGZlNohJyI3p/Hrtu1WQ==";
+      };
+    };
     "ftp-0.3.10" = {
       name = "ftp";
       packageName = "ftp";
@@ -30995,6 +31139,15 @@ let
         sha512 = "mDc8EQJKtxjp9PMYS3PbpjjbX3oXhBTxoGaPahw620XZBIHJ4+nvw5KN/tRtmmSDR9dypstGNvqQ3C29QGoGHQ==";
       };
     };
+    "gar-1.0.4" = {
+      name = "gar";
+      packageName = "gar";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gar/-/gar-1.0.4.tgz";
+        sha512 = "w4n9cPWyP7aHxKxYHFQMegj7WIAsL/YX/C4Bs5Rr8s1H9M1rNtRWRsw+ovYMkXDQ5S4ZbYHsHAPmevPjPgw44w==";
+      };
+    };
     "gatsby-core-utils-3.16.0" = {
       name = "gatsby-core-utils";
       packageName = "gatsby-core-utils";
@@ -31067,6 +31220,15 @@ let
         sha512 = "gSaYYIO1Y3wUtdfHmjDUZ8LWaxJQpiavzbF5Kq53akSzvmVg0RfyOcFDbO1KJ/KCGRFz2qG+lS81F0nkr7cRJA==";
       };
     };
+    "gaxios-5.0.0" = {
+      name = "gaxios";
+      packageName = "gaxios";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gaxios/-/gaxios-5.0.0.tgz";
+        sha512 = "VD/yc5ln6XU8Ch1hyYY6kRMBE0Yc2np3fPyeJeYHhrPs1i8rgnsApPMWyrugkl7LLoSqpOJVBWlQIa87OAvt8Q==";
+      };
+    };
     "gaze-1.1.3" = {
       name = "gaze";
       packageName = "gaze";
@@ -31094,6 +31256,15 @@ let
         sha512 = "x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A==";
       };
     };
+    "gcp-metadata-5.0.0" = {
+      name = "gcp-metadata";
+      packageName = "gcp-metadata";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-5.0.0.tgz";
+        sha512 = "gfwuX3yA3nNsHSWUL4KG90UulNiq922Ukj3wLTrcnX33BB7PwB1o0ubR8KVvXu9nJH+P5w1j2SQSNNqto+H0DA==";
+      };
+    };
     "gelf-stream-1.1.1" = {
       name = "gelf-stream";
       packageName = "gelf-stream";
@@ -31202,6 +31373,15 @@ let
         sha512 = "DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==";
       };
     };
+    "get-folder-size-2.0.1" = {
+      name = "get-folder-size";
+      packageName = "get-folder-size";
+      version = "2.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/get-folder-size/-/get-folder-size-2.0.1.tgz";
+        sha512 = "+CEb+GDCM7tkOS2wdMKTn9vU7DgnKUTuDlehkNJKNSovdCOVxs14OfKCk4cvSaR3za4gj+OBdl9opPN9xrJ0zA==";
+      };
+    };
     "get-func-name-2.0.0" = {
       name = "get-func-name";
       packageName = "get-func-name";
@@ -32103,13 +32283,13 @@ let
         sha512 = "wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==";
       };
     };
-    "globby-13.1.1" = {
+    "globby-13.1.2" = {
       name = "globby";
       packageName = "globby";
-      version = "13.1.1";
+      version = "13.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/globby/-/globby-13.1.1.tgz";
-        sha512 = "XMzoDZbGZ37tufiv7g0N4F/zp3zkwdFtVbV3EHsVl1KQr4RPLfNoT068/97RPshz2J5xYNEjLKKBKaGHifBd3Q==";
+        url = "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz";
+        sha512 = "LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==";
       };
     };
     "globby-4.1.0" = {
@@ -32193,22 +32373,22 @@ let
         sha512 = "wYGVAa8/sh9ggF5qWoOs6eArcAgwEPkDNvf637jHRHkMUznvs7m/Q2vrc0KLN6B8px3nnRJqJcXK4mTK6lLFmg==";
       };
     };
-    "goldengate-11.2.1" = {
+    "goldengate-11.2.2" = {
       name = "goldengate";
       packageName = "goldengate";
-      version = "11.2.1";
+      version = "11.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.2.1.tgz";
-        sha512 = "v0REhYrm8fUJMvDAGzYhymB3R9BqTEulUcD740zNEsH2umNc9Jv+RI4sXGygIXUtUi9FSlBrO4udVerBoRMBLQ==";
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.2.2.tgz";
+        sha512 = "/KNzppPCD5wjIeGPfoCsehgF9bArdssaQ0TVBy/rt8aYUuuuvFNmi1+0GsTKYBDRohFtlbv/1h3RG7OqEzY8XQ==";
       };
     };
-    "goldengate-11.2.2" = {
+    "goldengate-11.2.3" = {
       name = "goldengate";
       packageName = "goldengate";
-      version = "11.2.2";
+      version = "11.2.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.2.2.tgz";
-        sha512 = "/KNzppPCD5wjIeGPfoCsehgF9bArdssaQ0TVBy/rt8aYUuuuvFNmi1+0GsTKYBDRohFtlbv/1h3RG7OqEzY8XQ==";
+        url = "https://registry.npmjs.org/goldengate/-/goldengate-11.2.3.tgz";
+        sha512 = "V09p/DRD2q51vK3HJgPjWRTw3FFhMkb2E2flizWaE9oZmetFpXrxcp8be1pVbzWZrDykj2FMc68K0GeerO6KsQ==";
       };
     };
     "gonzales-pe-4.3.0" = {
@@ -32229,13 +32409,22 @@ let
         sha512 = "5Rk7iLNDFhFeBYc3s8l1CqzbEBcdhwR193RlD4vSNFajIcINKI8W8P0JLmBpwymHqqWbX34pJDQu39cSy/6RsA==";
       };
     };
-    "google-gax-2.30.3" = {
+    "google-auth-library-8.0.2" = {
+      name = "google-auth-library";
+      packageName = "google-auth-library";
+      version = "8.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/google-auth-library/-/google-auth-library-8.0.2.tgz";
+        sha512 = "HoG+nWFAThLovKpvcbYzxgn+nBJPTfAwtq0GxPN821nOO+21+8oP7MoEHfd1sbDulUFFGfcjJr2CnJ4YssHcyg==";
+      };
+    };
+    "google-gax-3.1.1" = {
       name = "google-gax";
       packageName = "google-gax";
-      version = "2.30.3";
+      version = "3.1.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/google-gax/-/google-gax-2.30.3.tgz";
-        sha512 = "Zsd6hbJBMvAcJS3cYpAsmupvfsxygFR2meUZJcGeR7iUqYHCR/1Hf2aQNB9srrlXQMm91pNiUvW0Kz6Qld8QkA==";
+        url = "https://registry.npmjs.org/google-gax/-/google-gax-3.1.1.tgz";
+        sha512 = "lLiv6s3Ax5i0Iqy/crHrIZuaU1AYZvTj/F8DCcdJvmDWDsFSVSh+KkCEkKGd7PHck3dVB58NnbC4FIiRpTq4WQ==";
       };
     };
     "google-p12-pem-3.1.4" = {
@@ -32562,13 +32751,13 @@ let
         sha512 = "bVddVO8YFJPwuACn+3pgmrEg6I8iBuYLuwvxiE+lcQQ7POotVZxm2rgGw0PvVYmWWf3DT7nTVDZ5ROh/ALp8mA==";
       };
     };
-    "graphql-language-service-5.0.4" = {
+    "graphql-language-service-5.0.6" = {
       name = "graphql-language-service";
       packageName = "graphql-language-service";
-      version = "5.0.4";
+      version = "5.0.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.4.tgz";
-        sha512 = "lX+ahYBwvTHJe1N7JqA08moNwbr0RWaFILxVnbciaaeb469TTIhQi87ZgVJ/y9Szre4d0r3vjIt2EstwafzcDA==";
+        url = "https://registry.npmjs.org/graphql-language-service/-/graphql-language-service-5.0.6.tgz";
+        sha512 = "FjE23aTy45Lr5metxCv3ZgSKEZOzN7ERR+OFC1isV5mHxI0Ob8XxayLTYjQKrs8b3kOpvgTYmSmu6AyXOzYslg==";
       };
     };
     "graphql-language-service-interface-2.10.2" = {
@@ -32589,13 +32778,13 @@ let
         sha512 = "duDE+0aeKLFVrb9Kf28U84ZEHhHcvTjWIT6dJbIAQJWBaDoht0D4BK9EIhd94I3DtKRc1JCJb2+70y1lvP/hiA==";
       };
     };
-    "graphql-language-service-server-2.7.25" = {
+    "graphql-language-service-server-2.7.27" = {
       name = "graphql-language-service-server";
       packageName = "graphql-language-service-server";
-      version = "2.7.25";
+      version = "2.7.27";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-language-service-server/-/graphql-language-service-server-2.7.25.tgz";
-        sha512 = "6P9JXW/qYkrBpCQo5+lBP3CvMaSrs2WldNVChYLY2QJVWIEIgb+AZuQy/GCRqqMoW83sCoJPd5vpkNfYtLaF9A==";
+        url = "https://registry.npmjs.org/graphql-language-service-server/-/graphql-language-service-server-2.7.27.tgz";
+        sha512 = "ogHYC4xrOx6cTmJ7M0e/JbNljjP5kRGzof8aIzGrnOxPA53qG9XqUJEu8kKiEhiVh+AkUt2/mpr733xJcjP5kw==";
       };
     };
     "graphql-language-service-types-1.8.7" = {
@@ -32625,6 +32814,15 @@ let
         sha512 = "Wci5MbrQj+6d7rfvbORrA9uDlfMysBWYaG49ST5TKylNaXYFf3ixFOa74iM1KtM9eidosUbI3E1JlWi0JaidJA==";
       };
     };
+    "graphql-request-3.4.0" = {
+      name = "graphql-request";
+      packageName = "graphql-request";
+      version = "3.4.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/graphql-request/-/graphql-request-3.4.0.tgz";
+        sha512 = "acrTzidSlwAj8wBNO7Q/UQHS8T+z5qRGquCQRv9J1InwR01BBWV9ObnoE+JS5nCCEj8wSGS0yrDXVDoRiKZuOg==";
+      };
+    };
     "graphql-subscriptions-1.2.1" = {
       name = "graphql-subscriptions";
       packageName = "graphql-subscriptions";
@@ -32679,13 +32877,13 @@ let
         sha512 = "sHkK9+lUm20/BGawNEWNtVAeJzhZeBg21VmvmLoT5NdGVeZWv5PdIhkcayQIAgjSyyQ17WMKmbDijIPG2On+Ag==";
       };
     };
-    "graphql-ws-5.8.2" = {
+    "graphql-ws-5.9.0" = {
       name = "graphql-ws";
       packageName = "graphql-ws";
-      version = "5.8.2";
+      version = "5.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.8.2.tgz";
-        sha512 = "hYo8kTGzxePFJtMGC7Y4cbypwifMphIJJ7n4TDcVUAfviRwQBnmZAbfZlC+XFwWDUaR7raEDQPxWctpccmE0JQ==";
+        url = "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.9.0.tgz";
+        sha512 = "CXv0l0nI1bgChwl4Rm+BqNOAKwL/C9T2N8RfmTkhQ38YLFdUXCi2WNW4oFp8BJP+t75nCLzjHHgR04sP1oF02w==";
       };
     };
     "gray-matter-4.0.3" = {
@@ -33660,6 +33858,24 @@ let
         sha512 = "dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg==";
       };
     };
+    "hexoid-1.0.0" = {
+      name = "hexoid";
+      packageName = "hexoid";
+      version = "1.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hexoid/-/hexoid-1.0.0.tgz";
+        sha512 = "QFLV0taWQOZtvIRIAdBChesmogZrtuXvVWsFHZTk2SU+anspqZ2vMnoLg7IE1+Uk16N19APic1BuF8bC8c2m5g==";
+      };
+    };
+    "hidefile-3.0.0" = {
+      name = "hidefile";
+      packageName = "hidefile";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/hidefile/-/hidefile-3.0.0.tgz";
+        sha512 = "AvJ9joE59PQPGOB78smS63K60KKpTK5GBIagupfK9Hw6zpA0JKba2D9uAnDycaI8/bN30ltHWGZVXIkQ4BU6oA==";
+      };
+    };
     "highlight.js-10.7.3" = {
       name = "highlight.js";
       packageName = "highlight.js";
@@ -35244,6 +35460,15 @@ let
         sha512 = "JiTuIvVyPaUg11eTrNDx5bgQ/yMKMZffc7YSjvQeSMXy58DO2SQ8BtAf3xteZvmzvjYh14wnqNjL8XVeDy2o9A==";
       };
     };
+    "import-meta-resolve-2.0.3" = {
+      name = "import-meta-resolve";
+      packageName = "import-meta-resolve";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/import-meta-resolve/-/import-meta-resolve-2.0.3.tgz";
+        sha512 = "fpAppnBpZ3ymQ/dPP97TNsco1HB5+V9SYJ3chY50PP8xn4U/w+Y6ovWBmTImB/prmGsTjzPh8pQYY+EVBlr9mw==";
+      };
+    };
     "imurmurhash-0.1.4" = {
       name = "imurmurhash";
       packageName = "imurmurhash";
@@ -35766,13 +35991,13 @@ let
         sha512 = "MAQUJuIo7Xqk8EVNP+6d3CKq9c80hi4tjIbIAT6lmGW9W6WzlHiu9PS8uSuUYU+Do+j1baiFp3H25XEVxDIG2g==";
       };
     };
-    "install-artifact-from-github-1.3.0" = {
+    "install-artifact-from-github-1.3.1" = {
       name = "install-artifact-from-github";
       packageName = "install-artifact-from-github";
-      version = "1.3.0";
+      version = "1.3.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.0.tgz";
-        sha512 = "iT8v1GwOAX0pPXifF/5ihnMhHOCo3OeK7z3TQa4CtSNCIg8k0UxqBEk9jRwz8OP68hHXvJ2gxRa89KYHtBkqGA==";
+        url = "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.3.1.tgz";
+        sha512 = "3l3Bymg2eKDsN5wQuMfgGEj2x6l5MCAv0zPL6rxHESufFVlEAKW/6oY9F1aGgvY/EgWm5+eWGRjINveL4X7Hgg==";
       };
     };
     "int53-1.0.0" = {
@@ -35955,24 +36180,6 @@ let
         sha512 = "CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw==";
       };
     };
-    "invoices-2.0.4" = {
-      name = "invoices";
-      packageName = "invoices";
-      version = "2.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.4.tgz";
-        sha512 = "+Np4KWjNSlYm7Qp12zkRN5eu9tkA7FAFIP60bmpbMbwQbgz5gV9go3bkY8CpGj+Z1zifw5N8U+pH+wko/XSjpw==";
-      };
-    };
-    "invoices-2.0.5" = {
-      name = "invoices";
-      packageName = "invoices";
-      version = "2.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/invoices/-/invoices-2.0.5.tgz";
-        sha512 = "097isfZK3qaDJXQOEqTr3IfnrFZnGCAsbyqWNHAESdG12vBC39dprZWFwPLtnv7I8exhJG6WFFlaC51qaJan/w==";
-      };
-    };
     "invoices-2.0.6" = {
       name = "invoices";
       packageName = "invoices";
@@ -35991,6 +36198,15 @@ let
         sha512 = "2kpjok/83zOTnb4tbV+RbJz7LuGVzj/GZ+jwsC7FxMqwLAf4Sf6OESNM3uuamX9oeFRo44Vip3wn1aX+9D2m8w==";
       };
     };
+    "io-ts-2.2.16" = {
+      name = "io-ts";
+      packageName = "io-ts";
+      version = "2.2.16";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/io-ts/-/io-ts-2.2.16.tgz";
+        sha512 = "y5TTSa6VP6le0hhmIyN0dqEXkrZeJLeC5KApJq6VLci3UEKF80lZ+KuoUs02RhBxNWlrqSNxzfI7otLX1Euv8Q==";
+      };
+    };
     "iota-array-1.0.0" = {
       name = "iota-array";
       packageName = "iota-array";
@@ -37188,13 +37404,13 @@ let
         sha512 = "gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==";
       };
     };
-    "is-plain-obj-4.0.0" = {
+    "is-plain-obj-4.1.0" = {
       name = "is-plain-obj";
       packageName = "is-plain-obj";
-      version = "4.0.0";
+      version = "4.1.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz";
-        sha512 = "NXRbBtUdBioI73y/HmOhogw/U5msYPC9DAtGkJXeFcFWSFZw0mCUsPxk/snTuJHzNKA8kLBK4rH97RMB1BfCXw==";
+        url = "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz";
+        sha512 = "+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==";
       };
     };
     "is-plain-object-2.0.4" = {
@@ -37296,13 +37512,13 @@ let
         sha512 = "eCTBKm9K6nO3H1S3BrJBAqZJIVXKNdwDuGl6KHf1bnf/bn02BvEe+l+MypjsxbqZ7mt5oMhu+bS/mm7G2FRW3A==";
       };
     };
-    "is-reachable-5.2.0" = {
+    "is-reachable-5.2.1" = {
       name = "is-reachable";
       packageName = "is-reachable";
-      version = "5.2.0";
+      version = "5.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/is-reachable/-/is-reachable-5.2.0.tgz";
-        sha512 = "x9rn66RltP1CDAdk00y6hG7kgVTTYvQwcIp8s8ug6d4M1EdhvNwi19YmSJwfVfHtlFViMI8anKHX52SgQKJuRQ==";
+        url = "https://registry.npmjs.org/is-reachable/-/is-reachable-5.2.1.tgz";
+        sha512 = "ViPrrlmt9FTTclYbz6mL/PFyF1TXSpJ9y/zw9QMVJxbhU/7DFkvk/5cTv7S0sXtqbJj32zZ+jKpNAjrYTUZBPQ==";
       };
     };
     "is-redirect-1.0.0" = {
@@ -38584,49 +38800,49 @@ let
         sha512 = "xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==";
       };
     };
-    "jsii-1.60.0" = {
+    "jsii-1.61.0" = {
       name = "jsii";
       packageName = "jsii";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii/-/jsii-1.60.0.tgz";
-        sha512 = "ENCBJLXNu20jkjHuoBYgklQuSOYwqtlZ9VyN6mDAUeWkDDLme+L/iuSF6qW+mwgtTTsYfVft/QdgzgwlLWOImw==";
+        url = "https://registry.npmjs.org/jsii/-/jsii-1.61.0.tgz";
+        sha512 = "haGNRe3k0bhTqUKjMQ/ZBq9H3BR7gB88+wSdvCzQ9IIN6XJNeTB9SvB5ry9XIwn6qk8THF7LXtaLga9Nzz+gFA==";
       };
     };
-    "jsii-pacmak-1.60.0" = {
+    "jsii-pacmak-1.61.0" = {
       name = "jsii-pacmak";
       packageName = "jsii-pacmak";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.60.0.tgz";
-        sha512 = "u/3mijXjtcKwCgxoTpCyuTA6gEPiKklEAuaZy1+ujMy6Nv01k833BgFjt2BPt6KCLUcG4wHh8FvpcJHeExCkcw==";
+        url = "https://registry.npmjs.org/jsii-pacmak/-/jsii-pacmak-1.61.0.tgz";
+        sha512 = "XFrUx19TZcP+NBO29P5Q/fegRURXs4UaH8l2+/OITn1PXGOhEq/eCA6TDpdrLXtyt6ebkrLemsrDd0ZW4d0Qvg==";
       };
     };
-    "jsii-reflect-1.60.0" = {
+    "jsii-reflect-1.61.0" = {
       name = "jsii-reflect";
       packageName = "jsii-reflect";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.60.0.tgz";
-        sha512 = "ag717vfGQyVJ1qRUZoUQRoHoc9vVDABMBL1wbDP2bUkZ+rNMi1mc1NHpx90tipUCdQhH1KoQgWxMKs/29tQSkw==";
+        url = "https://registry.npmjs.org/jsii-reflect/-/jsii-reflect-1.61.0.tgz";
+        sha512 = "nqBylNBqJJoTJR9TpywW5i55zaOWlNxJTHSWyVYJnrp5ZuYI2R0+nMUxux1hT0Zbd77KbRHXeSByW1aQ6Mfi/A==";
       };
     };
-    "jsii-rosetta-1.60.0" = {
+    "jsii-rosetta-1.61.0" = {
       name = "jsii-rosetta";
       packageName = "jsii-rosetta";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.60.0.tgz";
-        sha512 = "yop9TSoogHCin2qp8CWejPLUj+A1ourTw38wE4gS0qrLPkc9xKlnpJzSlBYvSU0q8RRJzbpUnB3rtT/AxShBvg==";
+        url = "https://registry.npmjs.org/jsii-rosetta/-/jsii-rosetta-1.61.0.tgz";
+        sha512 = "n8y3er0nOchLo17Wh0/yVmCDGNuwlhccp/Liwvl0ewf0hYMC5vICjWTIdCetsRoQQIOuc4pOmMNomldTTlPUUw==";
       };
     };
-    "jsii-srcmak-0.1.585" = {
+    "jsii-srcmak-0.1.594" = {
       name = "jsii-srcmak";
       packageName = "jsii-srcmak";
-      version = "0.1.585";
+      version = "0.1.594";
       src = fetchurl {
-        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.585.tgz";
-        sha512 = "fIRDu6BL33+uKA4K2kfHCkbHo10mPXFd5OlqqGqQd7DR+sgshmkuM857szoo5bjbvLIp8f/iTwXevkecT7/JyA==";
+        url = "https://registry.npmjs.org/jsii-srcmak/-/jsii-srcmak-0.1.594.tgz";
+        sha512 = "futPwZ5HCDisZo2+Ke42jD+B3UZmLWnRNYdBdtUZWWV6LNZBRVfT2F866r5TjmBxlwmYOqQSfbArGAbxYdVK6Q==";
       };
     };
     "json-bigint-1.0.0" = {
@@ -38674,13 +38890,13 @@ let
         sha512 = "FD/SedD78LCdSvJaOUQAXseT8oQBb5z6IVYaQaCrVUlu9zOAr1BDdKyVYQaSD/GDsAMrXpKcOyBD4LIl8nfjHw==";
       };
     };
-    "json-merge-patch-0.2.3" = {
+    "json-merge-patch-1.0.2" = {
       name = "json-merge-patch";
       packageName = "json-merge-patch";
-      version = "0.2.3";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json-merge-patch/-/json-merge-patch-0.2.3.tgz";
-        sha512 = "mjd5eObNGOhWkKCztwVuF25KOzLj2T4TJaWXLBgCQPeoPRJrMxKNgjNBE8sPmXoWRT0WDlo4Itd/gTlFh29TFw==";
+        url = "https://registry.npmjs.org/json-merge-patch/-/json-merge-patch-1.0.2.tgz";
+        sha512 = "M6Vp2GN9L7cfuMXiWOmHj9bEFbeC250iVtcKQbqVgEsDVYnIsrNsbU+h/Y/PkbBQCtEa4Bez+Ebv0zfbC8ObLg==";
       };
     };
     "json-parse-better-errors-1.0.2" = {
@@ -38809,6 +39025,24 @@ let
         sha512 = "3WLSHCaFrOUn+rEjG93liWFlZegUhpBE2LAAbcVtvuBwcy7jzoLlLa2TxvSaglTJjc/jRt9L2ESJqZk3ch7mVw==";
       };
     };
+    "json-schema-ref-parser-9.0.9" = {
+      name = "json-schema-ref-parser";
+      packageName = "json-schema-ref-parser";
+      version = "9.0.9";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-9.0.9.tgz";
+        sha512 = "qcP2lmGy+JUoQJ4DOQeLaZDqH9qSkeGCK3suKWxJXS82dg728Mn3j97azDMaOUmJAN4uCq91LdPx4K7E8F1a7Q==";
+      };
+    };
+    "json-schema-to-typescript-9.1.1" = {
+      name = "json-schema-to-typescript";
+      packageName = "json-schema-to-typescript";
+      version = "9.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/json-schema-to-typescript/-/json-schema-to-typescript-9.1.1.tgz";
+        sha512 = "VrdxmwQROjPBRlHxXwGUa2xzhOMPiNZIVsxZrZjMYtbI7suRFMiEktqaD/gqhfSya7Djy+x8dnJT+H0/0sZO0Q==";
+      };
+    };
     "json-schema-traverse-0.3.1" = {
       name = "json-schema-traverse";
       packageName = "json-schema-traverse";
@@ -38917,13 +39151,13 @@ let
         sha512 = "YRZbUnyaJZLZUJSRi2G/MqahCyRv9n/ds+4oIetjDF3jWQA7AG7iSeKTiZiCNqtMZM7HDyt0e/W6lEnoGEmMGA==";
       };
     };
-    "json2jsii-0.3.35" = {
+    "json2jsii-0.3.44" = {
       name = "json2jsii";
       packageName = "json2jsii";
-      version = "0.3.35";
+      version = "0.3.44";
       src = fetchurl {
-        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.3.35.tgz";
-        sha512 = "vXuWVcdHCTiUQ8LdGRFupx99WOwNCKVrh/JAvlF/s3um3NjUPTnBpVyI5IJuPqXF2ZOYHzTmD7B2EjPxaJ7/zQ==";
+        url = "https://registry.npmjs.org/json2jsii/-/json2jsii-0.3.44.tgz";
+        sha512 = "u8accT4U0SYI1rAjDJNlmnvM73EH7kqI+jprMk6L5212y0zQUzeqdgmKfbqv19d+H3A3PE+wLhk2tT1lVfvvCg==";
       };
     };
     "json3-3.2.6" = {
@@ -39475,15 +39709,6 @@ let
         sha512 = "hRkd6/XW4HTsA9vjVpY9tuXJYLSlelnkTmVFu4M9/7MIYQtFcHpbugAU7UbOfjOiVSVYl2fqgBuJ32JUmRo5Ew==";
       };
     };
-    "keccak-3.0.1" = {
-      name = "keccak";
-      packageName = "keccak";
-      version = "3.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/keccak/-/keccak-3.0.1.tgz";
-        sha512 = "epq90L9jlFWCW7+pQa6JOnKn2Xgl2mtI664seYR6MHskvI9agt7AnDqmAlp9TqU4/caMYbA08Hi5DMZAl5zdkA==";
-      };
-    };
     "keccak-3.0.2" = {
       name = "keccak";
       packageName = "keccak";
@@ -39988,6 +40213,33 @@ let
         sha512 = "/M7AX/6xktZY60KE7j71XLrj9U6H5TBoP+mJzhYB3fcdAq8rcazit/K0qWiu1jvytUPXP4lJRd1VJFwvdMQ/uw==";
       };
     };
+    "launchdarkly-eventsource-1.4.3" = {
+      name = "launchdarkly-eventsource";
+      packageName = "launchdarkly-eventsource";
+      version = "1.4.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/launchdarkly-eventsource/-/launchdarkly-eventsource-1.4.3.tgz";
+        sha512 = "taeidSNMbF4AuUXjoFStT5CSTknicaKqu+0vrw7gYEMrpQgG74BEzlS0BGYmxW20JdGm2gpm7jtZ542ZG/h8tA==";
+      };
+    };
+    "launchdarkly-js-sdk-common-4.1.0" = {
+      name = "launchdarkly-js-sdk-common";
+      packageName = "launchdarkly-js-sdk-common";
+      version = "4.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/launchdarkly-js-sdk-common/-/launchdarkly-js-sdk-common-4.1.0.tgz";
+        sha512 = "vgHcYcXsFYewBOcuMR1eO3gSaOEaaHab16Yz35UDk2r4gO/HzMjfmmMEWZIu5v4tMtcO8Loy+SnjyaPFYOJ31Q==";
+      };
+    };
+    "launchdarkly-node-client-sdk-2.0.4" = {
+      name = "launchdarkly-node-client-sdk";
+      packageName = "launchdarkly-node-client-sdk";
+      version = "2.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/launchdarkly-node-client-sdk/-/launchdarkly-node-client-sdk-2.0.4.tgz";
+        sha512 = "s1kfn0aBDuLmjnII6fij+KyR/l4v1zsypS60bA0YP+wvPYDBbLF1KrV2udkSq5dctt2UopoAf6Z00DEZ2BSMng==";
+      };
+    };
     "layered-graph-1.1.3" = {
       name = "layered-graph";
       packageName = "layered-graph";
@@ -40186,15 +40438,6 @@ let
         sha512 = "OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==";
       };
     };
-    "level-concat-iterator-3.1.0" = {
-      name = "level-concat-iterator";
-      packageName = "level-concat-iterator";
-      version = "3.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-3.1.0.tgz";
-        sha512 = "BWRCMHBxbIqPxJ8vHOvKUsaO0v1sLYZtjN3K2iZJsRBYtp+ONsY6Jfi6hy9K3+zolgQRryhIn2NRZjZnWJ9NmQ==";
-      };
-    };
     "level-errors-2.0.1" = {
       name = "level-errors";
       packageName = "level-errors";
@@ -40267,15 +40510,6 @@ let
         sha512 = "rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==";
       };
     };
-    "level-supports-2.1.0" = {
-      name = "level-supports";
-      packageName = "level-supports";
-      version = "2.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/level-supports/-/level-supports-2.1.0.tgz";
-        sha512 = "E486g1NCjW5cF78KGPrMDRBYzPuueMZ6VBXHT6gC7A8UYWGiM14fGgp+s/L1oFfDWSPV/+SFkYCmZ0SiESkRKA==";
-      };
-    };
     "leveldown-5.6.0" = {
       name = "leveldown";
       packageName = "leveldown";
@@ -40285,15 +40519,6 @@ let
         sha512 = "iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==";
       };
     };
-    "leveldown-6.1.0" = {
-      name = "leveldown";
-      packageName = "leveldown";
-      version = "6.1.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/leveldown/-/leveldown-6.1.0.tgz";
-        sha512 = "8C7oJDT44JXxh04aSSsfcMI8YiaGRhOFI9/pMEL7nWJLVsWajDPTRxsSHTM2WcTVY5nXM+SuRHzPPi0GbnDX+w==";
-      };
-    };
     "levelup-4.4.0" = {
       name = "levelup";
       packageName = "levelup";
@@ -40474,24 +40699,6 @@ let
         sha512 = "BbqAKApLb9ywUli+0a+PcV04SyJ/N1q/8qgCNe6U97KbPCS1BTksEuHFLYdvc8DltuhfxIUBqDZsC0bBGtl3lA==";
       };
     };
-    "lightning-5.10.1" = {
-      name = "lightning";
-      packageName = "lightning";
-      version = "5.10.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.10.1.tgz";
-        sha512 = "dIrN4vPzmzq9DaMD6c+9DqQwJCMl1lOleWrhIrv+HIpzq6rdNJvUXaVJOFz1OV8P3zy2Q3+s9VxnzeN70ee+ow==";
-      };
-    };
-    "lightning-5.14.0" = {
-      name = "lightning";
-      packageName = "lightning";
-      version = "5.14.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.14.0.tgz";
-        sha512 = "T8NGH6F+t4sajEbC3CT2MbjqGyzTu0fH/X/UnnO8YlKoSUlU3Y9LFkmQDjMyDkxWN+peJmUQt8Em+OZu5XHLaw==";
-      };
-    };
     "lightning-5.16.0" = {
       name = "lightning";
       packageName = "lightning";
@@ -40510,22 +40717,13 @@ let
         sha512 = "7wXInrGwrAPgu+/yOagxsGkYFArby57mpTyHzgVIo6H9U9ajdQPHuS17VrbyGH3cjldp6Aw+rawwaVqqq8GRAg==";
       };
     };
-    "lightning-5.16.2" = {
-      name = "lightning";
-      packageName = "lightning";
-      version = "5.16.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.16.2.tgz";
-        sha512 = "qKbf39l3k4xoY8ia0uDOvUkw8Zm3hlfiSrZasVdELlo4TJvrfZmHF5YadlWHdYFz9zFEeF4jINL3KQKGcYwliQ==";
-      };
-    };
-    "lightning-5.9.0" = {
+    "lightning-5.16.3" = {
       name = "lightning";
       packageName = "lightning";
-      version = "5.9.0";
+      version = "5.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/lightning/-/lightning-5.9.0.tgz";
-        sha512 = "o084Z7QAUaxR7+nLgr+DlL2XiMJGHDq/SRhKcanP10qR0irTK1oSHDyaFmrwz33y5V/d6Tla+5yjdD217LMWAA==";
+        url = "https://registry.npmjs.org/lightning/-/lightning-5.16.3.tgz";
+        sha512 = "ghban3KbqkbzahwIp4NAtuhc8xIurVcCXAd7tV6qGkFYKZAy9loIvFrhZqoWF4A4jnaKbRnJPCaxzJ8JwPl3EA==";
       };
     };
     "lilconfig-2.0.5" = {
@@ -40717,6 +40915,15 @@ let
         sha512 = "GtH+nStn9V59CfYeQ5ddx6YTfuFCmu86UJojIjJAweG+/Fm0PDknuk3ovgYDtY/foMeMdZa8/P7oSljW/d5UPw==";
       };
     };
+    "lmdb-2.5.2" = {
+      name = "lmdb";
+      packageName = "lmdb";
+      version = "2.5.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/lmdb/-/lmdb-2.5.2.tgz";
+        sha512 = "V5V5Xa2Hp9i2XsbDALkBTeHXnBXh/lEmk9p22zdr7jtuOIY9TGhjK6vAvTpOOx9IKU4hJkRWZxn/HsvR1ELLtA==";
+      };
+    };
     "lmdb-darwin-arm64-2.3.10" = {
       name = "lmdb-darwin-arm64";
       packageName = "lmdb-darwin-arm64";
@@ -40780,33 +40987,6 @@ let
         sha512 = "yO8stbm3Ewd/EfO56a1FnV4pR4bjvwHG8ZilDryQMpHFSBu6ChLZ+r5wUe4uvH9gb963fQcy+N6vdeZPloYJsQ==";
       };
     };
-    "ln-service-53.10.0" = {
-      name = "ln-service";
-      packageName = "ln-service";
-      version = "53.10.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.10.0.tgz";
-        sha512 = "YXpywZVf/oSWiuntp5v6IRPYNCCMlsGkWkFsX4eygnXqZnKDOaBSgvBHYJ871C0SJuyQD4oN0wazTYD+PhQUGA==";
-      };
-    };
-    "ln-service-53.11.0" = {
-      name = "ln-service";
-      packageName = "ln-service";
-      version = "53.11.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.11.0.tgz";
-        sha512 = "qdsgLRFGdn8+zfSDgbGw584fS2QQromxp4VRXzj9nk3qveTD6IwBjaEhC1xtY73MQCHQ3ALkWVn3aYMoy5erFw==";
-      };
-    };
-    "ln-service-53.15.0" = {
-      name = "ln-service";
-      packageName = "ln-service";
-      version = "53.15.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.15.0.tgz";
-        sha512 = "7WHV5uP0BrnXX3me4OsdaFI8J81LMJRENCREbxR/CQuvLW6rvLe0KlZmuLVBxwVAYKcXc0CcfiZPX0js2+8NKA==";
-      };
-    };
     "ln-service-53.17.0" = {
       name = "ln-service";
       packageName = "ln-service";
@@ -40825,40 +41005,49 @@ let
         sha512 = "zkOFlFFkTotvBkkXwVaoCczGmJlcKgLW+M+/bOayuNk5yg7csKbWir5bKnjLi39i9dHK+ffjeFpX4yYH17B7tA==";
       };
     };
-    "ln-service-53.17.2" = {
+    "ln-service-53.17.3" = {
       name = "ln-service";
       packageName = "ln-service";
-      version = "53.17.2";
+      version = "53.17.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.17.2.tgz";
-        sha512 = "cmPDZUENkwB3Wvef16qvpYgpyEFE8eSpdkf00eMIWgUWqMcw4YYxMYrHlMvq0mELcyzQRmYld5yXUAQdQ43VAw==";
+        url = "https://registry.npmjs.org/ln-service/-/ln-service-53.17.3.tgz";
+        sha512 = "Ulk35FIMF1E+iKgImlYVESWlf9eznhd/ZYw6qycQlcjp686QccKi6Otng8H49JSfc1/kj/ObOuFipP9mtil3Wg==";
       };
     };
-    "ln-sync-3.12.0" = {
+    "ln-sync-3.12.1" = {
       name = "ln-sync";
       packageName = "ln-sync";
-      version = "3.12.0";
+      version = "3.12.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.12.0.tgz";
-        sha512 = "+TFRyMVvUU9jAqRGPiawPY8cGSmfd2bKfofGsH95zTlQ4DeQLYyEPFxzqJZrkmddqdohfuF0XVW9y7+4v4eq5A==";
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.12.1.tgz";
+        sha512 = "Wr1g/H0Vi322P7oLmSksNJxSgDbmyIAuVwSwHbo+tVpDRdJUSw/RxhRquLdFz/8ienXm2S9ylcaI8e21Xh6xJA==";
       };
     };
-    "ln-sync-3.12.1" = {
+    "ln-sync-3.12.2" = {
       name = "ln-sync";
       packageName = "ln-sync";
-      version = "3.12.1";
+      version = "3.12.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.12.1.tgz";
-        sha512 = "Wr1g/H0Vi322P7oLmSksNJxSgDbmyIAuVwSwHbo+tVpDRdJUSw/RxhRquLdFz/8ienXm2S9ylcaI8e21Xh6xJA==";
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.12.2.tgz";
+        sha512 = "Ae6SGG1ItbARuZuUevCp3S/1HiFep7G5UNuSkjsG8ohA4d6VN6RajcEbjsU1SdEtE7oQHJt0p52ye/R3SONDIg==";
+      };
+    };
+    "ln-sync-3.13.0" = {
+      name = "ln-sync";
+      packageName = "ln-sync";
+      version = "3.13.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ln-sync/-/ln-sync-3.13.0.tgz";
+        sha512 = "f5s60wyijcp67gN86VuVSax1xtoc7djwiDLYWIsJPU7uro4F3n8sU76HI1xZxwNL8Q7mMbWEMm/SIeA7ds9yEw==";
       };
     };
-    "ln-telegram-3.22.1" = {
+    "ln-telegram-3.22.2" = {
       name = "ln-telegram";
       packageName = "ln-telegram";
-      version = "3.22.1";
+      version = "3.22.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.22.1.tgz";
-        sha512 = "chYAssyd0UN97gCIoN1WDm4Ymlhs1xGIIsl9F5QHYV/ogpSZPsWHWyDPnQPMNhC3ik27H+LD5R7YjmQj8fEPlA==";
+        url = "https://registry.npmjs.org/ln-telegram/-/ln-telegram-3.22.2.tgz";
+        sha512 = "Vqnx7Pmgbn6ENX5b13P7pK02k29LcFFyOznFsbbI9WFjfmVHskJ6ymIuA7GX+oEy6XgyMA9/nDYh1BQhnPNcgA==";
       };
     };
     "load-bmfont-1.4.1" = {
@@ -40942,6 +41131,15 @@ let
         sha512 = "4kMi+mOSn/TR51pDo4tgxROHfBHXsrcyEYSGHcJ1o6TtRaP2PsRM5EwmYbj1uiLDvbfA/ohwuSWZJzqGiai8Dw==";
       };
     };
+    "load-plugin-5.0.0" = {
+      name = "load-plugin";
+      packageName = "load-plugin";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/load-plugin/-/load-plugin-5.0.0.tgz";
+        sha512 = "jTz8tvC0BTMtof27lTSV5SAOnCRT0Z++k+S3QeQ5CrF8ZAS5L2nhi3euf4ZhJyDkds+nOQGyPcFqdQZ9s8ELkg==";
+      };
+    };
     "load-yaml-file-0.2.0" = {
       name = "load-yaml-file";
       packageName = "load-yaml-file";
@@ -41086,6 +41284,15 @@ let
         sha512 = "iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==";
       };
     };
+    "locate-path-7.1.1" = {
+      name = "locate-path";
+      packageName = "locate-path";
+      version = "7.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/locate-path/-/locate-path-7.1.1.tgz";
+        sha512 = "vJXaRMJgRVD3+cUZs3Mncj2mxpt5mP0EmNOsxRSZRMlbqjvxzDEOIUWXGmavo0ZC9+tNZCBLQ66reA11nbpHZg==";
+      };
+    };
     "lock-1.1.0" = {
       name = "lock";
       packageName = "lock";
@@ -42319,6 +42526,15 @@ let
         sha512 = "VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==";
       };
     };
+    "log-symbols-3.0.0" = {
+      name = "log-symbols";
+      packageName = "log-symbols";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz";
+        sha512 = "dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==";
+      };
+    };
     "log-symbols-4.0.0" = {
       name = "log-symbols";
       packageName = "log-symbols";
@@ -43463,13 +43679,13 @@ let
         sha512 = "ea2eGWOqNxPcXv8dyERdSr/6FmzvWwzjMxpfGB/sbMccXoct+xY+YukPD+QTUZwyvK7BZwcr4m21WBOW41pAkg==";
       };
     };
-    "marked-4.0.16" = {
+    "marked-4.0.17" = {
       name = "marked";
       packageName = "marked";
-      version = "4.0.16";
+      version = "4.0.17";
       src = fetchurl {
-        url = "https://registry.npmjs.org/marked/-/marked-4.0.16.tgz";
-        sha512 = "wahonIQ5Jnyatt2fn8KqF/nIqZM8mh3oRu2+l5EANGMhu6RFjiSG52QNE2eWzFMI94HqYSgN184NurgNG6CztA==";
+        url = "https://registry.npmjs.org/marked/-/marked-4.0.17.tgz";
+        sha512 = "Wfk0ATOK5iPxM4ptrORkFemqroz0ZDxp5MWfYA7H/F+wO17NRWV5Ypxi6p3g2Xmw2bKeiYOl6oVnLHKxBA0VhA==";
       };
     };
     "marked-terminal-5.1.1" = {
@@ -44093,13 +44309,13 @@ let
         sha512 = "HSSOLSVRrsDdui9I6i96dDtG+oAez/4EB2g4cjSrNhgNQ3M+L57/+22NuPdORSoxvOHjIg/xeOE+C0wwF91D2g==";
       };
     };
-    "memfs-3.4.4" = {
+    "memfs-3.4.6" = {
       name = "memfs";
       packageName = "memfs";
-      version = "3.4.4";
+      version = "3.4.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/memfs/-/memfs-3.4.4.tgz";
-        sha512 = "W4gHNUE++1oSJVn8Y68jPXi+mkx3fXR5ITE/Ubz6EQ3xRpCN5k2CQ4AUR8094Z7211F876TyoBACGsIveqgiGA==";
+        url = "https://registry.npmjs.org/memfs/-/memfs-3.4.6.tgz";
+        sha512 = "rH9mjopto6Wkr7RFuH9l9dk3qb2XGOcYKr7xMhaYqfzuJqOqhRrcFvfD7JMuPj6SLmPreh5+6eAuv36NFAU+Mw==";
       };
     };
     "memoize-one-5.2.1" = {
@@ -44354,13 +44570,13 @@ let
         sha512 = "ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==";
       };
     };
-    "mermaid-9.1.1" = {
+    "mermaid-9.1.2" = {
       name = "mermaid";
       packageName = "mermaid";
-      version = "9.1.1";
+      version = "9.1.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/mermaid/-/mermaid-9.1.1.tgz";
-        sha512 = "2RVD+WkzZ4VDyO9gQvQAuQ/ux2gLigJtKDTlbwjYqOR/NwsVzTSfGm/kx648/qWJsg6Sv04tE9BWCO8s6a+pFA==";
+        url = "https://registry.npmjs.org/mermaid/-/mermaid-9.1.2.tgz";
+        sha512 = "RVf3hBKqiMfyORHboCaEjOAK1TomLO50hYRPvlTrZCXlCniM5pRpe8UlkHBjjpaLtioZnbdYv/vEVj7iKnwkJQ==";
       };
     };
     "meros-1.1.4" = {
@@ -44390,13 +44606,13 @@ let
         sha512 = "AY9lGmUznFNsLr7Vm3hLCT7Ar0bN6Wninp3qA0E0/JBU4uRTRI4fIgM1I3+nbjLf23mwh+vrHut0ML63QB2acA==";
       };
     };
-    "metalsmith-2.4.3" = {
+    "metalsmith-2.5.0" = {
       name = "metalsmith";
       packageName = "metalsmith";
-      version = "2.4.3";
+      version = "2.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/metalsmith/-/metalsmith-2.4.3.tgz";
-        sha512 = "W54oznz5wrBuE6lGj9ITq9Cj8HdAX8BkLptR+TInbhrkObinR7pm4z8zspYkCUVW/3UJnvZZJ55/LdikblC1vw==";
+        url = "https://registry.npmjs.org/metalsmith/-/metalsmith-2.5.0.tgz";
+        sha512 = "tBFpCMq8t/ZeD8qbvyWSLjyW7aO8RJYeFSk8LyclgHYaeMWiSPrMxXc3NORVCJ3iG17aRxuL/+nla58Qq3DBcQ==";
       };
     };
     "method-missing-1.2.4" = {
@@ -45416,13 +45632,13 @@ let
         sha512 = "rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==";
       };
     };
-    "minipass-3.2.0" = {
+    "minipass-3.2.1" = {
       name = "minipass";
       packageName = "minipass";
-      version = "3.2.0";
+      version = "3.2.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/minipass/-/minipass-3.2.0.tgz";
-        sha512 = "rosVvUUjMkTW1UoqXVHzNw937MAKv1ewomUBIqYk0IXPYk+LpVCOV1+kBpzAiQrKGjG3Ta81ZNzk/EcL28zABw==";
+        url = "https://registry.npmjs.org/minipass/-/minipass-3.2.1.tgz";
+        sha512 = "v5cqJP4WxUVXYXhOOdPiOZEDoF7omSpLivw2GMCL1v/j+xh886bPXKh6SzyA6sa45e4NRQ46IRBEkAazvb6I6A==";
       };
     };
     "minipass-collect-1.0.2" = {
@@ -46199,6 +46415,15 @@ let
         sha512 = "ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==";
       };
     };
+    "multimatch-6.0.0" = {
+      name = "multimatch";
+      packageName = "multimatch";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/multimatch/-/multimatch-6.0.0.tgz";
+        sha512 = "I7tSVxHGPlmPN/enE3mS1aOSo6bWBfls+3HmuEeCUBCE7gWnm3cBXCBkpurzFjVRwC6Kld8lLaZ1Iv5vOcjvcQ==";
+      };
+    };
     "multiparty-2.2.0" = {
       name = "multiparty";
       packageName = "multiparty";
@@ -47316,13 +47541,13 @@ let
         sha512 = "KGXihXdUChwJAOHO53bv9/vXcLmdUsZ6jIptbvYvkpKfth+r7jw44JkVxQFA3kX5nQjzjmGu1uAu/xNNLNlI5g==";
       };
     };
-    "node-appc-1.1.4" = {
+    "node-appc-1.1.5" = {
       name = "node-appc";
       packageName = "node-appc";
-      version = "1.1.4";
+      version = "1.1.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-appc/-/node-appc-1.1.4.tgz";
-        sha512 = "WX8vG0nja5tusSkFTgcuL2gWWug8QCFRHi8AuGoc3714whDDDCMGFcSW0pI7BltBPSdyTCffcwaee7pibzBPVw==";
+        url = "https://registry.npmjs.org/node-appc/-/node-appc-1.1.5.tgz";
+        sha512 = "2qRWyCXNRS3Vb+rnr5ZgnenAMfys3LKDVcc00WTiZjD2YQUxUwDJfOjUK7wlQQxolF8+y/8YohNRKpo78Kz/xg==";
       };
     };
     "node-bindgen-loader-1.0.1" = {
@@ -47442,13 +47667,13 @@ let
         sha512 = "ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==";
       };
     };
-    "node-fetch-3.2.5" = {
+    "node-fetch-3.2.6" = {
       name = "node-fetch";
       packageName = "node-fetch";
-      version = "3.2.5";
+      version = "3.2.6";
       src = fetchurl {
-        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.5.tgz";
-        sha512 = "u7zCHdJp8JXBwF09mMfo2CL6kp37TslDl1KP3hRGTlCInBtag+UO3LGVy+NF0VzvnL3PVMpA2hXh1EtECFnyhQ==";
+        url = "https://registry.npmjs.org/node-fetch/-/node-fetch-3.2.6.tgz";
+        sha512 = "LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==";
       };
     };
     "node-fetch-h2-2.3.0" = {
@@ -47541,6 +47766,15 @@ let
         sha512 = "olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==";
       };
     };
+    "node-gyp-9.0.0" = {
+      name = "node-gyp";
+      packageName = "node-gyp";
+      version = "9.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp/-/node-gyp-9.0.0.tgz";
+        sha512 = "Ma6p4s+XCTPxCuAMrOA/IJRmVy16R8Sdhtwl4PrCr7IBlj4cPawF0vg/l7nOT1jPbuNS7lIRJpBSvVsXwEZuzw==";
+      };
+    };
     "node-gyp-build-4.1.1" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
@@ -47550,15 +47784,6 @@ let
         sha512 = "dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==";
       };
     };
-    "node-gyp-build-4.3.0" = {
-      name = "node-gyp-build";
-      packageName = "node-gyp-build";
-      version = "4.3.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.3.0.tgz";
-        sha512 = "iWjXZvmboq0ja1pUGULQBexmxq8CV4xBhX7VDOTbL7ZR4FOowwY/VOtRxBN/yKxmdGoIp4j5ysNT4u3S2pDQ3Q==";
-      };
-    };
     "node-gyp-build-4.4.0" = {
       name = "node-gyp-build";
       packageName = "node-gyp-build";
@@ -47586,6 +47811,15 @@ let
         sha512 = "PiN4NWmlQPqvbEFcH/omQsswWQbe5Z9YK/zdB23irp5j2XibaA2IrGvpSWmVVG4qMZdmPdwPctSy4a86rOMn6g==";
       };
     };
+    "node-gyp-build-optional-packages-5.0.3" = {
+      name = "node-gyp-build-optional-packages";
+      packageName = "node-gyp-build-optional-packages";
+      version = "5.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.0.3.tgz";
+        sha512 = "k75jcVzk5wnnc/FMxsf4udAoTEUv2jY3ycfdSd3yWu6Cnd1oee6/CfZJApyscA4FJOmdoixWwiwOyf16RzD5JA==";
+      };
+    };
     "node-hid-2.1.1" = {
       name = "node-hid";
       packageName = "node-hid";
@@ -47622,6 +47856,24 @@ let
         sha512 = "h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==";
       };
     };
+    "node-localstorage-1.3.1" = {
+      name = "node-localstorage";
+      packageName = "node-localstorage";
+      version = "1.3.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-localstorage/-/node-localstorage-1.3.1.tgz";
+        sha512 = "NMWCSWWc6JbHT5PyWlNT2i8r7PgGYXVntmKawY83k/M0UJScZ5jirb61TLnqKwd815DfBQu+lR3sRw08SPzIaQ==";
+      };
+    };
+    "node-machine-id-1.1.12" = {
+      name = "node-machine-id";
+      packageName = "node-machine-id";
+      version = "1.1.12";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/node-machine-id/-/node-machine-id-1.1.12.tgz";
+        sha512 = "QNABxbrPa3qEIfrE6GOJ7BYIuignnJw7iQ2YPbc3Nla1HzRJjXzZOiikfF8m7eAMfichLt3M4VgLOetqgDmgGQ==";
+      };
+    };
     "node-notifier-10.0.1" = {
       name = "node-notifier";
       packageName = "node-notifier";
@@ -47640,15 +47892,6 @@ let
         sha512 = "oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==";
       };
     };
-    "node-notifier-9.0.0" = {
-      name = "node-notifier";
-      packageName = "node-notifier";
-      version = "9.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/node-notifier/-/node-notifier-9.0.0.tgz";
-        sha512 = "SkwNwGnMMlSPrcoeH4CSo9XyWe72acAHEJGDdPdB+CyBVHsIYaTQ4U/1wk3URsyzC75xZLg2vzU2YaALlqDF1Q==";
-      };
-    };
     "node-object-hash-2.3.10" = {
       name = "node-object-hash";
       packageName = "node-object-hash";
@@ -49099,6 +49342,15 @@ let
         sha512 = "cG6v76kgWh48urwdsFSkxQlKWCKFYkxZJMhOIG9Aj1uPKTnNW9Hvo/ROyBfGzqaZD3K75K3jhsanKssRPkNKYA==";
       };
     };
+    "omelette-0.4.17" = {
+      name = "omelette";
+      packageName = "omelette";
+      version = "0.4.17";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/omelette/-/omelette-0.4.17.tgz";
+        sha512 = "UlU69G6Bhu0XFjw3tjFZ0qyiMUjAOR+rdzblA1nLQ8xiqFtxOVlkhM39BlgTpLFx9fxkm6rnxNNRsS5GxE/yww==";
+      };
+    };
     "omggif-1.0.10" = {
       name = "omggif";
       packageName = "omggif";
@@ -49270,13 +49522,13 @@ let
         sha512 = "fvaSZRzprpwLFge/mcwE0CItfniNisVNamDdMK1FQUjh4ArQZ8ZWSkDaJbZc3XaANKZHq0xIa8NJpZ2HSe3oXA==";
       };
     };
-    "oo-ascii-tree-1.60.0" = {
+    "oo-ascii-tree-1.61.0" = {
       name = "oo-ascii-tree";
       packageName = "oo-ascii-tree";
-      version = "1.60.0";
+      version = "1.61.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.60.0.tgz";
-        sha512 = "mMkGJNJgJjlO8UMkHYAJuVnYBfljC02FQlsBYFM0tYTTN/RMVbN9Y7mA7FXrrv9u87+npSU6xjITUcZL9OVTew==";
+        url = "https://registry.npmjs.org/oo-ascii-tree/-/oo-ascii-tree-1.61.0.tgz";
+        sha512 = "/7aCOm8qkHUdr4iy9qPs3ZbRoWN8FaShpII56LgSFy/YitvskT3SOx92KwcsE5Mipu/X43YcUYFWCS8nUlR3Xw==";
       };
     };
     "open-0.0.2" = {
@@ -49783,6 +50035,15 @@ let
         sha512 = "eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==";
       };
     };
+    "ora-4.1.1" = {
+      name = "ora";
+      packageName = "ora";
+      version = "4.1.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ora/-/ora-4.1.1.tgz";
+        sha512 = "sjYP8QyVWBpBZWD6Vr1M/KwknSw6kJOz41tvGMlwWeClHBtYKTbHMki1PsLZnxKpXMPbTKv9b3pjQu3REib96A==";
+      };
+    };
     "ora-5.1.0" = {
       name = "ora";
       packageName = "ora";
@@ -49837,6 +50098,15 @@ let
         sha512 = "7bqkxkEJwzJQUAlyYniqEZ3Ilzjh0yoa62c7gL6Ijxj5bEpPL+8IE1Z0PFj0ywjjXQcdrwR51g9MIcLezR0hKQ==";
       };
     };
+    "original-1.0.2" = {
+      name = "original";
+      packageName = "original";
+      version = "1.0.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/original/-/original-1.0.2.tgz";
+        sha512 = "hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==";
+      };
+    };
     "os-browserify-0.3.0" = {
       name = "os-browserify";
       packageName = "os-browserify";
@@ -50188,6 +50458,15 @@ let
         sha512 = "LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==";
       };
     };
+    "p-locate-6.0.0" = {
+      name = "p-locate";
+      packageName = "p-locate";
+      version = "6.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz";
+        sha512 = "wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==";
+      };
+    };
     "p-map-1.2.0" = {
       name = "p-map";
       packageName = "p-map";
@@ -50224,13 +50503,13 @@ let
         sha512 = "/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==";
       };
     };
-    "p-map-5.4.0" = {
+    "p-map-5.5.0" = {
       name = "p-map";
       packageName = "p-map";
-      version = "5.4.0";
+      version = "5.5.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/p-map/-/p-map-5.4.0.tgz";
-        sha512 = "obHraaWkwl4y1NHR4vW5D5k+33+S5QrkFqsNrrvK0R7lilXdzo/DZgnloDvYUaRT+Sk6vVK47JUQMQY6cjPMXg==";
+        url = "https://registry.npmjs.org/p-map/-/p-map-5.5.0.tgz";
+        sha512 = "VFqfGDHlx87K66yZrNdI4YGtD70IRyd+zSvgks6mzHPRNkoKy+9EKP4SFC77/vTTQYmRmti7dvqC+m5jBrBAcg==";
       };
     };
     "p-map-series-2.1.0" = {
@@ -50611,13 +50890,22 @@ let
         sha512 = "8EKVBxCRSvLnsX1p2LlSFSH3c2/wuhY9/BXXWu8boL78FbVKqn2L5SpURt1x5iw6Gq8PTqJ7MdPoe5nCtX3I+g==";
       };
     };
-    "paid-services-3.16.0" = {
+    "paid-services-3.16.2" = {
       name = "paid-services";
       packageName = "paid-services";
-      version = "3.16.0";
+      version = "3.16.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.16.2.tgz";
+        sha512 = "4KmT09JNTk9RMOXVZiaQCiiUbgf0ucmFqKzAV8H5iwOH2dRk8QWlmrWRmvZdwTbjjNePnhuy/QvJMXki9ox0sw==";
+      };
+    };
+    "paid-services-3.16.3" = {
+      name = "paid-services";
+      packageName = "paid-services";
+      version = "3.16.3";
       src = fetchurl {
-        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.16.0.tgz";
-        sha512 = "1NJojLf8qLulTuhO//XqpQWsK/cE/kMrM0hmX6ggToOWJQC+5wSiqwjlaAKRARLwX/uAMOpCTlm3n/EoBrEuQA==";
+        url = "https://registry.npmjs.org/paid-services/-/paid-services-3.16.3.tgz";
+        sha512 = "LmthAiL2EP/iYorDmSZFpi8ocQmciYWAirzPYWGhIPOLs409btO2tfjM/fY839qFzxzHpONRVx8CwuyqKLtolg==";
       };
     };
     "pako-0.2.9" = {
@@ -51421,6 +51709,15 @@ let
         sha512 = "ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==";
       };
     };
+    "path-exists-5.0.0" = {
+      name = "path-exists";
+      packageName = "path-exists";
+      version = "5.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz";
+        sha512 = "RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==";
+      };
+    };
     "path-is-absolute-1.0.1" = {
       name = "path-is-absolute";
       packageName = "path-is-absolute";
@@ -51466,13 +51763,13 @@ let
         sha512 = "ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==";
       };
     };
-    "path-loader-1.0.10" = {
+    "path-loader-1.0.12" = {
       name = "path-loader";
       packageName = "path-loader";
-      version = "1.0.10";
+      version = "1.0.12";
       src = fetchurl {
-        url = "https://registry.npmjs.org/path-loader/-/path-loader-1.0.10.tgz";
-        sha512 = "CMP0v6S6z8PHeJ6NFVyVJm6WyJjIwFvyz2b0n2/4bKdS/0uZa/9sKUlYZzubrn3zuDRU0zIuEDX9DZYQ2ZI8TA==";
+        url = "https://registry.npmjs.org/path-loader/-/path-loader-1.0.12.tgz";
+        sha512 = "n7oDG8B+k/p818uweWrOixY9/Dsr89o2TkCm6tOTex3fpdo2+BFDgR+KpB37mGKBRsBAlR8CIJMFN0OEy/7hIQ==";
       };
     };
     "path-parse-1.0.7" = {
@@ -51925,22 +52222,22 @@ let
         sha512 = "0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==";
       };
     };
-    "pino-7.6.5" = {
+    "pino-7.11.0" = {
       name = "pino";
       packageName = "pino";
-      version = "7.6.5";
+      version = "7.11.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-7.6.5.tgz";
-        sha512 = "38tAwlJ7HevMENHD5FZE+yxSlAH5Wg3FoOjbB3MX2j3/kgpOEkmDHhTVKkecR57qxD5doHo2yi9nac94gqqbiQ==";
+        url = "https://registry.npmjs.org/pino/-/pino-7.11.0.tgz";
+        sha512 = "dMACeu63HtRLmCG8VKdy4cShCPKaYDR4youZqoSWLxl5Gu99HUw8bw75thbPv9Nip+H+QYX8o3ZJbTdVZZ2TVg==";
       };
     };
-    "pino-7.9.1" = {
+    "pino-7.6.5" = {
       name = "pino";
       packageName = "pino";
-      version = "7.9.1";
+      version = "7.6.5";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pino/-/pino-7.9.1.tgz";
-        sha512 = "28+D7c5orCoScdcWtiPXrCA9tdVosBWrYQgVtPdYTyiuTt6u/+rbEtpJR+dtVG8k1flhv0H2f0XSkgGm+TdjqQ==";
+        url = "https://registry.npmjs.org/pino/-/pino-7.6.5.tgz";
+        sha512 = "38tAwlJ7HevMENHD5FZE+yxSlAH5Wg3FoOjbB3MX2j3/kgpOEkmDHhTVKkecR57qxD5doHo2yi9nac94gqqbiQ==";
       };
     };
     "pino-abstract-transport-0.5.0" = {
@@ -52465,15 +52762,6 @@ let
         sha512 = "yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==";
       };
     };
-    "postcss-8.4.12" = {
-      name = "postcss";
-      packageName = "postcss";
-      version = "8.4.12";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/postcss/-/postcss-8.4.12.tgz";
-        sha512 = "lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==";
-      };
-    };
     "postcss-8.4.14" = {
       name = "postcss";
       packageName = "postcss";
@@ -52564,6 +52852,15 @@ let
         sha512 = "HeiOxGcuwID0AFsNAL0ox3mW6MHH5cstWN1Z3Y+n6H+g12ih7LHdYxWwEA/QmrebctLjo79xz9ouK3MroHwOJw==";
       };
     };
+    "postcss-import-14.1.0" = {
+      name = "postcss-import";
+      packageName = "postcss-import";
+      version = "14.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz";
+        sha512 = "flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==";
+      };
+    };
     "postcss-js-4.0.0" = {
       name = "postcss-js";
       packageName = "postcss-js";
@@ -53482,13 +53779,13 @@ let
         sha512 = "vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==";
       };
     };
-    "prettier-2.6.2" = {
+    "prettier-2.7.1" = {
       name = "prettier";
       packageName = "prettier";
-      version = "2.6.2";
+      version = "2.7.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz";
-        sha512 = "PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==";
+        url = "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz";
+        sha512 = "ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==";
       };
     };
     "prettier-bytes-1.0.4" = {
@@ -53959,13 +54256,13 @@ let
         sha512 = "y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==";
       };
     };
-    "promise-toolbox-0.20.0" = {
+    "promise-toolbox-0.21.0" = {
       name = "promise-toolbox";
       packageName = "promise-toolbox";
-      version = "0.20.0";
+      version = "0.21.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/promise-toolbox/-/promise-toolbox-0.20.0.tgz";
-        sha512 = "VXF6waqUheD19yOU7zxsXhw/HCKlXqXwUc4jM8mchtBqZFNA+GHA7dbJsQDLHP4IUpQuTLpCQRd0lCr5z4CqXQ==";
+        url = "https://registry.npmjs.org/promise-toolbox/-/promise-toolbox-0.21.0.tgz";
+        sha512 = "NV8aTmpwrZv+Iys54sSFOBx3tuVaOBvvrft5PNppnxy9xpU/akHbaWIril22AB22zaPgrgwKdD0KsrM0ptUtpg==";
       };
     };
     "promise.prototype.finally-3.1.3" = {
@@ -54130,13 +54427,13 @@ let
         sha512 = "vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==";
       };
     };
-    "proto3-json-serializer-0.1.9" = {
+    "proto3-json-serializer-1.0.2" = {
       name = "proto3-json-serializer";
       packageName = "proto3-json-serializer";
-      version = "0.1.9";
+      version = "1.0.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-0.1.9.tgz";
-        sha512 = "A60IisqvnuI45qNRygJjrnNjX2TMdQGMY+57tR3nul3ZgO2zXkR9OGR8AXxJhkqx84g0FTnrfi3D5fWMSdANdQ==";
+        url = "https://registry.npmjs.org/proto3-json-serializer/-/proto3-json-serializer-1.0.2.tgz";
+        sha512 = "wHxf8jYZ/LUP3M7XmULDKnbxBn+Bvk6SM+tDCPVTp9vraIzUi9hHsOBb1n2Y0VV0ukx4zBN/2vzMQYs4KWwRpg==";
       };
     };
     "protobufjs-3.8.2" = {
@@ -54157,15 +54454,6 @@ let
         sha512 = "yvAslS0hNdBhlSKckI4R1l7wunVilX66uvrjzE4MimiAt7/qw1nLpMhZrn/ObuUTM/c3Xnfl01LYMdcSJe6dwg==";
       };
     };
-    "protobufjs-6.11.2" = {
-      name = "protobufjs";
-      packageName = "protobufjs";
-      version = "6.11.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.2.tgz";
-        sha512 = "4BQJoPooKJl2G9j3XftkIXjoC9C0Av2NOrWmbLWT1vH32GcSUHjM0Arra6UfTsVyfMAuFzaLucXn1sadxJydAw==";
-      };
-    };
     "protobufjs-6.11.3" = {
       name = "protobufjs";
       packageName = "protobufjs";
@@ -54301,15 +54589,6 @@ let
         sha512 = "0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==";
       };
     };
-    "psbt-2.0.0" = {
-      name = "psbt";
-      packageName = "psbt";
-      version = "2.0.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/psbt/-/psbt-2.0.0.tgz";
-        sha512 = "V3RueLeXhP/WZETCtUxFn9aaEjHKdJIp2jir1rgK3iU0fV4hC0f45wDRDrrtcFHIUyvudgzhg6Bcgr8cGaWXlA==";
-      };
-    };
     "psbt-2.0.1" = {
       name = "psbt";
       packageName = "psbt";
@@ -54337,6 +54616,15 @@ let
         sha512 = "688dCfCB6Vte/d3DRvIEt6ry51n27F8eY3c18YojtfCIs9rRMxobJGApPDgddF6XNRgqbvSZBKIVwEekVK5Mtw==";
       };
     };
+    "psbt-2.6.0" = {
+      name = "psbt";
+      packageName = "psbt";
+      version = "2.6.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/psbt/-/psbt-2.6.0.tgz";
+        sha512 = "z2ca00AMwZ6PfVETQNvXRumZdRwGuQzApIH/hKNp2o6Qo8N8TW7Ug2V+aSH2w/eC1b/bOOMZIE57V3jYN+kB4A==";
+      };
+    };
     "pseudomap-1.0.2" = {
       name = "pseudomap";
       packageName = "pseudomap";
@@ -55246,13 +55534,13 @@ let
         sha512 = "U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==";
       };
     };
-    "puppeteer-14.3.0" = {
+    "puppeteer-14.4.1" = {
       name = "puppeteer";
       packageName = "puppeteer";
-      version = "14.3.0";
+      version = "14.4.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-14.3.0.tgz";
-        sha512 = "pDtg1+vyw1UPIhUjh2/VW1HUdQnaZJHfMacrJciR3AVm+PBiqdCEcFeFb3UJ/CDEQlHOClm3/WFa7IjY25zIGg==";
+        url = "https://registry.npmjs.org/puppeteer/-/puppeteer-14.4.1.tgz";
+        sha512 = "+H0Gm84aXUvSLdSiDROtLlOofftClgw2TdceMvvCU9UvMryappoeS3+eOLfKvoy4sm8B8MWnYmPhWxVFudAOFQ==";
       };
     };
     "purest-3.1.0" = {
@@ -55327,13 +55615,13 @@ let
         sha512 = "pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==";
       };
     };
-    "pyright-1.1.253" = {
+    "pyright-1.1.254" = {
       name = "pyright";
       packageName = "pyright";
-      version = "1.1.253";
+      version = "1.1.254";
       src = fetchurl {
-        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.253.tgz";
-        sha512 = "z5Ou+Gj5V6TE0ysukdAeujUuKleIwoy32SrtcxWgVcVm+2i8HqPq3AZcLvnKmzK5mL4NC/hP/3uWTmZDrxs6iA==";
+        url = "https://registry.npmjs.org/pyright/-/pyright-1.1.254.tgz";
+        sha512 = "YDbIqr55EkwRCFSVjWxj8KOwBTMVK1U3HLLdqp+W3n+88S31YbRERrCni9izmtt5i4wnuhf7oRI/9K8KwLxmgQ==";
       };
     };
     "q-0.9.7" = {
@@ -55543,6 +55831,15 @@ let
         sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==";
       };
     };
+    "qs-6.9.3" = {
+      name = "qs";
+      packageName = "qs";
+      version = "6.9.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/qs/-/qs-6.9.3.tgz";
+        sha512 = "EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==";
+      };
+    };
     "qs-6.9.6" = {
       name = "qs";
       packageName = "qs";
@@ -55624,6 +55921,15 @@ let
         sha512 = "wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==";
       };
     };
+    "querystring-browser-1.0.4" = {
+      name = "querystring-browser";
+      packageName = "querystring-browser";
+      version = "1.0.4";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/querystring-browser/-/querystring-browser-1.0.4.tgz";
+        sha512 = "oqPm3iZO4r4lEFM2YAJyMwCqAMIL0r3jO36ZohmHLUs9NpAfEGee7G5+PllGec/TkAnfI85FMmkPaW8UbZI0Uw==";
+      };
+    };
     "querystring-es3-0.2.1" = {
       name = "querystring-es3";
       packageName = "querystring-es3";
@@ -55921,13 +56227,13 @@ let
         sha512 = "Jdsdnezu913Ot8qgKgSgs63XkAjEsnMcS1z+cC6D6TNXsUXsMxy0RpclF2pzGZTEiTXL9BiArdGTEexcv4nqcA==";
       };
     };
-    "random-words-1.1.2" = {
+    "random-words-1.2.0" = {
       name = "random-words";
       packageName = "random-words";
-      version = "1.1.2";
+      version = "1.2.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/random-words/-/random-words-1.1.2.tgz";
-        sha512 = "GwgC+Yu+D5/044grf2QqaYk3ZrQip7yfgvkj/6bJ3H3B3KrE7qoNPbWaYd06hrigqAkrPzNVEpRlnBaNx4bDuA==";
+        url = "https://registry.npmjs.org/random-words/-/random-words-1.2.0.tgz";
+        sha512 = "YP2bXrT19pxtBh22DK9CLcWsmBjUBAGzw3JWJycTNbXm1+0aS6PrKuAJ9aLT0GGaPlPp9LExfJIMVkzhrDZE6g==";
       };
     };
     "randomatic-3.1.1" = {
@@ -56164,13 +56470,13 @@ let
         sha512 = "wuygyq8TXUlSdVXv2kigXxQNOgdb9m7LbIjwfTNGSpaY1riLd5e+VeQjlQMyUtrk0oiyhi1AqIVynworl3qxHA==";
       };
     };
-    "re2-1.17.4" = {
+    "re2-1.17.7" = {
       name = "re2";
       packageName = "re2";
-      version = "1.17.4";
+      version = "1.17.7";
       src = fetchurl {
-        url = "https://registry.npmjs.org/re2/-/re2-1.17.4.tgz";
-        sha512 = "xyZ4h5PqE8I9tAxTh3G0UttcK5ufrcUxReFjGzfX61vtanNbS1XZHjnwRSyPcLgChI4KLxVgOT/ioZXnUAdoTA==";
+        url = "https://registry.npmjs.org/re2/-/re2-1.17.7.tgz";
+        sha512 = "X8GSuiBoVWwcjuppqSjsIkRxNUKDdjhkO9SBekQbZ2ksqWUReCy7DQPWOVpoTnpdtdz5PIpTTxTFzvJv5UMfjA==";
       };
     };
     "reachdown-1.1.0" = {
@@ -56740,6 +57046,15 @@ let
         sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==";
       };
     };
+    "readable-stream-4.0.0" = {
+      name = "readable-stream";
+      packageName = "readable-stream";
+      version = "4.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/readable-stream/-/readable-stream-4.0.0.tgz";
+        sha512 = "Mf7ilWBP6AV3tF3MjtBrHMH3roso7wIrpgzCwt9ybvqiJQVWIEBMnp/W+S//yvYSsUUi2cJIwD7q7m57l0AqZw==";
+      };
+    };
     "readable-web-to-node-stream-2.0.0" = {
       name = "readable-web-to-node-stream";
       packageName = "readable-web-to-node-stream";
@@ -57244,13 +57559,13 @@ let
         sha512 = "4LM6Fw8eBQdwMYcES4yTnn2TqIasbXuwDx3um+QRs7S55aMKCBKBxvPXl2RiUjHwuJLTyYfxSpmfSAjQpcuP+A==";
       };
     };
-    "registry-auth-token-4.2.1" = {
+    "registry-auth-token-4.2.2" = {
       name = "registry-auth-token";
       packageName = "registry-auth-token";
-      version = "4.2.1";
+      version = "4.2.2";
       src = fetchurl {
-        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz";
-        sha512 = "6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==";
+        url = "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.2.tgz";
+        sha512 = "PC5ZysNb42zpFME6D/XlIgtNGdTl8bBOCw90xQLVMpzuuubJKYDWFAEuUNc+Cn8Z8724tg2SDhDRrkVEsqfDMg==";
       };
     };
     "registry-url-3.1.0" = {
@@ -58441,6 +58756,15 @@ let
         sha512 = "Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==";
       };
     };
+    "resolve-1.22.1" = {
+      name = "resolve";
+      packageName = "resolve";
+      version = "1.22.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz";
+        sha512 = "nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==";
+      };
+    };
     "resolve-1.7.1" = {
       name = "resolve";
       packageName = "resolve";
@@ -58828,13 +59152,13 @@ let
         sha512 = "bkzdIZ5Xyim12j0jq6CQAHpfdsa2VqieWF6eN8vT2MXxCxLAZhgVUyu5EEMevJyXML+XWTxVbZ7mLaKx5F/DZw==";
       };
     };
-    "retry-request-4.2.2" = {
+    "retry-request-5.0.1" = {
       name = "retry-request";
       packageName = "retry-request";
-      version = "4.2.2";
+      version = "5.0.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/retry-request/-/retry-request-4.2.2.tgz";
-        sha512 = "xA93uxUD/rogV7BV59agW/JHPGXeREMWiZc9jhcwY4YdZ7QOtC7qbomYg0n4wyk2lJhggjvKvhNX8wln/Aldhg==";
+        url = "https://registry.npmjs.org/retry-request/-/retry-request-5.0.1.tgz";
+        sha512 = "lxFKrlBt0OZzCWh/V0uPEN0vlr3OhdeXnpeY5OES+ckslm791Cb1D5P7lJUSnY7J5hiCjcyaUGmzCnIGDCUBig==";
       };
     };
     "reusify-1.0.4" = {
@@ -59701,15 +60025,6 @@ let
         sha512 = "jhXqQAQVM+8Xj5EjJGVweuEzgtGWb3tmEEpl3CLP3cStInSbVHSg0QWOGQzNq8pSID4JkpeV2mPqlMDLrm0/Vw==";
       };
     };
-    "secp256k1-4.0.2" = {
-      name = "secp256k1";
-      packageName = "secp256k1";
-      version = "4.0.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.2.tgz";
-        sha512 = "UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg==";
-      };
-    };
     "secp256k1-4.0.3" = {
       name = "secp256k1";
       packageName = "secp256k1";
@@ -60727,13 +61042,13 @@ let
         sha512 = "fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==";
       };
     };
-    "sign-addon-3.11.0" = {
+    "sign-addon-5.0.0" = {
       name = "sign-addon";
       packageName = "sign-addon";
-      version = "3.11.0";
+      version = "5.0.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-3.11.0.tgz";
-        sha512 = "fcK2WzkMb8e8E9kvuccy+mrBTT81iR+1CowHLU594Elr4E9E9zZFr3itGlL0OoXcRouKmvt7rpXzoARu++tXRQ==";
+        url = "https://registry.npmjs.org/sign-addon/-/sign-addon-5.0.0.tgz";
+        sha512 = "qO3YYs8/kV7SyY8Kqmk1TW30FAVnvxTxUvncnK82H1+k4AkhVw33owReKyzoiHfNpgv1ugmgxA9jEsAIWqVCCg==";
       };
     };
     "signal-exit-3.0.7" = {
@@ -60826,13 +61141,13 @@ let
         sha512 = "z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==";
       };
     };
-    "simple-git-3.7.1" = {
+    "simple-git-3.8.0" = {
       name = "simple-git";
       packageName = "simple-git";
-      version = "3.7.1";
+      version = "3.8.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.7.1.tgz";
-        sha512 = "+Osjtsumbtew2y9to0pOYjNzSIr4NkKGBg7Po5SUtjQhaJf2QBmiTX/9E9cv9rmc7oUiSGFIB9e7ys5ibnT9+A==";
+        url = "https://registry.npmjs.org/simple-git/-/simple-git-3.8.0.tgz";
+        sha512 = "nbR1PufcbvCaW90CiAXC1mM7OnEqLzjSOnySnq7Sd2kcVG6GxSa+DhxhFmCgxLv4kWCKmZagkCZSjfNAQTZwaw==";
       };
     };
     "simple-handshake-3.0.0" = {
@@ -62113,13 +62428,13 @@ let
         sha512 = "Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==";
       };
     };
-    "spdx-license-list-6.5.0" = {
+    "spdx-license-list-6.6.0" = {
       name = "spdx-license-list";
       packageName = "spdx-license-list";
-      version = "6.5.0";
+      version = "6.6.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.5.0.tgz";
-        sha512 = "28O9GgFrMg2Wp8tVML0Zk+fnXaECy7UbB6pxo+93whHay/nqPyEdM07Cx6B4+j2pniUZTYr57OaIOyNTxsTwtw==";
+        url = "https://registry.npmjs.org/spdx-license-list/-/spdx-license-list-6.6.0.tgz";
+        sha512 = "vLwdf9AWgdJQmG8cai2HKfkInFsliKaCCOwXmdVonClIhdURTX61KdDOoXC1qcQ7gDaZj+CUTcrMJeAdnCtrKA==";
       };
     };
     "spdy-1.32.5" = {
@@ -62816,13 +63131,13 @@ let
         sha512 = "Z4jBj917W+dKAiDglwxCpWm8vINOMtkpHQIgk50NQTb5jHqHI5Rcyiy7EO0uRcWwRWqXi1ZwOTEFVyLyyuittA==";
       };
     };
-    "ssb-uri2-1.8.1" = {
+    "ssb-uri2-1.9.0" = {
       name = "ssb-uri2";
       packageName = "ssb-uri2";
-      version = "1.8.1";
+      version = "1.9.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/ssb-uri2/-/ssb-uri2-1.8.1.tgz";
-        sha512 = "Jy5IrGOdF9CaE856usvqESjh9p1t5t32/X8qa+6Yj8NxU2EoMtP8ZsIptWyvA651qOaVgPoShkC4W9dXRHoV3w==";
+        url = "https://registry.npmjs.org/ssb-uri2/-/ssb-uri2-1.9.0.tgz";
+        sha512 = "HkgRbZeFe3YhBLfv5C6AgJaz1ESlQ5MP7sAdRTpCYwU4wo0U+d/irvVUsnUimPq6FO/Zn6gmW8BiCk+JBv3rGw==";
       };
     };
     "ssb-validate-4.1.4" = {
@@ -63158,6 +63473,15 @@ let
         sha512 = "RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==";
       };
     };
+    "stdin-0.0.1" = {
+      name = "stdin";
+      packageName = "stdin";
+      version = "0.0.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/stdin/-/stdin-0.0.1.tgz";
+        sha512 = "2bacd1TXzqOEsqRa+eEWkRdOSznwptrs4gqFcpMq5tOtmJUGPZd10W5Lam6wQ4YQ/+qjQt4e9u35yXCF6mrlfQ==";
+      };
+    };
     "stealthy-require-1.1.1" = {
       name = "stealthy-require";
       packageName = "stealthy-require";
@@ -63173,7 +63497,7 @@ let
       version = "0.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz";
-        sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb";
+        sha512 = "EEHMVYHNXFHfGtgjNITnka0aHhiAlo93F7z2/Pwd+g0teG9CnM3JIINM7hVVB5/rhw9voufD7Wukwgtw2uqh6w==";
       };
     };
     "stf-appstore-db-1.0.0" = {
@@ -63281,7 +63605,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-collector/-/stream-collector-1.0.1.tgz";
-        sha1 = "4d4e55f171356121b2c5f6559f944705ab28db15";
+        sha512 = "b9/C+HonJNmPmdBFGa0aJc9cai07YksAFvmchnSobiIitppiBn6wfAN7rLGEz6fE30Rj9EC/UVkovzoLJTpC5Q==";
       };
     };
     "stream-combiner-0.0.4" = {
@@ -63290,7 +63614,7 @@ let
       version = "0.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz";
-        sha1 = "4d5e433c185261dde623ca3f44c586bcf5c4ad14";
+        sha512 = "rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==";
       };
     };
     "stream-combiner-0.2.2" = {
@@ -63308,7 +63632,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz";
-        sha1 = "fb4d8a1420ea362764e21ad4780397bebcb41cbe";
+        sha512 = "3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==";
       };
     };
     "stream-counter-0.2.0" = {
@@ -63398,7 +63722,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-parser/-/stream-parser-0.3.1.tgz";
-        sha1 = "1618548694420021a1182ff0af1911c129761773";
+        sha512 = "bJ/HgKq41nlKvlhccD5kaCr/P+Hu0wPNKPJOH7en+YrJu/9EgqUF+88w5Jb6KNcjOFMhfX4B2asfeAtIGuHObQ==";
       };
     };
     "stream-promise-3.2.0" = {
@@ -63434,7 +63758,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-throttle/-/stream-throttle-0.1.3.tgz";
-        sha1 = "add57c8d7cc73a81630d31cd55d3961cfafba9c3";
+        sha512 = "889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ==";
       };
     };
     "stream-to-array-2.3.0" = {
@@ -63497,7 +63821,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/stream-transcoder/-/stream-transcoder-0.0.5.tgz";
-        sha1 = "68261be4efb48840239b5791af23ee3b8bd79808";
+        sha512 = "mPthCybIYrahVWlszOcDfCHn3TAiVvUzyZwGLAEgGE6J28HmjM6+gPwC2cu2M6uwaGojvs6xgGvrqJACHXvaLw==";
       };
     };
     "stream-transform-0.1.2" = {
@@ -63524,7 +63848,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/streaming-json-stringify/-/streaming-json-stringify-3.1.0.tgz";
-        sha1 = "80200437a993cc39c4fe00263b7b3b903ac87af5";
+        sha512 = "axtfs3BDxAsrZ9swD163FBrXZ8dhJJp6kUI6C97TvUZG9RHKfbg9nFbXqEheFNOb3IYMEt2ag9F62sWLFUZ4ug==";
       };
     };
     "streamroller-0.7.0" = {
@@ -63560,7 +63884,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz";
-        sha1 = "808b9d0e56fc273d809ba57338e929919a1a9f1a";
+        sha512 = "jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==";
       };
     };
     "streamsearch-1.1.0" = {
@@ -63596,7 +63920,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz";
-        sha1 = "279b225df1d582b1f54e65addd4352e18faa0713";
+        sha512 = "R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==";
       };
     };
     "strict-uri-encode-2.0.0" = {
@@ -63605,7 +63929,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz";
-        sha1 = "b9c7330c7042862f6b142dc274bbcc5866ce3546";
+        sha512 = "QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==";
       };
     };
     "string-1.6.1" = {
@@ -63659,7 +63983,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz";
-        sha1 = "56970fb1c38558e9e70b728bf3de269ac45adfac";
+        sha512 = "MNCACnufWUf3pQ57O5WTBMkKhzYIaKEcUioO0XHrTMafrbBaNk4IyDOLHBv5xbXO0jLLdsYWeFjpjG2hVHRDtw==";
       };
     };
     "string-length-2.0.0" = {
@@ -63731,7 +64055,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz";
-        sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3";
+        sha512 = "0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==";
       };
     };
     "string-width-2.1.1" = {
@@ -63776,7 +64100,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/string.prototype.repeat/-/string.prototype.repeat-0.2.0.tgz";
-        sha1 = "aba36de08dcee6a5a337d49b2ea1da1b28fc0ecf";
+        sha512 = "1BH+X+1hSthZFW+X+JaUkjkkUPwIlLEMJBLANN3hOob3RhEk5snLWNECDnYbgn/m5c5JV7Ersu1Yubaf+05cIA==";
       };
     };
     "string.prototype.trim-1.2.6" = {
@@ -63821,7 +64145,7 @@ let
       version = "0.10.31";
       src = fetchurl {
         url = "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
-        sha1 = "62e203bc41766c6c28c9fc84301dab1c5310fa94";
+        sha512 = "ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==";
       };
     };
     "string_decoder-1.0.3" = {
@@ -63920,7 +64244,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.1.1.tgz";
-        sha1 = "39e8a98d044d150660abe4a6808acf70bb7bc991";
+        sha512 = "behete+3uqxecWlDAm5lmskaSaISA+ThQ4oNNBDTBJt0x2ppR6IPqfZNuj6BLaLJ/Sji4TPZlcRyOis8wXQTLg==";
       };
     };
     "strip-ansi-0.3.0" = {
@@ -63929,7 +64253,7 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz";
-        sha1 = "25f48ea22ca79187f3174a4db8759347bb126220";
+        sha512 = "DerhZL7j6i6/nEnVG0qViKXI0OKouvvpsAiaj7c+LfqZZZxdwZtv8+UiA/w4VUJpT8UzX0pR1dcHOii1GbmruQ==";
       };
     };
     "strip-ansi-2.0.1" = {
@@ -63938,7 +64262,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-2.0.1.tgz";
-        sha1 = "df62c1aa94ed2f114e1d0f21fd1d50482b79a60e";
+        sha512 = "2h8q2CP3EeOhDJ+jd932PRMpa3/pOJFGoF22J1U/DNbEK2gSW2DqeF46VjCXsSQXhC+k/l8/gaaRBQKL6hUPfQ==";
       };
     };
     "strip-ansi-3.0.1" = {
@@ -63947,7 +64271,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz";
-        sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf";
+        sha512 = "VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==";
       };
     };
     "strip-ansi-4.0.0" = {
@@ -63956,7 +64280,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz";
-        sha1 = "a8479022eb1ac368a871389b635262c505ee368f";
+        sha512 = "4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==";
       };
     };
     "strip-ansi-5.2.0" = {
@@ -64001,7 +64325,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz";
-        sha1 = "6219a85616520491f35788bdbf1447a99c7e6b0e";
+        sha512 = "kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g==";
       };
     };
     "strip-bom-3.0.0" = {
@@ -64010,7 +64334,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz";
-        sha1 = "2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3";
+        sha512 = "vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==";
       };
     };
     "strip-bom-4.0.0" = {
@@ -64073,7 +64397,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz";
-        sha1 = "e5211e9224369fbb81d633a2f00044dc8cedad92";
+        sha512 = "uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==";
       };
     };
     "strip-dirs-2.1.0" = {
@@ -64091,7 +64415,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz";
-        sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
+        sha512 = "7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==";
       };
     };
     "strip-final-newline-2.0.0" = {
@@ -64109,7 +64433,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz";
-        sha1 = "0c5f155fef1151373377de9dbb588da05500e36f";
+        sha512 = "q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==";
       };
     };
     "strip-indent-1.0.1" = {
@@ -64118,7 +64442,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz";
-        sha1 = "0c7962a6adefa7bbd4ac366460a638552ae1a0a2";
+        sha512 = "I5iQq6aFMM62fBEAIB/hXzwJD6EEZ0xEGCX2t7oXqaKPIRgt4WruAQ285BISgdkP+HLGWyeGmNJcpIwFeRYRUA==";
       };
     };
     "strip-indent-2.0.0" = {
@@ -64127,7 +64451,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz";
-        sha1 = "5ef8db295d01e6ed6cbf7aab96998d7822527b68";
+        sha512 = "RsSNPLpq6YUL7QYy44RnPVTn/lcVZtb48Uof3X5JLbF4zD/Gs7ZFDv2HWol+leoQN2mT86LAzSshGfkTlSOpsA==";
       };
     };
     "strip-indent-3.0.0" = {
@@ -64154,7 +64478,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-0.1.3.tgz";
-        sha1 = "164c64e370a8a3cc00c9e01b539e569823f0ee54";
+        sha512 = "d2RPtrkLs8TurFFAIhW8IdM0+cOq+QFETWBGKHO+93eZ4Zt4P1CeJB5LHKW4EfEwabEpPL8/UTO3QX94+lqxwQ==";
       };
     };
     "strip-json-comments-1.0.4" = {
@@ -64163,7 +64487,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-1.0.4.tgz";
-        sha1 = "1e15fbcac97d3ee99bf2d73b4c656b082bbafb91";
+        sha512 = "AOPG8EBc5wAikaG1/7uFCNFJwnKOuQwFTpYBdTW6OvWHeZBQBrAA/amefHGrEiOnCPcLFZK6FUPtWVKpQVIRgg==";
       };
     };
     "strip-json-comments-2.0.1" = {
@@ -64172,7 +64496,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz";
-        sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a";
+        sha512 = "4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==";
       };
     };
     "strip-json-comments-3.1.0" = {
@@ -64244,7 +64568,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/strsplit/-/strsplit-1.0.0.tgz";
-        sha1 = "0fdedc68e91addcfcb2e6be9c262581a6e8c28aa";
+        sha512 = "efXqQImOEC0nyQqFzPUqa7NvF4B0ZPW2YM5nS+uXTB76sQt002brfZWQo/NSkAt771RTvv/brVQqtxJL7UBHMw==";
       };
     };
     "strtok3-6.3.0" = {
@@ -64298,7 +64622,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz";
-        sha1 = "7958c793e47e32e07d2b5cafe5c0bf8e12e77902";
+        sha512 = "Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==";
       };
     };
     "styled-components-5.3.5" = {
@@ -64370,7 +64694,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz";
-        sha1 = "f62cf17581e996b48fc965699f54c06ae268b8d2";
+        sha512 = "RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==";
       };
     };
     "subcommand-2.1.1" = {
@@ -64415,7 +64739,7 @@ let
       version = "0.9.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.8.tgz";
-        sha1 = "3a26ab96e06f78cf4ace8d083f6227fa55970947";
+        sha512 = "scTO/WQOTkZp3fIhglMg8A+7D1+Ua1DJnSG0MRWx2s9kSdW1+D53YqJ81iqHw0YttVF6ZHcKqOhXwRzn+QsihQ==";
       };
     };
     "sucrase-3.21.0" = {
@@ -64433,7 +64757,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sudo-block/-/sudo-block-1.2.0.tgz";
-        sha1 = "cc539bf8191624d4f507d83eeb45b4cea27f3463";
+        sha512 = "RE3gka+wcmkvAMt7Ht/TORJ6uxIo+MBPCCibLLygj6xec817CtEYDG6IyICFyWwHZwO3c6d61XdWRrgffq7WJQ==";
       };
     };
     "sudo-prompt-8.2.5" = {
@@ -64487,7 +64811,7 @@ let
       version = "1.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/superagent/-/superagent-1.8.5.tgz";
-        sha1 = "1c0ddc3af30e80eb84ebc05cb2122da8fe940b55";
+        sha512 = "4h4R6fISQXvgjIqZ8DjONYy3y2XPxgZO0LgHsBI6tDAEhzJLpWuK+thM60SmUiERJOEJzmxlIGx/GP6+azky/A==";
       };
     };
     "superagent-3.8.3" = {
@@ -64508,6 +64832,15 @@ let
         sha512 = "FT3QLMasz0YyCd4uIi5HNe+3t/onxMyEho7C3PSqmti3Twgy2rXT4fmkTz6wRL6bTF4uzPcfkUCa8u4JWHw8Ag==";
       };
     };
+    "superagent-7.1.6" = {
+      name = "superagent";
+      packageName = "superagent";
+      version = "7.1.6";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/superagent/-/superagent-7.1.6.tgz";
+        sha512 = "gZkVCQR1gy/oUXr+kxJMLDjla434KmSOKbx5iGD30Ql+AkJQ/YlPKECJy2nhqOsHLjGHzoDTXNSjhnvWhzKk7g==";
+      };
+    };
     "superagent-proxy-2.1.0" = {
       name = "superagent-proxy";
       packageName = "superagent-proxy";
@@ -64541,7 +64874,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-0.2.0.tgz";
-        sha1 = "d92de2694eb3f67323973d7ae3d8b55b4c22190a";
+        sha512 = "tdCZ28MnM7k7cJDJc7Eq80A9CsRFAAOZUy41npOZCs++qSjfIy7o5Rh46CBk+Dk5FbKJ33X3Tqg4YrV07N5RaA==";
       };
     };
     "supports-color-1.2.0" = {
@@ -64550,7 +64883,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz";
-        sha1 = "ff1ed1e61169d06b3cf2d588e188b18d8847e17e";
+        sha512 = "mS5xsnjTh5b7f2DM6bch6lR582UCOTphzINlZnDsfpIRrwI6r58rb6YSSGsdexkm8qw2bBVO2ID2fnJOTuLiPA==";
       };
     };
     "supports-color-1.3.1" = {
@@ -64559,7 +64892,7 @@ let
       version = "1.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-1.3.1.tgz";
-        sha1 = "15758df09d8ff3b4acc307539fabe27095e1042d";
+        sha512 = "OHbMkscHFRcNWEcW80fYhCrzAjheSIBwJChpFaBqA6zEz53nxumqi6ukciRb/UA0/v2nDNMk28ce/uBbYRDsng==";
       };
     };
     "supports-color-2.0.0" = {
@@ -64568,7 +64901,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz";
-        sha1 = "535d045ce6b6363fa40117084629995e9df324c7";
+        sha512 = "KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==";
       };
     };
     "supports-color-3.2.3" = {
@@ -64577,7 +64910,7 @@ let
       version = "3.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz";
-        sha1 = "65ac0504b3954171d8a64946b2ae3cbb8a5f54f6";
+        sha512 = "Jds2VIYDrlp5ui7t8abHN2bjAu4LV/q4N2KivFPpGH0lrka0BMq/33AmECUXlKPcHigkNaqfXRENFju+rlcy+A==";
       };
     };
     "supports-color-5.5.0" = {
@@ -64667,7 +65000,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/surge-ignore/-/surge-ignore-0.2.0.tgz";
-        sha1 = "5a7f8a20a71188cf9e75a2cfe8eb182de90daf3b";
+        sha512 = "ay4MPFjfiQzDsyTidljJLXQi22l2AwjcuamYnJWj/LdhaHdKmDJxRox52WXimdcLpMuLDtkQvv4+jEu+wu9eSw==";
       };
     };
     "svelte-3.48.0" = {
@@ -64703,7 +65036,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz";
-        sha1 = "3cf87dfeb4d07b4a3f14827bc186b3fd0c645cd8";
+        sha512 = "aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg==";
       };
     };
     "svg-pathdata-5.0.5" = {
@@ -64721,7 +65054,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz";
-        sha1 = "58f71cee3bd519b59d4b2a843b6c7de64ac04764";
+        sha512 = "ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==";
       };
     };
     "svg2img-0.9.4" = {
@@ -64739,7 +65072,7 @@ let
       version = "0.6.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/svgo/-/svgo-0.6.6.tgz";
-        sha1 = "b340889036f20f9b447543077d0f5573ed044c08";
+        sha512 = "C5A1r5SjFesNoKsmc+kWBxmB04iBGH2D/nFy8HJaME9+SyZKcmqcN8QG+GwxIc7D2+JWhaaW7uaM9+XwfplTEQ==";
       };
     };
     "svgo-1.3.2" = {
@@ -64766,7 +65099,7 @@ let
       version = "0.1.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-converter/-/swagger-converter-0.1.7.tgz";
-        sha1 = "a097519c6f1ee4dd67e308d9b53ddc9c2b257f97";
+        sha512 = "O2hZbWqq8x6j0uZ4qWj5dw45WPoAxKsJLJZqOgTqRtPNi8IqA+rDkDV/48S8qanS3KGv1QcVoPNLivMbyHHdAQ==";
       };
     };
     "swagger-converter-0.2.0" = {
@@ -64775,7 +65108,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-converter/-/swagger-converter-0.2.0.tgz";
-        sha1 = "354023cfc5ed3d4ef6895c310189067bbe66d616";
+        sha512 = "/tAkYi1hYHqcW7Nz3SiS+uQfxJuJV2Fib3yYdkt2j4ToA6/B+MjyAYBkp4arn9SdkCfqPDeqCbhnZHXugt1EqQ==";
       };
     };
     "swagger-editor-2.10.5" = {
@@ -64784,7 +65117,7 @@ let
       version = "2.10.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-editor/-/swagger-editor-2.10.5.tgz";
-        sha1 = "a4316ccb0d40a77d30dadf91f0f4db7e475f948a";
+        sha512 = "hiutL0QlvyaS5mIIIWArI+mM+fUcaYq1ZineDuTAiiGWfEqh6Nq8ERXo+iS+EPmcvSBD2sDxT7JrlblR2pcSLQ==";
       };
     };
     "swagger-express-mw-0.7.0" = {
@@ -64793,7 +65126,7 @@ let
       version = "0.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-express-mw/-/swagger-express-mw-0.7.0.tgz";
-        sha1 = "49f5db72d1d4b3827336ee6cc7b369caed5bf4c8";
+        sha512 = "Ie5LDGi6XYQC86/AVwpoigI5mKild8a/ORGcdwMl6odNaPstKoh6jnNXlAOYo+T5nJvQa+TibePp3JbDTM1UoQ==";
       };
     };
     "swagger-methods-1.0.8" = {
@@ -64811,7 +65144,7 @@ let
       version = "0.7.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-node-runner/-/swagger-node-runner-0.7.3.tgz";
-        sha1 = "3f4447fa66bc32ff4a9a6faac3cad5567b2ddc6a";
+        sha512 = "9YeeIw4iJTJGy6VXulwYseKl5U2tpJCaZDF1JobpWAtcMt+VbfL0HsxP3GpaCtpdNRMEAkQGzf/0D29DOJA+AQ==";
       };
     };
     "swagger-schema-official-2.0.0-bab6bed" = {
@@ -64820,7 +65153,7 @@ let
       version = "2.0.0-bab6bed";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz";
-        sha1 = "70070468d6d2977ca5237b2e519ca7d06a2ea3fd";
+        sha512 = "rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==";
       };
     };
     "swagger-test-templates-1.6.0" = {
@@ -64838,7 +65171,7 @@ let
       version = "0.9.16";
       src = fetchurl {
         url = "https://registry.npmjs.org/swagger-tools/-/swagger-tools-0.9.16.tgz";
-        sha1 = "e39fae3d581d713682491e1926cd87bf2c209bfb";
+        sha512 = "UDusGNSVAyUatTsGVnzug77yRkpEcwL/Tbqh63MhkJPNmtdKbB/Rq99/KZkmQlBjZheHcTUvd7KfKlmPzTC1dw==";
       };
     };
     "swagger-ui-dist-3.52.5" = {
@@ -64874,7 +65207,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/sway/-/sway-1.0.0.tgz";
-        sha1 = "368ffc0e96bd84226ed1b9b33d66be57da04f09a";
+        sha512 = "+g85SAI2GsUll2X1kt30bal8LVwUpGdtwPsUft7nmZjiLAxPrQWBv4a2wYukvGd7o3MxxyPTKtYJxj6pc4kqGw==";
       };
     };
     "swimmer-1.4.0" = {
@@ -64892,7 +65225,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/switchback/-/switchback-1.1.3.tgz";
-        sha1 = "12c70109348d6a296f739ba910eeb853f8b6e631";
+        sha512 = "S6p+f2OXd6LlMfnlPfK6Ka8n7VZFW2sCU8zHAFaAf0GR3JCdQnONUeB8MwaeXABG+RknIt1qY2SnAzYbEHb7Mw==";
       };
     };
     "switchback-2.0.5" = {
@@ -64910,7 +65243,7 @@ let
       version = "0.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/symbol/-/symbol-0.2.3.tgz";
-        sha1 = "3b9873b8a901e47c6efe21526a3ac372ef28bbc7";
+        sha512 = "IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==";
       };
     };
     "symbol-observable-1.0.1" = {
@@ -64919,7 +65252,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz";
-        sha1 = "8340fc4702c3122df5d22288f88283f513d3fdd4";
+        sha512 = "Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==";
       };
     };
     "symbol-observable-1.2.0" = {
@@ -64994,13 +65327,13 @@ let
         sha512 = "YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==";
       };
     };
-    "systeminformation-5.11.16" = {
+    "systeminformation-5.11.21" = {
       name = "systeminformation";
       packageName = "systeminformation";
-      version = "5.11.16";
+      version = "5.11.21";
       src = fetchurl {
-        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.11.16.tgz";
-        sha512 = "/a1VfP9WELKLT330yhAHJ4lWCXRYynel1kMMHKc/qdzCgDt3BIcMlo+3tKcTiRHFefjV3fz4AvqMx7dGO/72zw==";
+        url = "https://registry.npmjs.org/systeminformation/-/systeminformation-5.11.21.tgz";
+        sha512 = "aYuoelPUEItkeFi9d2EgGYZur6CgGaPAOUv9K5h1rJn5EyAYIXtonxJN3Dn58zQ3BFbj9FggaxaVBGg/pNRngA==";
       };
     };
     "sywac-1.3.0" = {
@@ -65018,7 +65351,7 @@ let
       version = "3.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/table/-/table-3.8.3.tgz";
-        sha1 = "2bbc542f0fda9861a755d3947fefd8b3f513855f";
+        sha512 = "RZuzIOtzFbprLCE0AXhkI0Xi42ZJLZhCC+qkwuMLf/Vjz3maWpA8gz1qMdbmNoI9cOROT2Am/DxeRyXenrL11g==";
       };
     };
     "table-4.0.2" = {
@@ -65063,7 +65396,7 @@ let
       version = "1.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/tabtab/-/tabtab-1.3.2.tgz";
-        sha1 = "bb9c2ca6324f659fde7634c2caf3c096e1187ca7";
+        sha512 = "qHWOJ5g7lrpftZMyPv3ZaYZs7PuUTKWEP/TakZHfpq66bSwH25SQXn5616CCh6Hf/1iPcgQJQHGcJkzQuATabQ==";
       };
     };
     "tabtab-2.2.2" = {
@@ -65072,7 +65405,7 @@ let
       version = "2.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/tabtab/-/tabtab-2.2.2.tgz";
-        sha1 = "7a047f143b010b4cbd31f857e82961512cbf4e14";
+        sha512 = "xEwHn571JmOrNGJB1Ehu/Dc2/5pu4aIvCnlKmxrJzzhAmZEy8+RL5cjxq/J66GE0Qf8FRvFg9V3jFos8oz0IQA==";
       };
     };
     "tabtab-git+https://github.com/mixu/node-tabtab.git" = {
@@ -65091,7 +65424,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tabula/-/tabula-1.10.0.tgz";
-        sha1 = "2ed67caf8cad091de80e43622850d899713b2f47";
+        sha512 = "G8RjITVxDF+tZg7kbjrSsZBeVz3esl14LhyClLFpBmMKkD5q6g/Inv6Jjbb8bQ5UIAXOA3p3XoUqannhvIGN9Q==";
       };
     };
     "taffydb-2.6.2" = {
@@ -65100,7 +65433,7 @@ let
       version = "2.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/taffydb/-/taffydb-2.6.2.tgz";
-        sha1 = "7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268";
+        sha512 = "y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA==";
       };
     };
     "tail-2.2.4" = {
@@ -65118,7 +65451,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/taketalk/-/taketalk-1.0.0.tgz";
-        sha1 = "b4d4f0deed206ae7df775b129ea2ca6de52f26dd";
+        sha512 = "kS7E53It6HA8S1FVFBWP7HDwgTiJtkmYk7TsowGlizzVrivR1Mf9mgjXHY1k7rOfozRVMZSfwjB3bevO4QEqpg==";
       };
     };
     "tapable-0.2.9" = {
@@ -65280,7 +65613,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-0.1.2.tgz";
-        sha1 = "9450e8768c83b416fd4d1a6a9449eeccbf496c29";
+        sha512 = "jZI6bc4i0bRpxHprkCzqsi8r8jvaWXghDvFEdjH1yGNfSe3KH1l8TlM+TyEmB42p1XUCrOCbHh/55C6Hszqj6A==";
       };
     };
     "tcp-port-used-1.0.2" = {
@@ -65316,7 +65649,7 @@ let
       version = "0.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz";
-        sha1 = "e0c6bc4d26b903124410e4fed81103014dfc1f59";
+        sha512 = "jtnWJs6B1cZlHs9wPG7BrowKxZw/rf6+UpGAkr8AaYmiTyTO7zQlLoST8zx/8TcUPnZmeBoB+H8ARuHZaSijVw==";
       };
     };
     "temp-0.8.4" = {
@@ -65343,7 +65676,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/temp-dir/-/temp-dir-1.0.0.tgz";
-        sha1 = "0a7c0ea26d3a39afa7e0ebea9c1fc0bc4daa011d";
+        sha512 = "xZFXEGbG7SNC3itwBzI3RYjq/cEhBkx2hJuKGIUOcEULmkQExXiHat2z/qkISYsuR+IKumhEfKKbV5qXmhICFQ==";
       };
     };
     "temp-dir-2.0.0" = {
@@ -65370,7 +65703,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tempy/-/tempy-0.1.0.tgz";
-        sha1 = "8527413cd07100834fcc9cbb8242be95ba0e1fee";
+        sha512 = "WntL0TUA4C4nPEPSt+9Zm5wpHBJuBQwMb0u7izPVxUurPRajjxz+KnPFCvbhZv21a7PuK5NWjkDQe8lw0bKLXg==";
       };
     };
     "tempy-0.2.1" = {
@@ -65415,7 +65748,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/term-canvas/-/term-canvas-0.0.5.tgz";
-        sha1 = "597afac2fa6369a6f17860bce9c5f66d6ea0ca96";
+        sha512 = "eZ3rIWi5yLnKiUcsW8P79fKyooaLmyLWAGqBhFspqMxRNUiB4GmHHk5AzQ4LxvFbJILaXqQZLwbbATLOhCFwkw==";
       };
     };
     "term-img-3.0.0" = {
@@ -65433,7 +65766,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz";
-        sha1 = "458b83887f288fc56d6fffbfad262e26638efa69";
+        sha512 = "7dPUZQGy/+m3/wjVz3ZW5dobSoD/02NxJpoXUX0WIyjfVS3l0c+b/+9phIDFA7FHzkYtwtMFgeGZ/Y8jVTeqQQ==";
       };
     };
     "term-size-2.2.1" = {
@@ -65490,13 +65823,13 @@ let
         sha512 = "EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==";
       };
     };
-    "terser-5.14.0" = {
+    "terser-5.14.1" = {
       name = "terser";
       packageName = "terser";
-      version = "5.14.0";
+      version = "5.14.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/terser/-/terser-5.14.0.tgz";
-        sha512 = "JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g==";
+        url = "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz";
+        sha512 = "+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==";
       };
     };
     "terser-webpack-plugin-1.4.5" = {
@@ -65532,7 +65865,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz";
-        sha1 = "11da6ff670f3471a73b625ca4f3fdcf7bb748291";
+        sha512 = "+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==";
       };
     };
     "text-decoding-1.0.0" = {
@@ -65544,6 +65877,15 @@ let
         sha512 = "/0TJD42KDnVwKmDK6jj3xP7E2MG7SHAOG4tyTgyUCRPdHwvkquYNLEQltmdMa3owq3TkddCVcTsoctJI8VQNKA==";
       };
     };
+    "text-encoder-lite-2.0.0" = {
+      name = "text-encoder-lite";
+      packageName = "text-encoder-lite";
+      version = "2.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/text-encoder-lite/-/text-encoder-lite-2.0.0.tgz";
+        sha512 = "bo08ND8LlBwPeU23EluRUcO3p2Rsb/eN5EIfOVqfRmblNDEVKK5IzM9Qfidvo+odT0hhV8mpXQcP/M5MMzABXw==";
+      };
+    };
     "text-encoding-utf-8-1.0.2" = {
       name = "text-encoding-utf-8";
       packageName = "text-encoding-utf-8";
@@ -65577,7 +65919,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz";
-        sha1 = "7f5ee823ae805207c00af2df4a84ec3fcfa570b4";
+        sha512 = "N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==";
       };
     };
     "textextensions-5.15.0" = {
@@ -65595,7 +65937,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/textlint-rule-helper/-/textlint-rule-helper-1.2.0.tgz";
-        sha1 = "be68d47a5146b16dd116278c9aeb7bd35631ccda";
+        sha512 = "yJmVbmyuUPOndKsxOijpx/G7mwybXXf4M10U2up0BeIZSN+6drUl+aSKAoC+RUHY7bG4ogLwRcmWoNG1lSrRIQ==";
       };
     };
     "textlint-rule-helper-2.2.1" = {
@@ -65667,7 +66009,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/then-fs/-/then-fs-2.0.0.tgz";
-        sha1 = "72f792dd9d31705a91ae19ebfcf8b3f968c81da2";
+        sha512 = "5ffcBcU+vFUCYDNi/o507IqjqrTkuGsLVZ1Fp50hwgZRY7ufVFa9jFfTy5uZ2QnSKacKigWKeaXkOqLa4DsjLw==";
       };
     };
     "thenby-1.3.4" = {
@@ -65694,7 +66036,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz";
-        sha1 = "1a1918d402d8fc3f98fbf234db0bcc8cc10e9726";
+        sha512 = "RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==";
       };
     };
     "thirty-two-0.0.2" = {
@@ -65703,7 +66045,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/thirty-two/-/thirty-two-0.0.2.tgz";
-        sha1 = "4253e29d8cb058f0480267c5698c0e4927e54b6a";
+        sha512 = "0j1A9eqbP8dSEtkqqEJGpYFN2lPgQR1d0qKS2KNAmIxkK6gV37D5hRa5b/mYzVL1fyAVWBkeUDIXybZdCLVBzA==";
       };
     };
     "thirty-two-1.0.2" = {
@@ -65712,7 +66054,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/thirty-two/-/thirty-two-1.0.2.tgz";
-        sha1 = "4ca2fffc02a51290d2744b9e3f557693ca6b627a";
+        sha512 = "OEI0IWCe+Dw46019YLl6V10Us5bi574EvlJEOcAkB29IzQ/mYD1A6RyNHLjZPiHCmuodxvgF6U+vZO1L15lxVA==";
       };
     };
     "thread-loader-2.1.3" = {
@@ -65733,6 +66075,15 @@ let
         sha512 = "woZFt0cLFkPdhsa+IGpRo1jiSouaHxMIljzTgt30CMjBWoUYbbcHqnunW5Yv+BXko9H05MVIcxMipI3Jblallw==";
       };
     };
+    "thread-stream-0.15.2" = {
+      name = "thread-stream";
+      packageName = "thread-stream";
+      version = "0.15.2";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/thread-stream/-/thread-stream-0.15.2.tgz";
+        sha512 = "UkEhKIg2pD+fjkHQKyJO3yoIvAP3N6RlNFt2dUhcS1FGvCD1cQa1M/PGknCLFIyZdtJOWQjejp7bdNqmN7zwdA==";
+      };
+    };
     "thriftrw-3.12.0" = {
       name = "thriftrw";
       packageName = "thriftrw";
@@ -65757,7 +66108,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/throttle/-/throttle-1.0.3.tgz";
-        sha1 = "8a32e4a15f1763d997948317c5ebe3ad8a41e4b7";
+        sha512 = "VYINSQFQeFdmhCds0tTqvQmLmdAjzGX1D6GnRQa4zlq8OpTtWSMddNyRq8Z4Snw/d6QZrWt9cM/cH8xTiGUkYA==";
       };
     };
     "throttleit-0.0.2" = {
@@ -65766,7 +66117,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz";
-        sha1 = "cfedf88e60c00dd9697b61fdd2a8343a9b680eaf";
+        sha512 = "HtlTFeyYs1elDM2txiIGsdXHaq8kffVaZH/QEBRbo95zQqzlsBx5ELKhkPOZVad9OK9oxzwx6UrQN8Vfh/+yag==";
       };
     };
     "throttleit-1.0.0" = {
@@ -65775,7 +66126,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/throttleit/-/throttleit-1.0.0.tgz";
-        sha1 = "9e785836daf46743145a5984b6268d828528ac6c";
+        sha512 = "rkTVqu6IjfQ/6+uNuuc3sZek4CEYxTJom3IktzgdSxcZqdARuebbA/f4QmAxMQIxqq9ZLEUkSYqvuk1I6VKq4g==";
       };
     };
     "through-2.2.7" = {
@@ -65784,7 +66135,7 @@ let
       version = "2.2.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/through/-/through-2.2.7.tgz";
-        sha1 = "6e8e21200191d4eb6a99f6f010df46aa1c6eb2bd";
+        sha512 = "JIR0m0ybkmTcR8URann+HbwKmodP+OE8UCbsifQDYMLD5J3em1Cdn3MYPpbEd5elGDwmP98T+WbqP/tvzA5Mjg==";
       };
     };
     "through-2.3.8" = {
@@ -65793,7 +66144,7 @@ let
       version = "2.3.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/through/-/through-2.3.8.tgz";
-        sha1 = "0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5";
+        sha512 = "w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==";
       };
     };
     "through2-0.2.3" = {
@@ -65802,7 +66153,7 @@ let
       version = "0.2.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-0.2.3.tgz";
-        sha1 = "eb3284da4ea311b6cc8ace3653748a52abf25a3f";
+        sha512 = "mLa8Bn2mZurjyomGKWRu3Bo2mvoQojFks9NvOK8H+k4kDJNkdEqG522KFZsEFBEl6rKkxTgFbE5+OPcgfvPEHA==";
       };
     };
     "through2-0.4.2" = {
@@ -65811,7 +66162,7 @@ let
       version = "0.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-0.4.2.tgz";
-        sha1 = "dbf5866031151ec8352bb6c4db64a2292a840b9b";
+        sha512 = "45Llu+EwHKtAZYTPPVn3XZHBgakWMN3rokhEv5hu596XP+cNgplMg+Gj+1nmAvj+L0K7+N49zBKx5rah5u0QIQ==";
       };
     };
     "through2-0.6.5" = {
@@ -65820,7 +66171,7 @@ let
       version = "0.6.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz";
-        sha1 = "41ab9c67b29d57209071410e1d7a7a968cd3ad48";
+        sha512 = "RkK/CCESdTKQZHdmKICijdKKsCRVHs5KsLZ6pACAmF/1GPUQhonHSXWNERctxEp7RmvjdNbZTL5z9V7nSCXKcg==";
       };
     };
     "through2-2.0.0" = {
@@ -65829,7 +66180,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/through2/-/through2-2.0.0.tgz";
-        sha1 = "f41a1c31df5e129e4314446f66eca05cd6a30480";
+        sha512 = "3LhMYlSFQltedwvYhWeUfxaR1cpZb8f9niMsM5T3a5weZKBYu4dfR6Vg6QkK5+SWbK3txeOUCrHtc+KQuVbnDw==";
       };
     };
     "through2-2.0.5" = {
@@ -65877,31 +66228,13 @@ let
         sha512 = "4Mvv5P4xyVz6RM07wS3tGyZ/kPAiKtLeqznq3hK4pxDiTUSyQ5xeFlBiWxflCWexvSnxo2aAfedzKajJqihz4Q==";
       };
     };
-    "thunkify-2.1.2" = {
-      name = "thunkify";
-      packageName = "thunkify";
-      version = "2.1.2";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/thunkify/-/thunkify-2.1.2.tgz";
-        sha1 = "faa0e9d230c51acc95ca13a361ac05ca7e04553d";
-      };
-    };
-    "thunkify-wrap-1.0.4" = {
-      name = "thunkify-wrap";
-      packageName = "thunkify-wrap";
-      version = "1.0.4";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/thunkify-wrap/-/thunkify-wrap-1.0.4.tgz";
-        sha1 = "b52be548ddfefda20e00b58c6096762b43dd6880";
-      };
-    };
     "thunky-0.1.0" = {
       name = "thunky";
       packageName = "thunky";
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/thunky/-/thunky-0.1.0.tgz";
-        sha1 = "bf30146824e2b6e67b0f2d7a4ac8beb26908684e";
+        sha512 = "vquTt/sKNzFqFK8DKLg33U7deg93WKYH4CE2Ul9hOyMCfm7VXgM7GJQRpPAgnmgnrf407Fcq8TQVEKlbavAu+A==";
       };
     };
     "thunky-1.1.0" = {
@@ -65928,7 +66261,7 @@ let
       version = "1.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tildify/-/tildify-1.2.0.tgz";
-        sha1 = "dcec03f55dca9b7aa3e5b04f21817eb56e63588a";
+        sha512 = "Y9q1GaV/BO65Z9Yf4NOGMuwt3SGdptkZBnaaKfTQakrDyCLiuO1Kc5wxW4xLdsjzunRtqtOdhekiUFmZbklwYQ==";
       };
     };
     "time-line-1.0.1" = {
@@ -65937,7 +66270,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/time-line/-/time-line-1.0.1.tgz";
-        sha1 = "afb89542301c3b5010d118c66b5d63920f5e9a7a";
+        sha512 = "3wIHVPXu9EqiHV+m5TwXIi+2YQQREOsH5z5d2hIcxKndeHPmh1iRJDyHkoeFkWP7rM+nGFZnZ7widfayR2GxPQ==";
       };
     };
     "time-ordered-set-1.0.2" = {
@@ -65955,7 +66288,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz";
-        sha1 = "764a5a11af50561921b133f3b44e618687e0f5c3";
+        sha512 = "gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw==";
       };
     };
     "timed-out-2.0.0" = {
@@ -65964,7 +66297,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/timed-out/-/timed-out-2.0.0.tgz";
-        sha1 = "f38b0ae81d3747d628001f41dafc652ace671c0a";
+        sha512 = "pqqJOi1rF5zNs/ps4vmbE4SFCrM4iR7LW+GHAsHqO/EumqbIWceioevYLM5xZRgQSH6gFgL9J/uB7EcJhQ9niQ==";
       };
     };
     "timed-out-3.1.3" = {
@@ -65973,7 +66306,7 @@ let
       version = "3.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/timed-out/-/timed-out-3.1.3.tgz";
-        sha1 = "95860bfcc5c76c277f8f8326fd0f5b2e20eba217";
+        sha512 = "3RB4qgvPkxF/FGPnrzaWLhW1rxNK2sdH0mFjbhxkfTR6QXvcM3EtYm9L44UrhODZrZ+yhDXeMncLqi8QXn2MJg==";
       };
     };
     "timed-out-4.0.1" = {
@@ -65982,7 +66315,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz";
-        sha1 = "f32eacac5a175bea25d7fab565ab3ed8741ef56f";
+        sha512 = "G7r3AhovYtr5YKOWQkta8RKAPb+J9IsO4uVmzjl8AZwfhs8UcUwTiD6gcJYSgOtzyjvQKrKYn41syHbUWMkafA==";
       };
     };
     "timeout-refresh-1.0.3" = {
@@ -66000,7 +66333,7 @@ let
       version = "1.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz";
-        sha1 = "c9c58b575be8407375cb5e2462dacee74359f41d";
+        sha512 = "PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==";
       };
     };
     "timers-browserify-2.0.12" = {
@@ -66027,7 +66360,16 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz";
-        sha1 = "405411a8e7e6339fe64db9a234de11dc31e02bd4";
+        sha512 = "qsdtZH+vMoCARQtyod4imc2nIJwg9Cc7lPRrw9CzF8ZKR0khdr8+2nX80PBhET3tcyTtJDxAffGh2rXH4tyU8A==";
+      };
+    };
+    "tiny-each-async-2.0.3" = {
+      name = "tiny-each-async";
+      packageName = "tiny-each-async";
+      version = "2.0.3";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tiny-each-async/-/tiny-each-async-2.0.3.tgz";
+        sha512 = "5ROII7nElnAirvFn8g7H7MtpfV1daMcyfTGQwsn/x2VtyV+VPiO5CjReCJtWLvoKTDEDmZocf3cNPraiMnBXLA==";
       };
     };
     "tiny-emitter-2.1.0" = {
@@ -66054,7 +66396,7 @@ let
       version = "0.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tiny-queue/-/tiny-queue-0.2.1.tgz";
-        sha1 = "25a67f2c6e253b2ca941977b5ef7442ef97a6046";
+        sha512 = "EijGsv7kzd9I9g0ByCl6h42BWNGUZrlCSejfrb3AKeHC33SGbASu1VDf5O3rRiiUOhAC9CHdZxFPbZu0HmR70A==";
       };
     };
     "tiny-secp256k1-1.1.6" = {
@@ -66066,15 +66408,6 @@ let
         sha512 = "FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==";
       };
     };
-    "tiny-secp256k1-2.2.0" = {
-      name = "tiny-secp256k1";
-      packageName = "tiny-secp256k1";
-      version = "2.2.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-2.2.0.tgz";
-        sha512 = "2hPuUGCroLrxh6xxwoe+1RgPpOOK1w2uTnhgiHBpvoutBR+krNuT4hOXQyOaaYnZgoXBB6hBYkuAJHxyeBOPzQ==";
-      };
-    };
     "tiny-secp256k1-2.2.1" = {
       name = "tiny-secp256k1";
       packageName = "tiny-secp256k1";
@@ -66090,7 +66423,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz";
-        sha1 = "320b5a52d83abb5978d81a3e887d4aefb15a6164";
+        sha512 = "+CorETse1kl98xg0WAzii8DTT4ABF4R3nquhrkIbVGcw1T8JYs5Gfx9xEfGINPUZGDj9C4BmOtuKeaTtuuRolg==";
       };
     };
     "tinycolor2-1.4.2" = {
@@ -66171,7 +66504,7 @@ let
       version = "0.0.29";
       src = fetchurl {
         url = "https://registry.npmjs.org/tmp/-/tmp-0.0.29.tgz";
-        sha1 = "f25125ff0dd9da3ccb0c2dd371ee1288bb9128c0";
+        sha512 = "89PTqMWGDva+GqClOqBV9s3SMh7MA3Mq0pJUdAoHuF65YoE7O0LermaZkVfT5/Ngfo18H4eYiyG7zKOtnEbxsw==";
       };
     };
     "tmp-0.0.33" = {
@@ -66183,6 +66516,15 @@ let
         sha512 = "jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==";
       };
     };
+    "tmp-0.1.0" = {
+      name = "tmp";
+      packageName = "tmp";
+      version = "0.1.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/tmp/-/tmp-0.1.0.tgz";
+        sha512 = "J7Z2K08jbGcdA1kkQpJSqLF6T0tdQqpR2pnSUXsIchbPdTI9v3e85cLW0d6WDhwuAleOV71j2xWs8qMPfK7nKw==";
+      };
+    };
     "tmp-0.2.1" = {
       name = "tmp";
       packageName = "tmp";
@@ -66198,7 +66540,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz";
-        sha1 = "1865f43d9e74b0822db9f145b78cff7d0f7c849b";
+        sha512 = "rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA==";
       };
     };
     "to-array-0.1.3" = {
@@ -66207,7 +66549,7 @@ let
       version = "0.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-array/-/to-array-0.1.3.tgz";
-        sha1 = "d45dadc6363417f60f28474fea50ecddbb4f4991";
+        sha512 = "JQk/QMS4oHyU2VufVeyjN25dcnZnr1PV1pa1oKSj7l5tVO9WrU62og3fYzB3mrgJZZgBxdrrA/v6iZzMDuyFYw==";
       };
     };
     "to-array-0.1.4" = {
@@ -66216,7 +66558,7 @@ let
       version = "0.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz";
-        sha1 = "17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890";
+        sha512 = "LhVdShQD/4Mk4zXNroIQZJC+Ap3zgLcDuwEdcmLv9CCO73NWockQDwyUnW/m8VX/EElfL6FcYx7EeutN4HJA6A==";
       };
     };
     "to-arraybuffer-1.0.1" = {
@@ -66225,7 +66567,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz";
-        sha1 = "7d229b1fcc637e466ca081180836a7aabff83f43";
+        sha512 = "okFlQcoGTi4LQBG/PgSYblw9VOyptsz2KJZqc6qtgGdes8VktzUQkj4BI2blit072iS8VODNcMA+tvnS9dnuMA==";
       };
     };
     "to-buffer-1.1.1" = {
@@ -66243,7 +66585,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz";
-        sha1 = "1a56054b2f9d696298ce66a60897322b6f423e46";
+        sha512 = "nD8pQi5H34kyu1QDMFjzEIYqk0xa9Alt6ZfrdEMuHCFOfTLhDG5pgTu/aAM9Wt9lXILwlXmWP43b8sav0GNE8Q==";
       };
     };
     "to-fast-properties-1.0.3" = {
@@ -66252,7 +66594,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz";
-        sha1 = "b83571fa4d8c25b82e231b06e3a3055de4ca1a47";
+        sha512 = "lxrWP8ejsq+7E3nNjwYmUBMAgjMTZoTI+sdBOpvNyijeDLa29LUn9QaoXAHv4+Z578hbmHHJKZknzxVtvo77og==";
       };
     };
     "to-fast-properties-2.0.0" = {
@@ -66261,7 +66603,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
-        sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+        sha512 = "/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==";
       };
     };
     "to-iso-string-0.0.2" = {
@@ -66270,7 +66612,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz";
-        sha1 = "4dc19e664dfccbe25bd8db508b00c6da158255d1";
+        sha512 = "oeHLgfWA7d0CPQa6h0+i5DAJZISz5un0d5SHPkw+Untclcvzv9T+AC3CvGXlZJdOlIbxbTfyyzlqCXc5hjpXYg==";
       };
     };
     "to-no-case-1.0.2" = {
@@ -66279,7 +66621,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz";
-        sha1 = "c722907164ef6b178132c8e69930212d1b4aa16a";
+        sha512 = "Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==";
       };
     };
     "to-object-path-0.3.0" = {
@@ -66288,7 +66630,7 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz";
-        sha1 = "297588b7b0e7e0ac08e04e672f85c1f4999e17af";
+        sha512 = "9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==";
       };
     };
     "to-readable-stream-1.0.0" = {
@@ -66324,7 +66666,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz";
-        sha1 = "7c80c17b9dfebe599e27367e0d4dd5590141db38";
+        sha512 = "ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==";
       };
     };
     "to-regex-range-5.0.1" = {
@@ -66342,7 +66684,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz";
-        sha1 = "b052daafb1b2b29dc770cea0163e5ec0ebc9fc17";
+        sha512 = "rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==";
       };
     };
     "to-through-2.0.0" = {
@@ -66351,7 +66693,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz";
-        sha1 = "fc92adaba072647bc0b67d6b03664aa195093af6";
+        sha512 = "+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q==";
       };
     };
     "to-vfile-1.0.0" = {
@@ -66360,7 +66702,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/to-vfile/-/to-vfile-1.0.0.tgz";
-        sha1 = "88defecd43adb2ef598625f0e3d59f7f342941ba";
+        sha512 = "BHc+hdHwULe8x6xmQhSuTsiiPHyTCCf7dtH7l6WkBoYBR2rDfYtoJufKLDDAYGMfA+1XoRq44HfyjoB9vMBr1w==";
       };
     };
     "to-vfile-4.0.0" = {
@@ -66423,7 +66765,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/token-stream/-/token-stream-0.0.1.tgz";
-        sha1 = "ceeefc717a76c4316f126d0b9dbaa55d7e7df01a";
+        sha512 = "nfjOAu/zAWmX9tgwi5NRp7O7zTDUD1miHiB40klUnAh9qnL1iXdgzcz/i5dMaL5jahcBAaSfmNOBBJBLJW8TEg==";
       };
     };
     "token-stream-1.0.0" = {
@@ -66432,7 +66774,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz";
-        sha1 = "cc200eab2613f4166d27ff9afc7ca56d49df6eb4";
+        sha512 = "VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==";
       };
     };
     "token-types-2.1.1" = {
@@ -66486,7 +66828,7 @@ let
       version = "1.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/toposort/-/toposort-1.0.7.tgz";
-        sha1 = "2e68442d9f64ec720b8cc89e6443ac6caa950029";
+        sha512 = "FclLrw8b9bMWf4QlCJuHBEVhSRsqDj6u3nIjAzPeJvgl//1hBlffdlk0MALceL14+koWEdU4ofRAXofbODxQzg==";
       };
     };
     "toposort-2.0.2" = {
@@ -66495,7 +66837,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz";
-        sha1 = "ae21768175d1559d48bef35420b2f4962f09c330";
+        sha512 = "0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==";
       };
     };
     "torrent-discovery-5.4.0" = {
@@ -66504,7 +66846,7 @@ let
       version = "5.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/torrent-discovery/-/torrent-discovery-5.4.0.tgz";
-        sha1 = "2d17d82cf669ada7f9dfe75db4b31f7034b71e29";
+        sha512 = "bPTDIA7XEjRlw6vQyt7kM/h1mg1INBsibjbujISITonx4POENZgxfyCSEXZpDhbAkluSPH4HKRKs4/YTmNLC6w==";
       };
     };
     "torrent-discovery-9.4.12" = {
@@ -66549,7 +66891,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tosource/-/tosource-1.0.0.tgz";
-        sha1 = "42d88dd116618bcf00d6106dd5446f3427902ff1";
+        sha512 = "N6g8eQ1eerw6Y1pBhdgkubWIiPFwXa2POSUrlL8jth5CyyEWNWzoGKRkO3CaO7Jx27hlJP54muB3btIAbx4MPg==";
       };
     };
     "touch-3.1.0" = {
@@ -66630,7 +66972,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz";
-        sha1 = "8184fd347dac9cdc185992f3a6622e14b9d9ab6a";
+        sha512 = "N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==";
       };
     };
     "tr46-1.0.1" = {
@@ -66639,7 +66981,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz";
-        sha1 = "a8b13fd6bfd2489519674ccde55ba3693b706d09";
+        sha512 = "dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==";
       };
     };
     "tr46-2.1.0" = {
@@ -66675,7 +67017,7 @@ let
       version = "1.6.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/transliteration/-/transliteration-1.6.6.tgz";
-        sha1 = "8a7e8ab3044ad19f233f50c15894cbf69e5d205e";
+        sha512 = "5Jv2d/ngAzTopwpyJtOmlj7W/EYAamm+a7Or8jCnYM9FKp8djoJIzvZFUWO/X44OovZmrsWSwYML05twxb2Pcw==";
       };
     };
     "trash-7.2.0" = {
@@ -66693,7 +67035,7 @@ let
       version = "0.3.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz";
-        sha1 = "717b8f220cc0bb7b44e40514c22b2e8bbc70d8b9";
+        sha512 = "iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==";
       };
     };
     "traverse-0.6.6" = {
@@ -66702,7 +67044,7 @@ let
       version = "0.6.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/traverse/-/traverse-0.6.6.tgz";
-        sha1 = "cbdf560fd7b9af632502fed40f918c157ea97137";
+        sha512 = "kdf4JKs8lbARxWdp7RKdNzoJBhGUcIalSYibuGyHJbmk40pOysQ0+QPvlkCOICOivDWU2IJo2rkrxyTK2AH4fw==";
       };
     };
     "tree-kill-1.2.2" = {
@@ -66756,7 +67098,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz";
-        sha1 = "5858547f6b290757ee95cccc666fb50084c460dd";
+        sha512 = "YzQV+TZg4AxpKxaTHK3c3D+kRDCGVEE7LemdlQZoQXn0iennk10RsIoY6ikzAqJTc9Xjl9C1/waHom/J86ziAQ==";
       };
     };
     "trim-lines-1.1.3" = {
@@ -66774,7 +67116,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz";
-        sha1 = "5887966bb582a4503a41eb524f7d35011815a613";
+        sha512 = "Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==";
       };
     };
     "trim-newlines-2.0.0" = {
@@ -66783,7 +67125,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/trim-newlines/-/trim-newlines-2.0.0.tgz";
-        sha1 = "b403d0b91be50c331dfc4b82eeceb22c3de16d20";
+        sha512 = "MTBWv3jhVjTU7XR3IQHllbiJs8sc75a80OEhB6or/q7pLTWgQ0bMGQXXYQSrSuXe6WiKWDZ5txXY5P59a/coVA==";
       };
     };
     "trim-newlines-3.0.1" = {
@@ -66810,7 +67152,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz";
-        sha1 = "e3646a2ea4e891312bf7eace6cfb05380bc01c21";
+        sha512 = "pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==";
       };
     };
     "trim-trailing-lines-1.1.4" = {
@@ -66864,7 +67206,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz";
-        sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
+        sha512 = "95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==";
       };
     };
     "try-require-1.2.1" = {
@@ -66873,7 +67215,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/try-require/-/try-require-1.2.1.tgz";
-        sha1 = "34489a2cac0c09c1cc10ed91ba011594d4333be2";
+        sha512 = "aMzrGUIA/R2LwUgvsOusx+GTy8ERyNjpBzbWgS1Qx4oTFlXCMxY3PyyXbPE1pvrvK/CXpO+BBREEqrTkNroC+A==";
       };
     };
     "try-resolve-1.0.1" = {
@@ -66882,7 +67224,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/try-resolve/-/try-resolve-1.0.1.tgz";
-        sha1 = "cfde6fabd72d63e5797cfaab873abbe8e700e912";
+        sha512 = "yHeaPjCBzVaXwWl5IMUapTaTC2rn/eBYg2fsG2L+CvJd+ttFbk0ylDnpTO3wVhosmE1tQEvcebbBeKLCwScQSQ==";
       };
     };
     "tryer-1.0.1" = {
@@ -66939,6 +67281,15 @@ let
         sha512 = "QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==";
       };
     };
+    "ts-loader-9.3.0" = {
+      name = "ts-loader";
+      packageName = "ts-loader";
+      version = "9.3.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ts-loader/-/ts-loader-9.3.0.tgz";
+        sha512 = "2kLLAdAD+FCKijvGKi9sS0OzoqxLCF3CxHpok7rVgCZ5UldRzH0TkbwG9XECKjBzHsAewntC5oDaI/FwKzEUog==";
+      };
+    };
     "ts-log-2.2.4" = {
       name = "ts-log";
       packageName = "ts-log";
@@ -67008,7 +67359,7 @@ let
       version = "5.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tsconfig/-/tsconfig-5.0.3.tgz";
-        sha1 = "5f4278e701800967a8fc383fd19648878f2a6e3a";
+        sha512 = "Cq65A3kVp6BbsUgg9DRHafaGmbMb9EhAc7fjWvudNWKjkbWrt43FnrtZt6awshH1R0ocfF2Z0uxock3lVqEgOg==";
       };
     };
     "tsconfig-paths-3.14.1" = {
@@ -67170,7 +67521,7 @@ let
       version = "0.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz";
-        sha1 = "a157ba402da24e9bf957f9aa69d524eed42901a6";
+        sha512 = "JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==";
       };
     };
     "tty-browserify-0.0.1" = {
@@ -67188,7 +67539,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tumblr/-/tumblr-0.4.1.tgz";
-        sha1 = "ac9f4ba7bd04525d6bd8b087f85553c8ef19dc9e";
+        sha512 = "MB/C4h4n43kq8SpHtwIL/DlUXJfTWR7lG9AUJVJsLeW38q0mTXHoHtlnAqt27CsLFZC864i9P508pRXW3fjkJA==";
       };
     };
     "tunnel-0.0.6" = {
@@ -67206,7 +67557,7 @@ let
       version = "0.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz";
-        sha1 = "6373db76909fe570e08d73583365ed828a74eeeb";
+        sha512 = "e0IoVDWx8SDHc/hwFTqJDQ7CCDTEeGhmcT9jkWJjoGQSpgBz20nAMr80E3Tpk7PatJ1b37DQDgJR3CNSzcMOZQ==";
       };
     };
     "tunnel-agent-0.6.0" = {
@@ -67215,7 +67566,7 @@ let
       version = "0.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz";
-        sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd";
+        sha512 = "McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==";
       };
     };
     "turndown-7.0.0" = {
@@ -67251,7 +67602,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz";
-        sha1 = "d020c846fadd50c855abb25ebaecc68fc10f7963";
+        sha512 = "afizzfpJgvPr+eDkREK4MxJ/+r8nEEHcmitwgnPUqpaP+FpwQyadnxNoSACbgc/b1LsZYtODGoPiFxQrgJgjvw==";
       };
     };
     "tweetnacl-0.14.5" = {
@@ -67260,7 +67611,7 @@ let
       version = "0.14.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz";
-        sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
+        sha512 = "KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==";
       };
     };
     "tweetnacl-1.0.3" = {
@@ -67278,7 +67629,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/tweetnacl-auth/-/tweetnacl-auth-0.3.1.tgz";
-        sha1 = "b75bc2df15649bb84e8b9aa3c0669c6c4bce0d25";
+        sha512 = "9/c8c6qRMTfWuv54ETFhihgYoofi0M9HUovMSGJ1rLRUj6O5A0vuCg2L/qKfvmcjLVhaTgAJCLy2EqCLJK2QLw==";
       };
     };
     "tweetnacl-util-0.15.1" = {
@@ -67290,15 +67641,6 @@ let
         sha512 = "RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==";
       };
     };
-    "tweetsodium-0.0.5" = {
-      name = "tweetsodium";
-      packageName = "tweetsodium";
-      version = "0.0.5";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz";
-        sha512 = "T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==";
-      };
-    };
     "twig-1.15.4" = {
       name = "twig";
       packageName = "twig";
@@ -67314,7 +67656,7 @@ let
       version = "1.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/twitter/-/twitter-1.7.1.tgz";
-        sha1 = "0762378f1dc1c050e48f666aca904e24b1a962f4";
+        sha512 = "Do7l/WzFnUZC14ABtZfDiOHKl6M9Ft5tE4YF0ev9XLm4yh7m8R98D82rzeDAMjbjMZk2R/tb6sgXXb3sPKoaVw==";
       };
     };
     "tx2-1.0.5" = {
@@ -67359,7 +67701,7 @@ let
       version = "0.3.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz";
-        sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
+        sha512 = "ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==";
       };
     };
     "type-check-0.4.0" = {
@@ -67515,6 +67857,15 @@ let
         sha512 = "lPfAm42MxE4/456+QyIaaVBAwgpJb6xZ8PRu09utnhPdWwcyj9vgy6Sq0Z5yNbJ21EdxB5dRU/Qg8bsyAMtlcw==";
       };
     };
+    "type-fest-2.13.1" = {
+      name = "type-fest";
+      packageName = "type-fest";
+      version = "2.13.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/type-fest/-/type-fest-2.13.1.tgz";
+        sha512 = "hXYyrPFwETT2swFLHeoKtJrvSF/ftG/sA15/8nGaLuaDGfVAaq8DYFpu4yOyV4tzp082WqnTEoMsm3flKMI2FQ==";
+      };
+    };
     "type-is-1.6.18" = {
       name = "type-is";
       packageName = "type-is";
@@ -67548,7 +67899,7 @@ let
       version = "0.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz";
-        sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
+        sha512 = "/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==";
       };
     };
     "typedarray-to-buffer-3.1.5" = {
@@ -67641,6 +67992,15 @@ let
         sha512 = "0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==";
       };
     };
+    "typescript-3.9-3.9.10" = {
+      name = "typescript-3.9";
+      packageName = "typescript-3.9";
+      version = "3.9.10";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript/-/typescript-3.9.10.tgz";
+        sha512 = "w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q==";
+      };
+    };
     "typescript-3.9.10" = {
       name = "typescript";
       packageName = "typescript";
@@ -67686,13 +68046,13 @@ let
         sha512 = "9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==";
       };
     };
-    "typescript-4.7.3" = {
+    "typescript-4.7.4" = {
       name = "typescript";
       packageName = "typescript";
-      version = "4.7.3";
+      version = "4.7.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz";
-        sha512 = "WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==";
+        url = "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz";
+        sha512 = "C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==";
       };
     };
     "typescript-eslint-parser-16.0.1" = {
@@ -67713,6 +68073,15 @@ let
         sha512 = "V7vfI9XArVhriOTYHPzMU2WUnm5IMdu9X/CPxs8mIMGxmTBFpDABlbkBka64PZJ9/xgQeRpK8KzzAG4MPzxBDQ==";
       };
     };
+    "typescript-json-schema-0.45.1" = {
+      name = "typescript-json-schema";
+      packageName = "typescript-json-schema";
+      version = "0.45.1";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/typescript-json-schema/-/typescript-json-schema-0.45.1.tgz";
+        sha512 = "Iz1NKVtJi09iZSzXj3J350GekBrZ1TiNw6Cbf42jLOGyooh9BWoi8XP6XlTIMOI3aMD8XxuL9hEvIEq8FD/WUw==";
+      };
+    };
     "typescript-tslint-plugin-0.5.4" = {
       name = "typescript-tslint-plugin";
       packageName = "typescript-tslint-plugin";
@@ -67728,7 +68097,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz";
-        sha1 = "c8882fa1bb1092c06005a97f34ef5c8508e3664e";
+        sha512 = "J9alhjVHupW3Wfz6qFRGgQw0N3gr8hOkw6zm7FZ6UR1Cse/oD9/JVok7DNE9TT9IbciDHX2Ex9+ksE6cRmtymw==";
       };
     };
     "typical-2.6.1" = {
@@ -67737,7 +68106,7 @@ let
       version = "2.6.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz";
-        sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d";
+        sha512 = "ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==";
       };
     };
     "typo-geom-0.12.1" = {
@@ -67818,7 +68187,7 @@ let
       version = "2.8.29";
       src = fetchurl {
         url = "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz";
-        sha1 = "29c5733148057bb4e1f75df35b7a9cb72e6a59dd";
+        sha512 = "qLq/4y2pjcU3vhlhseXGGJ7VbFO4pBANu0kwl8VCa9KEI0V8VfZIx2Fy3w01iSTA/pGwKZSmu/+I4etLNDdt5w==";
       };
     };
     "uglify-js-3.15.1" = {
@@ -67830,13 +68199,13 @@ let
         sha512 = "FAGKF12fWdkpvNJZENacOH0e/83eG6JyVQyanIJaBXCN1J11TUQv1T1/z8S+Z0CG0ZPk1nPcreF/c7lrTd0TEQ==";
       };
     };
-    "uglify-js-3.16.0" = {
+    "uglify-js-3.16.1" = {
       name = "uglify-js";
       packageName = "uglify-js";
-      version = "3.16.0";
+      version = "3.16.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz";
-        sha512 = "FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==";
+        url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.1.tgz";
+        sha512 = "X5BGTIDH8U6IQ1TIRP62YC36k+ULAa1d59BxlWvPUJ1NkW5L3FwcGfEzuVvGmhJFBu0YJ5Ge25tmRISqCmLiRQ==";
       };
     };
     "uglify-js-3.4.10" = {
@@ -67854,7 +68223,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz";
-        sha1 = "6e0924d6bda6b5afe349e39a6d632850a0f882b7";
+        sha512 = "vb2s1lYx2xBtUgy+ta+b2J/GLVUR+wmpINwHePmPRhOsIVCG2wDzKJ0n14GslH1BifsqVzSOwQhRaCAsZ/nI4Q==";
       };
     };
     "uglifycss-0.0.29" = {
@@ -67872,7 +68241,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uid/-/uid-0.0.2.tgz";
-        sha1 = "5e4a5d4b78138b4f70f89fd3c76fc59aa9d2f103";
+        sha512 = "KerEqWSoUfzAYsB4RznGPygtEk1p04caicg8FxqzZ1VYI3GsYHPzouUO5jJvwwy4sg6B1jnSkSjYgGvE4CK6Gg==";
       };
     };
     "uid-number-0.0.5" = {
@@ -67881,7 +68250,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.5.tgz";
-        sha1 = "5a3db23ef5dbd55b81fce0ec9a2ac6fccdebb81e";
+        sha512 = "ZiLtQrdrFvWVXW5wickjtHiyOkn+cG74B0r33DQ2vJuz12FsFO7dU2q0dumrrYk6ny4wl2Vjsodpxk0+Z10/rA==";
       };
     };
     "uid-number-0.0.6" = {
@@ -67890,7 +68259,7 @@ let
       version = "0.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/uid-number/-/uid-number-0.0.6.tgz";
-        sha1 = "0ea10e8035e8eb5b8e4449f06da1c730663baa81";
+        sha512 = "c461FXIljswCuscZn67xq9PpszkPT6RjheWFQTgCyabJrTUozElanb0YEqv2UGgk247YpcJkFBuSGNvBlpXM9w==";
       };
     };
     "uid-safe-2.1.5" = {
@@ -67908,7 +68277,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/uid2/-/uid2-0.0.3.tgz";
-        sha1 = "483126e11774df2f71b8b639dcd799c376162b82";
+        sha512 = "5gSP1liv10Gjp8cMEnFd6shzkL/D6W1uhXSFNCxDC+YI8+L8wkCYCbJ7n77Ezb4wE/xzMogecE+DtamEe9PZjg==";
       };
     };
     "uid2-0.0.4" = {
@@ -67947,15 +68316,6 @@ let
         sha512 = "mliiCSrsE29aNBI7O9W5gGv6WmA9kBR8PtTt6Apaxns076IRdYrrtFhXHEWMj5CSum3U7cv7/pi4xmi4XsIOqg==";
       };
     };
-    "uint8array-tools-0.0.6" = {
-      name = "uint8array-tools";
-      packageName = "uint8array-tools";
-      version = "0.0.6";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/uint8array-tools/-/uint8array-tools-0.0.6.tgz";
-        sha512 = "aIvEHNRX1AlOYAr6qSUjQBn4mCduxx6MtC967aRDTb2UUBPj0Ix2ZFQDcmXUUO/UxRPHcw1f5a5nVbCSKDSOqA==";
-      };
-    };
     "uint8array-tools-0.0.7" = {
       name = "uint8array-tools";
       packageName = "uint8array-tools";
@@ -67971,7 +68331,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/ultron/-/ultron-1.0.2.tgz";
-        sha1 = "ace116ab557cd197386a4e88f4685378c8b2e4fa";
+        sha512 = "QMpnpVtYaWEeY+MwKDN/UdKlE/LsFZXM5lO1u7GaZzNgmIbGixHEmVMIKT+vqYOALu3m5GYQy9kz4Xu4IVn7Ow==";
       };
     };
     "ultron-1.1.1" = {
@@ -68034,7 +68394,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz";
-        sha1 = "e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa";
+        sha512 = "eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==";
       };
     };
     "uncss-0.17.3" = {
@@ -68088,7 +68448,7 @@ let
       version = "1.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.2.1.tgz";
-        sha1 = "fc5c6b0765673d92a2d4ac8b4dc0aa88702e2bd4";
+        sha512 = "HRhh6FYh5I5/zTt7L9MnHRA/nlSFPiwymMCXEremmzT7tHR+8CNP0FXHPaUpafAPwvAlNrvZiH91kQwoo/CqUA==";
       };
     };
     "underscore-1.4.4" = {
@@ -68097,7 +68457,7 @@ let
       version = "1.4.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.4.4.tgz";
-        sha1 = "61a6a32010622afa07963bf325203cf12239d604";
+        sha512 = "ZqGrAgaqqZM7LGRzNjLnw5elevWb5M8LEoDMadxIW3OWbcv72wMMgKdwOKpd5Fqxe8choLD8HN3iSj3TUh/giQ==";
       };
     };
     "underscore-1.6.0" = {
@@ -68106,7 +68466,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.6.0.tgz";
-        sha1 = "8b38b10cacdef63337b8b24e4ff86d45aea529a8";
+        sha512 = "z4o1fvKUojIWh9XuaVLUDdf86RQiq13AC1dmHbTpoyuu+bquHms76v16CjycCbec87J7z0k//SiQVk0sMdFmpQ==";
       };
     };
     "underscore-1.8.3" = {
@@ -68115,7 +68475,7 @@ let
       version = "1.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz";
-        sha1 = "4f3fb53b106e6097fcf9cb4109f2a5e9bdfa5022";
+        sha512 = "5WsVTFcH1ut/kkhAaHf4PVgI8c7++GiVcpCGxPouI6ZVjsqPnSDf8h/8HtVqc0t4fzRXwnMK70EcZeAs3PIddg==";
       };
     };
     "underscore-1.9.1" = {
@@ -68133,7 +68493,7 @@ let
       version = "0.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/underscore-db/-/underscore-db-0.10.0.tgz";
-        sha1 = "a4bd7f5a9c7f2eec31e4784b402241df36671499";
+        sha512 = "/Arq1q7vh5kzmw4brlCZQw3jxc3KEGHqaNXCYEvMAg5ZK0iVwK9WsejPuC6YjcF2jpm8PTUtaLUjbziS+ku5sA==";
       };
     };
     "undertaker-1.3.0" = {
@@ -68151,16 +68511,16 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz";
-        sha1 = "5e4bda308e4a8a2ae584f9b9a4359a499825cc50";
+        sha512 = "UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw==";
       };
     };
-    "undici-5.4.0" = {
+    "undici-5.5.1" = {
       name = "undici";
       packageName = "undici";
-      version = "5.4.0";
+      version = "5.5.1";
       src = fetchurl {
-        url = "https://registry.npmjs.org/undici/-/undici-5.4.0.tgz";
-        sha512 = "A1SRXysDg7J+mVP46jF+9cKANw0kptqSFZ8tGyL+HBiv0K1spjxPX8Z4EGu+Eu6pjClJUBdnUPlxrOafR668/g==";
+        url = "https://registry.npmjs.org/undici/-/undici-5.5.1.tgz";
+        sha512 = "MEvryPLf18HvlCbLSzCW0U00IMftKGI5udnjrQbC5D4P0Hodwffhv+iGfWuJwg16Y/TK11ZFK8i+BPVW2z/eAw==";
       };
     };
     "unherit-1.1.3" = {
@@ -68205,7 +68565,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-emoji-modifier-base/-/unicode-emoji-modifier-base-1.0.0.tgz";
-        sha1 = "dbbd5b54ba30f287e2a8d5a249da6c0cef369459";
+        sha512 = "yLSH4py7oFH3oG/9K+XWrz1pSi3dfUrWEnInbxMfArOfc1+33BlGPQtLsOYwvdMy11AwUBetYuaRxSPqgkq+8g==";
       };
     };
     "unicode-match-property-ecmascript-2.0.0" = {
@@ -68241,7 +68601,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz";
-        sha1 = "d671dddd89101a08bac37b6a5161010602052085";
+        sha512 = "WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==";
       };
     };
     "unicoderegexp-0.4.1" = {
@@ -68250,7 +68610,7 @@ let
       version = "0.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unicoderegexp/-/unicoderegexp-0.4.1.tgz";
-        sha1 = "afb10e4ef1eeddc711417bbb652bc885da9d4171";
+        sha512 = "ydh8D5mdd2ldTS25GtZJEgLciuF0Qf2n3rwPhonELk3HioX201ClYGvZMc1bCmx6nblZiADQwbMWekeIqs51qw==";
       };
     };
     "unified-10.1.2" = {
@@ -68268,7 +68628,7 @@ let
       version = "2.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/unified/-/unified-2.1.4.tgz";
-        sha1 = "14bc6cd40d98ffff75b405506bad873ecbbac3ba";
+        sha512 = "qa4nA26ms49OczPueTt7G46r89TOlwAJ4pEk2U4mwkV1wNhjttItF03SE/YnfkgWg14tzmAHXGhJp2GhDYwn1A==";
       };
     };
     "unified-7.1.0" = {
@@ -68316,6 +68676,15 @@ let
         sha512 = "qiI0GaHi/50NVrChnmZOBeB0aNhHRMG6VnjKEAikaQD/I3gxjTsDp8gycCOUxyVCJrV/Rv3y6zEWMZczO+o3Lw==";
       };
     };
+    "unified-engine-10.0.0" = {
+      name = "unified-engine";
+      packageName = "unified-engine";
+      version = "10.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/unified-engine/-/unified-engine-10.0.0.tgz";
+        sha512 = "FW9CWaMe3ehIh74rrElNG7sidYHVYxfLIYM+R2FGo+garAAj9xybXpH5qbMN63mrvQldjm20ArFVcPKqs63ckw==";
+      };
+    };
     "unified-engine-6.0.1" = {
       name = "unified-engine";
       packageName = "unified-engine";
@@ -68394,7 +68763,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz";
-        sha1 = "b31c5ae8254844a3a8281541ce2b04b865a734ff";
+        sha512 = "Gw+zz50YNKPDKXs+9d+aKAjVwpjNwqzvNpLigIruT4HA9lMZNdMqs9x07kKHB/L9WRzqp4+DlTU5s4wG2esdoA==";
       };
     };
     "uniqs-2.0.0" = {
@@ -68403,7 +68772,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz";
-        sha1 = "ffede4b36b25290696e6e165d4a59edb998e6b02";
+        sha512 = "mZdDpf3vBV5Efh29kMw5tXoup/buMgxLzOt/XKFKcVmi+15ManNQWr6HfZ2aiZTYlYixbdNJ0KFmIZIv52tHSQ==";
       };
     };
     "unique-concat-0.2.2" = {
@@ -68412,7 +68781,7 @@ let
       version = "0.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-concat/-/unique-concat-0.2.2.tgz";
-        sha1 = "9210f9bdcaacc5e1e3929490d7c019df96f18712";
+        sha512 = "nFT3frbsvTa9rrc71FJApPqXF8oIhVHbX3IWgObQi1mF7WrW48Ys70daL7o4evZUtmUf6Qn6WK0LbHhyO0hpXw==";
       };
     };
     "unique-filename-1.1.1" = {
@@ -68448,7 +68817,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz";
-        sha1 = "9e1057cca851abb93398f8b33ae187b99caec11a";
+        sha512 = "ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==";
       };
     };
     "unique-string-2.0.0" = {
@@ -68844,7 +69213,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unixify/-/unixify-1.0.0.tgz";
-        sha1 = "3a641c8c2ffbce4da683a5c70f03a462940c2090";
+        sha512 = "6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==";
       };
     };
     "unordered-array-remove-1.0.2" = {
@@ -68853,7 +69222,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unordered-array-remove/-/unordered-array-remove-1.0.2.tgz";
-        sha1 = "c546e8f88e317a0cf2644c97ecb57dba66d250ef";
+        sha512 = "45YsfD6svkgaCBNyvD+dFHm4qFX9g3wRSIVgWVPtm2OCnphvPxzJoe20ATsiNpNJrmzHifnxm+BN5F7gFT/4gw==";
       };
     };
     "unordered-set-2.0.1" = {
@@ -68880,7 +69249,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unpack-string/-/unpack-string-0.0.2.tgz";
-        sha1 = "302ecf08238b0139bd434a4d7fd67cdf33ca275d";
+        sha512 = "2ZFjp5aY7QwHE6HAp47RnKYfvgAQ5+NwbKq/ZVtty85RDb3/UaTeCfizo5L/fXzM7UkMP/zDtbV+kGW/iJiK6w==";
       };
     };
     "unpipe-1.0.0" = {
@@ -68889,7 +69258,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz";
-        sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec";
+        sha512 = "pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==";
       };
     };
     "unquote-1.1.1" = {
@@ -68898,7 +69267,7 @@ let
       version = "1.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz";
-        sha1 = "8fded7324ec6e88a0ff8b905e7c098cdc086d544";
+        sha512 = "vRCqFv6UhXpWxZPyGDh/F3ZpNv8/qo7w6iufLpQg9aKnQ71qM4B5KiI7Mia9COcjEhrO9LueHpMYjYzsWH3OIg==";
       };
     };
     "unreachable-branch-transform-0.3.0" = {
@@ -68907,7 +69276,7 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unreachable-branch-transform/-/unreachable-branch-transform-0.3.0.tgz";
-        sha1 = "d99cc4c6e746d264928845b611db54b0f3474caa";
+        sha512 = "vza0JqnYAxuiynTpibnaaJsQ/FOKo7oJSXnWT96gIGsvQOfv0QHil8dRcRqONFnYK3YXaqVdbGz36bgCAm0qVg==";
       };
     };
     "unset-value-1.0.0" = {
@@ -68916,7 +69285,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz";
-        sha1 = "8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559";
+        sha512 = "PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==";
       };
     };
     "untildify-2.1.0" = {
@@ -68925,7 +69294,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/untildify/-/untildify-2.1.0.tgz";
-        sha1 = "17eb2807987f76952e9c0485fc311d06a826a2e0";
+        sha512 = "sJjbDp2GodvkB0FZZcn7k6afVisqX5BZD7Yq3xp4nN2O15BBK0cLm3Vwn2vQaF7UDS0UUsrQMkkplmDI5fskig==";
       };
     };
     "untildify-3.0.3" = {
@@ -68955,22 +69324,13 @@ let
         sha512 = "MAhukhVHyaLGDjyDYhy8gVjWJyhTECCdNsLwlMoGFoNJ3o79fpQhtQuzmAE4IxCMDwraF4cW8ZjpAV0m9CRQbg==";
       };
     };
-    "unyield-0.0.1" = {
-      name = "unyield";
-      packageName = "unyield";
-      version = "0.0.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/unyield/-/unyield-0.0.1.tgz";
-        sha1 = "150e65da42bf7742445b958a64eb9b85d1d2b180";
-      };
-    };
     "unzip-response-1.0.2" = {
       name = "unzip-response";
       packageName = "unzip-response";
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz";
-        sha1 = "b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe";
+        sha512 = "pwCcjjhEcpW45JZIySExBHYv5Y9EeL2OIGEfrSKp2dMUFGFv4CpvZkwJbVge8OvGH2BNNtJBx67DuKuJhf+N5Q==";
       };
     };
     "unzip-response-2.0.1" = {
@@ -68979,7 +69339,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz";
-        sha1 = "d2f0f737d16b0615e72a6935ed04214572d56f97";
+        sha512 = "N0XH6lqDtFH84JxptQoZYmloF4nzrQqqrAymNj+/gW60AO2AZgOcf4O/nUXJcYfyQkqvMo9lSupBZmmgvuVXlw==";
       };
     };
     "unzipper-0.10.11" = {
@@ -69033,7 +69393,7 @@ let
       version = "0.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/update-notifier/-/update-notifier-0.5.0.tgz";
-        sha1 = "07b5dc2066b3627ab3b4f530130f7eddda07a4cc";
+        sha512 = "zOGOlUKDAgDlLHLv7Oiszz3pSj8fKlSJ3i0u49sEakjXUEVJ6DMjo/Mh/B6mg2eOALvRTJkd0kbChcipQoYCng==";
       };
     };
     "update-notifier-1.0.3" = {
@@ -69042,7 +69402,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz";
-        sha1 = "8f92c515482bd6831b7c93013e70f87552c7cf5a";
+        sha512 = "iQSLFuxB2ZFAxXGN28DTxk/GNGlBmtqawvguYDtChAHI9Xjy0z7c7hpw6ywutK34SEDYTpLEsAM1ATMq5pcQsw==";
       };
     };
     "update-notifier-2.5.0" = {
@@ -69087,7 +69447,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/upnp-device-client/-/upnp-device-client-1.0.2.tgz";
-        sha1 = "91f84705f2349bf89082855fff4e3006ac435337";
+        sha512 = "5BcYJJU5wXR6xGko/UuLSavybAA0sZx17Hka4ikOXwA9Ze3fiExmgUDytAXE5qjdbKzARl0lOLC3hPSUwAa3eQ==";
       };
     };
     "upnp-mediarenderer-client-1.4.0" = {
@@ -69105,7 +69465,7 @@ let
       version = "1.1.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz";
-        sha1 = "f6b4501c2ec4cdd26ba78be7222961de77621598";
+        sha512 = "WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==";
       };
     };
     "upper-case-2.0.2" = {
@@ -69132,7 +69492,7 @@ let
       version = "3.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/uri-js/-/uri-js-3.0.2.tgz";
-        sha1 = "f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa";
+        sha512 = "SoboS4c924cg+wR2vxl8fospPPli3ZmVPIkRpJEWcrGIPeE8Tr3m9zNIyjYKn9YlF8EgiXQDCy3XVZxSFNjh8A==";
       };
     };
     "uri-js-4.4.1" = {
@@ -69159,7 +69519,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz";
-        sha1 = "da937f7a62e21fec1fd18d49b35c2935067a6c72";
+        sha512 = "Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==";
       };
     };
     "urkel-0.7.0" = {
@@ -69177,7 +69537,7 @@ let
       version = "0.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/url/-/url-0.10.3.tgz";
-        sha1 = "021e4d9c7705f21bbf37d03ceb58767402774c64";
+        sha512 = "hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ==";
       };
     };
     "url-0.11.0" = {
@@ -69186,7 +69546,7 @@ let
       version = "0.11.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url/-/url-0.11.0.tgz";
-        sha1 = "3838e97cfc60521eb73c525a8e55bfdd9e2e28f1";
+        sha512 = "kbailJa29QrtXnxgq+DdCEGlbTeYM2eJUxsz6vjZavrCYPMIFHMKQmSKYAIuUK2i7hgPm28a8piX5NTUtM/LKQ==";
       };
     };
     "url-join-0.0.1" = {
@@ -69195,7 +69555,7 @@ let
       version = "0.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz";
-        sha1 = "1db48ad422d3402469a87f7d97bdebfe4fb1e3c8";
+        sha512 = "H6dnQ/yPAAVzMQRvEvyz01hhfQL5qRWSEt7BX8t9DqnPw9BjMb64fjIRq76Uvf1hkHp+mTZvEVJ5guXOT0Xqaw==";
       };
     };
     "url-join-1.1.0" = {
@@ -69204,7 +69564,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-join/-/url-join-1.1.0.tgz";
-        sha1 = "741c6c2f4596c4830d6718460920d0c92202dc78";
+        sha512 = "zz1wZk4Lb5PTVwZ3HWDmm8XnlPvmOof6/fjdDPA5yBrUcbtV64U6bV832Zf1BtU2WkBBWaUT46wCs+l0HP5nhg==";
       };
     };
     "url-join-4.0.0" = {
@@ -69213,7 +69573,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-join/-/url-join-4.0.0.tgz";
-        sha1 = "4d3340e807d3773bda9991f8305acdcc2a665d2a";
+        sha512 = "EGXjXJZhIHiQMK2pQukuFcL303nskqIRzWvPvV5O8miOfwoUb9G+a/Cld60kUyeaybEI94wvVClT10DtfeAExA==";
       };
     };
     "url-join-4.0.1" = {
@@ -69258,7 +69618,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-parse-as-address/-/url-parse-as-address-1.0.0.tgz";
-        sha1 = "fb80901883f338b3cbed3538f5faa26adaf7f2e7";
+        sha512 = "1WJ8YX1Kcec9wgxy8d/ATzGP1ayO6BRnd3iB6NlM+7cOnn6U8p5PKppRTCPLobh3CSdJ4d0TdPjopzyU2KcVFw==";
       };
     };
     "url-parse-lax-1.0.0" = {
@@ -69267,7 +69627,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz";
-        sha1 = "7af8f303645e9bd79a272e7a14ac68bc0609da73";
+        sha512 = "BVA4lR5PIviy2PMseNd2jbFQ+jwSwQGdJejf5ctd1rEXt0Ypd7yanUK9+lYechVlN5VaTJGsu2U/3MDDu6KgBA==";
       };
     };
     "url-parse-lax-3.0.0" = {
@@ -69276,7 +69636,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz";
-        sha1 = "16b5cafc07dbe3676c1b1999177823d6503acb0c";
+        sha512 = "NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==";
       };
     };
     "url-template-2.0.8" = {
@@ -69285,7 +69645,7 @@ let
       version = "2.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-template/-/url-template-2.0.8.tgz";
-        sha1 = "fc565a3cccbff7730c775f5641f9555791439f21";
+        sha512 = "XdVKMF4SJ0nP/O7XIPB0JwAEuT9lDIYnNsK8yGVe43y0AWoKeJNdv3ZNWh7ksJ6KqQFjOO6ox/VEitLnaVNufw==";
       };
     };
     "url-to-options-1.0.1" = {
@@ -69294,7 +69654,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz";
-        sha1 = "1505a03a289a48cbd7a434efbaeec5055f5633a9";
+        sha512 = "0kQLIzG4fdk/G5NONku64rSH/x32NOA39LVQqlK8Le6lvTF6GGRJpqaQFGgU+CLwySIqBSMdwYM0sYcW9f6P4A==";
       };
     };
     "url-value-parser-2.1.0" = {
@@ -69312,7 +69672,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/urlsafe-base64/-/urlsafe-base64-1.0.0.tgz";
-        sha1 = "23f89069a6c62f46cf3a1d3b00169cefb90be0c6";
+        sha512 = "RtuPeMy7c1UrHwproMZN9gN6kiZ0SvJwRaEzwZY0j9MypEkFqyBaKv176jvlPtg58Zh36bOkS0NFABXMHvvGCA==";
       };
     };
     "usb-1.9.2" = {
@@ -69348,7 +69708,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz";
-        sha1 = "9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f";
+        sha512 = "KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==";
       };
     };
     "username-2.3.0" = {
@@ -69357,7 +69717,7 @@ let
       version = "2.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/username/-/username-2.3.0.tgz";
-        sha1 = "ba37dd53ac7d6225e77730fdd79244f1fc058e1e";
+        sha512 = "xgs2gqAV6AAx3gNczDSh/Vd9p2hnGcczKpjDYV7dAJcjaywvx6BQv8eBsJliegTmuiKTavOGOowf7zNVcYwdQQ==";
       };
     };
     "username-5.1.0" = {
@@ -69393,7 +69753,7 @@ let
       version = "1.2.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-1.2.2.tgz";
-        sha1 = "8bb871a4741e085c70487ca7acdbd7d6d36029eb";
+        sha512 = "CcV1z1L/e1wFAZwl8T6o1MmxIsg/ClZ4nmUolyIhb3ZJKbD/ZQTZXstCf6BiRcvaThSJVI8SqWLodWq/hnWDxQ==";
       };
     };
     "utf-8-validate-5.0.7" = {
@@ -69420,7 +69780,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf7/-/utf7-1.0.2.tgz";
-        sha1 = "955f490aae653ba220b9456a0a8776c199360991";
+        sha512 = "qQrPtYLLLl12NF4DrM9CvfkxkYI97xOb5dsnGZHE3teFr0tWiEZ9UdgMPczv24vl708cYMpe6mGXGHrotIp3Bw==";
       };
     };
     "utf8-2.0.0" = {
@@ -69429,7 +69789,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf8/-/utf8-2.0.0.tgz";
-        sha1 = "79ce59eced874809cab9a71fc7102c7d45d4118d";
+        sha512 = "jWXHr+bQ8RsWazLzVY3V7XACPTbBHYSg/VoDVok+DBQk5ULm0AuBCNb9tGmjq2H+znnkBFwjhzzCbn9G3xlYcA==";
       };
     };
     "utf8-3.0.0" = {
@@ -69447,7 +69807,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz";
-        sha1 = "f45f150c4c66eee968186505ab93fcbb8ad6bf61";
+        sha512 = "4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==";
       };
     };
     "utfx-1.0.1" = {
@@ -69456,7 +69816,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/utfx/-/utfx-1.0.1.tgz";
-        sha1 = "d52b2fd632a99eca8d9d4a39eece014a6a2b0048";
+        sha512 = "56Kk2uOPZyTQ1p6H54tyBWs86tW8kIOvOCVF6zl8HtQZHzCZnrRQI1JzbuWBG6ajgqGL/KzUcGSBAesYjNFlyw==";
       };
     };
     "utif-1.3.0" = {
@@ -69474,7 +69834,7 @@ let
       version = "0.10.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.10.3.tgz";
-        sha1 = "7afb1afe50805246489e3db7fe0ed379336ac0f9";
+        sha512 = "5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==";
       };
     };
     "util-0.10.4" = {
@@ -69510,7 +69870,7 @@ let
       version = "0.4.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/util/-/util-0.4.9.tgz";
-        sha1 = "d95d5830d2328ec17dee3c80bfc50c33562b75a3";
+        sha512 = "tTenCSwF1HY9mNiDN74VaSjCdt1Y/QgEalBDbQXhswIWVU/Wrj3z8rwNGZhlf4mJ0m1R+M1wTJ9reiaSIFChuQ==";
       };
     };
     "util-deprecate-1.0.2" = {
@@ -69519,7 +69879,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz";
-        sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf";
+        sha512 = "EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==";
       };
     };
     "util.promisify-1.0.0" = {
@@ -69555,7 +69915,7 @@ let
       version = "0.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz";
-        sha1 = "8a16a05d445657a3aea5eecc5b12a4fa5379772c";
+        sha512 = "Z0DbgELS9/L/75wZbro8xAnT50pBVFQZ+hUEueGDU5FN51YSCYM+jdxsfCiHjwNP/4LCDD0i/graKpeBnOXKRA==";
       };
     };
     "utile-0.2.1" = {
@@ -69564,7 +69924,7 @@ let
       version = "0.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz";
-        sha1 = "930c88e99098d6220834c356cbd9a770522d90d7";
+        sha512 = "ltfvuCJNa/JFOhKBBiQ9qDyyFwLstoMMO1ru0Yg/Mcl8dp1Z3IBaL7n+5dHpyma+d3lCogkgBQnWKtGxzNyqhg==";
       };
     };
     "utile-0.3.0" = {
@@ -69573,7 +69933,7 @@ let
       version = "0.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz";
-        sha1 = "1352c340eb820e4d8ddba039a4fbfaa32ed4ef3a";
+        sha512 = "KaciY16ate/pJ7BAwBpVcfQlgJT02WRivIv8DlCX1cvg6WxaNEXHcdqazuS9fQ7PUoU5CH2UeY3wkqq16wRiWg==";
       };
     };
     "utility-types-3.10.0" = {
@@ -69591,7 +69951,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz";
-        sha1 = "9f95710f50a267947b2ccc124741c1028427e713";
+        sha512 = "pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==";
       };
     };
     "utp-0.0.7" = {
@@ -69600,7 +69960,7 @@ let
       version = "0.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/utp/-/utp-0.0.7.tgz";
-        sha1 = "ae43eb7745f5fe63dcc2f277cb4164ad27087f30";
+        sha512 = "2ZLjisH0HQkpqZTg2m7TK0Yn7TETTg7DxM0EpCKIIIV2ky9w9nSxW5a7gzdk4nH2h+pomrrGw0uywrUJfsm2eA==";
       };
     };
     "utp-native-2.5.3" = {
@@ -69618,7 +69978,7 @@ let
       version = "2.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz";
-        sha1 = "67e2e863797215530dff318e5bf9dcebfd47b21a";
+        sha512 = "FULf7fayPdpASncVy4DLh3xydlXEJJpvIELjYjNeQWYUZ9pclcpvCZSr2gkmN2FrrGcI7G/cJsIEwk5/8vfXpg==";
       };
     };
     "uuid-3.2.1" = {
@@ -69744,7 +70104,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/v8-debug/-/v8-debug-1.0.1.tgz";
-        sha1 = "6ae1c6dae4477bb3ced79b523e4d160c1d8667fe";
+        sha512 = "vppzar14djMT2+n/y0yA+FTZw3dUyq5FvWKrIY96kXtfdC6C77dWCy26zTpK3S79W2SAKjObYrl/UkEcLZdJoA==";
       };
     };
     "v8-profiler-5.7.0" = {
@@ -69753,7 +70113,7 @@ let
       version = "5.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/v8-profiler/-/v8-profiler-5.7.0.tgz";
-        sha1 = "e8381cbebb5b5fd0ca8d2b09f6a0181a158db34d";
+        sha512 = "n9Mvkk3qlv5hpQ9WHDCNn7uGR8k8kNLpVj37fS8qTPK053ZFJ34Ei9CAbDqmsk/p4AGsV/2bfDdobctC1RaZFg==";
       };
     };
     "v8flags-3.2.0" = {
@@ -69771,7 +70131,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vali-date/-/vali-date-1.0.0.tgz";
-        sha1 = "1b904a59609fb328ef078138420934f6b86709a6";
+        sha512 = "sgECfZthyaCKW10N0fm27cg8HYTFK5qMWgypqkXMQ4Wbl/zZKx7xZICgcoxIIE+WFAP/MBL2EFwC/YvLxw3Zeg==";
       };
     };
     "valid-identifier-0.0.2" = {
@@ -69789,7 +70149,7 @@ let
       version = "1.0.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz";
-        sha1 = "1c14479b40f1397a75782f115e4086447433a200";
+        sha512 = "QQDsV8OnSf5Uc30CKSwG9lnhMPe6exHtTXLRYX8uMwKENy640pU+2BgBL0LRbDh/eYRahNCS7aewCx0wf3NYVA==";
       };
     };
     "validate-glob-opts-1.0.2" = {
@@ -69816,7 +70176,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz";
-        sha1 = "5fa912d81eb7d0c74afc140de7317f0ca7df437e";
+        sha512 = "M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==";
       };
     };
     "validate-npm-package-name-4.0.0" = {
@@ -69861,7 +70221,7 @@ let
       version = "5.7.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/validator/-/validator-5.7.0.tgz";
-        sha1 = "7a87a58146b695ac486071141c0c49d67da05e5c";
+        sha512 = "kHes0AATXms5NVgbJ4aDELR91O7+X+cxAS9d6I2z49MBhcAw6DYW4UCI8qv9NkL4+Mgx8jklt7gkCht+UHaZ+g==";
       };
     };
     "value-or-function-3.0.0" = {
@@ -69870,7 +70230,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz";
-        sha1 = "1c243a50b595c1be54a754bfece8563b9ff8d813";
+        sha512 = "jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg==";
       };
     };
     "value-or-promise-1.0.11" = {
@@ -69897,7 +70257,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/variable-diff/-/variable-diff-1.1.0.tgz";
-        sha1 = "d2bd5c66db76c13879d96e6a306edc989df978da";
+        sha512 = "0Jk/MsCNtL/fCuVIbsLxwXpABGZCzN57btcPbSsjOOAwkdHJ3Y58fo8BoUfG7jghnvglbwo+5Hk1KOJ2W2Ormw==";
       };
     };
     "varint-4.0.1" = {
@@ -69906,7 +70266,7 @@ let
       version = "4.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/varint/-/varint-4.0.1.tgz";
-        sha1 = "490829b942d248463b2b35097995c3bf737198e9";
+        sha512 = "vu4cpCqZHA4u77jWdOZlXtXHJofIIyq51DtzstbrvI9e1I1ELseAJLxYr47N/DdLPFGfYMLY1HqAURSTKKJ6ww==";
       };
     };
     "varint-5.0.0" = {
@@ -69915,7 +70275,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/varint/-/varint-5.0.0.tgz";
-        sha1 = "d826b89f7490732fabc0c0ed693ed475dcb29ebf";
+        sha512 = "gC13b/bWrqQoKY2EmROCZ+AR0jitc6DnDGaQ6Ls9QpKmuSgJB1eQ7H3KETtQm7qSdMWMKCmsshyCmUwMLh3OAA==";
       };
     };
     "varint-5.0.2" = {
@@ -69942,7 +70302,7 @@ let
       version = "1.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz";
-        sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc";
+        sha512 = "BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==";
       };
     };
     "vasync-1.4.3" = {
@@ -69951,7 +70311,7 @@ let
       version = "1.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vasync/-/vasync-1.4.3.tgz";
-        sha1 = "c86d52e2b71613d29eedf159f3135dbe749cee37";
+        sha512 = "GHLh6i4OfvQgc3KeznwMtw45I+fTyYYCyD1fOngn9Q5wURmwKuX95C8VunSn267KAX8Pg200hkgZPgTwBwMLyQ==";
       };
     };
     "vasync-1.6.2" = {
@@ -69960,7 +70320,7 @@ let
       version = "1.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vasync/-/vasync-1.6.2.tgz";
-        sha1 = "568edcf40b2b5c35b1cc048cad085de4739703fb";
+        sha512 = "wRXkN7O5REJ3vlYYb3DKD+yRrNdXG3LEsxUgZCJEz/uguoq26jzcqt+7cozBC8GSCAxj56YtHuualN5Rz+Hi3g==";
       };
     };
     "vasync-1.6.3" = {
@@ -69969,7 +70329,7 @@ let
       version = "1.6.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vasync/-/vasync-1.6.3.tgz";
-        sha1 = "4a69d7052a47f4ce85503d7641df1cbf40432a94";
+        sha512 = "yeYyCFquU8aXjAZwKfgMpkwW1Wj9Ea/G/SG5dUTN07WNu8chJ4dAkYFXqOylIlpHNt/EobdQpiQNDNMzq1/EQw==";
       };
     };
     "vasync-1.6.4" = {
@@ -69978,7 +70338,7 @@ let
       version = "1.6.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/vasync/-/vasync-1.6.4.tgz";
-        sha1 = "dfe93616ad0e7ae801b332a9d88bfc5cdc8e1d1f";
+        sha512 = "3oQMomVgQgHzNe5iKuT8PGOhMCQcg1wfh00Nh/Kl39ERdTlw/uNS7kbrhEraDMDKWHdDdc0iBFahPEd/Ft2b+A==";
       };
     };
     "vasync-2.2.1" = {
@@ -70284,7 +70644,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.1.0.tgz";
-        sha1 = "2a4b4eb14a207051e75a6f94ee51315bf173a1b0";
+        sha512 = "5X/HjC1yBdrpYrQvjUC55HB1CuRPyk1b+Fz0Rpp60fhQR9aE4hcjnRwFfPNF7SNwoCb5fMrjGHr7Gla0zUerXA==";
       };
     };
     "verror-1.10.0" = {
@@ -70293,7 +70653,7 @@ let
       version = "1.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz";
-        sha1 = "3a105ca17053af55d6e270c1f8288682e18da400";
+        sha512 = "ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==";
       };
     };
     "verror-1.10.1" = {
@@ -70311,7 +70671,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.3.3.tgz";
-        sha1 = "8a6a4ac3a8c774b6f687fece49bdffd78552e2cd";
+        sha512 = "FRyhVjZX8Hy5Mlmvo4YbbN3V8KaagA6W6Xc3kNOtIQqd3DohGqQzqie1NDVfZbZuWZjCTF0E5PNUqQZ5BVqdew==";
       };
     };
     "verror-1.3.6" = {
@@ -70320,7 +70680,7 @@ let
       version = "1.3.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz";
-        sha1 = "cff5df12946d297d2baaefaa2689e25be01c005c";
+        sha512 = "i8GFYwImt5D5B8CPpi2jrDTy/faq4OEW+NkOTLSKcIdPfdYJvWv3VZddDKl0ByvBe6cJ2s5Mm2XDtv5c2pj/Eg==";
       };
     };
     "verror-1.6.0" = {
@@ -70329,7 +70689,7 @@ let
       version = "1.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/verror/-/verror-1.6.0.tgz";
-        sha1 = "7d13b27b1facc2e2da90405eb5ea6e5bdd252ea5";
+        sha512 = "bIOaZx4+Bf6a7sIORfmYnyKLDLk/lhVym6rjYlq+vkitYKnhFmUpmPpDTCltWFrUTlGKs6sCeoDWfMA0oOOneA==";
       };
     };
     "vfile-1.4.0" = {
@@ -70338,7 +70698,7 @@ let
       version = "1.4.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vfile/-/vfile-1.4.0.tgz";
-        sha1 = "c0fd6fa484f8debdb771f68c31ed75d88da97fe7";
+        sha512 = "7Fz639rwERslMqQCuf1/0H4Tqe2q484Xl6X/jsKqrP7IjFcDODFURhv0GekMnImpbj9pTOojtqL7r39LJJkjGA==";
       };
     };
     "vfile-3.0.1" = {
@@ -70359,13 +70719,13 @@ let
         sha512 = "O6AE4OskCG5S1emQ/4gl8zK586RqA3srz3nfK/Viy0UPToBc5Trp9BVFb1u0CjsKrAWwnpr4ifM/KBXPWwJbCA==";
       };
     };
-    "vfile-5.3.2" = {
+    "vfile-5.3.4" = {
       name = "vfile";
       packageName = "vfile";
-      version = "5.3.2";
+      version = "5.3.4";
       src = fetchurl {
-        url = "https://registry.npmjs.org/vfile/-/vfile-5.3.2.tgz";
-        sha512 = "w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==";
+        url = "https://registry.npmjs.org/vfile/-/vfile-5.3.4.tgz";
+        sha512 = "KI+7cnst03KbEyN1+JE504zF5bJBZa+J+CrevLeyIMq0aPU681I2rQ5p4PlnQ6exFtWiUrg26QUdFMnAKR6PIw==";
       };
     };
     "vfile-find-down-1.0.0" = {
@@ -70374,7 +70734,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vfile-find-down/-/vfile-find-down-1.0.0.tgz";
-        sha1 = "84a4d66d03513f6140a84e0776ef0848d4f0ad95";
+        sha512 = "AOXiJrVKizToYfRosXd1p9Fq8b0u0qchvSwVF1/ue3JE7o7KuQ/UH24bNAPLDUG/RIM1DZ6zWtDsiLShcma4WA==";
       };
     };
     "vfile-find-up-1.0.0" = {
@@ -70383,7 +70743,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vfile-find-up/-/vfile-find-up-1.0.0.tgz";
-        sha1 = "5604da6fe453b34350637984eb5fe4909e280390";
+        sha512 = "t97P/jQswvX0n//+RB74Wj43VOg3tel2InzaJYryaBewd4uN4pNXuoH/F00PkI3U1fBp+w/SIyrTjzIzPwDODg==";
       };
     };
     "vfile-find-up-5.0.1" = {
@@ -70455,7 +70815,7 @@ let
       version = "1.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-1.5.0.tgz";
-        sha1 = "21a7009bfe55e24df8ff432aa5bf6f6efa74e418";
+        sha512 = "VFF1LK0O8/nLmrPcc+5VMEnyP21BTzdVoq1rbxTaVt6cmSVk5MQs1POhkfY/cctndmZheNgirTcAMoiKj3aJYA==";
       };
     };
     "vfile-reporter-5.1.2" = {
@@ -70500,7 +70860,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vfile-sort/-/vfile-sort-1.0.0.tgz";
-        sha1 = "17ee491ba43e8951bb22913fcff32a7dc4d234d4";
+        sha512 = "6qIalNEKUt2YyVFzyJptdEo9sm/pMrSKvOJ35lH4us9YeW08zRs3E9VbdJ0O0n2Thxc1TWINP5QVhucy/YiGPA==";
       };
     };
     "vfile-sort-2.2.2" = {
@@ -70572,7 +70932,7 @@ let
       version = "0.5.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vinyl/-/vinyl-0.5.3.tgz";
-        sha1 = "b0455b38fc5e0cf30d4325132e461970c2091cde";
+        sha512 = "P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==";
       };
     };
     "vinyl-2.2.1" = {
@@ -70590,7 +70950,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz";
-        sha1 = "b104d9e4409ffa325faadd520642d0a3b488b365";
+        sha512 = "BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg==";
       };
     };
     "vinyl-fs-3.0.3" = {
@@ -70608,7 +70968,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz";
-        sha1 = "92a800593a38703a8cdb11d8b300ad4be63b3e16";
+        sha512 = "NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA==";
       };
     };
     "vizion-2.2.1" = {
@@ -70680,7 +71040,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz";
-        sha1 = "c066afb582bb1cb4128d60ea92392e94d5e9dbec";
+        sha512 = "qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==";
       };
     };
     "void-elements-3.1.0" = {
@@ -70689,7 +71049,7 @@ let
       version = "3.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz";
-        sha1 = "614f7fbf8d801f0bb5f0661f5b2f5785750e4f09";
+        sha512 = "Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==";
       };
     };
     "vsce-1.88.0" = {
@@ -70860,7 +71220,7 @@ let
       version = "3.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-3.5.0.tgz";
-        sha1 = "87239d9e166b2d7352245b8a813597804c1d63aa";
+        sha512 = "LeE9LS1IOIRDZy5Xugrbk2tKeMa64vkRODrXPZbwyn2l/Q0e/jyYq8ze/Lo96sjOFiRe3HHbTVN39Ta8KN2RpA==";
       };
     };
     "vscode-jsonrpc-3.6.0" = {
@@ -71238,7 +71598,7 @@ let
       version = "3.5.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.5.0.tgz";
-        sha1 = "e48d79962f0b8e02de955e3f524908e2b19c0374";
+        sha512 = "D4rUfu/oKYdc9Tmec0nEfedj+uXO2tZHR+eoHs9rE9G/QpRyZaHuug8ZUNGTGdO+ALLGgenL6bRpY8y3J9acHg==";
       };
     };
     "vscode-nls-2.0.2" = {
@@ -71247,7 +71607,7 @@ let
       version = "2.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-nls/-/vscode-nls-2.0.2.tgz";
-        sha1 = "808522380844b8ad153499af5c3b03921aea02da";
+        sha512 = "xK4p7Wksahb1imTwJZeA7+OSobDlRkWYWBuz9eR6LyJRLLG4LBxvLvZF8GO1ZY1tUWHITjZn2BtA8nRufKdHSg==";
       };
     };
     "vscode-nls-3.2.5" = {
@@ -71292,7 +71652,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vscode-uri/-/vscode-uri-1.0.3.tgz";
-        sha1 = "631bdbf716dccab0e65291a8dc25c23232085a52";
+        sha512 = "UU2mUJfedXt88AuhOj8vSkyWYiusf+zVdaFTme1C6l4k3ja8teTYpRt7C6wToIq7Jnph1fGYYmsaLQuqI+B46g==";
       };
     };
     "vscode-uri-1.0.8" = {
@@ -71328,7 +71688,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/vstream/-/vstream-0.1.0.tgz";
-        sha1 = "13587190f34e72ba7a07ebbaa7e70ac147b1fb7d";
+        sha512 = "WHV31NZp7EP0JHFPWzhuHuo4+MaHcrTyZZucsCW+wFuF3OQ3mJsOBSfJTqkG53ZN1jdjkfxitbOFLy8pNyKyDA==";
       };
     };
     "vt-pbf-3.1.3" = {
@@ -71517,7 +71877,7 @@ let
       version = "1.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/vuvuzela/-/vuvuzela-1.0.3.tgz";
-        sha1 = "3be145e58271c73ca55279dd851f12a682114b0b";
+        sha512 = "Tm7jR1xTzBbPW+6y1tknKiEhz04Wf/1iZkcTJjSFcpNko43+dFW6+OOeQe9taJIug3NdfUAjFKgUSyQrIKaDvQ==";
       };
     };
     "w3c-hr-time-1.0.2" = {
@@ -71589,7 +71949,7 @@ let
       version = "1.3.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/ware/-/ware-1.3.0.tgz";
-        sha1 = "d1b14f39d2e2cb4ab8c4098f756fe4b164e473d4";
+        sha512 = "Y2HUDMktriUm+SR2gZWxlrszcgtXExlhQYZ8QJNYbl22jum00KIUcHJ/h/sdAXhWTJcbSkiMYN9Z2tWbWYSrrw==";
       };
     };
     "warning-4.0.3" = {
@@ -71619,15 +71979,6 @@ let
         sha512 = "9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==";
       };
     };
-    "watchpack-2.1.1" = {
-      name = "watchpack";
-      packageName = "watchpack";
-      version = "2.1.1";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/watchpack/-/watchpack-2.1.1.tgz";
-        sha512 = "Oo7LXCmc1eE1AjyuSBmtC3+Wy4HcV8PxWh2kP6fOl8yTlNS7r0K9l1ao2lrrUza7V39Y3D/BbJgY8VeSlc5JKw==";
-      };
-    };
     "watchpack-2.4.0" = {
       name = "watchpack";
       packageName = "watchpack";
@@ -71652,7 +72003,7 @@ let
       version = "0.3.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/watershed/-/watershed-0.3.4.tgz";
-        sha1 = "79331f666366b3b1c6ab02ceb04bad8dd2eebb0c";
+        sha512 = "/lRBpLn2TvEwrIW5i35ZCpb+SIq4VWq4c1yxN311we+E4eXRW7EB5nybrv4fJEuBmgqyqVkT2gtQ6Zqu+u66mA==";
       };
     };
     "wavedrom-2.9.1" = {
@@ -71688,7 +72039,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz";
-        sha1 = "f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8";
+        sha512 = "XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==";
       };
     };
     "weak-lru-cache-1.2.2" = {
@@ -71706,7 +72057,7 @@ let
       version = "0.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/weasel-words/-/weasel-words-0.1.1.tgz";
-        sha1 = "7137946585c73fe44882013853bd000c5d687a4e";
+        sha512 = "rWkTAGqs4TN6qreS06+irmFUMrQVx5KoFjD8CxMHUsAwmxw/upDcfleaEYOLsonUbornahg+VJ9xrWxp4udyJA==";
       };
     };
     "web-encoding-1.1.5" = {
@@ -71823,7 +72174,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz";
-        sha1 = "3bf8258f7d318c7443c36f2e169402a1a6703506";
+        sha512 = "OZ7I/f0sM+T28T2/OXinNGfmvjm3KKptdyQy8NPRZyLfYBn+9vt72Bfr+uQaE9OvWyxJjQ5kHFygH2wOTUb76g==";
       };
     };
     "webidl-conversions-3.0.1" = {
@@ -71832,7 +72183,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz";
-        sha1 = "24534275e2a7bc6be7bc86611cc16ae0a5654871";
+        sha512 = "2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==";
       };
     };
     "webidl-conversions-4.0.2" = {
@@ -71934,13 +72285,13 @@ let
         sha512 = "7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==";
       };
     };
-    "webpack-cli-4.9.2" = {
+    "webpack-cli-4.10.0" = {
       name = "webpack-cli";
       packageName = "webpack-cli";
-      version = "4.9.2";
+      version = "4.10.0";
       src = fetchurl {
-        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz";
-        sha512 = "m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==";
+        url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz";
+        sha512 = "NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==";
       };
     };
     "webpack-dev-middleware-3.7.3" = {
@@ -72075,7 +72426,7 @@ let
       version = "0.6.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.6.5.tgz";
-        sha1 = "5cb2556ceb85f4373c6d8238aa691c8454e13a36";
+        sha512 = "oBx6ZM1Gs5q2jwZuSN/Qxyy/fbgomV8+vqsmipaPKB/74hjHlKuM07jNmRhn4qa2AdUwsgxrltq+gaPsHgcl0Q==";
       };
     };
     "websocket-driver-0.7.4" = {
@@ -72192,7 +72543,7 @@ let
       version = "5.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz";
-        sha1 = "966454e8765462e37644d3626f6742ce8b70965d";
+        sha512 = "saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==";
       };
     };
     "whatwg-url-7.1.0" = {
@@ -72219,7 +72570,7 @@ let
       version = "0.6.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz";
-        sha1 = "00898111af689bb097541cd5a45ca6c8798445bf";
+        sha512 = "vbg5+JVNwGtHRI3GheZGWrcUlxF9BXHbA80dLa+2XqJjlV/BK6upoi2j8dIRW9FGPUUyaMm7Hf1pTexHnsk85g==";
       };
     };
     "when-3.7.7" = {
@@ -72228,7 +72579,7 @@ let
       version = "3.7.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/when/-/when-3.7.7.tgz";
-        sha1 = "aba03fc3bb736d6c88b091d013d8a8e590d84718";
+        sha512 = "9lFZp/KHoqH6bPKjbWqa+3Dg/K/r2v0X/3/G2x4DBGchVS2QX2VXL3cZV994WQVnTM1/PD71Az25nAzryEUugw==";
       };
     };
     "whet.extend-0.9.9" = {
@@ -72237,7 +72588,7 @@ let
       version = "0.9.9";
       src = fetchurl {
         url = "https://registry.npmjs.org/whet.extend/-/whet.extend-0.9.9.tgz";
-        sha1 = "f877d5bf648c97e5aa542fadc16d6a259b9c11a1";
+        sha512 = "mmIPAft2vTgEILgPeZFqE/wWh24SEsR/k+N9fJ3Jxrz44iDFy9aemCxdksfURSHYFCLmvs/d/7Iso5XjPpNfrA==";
       };
     };
     "which-1.2.4" = {
@@ -72246,7 +72597,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/which/-/which-1.2.4.tgz";
-        sha1 = "1557f96080604e5b11b3599eb9f45b50a9efd722";
+        sha512 = "zDRAqDSBudazdfM9zpiI30Fu9ve47htYXcGi3ln0wfKu2a7SmrT6F3VDoYONu//48V8Vz4TdCRNPjtvyRO3yBA==";
       };
     };
     "which-1.3.1" = {
@@ -72291,7 +72642,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz";
-        sha1 = "bba63ca861948994ff307736089e3b96026c2a4f";
+        sha512 = "F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ==";
       };
     };
     "which-module-2.0.0" = {
@@ -72300,7 +72651,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz";
-        sha1 = "d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a";
+        sha512 = "B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==";
       };
     };
     "which-pm-2.0.0" = {
@@ -72354,7 +72705,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/widest-line/-/widest-line-1.0.0.tgz";
-        sha1 = "0c09c85c2a94683d0d7eaf8ee097d564bf0e105c";
+        sha512 = "r5vvGtqsHUHn98V0jURY4Ts86xJf6+SzK9rpWdV8/73nURB3WFPIHd67aOvPw2fSuunIyHjAUqiJ2TY0x4E5gw==";
       };
     };
     "widest-line-2.0.1" = {
@@ -72381,7 +72732,7 @@ let
       version = "2.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz";
-        sha1 = "08d3f52056c66679299726fade0d432ae74b4704";
+        sha512 = "HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==";
       };
     };
     "wikimedia-kad-fork-1.3.6" = {
@@ -72426,7 +72777,16 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/win-detect-browsers/-/win-detect-browsers-1.0.2.tgz";
-        sha1 = "f45f10d141086c5d94ae14c03b2098440a7e71b0";
+        sha512 = "tmRmirrEutoOzN44OsAO9So8X/JpMrHtzxYHfcpSNTCIAf1VVcUdYvPPZY+J0hqRUnvlAr8xNYzDqTlVP8HCug==";
+      };
+    };
+    "winattr-3.0.0" = {
+      name = "winattr";
+      packageName = "winattr";
+      version = "3.0.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/winattr/-/winattr-3.0.0.tgz";
+        sha512 = "dt33rYsTYcGbB+I1ubB6ZLODibRSCW//TgY/SuajLllR9kHnHnbUMqnXIe0osYsXUdRLGs770zb3t9z/ScGUpw==";
       };
     };
     "window-size-0.1.0" = {
@@ -72435,7 +72795,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz";
-        sha1 = "5438cd2ea93b202efa3a19fe8887aee7c94f9c9d";
+        sha512 = "1pTPQDKTdd61ozlKGNCjhNRd+KPmgLSGa3mZTHoOliaGcESD8G1PXhh7c1fgiPjVbNVfgy2Faw4BI8/m0cC8Mg==";
       };
     };
     "window-size-0.1.4" = {
@@ -72444,7 +72804,7 @@ let
       version = "0.1.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz";
-        sha1 = "f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876";
+        sha512 = "2thx4pB0cV3h+Bw7QmMXcEbdmOzv9t0HFplJH/Lz6yu60hXYy5RT8rUu+wlIreVxWsGN20mo+MHeCSfUpQBwPw==";
       };
     };
     "window-size-0.2.0" = {
@@ -72453,7 +72813,7 @@ let
       version = "0.2.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz";
-        sha1 = "b4315bb4214a3d7058ebeee892e13fa24d98b075";
+        sha512 = "UD7d8HFA2+PZsbKyaOCEy8gMh1oDtHgJh1LfgjQ4zVXmYjAT/kvz3PueITKuqDiIXQe7yzpPnxX3lNc+AhQMyw==";
       };
     };
     "window-size-1.1.1" = {
@@ -72471,7 +72831,7 @@ let
       version = "0.0.6";
       src = fetchurl {
         url = "https://registry.npmjs.org/windows-no-runnable/-/windows-no-runnable-0.0.6.tgz";
-        sha1 = "91e5129088330a0fe248520cee12d1ad6bb4ddfb";
+        sha512 = "THEnZzMKBYonb45BEffK8eE5fA4LaSw3Cog/pvwjdKP8kqOZov8Fqr1RZZuSn15dyd5rHMLA0+s8q7NsPypspQ==";
       };
     };
     "windows-release-3.3.3" = {
@@ -72498,7 +72858,7 @@ let
       version = "0.0.12";
       src = fetchurl {
         url = "https://registry.npmjs.org/winreg/-/winreg-0.0.12.tgz";
-        sha1 = "07105554ba1a9d08979251d129475bffae3006b7";
+        sha512 = "typ/+JRmi7RqP1NanzFULK36vczznSNN8kWVA9vIqXyv8GhghUlwhGp1Xj3Nms1FsPcNnsQrJOR10N58/nQ9hQ==";
       };
     };
     "winreg-1.2.4" = {
@@ -72507,7 +72867,7 @@ let
       version = "1.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/winreg/-/winreg-1.2.4.tgz";
-        sha1 = "ba065629b7a925130e15779108cf540990e98d1b";
+        sha512 = "IHpzORub7kYlb8A43Iig3reOvlcBJGX9gZ0WycHhghHtA65X0LYnMRuJs+aH1abVnMJztQkvQNlltnbPi5aGIA==";
       };
     };
     "winston-0.6.2" = {
@@ -72516,7 +72876,7 @@ let
       version = "0.6.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston/-/winston-0.6.2.tgz";
-        sha1 = "4144fe2586cdc19a612bf8c035590132c9064bd2";
+        sha512 = "BzHNq8X415XGFkGPT+ACKTj95ghSAbR4eThAtKg4OC4PYVn5FLIdTETYUv76f4QxUcG1ps6yqnbO1K/81hGIzQ==";
       };
     };
     "winston-0.8.0" = {
@@ -72525,7 +72885,7 @@ let
       version = "0.8.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz";
-        sha1 = "61d0830fa699706212206b0a2b5ca69a93043668";
+        sha512 = "BoFzn3FEOWlq+1rDbDrbD093E3IRqukS8DYiqtY4vblIFR+5MSGUstAU228MGJa0vodiqm/iU2c8OGw6Iorx1g==";
       };
     };
     "winston-0.8.3" = {
@@ -72534,7 +72894,7 @@ let
       version = "0.8.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz";
-        sha1 = "64b6abf4cd01adcaefd5009393b1d8e8bec19db0";
+        sha512 = "fPoamsHq8leJ62D1M9V/f15mjQ1UHe4+7j1wpAT3fqgA5JqhJkk4aIfPEjfMTI9x6ZTjaLOpMAjluLtmgO5b6g==";
       };
     };
     "winston-1.0.2" = {
@@ -72543,7 +72903,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston/-/winston-1.0.2.tgz";
-        sha1 = "351c58e2323f8a4ca29a45195aa9aa3b4c35d76f";
+        sha512 = "BLxJH3KCgJ2paj2xKYTQLpxdKr9URPDDDLJnRVcbud7izT+m8Xzt5Rod6mnNgEcfT0fRvhEy2Cj3cEnnQpa6qA==";
       };
     };
     "winston-2.1.1" = {
@@ -72552,7 +72912,7 @@ let
       version = "2.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz";
-        sha1 = "3c9349d196207fd1bdff9d4bc43ef72510e3a12e";
+        sha512 = "CPXrr+LD3DBeCEAnhPYS7DYbdq8kwhnkrVY7Px0vEROil9iZWaz0VHZHg41pNcUJc+1/PDm2obR1Lb2QGto1ZQ==";
       };
     };
     "winston-2.4.5" = {
@@ -72624,7 +72984,7 @@ let
       version = "5.1.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/with/-/with-5.1.1.tgz";
-        sha1 = "fa4daa92daf32c4ea94ed453c81f04686b575dfe";
+        sha512 = "uAnSsFGfSpF6DNhBXStvlZILfHJfJu4eUkfbRGk94kGO1Ta7bg6FwfvoOhhyHAJuFbCw+0xk4uJ3u57jLvlCJg==";
       };
     };
     "with-7.0.2" = {
@@ -72660,7 +73020,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz";
-        sha1 = "b79669bb42ecb409f83d583cad52ca17eaa1643f";
+        sha512 = "xSBsCeh+g+dinoBv3GAOWM4LcVVO68wLXRanibtBSdUvkGWQRGeE9P7IwU9EmDDi4jA6L44lz15CGMwdw9N5+Q==";
       };
     };
     "wordwrap-0.0.3" = {
@@ -72669,7 +73029,7 @@ let
       version = "0.0.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz";
-        sha1 = "a3d5da6cd5c0bc0008d37234bbaf1bed63059107";
+        sha512 = "1tMA907+V4QmxV7dbRvb4/8MaRALK6q9Abid3ndMYnbyo8piisCmeONVqVSXqQA3KaP4SLt5b7ud6E2sqP8TFw==";
       };
     };
     "wordwrap-1.0.0" = {
@@ -72678,7 +73038,7 @@ let
       version = "1.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz";
-        sha1 = "27584810891456a4171c8d0226441ade90cbcaeb";
+        sha512 = "gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==";
       };
     };
     "wordwrapjs-3.0.0" = {
@@ -72732,7 +73092,7 @@ let
       version = "2.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz";
-        sha1 = "d8fc3d284dd05794fe84973caecdd1cf824fdd85";
+        sha512 = "vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw==";
       };
     };
     "wrap-ansi-3.0.1" = {
@@ -72741,7 +73101,7 @@ let
       version = "3.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-3.0.1.tgz";
-        sha1 = "288a04d87eda5c286e060dfe8f135ce8d007f8ba";
+        sha512 = "iXR3tDXpbnTpzjKSylUJRkLuOrEC7hwEB221cgn6wtF8wpmz28puFXAEfPT5zrjM3wahygB//VuWEr1vTkDcNQ==";
       };
     };
     "wrap-ansi-4.0.0" = {
@@ -72795,7 +73155,7 @@ let
       version = "0.1.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrap-fn/-/wrap-fn-0.1.5.tgz";
-        sha1 = "f21b6e41016ff4a7e31720dbc63a09016bdf9845";
+        sha512 = "xDLdGx0M8JQw9QDAC9s5NUxtg9MI09F6Vbxa2LYoSoCvzJnx2n81YMIfykmXEGsUvuLaxnblJTzhSOjUOX37ag==";
       };
     };
     "wrapped-1.0.1" = {
@@ -72804,7 +73164,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrapped/-/wrapped-1.0.1.tgz";
-        sha1 = "c783d9d807b273e9b01e851680a938c87c907242";
+        sha512 = "ZTKuqiTu3WXtL72UKCCnQLRax2IScKH7oQ+mvjbpvNE+NJxIWIemDqqM2GxNr4N16NCjOYpIgpin5pStM7kM5g==";
       };
     };
     "wrappy-1.0.2" = {
@@ -72813,7 +73173,7 @@ let
       version = "1.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz";
-        sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f";
+        sha512 = "l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==";
       };
     };
     "write-0.2.1" = {
@@ -72822,7 +73182,7 @@ let
       version = "0.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/write/-/write-0.2.1.tgz";
-        sha1 = "5fc03828e264cea3fe91455476f7a3c566cb0757";
+        sha512 = "CJ17OoULEKXpA5pef3qLj5AxTJ6mSt7g84he2WIskKwqFO4T97d5V7Tadl0DYDk7qyUOQD5WlUlOMChaYrhxeA==";
       };
     };
     "write-1.0.3" = {
@@ -72840,7 +73200,7 @@ let
       version = "1.3.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-1.3.4.tgz";
-        sha1 = "f807a4f0b1d9e913ae7a48112e6cc3af1991b45f";
+        sha512 = "SdrHoC/yVBPpV0Xq/mUZQIpW2sWXAShb/V4pomcJXh92RuaO+f3UTWItiR3Px+pLnV2PvC2/bfn5cwr5X6Vfxw==";
       };
     };
     "write-file-atomic-2.4.3" = {
@@ -72912,7 +73272,7 @@ let
       version = "0.4.31";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-0.4.31.tgz";
-        sha1 = "5a4849e7a9ccd1ed5a81aeb4847c9fedf3122927";
+        sha512 = "mWiVQ9qZGPXvLxQ4xGy58Ix5Bw0L99SB+hDT8L59bty4fbnQczaGl4YEWR7AzLQGbvPn/30r9/o41dPiSuUmYw==";
       };
     };
     "ws-1.1.5" = {
@@ -72930,7 +73290,7 @@ let
       version = "2.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/ws/-/ws-2.3.1.tgz";
-        sha1 = "6b94b3e447cb6a363f785eaf94af6359e8e81c80";
+        sha512 = "61a+9LgtYZxTq1hAonhX8Xwpo2riK4IOR/BIVxioFbCfc3QFKmpE4x9dLExfLHKtUfVZigYa36tThVhO57erEw==";
       };
     };
     "ws-3.3.3" = {
@@ -73050,6 +73410,15 @@ let
         sha512 = "c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==";
       };
     };
+    "ws-8.8.0" = {
+      name = "ws";
+      packageName = "ws";
+      version = "8.8.0";
+      src = fetchurl {
+        url = "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz";
+        sha512 = "JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==";
+      };
+    };
     "wtfnode-0.8.4" = {
       name = "wtfnode";
       packageName = "wtfnode";
@@ -73065,7 +73434,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/x-default-browser/-/x-default-browser-0.3.1.tgz";
-        sha1 = "7f6194154fd1786cf261e68b5488c47127a04977";
+        sha512 = "oIUX3Ck1NqMOHLOT46cZG+CuYN30BNR1QyVYWmcGWKrkSo91ftWSg8P2IIU9Hf7n7StYerI+BzGbKLsnLalwuQ==";
       };
     };
     "x-is-array-0.1.0" = {
@@ -73074,7 +73443,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/x-is-array/-/x-is-array-0.1.0.tgz";
-        sha1 = "de520171d47b3f416f5587d629b89d26b12dc29d";
+        sha512 = "goHPif61oNrr0jJgsXRfc8oqtYzvfiMJpTqwE7Z4y9uH+T3UozkGqQ4d2nX9mB9khvA8U2o/UbPOFjgC7hLWIA==";
       };
     };
     "x-is-string-0.1.0" = {
@@ -73083,7 +73452,7 @@ let
       version = "0.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/x-is-string/-/x-is-string-0.1.0.tgz";
-        sha1 = "474b50865af3a49a9c4657f05acd145458f77d82";
+        sha512 = "GojqklwG8gpzOVEVki5KudKNoq7MbbjYZCbyWzEz7tyPA7eleiE0+ePwOWQQRb5fm86rD3S8Tc0tSFf3AOv50w==";
       };
     };
     "x256-0.0.2" = {
@@ -73092,7 +73461,7 @@ let
       version = "0.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/x256/-/x256-0.0.2.tgz";
-        sha1 = "c9af18876f7a175801d564fe70ad9e8317784934";
+        sha512 = "ZsIH+sheoF8YG9YG+QKEEIdtqpHRA9FYuD7MqhfyB1kayXU43RUNBFSxBEnF8ywSUxdg+8no4+bPr5qLbyxKgA==";
       };
     };
     "xcase-2.0.1" = {
@@ -73101,7 +73470,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xcase/-/xcase-2.0.1.tgz";
-        sha1 = "c7fa72caa0f440db78fd5673432038ac984450b9";
+        sha512 = "UmFXIPU+9Eg3E9m/728Bii0lAIuoc+6nbrNUKaRPJOFp91ih44qqGlWtxMB6kXFrRD6po+86ksHM5XHCfk6iPw==";
       };
     };
     "xcode-3.0.1" = {
@@ -73119,7 +73488,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz";
-        sha1 = "edbc903cc385fc04523d966a335504b5504d1bd2";
+        sha512 = "NF1pPn594TaRSUO/HARoB4jK8I+rWgcpVlpQCK6/6o5PHyLUt2CSiDrpUZbQ6rROck+W2EwF8mBJcTs+W98J9w==";
       };
     };
     "xdg-basedir-3.0.0" = {
@@ -73128,7 +73497,7 @@ let
       version = "3.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz";
-        sha1 = "496b2cc109eca8dbacfe2dc72b603c17c5870ad4";
+        sha512 = "1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==";
       };
     };
     "xdg-basedir-4.0.0" = {
@@ -73149,13 +73518,13 @@ let
         sha512 = "N1XQngeqMBoj9wM4ZFadVV2MymImeiFfYD+fJrNlcVcOHsJFFQe7n3b+aBoTPwARuq2HQxukfzVpQmAk1gN4sQ==";
       };
     };
-    "xdl-59.2.40" = {
+    "xdl-59.2.41" = {
       name = "xdl";
       packageName = "xdl";
-      version = "59.2.40";
+      version = "59.2.41";
       src = fetchurl {
-        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.40.tgz";
-        sha512 = "HgqJ0Oa7zfAbRQ0rf5XrVrLaluXOOkvwiIdYGsWPpZEs3+fuRAnC+dYStqTsDMDp8kuZT/nMmlyMJDlWx76B+w==";
+        url = "https://registry.npmjs.org/xdl/-/xdl-59.2.41.tgz";
+        sha512 = "tACOq+f2bis8OyEQFsf1b5TromvSwaPVfiX7XsdKF6BVyXhmFb5H7GByu+VQr8hDYR6oHWXSd6oHiYHDufMkJw==";
       };
     };
     "xenvar-0.5.1" = {
@@ -73164,7 +73533,7 @@ let
       version = "0.5.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xenvar/-/xenvar-0.5.1.tgz";
-        sha1 = "f82d2fedee63af76687b70115ce6274dc71310e9";
+        sha512 = "6f9NN4sqsq4Zu1/fFQQysuYKymdCor3fhyyhjxk6it6LXlP4vocjyFtFP5YAH8MeLI4Aozwfosrx1NsdmKy+DQ==";
       };
     };
     "xhr-2.6.0" = {
@@ -73182,7 +73551,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz";
-        sha1 = "78ba72020029c5bc87b8a81a3cfcd74b4a2fc1e5";
+        sha512 = "huCv9IH9Tcf95zuYCsQraZtWnJvBtLVE0QHMOs8bWyZAFZNDcYjsPq1nEx8jKA9y+Beo9v+7OBPRisQTjinQMw==";
       };
     };
     "xml-crypto-0.8.5" = {
@@ -73191,7 +73560,7 @@ let
       version = "0.8.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml-crypto/-/xml-crypto-0.8.5.tgz";
-        sha1 = "2bbcfb3eb33f3a82a218b822bf672b6b1c20e538";
+        sha512 = "bmO0+G7iSf8dldIehyokvLps0ZZpGMe3gQNa+MPOrdBZbpzUG/Ass4njwWmPKCtR4pN+N921uH4M+Uskc7g/IA==";
       };
     };
     "xml-encryption-0.7.4" = {
@@ -73200,7 +73569,7 @@ let
       version = "0.7.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml-encryption/-/xml-encryption-0.7.4.tgz";
-        sha1 = "42791ec64d556d2455dcb9da0a54123665ac65c7";
+        sha512 = "gwwKa9TwNT8S4dimixE+k4wsOOxK6Rt7ctxGRtuZyT7bWPvJwMTbYLLDKu7WG19vKwDMqMqGkVjbLQquKDY7pw==";
       };
     };
     "xml-escape-1.1.0" = {
@@ -73209,7 +73578,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml-escape/-/xml-escape-1.1.0.tgz";
-        sha1 = "3904c143fa8eb3a0030ec646d2902a2f1b706c44";
+        sha512 = "B/T4sDK8Z6aUh/qNr7mjKAwwncIljFuUP+DO/D5hloYFj+90O88z8Wf7oSucZTHxBAsC1/CTP4rtx/x1Uf72Mg==";
       };
     };
     "xml-js-1.6.11" = {
@@ -73227,7 +73596,7 @@ let
       version = "2.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz";
-        sha1 = "4d8b8f1eccd3419aa362061becef515e1e559635";
+        sha512 = "jRKe/iQYMyVJpzPH+3HL97Lgu5HrCfii+qSo+TfjKHtOnvbnvdVfMYrn9Q34YV81M2e5sviJlI6Ko9y+nByzvA==";
       };
     };
     "xml-name-validator-3.0.0" = {
@@ -73254,7 +73623,7 @@ let
       version = "1.0.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml-parse-from-string/-/xml-parse-from-string-1.0.1.tgz";
-        sha1 = "a9029e929d3dbcded169f3c6e28238d95a5d5a28";
+        sha512 = "ErcKwJTF54uRzzNMXq2X5sMIy88zJvfN2DmdoQvy7PAFJ+tPRU6ydWuOKNMyfmOjdyBQTFREi60s0Y0SyI0G0g==";
       };
     };
     "xml2js-0.2.4" = {
@@ -73263,7 +73632,7 @@ let
       version = "0.2.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml2js/-/xml2js-0.2.4.tgz";
-        sha1 = "9a5b577fa1e6cdf8923d5e1372f7a3188436e44d";
+        sha512 = "pvB3Cyt544R+GPIOuICuRkeW8J5w/D33c80t0i25Q7Y2agbKY3LM6W7b5ZE14C2wPDWtKWf2j7tbKrP6/6oPNQ==";
       };
     };
     "xml2js-0.2.8" = {
@@ -73272,7 +73641,7 @@ let
       version = "0.2.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml2js/-/xml2js-0.2.8.tgz";
-        sha1 = "9b81690931631ff09d1957549faf54f4f980b3c2";
+        sha512 = "ZHZBIAO55GHCn2jBYByVPHvHS+o3j8/a/qmpEe6kxO3cTnTCWC3Htq9RYJ5G4XMwMMClD2QkXA9SNdPadLyn3Q==";
       };
     };
     "xml2js-0.4.19" = {
@@ -73299,7 +73668,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/xml2tss/-/xml2tss-0.0.5.tgz";
-        sha1 = "d76a310d6b8a7ba9e4825bb3d43f5427e9fe8f6e";
+        sha512 = "TOhoxozyWBTpRtNf5aS4lRbFJ/VdC/YuiOUJOJFYheifww9Wvt29MiO7Dpo09LYXxaTYHhiBVNA5S7ZVnwYDaw==";
       };
     };
     "xmlbuilder-0.4.2" = {
@@ -73308,7 +73677,7 @@ let
       version = "0.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.2.tgz";
-        sha1 = "1776d65f3fdbad470a08d8604cdeb1c4e540ff83";
+        sha512 = "h/+ncQQSU/iYycmI2wTN25t7RYN7O2oq9uvI+2+UObi4KcmQh/jUS4N31g5vJttQt7MODsnmBtbcll3YbNyvfw==";
       };
     };
     "xmlbuilder-0.4.3" = {
@@ -73317,7 +73686,7 @@ let
       version = "0.4.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-0.4.3.tgz";
-        sha1 = "c4614ba74e0ad196e609c9272cd9e1ddb28a8a58";
+        sha512 = "t3QW+VdXvxcy214Wf5Mvb+38RPW6EUG1RpMjjtG+esbAFh+/50PdXz1iGywefNl70DW2ucNWTXBw5buTgzDWyw==";
       };
     };
     "xmlbuilder-11.0.1" = {
@@ -73353,7 +73722,7 @@ let
       version = "2.5.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-2.5.2.tgz";
-        sha1 = "5ab88fc508ab2ff14873010b56163d3f92b19325";
+        sha512 = "KjolMh3rfQaytYw7jMYzYUbfdcW3bV3Jm4QEws72e7fo/MuEMLImppWh4Zn2QqNhEKbKW8yOwfDlVO3+lUEspA==";
       };
     };
     "xmlbuilder-4.0.0" = {
@@ -73362,7 +73731,7 @@ let
       version = "4.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz";
-        sha1 = "98b8f651ca30aa624036f127d11cc66dc7b907a3";
+        sha512 = "wrG9gc6hCFDd5STt+6fsjP2aGSkjkNSewH+1K6s0KVOd94vXAUyTwlxWVnMFVtLdMf+q0QRZN1z9hTOKgoEdMg==";
       };
     };
     "xmlbuilder-9.0.7" = {
@@ -73371,7 +73740,7 @@ let
       version = "9.0.7";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz";
-        sha1 = "132ee63d2ec5565c557e20f4c22df9aca686b10d";
+        sha512 = "7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ==";
       };
     };
     "xmlchars-2.2.0" = {
@@ -73398,7 +73767,7 @@ let
       version = "0.1.19";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmldom/-/xmldom-0.1.19.tgz";
-        sha1 = "631fc07776efd84118bf25171b37ed4d075a0abc";
+        sha512 = "pDyxjQSFQgNHkU+yjvoF+GXVGJU7e9EnOg/KcGMDihBIKjTsOeDYaECwC/O9bsUWKY+Sd9izfE43JXC46EOHKA==";
       };
     };
     "xmldom-0.1.31" = {
@@ -73435,7 +73804,7 @@ let
       version = "1.5.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz";
-        sha1 = "c2876b06168aadc40e57d97e81191ac8f4398b3e";
+        sha512 = "/bFPLUgJrfGUL10AIv4Y7/CUt6so9CLtB/oFxQSHseSDNNCdC6vwwKEqwLN6wNPBg9YWXAiMu8jkf6RPRS/75Q==";
       };
     };
     "xmlhttprequest-ssl-1.6.3" = {
@@ -73480,7 +73849,7 @@ let
       version = "0.0.23";
       src = fetchurl {
         url = "https://registry.npmjs.org/xpath/-/xpath-0.0.23.tgz";
-        sha1 = "f5e8fdc6bdc7e72885b3234f40cba2669580aafa";
+        sha512 = "WHBD7+PebdFl+vGmhl/TnFLHDCTytivkerph52SF+2IUtil+lbOEK0BHHAoL+z4JOHIaF5R7Dh9VgrpnzVOFRA==";
       };
     };
     "xpath-0.0.32" = {
@@ -73498,7 +73867,7 @@ let
       version = "0.0.5";
       src = fetchurl {
         url = "https://registry.npmjs.org/xpath/-/xpath-0.0.5.tgz";
-        sha1 = "454036f6ef0f3df5af5d4ba4a119fb75674b3e6c";
+        sha512 = "Y1Oyy8lyIDwWpmKIWBF0RZrQOP1fzE12G0ekSB1yzKPtbAdCI5sBCqBU/CAZUkKk81OXuq9tul/5lyNS+22iKg==";
       };
     };
     "xpath.js-1.1.0" = {
@@ -73516,7 +73885,7 @@ let
       version = "2.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/xregexp/-/xregexp-2.0.0.tgz";
-        sha1 = "52a63e56ca0b84a7f3a5f3d61872f126ad7a5943";
+        sha512 = "xl/50/Cf32VsGq/1R8jJE5ajH1yMCQkpmoS10QbFZWl2Oor4H0Me64Pu2yxvsRWK3m6soJbmGfzSR7BYmDcWAA==";
       };
     };
     "xsalsa20-1.2.0" = {
@@ -73543,7 +73912,7 @@ let
       version = "0.3.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/xspfr/-/xspfr-0.3.1.tgz";
-        sha1 = "f164263325ae671f53836fb210c7ddbcfda46598";
+        sha512 = "LF2/GULgkPijLxuwnLifHEXYfwRNchpUM9yvE7qBWc9XYpH/z+akAxdGwmGrydShN26xJLXtEsK6Jgg5wZxI9g==";
       };
     };
     "xss-1.0.13" = {
@@ -73570,7 +73939,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz";
-        sha1 = "6efecc2a4dad8e6962c4901b337ce7ba87b5d28b";
+        sha512 = "vMNKzr2rHP9Dp/e1NQFnLQlwlhp9L/LfvnsVdHxN1f+uggyVI3i08uD14GPvCToPkdsRfyPqIyYGmIk58V98ZQ==";
       };
     };
     "xtend-4.0.2" = {
@@ -73624,7 +73993,7 @@ let
       version = "2.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz";
-        sha1 = "1c11f9218f076089a47dd512f93c6699a6a81d52";
+        sha512 = "ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==";
       };
     };
     "yallist-3.1.1" = {
@@ -73705,7 +74074,7 @@ let
       version = "0.0.8";
       src = fetchurl {
         url = "https://registry.npmjs.org/yaml-js/-/yaml-js-0.0.8.tgz";
-        sha1 = "87cfa5a9613f48e26005420d6a8ee0da6fe8daec";
+        sha512 = "XCqDFUhDO3yhT+Rb/inT3uiC8ekx2lXHDgDeXY8V0Lgkx4yEhzhxraYQxtuajydIrx8L8KmF9OeKCDlyCjvnMQ==";
       };
     };
     "yamljs-0.3.0" = {
@@ -73732,7 +74101,7 @@ let
       version = "1.3.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-1.3.3.tgz";
-        sha1 = "054de8b61f22eefdb7207059eaef9d6b83fb931a";
+        sha512 = "7OGt4xXoWJQh5ulgZ78rKaqY7dNWbjfK+UKxGcIlaM2j7C4fqGchyv8CPvEWdRPrHp6Ula/YU8yGRpYGOHrI+g==";
       };
     };
     "yargs-11.1.1" = {
@@ -73834,15 +74203,6 @@ let
         sha512 = "WUANQeVgjLbNsEmGk20f+nlHgOqzRFpiGWVaBrYGYIGANIIu3lWjoyi0fNlFmJkvfhCZ6BXINe7/W2O2bV4iaA==";
       };
     };
-    "yargs-17.4.0" = {
-      name = "yargs";
-      packageName = "yargs";
-      version = "17.4.0";
-      src = fetchurl {
-        url = "https://registry.npmjs.org/yargs/-/yargs-17.4.0.tgz";
-        sha512 = "WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==";
-      };
-    };
     "yargs-17.4.1" = {
       name = "yargs";
       packageName = "yargs";
@@ -73867,7 +74227,7 @@ let
       version = "3.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz";
-        sha1 = "f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1";
+        sha512 = "QFzUah88GAGy9lyDKGBqZdkYApt63rCXYBGYnEP4xDJPXNqXXnBDACnbrXnViV6jRSqAePwrATi2i8mfYm4L1A==";
       };
     };
     "yargs-3.32.0" = {
@@ -73876,7 +74236,7 @@ let
       version = "3.32.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz";
-        sha1 = "03088e9ebf9e756b69751611d2a5ef591482c995";
+        sha512 = "ONJZiimStfZzhKamYvR/xvmgW3uEkAUFSP91y2caTEPhzF6uP2JfPiVZcq66b/YR0C3uitxSV7+T1x8p5bkmMg==";
       };
     };
     "yargs-4.7.1" = {
@@ -73885,7 +74245,7 @@ let
       version = "4.7.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-4.7.1.tgz";
-        sha1 = "e60432658a3387ff269c028eacde4a512e438dff";
+        sha512 = "T8W8Q04y0uWmRmnbBfLTFNTpn2NdYs+pJd1G7ziRjyRFqSJhMRzIznjafyLFTcK4DIGVPVs1zyH0OoSjN/k/jw==";
       };
     };
     "yargs-4.8.1" = {
@@ -73894,7 +74254,7 @@ let
       version = "4.8.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz";
-        sha1 = "c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0";
+        sha512 = "LqodLrnIDM3IFT+Hf/5sxBnEGECrfdC1uIbgZeJmESCSo4HoCAaKEus8MylXHAkdacGc0ye+Qa+dpkuom8uVYA==";
       };
     };
     "yargs-6.6.0" = {
@@ -73903,7 +74263,7 @@ let
       version = "6.6.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz";
-        sha1 = "782ec21ef403345f830a808ca3d513af56065208";
+        sha512 = "6/QWTdisjnu5UHUzQGst+UOEuEVwIzFVGBjq3jMTFNs5WJQsH/X6nMURSaScIdF5txylr1Ao9bvbWiKi2yXbwA==";
       };
     };
     "yargs-7.1.2" = {
@@ -73966,7 +74326,7 @@ let
       version = "2.4.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz";
-        sha1 = "85568de3cf150ff49fa51825f03a8c880ddcc5c4";
+        sha512 = "9pIKIJhnI5tonzG6OnCFlz/yln8xHYcGl+pn3xR0Vzff0vzN1PbNRaelgfgRUwZ3s4i3jvxT9WhmUGL4whnasA==";
       };
     };
     "yargs-parser-20.2.4" = {
@@ -74002,7 +74362,7 @@ let
       version = "4.2.1";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz";
-        sha1 = "29cceac0dc4f03c6c87b4a9f217dd18c9f74871c";
+        sha512 = "+QQWqC2xeL0N5/TE+TY6OGEqyNRM+g2/r712PDNYgiCdXYCApXf1vzfmDSLBxfGRwV+moTq/V8FnMI24JCm2Yg==";
       };
     };
     "yargs-parser-5.0.1" = {
@@ -74020,7 +74380,7 @@ let
       version = "7.0.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz";
-        sha1 = "8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9";
+        sha512 = "WhzC+xgstid9MbVUktco/bf+KJG+Uu6vMX0LN1sLJvwmbCQVxb4D8LzogobonKycNasCZLdOzTAk1SK7+K7swg==";
       };
     };
     "yargs-parser-9.0.2" = {
@@ -74029,7 +74389,7 @@ let
       version = "9.0.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yargs-parser/-/yargs-parser-9.0.2.tgz";
-        sha1 = "9ccf6a43460fe4ed40a9bb68f48d43b8a68cc077";
+        sha512 = "CswCfdOgCr4MMsT1GzbEJ7Z2uYudWyrGX8Bgh/0eyCzj/DXWdKq6a/ADufkzI1WAOIW6jYaXJvRyLhDO0kfqBw==";
       };
     };
     "yargs-unparser-2.0.0" = {
@@ -74083,7 +74443,7 @@ let
       version = "2.10.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz";
-        sha1 = "c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9";
+        sha512 = "p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==";
       };
     };
     "yazl-2.5.1" = {
@@ -74101,7 +74461,7 @@ let
       version = "0.1.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz";
-        sha1 = "008e06d8094320c372dbc2f8ed76a0ca6c8ac419";
+        sha512 = "8HFIh676uyGYP6wP13R/j6OJ/1HwJ46snpvzE7aHAN3Ryqh2yX6Xox2B4CUmTwwOIzlG3Bs7ocsP5dZH/R1Qbg==";
       };
     };
     "yeoman-character-1.1.0" = {
@@ -74110,7 +74470,7 @@ let
       version = "1.1.0";
       src = fetchurl {
         url = "https://registry.npmjs.org/yeoman-character/-/yeoman-character-1.1.0.tgz";
-        sha1 = "90d4b5beaf92759086177015b2fdfa2e0684d7c7";
+        sha512 = "oxzeZugaEkVJC+IHwcb+DZDb8IdbZ3f4rHax4+wtJstCx+9BAaMX+Inmp3wmGmTWftJ7n5cPqQRbo1FaV/vNXQ==";
       };
     };
     "yeoman-doctor-5.0.0" = {
@@ -74272,7 +74632,7 @@ let
       version = "1.0.4";
       src = fetchurl {
         url = "https://registry.npmjs.org/zerr/-/zerr-1.0.4.tgz";
-        sha1 = "62814dd799eff8361f2a228f41f705c5e19de4c9";
+        sha512 = "u3WW9JA9xNmhy3cK6iSi3uWe4XmuqPCZ+jOrngEIwYz//ZUhY6bexVFrWLcxrIDUbJeXnyJORqVYPi2YU6gA+A==";
       };
     };
     "zip-dir-2.0.0" = {
@@ -74308,7 +74668,7 @@ let
       version = "2.15.3";
       src = fetchurl {
         url = "https://registry.npmjs.org/zmq/-/zmq-2.15.3.tgz";
-        sha1 = "66c6de82cc36b09734b820703776490a6fbbe624";
+        sha512 = "IKkS1Vn3kCLSxKtxG8xI85Xf2skxEXpBjvO/S9cF+7a8gSY+iQJXoG8HX6NM5JkjrK/awpD4nWDC/+6kIia7Og==";
       };
     };
     "zod-1.11.17" = {
@@ -74344,7 +74704,7 @@ let
       version = "4.4.2";
       src = fetchurl {
         url = "https://registry.npmjs.org/zxcvbn/-/zxcvbn-4.4.2.tgz";
-        sha1 = "28ec17cf09743edcab056ddd8b1b06262cc73c30";
+        sha512 = "Bq0B+ixT/DMyG8kgX2xWcI5jUvCwqrMxSFam7m0lAf78nf04hv6lNCsyLYdyYTrCVMqNDY/206K7eExYCeSyUQ==";
       };
     };
   };
@@ -74353,15 +74713,15 @@ in
   "@angular/cli" = nodeEnv.buildNodePackage {
     name = "_at_angular_slash_cli";
     packageName = "@angular/cli";
-    version = "14.0.1";
+    version = "14.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@angular/cli/-/cli-14.0.1.tgz";
-      sha512 = "5NUfpHlIQ+BipsHIMHImP2bXu5nJcyr4sbs8Otf5ReCcqculJGfKwX0gYYgLfExbw1r4JtCTDggYanUcVgqkdw==";
+      url = "https://registry.npmjs.org/@angular/cli/-/cli-14.0.2.tgz";
+      sha512 = "cCQr5KMLlr7JER8CtrYLBTQUT4g22CTh3f0D9cdSjpBOhmEq62ZXApbmHNgPoHrTNub+7+FwANleIuqyN7nojg==";
     };
     dependencies = [
-      sources."@angular-devkit/architect-0.1400.1"
-      sources."@angular-devkit/core-14.0.1"
-      sources."@angular-devkit/schematics-14.0.1"
+      sources."@angular-devkit/architect-0.1400.2"
+      sources."@angular-devkit/core-14.0.2"
+      sources."@angular-devkit/schematics-14.0.2"
       sources."@gar/promisify-1.1.3"
       sources."@npmcli/fs-1.1.1"
       sources."@npmcli/git-3.0.1"
@@ -74370,7 +74730,7 @@ in
       sources."@npmcli/node-gyp-2.0.0"
       sources."@npmcli/promise-spawn-3.0.0"
       sources."@npmcli/run-script-3.0.3"
-      sources."@schematics/angular-14.0.1"
+      sources."@schematics/angular-14.0.2"
       sources."@tootallnate/once-1.1.2"
       sources."@yarnpkg/lockfile-1.1.0"
       sources."abbrev-1.1.1"
@@ -74493,7 +74853,7 @@ in
       })
       sources."mimic-fn-2.1.0"
       sources."minimatch-3.1.2"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -74662,7 +75022,7 @@ in
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."commander-8.3.0"
       sources."convict-6.2.3"
       sources."dateformat-4.6.3"
@@ -74777,7 +75137,7 @@ in
       })
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."concat-map-0.0.1"
       sources."convert-source-map-1.8.0"
       sources."convict-6.2.3"
@@ -74930,7 +75290,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."to-through-2.0.0"
       sources."type-fest-1.4.0"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."unc-path-regex-0.1.2"
       sources."unique-stream-2.3.1"
       sources."unxhr-1.0.1"
@@ -74978,7 +75338,7 @@ in
     dependencies = [
       sources."@astrojs/svelte-language-integration-0.1.6"
       sources."@astrojs/vue-language-integration-0.1.1"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@emmetio/abbreviation-2.2.3"
       sources."@emmetio/css-abbreviation-2.1.4"
       sources."@emmetio/scanner-1.0.0"
@@ -75355,12 +75715,12 @@ in
       sources."@jridgewell/resolve-uri-3.0.7"
       sources."@jridgewell/sourcemap-codec-1.4.13"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@tsconfig/node10-1.0.8"
-      sources."@tsconfig/node12-1.0.9"
-      sources."@tsconfig/node14-1.0.1"
-      sources."@tsconfig/node16-1.0.2"
+      sources."@tsconfig/node10-1.0.9"
+      sources."@tsconfig/node12-1.0.11"
+      sources."@tsconfig/node14-1.0.3"
+      sources."@tsconfig/node16-1.0.3"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."JSONStream-1.3.5"
@@ -75479,7 +75839,7 @@ in
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-5.0.0"
       sources."resolve-global-1.0.0"
       sources."safe-buffer-5.2.1"
@@ -75505,7 +75865,7 @@ in
       sources."trim-newlines-3.0.1"
       sources."ts-node-10.8.1"
       sources."type-fest-0.18.1"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."util-deprecate-1.0.2"
@@ -75562,6 +75922,811 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@forge/cli" = nodeEnv.buildNodePackage {
+    name = "_at_forge_slash_cli";
+    packageName = "@forge/cli";
+    version = "4.4.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@forge/cli/-/cli-4.4.0.tgz";
+      sha512 = "ZwE1yXvTcjuGGnfvY7eCCJ59xnloSONrlyHk901DDgEOR0xUWQgsu/1kA65piaG79i+RKEC9FmGiS00AgOj8GA==";
+    };
+    dependencies = [
+      sources."@ampproject/remapping-2.2.0"
+      (sources."@apidevtools/json-schema-ref-parser-9.0.9" // {
+        dependencies = [
+          sources."argparse-2.0.1"
+          sources."js-yaml-4.1.0"
+        ];
+      })
+      sources."@babel/code-frame-7.16.7"
+      sources."@babel/compat-data-7.18.5"
+      sources."@babel/core-7.18.5"
+      (sources."@babel/generator-7.18.2" // {
+        dependencies = [
+          sources."@jridgewell/gen-mapping-0.3.1"
+        ];
+      })
+      sources."@babel/helper-annotate-as-pure-7.16.7"
+      sources."@babel/helper-compilation-targets-7.18.2"
+      sources."@babel/helper-create-class-features-plugin-7.18.0"
+      sources."@babel/helper-environment-visitor-7.18.2"
+      sources."@babel/helper-function-name-7.17.9"
+      sources."@babel/helper-hoist-variables-7.16.7"
+      sources."@babel/helper-member-expression-to-functions-7.17.7"
+      sources."@babel/helper-module-imports-7.16.7"
+      sources."@babel/helper-module-transforms-7.18.0"
+      sources."@babel/helper-optimise-call-expression-7.16.7"
+      sources."@babel/helper-plugin-utils-7.17.12"
+      sources."@babel/helper-replace-supers-7.18.2"
+      sources."@babel/helper-simple-access-7.18.2"
+      sources."@babel/helper-skip-transparent-expression-wrappers-7.16.0"
+      sources."@babel/helper-split-export-declaration-7.16.7"
+      sources."@babel/helper-validator-identifier-7.16.7"
+      sources."@babel/helper-validator-option-7.16.7"
+      sources."@babel/helpers-7.18.2"
+      sources."@babel/highlight-7.17.12"
+      sources."@babel/parser-7.18.5"
+      sources."@babel/plugin-proposal-class-properties-7.17.12"
+      sources."@babel/plugin-proposal-numeric-separator-7.16.7"
+      sources."@babel/plugin-proposal-optional-chaining-7.17.12"
+      sources."@babel/plugin-syntax-jsx-7.17.12"
+      sources."@babel/plugin-syntax-numeric-separator-7.10.4"
+      sources."@babel/plugin-syntax-optional-chaining-7.8.3"
+      sources."@babel/plugin-syntax-typescript-7.17.12"
+      sources."@babel/plugin-transform-react-jsx-7.17.12"
+      sources."@babel/plugin-transform-typescript-7.18.4"
+      sources."@babel/preset-typescript-7.17.12"
+      sources."@babel/template-7.16.7"
+      sources."@babel/traverse-7.18.5"
+      sources."@babel/types-7.18.4"
+      sources."@discoveryjs/json-ext-0.5.7"
+      sources."@forge/api-2.7.0"
+      sources."@forge/auth-0.0.1"
+      sources."@forge/babel-plugin-transform-ui-1.1.0"
+      sources."@forge/bundler-3.0.7"
+      sources."@forge/cli-shared-2.5.0"
+      sources."@forge/csp-1.10.0"
+      sources."@forge/lint-3.1.1"
+      sources."@forge/manifest-3.8.0"
+      sources."@forge/storage-1.3.0"
+      sources."@forge/util-1.2.0"
+      sources."@jridgewell/gen-mapping-0.1.1"
+      sources."@jridgewell/resolve-uri-3.0.7"
+      sources."@jridgewell/set-array-1.1.1"
+      (sources."@jridgewell/source-map-0.3.2" // {
+        dependencies = [
+          sources."@jridgewell/gen-mapping-0.3.1"
+        ];
+      })
+      sources."@jridgewell/sourcemap-codec-1.4.13"
+      sources."@jridgewell/trace-mapping-0.3.13"
+      sources."@jsdevtools/ono-7.1.3"
+      sources."@sindresorhus/is-0.14.0"
+      sources."@szmarczak/http-timer-1.1.2"
+      sources."@types/eslint-8.4.3"
+      sources."@types/eslint-scope-3.7.3"
+      sources."@types/estree-0.0.51"
+      sources."@types/json-schema-7.0.11"
+      sources."@types/node-18.0.0"
+      sources."@types/node-fetch-2.6.2"
+      sources."@typescript-eslint/types-3.10.1"
+      (sources."@typescript-eslint/typescript-estree-3.10.1" // {
+        dependencies = [
+          sources."semver-7.3.7"
+        ];
+      })
+      sources."@typescript-eslint/visitor-keys-3.10.1"
+      sources."@webassemblyjs/ast-1.11.1"
+      sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
+      sources."@webassemblyjs/helper-api-error-1.11.1"
+      sources."@webassemblyjs/helper-buffer-1.11.1"
+      sources."@webassemblyjs/helper-numbers-1.11.1"
+      sources."@webassemblyjs/helper-wasm-bytecode-1.11.1"
+      sources."@webassemblyjs/helper-wasm-section-1.11.1"
+      sources."@webassemblyjs/ieee754-1.11.1"
+      sources."@webassemblyjs/leb128-1.11.1"
+      sources."@webassemblyjs/utf8-1.11.1"
+      sources."@webassemblyjs/wasm-edit-1.11.1"
+      sources."@webassemblyjs/wasm-gen-1.11.1"
+      sources."@webassemblyjs/wasm-opt-1.11.1"
+      sources."@webassemblyjs/wasm-parser-1.11.1"
+      sources."@webassemblyjs/wast-printer-1.11.1"
+      sources."@webpack-cli/configtest-1.2.0"
+      sources."@webpack-cli/info-1.5.0"
+      sources."@webpack-cli/serve-1.7.0"
+      sources."@xtuc/ieee754-1.2.0"
+      sources."@xtuc/long-4.2.2"
+      sources."acorn-8.7.1"
+      sources."acorn-import-assertions-1.8.0"
+      (sources."ajv-6.12.6" // {
+        dependencies = [
+          sources."fast-deep-equal-3.1.3"
+        ];
+      })
+      sources."ajv-keywords-3.5.2"
+      sources."ansi-escapes-4.3.2"
+      sources."ansi-regex-5.0.1"
+      sources."ansi-styles-3.2.1"
+      sources."any-promise-1.3.0"
+      sources."archiver-5.3.1"
+      (sources."archiver-utils-2.1.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."argparse-1.0.10"
+      sources."array.prototype.flatmap-1.3.0"
+      (sources."asn1.js-5.4.1" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      (sources."assert-1.5.0" // {
+        dependencies = [
+          sources."util-0.10.3"
+        ];
+      })
+      sources."async-3.2.4"
+      sources."asynckit-0.4.0"
+      sources."atlassian-openapi-1.0.17"
+      sources."babel-loader-8.2.5"
+      sources."balanced-match-1.0.2"
+      sources."base64-js-1.5.1"
+      sources."big-integer-1.6.51"
+      sources."big.js-5.2.2"
+      sources."binary-0.3.0"
+      (sources."bl-4.1.0" // {
+        dependencies = [
+          sources."buffer-5.7.1"
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."bluebird-3.4.7"
+      sources."bn.js-5.2.1"
+      sources."boolbase-1.0.0"
+      sources."brace-expansion-1.1.11"
+      sources."braces-3.0.2"
+      sources."brorand-1.1.0"
+      sources."browserify-aes-1.2.0"
+      sources."browserify-cipher-1.0.1"
+      sources."browserify-des-1.0.2"
+      sources."browserify-rsa-4.1.0"
+      (sources."browserify-sign-4.2.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."browserify-zlib-0.2.0"
+      sources."browserslist-4.20.4"
+      sources."buffer-4.9.2"
+      sources."buffer-crc32-0.2.13"
+      sources."buffer-from-1.1.2"
+      sources."buffer-indexof-polyfill-1.0.2"
+      sources."buffer-xor-1.0.3"
+      sources."buffers-0.1.1"
+      (sources."cacheable-request-6.1.0" // {
+        dependencies = [
+          sources."get-stream-5.2.0"
+          sources."lowercase-keys-2.0.0"
+        ];
+      })
+      sources."call-bind-1.0.2"
+      sources."call-me-maybe-1.0.1"
+      sources."caniuse-lite-1.0.30001356"
+      sources."case-1.6.3"
+      sources."chainsaw-0.1.0"
+      sources."chalk-2.4.2"
+      sources."chardet-0.7.0"
+      sources."cheerio-0.22.0"
+      sources."chownr-1.1.4"
+      sources."chrome-trace-event-1.0.3"
+      sources."cipher-base-1.0.4"
+      sources."cli-color-2.0.2"
+      sources."cli-cursor-3.1.0"
+      sources."cli-spinners-2.6.1"
+      sources."cli-table3-0.6.2"
+      sources."cli-width-3.0.0"
+      sources."cliui-7.0.4"
+      sources."clone-1.0.4"
+      sources."clone-deep-4.0.1"
+      sources."clone-response-1.0.2"
+      sources."color-convert-1.9.3"
+      sources."color-name-1.1.3"
+      sources."colorette-2.0.19"
+      sources."combined-stream-1.0.8"
+      sources."command-exists-1.2.9"
+      sources."commander-7.2.0"
+      sources."commondir-1.0.1"
+      sources."compress-commons-4.1.1"
+      sources."concat-map-0.0.1"
+      sources."conf-6.2.4"
+      sources."console-browserify-1.2.0"
+      sources."content-security-policy-parser-0.3.0"
+      sources."convert-source-map-1.8.0"
+      sources."core-util-is-1.0.3"
+      sources."crc-32-1.2.2"
+      sources."crc32-stream-4.0.2"
+      (sources."create-ecdh-4.0.4" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."create-hash-1.2.0"
+      sources."create-hmac-1.1.7"
+      (sources."cross-fetch-3.1.5" // {
+        dependencies = [
+          sources."node-fetch-2.6.7"
+          sources."tr46-0.0.3"
+          sources."webidl-conversions-3.0.1"
+          sources."whatwg-url-5.0.0"
+        ];
+      })
+      sources."cross-spawn-7.0.3"
+      sources."crypto-browserify-3.12.0"
+      sources."css-select-1.2.0"
+      sources."css-what-2.1.3"
+      sources."d-1.0.1"
+      sources."dayjs-1.11.3"
+      sources."debounce-fn-3.0.1"
+      sources."debug-4.3.4"
+      sources."decompress-response-3.3.0"
+      sources."deep-extend-0.6.0"
+      sources."defaults-1.0.3"
+      sources."defer-to-connect-1.1.3"
+      sources."define-properties-1.1.4"
+      sources."delayed-stream-1.0.0"
+      sources."des.js-1.0.1"
+      sources."detect-libc-2.0.1"
+      sources."didyoumean-1.2.2"
+      (sources."diffie-hellman-5.0.3" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."dom-serializer-0.1.1"
+      sources."domelementtype-1.3.1"
+      sources."domhandler-2.4.2"
+      sources."domutils-1.5.1"
+      sources."dot-prop-5.3.0"
+      (sources."duplexer2-0.1.4" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."duplexer3-0.1.4"
+      sources."electron-to-chromium-1.4.161"
+      (sources."elliptic-6.5.4" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."emoji-regex-8.0.0"
+      sources."emojis-list-3.0.0"
+      sources."end-of-stream-1.4.4"
+      sources."enhanced-resolve-5.9.3"
+      sources."entities-1.1.2"
+      sources."env-paths-2.2.1"
+      sources."envinfo-7.8.1"
+      sources."es-abstract-1.20.1"
+      sources."es-module-lexer-0.9.3"
+      sources."es-shim-unscopables-1.0.0"
+      sources."es-to-primitive-1.2.1"
+      sources."es5-ext-0.10.61"
+      sources."es6-iterator-2.0.3"
+      sources."es6-symbol-3.1.3"
+      sources."es6-weak-map-2.0.3"
+      sources."escalade-3.1.1"
+      sources."escape-string-regexp-1.0.5"
+      sources."eslint-scope-5.1.1"
+      sources."eslint-visitor-keys-1.3.0"
+      sources."esprima-4.0.1"
+      (sources."esrecurse-4.3.0" // {
+        dependencies = [
+          sources."estraverse-5.3.0"
+        ];
+      })
+      sources."estraverse-4.3.0"
+      sources."event-emitter-0.3.5"
+      sources."events-3.3.0"
+      sources."evp_bytestokey-1.0.3"
+      sources."expand-template-2.0.3"
+      (sources."ext-1.6.0" // {
+        dependencies = [
+          sources."type-2.6.0"
+        ];
+      })
+      (sources."external-editor-3.1.0" // {
+        dependencies = [
+          sources."tmp-0.0.33"
+        ];
+      })
+      sources."extract-files-9.0.0"
+      sources."fast-deep-equal-2.0.1"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."fastest-levenshtein-1.0.12"
+      sources."figures-3.2.0"
+      sources."fill-range-7.0.1"
+      sources."find-cache-dir-3.3.2"
+      sources."find-up-4.1.0"
+      sources."form-data-3.0.1"
+      sources."fp-ts-2.12.1"
+      sources."fs-constants-1.0.0"
+      sources."fs-extra-8.1.0"
+      sources."fs-monkey-1.0.3"
+      sources."fs.realpath-1.0.0"
+      (sources."fstream-1.0.12" // {
+        dependencies = [
+          sources."mkdirp-0.5.6"
+        ];
+      })
+      sources."fswin-3.22.106"
+      sources."function-bind-1.1.1"
+      sources."function.prototype.name-1.1.5"
+      sources."functions-have-names-1.2.3"
+      sources."gar-1.0.4"
+      sources."gensync-1.0.0-beta.2"
+      sources."get-caller-file-2.0.5"
+      sources."get-folder-size-2.0.1"
+      sources."get-intrinsic-1.1.2"
+      sources."get-stream-4.1.0"
+      sources."get-symbol-description-1.0.0"
+      sources."github-from-package-0.0.0"
+      sources."glob-7.2.3"
+      sources."glob-to-regexp-0.4.1"
+      sources."globals-11.12.0"
+      sources."got-9.6.0"
+      sources."graceful-fs-4.2.10"
+      sources."graphql-15.8.0"
+      sources."graphql-request-3.4.0"
+      sources."has-1.0.3"
+      sources."has-bigints-1.0.2"
+      sources."has-flag-3.0.0"
+      sources."has-property-descriptors-1.0.0"
+      sources."has-symbols-1.0.3"
+      sources."has-tostringtag-1.0.0"
+      (sources."hash-base-3.1.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      (sources."hash.js-1.1.7" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."hidefile-3.0.0"
+      sources."hmac-drbg-1.0.1"
+      sources."htmlparser2-3.10.1"
+      sources."http-cache-semantics-4.1.0"
+      sources."iconv-lite-0.4.24"
+      sources."ieee754-1.2.1"
+      sources."ignore-walk-3.0.4"
+      sources."import-local-3.1.0"
+      sources."imurmurhash-0.1.4"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.1"
+      sources."ini-1.3.8"
+      (sources."inquirer-7.3.3" // {
+        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."internal-slot-1.0.3"
+      sources."interpret-2.2.0"
+      sources."io-ts-2.2.16"
+      sources."is-bigint-1.0.4"
+      sources."is-boolean-object-1.1.2"
+      sources."is-callable-1.2.4"
+      sources."is-core-module-2.9.0"
+      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.2"
+      sources."is-number-7.0.0"
+      sources."is-number-object-1.0.7"
+      sources."is-obj-2.0.0"
+      sources."is-plain-object-2.0.4"
+      sources."is-promise-2.2.2"
+      sources."is-regex-1.1.4"
+      sources."is-shared-array-buffer-1.0.2"
+      sources."is-string-1.0.7"
+      sources."is-symbol-1.0.4"
+      sources."is-typedarray-1.0.0"
+      sources."is-weakref-1.0.2"
+      sources."isarray-1.0.0"
+      sources."isexe-2.0.0"
+      sources."isobject-3.0.1"
+      (sources."jest-worker-27.5.1" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-8.1.1"
+        ];
+      })
+      sources."js-tokens-4.0.0"
+      sources."js-yaml-3.14.1"
+      sources."jsesc-2.5.2"
+      sources."json-buffer-3.0.0"
+      sources."json-parse-even-better-errors-2.3.1"
+      sources."json-schema-ref-parser-9.0.9"
+      sources."json-schema-to-typescript-9.1.1"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-typed-7.0.3"
+      sources."json-stable-stringify-1.0.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."json5-2.2.1"
+      sources."jsonfile-4.0.0"
+      sources."jsonify-0.0.0"
+      sources."jsonpointer-5.0.0"
+      sources."keytar-7.9.0"
+      sources."keyv-3.1.0"
+      sources."kind-of-6.0.3"
+      sources."latest-version-5.1.0"
+      sources."launchdarkly-eventsource-1.4.3"
+      (sources."launchdarkly-js-sdk-common-4.1.0" // {
+        dependencies = [
+          sources."uuid-8.3.2"
+        ];
+      })
+      sources."launchdarkly-node-client-sdk-2.0.4"
+      (sources."lazystream-1.0.1" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      sources."listenercount-1.0.1"
+      sources."loader-runner-4.3.0"
+      sources."loader-utils-2.0.2"
+      sources."locate-path-5.0.0"
+      sources."lodash-4.17.21"
+      sources."lodash.assignin-4.2.0"
+      sources."lodash.bind-4.2.1"
+      sources."lodash.defaults-4.2.0"
+      sources."lodash.difference-4.5.0"
+      sources."lodash.filter-4.6.0"
+      sources."lodash.flatten-4.4.0"
+      sources."lodash.foreach-4.5.0"
+      sources."lodash.isplainobject-4.0.6"
+      sources."lodash.map-4.6.0"
+      sources."lodash.merge-4.6.2"
+      sources."lodash.pick-4.4.0"
+      sources."lodash.reduce-4.6.0"
+      sources."lodash.reject-4.6.0"
+      sources."lodash.some-4.6.0"
+      sources."lodash.sortby-4.7.0"
+      sources."lodash.union-4.6.0"
+      sources."log-symbols-3.0.0"
+      sources."lowercase-keys-1.0.1"
+      sources."lru-cache-6.0.0"
+      sources."lru-queue-0.1.0"
+      sources."make-dir-3.1.0"
+      sources."md5.js-1.3.5"
+      sources."memfs-3.4.6"
+      sources."memoizee-0.4.15"
+      sources."merge-stream-2.0.0"
+      sources."micromatch-4.0.5"
+      (sources."miller-rabin-4.0.1" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
+      sources."mimic-fn-2.1.0"
+      sources."mimic-response-1.0.1"
+      sources."minimalistic-assert-1.0.1"
+      sources."minimalistic-crypto-utils-1.0.1"
+      sources."minimatch-3.1.2"
+      sources."minimist-1.2.6"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp-classic-0.5.3"
+      sources."ms-2.1.2"
+      sources."mute-stream-0.0.8"
+      sources."mz-2.7.0"
+      sources."napi-build-utils-1.0.2"
+      sources."neo-async-2.6.2"
+      sources."next-tick-1.1.0"
+      (sources."node-abi-3.22.0" // {
+        dependencies = [
+          sources."semver-7.3.7"
+        ];
+      })
+      sources."node-addon-api-4.3.0"
+      sources."node-fetch-2.6.1"
+      (sources."node-localstorage-1.3.1" // {
+        dependencies = [
+          sources."write-file-atomic-1.3.4"
+        ];
+      })
+      sources."node-machine-id-1.1.12"
+      sources."node-releases-2.0.5"
+      sources."normalize-path-3.0.0"
+      sources."normalize-url-4.5.1"
+      sources."nth-check-1.0.2"
+      sources."object-assign-4.1.1"
+      sources."object-inspect-1.12.2"
+      sources."object-keys-1.1.1"
+      sources."object.assign-4.1.2"
+      sources."omelette-0.4.17"
+      sources."once-1.4.0"
+      sources."onetime-5.1.2"
+      (sources."ora-4.1.1" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."chalk-3.0.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."original-1.0.2"
+      sources."os-browserify-0.3.0"
+      sources."os-tmpdir-1.0.2"
+      sources."p-cancelable-1.1.0"
+      sources."p-limit-2.3.0"
+      sources."p-locate-4.1.0"
+      sources."p-try-2.2.0"
+      sources."package-json-6.5.0"
+      sources."pako-1.0.11"
+      sources."parse-asn1-5.1.6"
+      sources."path-browserify-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."pbkdf2-3.1.2"
+      sources."picocolors-1.0.0"
+      sources."picomatch-2.3.1"
+      sources."pkg-dir-4.2.0"
+      (sources."pkg-up-3.1.0" // {
+        dependencies = [
+          sources."find-up-3.0.0"
+          sources."locate-path-3.0.0"
+          sources."p-locate-3.0.0"
+          sources."path-exists-3.0.0"
+        ];
+      })
+      (sources."portfinder-1.0.28" // {
+        dependencies = [
+          sources."async-2.6.4"
+          sources."debug-3.2.7"
+          sources."mkdirp-0.5.6"
+        ];
+      })
+      sources."prebuild-install-7.1.1"
+      sources."prepend-http-2.0.0"
+      sources."prettier-2.7.1"
+      sources."process-0.11.10"
+      sources."process-nextick-args-2.0.1"
+      (sources."public-encrypt-4.0.3" // {
+        dependencies = [
+          sources."bn.js-4.12.0"
+        ];
+      })
+      sources."pump-3.0.0"
+      sources."punycode-1.4.1"
+      sources."querystring-0.2.0"
+      sources."querystring-browser-1.0.4"
+      sources."querystringify-2.2.0"
+      sources."randombytes-2.1.0"
+      sources."randomfill-1.0.4"
+      sources."rc-1.2.8"
+      (sources."readable-stream-3.6.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."readdir-glob-1.1.1"
+      sources."rechoir-0.7.1"
+      (sources."recursive-readdir-2.2.2" // {
+        dependencies = [
+          sources."minimatch-3.0.4"
+        ];
+      })
+      sources."regexp.prototype.flags-1.4.3"
+      sources."registry-auth-token-4.2.2"
+      sources."registry-url-5.1.0"
+      sources."require-directory-2.1.1"
+      sources."requires-port-1.0.0"
+      sources."resolve-1.22.1"
+      sources."resolve-cwd-3.0.0"
+      sources."resolve-from-5.0.0"
+      sources."responselike-1.0.2"
+      sources."restore-cursor-3.1.0"
+      sources."rimraf-2.7.1"
+      sources."ripemd160-2.0.2"
+      sources."run-async-2.4.1"
+      sources."rxjs-6.6.7"
+      sources."safe-buffer-5.1.2"
+      sources."safer-buffer-2.1.2"
+      sources."sanitize-filename-1.6.3"
+      sources."schema-utils-2.7.1"
+      sources."semver-6.3.0"
+      sources."serialize-javascript-6.0.0"
+      sources."setimmediate-1.0.5"
+      sources."sha.js-2.4.11"
+      sources."shallow-clone-3.0.1"
+      sources."shebang-command-2.0.0"
+      sources."shebang-regex-3.0.0"
+      sources."side-channel-1.0.4"
+      sources."signal-exit-3.0.7"
+      sources."simple-concat-1.0.1"
+      (sources."simple-get-4.0.1" // {
+        dependencies = [
+          sources."decompress-response-6.0.0"
+          sources."mimic-response-3.1.0"
+        ];
+      })
+      sources."slide-1.1.6"
+      sources."source-map-0.6.1"
+      sources."source-map-support-0.5.21"
+      sources."sprintf-js-1.0.3"
+      sources."stdin-0.0.1"
+      sources."string-width-4.2.3"
+      sources."string.prototype.trimend-1.0.5"
+      sources."string.prototype.trimstart-1.0.5"
+      (sources."string_decoder-1.3.0" // {
+        dependencies = [
+          sources."safe-buffer-5.2.1"
+        ];
+      })
+      sources."strip-ansi-6.0.1"
+      sources."strip-json-comments-2.0.1"
+      sources."supports-color-5.5.0"
+      (sources."supports-hyperlinks-2.2.0" // {
+        dependencies = [
+          sources."has-flag-4.0.0"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."supports-preserve-symlinks-flag-1.0.0"
+      sources."tapable-2.2.1"
+      sources."tar-fs-2.1.1"
+      (sources."tar-stream-2.2.0" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+        ];
+      })
+      sources."terminal-link-2.1.1"
+      (sources."terser-5.14.1" // {
+        dependencies = [
+          sources."commander-2.20.3"
+        ];
+      })
+      (sources."terser-webpack-plugin-5.3.3" // {
+        dependencies = [
+          sources."schema-utils-3.1.1"
+        ];
+      })
+      sources."text-encoder-lite-2.0.0"
+      sources."thenify-3.3.1"
+      sources."thenify-all-1.6.0"
+      sources."through-2.3.8"
+      sources."timers-browserify-2.0.12"
+      sources."timers-ext-0.1.7"
+      sources."tiny-each-async-2.0.3"
+      sources."tmp-0.1.0"
+      sources."to-fast-properties-2.0.0"
+      sources."to-readable-stream-1.0.0"
+      sources."to-regex-range-5.0.1"
+      (sources."tr46-1.0.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
+      sources."traverse-0.3.9"
+      sources."truncate-utf8-bytes-1.0.2"
+      (sources."ts-loader-9.3.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."semver-7.3.7"
+          sources."supports-color-7.2.0"
+        ];
+      })
+      sources."tslib-1.14.1"
+      sources."tsutils-3.21.0"
+      sources."tunnel-agent-0.6.0"
+      sources."type-1.2.0"
+      sources."type-fest-0.21.3"
+      sources."typedarray-to-buffer-3.1.5"
+      sources."typescript-3.9.10"
+      (sources."typescript-json-schema-0.45.1" // {
+        dependencies = [
+          sources."typescript-4.7.4"
+        ];
+      })
+      sources."unbox-primitive-1.0.2"
+      sources."universalify-0.1.2"
+      (sources."unzipper-0.10.11" // {
+        dependencies = [
+          sources."inherits-2.0.4"
+          sources."readable-stream-2.3.7"
+          sources."string_decoder-1.1.1"
+        ];
+      })
+      (sources."uri-js-4.4.1" // {
+        dependencies = [
+          sources."punycode-2.1.1"
+        ];
+      })
+      sources."urijs-1.19.11"
+      (sources."url-0.11.0" // {
+        dependencies = [
+          sources."punycode-1.3.2"
+        ];
+      })
+      sources."url-parse-1.5.10"
+      sources."url-parse-lax-3.0.0"
+      sources."utf8-byte-length-1.0.4"
+      (sources."util-0.11.1" // {
+        dependencies = [
+          sources."inherits-2.0.3"
+        ];
+      })
+      sources."util-deprecate-1.0.2"
+      sources."uuid-3.4.0"
+      sources."watchpack-2.4.0"
+      sources."wcwidth-1.0.1"
+      sources."webidl-conversions-4.0.2"
+      (sources."webpack-5.73.0" // {
+        dependencies = [
+          sources."schema-utils-3.1.1"
+        ];
+      })
+      sources."webpack-cli-4.10.0"
+      sources."webpack-merge-5.8.0"
+      sources."webpack-sources-3.2.3"
+      sources."whatwg-url-7.1.0"
+      sources."which-2.0.2"
+      sources."which-boxed-primitive-1.0.2"
+      sources."wildcard-2.0.0"
+      sources."winattr-3.0.0"
+      (sources."wrap-ansi-7.0.0" // {
+        dependencies = [
+          sources."ansi-styles-4.3.0"
+          sources."color-convert-2.0.1"
+          sources."color-name-1.1.4"
+        ];
+      })
+      sources."wrappy-1.0.2"
+      sources."write-file-atomic-3.0.3"
+      sources."y18n-5.0.8"
+      sources."yallist-4.0.0"
+      sources."yaml-1.10.2"
+      sources."yargs-16.2.0"
+      sources."yargs-parser-20.2.9"
+      sources."zip-stream-4.1.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "A command line interface for managing Atlassian-hosted apps";
+      homepage = "https://developer.atlassian.com/platform/forge";
+      license = "UNLICENSED";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   "@google/clasp" = nodeEnv.buildNodePackage {
     name = "_at_google_slash_clasp";
     packageName = "@google/clasp";
@@ -75590,7 +76755,7 @@ in
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/responselike-1.0.0"
       sources."abort-controller-3.0.0"
@@ -75706,7 +76871,7 @@ in
       sources."is-interactive-1.0.0"
       sources."is-number-7.0.0"
       sources."is-port-reachable-3.1.0"
-      sources."is-reachable-5.2.0"
+      sources."is-reachable-5.2.1"
       sources."is-stream-2.0.1"
       sources."is-unicode-supported-1.2.0"
       sources."is-wsl-2.2.0"
@@ -75762,7 +76927,7 @@ in
       sources."p-finally-1.0.0"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
-      (sources."p-map-5.4.0" // {
+      (sources."p-map-5.5.0" // {
         dependencies = [
           sources."aggregate-error-4.0.1"
           sources."clean-stack-4.2.0"
@@ -75828,12 +76993,12 @@ in
       sources."tr46-0.0.3"
       (sources."ts2gas-4.2.0" // {
         dependencies = [
-          sources."type-fest-2.13.0"
+          sources."type-fest-2.13.1"
         ];
       })
       sources."tslib-2.4.0"
       sources."type-fest-0.21.3"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."universalify-2.0.0"
       sources."url-parse-1.5.10"
       sources."url-template-2.0.8"
@@ -75877,7 +77042,7 @@ in
       sources."@hyperswarm/hypersign-2.1.1"
       sources."@hyperswarm/network-2.1.0"
       sources."@leichtgewicht/ip-codec-2.0.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."abstract-extension-3.1.1"
       sources."abstract-leveldown-6.2.3"
       sources."acorn-8.7.1"
@@ -75955,7 +77120,7 @@ in
           sources."pump-1.0.3"
         ];
       })
-      sources."dns-packet-5.3.1"
+      sources."dns-packet-5.4.0"
       sources."duplexify-3.7.1"
       sources."emoji-regex-8.0.0"
       sources."encoding-down-6.3.0"
@@ -76117,7 +77282,7 @@ in
       sources."random-access-file-2.2.1"
       sources."random-access-memory-3.1.4"
       sources."random-access-storage-1.4.3"
-      sources."random-words-1.1.2"
+      sources."random-words-1.2.0"
       sources."randombytes-2.1.0"
       sources."range-parser-1.2.1"
       sources."reachdown-1.1.0"
@@ -76126,7 +77291,7 @@ in
       sources."record-cache-1.2.0"
       sources."refpool-1.2.2"
       sources."remove-trailing-separator-1.1.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."safe-buffer-5.1.2"
       sources."secretstream-stream-2.0.0"
       sources."sha256-universal-1.2.1"
@@ -76238,7 +77403,7 @@ in
       sha512 = "hV1PG20mLFmYbSJvV+JIGVLUT3zzDt2snR9T7tKMBAVvGQBAfzodylbTZe+b20hNz3Max2Z4zsKVksRu71x1+A==";
     };
     dependencies = [
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@medable/mdctl-api-1.0.66"
       sources."@medable/mdctl-api-driver-1.0.66"
       sources."@medable/mdctl-axon-tools-1.0.66"
@@ -76273,7 +77438,7 @@ in
       sources."@types/markdown-it-12.2.3"
       sources."@types/mdurl-1.0.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/tough-cookie-2.3.8"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
@@ -76681,7 +77846,7 @@ in
       sources."map-visit-1.0.0"
       sources."markdown-it-12.3.2"
       sources."markdown-it-anchor-8.6.4"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       sources."md5.js-1.3.5"
       sources."mdurl-1.0.1"
       (sources."mem-4.3.0" // {
@@ -76921,7 +78086,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
       sources."requizzle-0.2.3"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
@@ -77077,7 +78242,7 @@ in
       sources."tweetnacl-0.14.5"
       sources."type-check-0.3.2"
       sources."uc.micro-1.0.6"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."underscore-1.13.4"
       sources."union-value-1.0.1"
       (sources."universal-url-2.0.0" // {
@@ -77168,16 +78333,16 @@ in
       sources."@octokit/core-3.6.0"
       sources."@octokit/endpoint-6.0.12"
       sources."@octokit/graphql-4.8.0"
-      sources."@octokit/openapi-types-11.2.0"
-      sources."@octokit/plugin-paginate-rest-2.17.0"
+      sources."@octokit/openapi-types-12.1.0"
+      sources."@octokit/plugin-paginate-rest-2.18.0"
       sources."@octokit/plugin-request-log-1.0.4"
-      sources."@octokit/plugin-rest-endpoint-methods-5.13.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.14.0"
       sources."@octokit/plugin-retry-3.0.9"
       sources."@octokit/plugin-throttling-3.6.2"
       sources."@octokit/request-5.6.3"
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
-      sources."@octokit/types-6.34.0"
+      sources."@octokit/types-6.35.0"
       sources."@sideway/address-4.1.4"
       sources."@sideway/formula-3.0.0"
       sources."@sideway/pinpoint-2.0.0"
@@ -77304,7 +78469,7 @@ in
       sources."@types/estree-0.0.51"
       sources."@types/json-schema-7.0.11"
       sources."@types/json5-0.0.29"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
@@ -77343,7 +78508,7 @@ in
       sources."buffer-5.7.1"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."chalk-3.0.0"
       sources."chardet-0.7.0"
       sources."chokidar-3.5.3"
@@ -77361,7 +78526,7 @@ in
       sources."cross-spawn-7.0.3"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."enhanced-resolve-5.9.3"
@@ -77445,7 +78610,7 @@ in
       sources."lru-cache-6.0.0"
       sources."macos-release-2.5.0"
       sources."magic-string-0.25.7"
-      sources."memfs-3.4.4"
+      sources."memfs-3.4.6"
       sources."merge-stream-2.0.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
@@ -77483,7 +78648,7 @@ in
       sources."readdirp-3.6.0"
       sources."rechoir-0.6.2"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-4.0.0"
       sources."restore-cursor-3.1.0"
       sources."rimraf-3.0.2"
@@ -77519,7 +78684,7 @@ in
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."symbol-observable-4.0.0"
       sources."tapable-2.2.1"
-      (sources."terser-5.14.0" // {
+      (sources."terser-5.14.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -77741,7 +78906,7 @@ in
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1151.0" // {
+      (sources."aws-sdk-2.1157.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -78013,13 +79178,13 @@ in
   "@vue/cli" = nodeEnv.buildNodePackage {
     name = "_at_vue_slash_cli";
     packageName = "@vue/cli";
-    version = "5.0.4";
+    version = "5.0.6";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@vue/cli/-/cli-5.0.4.tgz";
-      sha512 = "v9fHBQ3MCTAo92+uA/J8C/PYxGrZJCSM/myPEGzX4zrlbT4bBLfuP0pFRJZO9wQGE3NHp95coIdOghXdMm/atw==";
+      url = "https://registry.npmjs.org/@vue/cli/-/cli-5.0.6.tgz";
+      sha512 = "iWvWCupn/bM+qxjYUo2vYcMu2KUARfMSqA2Zl1wC6e+BsMu2Qr2GdV6dpaGwCJrsYPfdmc2zOXTwCdPLede2vQ==";
     };
     dependencies = [
-      sources."@achrinza/node-ipc-9.2.2"
+      sources."@achrinza/node-ipc-9.2.5"
       sources."@akryum/winattr-3.0.0"
       sources."@ampproject/remapping-2.2.0"
       (sources."@apollo/protobufjs-1.2.2" // {
@@ -78031,8 +79196,8 @@ in
       sources."@apollographql/graphql-playground-html-1.6.27"
       sources."@apollographql/graphql-upload-8-fork-8.1.3"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -78084,7 +79249,7 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.17.12"
@@ -78136,10 +79301,10 @@ in
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.18.0"
       sources."@babel/plugin-transform-modules-commonjs-7.18.2"
-      sources."@babel/plugin-transform-modules-systemjs-7.18.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.18.5"
       sources."@babel/plugin-transform-modules-umd-7.18.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.17.12"
-      sources."@babel/plugin-transform-new-target-7.17.12"
+      sources."@babel/plugin-transform-new-target-7.18.5"
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-property-literals-7.16.7"
@@ -78170,7 +79335,7 @@ in
       })
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
@@ -78206,7 +79371,7 @@ in
       sources."@types/cors-2.8.10"
       sources."@types/ejs-3.1.1"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/fs-capacitor-2.0.0"
       sources."@types/http-assert-1.5.3"
       sources."@types/http-errors-1.8.2"
@@ -78222,21 +79387,21 @@ in
       sources."@types/koa-compose-3.2.5"
       sources."@types/long-4.0.2"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/serve-static-1.13.10"
       sources."@types/through-0.0.30"
       sources."@types/ws-7.4.7"
-      sources."@vue/cli-shared-utils-5.0.4"
-      (sources."@vue/cli-ui-5.0.4" // {
+      sources."@vue/cli-shared-utils-5.0.6"
+      (sources."@vue/cli-ui-5.0.6" // {
         dependencies = [
           sources."clone-2.1.2"
         ];
       })
-      sources."@vue/cli-ui-addon-webpack-5.0.4"
-      sources."@vue/cli-ui-addon-widgets-5.0.4"
+      sources."@vue/cli-ui-addon-webpack-5.0.6"
+      sources."@vue/cli-ui-addon-widgets-5.0.6"
       sources."@vue/compiler-core-3.2.37"
       sources."@vue/compiler-dom-3.2.37"
       sources."@vue/shared-3.2.37"
@@ -78349,7 +79514,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."caw-2.0.1"
       sources."chalk-4.1.2"
       sources."chardet-0.7.0"
@@ -78402,12 +79567,12 @@ in
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.22.8" // {
+      (sources."core-js-compat-3.23.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
       })
-      sources."core-js-pure-3.22.8"
+      sources."core-js-pure-3.23.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       (sources."cross-spawn-6.0.5" // {
@@ -78470,7 +79635,7 @@ in
       sources."easy-stack-1.0.1"
       sources."ee-first-1.1.1"
       sources."ejs-3.1.8"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -78580,7 +79745,7 @@ in
           sources."which-2.0.2"
         ];
       })
-      sources."flow-parser-0.179.0"
+      sources."flow-parser-0.180.0"
       sources."for-each-0.3.3"
       sources."for-in-1.0.2"
       sources."forwarded-0.2.0"
@@ -78931,7 +80096,7 @@ in
       sources."repeat-element-1.1.4"
       sources."repeat-string-1.6.1"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
@@ -79326,7 +80491,7 @@ in
       sources."@babel/generator-7.18.2"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/template-7.16.7"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.3.1"
@@ -79423,7 +80588,7 @@ in
       sources."@types/minimist-1.2.2"
       sources."@types/ms-0.7.31"
       sources."@types/nlcst-1.0.0"
-      sources."@types/node-17.0.41"
+      sources."@types/node-17.0.45"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse5-6.0.3"
       sources."@types/supports-color-8.1.1"
@@ -79508,7 +80673,7 @@ in
       sources."error-ex-1.3.2"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-1.0.5"
-      sources."estree-util-is-identifier-name-2.0.0"
+      sources."estree-util-is-identifier-name-2.0.1"
       sources."estree-util-visit-1.1.0"
       sources."event-stream-3.1.7"
       sources."extend-3.0.2"
@@ -79721,7 +80886,7 @@ in
       sources."read-pkg-up-8.0.0"
       sources."readable-stream-1.0.34"
       sources."redent-4.0.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."rehype-parse-8.0.4"
       sources."rehype-retext-3.0.2"
@@ -79788,13 +80953,13 @@ in
       sources."unherit-3.0.0"
       (sources."unified-10.1.2" // {
         dependencies = [
-          sources."is-plain-obj-4.0.0"
+          sources."is-plain-obj-4.1.0"
         ];
       })
       sources."unified-diff-4.0.1"
       (sources."unified-engine-9.1.0" // {
         dependencies = [
-          sources."is-plain-obj-4.0.0"
+          sources."is-plain-obj-4.1.0"
           sources."lines-and-columns-2.0.3"
           sources."parse-json-6.0.2"
         ];
@@ -79830,7 +80995,7 @@ in
       sources."util-deprecate-1.0.2"
       sources."uvu-0.5.3"
       sources."validate-npm-package-license-3.0.4"
-      sources."vfile-5.3.2"
+      sources."vfile-5.3.4"
       sources."vfile-find-up-6.0.0"
       sources."vfile-location-4.0.1"
       sources."vfile-message-3.1.2"
@@ -79884,8 +81049,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      sources."@babel/core-7.18.2"
+      sources."@babel/compat-data-7.18.5"
+      sources."@babel/core-7.18.5"
       (sources."@babel/generator-7.18.2" // {
         dependencies = [
           sources."@jridgewell/gen-mapping-0.3.1"
@@ -79903,9 +81068,9 @@ in
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -79920,7 +81085,7 @@ in
       sources."balanced-match-1.0.2"
       sources."brace-expansion-2.0.1"
       sources."browserslist-4.20.4"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."chalk-2.4.2"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -79930,7 +81095,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."debug-4.3.4"
       sources."ejs-3.1.6"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."ensure-posix-path-1.1.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
@@ -80000,7 +81165,7 @@ in
       sources."path-parse-1.0.7"
       sources."picocolors-1.0.0"
       sources."pkginfo-0.4.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."safe-buffer-5.1.2"
       sources."sax-0.5.8"
       sources."semver-6.3.0"
@@ -80231,7 +81396,7 @@ in
     dependencies = [
       sources."@types/glob-7.2.0"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."chromium-pickle-js-0.2.0"
@@ -80316,8 +81481,8 @@ in
     };
     dependencies = [
       sources."browserslist-4.20.4"
-      sources."caniuse-lite-1.0.30001351"
-      sources."electron-to-chromium-1.4.150"
+      sources."caniuse-lite-1.0.30001356"
+      sources."electron-to-chromium-1.4.161"
       sources."escalade-3.1.1"
       sources."fraction.js-4.2.0"
       sources."node-releases-2.0.5"
@@ -80345,14 +81510,14 @@ in
     };
     dependencies = [
       sources."@tootallnate/once-1.1.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/yauzl-2.10.0"
       sources."agent-base-6.0.2"
       sources."ansi-escapes-4.3.2"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."ast-types-0.13.4"
-      (sources."aws-sdk-2.1151.0" // {
+      (sources."aws-sdk-2.1157.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -80551,6 +81716,27 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  aws-cdk = nodeEnv.buildNodePackage {
+    name = "aws-cdk";
+    packageName = "aws-cdk";
+    version = "2.28.1";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.28.1.tgz";
+      sha512 = "0Kklrj9HHg6HkYZQuTnJ+2+RLTqlVcxECUmlDudBxbPxJQcc5pEA9stfo8wwh1CtoWYuF4A4moP7B19Yvw4nJg==";
+    };
+    dependencies = [
+      sources."fsevents-2.3.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "CDK Toolkit, the command line tool for CDK apps";
+      homepage = "https://github.com/aws/aws-cdk";
+      license = "Apache-2.0";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   awesome-lint = nodeEnv.buildNodePackage {
     name = "awesome-lint";
     packageName = "awesome-lint";
@@ -80853,7 +82039,7 @@ in
       sources."remark-parse-9.0.0"
       sources."remark-stringify-9.0.1"
       sources."repeat-string-1.6.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."reusify-1.0.4"
@@ -80972,10 +82158,10 @@ in
   balanceofsatoshis = nodeEnv.buildNodePackage {
     name = "balanceofsatoshis";
     packageName = "balanceofsatoshis";
-    version = "12.11.0";
+    version = "12.13.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-12.11.0.tgz";
-      sha512 = "ajrj5cYPvL1MAEwFi7i3PQA3eYwJ/Pyr74P/xoQELHPgTz6hq+HY3KWGJMc8A6UF10QsgySW/nMAeAkJcb5/5w==";
+      url = "https://registry.npmjs.org/balanceofsatoshis/-/balanceofsatoshis-12.13.2.tgz";
+      sha512 = "B0npHfggvMlrBadnd/FZSX+dOT/GsgoNkOzLQsmt5J/qJxg/tqE0Z0bUhTJkWmNCkfE7/1ZgacWvPUD1t6BRyw==";
     };
     dependencies = [
       (sources."@alexbosworth/caporal-1.4.4" // {
@@ -80984,7 +82170,7 @@ in
         ];
       })
       sources."@alexbosworth/cli-table3-0.6.1"
-      sources."@alexbosworth/fiat-1.0.2"
+      sources."@alexbosworth/fiat-1.0.3"
       sources."@alexbosworth/html2unicode-1.1.5"
       sources."@alexbosworth/node-fetch-2.6.2"
       (sources."@alexbosworth/prettyjson-1.2.2" // {
@@ -81003,7 +82189,7 @@ in
       sources."@dabh/diagnostics-2.0.3"
       sources."@grammyjs/types-2.7.2"
       sources."@grpc/grpc-js-1.6.7"
-      sources."@grpc/proto-loader-0.6.12"
+      sources."@grpc/proto-loader-0.6.13"
       sources."@handsontable/formulajs-2.0.2"
       sources."@mitmaro/errors-1.0.0"
       sources."@mitmaro/http-authorization-header-1.0.0"
@@ -81023,10 +82209,10 @@ in
       sources."@types/caseless-0.12.2"
       sources."@types/connect-3.4.35"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/long-4.0.2"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/request-2.48.8"
@@ -81051,8 +82237,8 @@ in
       sources."array-flatten-1.1.1"
       sources."asciichart-1.5.25"
       sources."astral-regex-2.0.0"
-      sources."async-3.2.3"
-      sources."asyncjs-util-1.2.9"
+      sources."async-3.2.4"
+      sources."asyncjs-util-1.2.10"
       sources."asynckit-0.4.0"
       sources."base-x-3.0.9"
       sources."base64-js-1.5.1"
@@ -81122,7 +82308,7 @@ in
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
       sources."color-string-1.9.1"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."colors-1.4.0"
       sources."colorspace-1.1.4"
       sources."combined-stream-1.0.8"
@@ -81142,7 +82328,7 @@ in
       sources."create-hash-1.2.0"
       sources."crypto-js-4.1.1"
       sources."crypto-random-string-2.0.0"
-      sources."csv-parse-5.1.0"
+      sources."csv-parse-5.2.0"
       sources."debug-2.6.9"
       sources."decompress-response-3.3.0"
       sources."deep-extend-0.6.0"
@@ -81194,19 +82380,10 @@ in
           sources."ini-2.0.0"
         ];
       })
-      (sources."goldengate-11.2.2" // {
+      (sources."goldengate-11.2.3" // {
         dependencies = [
-          (sources."bolt01-1.2.4" // {
-            dependencies = [
-              sources."bn.js-5.2.0"
-            ];
-          })
-          (sources."bolt07-1.8.1" // {
-            dependencies = [
-              sources."bn.js-5.2.0"
-            ];
-          })
-          sources."ln-service-53.17.1"
+          sources."colorette-2.0.17"
+          sources."ln-sync-3.12.2"
         ];
       })
       sources."got-9.6.0"
@@ -81258,7 +82435,6 @@ in
           sources."restore-cursor-3.1.0"
           sources."supports-color-7.2.0"
           sources."tmp-0.0.33"
-          sources."type-fest-0.21.3"
         ];
       })
       (sources."invoices-2.0.6" // {
@@ -81300,53 +82476,149 @@ in
       sources."kind-of-6.0.3"
       sources."kuler-2.0.0"
       sources."latest-version-5.1.0"
-      (sources."lightning-5.16.1" // {
+      (sources."lightning-5.16.0" // {
         dependencies = [
-          sources."@types/node-17.0.38"
-          (sources."bolt07-1.8.1" // {
-            dependencies = [
-              sources."bn.js-5.2.0"
-            ];
-          })
-          sources."psbt-2.3.0"
+          sources."@grpc/proto-loader-0.6.12"
+          sources."@types/node-17.0.33"
+          sources."async-3.2.3"
+          sources."asyncjs-util-1.2.9"
+          sources."bn.js-5.2.0"
+          sources."bolt07-1.8.1"
+          sources."psbt-2.0.1"
+          sources."type-fest-2.12.2"
         ];
       })
       (sources."ln-accounting-5.0.7" // {
         dependencies = [
+          sources."@grpc/proto-loader-0.6.12"
+          sources."@types/node-17.0.38"
+          sources."async-3.2.3"
+          sources."asyncjs-util-1.2.9"
           sources."bn.js-5.2.0"
+          sources."bolt01-1.2.4"
           sources."bolt07-1.8.1"
-          sources."ln-service-53.17.1"
+          sources."colorette-2.0.16"
+          sources."goldengate-11.2.2"
+          (sources."ln-service-53.17.1" // {
+            dependencies = [
+              sources."bn.js-5.2.1"
+              sources."lightning-5.16.1"
+              sources."psbt-2.3.0"
+              sources."ws-8.7.0"
+            ];
+          })
+          (sources."ln-sync-3.12.1" // {
+            dependencies = [
+              sources."bn.js-5.2.1"
+              sources."ln-service-53.17.0"
+              sources."psbt-2.3.0"
+            ];
+          })
+          (sources."psbt-2.4.0" // {
+            dependencies = [
+              sources."bn.js-5.2.1"
+            ];
+          })
+          sources."type-fest-2.13.0"
         ];
       })
-      (sources."ln-service-53.17.2" // {
+      (sources."ln-service-53.17.3" // {
         dependencies = [
-          sources."@types/node-17.0.38"
+          sources."@types/node-17.0.41"
+          sources."async-3.2.3"
+          sources."asyncjs-util-1.2.9"
           sources."invoices-2.0.7"
-          sources."lightning-5.16.2"
+          sources."lightning-5.16.3"
+          sources."type-fest-2.13.0"
+          sources."ws-8.8.0"
         ];
       })
-      (sources."ln-sync-3.12.1" // {
+      (sources."ln-sync-3.13.0" // {
         dependencies = [
-          sources."@types/node-17.0.33"
+          sources."colorette-2.0.17"
+        ];
+      })
+      (sources."ln-telegram-3.22.2" // {
+        dependencies = [
+          (sources."@alexbosworth/fiat-1.0.2" // {
+            dependencies = [
+              sources."async-3.2.3"
+              sources."asyncjs-util-1.2.9"
+            ];
+          })
+          sources."@grpc/proto-loader-0.6.12"
+          sources."@types/node-17.0.38"
           sources."bn.js-5.2.0"
-          sources."bolt07-1.8.1"
           sources."colorette-2.0.16"
-          (sources."lightning-5.16.0" // {
+          sources."invoices-2.0.7"
+          (sources."lightning-5.16.1" // {
             dependencies = [
-              sources."psbt-2.0.1"
+              sources."async-3.2.3"
+              sources."asyncjs-util-1.2.9"
+              (sources."bolt07-1.8.1" // {
+                dependencies = [
+                  sources."bn.js-5.2.0"
+                ];
+              })
+              (sources."invoices-2.0.6" // {
+                dependencies = [
+                  sources."bn.js-5.2.0"
+                ];
+              })
             ];
           })
-          sources."ln-service-53.17.0"
-          (sources."psbt-2.3.0" // {
+          (sources."paid-services-3.16.2" // {
             dependencies = [
-              sources."bn.js-5.2.1"
+              sources."@types/node-17.0.33"
+              (sources."asyncjs-util-1.2.9" // {
+                dependencies = [
+                  sources."async-3.2.3"
+                ];
+              })
+              (sources."goldengate-11.2.2" // {
+                dependencies = [
+                  sources."async-3.2.3"
+                  (sources."bolt01-1.2.4" // {
+                    dependencies = [
+                      sources."bn.js-5.2.0"
+                    ];
+                  })
+                  (sources."bolt07-1.8.1" // {
+                    dependencies = [
+                      sources."bn.js-5.2.0"
+                    ];
+                  })
+                  (sources."invoices-2.0.6" // {
+                    dependencies = [
+                      sources."bn.js-5.2.0"
+                    ];
+                  })
+                  sources."ln-service-53.17.1"
+                  sources."psbt-2.4.0"
+                ];
+              })
+              (sources."ln-sync-3.12.1" // {
+                dependencies = [
+                  sources."async-3.2.3"
+                  sources."bolt07-1.8.1"
+                  sources."invoices-2.0.6"
+                  (sources."lightning-5.16.0" // {
+                    dependencies = [
+                      sources."psbt-2.0.1"
+                    ];
+                  })
+                  sources."ln-service-53.17.0"
+                  sources."ws-8.6.0"
+                ];
+              })
+              sources."type-fest-2.12.2"
             ];
           })
-          sources."type-fest-2.12.2"
-          sources."ws-8.6.0"
+          sources."psbt-2.3.0"
+          sources."type-fest-2.13.0"
+          sources."ws-8.7.0"
         ];
       })
-      sources."ln-telegram-3.22.1"
       sources."lodash-4.17.21"
       sources."lodash.camelcase-4.3.0"
       sources."lodash.difference-4.5.0"
@@ -81434,100 +82706,9 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."paid-services-3.16.0" // {
+      (sources."paid-services-3.16.3" // {
         dependencies = [
-          sources."@grpc/grpc-js-1.6.4"
-          sources."@grpc/proto-loader-0.6.9"
-          sources."@types/node-17.0.23"
-          sources."bn.js-5.2.0"
-          sources."body-parser-1.19.2"
-          sources."bolt01-1.2.4"
-          sources."bolt07-1.8.1"
-          sources."bolt09-0.2.2"
-          sources."colorette-2.0.16"
-          sources."cookie-0.4.2"
-          sources."depd-1.1.2"
-          sources."destroy-1.0.4"
-          sources."express-4.17.3"
-          sources."finalhandler-1.1.2"
-          (sources."goldengate-11.2.1" // {
-            dependencies = [
-              sources."invoices-2.0.5"
-              sources."ln-service-53.11.0"
-            ];
-          })
-          sources."http-errors-1.8.1"
-          (sources."lightning-5.10.1" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.2"
-              sources."body-parser-1.20.0"
-              sources."bolt09-0.2.3"
-              sources."depd-2.0.0"
-              sources."destroy-1.2.0"
-              sources."http-errors-2.0.0"
-              (sources."invoices-2.0.5" // {
-                dependencies = [
-                  sources."bolt09-0.2.2"
-                ];
-              })
-              sources."on-finished-2.4.1"
-              sources."qs-6.10.3"
-              sources."raw-body-2.5.1"
-              sources."statuses-2.0.1"
-            ];
-          })
-          (sources."ln-service-53.15.0" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.7"
-              sources."@types/node-17.0.25"
-              sources."body-parser-1.20.0"
-              sources."bolt09-0.2.3"
-              sources."depd-2.0.0"
-              sources."destroy-1.2.0"
-              sources."http-errors-2.0.0"
-              sources."lightning-5.14.0"
-              sources."on-finished-2.4.1"
-              sources."qs-6.10.3"
-              sources."raw-body-2.5.1"
-              sources."statuses-2.0.1"
-            ];
-          })
-          (sources."ln-sync-3.12.0" // {
-            dependencies = [
-              sources."@grpc/grpc-js-1.6.1"
-              sources."bolt09-0.2.1"
-              (sources."invoices-2.0.4" // {
-                dependencies = [
-                  sources."bolt07-1.8.0"
-                  sources."tiny-secp256k1-2.2.0"
-                ];
-              })
-              (sources."lightning-5.9.0" // {
-                dependencies = [
-                  sources."asyncjs-util-1.2.8"
-                  sources."bolt07-1.8.0"
-                  sources."bolt09-0.2.2"
-                  sources."psbt-2.0.0"
-                ];
-              })
-              (sources."ln-service-53.10.0" // {
-                dependencies = [
-                  sources."bolt07-1.8.0"
-                ];
-              })
-            ];
-          })
-          sources."ms-2.1.3"
-          sources."on-finished-2.3.0"
-          sources."psbt-2.0.1"
-          sources."qs-6.9.7"
-          sources."raw-body-2.4.3"
-          sources."safe-buffer-5.2.1"
-          sources."send-0.17.2"
-          sources."serve-static-1.14.2"
-          sources."statuses-1.5.0"
-          sources."type-fest-2.12.2"
-          sources."ws-8.5.0"
+          sources."invoices-2.0.7"
         ];
       })
       sources."parseurl-1.3.3"
@@ -81537,18 +82718,39 @@ in
       sources."prepend-http-2.0.0"
       (sources."probing-2.0.6" // {
         dependencies = [
+          sources."@grpc/proto-loader-0.6.12"
+          sources."@types/node-17.0.38"
+          sources."async-3.2.3"
+          sources."asyncjs-util-1.2.9"
           sources."bn.js-5.2.0"
+          (sources."lightning-5.16.1" // {
+            dependencies = [
+              sources."bn.js-5.2.1"
+              (sources."bolt07-1.8.1" // {
+                dependencies = [
+                  sources."bn.js-5.2.0"
+                ];
+              })
+            ];
+          })
           (sources."ln-service-53.17.1" // {
             dependencies = [
               sources."bolt07-1.8.1"
             ];
           })
+          (sources."psbt-2.3.0" // {
+            dependencies = [
+              sources."bn.js-5.2.1"
+            ];
+          })
+          sources."type-fest-2.13.0"
+          sources."ws-8.7.0"
         ];
       })
       sources."process-nextick-args-2.0.1"
       sources."protobufjs-6.11.3"
       sources."proxy-addr-2.0.7"
-      sources."psbt-2.4.0"
+      sources."psbt-2.6.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
       sources."pupa-2.1.1"
@@ -81564,7 +82766,7 @@ in
         ];
       })
       sources."readable-stream-2.3.7"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
@@ -81632,11 +82834,7 @@ in
       sources."text-hex-1.0.0"
       sources."through-2.3.8"
       sources."tiny-emitter-2.1.0"
-      (sources."tiny-secp256k1-2.2.1" // {
-        dependencies = [
-          sources."uint8array-tools-0.0.7"
-        ];
-      })
+      sources."tiny-secp256k1-2.2.1"
       sources."tmp-0.0.29"
       sources."to-readable-stream-1.0.0"
       sources."toidentifier-1.0.1"
@@ -81646,12 +82844,12 @@ in
       sources."tslib-2.4.0"
       sources."tweetnacl-1.0.3"
       sources."tweetnacl-util-0.15.1"
-      sources."type-fest-2.13.0"
+      sources."type-fest-0.21.3"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
       sources."typeforce-1.18.0"
-      sources."uint8array-tools-0.0.6"
+      sources."uint8array-tools-0.0.7"
       sources."unique-string-2.0.0"
       sources."unpipe-1.0.0"
       (sources."update-notifier-5.1.0" // {
@@ -81696,7 +82894,7 @@ in
       })
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-8.7.0"
+      sources."ws-8.6.0"
       sources."xdg-basedir-4.0.0"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
@@ -81716,10 +82914,10 @@ in
   bash-language-server = nodeEnv.buildNodePackage {
     name = "bash-language-server";
     packageName = "bash-language-server";
-    version = "3.0.3";
+    version = "3.0.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-3.0.3.tgz";
-      sha512 = "UhYd0YYaXjYn0M3dVeL6jv1X9L2VR8dJp3fUCcdyHTgzJOvmntpUrkjcoKASV0qqZt0u8DSPT4xE+HjegQoEvQ==";
+      url = "https://registry.npmjs.org/bash-language-server/-/bash-language-server-3.0.4.tgz";
+      sha512 = "LMaBSmXuPfPkMjOZzI9zEgiInEBE2Ok2p1/cnGOPW/sG07pVysweXkHaUy10dl+kof+x2kklZlAMMD5CluA5fQ==";
     };
     dependencies = [
       sources."ajv-6.12.6"
@@ -81918,7 +83116,7 @@ in
       sources."read-pkg-up-1.0.1"
       sources."redent-1.0.0"
       sources."repeating-2.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       (sources."rimraf-2.7.1" // {
         dependencies = [
           sources."glob-7.2.3"
@@ -82137,7 +83335,7 @@ in
         ];
       })
       sources."regexp.prototype.flags-1.4.3"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
@@ -82209,7 +83407,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."accepts-1.3.8"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-2.2.1"
@@ -82387,7 +83585,7 @@ in
       sources."tfunk-4.0.0"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."ua-parser-js-1.0.2"
       sources."universalify-0.1.2"
       sources."unpipe-1.0.0"
@@ -82432,7 +83630,7 @@ in
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@kwsites/file-exists-1.1.1"
       sources."@kwsites/promise-deferred-1.1.1"
@@ -82776,7 +83974,7 @@ in
       })
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."rimraf-2.4.5"
       sources."ripemd160-2.0.2"
       sources."rndm-1.2.0"
@@ -82898,7 +84096,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.2.16"
       sources."ajv-6.12.6"
@@ -83186,7 +84384,7 @@ in
       sources."redent-1.0.0"
       sources."repeating-2.0.1"
       sources."request-2.88.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."rimraf-2.7.1"
       sources."router-0.6.2"
       sources."run-parallel-1.2.0"
@@ -83728,7 +84926,7 @@ in
       sources."registry-url-3.1.0"
       sources."repeat-element-1.1.4"
       sources."repeat-string-1.6.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-2.0.0"
       sources."ret-0.1.15"
@@ -83905,14 +85103,14 @@ in
   cdk8s-cli = nodeEnv.buildNodePackage {
     name = "cdk8s-cli";
     packageName = "cdk8s-cli";
-    version = "2.0.15";
+    version = "2.0.25";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.0.15.tgz";
-      sha512 = "pHXhcgxL0Y4jJgRUdaquGzx/1KoPwEdISiF01LY5N/gYHEd4Lk1/noLWaI/rZdf+0yQdPQj3ciiuU7B45VzKjw==";
+      url = "https://registry.npmjs.org/cdk8s-cli/-/cdk8s-cli-2.0.25.tgz";
+      sha512 = "olYwi6GtseJ0t8DqW/qF6uRgkz5yuop6Y4TEC0hipFQ/y44LSq+AOoGLekf6FQ4iEhDroFCacg9m3RZ3IzJLjg==";
     };
     dependencies = [
-      sources."@jsii/check-node-1.60.0"
-      sources."@jsii/spec-1.60.0"
+      sources."@jsii/check-node-1.61.0"
+      sources."@jsii/spec-1.61.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -83922,17 +85120,15 @@ in
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.5"
       sources."braces-3.0.2"
-      sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
-      sources."cdk8s-2.3.21"
-      sources."cdk8s-plus-22-2.0.0-rc.13"
+      sources."cdk8s-2.3.31"
+      sources."cdk8s-plus-22-2.0.0-rc.23"
       sources."chalk-4.1.2"
       sources."cliui-7.0.4"
       sources."clone-2.1.2"
-      (sources."codemaker-1.60.0" // {
+      (sources."codemaker-1.61.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
         ];
@@ -83941,20 +85137,15 @@ in
       sources."color-name-1.1.4"
       sources."colors-1.4.0"
       sources."commonmark-0.30.0"
-      sources."constructs-10.1.33"
+      sources."constructs-10.1.42"
       sources."date-format-4.0.11"
       sources."debug-4.3.4"
       sources."decamelize-5.0.1"
-      sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.4"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
       sources."dot-case-3.0.4"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.20.1"
-      sources."es-get-iterator-1.1.2"
-      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-4.0.0"
       sources."fast-deep-equal-3.1.3"
@@ -83963,82 +85154,53 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flatted-3.2.5"
-      sources."for-each-0.3.3"
       (sources."fs-extra-8.1.0" // {
         dependencies = [
           sources."jsonfile-4.0.0"
           sources."universalify-0.1.2"
         ];
       })
-      sources."function-bind-1.1.1"
-      sources."function.prototype.name-1.1.5"
-      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.2"
-      sources."get-symbol-description-1.0.0"
       sources."glob-parent-5.1.2"
       sources."graceful-fs-4.2.10"
-      sources."has-1.0.3"
-      sources."has-bigints-1.0.2"
       sources."has-flag-4.0.0"
-      sources."has-property-descriptors-1.0.0"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.0"
-      sources."internal-slot-1.0.3"
-      sources."is-arguments-1.1.1"
-      sources."is-bigint-1.0.4"
-      sources."is-boolean-object-1.1.2"
-      sources."is-callable-1.2.4"
-      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-map-2.0.2"
-      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.7"
-      sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-typed-array-1.1.9"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.2"
-      sources."isarray-2.0.5"
-      (sources."jsii-1.60.0" // {
+      (sources."jsii-1.61.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
+          sources."typescript-3.9-3.9.10"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-pacmak-1.60.0" // {
+      (sources."jsii-pacmak-1.61.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-reflect-1.60.0" // {
+      (sources."jsii-reflect-1.61.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-rosetta-1.60.0" // {
+      (sources."jsii-rosetta-1.61.0" // {
         dependencies = [
           sources."fs-extra-10.1.0"
           sources."yargs-16.2.0"
         ];
       })
-      (sources."jsii-srcmak-0.1.585" // {
+      (sources."jsii-srcmak-0.1.594" // {
         dependencies = [
           sources."fs-extra-9.1.0"
         ];
       })
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-1.0.0"
-      sources."json2jsii-0.3.35"
+      sources."json2jsii-0.3.44"
       sources."jsonfile-6.1.0"
       sources."locate-path-5.0.0"
       sources."log4js-6.5.2"
@@ -84051,11 +85213,7 @@ in
       sources."ms-2.1.2"
       sources."ncp-2.0.0"
       sources."no-case-3.0.4"
-      sources."object-inspect-1.12.2"
-      sources."object-is-1.1.5"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
-      sources."oo-ascii-tree-1.60.0"
+      sources."oo-ascii-tree-1.61.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -84063,7 +85221,6 @@ in
       sources."picomatch-2.3.1"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
-      sources."regexp.prototype.flags-1.4.3"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
@@ -84077,10 +85234,9 @@ in
         ];
       })
       sources."set-blocking-2.0.0"
-      sources."side-channel-1.0.4"
       sources."snake-case-3.0.4"
       sources."sort-json-2.0.1"
-      sources."spdx-license-list-6.5.0"
+      sources."spdx-license-list-6.6.0"
       sources."sscaff-1.2.274"
       (sources."streamroller-3.1.1" // {
         dependencies = [
@@ -84089,20 +85245,14 @@ in
       })
       sources."string-width-4.2.3"
       sources."string.prototype.repeat-0.2.0"
-      sources."string.prototype.trimend-1.0.5"
-      sources."string.prototype.trimstart-1.0.5"
       sources."strip-ansi-6.0.1"
       sources."supports-color-7.2.0"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.4.0"
-      sources."typescript-3.9.10"
-      sources."unbox-primitive-1.0.2"
+      sources."typescript-3.9-3.9.10"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
-      sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
-      sources."which-typed-array-1.1.8"
       sources."workerpool-6.2.1"
       sources."wrap-ansi-7.0.0"
       sources."xmlbuilder-15.1.1"
@@ -84143,7 +85293,7 @@ in
       sources."@babel/generator-7.18.2"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/template-7.16.7"
       sources."@babel/types-7.18.4"
       sources."@cdktf/hcl2cdk-0.11.2"
@@ -84159,7 +85309,7 @@ in
       sources."@jridgewell/set-array-1.1.1"
       sources."@jridgewell/sourcemap-codec-1.4.13"
       sources."@jridgewell/trace-mapping-0.3.13"
-      (sources."@jsii/check-node-1.60.0" // {
+      (sources."@jsii/check-node-1.61.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84169,7 +85319,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."@jsii/spec-1.60.0"
+      sources."@jsii/spec-1.61.0"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -84179,8 +85329,8 @@ in
       sources."@sentry/node-6.19.7"
       sources."@sentry/types-6.19.7"
       sources."@sentry/utils-6.19.7"
-      sources."@types/node-17.0.41"
-      sources."@types/node-fetch-2.6.1"
+      sources."@types/node-18.0.0"
+      sources."@types/node-fetch-2.6.2"
       sources."@types/yargs-17.0.10"
       sources."@types/yargs-parser-21.0.0"
       sources."@xmldom/xmldom-0.8.2"
@@ -84191,18 +85341,16 @@ in
       sources."arr-rotate-1.0.0"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      sources."available-typed-arrays-1.0.5"
       sources."balanced-match-1.0.2"
       sources."brace-expansion-1.1.11"
       sources."braces-3.0.2"
-      sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
       sources."case-1.6.3"
       sources."cdktf-0.11.2"
       sources."chalk-2.4.2"
       sources."cliui-6.0.0"
       sources."clone-2.1.2"
-      (sources."codemaker-1.60.0" // {
+      (sources."codemaker-1.61.0" // {
         dependencies = [
           sources."decamelize-5.0.1"
           sources."fs-extra-10.1.0"
@@ -84215,22 +85363,17 @@ in
       sources."combined-stream-1.0.8"
       sources."commonmark-0.30.0"
       sources."concat-map-0.0.1"
-      sources."constructs-10.1.33"
+      sources."constructs-10.1.42"
       sources."cookie-0.4.2"
       sources."cross-spawn-7.0.3"
       sources."date-format-4.0.11"
       sources."debug-4.3.4"
       sources."decamelize-1.2.0"
-      sources."deep-equal-2.0.5"
-      sources."define-properties-1.1.4"
       sources."delayed-stream-1.0.0"
       sources."detect-indent-5.0.0"
       sources."detect-newline-2.1.0"
       sources."emoji-regex-8.0.0"
       sources."entities-2.0.3"
-      sources."es-abstract-1.20.1"
-      sources."es-get-iterator-1.1.2"
-      sources."es-to-primitive-1.2.1"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-1.0.5"
       sources."events-3.3.0"
@@ -84241,16 +85384,10 @@ in
       sources."fill-range-7.0.1"
       sources."find-up-4.1.0"
       sources."flatted-3.2.5"
-      sources."for-each-0.3.3"
       sources."form-data-3.0.1"
       sources."fs-extra-8.1.0"
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
-      sources."function.prototype.name-1.1.5"
-      sources."functions-have-names-1.2.3"
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.2"
-      sources."get-symbol-description-1.0.0"
       (sources."glob-7.2.0" // {
         dependencies = [
           sources."minimatch-3.1.2"
@@ -84260,44 +85397,20 @@ in
       sources."graceful-fs-4.2.10"
       sources."graphology-0.24.1"
       sources."graphology-types-0.21.2"
-      sources."has-1.0.3"
-      sources."has-bigints-1.0.2"
       sources."has-flag-3.0.0"
-      sources."has-property-descriptors-1.0.0"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.0"
       sources."https-proxy-agent-5.0.1"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
       sources."ink-select-input-4.2.1"
-      sources."internal-slot-1.0.3"
-      sources."is-arguments-1.1.1"
-      sources."is-bigint-1.0.4"
-      sources."is-boolean-object-1.1.2"
-      sources."is-callable-1.2.4"
-      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-map-2.0.2"
-      sources."is-negative-zero-2.0.2"
       sources."is-number-7.0.0"
-      sources."is-number-object-1.0.7"
-      sources."is-regex-1.1.4"
-      sources."is-set-2.0.2"
-      sources."is-shared-array-buffer-1.0.2"
-      sources."is-string-1.0.7"
-      sources."is-symbol-1.0.4"
-      sources."is-typed-array-1.1.9"
       sources."is-valid-domain-0.1.6"
-      sources."is-weakmap-2.0.1"
-      sources."is-weakref-1.0.2"
-      sources."is-weakset-2.0.2"
-      sources."isarray-2.0.5"
       sources."isexe-2.0.0"
       sources."js-tokens-4.0.0"
       sources."jsesc-2.5.2"
-      (sources."jsii-1.60.0" // {
+      (sources."jsii-1.61.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84308,6 +85421,7 @@ in
           sources."has-flag-4.0.0"
           sources."jsonfile-6.1.0"
           sources."supports-color-7.2.0"
+          sources."typescript-3.9-3.9.10"
           sources."universalify-2.0.0"
           sources."wrap-ansi-7.0.0"
           sources."y18n-5.0.8"
@@ -84315,7 +85429,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-pacmak-1.60.0" // {
+      (sources."jsii-pacmak-1.61.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -84331,7 +85445,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-reflect-1.60.0" // {
+      (sources."jsii-reflect-1.61.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."chalk-4.1.2"
@@ -84349,7 +85463,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-rosetta-1.60.0" // {
+      (sources."jsii-rosetta-1.61.0" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
           sources."cliui-7.0.4"
@@ -84364,7 +85478,7 @@ in
           sources."yargs-parser-20.2.9"
         ];
       })
-      (sources."jsii-srcmak-0.1.585" // {
+      (sources."jsii-srcmak-0.1.594" // {
         dependencies = [
           sources."fs-extra-9.1.0"
           sources."jsonfile-6.1.0"
@@ -84394,13 +85508,9 @@ in
       sources."ncp-2.0.0"
       sources."node-abort-controller-3.0.1"
       sources."node-fetch-2.6.7"
-      sources."object-inspect-1.12.2"
-      sources."object-is-1.1.5"
-      sources."object-keys-1.1.1"
-      sources."object.assign-4.1.2"
       sources."obliterator-2.0.4"
       sources."once-1.4.0"
-      sources."oo-ascii-tree-1.60.0"
+      sources."oo-ascii-tree-1.61.0"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -84408,10 +85518,9 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."picomatch-2.3.1"
-      sources."prettier-2.6.2"
+      sources."prettier-2.7.1"
       sources."punycode-2.1.1"
       sources."queue-microtask-1.2.3"
-      sources."regexp.prototype.flags-1.4.3"
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-main-filename-2.0.0"
@@ -84430,9 +85539,8 @@ in
       sources."set-blocking-2.0.0"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."side-channel-1.0.4"
       sources."sort-json-2.0.1"
-      sources."spdx-license-list-6.5.0"
+      sources."spdx-license-list-6.6.0"
       (sources."streamroller-3.1.1" // {
         dependencies = [
           sources."fs-extra-10.1.0"
@@ -84442,8 +85550,6 @@ in
       })
       sources."string-width-4.2.3"
       sources."string.prototype.repeat-0.2.0"
-      sources."string.prototype.trimend-1.0.5"
-      sources."string.prototype.trimstart-1.0.5"
       sources."strip-ansi-6.0.1"
       sources."supports-color-5.5.0"
       sources."to-fast-properties-2.0.0"
@@ -84451,17 +85557,13 @@ in
       sources."tr46-0.0.3"
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
-      sources."typescript-3.9.10"
-      sources."unbox-primitive-1.0.2"
+      sources."typescript-3.9-3.9.10"
       sources."universalify-0.1.2"
       sources."uri-js-4.4.1"
       sources."webidl-conversions-3.0.1"
       sources."whatwg-url-5.0.0"
       sources."which-2.0.2"
-      sources."which-boxed-primitive-1.0.2"
-      sources."which-collection-1.0.1"
       sources."which-module-2.0.0"
-      sources."which-typed-array-1.1.8"
       sources."workerpool-6.2.1"
       (sources."wrap-ansi-6.2.0" // {
         dependencies = [
@@ -84790,6 +85892,40 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-docker = nodeEnv.buildNodePackage {
+    name = "coc-docker";
+    packageName = "coc-docker";
+    version = "0.5.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-docker/-/coc-docker-0.5.0.tgz";
+      sha512 = "ivLkxcmRgvb1yjYxNqm+kZvjqvKpUEzLOAubwFADY+NDb+rpojnz1jqirJgPztNeqdd12/vcszd5GX4ISUxjlA==";
+    };
+    dependencies = [
+      sources."dockerfile-ast-0.1.0"
+      sources."dockerfile-language-server-nodejs-0.2.2"
+      sources."dockerfile-language-service-0.1.1"
+      sources."dockerfile-utils-0.1.1"
+      sources."tslib-2.4.0"
+      sources."vscode-jsonrpc-8.0.1"
+      (sources."vscode-languageserver-7.0.0" // {
+        dependencies = [
+          sources."vscode-jsonrpc-6.0.0"
+          sources."vscode-languageserver-protocol-3.16.0"
+          sources."vscode-languageserver-types-3.16.0"
+        ];
+      })
+      sources."vscode-languageserver-protocol-3.17.1"
+      sources."vscode-languageserver-types-3.17.1"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "docker extension for coc";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-emmet = nodeEnv.buildNodePackage {
     name = "coc-emmet";
     packageName = "coc-emmet";
@@ -85016,7 +86152,7 @@ in
       sha512 = "HtFYiBx2ZIFairTsfDwLsMUTGwlH498VzAipWZeCOIGf7ZXetEbv0t+wr7IAy2KMIwhlmzoMsi5aHSlUupxGHA==";
     };
     dependencies = [
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85249,7 +86385,7 @@ in
       sources."metals-languageclient-0.4.2"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -85360,13 +86496,13 @@ in
   coc-prettier = nodeEnv.buildNodePackage {
     name = "coc-prettier";
     packageName = "coc-prettier";
-    version = "9.3.0";
+    version = "9.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-9.3.0.tgz";
-      sha512 = "ns5+SO7o0ckeGeVo9r9JM1gfpfByASsDouOhwqjgF0mDJurXMZ/q6Dax+h8Sv+EIgR1C/nU0rpmIQXg6KL7G6g==";
+      url = "https://registry.npmjs.org/coc-prettier/-/coc-prettier-9.3.1.tgz";
+      sha512 = "t/j62Sjq/eBcaN90b4KPNDuZBP3K+TomXj9RLdiJX0zE7RG2byqsxVTnVKAk9c+qE05jv16C5Zv1qv97ZKcA4g==";
     };
     dependencies = [
-      sources."prettier-2.6.2"
+      sources."prettier-2.7.1"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85387,7 +86523,7 @@ in
       sha512 = "cQ8JXEofYh5jHv/1KuMOzLtA4By5IHfKSv6Nh7SfZ771tfAFSiEevqONhcjeqQSPVTzwL5v/u57qWN45/tpEeg==";
     };
     dependencies = [
-      sources."pyright-1.1.253"
+      sources."pyright-1.1.254"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -85461,10 +86597,10 @@ in
   coc-rust-analyzer = nodeEnv.buildNodePackage {
     name = "coc-rust-analyzer";
     packageName = "coc-rust-analyzer";
-    version = "0.63.0";
+    version = "0.64.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.63.0.tgz";
-      sha512 = "QTkh3ZDF5CmNTW4PN0SP0N/DzlABEopq7Owu2RyhwM7PUmpyTzn5T/djNdiYzEif2cFsZlJG/zvDZ/bKTt3mSA==";
+      url = "https://registry.npmjs.org/coc-rust-analyzer/-/coc-rust-analyzer-0.64.0.tgz";
+      sha512 = "H7+gWEJgEa9HZq7l8sJuVL8KsfFQMk5IaOaBnJcv7IeJNAG7LxsD28HCxMRzJhVxYECU7NMOCgn4j5D0p1rE4A==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85476,6 +86612,97 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-sh = nodeEnv.buildNodePackage {
+    name = "coc-sh";
+    packageName = "coc-sh";
+    version = "0.7.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-sh/-/coc-sh-0.7.0.tgz";
+      sha512 = "HGUBtksIRvjTcempnZz/oUoVr3XNNol5sJO+Pv8JGIihKVBougOVA4MkaJmSU0R+1WP+XL+feALf7edTdqUqlw==";
+    };
+    dependencies = [
+      sources."ajv-6.12.6"
+      sources."asn1-0.2.6"
+      sources."assert-plus-1.0.0"
+      sources."asynckit-0.4.0"
+      sources."aws-sign2-0.7.0"
+      sources."aws4-1.11.0"
+      sources."balanced-match-1.0.2"
+      sources."bash-language-server-3.0.3"
+      sources."bcrypt-pbkdf-1.0.2"
+      sources."brace-expansion-2.0.1"
+      sources."caseless-0.12.0"
+      sources."combined-stream-1.0.8"
+      sources."core-util-is-1.0.2"
+      sources."dashdash-1.14.1"
+      sources."delayed-stream-1.0.0"
+      sources."domino-2.1.6"
+      sources."ecc-jsbn-0.1.2"
+      sources."extend-3.0.2"
+      sources."extsprintf-1.3.0"
+      sources."fast-deep-equal-3.1.3"
+      sources."fast-json-stable-stringify-2.1.0"
+      sources."forever-agent-0.6.1"
+      sources."form-data-2.3.3"
+      sources."fs.realpath-1.0.0"
+      sources."fuzzy-search-3.2.1"
+      sources."getpass-0.1.7"
+      sources."glob-8.0.3"
+      sources."har-schema-2.0.0"
+      sources."har-validator-5.1.5"
+      sources."http-signature-1.2.0"
+      sources."inflight-1.0.6"
+      sources."inherits-2.0.4"
+      sources."is-typedarray-1.0.0"
+      sources."isstream-0.1.2"
+      sources."jsbn-0.1.1"
+      sources."json-schema-0.4.0"
+      sources."json-schema-traverse-0.4.1"
+      sources."json-stringify-safe-5.0.1"
+      sources."jsprim-1.4.2"
+      sources."lodash-4.17.21"
+      sources."mime-db-1.52.0"
+      sources."mime-types-2.1.35"
+      sources."minimatch-5.1.0"
+      sources."oauth-sign-0.9.0"
+      sources."once-1.4.0"
+      sources."performance-now-2.1.0"
+      sources."psl-1.8.0"
+      sources."punycode-2.1.1"
+      sources."qs-6.5.3"
+      sources."request-2.88.2"
+      sources."request-promise-core-1.1.4"
+      sources."request-promise-native-1.0.9"
+      sources."safe-buffer-5.2.1"
+      sources."safer-buffer-2.1.2"
+      sources."sshpk-1.17.0"
+      sources."stealthy-require-1.1.1"
+      sources."tough-cookie-2.5.0"
+      sources."tslib-2.4.0"
+      sources."tunnel-agent-0.6.0"
+      sources."turndown-7.1.1"
+      sources."tweetnacl-0.14.5"
+      sources."uri-js-4.4.1"
+      sources."urijs-1.19.11"
+      sources."uuid-3.4.0"
+      sources."verror-1.10.0"
+      sources."vscode-jsonrpc-8.0.1"
+      sources."vscode-languageserver-6.1.1"
+      sources."vscode-languageserver-protocol-3.17.1"
+      sources."vscode-languageserver-textdocument-1.0.5"
+      sources."vscode-languageserver-types-3.17.1"
+      sources."web-tree-sitter-0.20.5"
+      sources."wrappy-1.0.2"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "sh extension for coc";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-smartf = nodeEnv.buildNodePackage {
     name = "coc-smartf";
     packageName = "coc-smartf";
@@ -85497,10 +86724,10 @@ in
   coc-snippets = nodeEnv.buildNodePackage {
     name = "coc-snippets";
     packageName = "coc-snippets";
-    version = "3.0.12";
+    version = "3.0.14";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-3.0.12.tgz";
-      sha512 = "/UtRs0x3xXB++k+JkYpb7v6h1NbvIjcnr3dfeDfS7g/V/HfY+j2OWP8KOM6UHnrjMSNfYgN/2y9ePS1Yauk0hg==";
+      url = "https://registry.npmjs.org/coc-snippets/-/coc-snippets-3.0.14.tgz";
+      sha512 = "aYlupbhcFlm03c4yGE8cv1x+s8Ur9VluA050QLzvEynbjHnzOGYZS97qwqgvWVRH0hKsU1dl50CG3XlF4T9vaA==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -85539,8 +86766,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      sources."@babel/core-7.18.2"
+      sources."@babel/compat-data-7.18.5"
+      sources."@babel/core-7.18.5"
       (sources."@babel/generator-7.18.2" // {
         dependencies = [
           sources."@jridgewell/gen-mapping-0.3.1"
@@ -85562,9 +86789,9 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -85604,7 +86831,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -85641,7 +86868,7 @@ in
       sources."domelementtype-1.3.1"
       sources."domhandler-2.4.2"
       sources."domutils-1.7.0"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."entities-1.1.2"
       sources."error-ex-1.3.2"
@@ -85798,7 +87025,7 @@ in
       sources."remark-stringify-9.0.1"
       sources."repeat-string-1.6.1"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
@@ -85878,6 +87105,41 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-sumneko-lua = nodeEnv.buildNodePackage {
+    name = "coc-sumneko-lua";
+    packageName = "coc-sumneko-lua";
+    version = "0.0.29";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-sumneko-lua/-/coc-sumneko-lua-0.0.29.tgz";
+      sha512 = "3Xy0czldGeMy2Ic4taPwI3myKU27SpywmSaFTa2UM6E3/F5DHb7fSBQ/mvk0c9/LweTgv3Pm/mBU83PKRSZDtA==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "Lua extension using sumneko lua-language-server for coc.nvim";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
+  coc-sqlfluff = nodeEnv.buildNodePackage {
+    name = "coc-sqlfluff";
+    packageName = "coc-sqlfluff";
+    version = "0.9.0";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-sqlfluff/-/coc-sqlfluff-0.9.0.tgz";
+      sha512 = "Fzny9JBJw5zIK6GwSh1s3Q3t2ylt2dg9QYURhaGihm6gqmUdRMO0DokHLt10TFqe8tjFbOUIriEx7Qb6mASnfQ==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "SQLFluff (A SQL linter and auto-formatter for Humans) extension for coc.nvim";
+      homepage = "https://github.com/yaegassy/coc-sqlfluff#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-tabnine = nodeEnv.buildNodePackage {
     name = "coc-tabnine";
     packageName = "coc-tabnine";
@@ -85913,6 +87175,31 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  coc-toml = nodeEnv.buildNodePackage {
+    name = "coc-toml";
+    packageName = "coc-toml";
+    version = "1.2.5";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/coc-toml/-/coc-toml-1.2.5.tgz";
+      sha512 = "8ypH+v7PkGfYTfg/7QoUGrpgSidzxwr2uvuTXR3FgzWrLT9OQOvlocH9KfCRsP8IIAbCuMOa/OpStN+pNwO6Ug==";
+    };
+    dependencies = [
+      sources."@taplo/lsp-0.2.4"
+      sources."node-fetch-2.6.7"
+      sources."tr46-0.0.3"
+      sources."webidl-conversions-3.0.1"
+      sources."whatwg-url-5.0.0"
+    ];
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "toml extension for coc.nvim";
+      homepage = "https://github.com/kkiyama117/coc-toml#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   coc-tslint = nodeEnv.buildNodePackage {
     name = "coc-tslint";
     packageName = "coc-tslint";
@@ -85954,7 +87241,7 @@ in
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
       sources."path-parse-1.0.7"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."semver-5.7.1"
       sources."sprintf-js-1.0.3"
       sources."supports-color-5.5.0"
@@ -86011,13 +87298,13 @@ in
   coc-tsserver = nodeEnv.buildNodePackage {
     name = "coc-tsserver";
     packageName = "coc-tsserver";
-    version = "1.10.4";
+    version = "1.10.5";
     src = fetchurl {
-      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.10.4.tgz";
-      sha512 = "SiihwYjslqjI+yU1lvtuzmU8mMHxbcMo5Bufmzu+VgvT7z838vrCBxGI2AoA/jmdyKlKePdbXDukpLQWsug78A==";
+      url = "https://registry.npmjs.org/coc-tsserver/-/coc-tsserver-1.10.5.tgz";
+      sha512 = "XU+kNQLtKpEcjnf5KYXO+FdLJPrMJXU+FzZrXhniN3Zatv3z58BZr07dY01sG3LGV2of/9o58EZNs7rdSst1Pg==";
     };
     dependencies = [
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -86184,14 +87471,14 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.6.2"
+      sources."prettier-2.7.1"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
       sources."punycode-2.1.1"
       sources."regexpp-3.2.0"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.3.7"
@@ -86228,7 +87515,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       sources."vls-0.7.6"
@@ -86583,10 +87870,10 @@ in
   concurrently = nodeEnv.buildNodePackage {
     name = "concurrently";
     packageName = "concurrently";
-    version = "7.2.1";
+    version = "7.2.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/concurrently/-/concurrently-7.2.1.tgz";
-      sha512 = "7cab/QyqipqghrVr9qZmoWbidu0nHsmxrpNqQ7r/67vfl1DWJElexehQnTH1p+87tDkihaAjM79xTZyBQh7HLw==";
+      url = "https://registry.npmjs.org/concurrently/-/concurrently-7.2.2.tgz";
+      sha512 = "DcQkI0ruil5BA/g7Xy3EWySGrFJovF5RYAYxwGvv9Jf9q9B1v3jPFP2tl6axExNf1qgF30kjoNYrangZ0ey4Aw==";
     };
     dependencies = [
       sources."ansi-regex-5.0.1"
@@ -86607,14 +87894,14 @@ in
       sources."is-fullwidth-code-point-3.0.0"
       sources."lodash-4.17.21"
       sources."require-directory-2.1.1"
-      sources."rxjs-6.6.7"
+      sources."rxjs-7.5.5"
       sources."shell-quote-1.7.3"
       sources."spawn-command-0.0.2"
       sources."string-width-4.2.3"
       sources."strip-ansi-6.0.1"
       sources."supports-color-8.1.1"
       sources."tree-kill-1.2.2"
-      sources."tslib-1.14.1"
+      sources."tslib-2.4.0"
       sources."wrap-ansi-7.0.0"
       sources."y18n-5.0.8"
       sources."yargs-17.5.1"
@@ -86859,7 +88146,7 @@ in
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."safe-buffer-5.2.1"
       sources."semver-6.3.0"
       sources."source-map-0.6.1"
@@ -86883,7 +88170,7 @@ in
       sources."through2-4.0.2"
       sources."trim-newlines-3.0.1"
       sources."type-fest-0.18.1"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."util-deprecate-1.0.2"
       sources."uuid-3.4.0"
       sources."validate-npm-package-license-3.0.4"
@@ -87287,7 +88574,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -87380,11 +88667,11 @@ in
       sources."read-package-json-4.1.2"
       sources."read-package-json-fast-2.0.3"
       sources."readable-stream-2.3.7"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."request-2.88.2"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-4.0.0"
       sources."responselike-1.0.2"
       (sources."restore-cursor-2.0.0" // {
@@ -87446,7 +88733,7 @@ in
       sources."strip-json-comments-2.0.1"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."systeminformation-5.11.16"
+      sources."systeminformation-5.11.21"
       sources."tar-6.1.11"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
@@ -87575,7 +88862,7 @@ in
       sources."find-up-5.0.0"
       sources."function-bind-1.1.1"
       sources."glob-parent-5.1.2"
-      sources."globby-13.1.1"
+      sources."globby-13.1.2"
       sources."graceful-fs-4.2.10"
       sources."hard-rejection-2.1.0"
       sources."has-1.0.3"
@@ -87618,7 +88905,7 @@ in
       sources."p-finally-1.0.0"
       sources."p-limit-3.1.0"
       sources."p-locate-5.0.0"
-      sources."p-map-5.4.0"
+      sources."p-map-5.5.0"
       sources."p-timeout-3.2.0"
       sources."parse-json-5.2.0"
       sources."path-exists-4.0.0"
@@ -87676,7 +88963,7 @@ in
       sources."@cycle/run-3.4.0"
       sources."@cycle/time-0.10.1"
       sources."@types/cookiejar-2.1.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/superagent-3.8.2"
       sources."ansi-escapes-3.2.0"
       sources."ansi-regex-2.1.1"
@@ -87941,10 +89228,10 @@ in
   cspell = nodeEnv.buildNodePackage {
     name = "cspell";
     packageName = "cspell";
-    version = "6.1.1";
+    version = "6.1.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/cspell/-/cspell-6.1.1.tgz";
-      sha512 = "0A2+XrcQAY9wqjzvIpw25J1LDY8mkSUMjcs0dDaeZMGQCuZ2HRTI96B3uSsJaH3X7rIOk5wflk3qPOsd3Jr0aQ==";
+      url = "https://registry.npmjs.org/cspell/-/cspell-6.1.2.tgz";
+      sha512 = "w4lGfzNl3m1dfagyZvr28V1nK/E+y8zoKVlE158JI/iVNGO/R2okrcNB1s+9xXSmYjJ8Xx6dhupO0XxKuagDSQ==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -87959,9 +89246,9 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@cspell/cspell-bundled-dicts-6.1.1"
-      sources."@cspell/cspell-pipe-6.1.1"
-      sources."@cspell/cspell-types-6.1.1"
+      sources."@cspell/cspell-bundled-dicts-6.1.2"
+      sources."@cspell/cspell-pipe-6.1.2"
+      sources."@cspell/cspell-types-6.1.2"
       sources."@cspell/dict-ada-2.0.0"
       sources."@cspell/dict-aws-2.0.0"
       sources."@cspell/dict-bash-2.0.3"
@@ -87972,21 +89259,21 @@ in
       sources."@cspell/dict-css-2.0.0"
       sources."@cspell/dict-dart-1.1.1"
       sources."@cspell/dict-django-2.0.0"
-      sources."@cspell/dict-docker-1.1.0"
+      sources."@cspell/dict-docker-1.1.1"
       sources."@cspell/dict-dotnet-2.0.1"
       sources."@cspell/dict-elixir-2.0.1"
       sources."@cspell/dict-en-gb-1.1.33"
-      sources."@cspell/dict-en_us-2.2.5"
-      sources."@cspell/dict-filetypes-2.0.1"
+      sources."@cspell/dict-en_us-2.2.6"
+      sources."@cspell/dict-filetypes-2.0.2"
       sources."@cspell/dict-fonts-2.0.0"
       sources."@cspell/dict-fullstack-2.0.6"
       sources."@cspell/dict-git-1.0.1"
       sources."@cspell/dict-golang-3.0.1"
       sources."@cspell/dict-haskell-2.0.0"
-      sources."@cspell/dict-html-3.0.1"
+      sources."@cspell/dict-html-3.0.2"
       sources."@cspell/dict-html-symbol-entities-3.0.0"
-      sources."@cspell/dict-java-3.0.2"
-      sources."@cspell/dict-latex-2.0.5"
+      sources."@cspell/dict-java-3.0.3"
+      sources."@cspell/dict-latex-2.0.6"
       sources."@cspell/dict-lorem-ipsum-2.0.0"
       sources."@cspell/dict-lua-2.0.0"
       sources."@cspell/dict-node-3.0.1"
@@ -87997,7 +89284,7 @@ in
       sources."@cspell/dict-python-3.0.6"
       sources."@cspell/dict-r-1.0.3"
       sources."@cspell/dict-ruby-2.0.1"
-      sources."@cspell/dict-rust-2.0.0"
+      sources."@cspell/dict-rust-2.0.1"
       sources."@cspell/dict-scala-2.0.0"
       sources."@cspell/dict-software-terms-2.1.8"
       sources."@cspell/dict-swift-1.0.3"
@@ -88022,16 +89309,16 @@ in
       sources."core-util-is-1.0.3"
       sources."cosmiconfig-7.0.1"
       sources."crypto-random-string-2.0.0"
-      sources."cspell-gitignore-6.1.1"
-      sources."cspell-glob-6.1.1"
-      sources."cspell-io-6.1.1"
-      sources."cspell-lib-6.1.1"
-      sources."cspell-trie-lib-6.1.1"
+      sources."cspell-gitignore-6.1.2"
+      sources."cspell-glob-6.1.2"
+      sources."cspell-io-6.1.2"
+      sources."cspell-lib-6.1.2"
+      sources."cspell-trie-lib-6.1.2"
       sources."dot-prop-5.3.0"
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
-      sources."fast-equals-3.0.3"
+      sources."fast-equals-4.0.1"
       sources."fast-json-stable-stringify-2.1.0"
       sources."file-entry-cache-6.0.1"
       sources."fill-range-7.0.1"
@@ -88317,7 +89604,7 @@ in
       })
       sources."diffy-2.1.0"
       sources."directory-index-html-2.1.0"
-      sources."dns-packet-5.3.1"
+      sources."dns-packet-5.4.0"
       sources."dom-walk-0.1.2"
       sources."dot-prop-4.2.1"
       sources."duplexer3-0.1.4"
@@ -88792,8 +90079,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      sources."@babel/core-7.18.2"
+      sources."@babel/compat-data-7.18.5"
+      sources."@babel/core-7.18.5"
       (sources."@babel/generator-7.18.2" // {
         dependencies = [
           sources."@jridgewell/gen-mapping-0.3.1"
@@ -88824,7 +90111,7 @@ in
       sources."@babel/helper-wrap-function-7.16.8"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.17.12"
@@ -88874,10 +90161,10 @@ in
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.18.0"
       sources."@babel/plugin-transform-modules-commonjs-7.18.2"
-      sources."@babel/plugin-transform-modules-systemjs-7.18.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.18.5"
       sources."@babel/plugin-transform-modules-umd-7.18.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.17.12"
-      sources."@babel/plugin-transform-new-target-7.17.12"
+      sources."@babel/plugin-transform-new-target-7.18.5"
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-property-literals-7.16.7"
@@ -88899,10 +90186,10 @@ in
       sources."@babel/preset-react-7.17.12"
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@blueprintjs/colors-4.1.3"
-      sources."@blueprintjs/core-4.4.1"
+      sources."@blueprintjs/core-4.5.1"
       sources."@blueprintjs/icons-4.3.0"
       sources."@deltachat/message_parser_wasm-0.4.0"
       sources."@deltachat/react-qr-reader-4.0.0"
@@ -88939,7 +90226,7 @@ in
       sources."@types/node-14.18.21"
       sources."@types/prop-types-15.7.5"
       sources."@types/rc-1.2.1"
-      sources."@types/react-17.0.45"
+      sources."@types/react-17.0.47"
       sources."@types/react-dom-17.0.17"
       sources."@types/react-window-1.8.5"
       sources."@types/react-window-infinite-loader-1.0.6"
@@ -88992,7 +90279,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camel-case-4.1.2"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."capital-case-1.0.4"
       sources."chalk-2.4.2"
       sources."change-case-4.1.2"
@@ -89025,7 +90312,7 @@ in
       sources."constant-case-3.0.4"
       sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
-      (sources."core-js-compat-3.22.8" // {
+      (sources."core-js-compat-3.23.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -89049,12 +90336,12 @@ in
       sources."dot-case-3.0.4"
       sources."duplexer3-0.1.4"
       sources."earcut-2.2.3"
-      (sources."electron-18.3.3" // {
+      (sources."electron-18.3.4" // {
         dependencies = [
-          sources."@types/node-16.11.39"
+          sources."@types/node-16.11.41"
         ];
       })
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-js-clean-4.0.0"
       sources."emoji-mart-3.0.1"
       sources."emoji-regex-9.2.2"
@@ -89319,7 +90606,7 @@ in
       sources."repeat-element-1.1.4"
       sources."repeat-string-1.6.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-protobuf-schema-2.1.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -89436,7 +90723,7 @@ in
       sources."type-fest-0.13.1"
       sources."typed-styles-0.0.7"
       sources."typedarray-0.0.6"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."unicode-canonical-property-names-ecmascript-2.0.0"
       sources."unicode-match-property-ecmascript-2.0.0"
       sources."unicode-match-property-value-ecmascript-2.0.0"
@@ -89764,30 +91051,30 @@ in
   "@electron-forge/cli" = nodeEnv.buildNodePackage {
     name = "_at_electron-forge_slash_cli";
     packageName = "@electron-forge/cli";
-    version = "6.0.0-beta.63";
+    version = "6.0.0-beta.64";
     src = fetchurl {
-      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.63.tgz";
-      sha512 = "I2B/hX16IDbuc2ip6JjAxrTF8XSQfuoIkb/EoqzEluPrdCx6VTzEahOQlUH+CvPohpwD/LDsH4Usd9/krKlkfg==";
+      url = "https://registry.npmjs.org/@electron-forge/cli/-/cli-6.0.0-beta.64.tgz";
+      sha512 = "EvI2Ie2ywj5lKZC3CttwRbraLBq84Gh2iwkrge5Q/T4wqvundTT1CyxNLUuSx+lsw3kE8Atmwefl5G6rf+E7Mg==";
     };
     dependencies = [
-      sources."@electron-forge/async-ora-6.0.0-beta.63"
-      sources."@electron-forge/core-6.0.0-beta.63"
-      sources."@electron-forge/installer-base-6.0.0-beta.63"
-      sources."@electron-forge/installer-darwin-6.0.0-beta.63"
-      sources."@electron-forge/installer-deb-6.0.0-beta.63"
-      sources."@electron-forge/installer-dmg-6.0.0-beta.63"
-      sources."@electron-forge/installer-exe-6.0.0-beta.63"
-      sources."@electron-forge/installer-linux-6.0.0-beta.63"
-      sources."@electron-forge/installer-rpm-6.0.0-beta.63"
-      sources."@electron-forge/installer-zip-6.0.0-beta.63"
-      sources."@electron-forge/maker-base-6.0.0-beta.63"
-      sources."@electron-forge/plugin-base-6.0.0-beta.63"
-      sources."@electron-forge/publisher-base-6.0.0-beta.63"
-      sources."@electron-forge/shared-types-6.0.0-beta.63"
-      sources."@electron-forge/template-base-6.0.0-beta.63"
-      sources."@electron-forge/template-typescript-6.0.0-beta.63"
-      sources."@electron-forge/template-typescript-webpack-6.0.0-beta.63"
-      sources."@electron-forge/template-webpack-6.0.0-beta.63"
+      sources."@electron-forge/async-ora-6.0.0-beta.64"
+      sources."@electron-forge/core-6.0.0-beta.64"
+      sources."@electron-forge/installer-base-6.0.0-beta.64"
+      sources."@electron-forge/installer-darwin-6.0.0-beta.64"
+      sources."@electron-forge/installer-deb-6.0.0-beta.64"
+      sources."@electron-forge/installer-dmg-6.0.0-beta.64"
+      sources."@electron-forge/installer-exe-6.0.0-beta.64"
+      sources."@electron-forge/installer-linux-6.0.0-beta.64"
+      sources."@electron-forge/installer-rpm-6.0.0-beta.64"
+      sources."@electron-forge/installer-zip-6.0.0-beta.64"
+      sources."@electron-forge/maker-base-6.0.0-beta.64"
+      sources."@electron-forge/plugin-base-6.0.0-beta.64"
+      sources."@electron-forge/publisher-base-6.0.0-beta.64"
+      sources."@electron-forge/shared-types-6.0.0-beta.64"
+      sources."@electron-forge/template-base-6.0.0-beta.64"
+      sources."@electron-forge/template-typescript-6.0.0-beta.64"
+      sources."@electron-forge/template-typescript-webpack-6.0.0-beta.64"
+      sources."@electron-forge/template-webpack-6.0.0-beta.64"
       (sources."@electron/get-1.14.1" // {
         dependencies = [
           sources."@sindresorhus/is-0.14.0"
@@ -89836,7 +91123,7 @@ in
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."@types/yauzl-2.10.0"
       sources."abbrev-1.1.1"
@@ -90132,7 +91419,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -90237,7 +91524,7 @@ in
       sources."readable-stream-3.6.0"
       sources."request-2.88.2"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-alpn-1.2.1"
       sources."resolve-dir-1.0.1"
       sources."resolve-package-1.0.1"
@@ -90393,8 +91680,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -90422,7 +91709,7 @@ in
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-proposal-object-rest-spread-7.18.0"
       sources."@babel/plugin-syntax-jsx-7.17.12"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -90430,7 +91717,7 @@ in
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-react-jsx-7.17.12"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -90461,7 +91748,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."chalk-2.4.2"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
@@ -90490,7 +91777,7 @@ in
         ];
       })
       sources."dot-prop-5.3.0"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."emojilib-2.4.0"
       sources."end-of-stream-1.4.4"
@@ -90633,7 +91920,7 @@ in
         ];
       })
       sources."redent-3.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-3.0.0"
       sources."restore-cursor-3.1.0"
       sources."rimraf-3.0.2"
@@ -90759,9 +92046,9 @@ in
       sources."@fluentui/foundation-legacy-8.2.8"
       sources."@fluentui/keyboard-key-0.4.1"
       sources."@fluentui/merge-styles-8.5.2"
-      sources."@fluentui/react-8.72.2"
-      sources."@fluentui/react-focus-8.6.1"
-      sources."@fluentui/react-hooks-8.5.5"
+      sources."@fluentui/react-8.76.1"
+      sources."@fluentui/react-focus-8.7.0"
+      sources."@fluentui/react-hooks-8.6.0"
       sources."@fluentui/react-portal-compat-context-9.0.0-rc.2"
       sources."@fluentui/react-window-provider-2.2.1"
       sources."@fluentui/set-version-8.2.1"
@@ -90789,7 +92076,7 @@ in
         ];
       })
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@microsoft/load-themed-styles-1.10.268"
+      sources."@microsoft/load-themed-styles-1.10.270"
       sources."@node-rs/crc32-1.5.1"
       sources."@node-rs/crc32-android-arm-eabi-1.5.1"
       sources."@node-rs/crc32-android-arm64-1.5.1"
@@ -90811,17 +92098,17 @@ in
       sources."@sqltools/formatter-1.2.3"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@tokenizer/token-0.3.0"
-      sources."@tsconfig/node10-1.0.8"
-      sources."@tsconfig/node12-1.0.9"
-      sources."@tsconfig/node14-1.0.1"
-      sources."@tsconfig/node16-1.0.2"
+      sources."@tsconfig/node10-1.0.9"
+      sources."@tsconfig/node12-1.0.11"
+      sources."@tsconfig/node14-1.0.3"
+      sources."@tsconfig/node16-1.0.3"
       sources."@types/body-parser-1.19.1"
       sources."@types/component-emitter-1.2.11"
       sources."@types/connect-3.4.35"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/file-type-10.9.1"
       sources."@types/js-yaml-4.0.4"
       sources."@types/json-schema-7.0.11"
@@ -91960,7 +93247,7 @@ in
       sources."reflect-metadata-0.1.13"
       sources."regex-not-1.0.2"
       sources."regexpp-3.2.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."remove-bom-buffer-3.0.0"
       sources."remove-bom-stream-1.2.0"
@@ -91977,7 +93264,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-from-string-2.0.2"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-dir-1.0.1"
       sources."resolve-from-4.0.0"
       sources."resolve-options-1.1.0"
@@ -92377,7 +93664,7 @@ in
       sources."@types/connect-3.4.35"
       sources."@types/connect-history-api-fallback-1.3.5"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/glob-7.2.0"
       sources."@types/hls.js-0.13.3"
       sources."@types/http-proxy-1.17.9"
@@ -92387,7 +93674,7 @@ in
       sources."@types/mime-1.3.2"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
@@ -92398,7 +93685,7 @@ in
       sources."@types/socket.io-client-1.4.36"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.8"
-      (sources."@types/uglify-js-3.13.3" // {
+      (sources."@types/uglify-js-3.16.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -92422,7 +93709,7 @@ in
       sources."@typescript-eslint/types-4.33.0"
       sources."@typescript-eslint/typescript-estree-4.33.0"
       sources."@typescript-eslint/visitor-keys-4.33.0"
-      sources."@vue/cli-overlay-4.5.17"
+      sources."@vue/cli-overlay-4.5.18"
       (sources."@vue/cli-plugin-eslint-4.5.12" // {
         dependencies = [
           sources."@nodelib/fs.stat-1.1.3"
@@ -92458,7 +93745,7 @@ in
           sources."to-regex-range-2.1.1"
         ];
       })
-      sources."@vue/cli-plugin-router-4.5.17"
+      sources."@vue/cli-plugin-router-4.5.18"
       (sources."@vue/cli-plugin-typescript-4.5.13" // {
         dependencies = [
           sources."@nodelib/fs.stat-1.1.3"
@@ -92509,7 +93796,7 @@ in
           sources."universalify-0.1.2"
         ];
       })
-      (sources."@vue/cli-shared-utils-4.5.17" // {
+      (sources."@vue/cli-shared-utils-4.5.18" // {
         dependencies = [
           sources."lru-cache-5.1.1"
           sources."semver-6.3.0"
@@ -92703,7 +93990,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
@@ -92944,7 +94231,7 @@ in
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -93397,7 +94684,7 @@ in
       sources."md5.js-1.3.5"
       sources."mdn-data-2.0.4"
       sources."media-typer-0.3.0"
-      sources."memfs-3.4.4"
+      sources."memfs-3.4.6"
       sources."memory-fs-0.4.1"
       sources."merge-descriptors-1.0.1"
       (sources."merge-source-map-1.1.0" // {
@@ -93428,7 +94715,7 @@ in
       sources."minimalistic-crypto-utils-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."mississippi-3.0.0"
       (sources."mixin-deep-1.3.2" // {
         dependencies = [
@@ -93755,7 +95042,7 @@ in
       sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
       sources."resize-observer-polyfill-1.5.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -94312,10 +95599,10 @@ in
   eslint = nodeEnv.buildNodePackage {
     name = "eslint";
     packageName = "eslint";
-    version = "8.17.0";
+    version = "8.18.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/eslint/-/eslint-8.17.0.tgz";
-      sha512 = "gq0m0BTJfci60Fz4nczYxNAlED+sMcihltndR8t9t1evnU/azx53x3t2UHXC/uRjcbvRw/XctpaNygSTcQD+Iw==";
+      url = "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz";
+      sha512 = "As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==";
     };
     dependencies = [
       sources."@eslint/eslintrc-1.3.0"
@@ -94448,7 +95735,7 @@ in
       sources."deep-is-0.1.4"
       sources."doctrine-3.0.0"
       sources."escape-string-regexp-4.0.0"
-      sources."eslint-8.17.0"
+      sources."eslint-8.18.0"
       sources."eslint-scope-7.1.1"
       (sources."eslint-utils-3.0.0" // {
         dependencies = [
@@ -94544,10 +95831,10 @@ in
   expo-cli = nodeEnv.buildNodePackage {
     name = "expo-cli";
     packageName = "expo-cli";
-    version = "5.4.9";
+    version = "5.4.11";
     src = fetchurl {
-      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.4.9.tgz";
-      sha512 = "21NQaJLL7JQ8ZvFY/2/8xDt9R/5lfMbVoQXtfHt/Qx/sW3DCopUivm1i1M4zhiuNGdVW/wZZOH/f9oTWXHR/EQ==";
+      url = "https://registry.npmjs.org/expo-cli/-/expo-cli-5.4.11.tgz";
+      sha512 = "AWx0Zr3YYnnAQkVLxL98zBgj7CLyiTlKtiRMeexYkW0o4O85udfokF4FSCDFWf7YHrGg17PfNGKzlNya0Ths7w==";
     };
     dependencies = [
       sources."@babel/code-frame-7.10.4"
@@ -94572,14 +95859,14 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/runtime-7.9.0"
       (sources."@babel/template-7.16.7" // {
         dependencies = [
           sources."@babel/code-frame-7.16.7"
         ];
       })
-      (sources."@babel/traverse-7.18.2" // {
+      (sources."@babel/traverse-7.18.5" // {
         dependencies = [
           sources."@babel/code-frame-7.16.7"
         ];
@@ -94595,7 +95882,7 @@ in
       })
       sources."@expo/config-types-45.0.0"
       sources."@expo/dev-server-0.1.113"
-      sources."@expo/dev-tools-0.13.156"
+      sources."@expo/dev-tools-0.13.158"
       (sources."@expo/devcert-1.0.0" // {
         dependencies = [
           sources."debug-3.2.7"
@@ -94614,7 +95901,7 @@ in
       sources."@expo/json-file-8.2.36"
       sources."@expo/metro-config-0.3.18"
       sources."@expo/osascript-2.0.33"
-      (sources."@expo/package-manager-0.0.54" // {
+      (sources."@expo/package-manager-0.0.55" // {
         dependencies = [
           sources."npm-package-arg-7.0.0"
           sources."rimraf-3.0.2"
@@ -94628,7 +95915,7 @@ in
       })
       sources."@expo/prebuild-config-4.0.2"
       sources."@expo/rudder-sdk-node-1.1.1"
-      sources."@expo/schemer-1.4.1"
+      sources."@expo/schemer-1.4.2"
       sources."@expo/sdk-runtime-versions-1.0.0"
       sources."@expo/spawn-async-1.5.0"
       sources."@expo/webpack-config-0.16.24"
@@ -94680,7 +95967,7 @@ in
       sources."@types/retry-0.12.2"
       sources."@types/source-list-map-0.1.2"
       sources."@types/tapable-1.0.8"
-      (sources."@types/uglify-js-3.13.3" // {
+      (sources."@types/uglify-js-3.16.0" // {
         dependencies = [
           sources."source-map-0.6.1"
         ];
@@ -94721,7 +96008,11 @@ in
       sources."acorn-6.4.2"
       sources."address-1.1.2"
       sources."aggregate-error-3.1.0"
-      sources."ajv-5.5.2"
+      (sources."ajv-6.12.6" // {
+        dependencies = [
+          sources."json-schema-traverse-0.4.1"
+        ];
+      })
       sources."ajv-errors-1.0.1"
       sources."ajv-keywords-3.5.2"
       sources."alphanum-sort-1.0.2"
@@ -94772,9 +96063,6 @@ in
       sources."axios-0.21.1"
       (sources."babel-loader-8.1.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."loader-utils-1.4.0"
           sources."schema-utils-2.7.1"
         ];
@@ -94862,7 +96150,7 @@ in
       })
       sources."camelcase-6.3.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -94926,7 +96214,6 @@ in
       })
       sources."clone-1.0.4"
       sources."clone-response-1.0.2"
-      sources."co-4.6.0"
       (sources."coa-2.0.2" // {
         dependencies = [
           sources."chalk-2.4.2"
@@ -94976,11 +96263,8 @@ in
       sources."copy-descriptor-0.1.1"
       (sources."copy-webpack-plugin-6.0.4" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
           sources."find-cache-dir-3.3.2"
           sources."find-up-4.1.0"
-          sources."json-schema-traverse-0.4.1"
           sources."locate-path-5.0.0"
           sources."make-dir-3.1.0"
           (sources."p-locate-4.1.0" // {
@@ -95014,10 +96298,7 @@ in
       sources."css-declaration-sorter-4.0.1"
       (sources."css-loader-3.6.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
           sources."camelcase-5.3.1"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."loader-utils-1.4.0"
           sources."schema-utils-2.7.1"
           sources."semver-6.3.0"
@@ -95121,7 +96402,7 @@ in
       sources."duplexer3-0.1.4"
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -95225,7 +96506,7 @@ in
           sources."extend-shallow-2.0.1"
         ];
       })
-      sources."fast-deep-equal-1.1.0"
+      sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.11"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastq-1.13.0"
@@ -95234,9 +96515,6 @@ in
       sources."figgy-pudding-3.5.2"
       (sources."file-loader-6.0.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."schema-utils-2.7.1"
         ];
       })
@@ -95356,9 +96634,6 @@ in
       sources."html-entities-1.4.0"
       (sources."html-loader-1.1.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."schema-utils-2.7.1"
         ];
       })
@@ -95595,9 +96870,6 @@ in
       sources."mimic-response-1.0.1"
       (sources."mini-css-extract-plugin-0.5.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."loader-utils-1.4.0"
           sources."schema-utils-1.0.0"
         ];
@@ -96034,7 +97306,7 @@ in
         ];
       })
       sources."requires-port-1.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-alpn-1.2.1"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
@@ -96064,13 +97336,7 @@ in
       sources."safe-regex-1.1.0"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      (sources."schema-utils-3.1.1" // {
-        dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
-        ];
-      })
+      sources."schema-utils-3.1.1"
       sources."select-hose-2.0.0"
       sources."selfsigned-1.10.14"
       sources."semver-7.3.2"
@@ -96218,9 +97484,6 @@ in
       sources."strip-json-comments-2.0.1"
       (sources."style-loader-1.2.1" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
-          sources."json-schema-traverse-0.4.1"
           sources."schema-utils-2.7.1"
         ];
       })
@@ -96284,11 +97547,8 @@ in
       })
       (sources."terser-webpack-plugin-3.1.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
-          sources."fast-deep-equal-3.1.3"
           sources."find-cache-dir-3.3.2"
           sources."find-up-4.1.0"
-          sources."json-schema-traverse-0.4.1"
           sources."locate-path-5.0.0"
           sources."make-dir-3.1.0"
           (sources."p-locate-4.1.0" // {
@@ -96415,16 +97675,13 @@ in
       sources."webidl-conversions-3.0.1"
       (sources."webpack-4.43.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
           sources."braces-2.3.2"
           sources."cacache-12.0.4"
           sources."chownr-1.1.4"
           sources."extend-shallow-2.0.1"
-          sources."fast-deep-equal-3.1.3"
           sources."fill-range-4.0.0"
           sources."is-number-3.0.0"
           sources."is-wsl-1.1.0"
-          sources."json-schema-traverse-0.4.1"
           sources."kind-of-3.2.2"
           sources."loader-utils-1.4.0"
           sources."lru-cache-5.1.1"
@@ -96445,7 +97702,6 @@ in
       })
       (sources."webpack-dev-server-3.11.0" // {
         dependencies = [
-          sources."ajv-6.12.6"
           sources."ansi-regex-2.1.1"
           sources."anymatch-2.0.0"
           sources."array-union-1.0.2"
@@ -96469,7 +97725,6 @@ in
             ];
           })
           sources."extend-shallow-2.0.1"
-          sources."fast-deep-equal-3.1.3"
           sources."fill-range-4.0.0"
           (sources."finalhandler-1.2.0" // {
             dependencies = [
@@ -96484,7 +97739,6 @@ in
           sources."is-binary-path-1.0.1"
           sources."is-glob-3.1.0"
           sources."is-number-3.0.0"
-          sources."json-schema-traverse-0.4.1"
           sources."kind-of-3.2.2"
           sources."micromatch-3.1.10"
           sources."mime-1.6.0"
@@ -96563,7 +97817,7 @@ in
           sources."uuid-7.0.3"
         ];
       })
-      (sources."xdl-59.2.40" // {
+      (sources."xdl-59.2.41" // {
         dependencies = [
           sources."bplist-parser-0.3.2"
           sources."minimatch-3.0.4"
@@ -96623,8 +97877,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      sources."@babel/core-7.18.2"
+      sources."@babel/compat-data-7.18.5"
+      sources."@babel/core-7.18.5"
       (sources."@babel/generator-7.18.2" // {
         dependencies = [
           sources."@jridgewell/gen-mapping-0.3.1"
@@ -96644,7 +97898,7 @@ in
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-proposal-object-rest-spread-7.18.0"
       sources."@babel/plugin-syntax-jsx-7.17.12"
       sources."@babel/plugin-syntax-object-rest-spread-7.8.3"
@@ -96652,7 +97906,7 @@ in
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-react-jsx-7.17.12"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -96660,7 +97914,7 @@ in
       sources."@jridgewell/sourcemap-codec-1.4.13"
       sources."@jridgewell/trace-mapping-0.3.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/yauzl-2.10.0"
       sources."@types/yoga-layout-1.9.2"
@@ -96687,7 +97941,7 @@ in
       sources."callsites-3.1.0"
       sources."camelcase-5.3.1"
       sources."camelcase-keys-6.2.2"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."chalk-2.4.2"
       sources."chownr-1.1.4"
       sources."ci-info-2.0.0"
@@ -96712,7 +97966,7 @@ in
       })
       sources."delay-5.0.0"
       sources."devtools-protocol-0.0.981744"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."error-ex-1.3.2"
@@ -96826,7 +98080,7 @@ in
       })
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-3.0.0"
       sources."restore-cursor-3.1.0"
       sources."rimraf-3.0.2"
@@ -97039,7 +98293,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."csv-parse-5.1.0"
+      sources."csv-parse-5.2.0"
       sources."csv-stream-0.2.0"
       sources."dashdash-1.14.1"
       sources."debug-4.3.4"
@@ -97069,7 +98323,7 @@ in
       sources."fast-json-stable-stringify-2.1.0"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.13.0"
-      sources."faunadb-4.5.4"
+      sources."faunadb-4.6.0"
       (sources."figures-3.2.0" // {
         dependencies = [
           sources."escape-string-regexp-1.0.5"
@@ -97193,7 +98447,7 @@ in
       sources."pify-3.0.0"
       sources."prelude-ls-1.1.2"
       sources."prepend-http-2.0.0"
-      sources."prettier-2.6.2"
+      sources."prettier-2.7.1"
       sources."process-nextick-args-2.0.1"
       sources."psl-1.8.0"
       sources."punycode-2.1.1"
@@ -97289,10 +98543,10 @@ in
   firebase-tools = nodeEnv.buildNodePackage {
     name = "firebase-tools";
     packageName = "firebase-tools";
-    version = "11.0.1";
+    version = "11.1.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-11.0.1.tgz";
-      sha512 = "be5Xx2FbdW0G2YMpxsIcNaFuekeiRgFRPScVbXhnfHLIOUJ/ETYCNrQEndzhprVlawl6l6EW9H18DRx61I5RKQ==";
+      url = "https://registry.npmjs.org/firebase-tools/-/firebase-tools-11.1.0.tgz";
+      sha512 = "6nBFOiuxsKl8AbPnsiBck7HT682cHzMuoRrXzajuNWjwTYvh4oW25BF/iLGP7MAGzI4Xuo2NDXwjDLg6HIR78Q==";
     };
     dependencies = [
       (sources."@apidevtools/json-schema-ref-parser-9.0.9" // {
@@ -97303,20 +98557,24 @@ in
       sources."@colors/colors-1.5.0"
       sources."@dabh/diagnostics-2.0.3"
       sources."@gar/promisify-1.1.3"
-      sources."@google-cloud/paginator-3.0.7"
+      sources."@google-cloud/paginator-4.0.0"
       sources."@google-cloud/precise-date-2.0.4"
       sources."@google-cloud/projectify-2.1.1"
       sources."@google-cloud/promisify-2.0.4"
-      sources."@google-cloud/pubsub-2.19.4"
+      (sources."@google-cloud/pubsub-3.0.1" // {
+        dependencies = [
+          sources."google-auth-library-8.0.2"
+        ];
+      })
       sources."@grpc/grpc-js-1.6.7"
-      sources."@grpc/proto-loader-0.6.9"
+      sources."@grpc/proto-loader-0.6.13"
       sources."@jsdevtools/ono-7.1.3"
-      (sources."@npmcli/fs-1.1.1" // {
+      (sources."@npmcli/fs-2.1.0" // {
         dependencies = [
           sources."semver-7.3.7"
         ];
       })
-      (sources."@npmcli/move-file-1.1.2" // {
+      (sources."@npmcli/move-file-2.0.0" // {
         dependencies = [
           sources."mkdirp-1.0.4"
         ];
@@ -97339,7 +98597,7 @@ in
       sources."@types/duplexify-3.6.1"
       sources."@types/json-schema-7.0.11"
       sources."@types/long-4.0.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."abbrev-1.1.1"
       sources."abort-controller-3.0.0"
       sources."accepts-1.3.8"
@@ -97400,7 +98658,6 @@ in
       sources."binary-0.3.0"
       sources."binary-extensions-2.2.0"
       sources."bl-4.1.0"
-      sources."blakejs-1.2.1"
       sources."bluebird-3.4.7"
       (sources."body-parser-1.20.0" // {
         dependencies = [
@@ -97422,8 +98679,12 @@ in
       sources."buffer-indexof-polyfill-1.0.2"
       sources."buffers-0.1.1"
       sources."bytes-3.1.2"
-      (sources."cacache-15.3.0" // {
+      (sources."cacache-16.1.1" // {
         dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."glob-8.0.3"
+          sources."lru-cache-7.10.1"
+          sources."minimatch-5.1.0"
           sources."mkdirp-1.0.4"
         ];
       })
@@ -97515,7 +98776,7 @@ in
         ];
       })
       sources."crypto-random-string-2.0.0"
-      sources."csv-parse-5.1.0"
+      sources."csv-parse-5.2.0"
       sources."d-1.0.1"
       sources."dashdash-1.14.1"
       sources."data-uri-to-buffer-3.0.1"
@@ -97579,7 +98840,6 @@ in
         ];
       })
       sources."exegesis-express-4.0.0"
-      sources."exit-code-1.0.2"
       (sources."express-4.18.1" // {
         dependencies = [
           sources."debug-2.6.9"
@@ -97625,7 +98885,7 @@ in
       })
       sources."fn.name-1.1.0"
       sources."forever-agent-0.6.1"
-      sources."form-data-2.3.3"
+      sources."form-data-4.0.0"
       sources."forwarded-0.2.0"
       sources."fresh-0.5.2"
       sources."fs-constants-1.0.0"
@@ -97647,8 +98907,8 @@ in
       })
       sources."function-bind-1.1.1"
       sources."gauge-4.0.4"
-      sources."gaxios-4.3.3"
-      sources."gcp-metadata-4.3.1"
+      sources."gaxios-5.0.0"
+      sources."gcp-metadata-5.0.0"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.2"
       sources."get-stream-4.1.0"
@@ -97665,12 +98925,25 @@ in
       sources."glob-slash-1.0.0"
       sources."glob-slasher-1.0.1"
       sources."global-dirs-2.1.0"
-      sources."google-auth-library-7.14.1"
-      sources."google-gax-2.30.3"
+      (sources."google-auth-library-7.14.1" // {
+        dependencies = [
+          sources."gaxios-4.3.3"
+          sources."gcp-metadata-4.3.1"
+        ];
+      })
+      (sources."google-gax-3.1.1" // {
+        dependencies = [
+          sources."google-auth-library-8.0.2"
+        ];
+      })
       sources."google-p12-pem-3.1.4"
       sources."got-9.6.0"
       sources."graceful-fs-4.2.10"
-      sources."gtoken-5.3.2"
+      (sources."gtoken-5.3.2" // {
+        dependencies = [
+          sources."gaxios-4.3.3"
+        ];
+      })
       sources."har-schema-2.0.0"
       sources."har-validator-5.1.5"
       sources."has-1.0.3"
@@ -97699,7 +98972,7 @@ in
       sources."inherits-2.0.4"
       sources."ini-1.3.7"
       sources."inquirer-8.2.4"
-      sources."install-artifact-from-github-1.3.0"
+      sources."install-artifact-from-github-1.3.1"
       sources."ip-1.1.8"
       sources."ip-regex-4.3.0"
       sources."ipaddr.js-1.9.1"
@@ -97766,6 +99039,8 @@ in
       })
       sources."leven-3.1.0"
       sources."levn-0.3.0"
+      sources."libsodium-0.7.10"
+      sources."libsodium-wrappers-0.7.10"
       sources."listenercount-1.0.1"
       sources."lodash-4.17.21"
       sources."lodash._objecttypes-2.4.1"
@@ -97794,12 +99069,15 @@ in
           sources."semver-6.3.0"
         ];
       })
-      (sources."make-fetch-happen-9.1.0" // {
+      (sources."make-fetch-happen-10.1.7" // {
         dependencies = [
-          sources."socks-proxy-agent-6.2.1"
+          sources."@tootallnate/once-2.0.0"
+          sources."http-proxy-agent-5.0.0"
+          sources."lru-cache-7.10.1"
+          sources."socks-proxy-agent-7.0.0"
         ];
       })
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       (sources."marked-terminal-5.1.1" // {
         dependencies = [
           sources."ansi-escapes-5.0.0"
@@ -97818,9 +99096,9 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
-      sources."minipass-fetch-1.4.1"
+      sources."minipass-fetch-2.1.0"
       sources."minipass-flush-1.0.5"
       sources."minipass-pipeline-1.2.4"
       sources."minipass-sized-1.0.3"
@@ -97843,7 +99121,7 @@ in
       sources."node-emoji-1.11.0"
       sources."node-fetch-2.6.7"
       sources."node-forge-1.3.1"
-      (sources."node-gyp-8.4.1" // {
+      (sources."node-gyp-9.0.0" // {
         dependencies = [
           sources."semver-7.3.7"
           sources."which-2.0.2"
@@ -97900,8 +99178,8 @@ in
           sources."retry-0.12.0"
         ];
       })
-      sources."proto3-json-serializer-0.1.9"
-      sources."protobufjs-6.11.2"
+      sources."proto3-json-serializer-1.0.2"
+      sources."protobufjs-6.11.3"
       sources."proxy-addr-2.0.7"
       (sources."proxy-agent-5.0.0" // {
         dependencies = [
@@ -97918,15 +99196,16 @@ in
       sources."range-parser-1.2.1"
       sources."raw-body-2.5.1"
       sources."rc-1.2.8"
-      sources."re2-1.17.4"
+      sources."re2-1.17.7"
       sources."readable-stream-3.6.0"
       sources."readdir-glob-1.1.1"
       sources."readdirp-3.6.0"
       sources."redeyed-2.1.1"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
+          sources."form-data-2.3.3"
           sources."qs-6.5.3"
           sources."uuid-3.4.0"
         ];
@@ -97936,7 +99215,7 @@ in
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."retry-0.13.1"
-      sources."retry-request-4.2.2"
+      sources."retry-request-5.0.1"
       sources."rimraf-3.0.2"
       (sources."router-1.3.7" // {
         dependencies = [
@@ -97982,7 +99261,7 @@ in
       sources."source-map-0.6.1"
       sources."sprintf-js-1.0.3"
       sources."sshpk-1.17.0"
-      sources."ssri-8.0.1"
+      sources."ssri-9.0.1"
       sources."stack-trace-0.0.10"
       sources."statuses-2.0.1"
       sources."stream-chain-2.2.5"
@@ -98046,11 +99325,6 @@ in
       sources."tslib-2.4.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      (sources."tweetsodium-0.0.5" // {
-        dependencies = [
-          sources."tweetnacl-1.0.3"
-        ];
-      })
       sources."type-1.2.0"
       sources."type-check-0.3.2"
       sources."type-fest-0.21.3"
@@ -98410,7 +99684,7 @@ in
       sources."@types/atob-2.1.2"
       sources."@types/bn.js-5.1.0"
       sources."@types/inquirer-6.5.0"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/pbkdf2-3.1.0"
       sources."@types/secp256k1-4.0.3"
       sources."@types/through-0.0.30"
@@ -99131,38 +100405,14 @@ in
   ganache = nodeEnv.buildNodePackage {
     name = "ganache";
     packageName = "ganache";
-    version = "7.2.0";
+    version = "7.3.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/ganache/-/ganache-7.2.0.tgz";
-      sha512 = "KsKysVeVN6CALALOkIPSIxNZbl5s2/DE6Z0lFpj05gH1XsvYMit3djP4LxpxdjUfSSyb9gIPEOzqMw7v56ihJg==";
+      url = "https://registry.npmjs.org/ganache/-/ganache-7.3.1.tgz";
+      sha512 = "+IZPlCj1Tl019TIXgAAyDRLn0HDfx6Rg1TuiPPiNScVxRvz8EtQrlHc2yui8+oqjkZjYonW1Y5HvYSwifAQS6g==";
     };
     dependencies = [
-      sources."@trufflesuite/bigint-buffer-1.1.9"
-      sources."abstract-leveldown-7.2.0"
-      sources."base64-js-1.5.1"
-      sources."bn.js-4.12.0"
-      sources."brorand-1.1.0"
-      sources."buffer-6.0.3"
       sources."bufferutil-4.0.5"
-      sources."catering-2.1.1"
-      sources."elliptic-6.5.4"
-      sources."emittery-0.10.0"
-      sources."hash.js-1.1.7"
-      sources."hmac-drbg-1.0.1"
-      sources."ieee754-1.2.1"
-      sources."inherits-2.0.4"
-      sources."is-buffer-2.0.5"
-      sources."keccak-3.0.1"
-      sources."level-concat-iterator-3.1.0"
-      sources."level-supports-2.1.0"
-      sources."leveldown-6.1.0"
-      sources."minimalistic-assert-1.0.1"
-      sources."minimalistic-crypto-utils-1.0.1"
-      sources."napi-macros-2.0.0"
-      sources."node-addon-api-2.0.2"
-      sources."node-gyp-build-4.3.0"
-      sources."queue-microtask-1.2.3"
-      sources."secp256k1-4.0.2"
+      sources."node-gyp-build-4.4.0"
       sources."utf-8-validate-5.0.7"
     ];
     buildInputs = globalBuildInputs;
@@ -99186,8 +100436,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -99223,13 +100473,13 @@ in
           sources."chalk-2.4.2"
         ];
       })
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-syntax-typescript-7.17.12"
       sources."@babel/plugin-transform-typescript-7.18.4"
       sources."@babel/preset-typescript-7.17.12"
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@hapi/hoek-9.3.0"
       sources."@hapi/topo-5.1.0"
@@ -99257,8 +100507,8 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
-      sources."@types/node-fetch-2.6.1"
+      sources."@types/node-18.0.0"
+      sources."@types/node-fetch-2.6.2"
       sources."@types/responselike-1.0.0"
       sources."@types/yoga-layout-1.9.2"
       sources."ansi-align-3.0.1"
@@ -99286,7 +100536,7 @@ in
       })
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -99351,7 +100601,7 @@ in
       sources."domutils-2.8.0"
       sources."dot-prop-5.3.0"
       sources."duplexer3-0.1.4"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
       sources."entities-2.2.0"
@@ -99559,7 +100809,7 @@ in
       sources."readable-web-to-node-stream-3.0.2"
       sources."redux-4.1.2"
       sources."regenerator-runtime-0.13.9"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."renderkid-2.0.7" // {
         dependencies = [
@@ -99695,14 +100945,14 @@ in
       sources."@octokit/core-3.6.0"
       sources."@octokit/endpoint-6.0.12"
       sources."@octokit/graphql-4.8.0"
-      sources."@octokit/openapi-types-11.2.0"
-      sources."@octokit/plugin-paginate-rest-2.17.0"
+      sources."@octokit/openapi-types-12.1.0"
+      sources."@octokit/plugin-paginate-rest-2.18.0"
       sources."@octokit/plugin-request-log-1.0.4"
-      sources."@octokit/plugin-rest-endpoint-methods-5.13.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.14.0"
       sources."@octokit/request-5.6.3"
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
-      sources."@octokit/types-6.34.0"
+      sources."@octokit/types-6.35.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."ansi-regex-2.1.1"
       sources."ansi-styles-4.3.0"
@@ -99785,7 +101035,7 @@ in
       sources."read-pkg-up-7.0.1"
       sources."rechoir-0.6.2"
       sources."request-light-0.5.8"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."run-async-2.4.1"
       sources."sanitize-filename-1.6.3"
       sources."semver-7.3.7"
@@ -100082,7 +101332,7 @@ in
       sources."ssb-pull-requests-1.0.0"
       sources."ssb-ref-2.16.0"
       sources."ssb-typescript-2.8.0"
-      sources."ssb-uri2-1.8.1"
+      sources."ssb-uri2-1.9.0"
       (sources."stream-to-pull-stream-1.7.3" // {
         dependencies = [
           sources."looper-3.0.0"
@@ -100142,7 +101392,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-4.3.0"
@@ -100520,10 +101770,10 @@ in
       })
       sources."readable-stream-3.6.0"
       sources."redent-3.0.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-3.1.0"
       sources."run-async-2.4.1"
@@ -100919,7 +102169,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-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/websocket-1.0.2"
       sources."abort-controller-3.0.0"
@@ -101196,7 +102446,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -101281,7 +102531,7 @@ in
       sources."rc-1.2.8"
       sources."reftools-1.1.9"
       sources."regexp.prototype.flags-1.4.3"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."remove-trailing-separator-1.1.0"
       sources."request-2.88.2"
@@ -101391,16 +102641,16 @@ in
   graphql-language-service-cli = nodeEnv.buildNodePackage {
     name = "graphql-language-service-cli";
     packageName = "graphql-language-service-cli";
-    version = "3.2.26";
+    version = "3.2.28";
     src = fetchurl {
-      url = "https://registry.npmjs.org/graphql-language-service-cli/-/graphql-language-service-cli-3.2.26.tgz";
-      sha512 = "UIiI7YyoDL2e+u+tCDs596CN/d34fLpIonnECyJqGrbQBrif0vkN+2Ts6l2MAdvYH4ULCwE95rOawGWrt/pJ/Q==";
+      url = "https://registry.npmjs.org/graphql-language-service-cli/-/graphql-language-service-cli-3.2.28.tgz";
+      sha512 = "ofp4GwXdMR/0VhcpCfNPmL3vAx2NAMP0qVh7t5InUnpwcLp8qoPD5oOCLAAPp4Jd+CUYXkfOjtCtvtEmFS5Abg==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/polyfill-7.12.1"
       sources."@babel/types-7.18.4"
       sources."@endemolshinegroup/cosmiconfig-typescript-loader-3.0.2"
@@ -101412,7 +102662,7 @@ in
       sources."@graphql-tools/load-7.5.14"
       sources."@graphql-tools/merge-8.2.14"
       sources."@graphql-tools/schema-8.3.14"
-      sources."@graphql-tools/url-loader-7.9.24"
+      sources."@graphql-tools/url-loader-7.9.25"
       sources."@graphql-tools/utils-8.6.13"
       sources."@graphql-tools/wrap-8.4.20"
       sources."@iarna/toml-2.2.5"
@@ -101420,7 +102670,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/ws-8.5.3"
       sources."abort-controller-3.0.0"
@@ -101445,7 +102695,7 @@ in
       sources."cosmiconfig-7.0.1"
       sources."cosmiconfig-toml-loader-1.0.0"
       sources."create-require-1.1.1"
-      sources."cross-undici-fetch-0.4.5"
+      sources."cross-undici-fetch-0.4.7"
       sources."dataloader-2.1.0"
       sources."diff-4.0.2"
       sources."dir-glob-3.0.1"
@@ -101461,7 +102711,7 @@ in
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
       sources."form-data-encoder-1.7.2"
-      (sources."formdata-node-4.3.2" // {
+      (sources."formdata-node-4.3.3" // {
         dependencies = [
           sources."web-streams-polyfill-4.0.0-beta.1"
         ];
@@ -101477,9 +102727,9 @@ in
       sources."globby-11.1.0"
       sources."graphql-config-4.3.1"
       sources."graphql-executor-0.0.23"
-      sources."graphql-language-service-5.0.4"
-      sources."graphql-language-service-server-2.7.25"
-      sources."graphql-ws-5.8.2"
+      sources."graphql-language-service-5.0.6"
+      sources."graphql-language-service-server-2.7.27"
+      sources."graphql-ws-5.9.0"
       sources."has-flag-3.0.0"
       sources."ieee754-1.2.1"
       sources."ignore-5.2.0"
@@ -101538,7 +102788,7 @@ in
       sources."tr46-0.0.3"
       sources."ts-node-9.1.1"
       sources."tslib-2.4.0"
-      sources."undici-5.4.0"
+      sources."undici-5.5.1"
       sources."unixify-1.0.0"
       sources."value-or-promise-1.0.11"
       sources."vscode-jsonrpc-5.0.1"
@@ -101561,7 +102811,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.7.0"
+      sources."ws-8.8.0"
       sources."y18n-5.0.8"
       sources."yaml-1.10.2"
       sources."yargs-16.2.0"
@@ -101611,9 +102861,9 @@ in
       sources."@graphql-tools/load-7.5.14"
       sources."@graphql-tools/merge-8.2.14"
       sources."@graphql-tools/schema-8.3.14"
-      (sources."@graphql-tools/url-loader-7.9.24" // {
+      (sources."@graphql-tools/url-loader-7.9.25" // {
         dependencies = [
-          sources."ws-8.7.0"
+          sources."ws-8.8.0"
         ];
       })
       sources."@graphql-tools/utils-8.6.13"
@@ -101653,7 +102903,7 @@ in
       })
       sources."@oclif/screen-1.0.4"
       sources."@types/json-schema-7.0.9"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/ws-8.5.3"
       sources."abort-controller-3.0.0"
@@ -101720,7 +102970,7 @@ in
           sources."semver-5.7.1"
         ];
       })
-      sources."cross-undici-fetch-0.4.5"
+      sources."cross-undici-fetch-0.4.7"
       sources."cwise-compiler-1.1.3"
       sources."dataloader-2.1.0"
       sources."debug-4.3.4"
@@ -101757,7 +103007,7 @@ in
         ];
       })
       sources."form-data-encoder-1.7.2"
-      (sources."formdata-node-4.3.2" // {
+      (sources."formdata-node-4.3.3" // {
         dependencies = [
           sources."web-streams-polyfill-4.0.0-beta.1"
         ];
@@ -101779,7 +103029,7 @@ in
       sources."graphql-language-service-parser-1.10.4"
       sources."graphql-language-service-types-1.8.7"
       sources."graphql-language-service-utils-2.5.1"
-      sources."graphql-ws-5.8.2"
+      sources."graphql-ws-5.9.0"
       sources."has-flag-4.0.0"
       sources."http-errors-1.6.3"
       sources."hyperlinker-1.0.0"
@@ -101919,7 +103169,7 @@ in
       sources."ts-node-9.1.1"
       sources."tslib-2.4.0"
       sources."type-is-1.6.18"
-      sources."undici-5.4.0"
+      sources."undici-5.5.1"
       sources."uniq-1.0.1"
       sources."universalify-0.1.2"
       sources."unixify-1.0.0"
@@ -102011,7 +103261,7 @@ in
       sources."path-root-regex-0.1.2"
       sources."picomatch-2.3.1"
       sources."rechoir-0.7.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-dir-1.0.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."to-regex-range-5.0.1"
@@ -102219,7 +103469,7 @@ in
       sources."isarray-0.0.1"
       sources."lodash-4.17.21"
       sources."map-canvas-0.1.5"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       (sources."marked-terminal-5.1.1" // {
         dependencies = [
           sources."chalk-5.0.1"
@@ -102250,7 +103500,7 @@ in
           sources."supports-color-7.2.0"
         ];
       })
-      sources."systeminformation-5.11.16"
+      sources."systeminformation-5.11.21"
       sources."term-canvas-0.0.5"
       sources."type-fest-1.4.0"
       sources."wordwrap-0.0.3"
@@ -102603,7 +103853,7 @@ in
       sources."replace-homedir-1.0.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-dir-1.0.1"
       sources."resolve-options-1.1.0"
       sources."resolve-url-0.2.1"
@@ -103010,7 +104260,7 @@ in
       sources."replace-homedir-1.0.0"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-dir-1.0.1"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
@@ -103150,7 +104400,7 @@ in
       sources."param-case-2.1.1"
       sources."relateurl-0.2.7"
       sources."source-map-0.6.1"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."upper-case-1.1.3"
     ];
     buildInputs = globalBuildInputs;
@@ -103383,6 +104633,7 @@ in
       sha512 = "U195U0rkLkOuqeG02DRdl/yG2ulNkiMdQnrgAIy2nBn/QXCqyxjFXG1cnbHX7gPXA7d+Qv6kzWDn0K/yn/z+BQ==";
     };
     dependencies = [
+      sources."abort-controller-3.0.0"
       sources."argparse-1.0.10"
       sources."assert-plus-1.0.0"
       sources."autocast-0.0.4"
@@ -103396,6 +104647,7 @@ in
       sources."css-color-names-1.0.1"
       sources."dashdash-1.14.1"
       sources."deepmerge-3.3.0"
+      sources."event-target-shim-5.0.1"
       sources."extsprintf-1.4.1"
       sources."fs.realpath-1.0.0"
       sources."fuzzyset.js-0.0.1"
@@ -103410,12 +104662,9 @@ in
       sources."npm-2.15.12"
       sources."once-1.4.0"
       sources."path-is-absolute-1.0.1"
-      sources."readable-stream-3.6.0"
-      sources."safe-buffer-5.2.1"
+      sources."readable-stream-4.0.0"
       sources."sprintf-js-1.0.3"
-      sources."string_decoder-1.3.0"
       sources."tabula-1.10.0"
-      sources."util-deprecate-1.0.2"
       sources."verror-1.10.1"
       sources."wrappy-1.0.2"
       sources."yamljs-0.3.0"
@@ -103451,7 +104700,7 @@ in
       sources."assert-plus-1.0.0"
       sources."async-2.6.4"
       sources."asynckit-0.4.0"
-      sources."aws-sdk-2.1151.0"
+      sources."aws-sdk-2.1157.0"
       sources."aws-sign2-0.7.0"
       sources."aws4-1.11.0"
       sources."base64-js-1.5.1"
@@ -103553,7 +104802,7 @@ in
       sources."lodash.reject-4.6.0"
       sources."lodash.some-4.6.0"
       sources."lodash.uniq-4.5.0"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."minimist-1.2.6"
@@ -104234,7 +105483,7 @@ in
       sources."tough-cookie-2.5.0"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."universalify-2.0.0"
       sources."uri-js-4.4.1"
       sources."uuid-3.4.0"
@@ -104635,7 +105884,7 @@ in
       sources."@ot-builder/trace-1.5.2"
       sources."@ot-builder/var-store-1.5.2"
       sources."@ot-builder/variance-1.5.2"
-      sources."@unicode/unicode-14.0.0-1.2.1"
+      sources."@unicode/unicode-14.0.0-1.2.2"
       sources."@xmldom/xmldom-0.8.2"
       sources."aglfn-1.0.2"
       sources."amdefine-1.0.1"
@@ -104930,98 +106179,97 @@ in
           sources."tslib-1.14.1"
         ];
       })
-      sources."@aws-sdk/abort-controller-3.78.0"
+      sources."@aws-sdk/abort-controller-3.110.0"
       sources."@aws-sdk/chunked-blob-reader-3.55.0"
-      sources."@aws-sdk/chunked-blob-reader-native-3.58.0"
-      (sources."@aws-sdk/client-s3-3.107.0" // {
+      sources."@aws-sdk/chunked-blob-reader-native-3.109.0"
+      (sources."@aws-sdk/client-s3-3.113.0" // {
         dependencies = [
           sources."fast-xml-parser-3.19.0"
         ];
       })
-      sources."@aws-sdk/client-sso-3.105.0"
-      (sources."@aws-sdk/client-sts-3.105.0" // {
+      sources."@aws-sdk/client-sso-3.112.0"
+      (sources."@aws-sdk/client-sts-3.112.0" // {
         dependencies = [
           sources."fast-xml-parser-3.19.0"
         ];
       })
-      sources."@aws-sdk/config-resolver-3.80.0"
-      sources."@aws-sdk/credential-provider-env-3.78.0"
-      sources."@aws-sdk/credential-provider-imds-3.81.0"
-      sources."@aws-sdk/credential-provider-ini-3.105.0"
-      sources."@aws-sdk/credential-provider-node-3.105.0"
-      sources."@aws-sdk/credential-provider-process-3.80.0"
-      sources."@aws-sdk/credential-provider-sso-3.105.0"
-      sources."@aws-sdk/credential-provider-web-identity-3.78.0"
-      sources."@aws-sdk/eventstream-marshaller-3.78.0"
-      sources."@aws-sdk/eventstream-serde-browser-3.78.0"
-      sources."@aws-sdk/eventstream-serde-config-resolver-3.78.0"
-      sources."@aws-sdk/eventstream-serde-node-3.78.0"
-      sources."@aws-sdk/eventstream-serde-universal-3.78.0"
-      sources."@aws-sdk/fetch-http-handler-3.78.0"
-      sources."@aws-sdk/hash-blob-browser-3.78.0"
-      sources."@aws-sdk/hash-node-3.78.0"
-      sources."@aws-sdk/hash-stream-node-3.78.0"
-      sources."@aws-sdk/invalid-dependency-3.78.0"
+      sources."@aws-sdk/config-resolver-3.110.0"
+      sources."@aws-sdk/credential-provider-env-3.110.0"
+      sources."@aws-sdk/credential-provider-imds-3.110.0"
+      sources."@aws-sdk/credential-provider-ini-3.112.0"
+      sources."@aws-sdk/credential-provider-node-3.112.0"
+      sources."@aws-sdk/credential-provider-process-3.110.0"
+      sources."@aws-sdk/credential-provider-sso-3.112.0"
+      sources."@aws-sdk/credential-provider-web-identity-3.110.0"
+      sources."@aws-sdk/eventstream-marshaller-3.110.0"
+      sources."@aws-sdk/eventstream-serde-browser-3.110.0"
+      sources."@aws-sdk/eventstream-serde-config-resolver-3.110.0"
+      sources."@aws-sdk/eventstream-serde-node-3.110.0"
+      sources."@aws-sdk/eventstream-serde-universal-3.110.0"
+      sources."@aws-sdk/fetch-http-handler-3.110.0"
+      sources."@aws-sdk/hash-blob-browser-3.110.0"
+      sources."@aws-sdk/hash-node-3.110.0"
+      sources."@aws-sdk/hash-stream-node-3.110.0"
+      sources."@aws-sdk/invalid-dependency-3.110.0"
       sources."@aws-sdk/is-array-buffer-3.55.0"
-      sources."@aws-sdk/md5-js-3.78.0"
-      sources."@aws-sdk/middleware-bucket-endpoint-3.80.0"
-      sources."@aws-sdk/middleware-content-length-3.78.0"
-      sources."@aws-sdk/middleware-expect-continue-3.78.0"
-      sources."@aws-sdk/middleware-flexible-checksums-3.78.0"
-      sources."@aws-sdk/middleware-header-default-3.78.0"
-      sources."@aws-sdk/middleware-host-header-3.78.0"
-      sources."@aws-sdk/middleware-location-constraint-3.78.0"
-      sources."@aws-sdk/middleware-logger-3.78.0"
-      sources."@aws-sdk/middleware-recursion-detection-3.105.0"
-      (sources."@aws-sdk/middleware-retry-3.80.0" // {
+      sources."@aws-sdk/md5-js-3.110.0"
+      sources."@aws-sdk/middleware-bucket-endpoint-3.110.0"
+      sources."@aws-sdk/middleware-content-length-3.110.0"
+      sources."@aws-sdk/middleware-expect-continue-3.113.0"
+      sources."@aws-sdk/middleware-flexible-checksums-3.110.0"
+      sources."@aws-sdk/middleware-host-header-3.110.0"
+      sources."@aws-sdk/middleware-location-constraint-3.110.0"
+      sources."@aws-sdk/middleware-logger-3.110.0"
+      sources."@aws-sdk/middleware-recursion-detection-3.110.0"
+      (sources."@aws-sdk/middleware-retry-3.110.0" // {
         dependencies = [
           sources."uuid-8.3.2"
         ];
       })
-      sources."@aws-sdk/middleware-sdk-s3-3.105.0"
-      sources."@aws-sdk/middleware-sdk-sts-3.78.0"
-      sources."@aws-sdk/middleware-serde-3.78.0"
-      sources."@aws-sdk/middleware-signing-3.78.0"
-      sources."@aws-sdk/middleware-ssec-3.78.0"
-      sources."@aws-sdk/middleware-stack-3.78.0"
-      sources."@aws-sdk/middleware-user-agent-3.78.0"
-      sources."@aws-sdk/node-config-provider-3.80.0"
-      sources."@aws-sdk/node-http-handler-3.94.0"
-      sources."@aws-sdk/property-provider-3.78.0"
-      sources."@aws-sdk/protocol-http-3.78.0"
-      sources."@aws-sdk/querystring-builder-3.78.0"
-      sources."@aws-sdk/querystring-parser-3.78.0"
-      sources."@aws-sdk/s3-request-presigner-3.107.0"
-      sources."@aws-sdk/service-error-classification-3.78.0"
-      sources."@aws-sdk/shared-ini-file-loader-3.80.0"
-      sources."@aws-sdk/signature-v4-3.78.0"
-      sources."@aws-sdk/signature-v4-multi-region-3.88.0"
-      sources."@aws-sdk/smithy-client-3.99.0"
-      sources."@aws-sdk/types-3.78.0"
-      sources."@aws-sdk/url-parser-3.78.0"
+      sources."@aws-sdk/middleware-sdk-s3-3.110.0"
+      sources."@aws-sdk/middleware-sdk-sts-3.110.0"
+      sources."@aws-sdk/middleware-serde-3.110.0"
+      sources."@aws-sdk/middleware-signing-3.110.0"
+      sources."@aws-sdk/middleware-ssec-3.110.0"
+      sources."@aws-sdk/middleware-stack-3.110.0"
+      sources."@aws-sdk/middleware-user-agent-3.110.0"
+      sources."@aws-sdk/node-config-provider-3.110.0"
+      sources."@aws-sdk/node-http-handler-3.110.0"
+      sources."@aws-sdk/property-provider-3.110.0"
+      sources."@aws-sdk/protocol-http-3.110.0"
+      sources."@aws-sdk/querystring-builder-3.110.0"
+      sources."@aws-sdk/querystring-parser-3.110.0"
+      sources."@aws-sdk/s3-request-presigner-3.113.0"
+      sources."@aws-sdk/service-error-classification-3.110.0"
+      sources."@aws-sdk/shared-ini-file-loader-3.110.0"
+      sources."@aws-sdk/signature-v4-3.110.0"
+      sources."@aws-sdk/signature-v4-multi-region-3.110.0"
+      sources."@aws-sdk/smithy-client-3.110.0"
+      sources."@aws-sdk/types-3.110.0"
+      sources."@aws-sdk/url-parser-3.110.0"
       sources."@aws-sdk/util-arn-parser-3.55.0"
-      sources."@aws-sdk/util-base64-browser-3.58.0"
+      sources."@aws-sdk/util-base64-browser-3.109.0"
       sources."@aws-sdk/util-base64-node-3.55.0"
       sources."@aws-sdk/util-body-length-browser-3.55.0"
       sources."@aws-sdk/util-body-length-node-3.55.0"
       sources."@aws-sdk/util-buffer-from-3.55.0"
-      sources."@aws-sdk/util-config-provider-3.55.0"
-      sources."@aws-sdk/util-create-request-3.99.0"
-      sources."@aws-sdk/util-defaults-mode-browser-3.99.0"
-      sources."@aws-sdk/util-defaults-mode-node-3.99.0"
-      sources."@aws-sdk/util-format-url-3.78.0"
-      sources."@aws-sdk/util-hex-encoding-3.58.0"
+      sources."@aws-sdk/util-config-provider-3.109.0"
+      sources."@aws-sdk/util-create-request-3.110.0"
+      sources."@aws-sdk/util-defaults-mode-browser-3.110.0"
+      sources."@aws-sdk/util-defaults-mode-node-3.110.0"
+      sources."@aws-sdk/util-format-url-3.110.0"
+      sources."@aws-sdk/util-hex-encoding-3.109.0"
       sources."@aws-sdk/util-locate-window-3.55.0"
-      sources."@aws-sdk/util-middleware-3.78.0"
-      sources."@aws-sdk/util-stream-browser-3.78.0"
-      sources."@aws-sdk/util-stream-node-3.78.0"
+      sources."@aws-sdk/util-middleware-3.110.0"
+      sources."@aws-sdk/util-stream-browser-3.110.0"
+      sources."@aws-sdk/util-stream-node-3.110.0"
       sources."@aws-sdk/util-uri-escape-3.55.0"
-      sources."@aws-sdk/util-user-agent-browser-3.78.0"
-      sources."@aws-sdk/util-user-agent-node-3.80.0"
-      sources."@aws-sdk/util-utf8-browser-3.55.0"
-      sources."@aws-sdk/util-utf8-node-3.55.0"
-      sources."@aws-sdk/util-waiter-3.78.0"
-      sources."@aws-sdk/xml-builder-3.55.0"
+      sources."@aws-sdk/util-user-agent-browser-3.110.0"
+      sources."@aws-sdk/util-user-agent-node-3.110.0"
+      sources."@aws-sdk/util-utf8-browser-3.109.0"
+      sources."@aws-sdk/util-utf8-node-3.109.0"
+      sources."@aws-sdk/util-waiter-3.110.0"
+      sources."@aws-sdk/xml-builder-3.109.0"
       sources."@braintree/sanitize-url-3.1.0"
       sources."@cronvel/get-pixels-3.4.0"
       sources."@gar/promisify-1.1.3"
@@ -105060,7 +106308,7 @@ in
           sources."fs-minipass-2.1.0"
           sources."gauge-3.0.2"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
           sources."minizlib-2.1.2"
           sources."mkdirp-1.0.4"
           sources."node-fetch-2.6.7"
@@ -105130,7 +106378,7 @@ in
       sources."async-mutex-0.1.4"
       sources."asynckit-0.4.0"
       sources."atob-2.1.2"
-      (sources."aws-sdk-2.1151.0" // {
+      (sources."aws-sdk-2.1157.0" // {
         dependencies = [
           sources."sax-1.2.1"
           sources."uuid-8.0.0"
@@ -105162,7 +106410,7 @@ in
         dependencies = [
           sources."chownr-2.0.0"
           sources."fs-minipass-2.1.0"
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
           sources."minizlib-2.1.2"
           sources."mkdirp-1.0.4"
           sources."rimraf-3.0.2"
@@ -105520,7 +106768,7 @@ in
       })
       (sources."make-fetch-happen-9.1.0" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       (sources."markdown-it-10.0.0" // {
@@ -105559,28 +106807,28 @@ in
       })
       (sources."minipass-collect-1.0.2" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       (sources."minipass-fetch-1.4.1" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
           sources."minizlib-2.1.2"
         ];
       })
       (sources."minipass-flush-1.0.5" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       (sources."minipass-pipeline-1.2.4" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       (sources."minipass-sized-1.0.3" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       sources."minizlib-1.3.3"
@@ -105611,7 +106859,7 @@ in
           sources."fs-minipass-2.1.0"
           sources."gauge-4.0.4"
           sources."is-fullwidth-code-point-3.0.0"
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
           sources."minizlib-2.1.2"
           sources."mkdirp-1.0.4"
           sources."npmlog-6.0.2"
@@ -105768,7 +107016,7 @@ in
         dependencies = [
           sources."chownr-2.0.0"
           sources."fs-minipass-2.1.0"
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
           sources."minizlib-2.1.2"
           sources."mkdirp-1.0.4"
           sources."tar-6.1.11"
@@ -105777,7 +107025,7 @@ in
       sources."sshpk-1.17.0"
       (sources."ssri-8.0.1" // {
         dependencies = [
-          sources."minipass-3.2.0"
+          sources."minipass-3.2.1"
         ];
       })
       sources."statuses-1.5.0"
@@ -105988,7 +107236,7 @@ in
       sha512 = "IdQ8ppSo5LKZ9o3M+LKIIK8i00DIe5msDvG3G81Km+1dhy0XrOWD0Ji8H61ElgyEj/O9KRLokgKbAM9XX9CJAg==";
     };
     dependencies = [
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@types/linkify-it-3.0.2"
       sources."@types/markdown-it-12.2.3"
       sources."@types/mdurl-1.0.2"
@@ -106003,7 +107251,7 @@ in
       sources."lodash-4.17.21"
       sources."markdown-it-12.3.2"
       sources."markdown-it-anchor-8.6.4"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       sources."mdurl-1.0.1"
       sources."mkdirp-1.0.4"
       sources."requizzle-0.2.3"
@@ -106148,48 +107396,57 @@ in
     };
     dependencies = [
       sources."argparse-1.0.10"
+      sources."asap-2.0.6"
       sources."asynckit-0.4.0"
       sources."call-bind-1.0.2"
       sources."combined-stream-1.0.8"
       sources."commander-4.1.1"
       sources."component-emitter-1.3.0"
       sources."cookiejar-2.1.3"
-      sources."core-util-is-1.0.3"
-      sources."debug-3.2.7"
+      sources."debug-4.3.4"
       sources."delayed-stream-1.0.0"
+      sources."dezalgo-1.0.3"
       sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.6"
+      sources."fast-safe-stringify-2.1.1"
+      sources."form-data-4.0.0"
+      (sources."formidable-2.0.1" // {
+        dependencies = [
+          sources."qs-6.9.3"
+        ];
+      })
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.2"
       sources."graphlib-2.1.8"
       sources."has-1.0.3"
       sources."has-symbols-1.0.3"
+      sources."hexoid-1.0.0"
       sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
       sources."js-yaml-3.14.1"
       sources."lodash-4.17.21"
+      sources."lru-cache-6.0.0"
       sources."methods-1.1.2"
-      sources."mime-1.6.0"
+      sources."mime-2.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."native-promise-only-0.8.1"
       sources."object-inspect-1.12.2"
-      sources."path-loader-1.0.10"
-      sources."process-nextick-args-2.0.1"
+      sources."once-1.4.0"
+      sources."path-loader-1.0.12"
       sources."punycode-2.1.1"
       sources."qs-6.10.5"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."semver-7.3.7"
       sources."side-channel-1.0.4"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
-      sources."string_decoder-1.1.1"
-      sources."superagent-3.8.3"
+      sources."string_decoder-1.3.0"
+      sources."superagent-7.1.6"
       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 = {
@@ -106378,7 +107635,7 @@ in
           sources."ini-1.3.8"
         ];
       })
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."responselike-1.0.2"
@@ -106893,7 +108150,7 @@ in
       })
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-url-0.2.1"
       sources."ret-0.1.15"
       sources."safe-buffer-5.1.2"
@@ -107298,17 +108555,17 @@ in
   karma = nodeEnv.buildNodePackage {
     name = "karma";
     packageName = "karma";
-    version = "6.3.20";
+    version = "6.4.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/karma/-/karma-6.3.20.tgz";
-      sha512 = "HRNQhMuKOwKpjYlWiJP0DUrJOh+QjaI/DTaD8b9rEm4Il3tJ8MijutVZH4ts10LuUFst/CedwTS6vieCN8yTSw==";
+      url = "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz";
+      sha512 = "s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==";
     };
     dependencies = [
       sources."@colors/colors-1.5.0"
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."accepts-1.3.8"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
@@ -107483,8 +108740,8 @@ in
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/cli-7.17.10"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -107512,13 +108769,13 @@ in
       sources."@babel/helper-validator-option-7.16.7"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/node-7.17.10"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/node-7.18.5"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-syntax-jsx-7.17.12"
       sources."@babel/plugin-transform-react-jsx-7.17.12"
       sources."@babel/register-7.17.7"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -107530,7 +108787,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@openpgp/hkp-client-0.0.2"
       sources."@openpgp/wkd-client-0.0.3"
-      sources."@peculiar/asn1-schema-2.1.8"
+      sources."@peculiar/asn1-schema-2.1.9"
       sources."@peculiar/json-schema-1.1.12"
       sources."@peculiar/webcrypto-1.4.0"
       sources."@tootallnate/once-1.1.2"
@@ -107612,7 +108869,7 @@ in
       sources."buffer-from-1.1.2"
       sources."bytes-3.1.2"
       sources."call-bind-1.0.2"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."chalk-2.4.2"
       sources."chardet-1.4.0"
       sources."chownr-1.1.4"
@@ -107641,7 +108898,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."cookie-0.5.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.3"
       sources."cors-2.8.5"
       sources."create-hash-1.2.0"
@@ -107680,7 +108937,7 @@ in
       })
       sources."dotenv-8.6.0"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."encodeurl-1.0.2"
       sources."end-of-stream-1.4.4"
@@ -107705,7 +108962,7 @@ in
           sources."safe-buffer-5.2.1"
         ];
       })
-      sources."express-validator-6.14.1"
+      sources."express-validator-6.14.2"
       sources."fast-glob-3.2.11"
       sources."fast-levenshtein-2.0.6"
       sources."fastq-1.13.0"
@@ -107932,7 +109189,7 @@ in
       sources."regenerator-runtime-0.13.9"
       sources."regexp.prototype.flags-1.4.3"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."reusify-1.0.4"
       sources."ripemd160-2.0.2"
       sources."run-parallel-1.2.0"
@@ -108036,7 +109293,7 @@ in
         ];
       })
       sources."wrappy-1.0.2"
-      sources."ws-8.7.0"
+      sources."ws-8.8.0"
       sources."xml-name-validator-3.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -108672,10 +109929,10 @@ in
   lerna = nodeEnv.buildNodePackage {
     name = "lerna";
     packageName = "lerna";
-    version = "5.1.0";
+    version = "5.1.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/lerna/-/lerna-5.1.0.tgz";
-      sha512 = "Ur55ZCdELQzpMmJmcw3qzk0khqMQizYvpsOE9j0Q7rPtJ/5NfsDo3moMgLwTevmT3LeijyBaJmXVAU/z6rbPDg==";
+      url = "https://registry.npmjs.org/lerna/-/lerna-5.1.4.tgz";
+      sha512 = "WwSbMslPxWSV7ARsGzkhJAFC1uQcuNGgiy2vZho4bpXVC+A7ZLXy8FngDbcAn7hCGC3ZDnl/4jdY6d84j63Y4g==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -108693,56 +109950,56 @@ in
       sources."@gar/promisify-1.1.3"
       sources."@hutson/parse-repository-url-3.0.2"
       sources."@isaacs/string-locale-compare-1.1.0"
-      sources."@lerna/add-5.1.0"
-      sources."@lerna/bootstrap-5.1.0"
-      sources."@lerna/changed-5.1.0"
-      sources."@lerna/check-working-tree-5.1.0"
-      sources."@lerna/child-process-5.1.0"
-      sources."@lerna/clean-5.1.0"
-      sources."@lerna/cli-5.1.0"
-      sources."@lerna/collect-uncommitted-5.1.0"
-      sources."@lerna/collect-updates-5.1.0"
-      sources."@lerna/command-5.1.0"
-      (sources."@lerna/conventional-commits-5.1.0" // {
+      sources."@lerna/add-5.1.4"
+      sources."@lerna/bootstrap-5.1.4"
+      sources."@lerna/changed-5.1.4"
+      sources."@lerna/check-working-tree-5.1.4"
+      sources."@lerna/child-process-5.1.4"
+      sources."@lerna/clean-5.1.4"
+      sources."@lerna/cli-5.1.4"
+      sources."@lerna/collect-uncommitted-5.1.4"
+      sources."@lerna/collect-updates-5.1.4"
+      sources."@lerna/command-5.1.4"
+      (sources."@lerna/conventional-commits-5.1.4" // {
         dependencies = [
           sources."pify-5.0.0"
         ];
       })
-      (sources."@lerna/create-5.1.0" // {
+      (sources."@lerna/create-5.1.4" // {
         dependencies = [
           sources."pify-5.0.0"
           sources."yargs-parser-20.2.4"
         ];
       })
-      sources."@lerna/create-symlink-5.1.0"
-      sources."@lerna/describe-ref-5.1.0"
-      sources."@lerna/diff-5.1.0"
-      sources."@lerna/exec-5.1.0"
-      sources."@lerna/filter-options-5.1.0"
-      sources."@lerna/filter-packages-5.1.0"
-      sources."@lerna/get-npm-exec-opts-5.1.0"
-      (sources."@lerna/get-packed-5.1.0" // {
+      sources."@lerna/create-symlink-5.1.4"
+      sources."@lerna/describe-ref-5.1.4"
+      sources."@lerna/diff-5.1.4"
+      sources."@lerna/exec-5.1.4"
+      sources."@lerna/filter-options-5.1.4"
+      sources."@lerna/filter-packages-5.1.4"
+      sources."@lerna/get-npm-exec-opts-5.1.4"
+      (sources."@lerna/get-packed-5.1.4" // {
         dependencies = [
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/github-client-5.1.0"
-      sources."@lerna/gitlab-client-5.1.0"
-      sources."@lerna/global-options-5.1.0"
-      sources."@lerna/has-npm-version-5.1.0"
-      sources."@lerna/import-5.1.0"
-      sources."@lerna/info-5.1.0"
-      sources."@lerna/init-5.1.0"
-      sources."@lerna/link-5.1.0"
-      sources."@lerna/list-5.1.0"
-      sources."@lerna/listable-5.1.0"
-      sources."@lerna/log-packed-5.1.0"
-      (sources."@lerna/npm-conf-5.1.0" // {
+      sources."@lerna/github-client-5.1.4"
+      sources."@lerna/gitlab-client-5.1.4"
+      sources."@lerna/global-options-5.1.4"
+      sources."@lerna/has-npm-version-5.1.4"
+      sources."@lerna/import-5.1.4"
+      sources."@lerna/info-5.1.4"
+      sources."@lerna/init-5.1.4"
+      sources."@lerna/link-5.1.4"
+      sources."@lerna/list-5.1.4"
+      sources."@lerna/listable-5.1.4"
+      sources."@lerna/log-packed-5.1.4"
+      (sources."@lerna/npm-conf-5.1.4" // {
         dependencies = [
           sources."pify-5.0.0"
         ];
       })
-      (sources."@lerna/npm-dist-tag-5.1.0" // {
+      (sources."@lerna/npm-dist-tag-5.1.4" // {
         dependencies = [
           sources."cacache-15.3.0"
           sources."make-fetch-happen-8.0.14"
@@ -108751,30 +110008,30 @@ in
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/npm-install-5.1.0"
-      (sources."@lerna/npm-publish-5.1.0" // {
+      sources."@lerna/npm-install-5.1.4"
+      (sources."@lerna/npm-publish-5.1.4" // {
         dependencies = [
           sources."normalize-package-data-3.0.3"
           sources."pify-5.0.0"
           sources."read-package-json-3.0.1"
         ];
       })
-      sources."@lerna/npm-run-script-5.1.0"
-      sources."@lerna/otplease-5.1.0"
-      sources."@lerna/output-5.1.0"
-      (sources."@lerna/pack-directory-5.1.0" // {
+      sources."@lerna/npm-run-script-5.1.4"
+      sources."@lerna/otplease-5.1.4"
+      sources."@lerna/output-5.1.4"
+      (sources."@lerna/pack-directory-5.1.4" // {
         dependencies = [
           sources."ignore-walk-3.0.4"
           sources."npm-packlist-2.2.2"
         ];
       })
-      sources."@lerna/package-5.1.0"
-      sources."@lerna/package-graph-5.1.0"
-      sources."@lerna/prerelease-id-from-version-5.1.0"
-      sources."@lerna/profiler-5.1.0"
-      sources."@lerna/project-5.1.0"
-      sources."@lerna/prompt-5.1.0"
-      (sources."@lerna/publish-5.1.0" // {
+      sources."@lerna/package-5.1.4"
+      sources."@lerna/package-graph-5.1.4"
+      sources."@lerna/prerelease-id-from-version-5.1.4"
+      sources."@lerna/profiler-5.1.4"
+      sources."@lerna/project-5.1.4"
+      sources."@lerna/prompt-5.1.4"
+      (sources."@lerna/publish-5.1.4" // {
         dependencies = [
           sources."cacache-15.3.0"
           sources."make-fetch-happen-8.0.14"
@@ -108783,25 +110040,25 @@ in
           sources."ssri-8.0.1"
         ];
       })
-      sources."@lerna/pulse-till-done-5.1.0"
-      sources."@lerna/query-graph-5.1.0"
-      sources."@lerna/resolve-symlink-5.1.0"
-      sources."@lerna/rimraf-dir-5.1.0"
-      sources."@lerna/run-5.1.0"
-      sources."@lerna/run-lifecycle-5.1.0"
-      sources."@lerna/run-topologically-5.1.0"
-      sources."@lerna/symlink-binary-5.1.0"
-      sources."@lerna/symlink-dependencies-5.1.0"
-      (sources."@lerna/temp-write-5.1.0" // {
+      sources."@lerna/pulse-till-done-5.1.4"
+      sources."@lerna/query-graph-5.1.4"
+      sources."@lerna/resolve-symlink-5.1.4"
+      sources."@lerna/rimraf-dir-5.1.4"
+      sources."@lerna/run-5.1.4"
+      sources."@lerna/run-lifecycle-5.1.4"
+      sources."@lerna/run-topologically-5.1.4"
+      sources."@lerna/symlink-binary-5.1.4"
+      sources."@lerna/symlink-dependencies-5.1.4"
+      (sources."@lerna/temp-write-5.1.4" // {
         dependencies = [
           sources."make-dir-3.1.0"
           sources."semver-6.3.0"
         ];
       })
-      sources."@lerna/timer-5.1.0"
-      sources."@lerna/validation-error-5.1.0"
-      sources."@lerna/version-5.1.0"
-      (sources."@lerna/write-log-file-5.1.0" // {
+      sources."@lerna/timer-5.1.4"
+      sources."@lerna/validation-error-5.1.4"
+      sources."@lerna/version-5.1.4"
+      (sources."@lerna/write-log-file-5.1.4" // {
         dependencies = [
           sources."write-file-atomic-3.0.3"
         ];
@@ -108816,7 +110073,6 @@ in
           sources."hosted-git-info-5.0.0"
           sources."lru-cache-7.10.1"
           sources."npm-package-arg-9.0.2"
-          sources."npmlog-6.0.2"
           sources."validate-npm-package-name-4.0.0"
         ];
       })
@@ -108850,11 +110106,11 @@ in
         ];
       })
       sources."@octokit/graphql-4.8.0"
-      sources."@octokit/openapi-types-11.2.0"
+      sources."@octokit/openapi-types-12.1.0"
       sources."@octokit/plugin-enterprise-rest-6.0.1"
-      sources."@octokit/plugin-paginate-rest-2.17.0"
+      sources."@octokit/plugin-paginate-rest-2.18.0"
       sources."@octokit/plugin-request-log-1.0.4"
-      sources."@octokit/plugin-rest-endpoint-methods-5.13.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.14.0"
       (sources."@octokit/request-5.6.3" // {
         dependencies = [
           sources."is-plain-object-5.0.0"
@@ -108862,7 +110118,7 @@ in
       })
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
-      sources."@octokit/types-6.34.0"
+      sources."@octokit/types-6.35.0"
       sources."@tootallnate/once-1.1.2"
       sources."@types/minimatch-3.0.5"
       sources."@types/minimist-1.2.2"
@@ -108928,7 +110184,6 @@ in
       sources."clone-1.0.4"
       sources."clone-deep-4.0.1"
       sources."cmd-shim-4.1.0"
-      sources."code-point-at-1.1.0"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
       sources."color-support-1.1.3"
@@ -109126,10 +110381,7 @@ in
       })
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."lodash._reinterpolate-3.0.0"
       sources."lodash.ismatch-4.4.0"
-      sources."lodash.template-4.5.0"
-      sources."lodash.templatesettings-4.2.0"
       sources."lru-cache-6.0.0"
       (sources."make-dir-2.1.0" // {
         dependencies = [
@@ -109174,7 +110426,7 @@ in
           sources."arrify-1.0.1"
         ];
       })
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -109197,11 +110449,7 @@ in
           sources."whatwg-url-5.0.0"
         ];
       })
-      (sources."node-gyp-8.4.1" // {
-        dependencies = [
-          sources."npmlog-6.0.2"
-        ];
-      })
+      sources."node-gyp-8.4.1"
       sources."nopt-5.0.0"
       (sources."normalize-package-data-4.0.0" // {
         dependencies = [
@@ -109245,22 +110493,7 @@ in
         ];
       })
       sources."npm-run-path-4.0.1"
-      (sources."npmlog-4.1.2" // {
-        dependencies = [
-          sources."ansi-regex-2.1.1"
-          sources."aproba-1.2.0"
-          sources."are-we-there-yet-1.1.7"
-          sources."gauge-2.7.4"
-          sources."is-fullwidth-code-point-1.0.0"
-          sources."readable-stream-2.3.7"
-          sources."safe-buffer-5.1.2"
-          sources."string-width-1.0.2"
-          sources."string_decoder-1.1.1"
-          sources."strip-ansi-3.0.1"
-        ];
-      })
-      sources."number-is-nan-1.0.1"
-      sources."object-assign-4.1.1"
+      sources."npmlog-6.0.2"
       sources."object-inspect-1.12.2"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
@@ -109349,7 +110582,7 @@ in
       sources."readdir-scoped-modules-1.1.0"
       sources."redent-3.0.0"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-cwd-3.0.0"
       sources."resolve-from-5.0.0"
       sources."restore-cursor-3.1.0"
@@ -109406,7 +110639,7 @@ in
       sources."type-fest-0.4.1"
       sources."typedarray-0.0.6"
       sources."typedarray-to-buffer-3.1.5"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."unique-filename-1.1.1"
       sources."unique-slug-2.0.2"
       sources."universal-user-agent-6.0.0"
@@ -109451,7 +110684,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "A tool for managing JavaScript projects with multiple packages.";
-      homepage = "https://github.com/lerna/lerna#readme";
+      homepage = "https://lerna.js.org";
       license = "MIT";
     };
     production = true;
@@ -110398,7 +111631,7 @@ in
       sources."@types/commander-2.12.2"
       sources."@types/diff-3.5.5"
       sources."@types/get-stdin-5.0.1"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."commander-2.20.3"
       sources."diff-3.5.0"
       sources."get-stdin-5.0.1"
@@ -110781,7 +112014,7 @@ in
       sources."link-check-5.1.0"
       sources."lodash-4.17.21"
       sources."markdown-link-extractor-3.0.2"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       sources."ms-2.1.3"
       sources."needle-3.1.0"
       sources."nth-check-2.1.1"
@@ -111148,7 +112381,7 @@ in
       sources."replace-ext-0.0.1"
       sources."request-2.88.0"
       sources."require-uncached-1.0.3"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-1.0.1"
       sources."restore-cursor-1.0.1"
       sources."rimraf-2.6.3"
@@ -111286,7 +112519,7 @@ in
     };
     dependencies = [
       sources."@braintree/sanitize-url-6.0.0"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/yauzl-2.10.0"
       sources."agent-base-6.0.2"
       sources."ansi-styles-4.3.0"
@@ -111380,7 +112613,7 @@ in
       sources."debug-4.3.4"
       sources."delaunator-5.0.0"
       sources."devtools-protocol-0.0.1001819"
-      sources."dompurify-2.3.6"
+      sources."dompurify-2.3.8"
       sources."end-of-stream-1.4.4"
       sources."extract-zip-2.0.1"
       sources."fd-slicer-1.1.0"
@@ -111400,7 +112633,7 @@ in
       sources."khroma-2.0.0"
       sources."locate-path-5.0.0"
       sources."lodash-4.17.21"
-      sources."mermaid-9.1.1"
+      sources."mermaid-9.1.2"
       sources."minimatch-3.1.2"
       sources."mkdirp-classic-0.5.3"
       sources."moment-mini-2.24.0"
@@ -111417,7 +112650,7 @@ in
       sources."progress-2.0.3"
       sources."proxy-from-env-1.1.0"
       sources."pump-3.0.0"
-      sources."puppeteer-14.3.0"
+      sources."puppeteer-14.4.1"
       sources."readable-stream-3.6.0"
       sources."rimraf-3.0.2"
       sources."robust-predicates-3.0.1"
@@ -111569,26 +112802,31 @@ in
     };
     dependencies = [
       sources."argparse-1.0.10"
+      sources."asap-2.0.6"
       sources."asynckit-0.4.0"
       sources."call-bind-1.0.2"
       sources."combined-stream-1.0.8"
       sources."commander-2.20.3"
       sources."component-emitter-1.3.0"
       sources."cookiejar-2.1.3"
-      sources."core-util-is-1.0.3"
-      sources."debug-3.2.7"
+      sources."debug-4.3.4"
       sources."delayed-stream-1.0.0"
+      sources."dezalgo-1.0.3"
       sources."esprima-4.0.1"
-      sources."extend-3.0.2"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.6"
+      sources."fast-safe-stringify-2.1.1"
+      sources."form-data-4.0.0"
+      (sources."formidable-2.0.1" // {
+        dependencies = [
+          sources."qs-6.9.3"
+        ];
+      })
       sources."function-bind-1.1.1"
       sources."get-intrinsic-1.1.2"
       sources."graphlib-2.1.8"
       sources."has-1.0.3"
       sources."has-symbols-1.0.3"
+      sources."hexoid-1.0.0"
       sources."inherits-2.0.4"
-      sources."isarray-1.0.0"
       sources."js-yaml-3.14.1"
       (sources."json-refs-3.0.15" // {
         dependencies = [
@@ -111596,26 +112834,30 @@ in
         ];
       })
       sources."lodash-4.17.21"
+      sources."lru-cache-6.0.0"
       sources."methods-1.1.2"
-      sources."mime-1.6.0"
+      sources."mime-2.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."ms-2.1.3"
+      sources."ms-2.1.2"
       sources."native-promise-only-0.8.1"
       sources."object-inspect-1.12.2"
-      sources."path-loader-1.0.10"
-      sources."process-nextick-args-2.0.1"
+      sources."once-1.4.0"
+      sources."path-loader-1.0.12"
       sources."punycode-2.1.1"
       sources."qs-6.10.5"
-      sources."readable-stream-2.3.7"
-      sources."safe-buffer-5.1.2"
+      sources."readable-stream-3.6.0"
+      sources."safe-buffer-5.2.1"
+      sources."semver-7.3.7"
       sources."side-channel-1.0.4"
       sources."slash-3.0.0"
       sources."sprintf-js-1.0.3"
-      sources."string_decoder-1.1.1"
-      sources."superagent-3.8.3"
+      sources."string_decoder-1.3.0"
+      sources."superagent-7.1.6"
       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 = {
@@ -111766,7 +113008,7 @@ in
       sources."@types/istanbul-lib-coverage-2.0.4"
       sources."@types/istanbul-lib-report-3.0.0"
       sources."@types/istanbul-reports-3.0.1"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/stack-utils-2.0.1"
       sources."@types/yargs-16.0.4"
       sources."@types/yargs-parser-21.0.0"
@@ -111903,7 +113145,7 @@ in
       sources."jest-mock-27.5.1"
       (sources."jest-util-27.5.1" // {
         dependencies = [
-          sources."ci-info-3.3.1"
+          sources."ci-info-3.3.2"
         ];
       })
       sources."js-sha256-0.9.0"
@@ -111983,7 +113225,7 @@ in
       })
       sources."react-is-17.0.2"
       sources."readable-stream-3.6.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."responselike-1.0.2"
@@ -112214,7 +113456,7 @@ in
       sources."lru-cache-7.10.1"
       sources."make-fetch-happen-10.1.7"
       sources."minimatch-3.1.2"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-2.1.0"
       sources."minipass-flush-1.0.5"
@@ -112492,7 +113734,7 @@ in
           sources."qs-6.4.1"
         ];
       })
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."rimraf-2.2.8"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
@@ -112724,7 +113966,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.8"
@@ -112930,7 +114172,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      (sources."minipass-3.2.0" // {
+      (sources."minipass-3.2.1" // {
         dependencies = [
           sources."yallist-4.0.0"
         ];
@@ -113169,7 +114411,7 @@ in
       sources."mime-types-2.1.35"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-0.3.5"
       sources."ncp-0.4.2"
@@ -113220,7 +114462,7 @@ in
         ];
       })
       sources."request-2.88.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."retry-0.10.1"
       sources."rimraf-2.2.8"
       sources."safe-buffer-5.2.1"
@@ -113398,7 +114640,7 @@ in
         ];
       })
       sources."readdirp-3.6.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."semver-5.7.1"
@@ -113479,7 +114721,7 @@ in
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/normalize-package-data-2.4.1"
       sources."@types/parse-json-4.0.0"
       sources."@types/responselike-1.0.0"
@@ -113879,9 +115121,9 @@ in
         ];
       })
       sources."redent-3.0.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       (sources."resolve-cwd-3.0.0" // {
         dependencies = [
           sources."resolve-from-5.0.0"
@@ -113974,10 +115216,10 @@ in
   npm = nodeEnv.buildNodePackage {
     name = "npm";
     packageName = "npm";
-    version = "8.12.1";
+    version = "8.12.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm/-/npm-8.12.1.tgz";
-      sha512 = "0yOlhfgu1UzP6UijnaFuIS2bES2H9D90EA5OVsf2iOZw7VBrjntXKEwKfCaFA6vMVWkCP8qnPwCxxPdnDVwlNw==";
+      url = "https://registry.npmjs.org/npm/-/npm-8.12.2.tgz";
+      sha512 = "TArexqro9wpl/6wz6t6YdYhOoiy/UArqiSsSsqI7fieEhQEswDQSJcgt/LuCDjl6mfCDi0So7S2UZ979qLYRPg==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -113992,10 +115234,10 @@ in
   npm-check-updates = nodeEnv.buildNodePackage {
     name = "npm-check-updates";
     packageName = "npm-check-updates";
-    version = "13.1.2";
+    version = "14.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-13.1.2.tgz";
-      sha512 = "ZXfXEoqqMnDNuR2LNLXBsNPTRCvo5JcH+Wo6YoSAh5EYcPqKzTkRSPB82ujPTbIEU7BtrwXbx3p2Y+IXK3dmdA==";
+      url = "https://registry.npmjs.org/npm-check-updates/-/npm-check-updates-14.0.1.tgz";
+      sha512 = "CjHKxcJur/OiVc2GKBagUrzDsXL8JJC71rNVv2mC7eNA6w/ebe3POx9x46ay4p3woSxJOa7hYWNn1UwL7jgHug==";
     };
     dependencies = [
       sources."@gar/promisify-1.1.3"
@@ -114164,7 +115406,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-5.1.0"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -114237,7 +115479,7 @@ in
       })
       sources."read-package-json-fast-2.0.3"
       sources."readable-stream-3.6.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."remote-git-tags-3.0.0"
       sources."require-from-string-2.0.2"
@@ -114461,8 +115703,8 @@ in
     dependencies = [
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."json5-2.2.1"
           sources."semver-6.3.0"
@@ -114506,7 +115748,7 @@ in
       sources."@babel/helper-wrap-function-7.16.8"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.17.12"
@@ -114558,10 +115800,10 @@ in
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.18.0"
       sources."@babel/plugin-transform-modules-commonjs-7.18.2"
-      sources."@babel/plugin-transform-modules-systemjs-7.18.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.18.5"
       sources."@babel/plugin-transform-modules-umd-7.18.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.17.12"
-      sources."@babel/plugin-transform-new-target-7.17.12"
+      sources."@babel/plugin-transform-new-target-7.18.5"
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-property-literals-7.16.7"
@@ -114583,7 +115825,7 @@ in
       sources."@babel/preset-modules-0.1.5"
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@iarna/toml-2.2.5"
       sources."@jridgewell/gen-mapping-0.1.1"
@@ -114717,7 +115959,7 @@ in
       sources."caller-path-2.0.0"
       sources."callsites-2.0.0"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."caseless-0.12.0"
       sources."chalk-2.4.2"
       sources."chokidar-2.1.8"
@@ -114743,7 +115985,7 @@ in
       sources."convert-source-map-1.8.0"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.22.8" // {
+      (sources."core-js-compat-3.23.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -114854,7 +116096,7 @@ in
       sources."duplexer2-0.1.4"
       sources."ecc-jsbn-0.1.2"
       sources."ee-first-1.1.1"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -114967,7 +116209,7 @@ in
           sources."acorn-8.7.1"
           sources."posthtml-0.15.2"
           sources."posthtml-parser-0.7.2"
-          sources."terser-5.14.0"
+          sources."terser-5.14.1"
         ];
       })
       (sources."htmlparser2-6.1.0" // {
@@ -115295,7 +116537,7 @@ in
       sources."request-2.88.2"
       sources."request-promise-core-1.1.4"
       sources."request-promise-native-1.0.9"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-3.0.0"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-2.0.0"
@@ -115498,10 +116740,10 @@ in
   parcel = nodeEnv.buildNodePackage {
     name = "parcel";
     packageName = "parcel";
-    version = "2.6.0";
+    version = "2.6.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/parcel/-/parcel-2.6.0.tgz";
-      sha512 = "pSTJ7wC6uTl16PKLXQV7RfL9FGoIDA1iVpNvaav47n6UkUdKqfx0spcVPpw35kWdRcHJF61YAvkPjP2hTwHQ+Q==";
+      url = "https://registry.npmjs.org/parcel/-/parcel-2.6.1.tgz";
+      sha512 = "dqPG1u7NV/nlnoU6O9zO6sIFbna7b8IfmoNgMM0un2+EtOhNlz4bRp6U4AHosTulMUTKFmHpdXXG4dF9X0WQtw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -115519,6 +116761,12 @@ in
       sources."@jridgewell/trace-mapping-0.3.13"
       sources."@lezer/common-0.15.12"
       sources."@lezer/lr-0.15.8"
+      sources."@lmdb/lmdb-darwin-arm64-2.5.2"
+      sources."@lmdb/lmdb-darwin-x64-2.5.2"
+      sources."@lmdb/lmdb-linux-arm-2.5.2"
+      sources."@lmdb/lmdb-linux-arm64-2.5.2"
+      sources."@lmdb/lmdb-linux-x64-2.5.2"
+      sources."@lmdb/lmdb-win32-x64-2.5.2"
       sources."@mischnic/json-sourcemap-0.1.0"
       sources."@msgpackr-extract/msgpackr-extract-darwin-arm64-2.0.2"
       sources."@msgpackr-extract/msgpackr-extract-darwin-x64-2.0.2"
@@ -115526,83 +116774,83 @@ in
       sources."@msgpackr-extract/msgpackr-extract-linux-arm64-2.0.2"
       sources."@msgpackr-extract/msgpackr-extract-linux-x64-2.0.2"
       sources."@msgpackr-extract/msgpackr-extract-win32-x64-2.0.2"
-      sources."@parcel/bundler-default-2.6.0"
-      sources."@parcel/cache-2.6.0"
-      sources."@parcel/codeframe-2.6.0"
-      sources."@parcel/compressor-raw-2.6.0"
-      sources."@parcel/config-default-2.6.0"
-      sources."@parcel/core-2.6.0"
-      sources."@parcel/css-1.9.0"
-      sources."@parcel/css-darwin-arm64-1.9.0"
-      sources."@parcel/css-darwin-x64-1.9.0"
-      sources."@parcel/css-linux-arm-gnueabihf-1.9.0"
-      sources."@parcel/css-linux-arm64-gnu-1.9.0"
-      sources."@parcel/css-linux-arm64-musl-1.9.0"
-      sources."@parcel/css-linux-x64-gnu-1.9.0"
-      sources."@parcel/css-linux-x64-musl-1.9.0"
-      sources."@parcel/css-win32-x64-msvc-1.9.0"
-      sources."@parcel/diagnostic-2.6.0"
-      sources."@parcel/events-2.6.0"
-      sources."@parcel/fs-2.6.0"
-      sources."@parcel/fs-search-2.6.0"
-      sources."@parcel/graph-2.6.0"
-      sources."@parcel/hash-2.6.0"
-      sources."@parcel/logger-2.6.0"
-      sources."@parcel/markdown-ansi-2.6.0"
-      sources."@parcel/namer-default-2.6.0"
-      sources."@parcel/node-resolver-core-2.6.0"
-      sources."@parcel/optimizer-css-2.6.0"
-      sources."@parcel/optimizer-htmlnano-2.6.0"
-      sources."@parcel/optimizer-image-2.6.0"
-      sources."@parcel/optimizer-svgo-2.6.0"
-      sources."@parcel/optimizer-terser-2.6.0"
-      sources."@parcel/package-manager-2.6.0"
-      sources."@parcel/packager-css-2.6.0"
-      sources."@parcel/packager-html-2.6.0"
-      sources."@parcel/packager-js-2.6.0"
-      sources."@parcel/packager-raw-2.6.0"
-      sources."@parcel/packager-svg-2.6.0"
-      sources."@parcel/plugin-2.6.0"
-      sources."@parcel/reporter-cli-2.6.0"
-      sources."@parcel/reporter-dev-server-2.6.0"
-      sources."@parcel/resolver-default-2.6.0"
-      sources."@parcel/runtime-browser-hmr-2.6.0"
-      sources."@parcel/runtime-js-2.6.0"
-      sources."@parcel/runtime-react-refresh-2.6.0"
-      sources."@parcel/runtime-service-worker-2.6.0"
+      sources."@parcel/bundler-default-2.6.1"
+      sources."@parcel/cache-2.6.1"
+      sources."@parcel/codeframe-2.6.1"
+      sources."@parcel/compressor-raw-2.6.1"
+      sources."@parcel/config-default-2.6.1"
+      sources."@parcel/core-2.6.1"
+      sources."@parcel/css-1.10.1"
+      sources."@parcel/css-darwin-arm64-1.10.1"
+      sources."@parcel/css-darwin-x64-1.10.1"
+      sources."@parcel/css-linux-arm-gnueabihf-1.10.1"
+      sources."@parcel/css-linux-arm64-gnu-1.10.1"
+      sources."@parcel/css-linux-arm64-musl-1.10.1"
+      sources."@parcel/css-linux-x64-gnu-1.10.1"
+      sources."@parcel/css-linux-x64-musl-1.10.1"
+      sources."@parcel/css-win32-x64-msvc-1.10.1"
+      sources."@parcel/diagnostic-2.6.1"
+      sources."@parcel/events-2.6.1"
+      sources."@parcel/fs-2.6.1"
+      sources."@parcel/fs-search-2.6.1"
+      sources."@parcel/graph-2.6.1"
+      sources."@parcel/hash-2.6.1"
+      sources."@parcel/logger-2.6.1"
+      sources."@parcel/markdown-ansi-2.6.1"
+      sources."@parcel/namer-default-2.6.1"
+      sources."@parcel/node-resolver-core-2.6.1"
+      sources."@parcel/optimizer-css-2.6.1"
+      sources."@parcel/optimizer-htmlnano-2.6.1"
+      sources."@parcel/optimizer-image-2.6.1"
+      sources."@parcel/optimizer-svgo-2.6.1"
+      sources."@parcel/optimizer-terser-2.6.1"
+      sources."@parcel/package-manager-2.6.1"
+      sources."@parcel/packager-css-2.6.1"
+      sources."@parcel/packager-html-2.6.1"
+      sources."@parcel/packager-js-2.6.1"
+      sources."@parcel/packager-raw-2.6.1"
+      sources."@parcel/packager-svg-2.6.1"
+      sources."@parcel/plugin-2.6.1"
+      sources."@parcel/reporter-cli-2.6.1"
+      sources."@parcel/reporter-dev-server-2.6.1"
+      sources."@parcel/resolver-default-2.6.1"
+      sources."@parcel/runtime-browser-hmr-2.6.1"
+      sources."@parcel/runtime-js-2.6.1"
+      sources."@parcel/runtime-react-refresh-2.6.1"
+      sources."@parcel/runtime-service-worker-2.6.1"
       sources."@parcel/source-map-2.0.5"
-      sources."@parcel/transformer-babel-2.6.0"
-      sources."@parcel/transformer-css-2.6.0"
-      (sources."@parcel/transformer-html-2.6.0" // {
+      sources."@parcel/transformer-babel-2.6.1"
+      sources."@parcel/transformer-css-2.6.1"
+      (sources."@parcel/transformer-html-2.6.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-image-2.6.0"
-      sources."@parcel/transformer-js-2.6.0"
-      sources."@parcel/transformer-json-2.6.0"
-      sources."@parcel/transformer-postcss-2.6.0"
-      (sources."@parcel/transformer-posthtml-2.6.0" // {
+      sources."@parcel/transformer-image-2.6.1"
+      sources."@parcel/transformer-js-2.6.1"
+      sources."@parcel/transformer-json-2.6.1"
+      sources."@parcel/transformer-postcss-2.6.1"
+      (sources."@parcel/transformer-posthtml-2.6.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/transformer-raw-2.6.0"
-      sources."@parcel/transformer-react-refresh-wrap-2.6.0"
-      (sources."@parcel/transformer-svg-2.6.0" // {
+      sources."@parcel/transformer-raw-2.6.1"
+      sources."@parcel/transformer-react-refresh-wrap-2.6.1"
+      (sources."@parcel/transformer-svg-2.6.1" // {
         dependencies = [
           sources."posthtml-parser-0.10.2"
         ];
       })
-      sources."@parcel/types-2.6.0"
-      sources."@parcel/utils-2.6.0"
+      sources."@parcel/types-2.6.1"
+      sources."@parcel/utils-2.6.1"
       (sources."@parcel/watcher-2.0.5" // {
         dependencies = [
           sources."node-addon-api-3.2.1"
         ];
       })
-      sources."@parcel/workers-2.6.0"
-      sources."@swc/helpers-0.3.17"
+      sources."@parcel/workers-2.6.1"
+      sources."@swc/helpers-0.4.2"
       sources."@trysound/sax-0.2.0"
       sources."@types/parse-json-4.0.0"
       sources."abortcontroller-polyfill-1.7.3"
@@ -115613,7 +116861,7 @@ in
       sources."browserslist-4.20.4"
       sources."buffer-from-1.1.2"
       sources."callsites-3.1.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."ansi-styles-4.3.0"
@@ -115644,7 +116892,7 @@ in
       sources."domutils-2.8.0"
       sources."dotenv-7.0.0"
       sources."dotenv-expand-5.1.0"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."entities-3.0.1"
       sources."error-ex-1.3.2"
       sources."escalade-3.1.1"
@@ -115661,13 +116909,7 @@ in
       sources."json-parse-even-better-errors-2.3.1"
       sources."json5-2.2.1"
       sources."lines-and-columns-1.2.4"
-      sources."lmdb-2.3.10"
-      sources."lmdb-darwin-arm64-2.3.10"
-      sources."lmdb-darwin-x64-2.3.10"
-      sources."lmdb-linux-arm-2.3.10"
-      sources."lmdb-linux-arm64-2.3.10"
-      sources."lmdb-linux-x64-2.3.10"
-      sources."lmdb-win32-x64-2.3.10"
+      sources."lmdb-2.5.2"
       sources."mdn-data-2.0.14"
       sources."msgpackr-1.6.1"
       (sources."msgpackr-extract-2.0.2" // {
@@ -115675,10 +116917,9 @@ in
           sources."node-gyp-build-optional-packages-5.0.2"
         ];
       })
-      sources."nan-2.16.0"
       sources."node-addon-api-4.3.0"
       sources."node-gyp-build-4.4.0"
-      sources."node-gyp-build-optional-packages-4.3.5"
+      sources."node-gyp-build-optional-packages-5.0.3"
       sources."node-releases-2.0.5"
       sources."nth-check-2.1.1"
       sources."nullthrows-1.1.1"
@@ -115703,7 +116944,7 @@ in
       sources."supports-color-5.5.0"
       sources."svgo-2.8.0"
       sources."term-size-2.2.1"
-      (sources."terser-5.14.0" // {
+      (sources."terser-5.14.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -115980,7 +117221,7 @@ in
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
       sources."type-is-1.6.18"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."unix-dgram-2.0.4"
       sources."unpipe-1.0.0"
       sources."uri-js-4.4.1"
@@ -116322,7 +117563,7 @@ in
       sources."redent-1.0.0"
       sources."regexp.prototype.flags-1.4.3"
       sources."repeating-2.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."restore-cursor-2.0.0"
       sources."reverse-http-1.3.0"
       sources."rimraf-2.7.1"
@@ -116929,7 +118170,7 @@ in
       sources."rc-1.2.8"
       sources."readable-stream-2.3.7"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."safe-buffer-5.1.2"
@@ -117162,7 +118403,7 @@ in
       sources."readable-stream-1.1.14"
       sources."readdirp-3.6.0"
       sources."require-in-the-middle-5.1.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."run-series-1.1.9"
       sources."safe-buffer-5.2.1"
       sources."safer-buffer-2.1.2"
@@ -117186,7 +118427,7 @@ in
       sources."string_decoder-0.10.31"
       sources."supports-color-7.2.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
-      sources."systeminformation-5.11.16"
+      sources."systeminformation-5.11.21"
       sources."to-regex-range-5.0.1"
       sources."toidentifier-1.0.1"
       sources."tslib-2.4.0"
@@ -117222,10 +118463,10 @@ in
   pnpm = nodeEnv.buildNodePackage {
     name = "pnpm";
     packageName = "pnpm";
-    version = "7.1.9";
+    version = "7.3.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pnpm/-/pnpm-7.1.9.tgz";
-      sha512 = "YWA+iqayHb0MndHTyqvVPKQVYVCOoBYlQNLP3hAf2DT/Iw2EHVcP18yCT+xnsPNvkC4VYfQepE6AZvySQue1TA==";
+      url = "https://registry.npmjs.org/pnpm/-/pnpm-7.3.0.tgz";
+      sha512 = "HOXT6V+AznAyjL2Ay3TuuJQucsEguUiKjqyQq4WPPwOpaaILhkKvu8Nn1/OQWGi9V6T7OciyrctAKeYyCha6Ow==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -117429,10 +118670,10 @@ in
   prettier = nodeEnv.buildNodePackage {
     name = "prettier";
     packageName = "prettier";
-    version = "2.6.2";
+    version = "2.7.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz";
-      sha512 = "PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==";
+      url = "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz";
+      sha512 = "ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -117462,8 +118703,8 @@ in
       sources."minimist-1.2.6"
       sources."nanolru-1.0.0"
       sources."path-parse-1.0.7"
-      sources."prettier-2.6.2"
-      sources."resolve-1.22.0"
+      sources."prettier-2.7.1"
+      sources."resolve-1.22.1"
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
     ];
@@ -117504,13 +118745,13 @@ in
   prisma = nodeEnv.buildNodePackage {
     name = "prisma";
     packageName = "prisma";
-    version = "3.15.0";
+    version = "3.15.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/prisma/-/prisma-3.15.0.tgz";
-      sha512 = "HL1kGDuFi9PdhbVLYsQO9vAH9uRFAHk7ifUOQxSrzUDs7R4VfLtg45VvXz8VHwcgLY5h0OrDVe1TdEX7a4o9tg==";
+      url = "https://registry.npmjs.org/prisma/-/prisma-3.15.2.tgz";
+      sha512 = "nMNSMZvtwrvoEQ/mui8L/aiCLZRCj5t6L3yujKpcDhIPk7garp8tL4nMx2+oYsN0FWBacevJhazfXAbV1kfBzA==";
     };
     dependencies = [
-      sources."@prisma/engines-3.15.0-29.b9297dc3a59307060c1c39d7e4f5765066f38372"
+      sources."@prisma/engines-3.15.1-1.461d6a05159055555eb7dfb337c9fb271cbd4d7e"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -117599,10 +118840,10 @@ in
   pulp = nodeEnv.buildNodePackage {
     name = "pulp";
     packageName = "pulp";
-    version = "16.0.1";
+    version = "16.0.2";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pulp/-/pulp-16.0.1.tgz";
-      sha512 = "cz8q10m3JLqmxOwp5JBNFAdgMx89UGyGlp4hHOp4lImNPcDUmw7e+991x10tQXYxRy77tfQS1HUFsFspV85jvQ==";
+      url = "https://registry.npmjs.org/pulp/-/pulp-16.0.2.tgz";
+      sha512 = "dvLRBMP2q1hgsHm9xRGskWJdx/Q3fDugLEAlT1zJIKRP7x/EWirMDi31jAWmM7oLkKC+3EedJ7i9d9NHeSb87A==";
     };
     dependencies = [
       sources."JSONStream-1.3.5"
@@ -117804,7 +119045,7 @@ in
           sources."string_decoder-1.1.1"
         ];
       })
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."rimraf-2.7.1"
       sources."ripemd160-2.0.2"
       sources."safe-buffer-5.2.1"
@@ -118033,7 +119274,7 @@ in
       sources."rc-1.2.8"
       sources."readline-sync-1.4.10"
       sources."register-protocol-win32-1.1.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."semver-6.3.0"
@@ -118062,10 +119303,10 @@ in
   pyright = nodeEnv.buildNodePackage {
     name = "pyright";
     packageName = "pyright";
-    version = "1.1.253";
+    version = "1.1.254";
     src = fetchurl {
-      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.253.tgz";
-      sha512 = "z5Ou+Gj5V6TE0ysukdAeujUuKleIwoy32SrtcxWgVcVm+2i8HqPq3AZcLvnKmzK5mL4NC/hP/3uWTmZDrxs6iA==";
+      url = "https://registry.npmjs.org/pyright/-/pyright-1.1.254.tgz";
+      sha512 = "YDbIqr55EkwRCFSVjWxj8KOwBTMVK1U3HLLdqp+W3n+88S31YbRERrCni9izmtt5i4wnuhf7oRI/9K8KwLxmgQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -118210,7 +119451,7 @@ in
       sources."reduce-flatten-1.0.1"
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."safe-buffer-5.1.2"
       sources."safer-buffer-2.1.2"
       sources."semver-5.7.1"
@@ -118426,8 +119667,8 @@ in
       sources."@ampproject/remapping-2.2.0"
       sources."@babel/cli-7.17.10"
       sources."@babel/code-frame-7.16.7"
-      sources."@babel/compat-data-7.17.10"
-      (sources."@babel/core-7.18.2" // {
+      sources."@babel/compat-data-7.18.5"
+      (sources."@babel/core-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -118470,7 +119711,7 @@ in
       sources."@babel/helper-wrap-function-7.16.8"
       sources."@babel/helpers-7.18.2"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12"
       sources."@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12"
       sources."@babel/plugin-proposal-async-generator-functions-7.17.12"
@@ -118522,10 +119763,10 @@ in
       sources."@babel/plugin-transform-member-expression-literals-7.16.7"
       sources."@babel/plugin-transform-modules-amd-7.18.0"
       sources."@babel/plugin-transform-modules-commonjs-7.18.2"
-      sources."@babel/plugin-transform-modules-systemjs-7.18.4"
+      sources."@babel/plugin-transform-modules-systemjs-7.18.5"
       sources."@babel/plugin-transform-modules-umd-7.18.0"
       sources."@babel/plugin-transform-named-capturing-groups-regex-7.17.12"
-      sources."@babel/plugin-transform-new-target-7.17.12"
+      sources."@babel/plugin-transform-new-target-7.18.5"
       sources."@babel/plugin-transform-object-super-7.16.7"
       sources."@babel/plugin-transform-parameters-7.17.12"
       sources."@babel/plugin-transform-property-literals-7.16.7"
@@ -118535,7 +119776,7 @@ in
       sources."@babel/plugin-transform-react-pure-annotations-7.18.0"
       sources."@babel/plugin-transform-regenerator-7.18.0"
       sources."@babel/plugin-transform-reserved-words-7.17.12"
-      (sources."@babel/plugin-transform-runtime-7.18.2" // {
+      (sources."@babel/plugin-transform-runtime-7.18.5" // {
         dependencies = [
           sources."semver-6.3.0"
         ];
@@ -118558,7 +119799,7 @@ in
       sources."@babel/register-7.17.7"
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
       sources."@jridgewell/gen-mapping-0.1.1"
       sources."@jridgewell/resolve-uri-3.0.7"
@@ -118570,7 +119811,7 @@ in
       sources."@types/glob-7.2.0"
       sources."@types/json-schema-7.0.11"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/parse-json-4.0.0"
       sources."@types/q-1.5.5"
       sources."@webassemblyjs/ast-1.9.0"
@@ -118763,7 +120004,7 @@ in
       sources."camel-case-3.0.0"
       sources."camelcase-5.3.1"
       sources."caniuse-api-3.0.0"
-      sources."caniuse-lite-1.0.30001351"
+      sources."caniuse-lite-1.0.30001356"
       sources."case-sensitive-paths-webpack-plugin-2.4.0"
       sources."caw-2.0.1"
       sources."chalk-2.4.2"
@@ -118843,7 +120084,7 @@ in
       sources."copy-concurrently-1.0.5"
       sources."copy-descriptor-0.1.1"
       sources."core-js-2.6.12"
-      (sources."core-js-compat-3.22.8" // {
+      (sources."core-js-compat-3.23.1" // {
         dependencies = [
           sources."semver-7.0.0"
         ];
@@ -118984,7 +120225,7 @@ in
       sources."duplexify-3.7.1"
       sources."ee-first-1.1.1"
       sources."ejs-2.7.4"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       (sources."elliptic-6.5.4" // {
         dependencies = [
           sources."bn.js-4.12.0"
@@ -119737,7 +120978,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-2.0.0"
       sources."requires-port-1.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       (sources."resolve-cwd-2.0.0" // {
         dependencies = [
           sources."resolve-from-3.0.0"
@@ -120335,7 +121576,7 @@ in
       sources."whatwg-url-10.0.0"
       sources."word-wrap-1.2.3"
       sources."wrap-ansi-7.0.0"
-      sources."ws-8.7.0"
+      sources."ws-8.8.0"
       sources."xml-name-validator-4.0.0"
       sources."xmlchars-2.2.0"
       sources."y18n-5.0.8"
@@ -120371,12 +121612,12 @@ in
       sources."@babel/helper-split-export-declaration-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@babel/parser-7.18.4"
+      sources."@babel/parser-7.18.5"
       sources."@babel/runtime-7.18.3"
       sources."@babel/template-7.16.7"
-      sources."@babel/traverse-7.18.2"
+      sources."@babel/traverse-7.18.5"
       sources."@babel/types-7.18.4"
-      sources."@emotion/is-prop-valid-1.1.2"
+      sources."@emotion/is-prop-valid-1.1.3"
       sources."@emotion/memoize-0.7.5"
       sources."@emotion/stylis-0.8.5"
       sources."@emotion/unitless-0.7.5"
@@ -120387,7 +121628,7 @@ in
       sources."@jridgewell/sourcemap-codec-1.4.13"
       sources."@jridgewell/trace-mapping-0.3.13"
       sources."@redocly/ajv-8.6.4"
-      sources."@redocly/openapi-core-1.0.0-beta.100"
+      sources."@redocly/openapi-core-1.0.0-beta.102"
       sources."@types/json-schema-7.0.11"
       sources."@types/node-14.18.21"
       sources."ansi-regex-5.0.1"
@@ -120522,7 +121763,7 @@ in
       sources."loose-envify-1.4.0"
       sources."lunr-2.3.9"
       sources."mark.js-8.11.1"
-      sources."marked-4.0.16"
+      sources."marked-4.0.17"
       sources."md5.js-1.3.5"
       (sources."miller-rabin-4.0.1" // {
         dependencies = [
@@ -120628,7 +121869,7 @@ in
       sources."to-regex-range-5.0.1"
       sources."tr46-0.0.3"
       sources."tty-browserify-0.0.0"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       (sources."uri-js-4.4.1" // {
         dependencies = [
           sources."punycode-2.1.1"
@@ -120775,7 +122016,7 @@ in
       sources."read-pkg-3.0.0"
       sources."read-pkg-up-3.0.0"
       sources."redent-2.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."restore-cursor-3.1.0"
       sources."scheduler-0.18.0"
       sources."semver-5.7.1"
@@ -121051,7 +122292,7 @@ in
         ];
       })
       sources."readdirp-3.6.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."responselike-1.0.2"
       sources."reveal.js-4.3.1"
@@ -121207,15 +122448,15 @@ in
       sources."@types/json-schema-7.0.11"
       sources."@types/node-14.17.34"
       sources."@types/vscode-1.66.0"
-      sources."@typescript-eslint/eslint-plugin-5.27.1"
-      sources."@typescript-eslint/parser-5.27.1"
-      sources."@typescript-eslint/scope-manager-5.27.1"
-      sources."@typescript-eslint/type-utils-5.27.1"
-      sources."@typescript-eslint/types-5.27.1"
-      sources."@typescript-eslint/typescript-estree-5.27.1"
-      sources."@typescript-eslint/utils-5.27.1"
-      sources."@typescript-eslint/visitor-keys-5.27.1"
-      sources."@vscode/test-electron-2.1.3"
+      sources."@typescript-eslint/eslint-plugin-5.28.0"
+      sources."@typescript-eslint/parser-5.28.0"
+      sources."@typescript-eslint/scope-manager-5.28.0"
+      sources."@typescript-eslint/type-utils-5.28.0"
+      sources."@typescript-eslint/types-5.28.0"
+      sources."@typescript-eslint/typescript-estree-5.28.0"
+      sources."@typescript-eslint/utils-5.28.0"
+      sources."@typescript-eslint/visitor-keys-5.28.0"
+      sources."@vscode/test-electron-2.1.4"
       sources."acorn-8.7.1"
       sources."acorn-jsx-5.3.2"
       sources."agent-base-6.0.2"
@@ -121332,7 +122573,7 @@ in
       sources."entities-4.3.0"
       sources."escalade-3.1.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-8.17.0" // {
+      (sources."eslint-8.18.0" // {
         dependencies = [
           sources."eslint-scope-7.1.1"
           sources."estraverse-5.3.0"
@@ -121517,7 +122758,7 @@ in
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
       sources."typed-rest-client-1.8.9"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."typescript-formatter-7.2.2"
       sources."uc.micro-1.0.6"
       sources."underscore-1.13.4"
@@ -121905,7 +123146,7 @@ in
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
       sources."@types/lodash-4.14.182"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."adm-zip-0.5.9"
       sources."agent-base-6.0.2"
@@ -121928,10 +123169,11 @@ in
       sources."archiver-utils-2.1.0"
       sources."argparse-1.0.10"
       sources."array-union-2.1.0"
+      sources."asap-2.0.6"
       sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
-      (sources."aws-sdk-2.1151.0" // {
+      (sources."aws-sdk-2.1157.0" // {
         dependencies = [
           sources."buffer-4.9.2"
           sources."ieee754-1.1.13"
@@ -121976,7 +123218,7 @@ in
       sources."child-process-ext-2.1.1"
       sources."chokidar-3.5.3"
       sources."chownr-2.0.0"
-      sources."ci-info-3.3.1"
+      sources."ci-info-3.3.2"
       sources."cli-color-2.0.2"
       sources."cli-cursor-3.1.0"
       sources."cli-progress-footer-2.3.2"
@@ -122067,6 +123309,7 @@ in
       sources."defer-to-connect-2.0.1"
       sources."deferred-0.7.11"
       sources."delayed-stream-1.0.0"
+      sources."dezalgo-1.0.3"
       sources."dir-glob-3.0.1"
       sources."dotenv-10.0.0"
       sources."dotenv-expand-5.1.0"
@@ -122091,10 +123334,10 @@ in
       sources."ext-1.6.0"
       sources."ext-list-2.2.2"
       sources."ext-name-5.0.0"
-      sources."extend-3.0.2"
       sources."external-editor-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-glob-3.2.11"
+      sources."fast-safe-stringify-2.1.1"
       sources."fastest-levenshtein-1.0.12"
       sources."fastq-1.13.0"
       sources."fd-slicer-1.1.0"
@@ -122107,8 +123350,12 @@ in
       sources."find-requires-1.0.0"
       sources."flat-5.0.2"
       sources."follow-redirects-1.15.1"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.6"
+      sources."form-data-4.0.0"
+      (sources."formidable-2.0.1" // {
+        dependencies = [
+          sources."qs-6.9.3"
+        ];
+      })
       sources."fs-constants-1.0.0"
       sources."fs-extra-9.1.0"
       sources."fs-minipass-2.1.0"
@@ -122128,6 +123375,7 @@ in
       sources."has-1.0.3"
       sources."has-flag-3.0.0"
       sources."has-symbols-1.0.3"
+      sources."hexoid-1.0.0"
       sources."http-cache-semantics-4.1.0"
       sources."http2-wrapper-1.0.3"
       sources."https-proxy-agent-5.0.1"
@@ -122197,13 +123445,13 @@ in
       sources."merge2-1.4.1"
       sources."methods-1.1.2"
       sources."micromatch-4.0.5"
-      sources."mime-1.6.0"
+      sources."mime-2.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
       sources."mimic-fn-2.1.0"
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -122232,7 +123480,7 @@ in
       sources."pako-1.0.11"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-loader-1.0.10"
+      sources."path-loader-1.0.12"
       sources."path-type-4.0.0"
       sources."path2-0.1.0"
       sources."peek-readable-4.1.0"
@@ -122277,7 +123525,7 @@ in
       sources."shebang-regex-1.0.0"
       sources."side-channel-1.0.4"
       sources."signal-exit-3.0.7"
-      sources."simple-git-3.7.1"
+      sources."simple-git-3.8.0"
       sources."slash-3.0.0"
       sources."sort-keys-1.1.2"
       sources."sort-keys-length-1.0.1"
@@ -122295,9 +123543,9 @@ in
       sources."strip-dirs-2.1.0"
       sources."strip-outer-1.0.1"
       sources."strtok3-6.3.0"
-      (sources."superagent-3.8.3" // {
+      (sources."superagent-7.1.6" // {
         dependencies = [
-          sources."debug-3.2.7"
+          sources."readable-stream-3.6.0"
         ];
       })
       (sources."supports-color-8.1.1" // {
@@ -123004,10 +124252,10 @@ in
   snyk = nodeEnv.buildNodePackage {
     name = "snyk";
     packageName = "snyk";
-    version = "1.947.0";
+    version = "1.953.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/snyk/-/snyk-1.947.0.tgz";
-      sha512 = "/u+HyhaIaFhnrpn+aOiGR0ts9ZR7mr6uiqgRn5EQIwaFKpCFOEnOJTlQAM25ggomqmxRldArMMXe4dBWw855LA==";
+      url = "https://registry.npmjs.org/snyk/-/snyk-1.953.0.tgz";
+      sha512 = "H0nx9cdFPY16CvCrbBTtSq9Za0Hyw5+w3pYlV2MR61FlgcO8izvD4p8mzYZdqyxGTZKiLUR3pOKpYk3ewohMBQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -123030,7 +124278,7 @@ in
       sources."@types/component-emitter-1.2.11"
       sources."@types/cookie-0.4.1"
       sources."@types/cors-2.8.12"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."accepts-1.3.8"
       sources."base64id-2.0.0"
       sources."component-emitter-1.3.0"
@@ -123224,10 +124472,10 @@ in
   sql-formatter = nodeEnv.buildNodePackage {
     name = "sql-formatter";
     packageName = "sql-formatter";
-    version = "6.1.2";
+    version = "7.0.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-6.1.2.tgz";
-      sha512 = "09AiPmA6zDq82IBXOj5kN33VeAqaV92enkoonlhJge0fmfTESiYs3pwsntGKxa1C89xj/9MoHlNeqMmCr23BJw==";
+      url = "https://registry.npmjs.org/sql-formatter/-/sql-formatter-7.0.1.tgz";
+      sha512 = "8YsnJowfW01iClXzpyBSbUbGO9qU6uGbt1alRtj0EaigZ+temgdMCteui9ciCs7qOzbRYiVwpw6Gd5Ld3ap+Hw==";
     };
     dependencies = [
       sources."argparse-2.0.1"
@@ -123235,7 +124483,7 @@ in
     buildInputs = globalBuildInputs;
     meta = {
       description = "Format whitespace in a SQL query to make it more readable";
-      homepage = "https://github.com/zeroturnaround/sql-formatter#readme";
+      homepage = "https://github.com/sql-formatter-org/sql-formatter#readme";
       license = "MIT";
     };
     production = true;
@@ -123913,7 +125161,7 @@ in
       sources."remove-trailing-separator-1.1.0"
       sources."repeat-element-1.1.4"
       sources."repeat-string-1.6.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-url-0.2.1"
       sources."restore-cursor-1.0.1"
       sources."resumer-0.0.0"
@@ -124058,7 +125306,7 @@ in
       sources."ssb-replicate-1.3.3"
       sources."ssb-typescript-2.8.0"
       sources."ssb-unix-socket-1.0.0"
-      sources."ssb-uri2-1.8.1"
+      sources."ssb-uri2-1.9.0"
       (sources."ssb-validate-4.1.4" // {
         dependencies = [
           sources."ssb-keys-8.4.0"
@@ -124269,7 +125517,7 @@ in
       sources."async-1.5.2"
       sources."async-limiter-1.0.1"
       sources."asynckit-0.4.0"
-      (sources."aws-sdk-2.1151.0" // {
+      (sources."aws-sdk-2.1157.0" // {
         dependencies = [
           sources."uuid-8.0.0"
         ];
@@ -124395,6 +125643,7 @@ in
       sources."depd-2.0.0"
       sources."deref-0.6.4"
       sources."destroy-1.2.0"
+      sources."dezalgo-1.0.3"
       sources."dicer-0.2.5"
       sources."doctypes-1.1.0"
       sources."drange-1.1.1"
@@ -124457,6 +125706,7 @@ in
       sources."faker-3.1.0"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
+      sources."fast-safe-stringify-2.1.1"
       sources."fd-slicer-1.1.0"
       sources."finalhandler-1.2.0"
       sources."find-up-3.0.0"
@@ -124499,6 +125749,7 @@ in
       sources."has-symbols-1.0.3"
       sources."has-tostringtag-1.0.0"
       sources."hawk-3.1.3"
+      sources."hexoid-1.0.0"
       sources."highlight.js-8.2.0"
       (sources."hipchatter-0.3.2" // {
         dependencies = [
@@ -124692,7 +125943,7 @@ in
       sources."path-exists-3.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-2.0.1"
-      sources."path-loader-1.0.10"
+      sources."path-loader-1.0.12"
       sources."path-parse-1.0.7"
       sources."path-to-regexp-0.1.7"
       sources."path-type-1.1.0"
@@ -124771,7 +126022,7 @@ in
       sources."require-directory-2.1.1"
       sources."require-main-filename-1.0.1"
       sources."requires-port-1.0.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."ret-0.2.2"
       sources."rethinkdb-2.4.2"
       sources."retry-0.9.0"
@@ -124862,13 +126113,24 @@ in
       sources."strip-ansi-3.0.1"
       sources."strip-bom-2.0.0"
       sources."strip-eof-1.0.0"
-      (sources."superagent-3.8.3" // {
+      (sources."superagent-7.1.6" // {
         dependencies = [
-          sources."debug-3.2.7"
-          sources."form-data-2.5.1"
+          sources."debug-4.3.4"
+          sources."form-data-4.0.0"
+          (sources."formidable-2.0.1" // {
+            dependencies = [
+              sources."qs-6.9.3"
+            ];
+          })
+          sources."lru-cache-6.0.0"
+          sources."mime-2.6.0"
+          sources."ms-2.1.2"
           sources."qs-6.10.5"
-          sources."readable-stream-2.3.7"
-          sources."string_decoder-1.1.1"
+          sources."readable-stream-3.6.0"
+          sources."safe-buffer-5.2.1"
+          sources."semver-7.3.7"
+          sources."string_decoder-1.3.0"
+          sources."yallist-4.0.0"
         ];
       })
       sources."supports-color-2.0.0"
@@ -125045,16 +126307,16 @@ in
   stylelint = nodeEnv.buildNodePackage {
     name = "stylelint";
     packageName = "stylelint";
-    version = "14.9.0";
+    version = "14.9.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/stylelint/-/stylelint-14.9.0.tgz";
-      sha512 = "+xsQ4uKS56RQs8AGYx2CXc9nhWyPR7c/G0RqyiKgWZx2LuE3VJnIhGRQXUfnGQXOqBPHxNjMCHiK5NNQRB52sw==";
+      url = "https://registry.npmjs.org/stylelint/-/stylelint-14.9.1.tgz";
+      sha512 = "RdAkJdPiLqHawCSnu21nE27MjNXaVd4WcOHA4vK5GtIGjScfhNnaOuWR2wWdfKFAvcWQPOYe311iveiVKSmwsA==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
-      sources."@csstools/selector-specificity-2.0.0"
+      sources."@csstools/selector-specificity-2.0.1"
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
@@ -125200,7 +126462,7 @@ in
       })
       sources."redent-3.0.0"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-5.0.0"
       sources."reusify-1.0.4"
       sources."rimraf-3.0.2"
@@ -125410,7 +126672,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/pug-2.0.6"
       sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
@@ -125466,7 +126728,7 @@ in
       sources."strip-indent-3.0.0"
       sources."svelte-preprocess-4.10.7"
       sources."to-regex-range-5.0.1"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."wrappy-1.0.2"
     ];
     buildInputs = globalBuildInputs;
@@ -125497,7 +126759,7 @@ in
       sources."@nodelib/fs.scandir-2.1.5"
       sources."@nodelib/fs.stat-2.0.5"
       sources."@nodelib/fs.walk-1.2.8"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/pug-2.0.6"
       sources."@types/sass-1.43.1"
       sources."anymatch-3.1.2"
@@ -125559,7 +126821,7 @@ in
       sources."svelte2tsx-0.5.10"
       sources."to-regex-range-5.0.1"
       sources."tslib-2.4.0"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."vscode-css-languageservice-5.1.13"
       (sources."vscode-emmet-helper-2.6.4" // {
         dependencies = [
@@ -125638,7 +126900,7 @@ in
     version = "0.7.5";
     src = fetchurl {
       url = "https://registry.npmjs.org/swagger/-/swagger-0.7.5.tgz";
-      sha1 = "3be6ee3d392c3b006fc7a9b5b2d60c7e834860fd";
+      sha512 = "xUTG61hCAq4/nNoHE/5oYcXoP6CAb1zS9JB+Ps+355rYZHvU5Ecil1IK6H+Fn1R/JKXot0ND0Lpe4D3+41zMUA==";
     };
     dependencies = [
       sources."URIjs-1.16.1"
@@ -125658,6 +126920,7 @@ in
       sources."arr-flatten-1.1.0"
       sources."arr-union-3.1.0"
       sources."array-unique-0.3.2"
+      sources."asap-2.0.6"
       sources."assign-symbols-1.0.0"
       sources."async-1.5.2"
       sources."async-each-1.0.3"
@@ -125765,6 +127028,7 @@ in
       sources."delayed-stream-1.0.0"
       sources."depd-2.0.0"
       sources."destroy-1.2.0"
+      sources."dezalgo-1.0.3"
       (sources."dicer-0.2.5" // {
         dependencies = [
           sources."isarray-0.0.1"
@@ -125802,7 +127066,7 @@ in
           sources."kind-of-5.1.0"
         ];
       })
-      sources."extend-3.0.2"
+      sources."extend-3.0.0"
       sources."extend-shallow-3.0.2"
       (sources."extglob-2.0.4" // {
         dependencies = [
@@ -125811,6 +127075,7 @@ in
           sources."is-extendable-0.1.1"
         ];
       })
+      sources."fast-safe-stringify-2.1.1"
       sources."figures-1.7.0"
       sources."file-uri-to-path-1.0.0"
       (sources."fill-range-4.0.0" // {
@@ -125821,8 +127086,12 @@ in
       })
       sources."finalhandler-1.1.2"
       sources."for-in-1.0.2"
-      sources."form-data-2.5.1"
-      sources."formidable-1.2.6"
+      sources."form-data-4.0.0"
+      (sources."formidable-2.0.1" // {
+        dependencies = [
+          sources."qs-6.9.3"
+        ];
+      })
       sources."fragment-cache-0.2.1"
       sources."fresh-0.5.2"
       sources."fs-extra-0.24.0"
@@ -125863,6 +127132,7 @@ in
           sources."kind-of-4.0.0"
         ];
       })
+      sources."hexoid-1.0.0"
       (sources."http-errors-2.0.0" // {
         dependencies = [
           sources."statuses-2.0.1"
@@ -126038,12 +127308,17 @@ in
       sources."path-is-absolute-1.0.1"
       sources."path-is-inside-1.0.2"
       sources."path-key-2.0.1"
-      (sources."path-loader-1.0.10" // {
+      (sources."path-loader-1.0.12" // {
         dependencies = [
-          sources."debug-3.2.7"
-          sources."ms-2.1.3"
+          sources."debug-4.3.4"
+          sources."lru-cache-6.0.0"
+          sources."mime-2.6.0"
+          sources."ms-2.1.2"
           sources."qs-6.10.5"
-          sources."superagent-3.8.3"
+          sources."readable-stream-3.6.0"
+          sources."semver-7.3.7"
+          sources."superagent-7.1.6"
+          sources."yallist-4.0.0"
         ];
       })
       (sources."path-to-regexp-1.8.0" // {
@@ -126182,7 +127457,6 @@ in
         dependencies = [
           sources."component-emitter-1.2.1"
           sources."cookiejar-2.0.6"
-          sources."extend-3.0.0"
           sources."form-data-1.0.0-rc3"
           sources."formidable-1.0.17"
           sources."isarray-0.0.1"
@@ -126222,7 +127496,7 @@ in
       sources."truncate-utf8-bytes-1.0.2"
       sources."type-is-1.6.18"
       sources."typedarray-0.0.6"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."undefsafe-2.0.5"
       (sources."union-value-1.0.1" // {
         dependencies = [
@@ -126282,10 +127556,10 @@ in
   tailwindcss = nodeEnv.buildNodePackage {
     name = "tailwindcss";
     packageName = "tailwindcss";
-    version = "3.0.24";
+    version = "3.1.3";
     src = fetchurl {
-      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.0.24.tgz";
-      sha512 = "H3uMmZNWzG6aqmg9q07ZIRNIawoiEcNFKDfL+YzOPuPsXuDXxJxB9icqzLgdzKNwjG3SAro2h9SYav8ewXNgig==";
+      url = "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.3.tgz";
+      sha512 = "PRJNYdSIthrb8hjmAyymEyEN8Yo61TMXpzyFUpxULeeyRn3Y3gpvuw6FlRTKrJvK7thSGKRnhT36VovVx4WeMA==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -126336,7 +127610,9 @@ in
       sources."path-parse-1.0.7"
       sources."picocolors-1.0.0"
       sources."picomatch-2.3.1"
+      sources."pify-2.3.0"
       sources."postcss-8.4.14"
+      sources."postcss-import-14.1.0"
       sources."postcss-js-4.0.0"
       sources."postcss-load-config-3.1.4"
       sources."postcss-nested-5.0.6"
@@ -126344,8 +127620,9 @@ in
       sources."postcss-value-parser-4.2.0"
       sources."queue-microtask-1.2.3"
       sources."quick-lru-5.1.1"
+      sources."read-cache-1.0.0"
       sources."readdirp-3.6.0"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."reusify-1.0.4"
       sources."run-parallel-1.2.0"
       sources."source-map-js-1.0.2"
@@ -126497,7 +127774,7 @@ in
     version = "1.1.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/teck-programmer/-/teck-programmer-1.1.1.tgz";
-      sha1 = "bd2b3b1e3b88ad3c7471bdc8a5244255564b69e1";
+      sha512 = "bfg3TwaPBG/R2FGPyUQD/MDhWcdqvuflBzI5VsQPJD/EuPnCE/rUPKXaLvhDaz2szzz8xYcv+t10yhKuX5PYWA==";
     };
     dependencies = [
       sources."node-addon-api-4.3.0"
@@ -126567,10 +127844,10 @@ in
   terser = nodeEnv.buildNodePackage {
     name = "terser";
     packageName = "terser";
-    version = "5.14.0";
+    version = "5.14.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/terser/-/terser-5.14.0.tgz";
-      sha512 = "JC6qfIEkPBd9j1SMO3Pfn+A6w2kQV54tv+ABQLgZr7dA3k/DL/OBoYSWxzVpZev3J+bUHXfr55L8Mox7AaNo6g==";
+      url = "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz";
+      sha512 = "+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==";
     };
     dependencies = [
       sources."@jridgewell/gen-mapping-0.3.1"
@@ -126769,7 +128046,7 @@ in
       sources."remark-parse-9.0.0"
       sources."repeat-string-1.6.1"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."rimraf-2.6.3"
       sources."semver-5.7.1"
       sources."slice-ansi-4.0.0"
@@ -126821,7 +128098,7 @@ in
     version = "1.0.4";
     src = fetchurl {
       url = "https://registry.npmjs.org/textlint-plugin-latex/-/textlint-plugin-latex-1.0.4.tgz";
-      sha1 = "9139c65b8da891c983b368a50a286338cd76777a";
+      sha512 = "ILjivll38Ry+R13ZYG8gGEjPxUP712MSZZIIqm7cV7iUIzysvKQyyf5hYHiNZD/+ijVzlje8RiB49IbvQ7K7mw==";
     };
     dependencies = [
       sources."@textlint/ast-node-types-4.4.3"
@@ -126843,7 +128120,7 @@ in
     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";
-      sha1 = "8d49dd02b3a7a88d7e6b32817f9e202c5c6596b9";
+      sha512 = "GcAtxXttLsZfN75tSCo3V8/RTlglvhnn7McNTgI0uS4ADr67RoD64bSVIs4p/nY3sMNsf1taPjKnhZIQLuVjZg==";
     };
     dependencies = [
       sources."call-bind-1.0.2"
@@ -127123,7 +128400,7 @@ in
       })
       sources."readable-stream-1.0.34"
       sources."redent-3.0.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."rehype-parse-7.0.1"
       sources."rehype-retext-2.0.4"
@@ -127134,7 +128411,7 @@ in
       sources."remark-retext-4.0.0"
       sources."remark-stringify-8.1.1"
       sources."repeat-string-1.6.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-5.0.0"
       sources."responselike-1.0.2"
       sources."retext-english-3.0.4"
@@ -127271,7 +128548,7 @@ in
     version = "1.0.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/textlint-rule-common-misspellings/-/textlint-rule-common-misspellings-1.0.1.tgz";
-      sha1 = "8c4133cf3bb59aa159199d2c9bced12413365774";
+      sha512 = "f5KWhQFJzJBUX3RirAS25aSkAaaOHeSHtBeb7d49O+vxnAX3dZBS5DB/e5M1kR4tifW4qae64oqWZygoGYWkjQ==";
     };
     dependencies = [
       sources."misspellings-1.1.0"
@@ -127677,7 +128954,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -127729,7 +129006,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       sources."css-select-4.3.0"
@@ -127866,7 +129143,7 @@ in
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
@@ -127910,7 +129187,7 @@ in
       sources."readable-web-to-node-stream-3.0.2"
       sources."regenerator-runtime-0.13.9"
       sources."regexp.prototype.flags-1.4.3"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.0"
@@ -128023,7 +129300,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -128075,7 +129352,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.2"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.2"
       sources."cors-2.8.5"
       sources."css-select-4.3.0"
@@ -128212,7 +129489,7 @@ in
       sources."minimalistic-assert-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.0.0"
@@ -128256,7 +129533,7 @@ in
       sources."readable-web-to-node-stream-3.0.2"
       sources."regenerator-runtime-0.13.9"
       sources."regexp.prototype.flags-1.4.3"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."resolve-alpn-1.2.1"
       sources."responselike-2.0.0"
@@ -128443,7 +129720,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -128668,7 +129945,7 @@ in
       sources."read-chunk-3.2.0"
       sources."readable-stream-3.6.0"
       sources."regenerator-runtime-0.13.9"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -129036,7 +130313,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -129117,7 +130394,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -129366,7 +130643,7 @@ in
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-2.0.0"
       sources."regenerator-runtime-0.13.9"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -129503,7 +130780,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."abstract-logging-2.0.1"
@@ -129584,7 +130861,7 @@ in
       sources."content-type-1.0.4"
       sources."cookie-0.4.0"
       sources."cookie-signature-1.0.6"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.2"
       sources."css-select-1.2.0"
       sources."css-what-2.1.3"
@@ -129833,7 +131110,7 @@ in
       sources."readable-stream-3.6.0"
       sources."readable-web-to-node-stream-2.0.0"
       sources."regenerator-runtime-0.13.9"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."request-2.88.2" // {
         dependencies = [
@@ -130104,7 +131381,7 @@ in
     version = "1.1.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/thelounge-theme-neuron-fork/-/thelounge-theme-neuron-fork-1.1.0.tgz";
-      sha1 = "2434cf23e20e62435e0d948ef33a1a8e4fc7dff7";
+      sha512 = "hrQVrISiiS4rhhb87VLtCzDg0sEh5cEOKQXREyhsTZzPU2yACWK3fs8hH3TJQvdYE+XOoLO8mTmVC744R48yAw==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -130230,7 +131507,7 @@ in
     version = "1.0.1";
     src = fetchurl {
       url = "https://registry.npmjs.org/thelounge-theme-scoutlink/-/thelounge-theme-scoutlink-1.0.1.tgz";
-      sha1 = "781b91e9944a9cca680a67f77db33b3e703eee19";
+      sha512 = "pMtYQ6yLX88mdk+NI+Ty10qJZJwSzlQnYAL978N0Rmd4t+Rx1nGHPyQtdYeunQEZH+4qbCSccBjZT+2sTN9AyQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -130399,14 +131676,14 @@ in
       sources."@octokit/core-3.6.0"
       sources."@octokit/endpoint-6.0.12"
       sources."@octokit/graphql-4.8.0"
-      sources."@octokit/openapi-types-11.2.0"
-      sources."@octokit/plugin-paginate-rest-2.17.0"
+      sources."@octokit/openapi-types-12.1.0"
+      sources."@octokit/plugin-paginate-rest-2.18.0"
       sources."@octokit/plugin-request-log-1.0.4"
-      sources."@octokit/plugin-rest-endpoint-methods-5.13.0"
+      sources."@octokit/plugin-rest-endpoint-methods-5.14.0"
       sources."@octokit/request-5.6.3"
       sources."@octokit/request-error-2.1.0"
       sources."@octokit/rest-18.12.0"
-      sources."@octokit/types-6.34.0"
+      sources."@octokit/types-6.35.0"
       sources."@xmldom/xmldom-0.8.2"
       sources."ajv-6.12.6"
       sources."asn1-0.2.6"
@@ -130471,7 +131748,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
-      sources."node-appc-1.1.4"
+      sources."node-appc-1.1.5"
       sources."node-fetch-2.6.7"
       sources."oauth-sign-0.9.0"
       sources."once-1.4.0"
@@ -130789,10 +132066,10 @@ in
       sources."@jridgewell/resolve-uri-3.0.7"
       sources."@jridgewell/sourcemap-codec-1.4.13"
       sources."@jridgewell/trace-mapping-0.3.9"
-      sources."@tsconfig/node10-1.0.8"
-      sources."@tsconfig/node12-1.0.9"
-      sources."@tsconfig/node14-1.0.1"
-      sources."@tsconfig/node16-1.0.2"
+      sources."@tsconfig/node10-1.0.9"
+      sources."@tsconfig/node12-1.0.11"
+      sources."@tsconfig/node14-1.0.3"
+      sources."@tsconfig/node16-1.0.3"
       sources."acorn-8.7.1"
       sources."acorn-walk-8.2.0"
       sources."arg-4.1.3"
@@ -130836,10 +132113,10 @@ in
   typescript = nodeEnv.buildNodePackage {
     name = "typescript";
     packageName = "typescript";
-    version = "4.7.3";
+    version = "4.7.4";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript/-/typescript-4.7.3.tgz";
-      sha512 = "WOkT3XYvrpXx4vMMqlD+8R8R37fZkjyLGlxavMc4iB8lrl8L0DeTcHbYgw/v0N/z9wAFsgBhcsF0ruoySS22mA==";
+      url = "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz";
+      sha512 = "C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -130854,10 +132131,10 @@ in
   typescript-language-server = nodeEnv.buildNodePackage {
     name = "typescript-language-server";
     packageName = "typescript-language-server";
-    version = "0.11.0";
+    version = "0.11.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.11.0.tgz";
-      sha512 = "8nfW0+Ei7/h6c2/KCeduPbFxMDVJWok/H593v+gajxXrOCX4VMyoEVsu7BswMyyah8GWDbcNdNi9c812eBtH2A==";
+      url = "https://registry.npmjs.org/typescript-language-server/-/typescript-language-server-0.11.1.tgz";
+      sha512 = "kcF4pbTHzYJWPj1RBRKZ1lrqjDGoy2sMevdNy+AakDur57JvTv8rlnN549rUJCoRR5th4LFhJ6zAo3zLFR1gNw==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -130946,10 +132223,10 @@ in
   uglify-js = nodeEnv.buildNodePackage {
     name = "uglify-js";
     packageName = "uglify-js";
-    version = "3.16.0";
+    version = "3.16.1";
     src = fetchurl {
-      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.0.tgz";
-      sha512 = "FEikl6bR30n0T3amyBh3LoiBdqHRy/f4H80+My34HOesOKyHfOsxAPAxOoqC0JUnC1amnO0IwkYC3sko51caSw==";
+      url = "https://registry.npmjs.org/uglify-js/-/uglify-js-3.16.1.tgz";
+      sha512 = "X5BGTIDH8U6IQ1TIRP62YC36k+ULAa1d59BxlWvPUJ1NkW5L3FwcGfEzuVvGmhJFBu0YJ5Ge25tmRISqCmLiRQ==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -131000,7 +132277,7 @@ in
       sources."@types/http-cache-semantics-4.0.1"
       sources."@types/json-buffer-3.0.0"
       sources."@types/keyv-3.1.4"
-      sources."@types/node-16.11.39"
+      sources."@types/node-16.11.41"
       sources."@types/responselike-1.0.0"
       sources."abbrev-1.1.1"
       sources."accepts-1.3.8"
@@ -131195,7 +132472,7 @@ in
           sources."safe-buffer-5.1.2"
         ];
       })
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."require-directory-2.1.1"
       sources."resolve-alpn-1.2.1"
@@ -131265,7 +132542,7 @@ in
         ];
       })
       sources."type-is-1.6.18"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."uid-safe-2.1.5"
       sources."unpipe-1.0.0"
       sources."util-deprecate-1.0.2"
@@ -131304,34 +132581,36 @@ in
   unified-language-server = nodeEnv.buildNodePackage {
     name = "unified-language-server";
     packageName = "unified-language-server";
-    version = "2.1.0";
+    version = "3.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/unified-language-server/-/unified-language-server-2.1.0.tgz";
-      sha512 = "OJA4rcB3hVvJ4tOYN9YW9EcmRyjTJTzZfbDfSTLy/86CFE8P/LoNEv5GeNR+cdy1+wrJj74jc9yuesB735ml8g==";
+      url = "https://registry.npmjs.org/unified-language-server/-/unified-language-server-3.0.0.tgz";
+      sha512 = "FT0nnxQ5WHXKO0kDK8xtOStGatzO6sw1sAiM3P3HuI6UXFoqcuq78iTNM+0NQ3s7mfDIPUd2zHyOsBEloIhA6w==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
       sources."@babel/helper-validator-identifier-7.16.7"
       sources."@babel/highlight-7.17.12"
+      sources."@npmcli/config-4.1.0"
+      sources."@npmcli/map-workspaces-2.0.3"
+      sources."@npmcli/name-from-folder-1.0.1"
       sources."@types/concat-stream-2.0.0"
       sources."@types/debug-4.1.7"
       sources."@types/is-empty-1.2.1"
-      sources."@types/js-yaml-4.0.5"
       sources."@types/ms-0.7.31"
-      sources."@types/node-17.0.41"
+      sources."@types/node-17.0.45"
       sources."@types/supports-color-8.1.1"
       sources."@types/unist-2.0.6"
+      sources."abbrev-1.1.1"
       sources."ansi-regex-6.0.1"
       sources."ansi-styles-3.2.1"
-      sources."argparse-2.0.1"
       sources."balanced-match-1.0.2"
-      sources."brace-expansion-1.1.11"
+      sources."brace-expansion-2.0.1"
       sources."buffer-from-1.1.2"
-      sources."builtins-4.1.0"
+      sources."builtins-5.0.1"
       sources."chalk-2.4.2"
+      sources."chownr-2.0.0"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
-      sources."concat-map-0.0.1"
       sources."concat-stream-2.0.0"
       sources."debug-4.3.4"
       sources."eastasianwidth-0.2.0"
@@ -131339,38 +132618,40 @@ in
       sources."error-ex-1.3.2"
       sources."escape-string-regexp-1.0.5"
       sources."fault-2.0.1"
-      sources."figgy-pudding-3.5.2"
-      sources."find-up-3.0.0"
+      sources."find-up-6.3.0"
       sources."format-0.2.2"
       sources."fs.realpath-1.0.0"
-      sources."glob-7.2.3"
+      sources."glob-8.0.3"
       sources."has-flag-3.0.0"
       sources."ignore-5.2.0"
-      sources."import-meta-resolve-1.1.1"
+      sources."import-meta-resolve-2.0.3"
+      sources."infer-owner-1.0.4"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
-      sources."ini-1.3.8"
+      sources."ini-3.0.0"
       sources."is-arrayish-0.2.1"
       sources."is-buffer-2.0.5"
       sources."is-empty-1.2.0"
-      sources."is-plain-obj-4.0.0"
+      sources."is-plain-obj-4.1.0"
       sources."js-tokens-4.0.0"
-      sources."js-yaml-4.1.0"
       sources."json-parse-even-better-errors-2.3.1"
-      sources."libnpmconfig-1.2.1"
       sources."lines-and-columns-2.0.3"
-      sources."load-plugin-4.0.1"
-      sources."locate-path-3.0.0"
+      sources."load-plugin-5.0.0"
+      sources."locate-path-7.1.1"
       sources."lru-cache-6.0.0"
-      sources."minimatch-3.1.2"
+      sources."minimatch-5.1.0"
+      sources."mkdirp-1.0.4"
+      sources."mkdirp-infer-owner-2.0.0"
       sources."ms-2.1.2"
+      sources."nopt-5.0.0"
+      sources."npm-normalize-package-bin-1.0.1"
       sources."once-1.4.0"
-      sources."p-limit-2.3.0"
-      sources."p-locate-3.0.0"
-      sources."p-try-2.2.0"
+      sources."p-limit-4.0.0"
+      sources."p-locate-6.0.0"
       sources."parse-json-6.0.2"
-      sources."path-exists-3.0.0"
-      sources."path-is-absolute-1.0.1"
+      sources."path-exists-5.0.0"
+      sources."proc-log-2.0.1"
+      sources."read-package-json-fast-2.0.3"
       sources."readable-stream-3.6.0"
       sources."safe-buffer-5.2.1"
       sources."semver-7.3.7"
@@ -131381,11 +132662,11 @@ in
       sources."to-vfile-7.2.3"
       sources."trough-2.1.0"
       sources."typedarray-0.0.6"
-      sources."unified-engine-9.1.0"
+      sources."unified-engine-10.0.0"
       sources."unist-util-inspect-7.0.0"
       sources."unist-util-stringify-position-3.0.2"
       sources."util-deprecate-1.0.2"
-      sources."vfile-5.3.2"
+      sources."vfile-5.3.4"
       sources."vfile-message-3.1.2"
       (sources."vfile-reporter-7.0.4" // {
         dependencies = [
@@ -131394,13 +132675,16 @@ in
       })
       sources."vfile-sort-3.0.0"
       sources."vfile-statistics-2.0.0"
-      sources."vscode-jsonrpc-6.0.0"
-      sources."vscode-languageserver-7.0.0"
-      sources."vscode-languageserver-protocol-3.16.0"
+      sources."vscode-jsonrpc-8.0.1"
+      sources."vscode-languageserver-8.0.1"
+      sources."vscode-languageserver-protocol-3.17.1"
       sources."vscode-languageserver-textdocument-1.0.5"
-      sources."vscode-languageserver-types-3.16.0"
+      sources."vscode-languageserver-types-3.17.1"
+      sources."walk-up-path-1.0.0"
       sources."wrappy-1.0.2"
       sources."yallist-4.0.0"
+      sources."yaml-2.1.1"
+      sources."yocto-queue-1.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -131485,7 +132769,7 @@ in
       })
       sources."mimic-response-2.1.0"
       sources."minimatch-3.1.2"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -131646,8 +132930,8 @@ in
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/busboy-0.3.2"
       sources."@types/cookie-0.4.1"
-      sources."@types/node-17.0.41"
-      (sources."@types/node-fetch-2.6.1" // {
+      sources."@types/node-18.0.0"
+      (sources."@types/node-fetch-2.6.2" // {
         dependencies = [
           sources."form-data-3.0.1"
         ];
@@ -131815,7 +133099,7 @@ in
       sources."mimic-response-1.0.1"
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -131891,7 +133175,7 @@ in
       sources."readable-stream-3.6.0"
       sources."regenerator-runtime-0.13.9"
       sources."regexp.prototype.flags-1.4.3"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."resolve-from-5.0.0"
       sources."responselike-1.0.2"
@@ -132123,14 +133407,14 @@ in
       sources."path-key-3.1.1"
       sources."path-parse-1.0.7"
       sources."prelude-ls-1.2.1"
-      sources."prettier-2.6.2"
+      sources."prettier-2.7.1"
       sources."progress-2.0.3"
       sources."pug-error-2.0.0"
       sources."pug-lexer-5.0.1"
       sources."punycode-2.1.1"
       sources."regexpp-3.2.0"
       sources."require-from-string-2.0.2"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-4.0.0"
       sources."rimraf-3.0.2"
       sources."semver-7.3.7"
@@ -132167,7 +133451,7 @@ in
       sources."tsutils-2.29.0"
       sources."type-check-0.4.0"
       sources."type-fest-0.20.2"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."uri-js-4.4.1"
       sources."v8-compile-cache-2.3.0"
       (sources."vue-eslint-parser-7.11.0" // {
@@ -132362,11 +133646,11 @@ in
       sha512 = "Un7gzQgvACjGtsT0Yll5QqHgL65a4mTK5ChgMnO4dgTZ3tuwJCaP84oztBqvuFZzN9QxA3C07J4QEQvf1xjcgQ==";
     };
     dependencies = [
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."jsonc-parser-3.0.0"
       sources."regenerator-runtime-0.13.9"
       sources."request-light-0.5.8"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."vscode-css-languageservice-5.4.2"
       sources."vscode-html-languageservice-4.2.5"
       sources."vscode-json-languageservice-4.2.1"
@@ -132407,7 +133691,7 @@ in
       sources."@types/json-schema-7.0.11"
       sources."@types/mocha-7.0.2"
       sources."@types/node-8.10.66"
-      sources."@types/vscode-1.67.0"
+      sources."@types/vscode-1.68.0"
       sources."@types/yauzl-2.10.0"
       sources."@ungap/promise-all-settled-1.1.2"
       sources."@webassemblyjs/ast-1.11.1"
@@ -132425,9 +133709,9 @@ in
       sources."@webassemblyjs/wasm-opt-1.11.1"
       sources."@webassemblyjs/wasm-parser-1.11.1"
       sources."@webassemblyjs/wast-printer-1.11.1"
-      sources."@webpack-cli/configtest-1.1.1"
-      sources."@webpack-cli/info-1.4.1"
-      sources."@webpack-cli/serve-1.6.1"
+      sources."@webpack-cli/configtest-1.2.0"
+      sources."@webpack-cli/info-1.5.0"
+      sources."@webpack-cli/serve-1.7.0"
       sources."@xtuc/ieee754-1.2.0"
       sources."@xtuc/long-4.2.2"
       sources."acorn-8.7.1"
@@ -132452,7 +133736,7 @@ in
       sources."buffer-from-1.1.2"
       sources."call-bind-1.0.2"
       sources."camelcase-6.3.0"
-      sources."caniuse-lite-1.0.30001352"
+      sources."caniuse-lite-1.0.30001356"
       (sources."chalk-4.1.2" // {
         dependencies = [
           sources."supports-color-7.2.0"
@@ -132473,7 +133757,7 @@ in
       sources."clone-deep-4.0.1"
       sources."color-convert-2.0.1"
       sources."color-name-1.1.4"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."commander-6.2.1"
       sources."concat-map-0.0.1"
       sources."core-util-is-1.0.3"
@@ -132492,7 +133776,7 @@ in
       sources."domelementtype-2.3.0"
       sources."domhandler-5.0.3"
       sources."domutils-3.0.1"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."emoji-regex-8.0.0"
       sources."emojis-list-3.0.0"
       sources."enhanced-resolve-5.9.3"
@@ -132510,7 +133794,6 @@ in
       })
       sources."estraverse-4.3.0"
       sources."events-3.3.0"
-      sources."execa-5.1.1"
       sources."fast-deep-equal-3.1.3"
       sources."fast-json-stable-stringify-2.1.0"
       sources."fastest-levenshtein-1.0.12"
@@ -132523,7 +133806,6 @@ in
       sources."function-bind-1.1.1"
       sources."get-caller-file-2.0.5"
       sources."get-intrinsic-1.1.2"
-      sources."get-stream-6.0.1"
       sources."glob-7.1.6"
       sources."glob-parent-5.1.2"
       sources."glob-to-regexp-0.4.1"
@@ -132534,7 +133816,6 @@ in
       sources."has-symbols-1.0.3"
       sources."he-1.2.0"
       sources."htmlparser2-8.0.1"
-      sources."human-signals-2.1.0"
       sources."import-local-3.1.0"
       sources."inflight-1.0.6"
       sources."inherits-2.0.4"
@@ -132547,7 +133828,6 @@ in
       sources."is-number-7.0.0"
       sources."is-plain-obj-2.1.0"
       sources."is-plain-object-2.0.4"
-      sources."is-stream-2.0.1"
       sources."isarray-0.0.1"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
@@ -132586,7 +133866,6 @@ in
       sources."mime-1.6.0"
       sources."mime-db-1.52.0"
       sources."mime-types-2.1.35"
-      sources."mimic-fn-2.1.0"
       sources."minimatch-3.0.4"
       sources."mocha-8.4.0"
       sources."ms-2.1.3"
@@ -132595,11 +133874,9 @@ in
       sources."neo-async-2.6.2"
       sources."node-releases-2.0.5"
       sources."normalize-path-3.0.0"
-      sources."npm-run-path-4.0.1"
       sources."nth-check-2.1.1"
       sources."object-inspect-1.12.2"
       sources."once-1.4.0"
-      sources."onetime-5.1.2"
       sources."os-homedir-1.0.2"
       sources."os-tmpdir-1.0.2"
       sources."osenv-0.1.5"
@@ -132634,7 +133911,7 @@ in
       sources."readdirp-3.5.0"
       sources."rechoir-0.7.1"
       sources."require-directory-2.1.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-cwd-3.0.0"
       sources."resolve-from-5.0.0"
       sources."safe-buffer-5.2.1"
@@ -132645,7 +133922,6 @@ in
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
       sources."side-channel-1.0.4"
-      sources."signal-exit-3.0.7"
       sources."source-map-0.6.1"
       sources."source-map-support-0.5.21"
       sources."sprintf-js-1.0.3"
@@ -132653,12 +133929,11 @@ in
       sources."string-width-2.1.1"
       sources."string_decoder-0.10.31"
       sources."strip-ansi-4.0.0"
-      sources."strip-final-newline-2.0.0"
       sources."strip-json-comments-3.1.1"
       sources."supports-color-8.1.1"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."tapable-2.2.1"
-      (sources."terser-5.14.0" // {
+      (sources."terser-5.14.1" // {
         dependencies = [
           sources."commander-2.20.3"
         ];
@@ -132680,7 +133955,7 @@ in
       sources."tslib-2.4.0"
       sources."tunnel-0.0.6"
       sources."typed-rest-client-1.8.9"
-      sources."typescript-4.7.3"
+      sources."typescript-4.7.4"
       sources."uc.micro-1.0.6"
       sources."underscore-1.13.4"
       sources."uri-js-4.4.1"
@@ -132701,7 +133976,7 @@ in
       sources."vscode-debugprotocol-1.51.0"
       sources."watchpack-2.4.0"
       sources."webpack-5.73.0"
-      (sources."webpack-cli-4.9.2" // {
+      (sources."webpack-cli-4.10.0" // {
         dependencies = [
           sources."commander-7.2.0"
         ];
@@ -132790,11 +134065,7 @@ in
       sources."cli-cursor-2.1.0"
       sources."cli-spinners-1.3.1"
       sources."cli-width-2.2.1"
-      sources."clone-2.1.2"
       sources."co-3.1.0"
-      sources."co-from-stream-0.0.0"
-      sources."co-fs-extra-1.2.1"
-      sources."co-read-0.0.1"
       sources."coffee-script-1.12.7"
       sources."color-convert-1.9.3"
       sources."color-name-1.1.3"
@@ -132807,6 +134078,7 @@ in
       sources."create-error-class-3.0.2"
       sources."cross-spawn-7.0.3"
       sources."dashdash-1.14.1"
+      sources."debug-4.3.4"
       sources."decompress-4.2.1"
       sources."decompress-tar-4.1.1"
       (sources."decompress-tarbz2-4.1.1" // {
@@ -132826,7 +134098,6 @@ in
       sources."download-git-repo-1.1.0"
       sources."duplexer3-0.1.4"
       sources."ecc-jsbn-0.1.2"
-      sources."enable-1.3.2"
       sources."end-of-stream-1.4.4"
       sources."escape-string-regexp-1.0.5"
       sources."esprima-4.0.1"
@@ -132845,7 +134116,6 @@ in
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
       sources."fs-constants-1.0.0"
-      sources."fs-extra-0.26.7"
       sources."fs.realpath-1.0.0"
       sources."get-proxy-2.1.0"
       sources."get-stream-3.0.0"
@@ -132887,10 +134157,8 @@ in
       sources."json-schema-0.4.0"
       sources."json-schema-traverse-0.4.1"
       sources."json-stringify-safe-5.0.1"
-      sources."jsonfile-2.4.0"
       sources."jsprim-1.4.2"
       sources."kind-of-6.0.3"
-      sources."klaw-1.3.1"
       sources."lodash-4.17.21"
       sources."log-symbols-2.2.0"
       sources."lowercase-keys-1.0.1"
@@ -132899,16 +134167,10 @@ in
           sources."pify-3.0.0"
         ];
       })
-      (sources."metalsmith-2.4.3" // {
+      (sources."metalsmith-2.5.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."commander-6.2.1"
-          sources."has-flag-4.0.0"
           sources."rimraf-3.0.2"
-          sources."supports-color-7.2.0"
         ];
       })
       sources."micromatch-4.0.5"
@@ -132918,6 +134180,7 @@ in
       sources."minimatch-3.1.2"
       sources."minimist-1.2.6"
       sources."mkdirp-0.5.6"
+      sources."ms-2.1.2"
       sources."multimatch-2.1.0"
       sources."mute-stream-0.0.7"
       sources."neo-async-2.6.2"
@@ -132991,8 +134254,6 @@ in
       sources."supports-color-5.5.0"
       sources."tar-stream-1.6.2"
       sources."through-2.3.8"
-      sources."thunkify-2.1.2"
-      sources."thunkify-wrap-1.0.4"
       sources."tildify-1.2.0"
       sources."timed-out-4.0.1"
       sources."tmp-0.0.33"
@@ -133003,10 +134264,9 @@ in
       sources."tslib-1.14.1"
       sources."tunnel-agent-0.6.0"
       sources."tweetnacl-0.14.5"
-      sources."uglify-js-3.16.0"
+      sources."uglify-js-3.16.1"
       sources."uid-0.0.2"
       sources."unbzip2-stream-1.4.3"
-      sources."unyield-0.0.1"
       sources."unzip-response-2.0.1"
       sources."uri-js-4.4.1"
       sources."url-parse-lax-1.0.0"
@@ -133066,7 +134326,7 @@ in
       sources."@starptech/rehype-webparser-0.10.0"
       sources."@starptech/webparser-0.10.0"
       sources."@szmarczak/http-timer-1.1.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/unist-2.0.6"
       sources."@types/vfile-3.0.2"
       sources."@types/vfile-message-2.0.0"
@@ -133659,7 +134919,7 @@ in
       sources."regenerator-runtime-0.11.1"
       sources."regex-not-1.0.2"
       sources."regexpp-2.0.1"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       sources."rehype-sort-attribute-values-2.0.1"
       sources."repeat-element-1.1.4"
@@ -133673,7 +134933,7 @@ in
           sources."resolve-from-1.0.1"
         ];
       })
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-from-5.0.0"
       sources."resolve-url-0.2.1"
       sources."responselike-1.0.2"
@@ -134027,7 +135287,7 @@ in
       sources."combined-stream-1.0.8"
       sources."concat-map-0.0.1"
       sources."console-control-strings-1.1.0"
-      sources."core-js-pure-3.22.8"
+      sources."core-js-pure-3.23.1"
       sources."cssom-0.4.4"
       (sources."cssstyle-2.3.0" // {
         dependencies = [
@@ -134099,7 +135359,7 @@ in
       sources."mime-types-2.1.35"
       sources."mimic-response-2.1.0"
       sources."minimatch-3.1.2"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minizlib-2.1.2"
       sources."mkdirp-1.0.4"
       sources."ms-2.1.2"
@@ -134184,10 +135444,10 @@ in
   web-ext = nodeEnv.buildNodePackage {
     name = "web-ext";
     packageName = "web-ext";
-    version = "6.8.0";
+    version = "7.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/web-ext/-/web-ext-6.8.0.tgz";
-      sha512 = "qZ3a4YVs0Vdqet44QRZEcNUQznkrfhsAkSOnZp57O4T4A9Bo3pamePSBeRqdPdJv9GF8ntKG84o3eV0MrEvLbw==";
+      url = "https://registry.npmjs.org/web-ext/-/web-ext-7.0.0.tgz";
+      sha512 = "+i2lfRWm4Br/zIkY1sbpQHkTb7fzDFS5rkAobNGWqhaYpFWdD7ZUaNkH0Y682Ut5rEiRX9IWKI+9hkQIchtIWw==";
     };
     dependencies = [
       sources."@babel/code-frame-7.16.7"
@@ -134203,54 +135463,43 @@ in
           sources."supports-color-5.5.0"
         ];
       })
-      sources."@babel/runtime-7.13.9"
-      sources."@devicefarmer/adbkit-2.11.3"
-      sources."@devicefarmer/adbkit-logcat-1.1.0"
-      sources."@devicefarmer/adbkit-monkey-1.0.1"
+      sources."@babel/runtime-7.18.3"
+      sources."@devicefarmer/adbkit-3.2.3"
+      sources."@devicefarmer/adbkit-logcat-2.1.2"
+      sources."@devicefarmer/adbkit-monkey-1.2.1"
       (sources."@eslint/eslintrc-1.3.0" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."espree-9.3.2"
-          sources."ms-2.1.2"
-        ];
-      })
-      (sources."@humanwhocodes/config-array-0.9.5" // {
-        dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
+          sources."ajv-6.12.6"
+          sources."json-schema-traverse-0.4.1"
+          sources."strip-json-comments-3.1.1"
         ];
       })
+      sources."@humanwhocodes/config-array-0.9.5"
       sources."@humanwhocodes/object-schema-1.2.1"
-      sources."@mdn/browser-compat-data-4.1.12"
+      sources."@mdn/browser-compat-data-5.0.1"
       sources."@sindresorhus/is-0.14.0"
       sources."@szmarczak/http-timer-1.1.2"
       sources."@types/minimatch-3.0.5"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/yauzl-2.9.2"
       sources."acorn-8.7.1"
       sources."acorn-jsx-5.3.2"
-      (sources."addons-linter-4.14.0" // {
-        dependencies = [
-          sources."source-map-support-0.5.21"
-          sources."yargs-17.4.0"
-        ];
-      })
+      sources."addons-linter-5.7.0"
       sources."addons-moz-compare-1.2.0"
-      sources."addons-scanner-utils-6.3.0"
+      sources."addons-scanner-utils-7.0.0"
       sources."adm-zip-0.5.9"
-      sources."ajv-6.12.6"
-      sources."ajv-merge-patch-4.1.0"
+      sources."ajv-8.11.0"
+      sources."ajv-merge-patch-5.0.1"
       sources."ansi-align-3.0.1"
       sources."ansi-regex-5.0.1"
       sources."ansi-styles-4.3.0"
       sources."any-promise-1.3.0"
       sources."argparse-2.0.1"
-      sources."array-differ-3.0.0"
-      sources."array-union-2.1.0"
-      sources."arrify-2.0.1"
+      sources."array-differ-4.0.0"
+      sources."array-union-3.0.1"
       sources."asn1-0.2.6"
       sources."assert-plus-1.0.0"
-      sources."async-0.2.10"
+      sources."async-3.2.4"
       sources."asynckit-0.4.0"
       sources."at-least-node-1.0.0"
       sources."atomic-sleep-1.0.0"
@@ -134258,9 +135507,13 @@ in
       sources."aws4-1.11.0"
       sources."balanced-match-1.0.2"
       sources."bcrypt-pbkdf-1.0.2"
-      sources."bluebird-2.9.34"
+      sources."bluebird-3.7.2"
       sources."boolbase-1.0.0"
-      sources."boxen-5.1.2"
+      (sources."boxen-5.1.2" // {
+        dependencies = [
+          sources."camelcase-6.3.0"
+        ];
+      })
       sources."brace-expansion-1.1.11"
       sources."buffer-crc32-0.2.13"
       sources."buffer-equal-constant-time-1.0.1"
@@ -134271,14 +135524,13 @@ in
           sources."lowercase-keys-2.0.0"
         ];
       })
-      sources."call-bind-1.0.2"
       sources."callsites-3.1.0"
-      sources."camelcase-6.2.0"
+      sources."camelcase-7.0.0"
       sources."caseless-0.12.0"
       sources."chalk-4.1.2"
-      sources."cheerio-1.0.0-rc.10"
-      sources."cheerio-select-1.6.0"
-      sources."chrome-launcher-0.15.0"
+      sources."cheerio-1.0.0-rc.11"
+      sources."cheerio-select-2.1.0"
+      sources."chrome-launcher-0.15.1"
       sources."ci-info-2.0.0"
       sources."cli-boxes-2.2.1"
       sources."cliui-7.0.4"
@@ -134288,7 +135540,7 @@ in
       sources."color-name-1.1.4"
       sources."columnify-1.6.0"
       sources."combined-stream-1.0.8"
-      sources."commander-2.20.3"
+      sources."commander-9.3.0"
       sources."common-tags-1.8.2"
       sources."concat-map-0.0.1"
       (sources."concat-stream-1.6.2" // {
@@ -134299,31 +135551,30 @@ in
         ];
       })
       sources."configstore-5.0.1"
-      sources."core-js-3.21.0"
+      sources."core-js-3.22.8"
       sources."core-util-is-1.0.3"
       sources."cross-spawn-7.0.3"
       sources."crypto-random-string-2.0.0"
-      sources."css-select-4.3.0"
+      sources."css-select-5.1.0"
       sources."css-what-6.1.0"
       sources."dashdash-1.14.1"
-      sources."debounce-1.2.0"
-      sources."debug-2.6.9"
-      sources."decamelize-5.0.0"
+      sources."debounce-1.2.1"
+      sources."debug-4.3.4"
+      sources."decamelize-6.0.0"
       sources."decompress-response-3.3.0"
-      sources."deep-equal-1.1.1"
       sources."deep-extend-0.6.0"
       sources."deep-is-0.1.4"
       sources."deepcopy-2.1.0"
       sources."deepmerge-4.2.2"
       sources."defaults-1.0.3"
       sources."defer-to-connect-1.1.3"
-      sources."define-properties-1.1.4"
+      sources."define-lazy-prop-2.0.0"
       sources."delayed-stream-1.0.0"
       sources."doctrine-3.0.0"
-      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.0.1"
       sources."dot-prop-5.3.0"
       sources."dtrace-provider-0.8.8"
       sources."duplexer3-0.1.4"
@@ -134332,17 +135583,18 @@ in
       sources."ecdsa-sig-formatter-1.0.11"
       sources."emoji-regex-8.0.0"
       sources."end-of-stream-1.4.4"
-      sources."entities-2.2.0"
+      sources."entities-4.3.0"
       sources."error-ex-1.3.2"
       sources."es6-error-4.1.1"
       sources."es6-promisify-7.0.0"
       sources."escalade-3.1.1"
       sources."escape-goat-2.1.1"
       sources."escape-string-regexp-4.0.0"
-      (sources."eslint-8.11.0" // {
+      (sources."eslint-8.17.0" // {
         dependencies = [
-          sources."debug-4.3.4"
-          sources."ms-2.1.2"
+          sources."ajv-6.12.6"
+          sources."json-schema-traverse-0.4.1"
+          sources."strip-json-comments-3.1.1"
         ];
       })
       sources."eslint-plugin-no-unsanitized-4.0.1"
@@ -134353,7 +135605,7 @@ in
         ];
       })
       sources."eslint-visitor-keys-3.3.0"
-      sources."espree-9.3.1"
+      sources."espree-9.3.2"
       sources."esprima-4.0.1"
       sources."esquery-1.4.0"
       sources."esrecurse-4.3.0"
@@ -134384,15 +135636,13 @@ in
       sources."fluent-syntax-0.13.0"
       sources."forever-agent-0.6.1"
       sources."form-data-2.3.3"
-      (sources."fs-extra-9.1.0" // {
+      (sources."fs-extra-10.1.0" // {
         dependencies = [
           sources."universalify-2.0.0"
         ];
       })
       sources."fs.realpath-1.0.0"
-      sources."function-bind-1.1.1"
       sources."functional-red-black-tree-1.0.1"
-      sources."functions-have-names-1.2.3"
       (sources."fx-runner-1.2.0" // {
         dependencies = [
           sources."commander-2.9.0"
@@ -134401,10 +135651,14 @@ in
         ];
       })
       sources."get-caller-file-2.0.5"
-      sources."get-intrinsic-1.1.2"
       sources."get-stream-5.2.0"
       sources."getpass-0.1.7"
-      sources."glob-7.2.0"
+      (sources."glob-8.0.3" // {
+        dependencies = [
+          sources."brace-expansion-2.0.1"
+          sources."minimatch-5.1.0"
+        ];
+      })
       sources."glob-parent-6.0.2"
       sources."glob-to-regexp-0.4.1"
       sources."global-dirs-3.0.0"
@@ -134418,14 +135672,15 @@ in
       sources."graceful-readlink-1.0.1"
       sources."growly-1.3.0"
       sources."har-schema-2.0.0"
-      sources."har-validator-5.1.5"
-      sources."has-1.0.3"
+      (sources."har-validator-5.1.5" // {
+        dependencies = [
+          sources."ajv-6.12.6"
+          sources."json-schema-traverse-0.4.1"
+        ];
+      })
       sources."has-flag-4.0.0"
-      sources."has-property-descriptors-1.0.0"
-      sources."has-symbols-1.0.3"
-      sources."has-tostringtag-1.0.0"
       sources."has-yarn-2.1.0"
-      sources."htmlparser2-6.1.0"
+      sources."htmlparser2-8.0.1"
       sources."http-cache-semantics-4.1.0"
       sources."http-signature-1.2.0"
       sources."human-signals-1.1.1"
@@ -134440,10 +135695,8 @@ in
       sources."ini-2.0.0"
       sources."invert-kv-3.0.1"
       sources."is-absolute-0.1.7"
-      sources."is-arguments-1.1.1"
       sources."is-arrayish-0.2.1"
       sources."is-ci-2.0.0"
-      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"
@@ -134453,7 +135706,6 @@ in
       sources."is-npm-5.0.0"
       sources."is-obj-2.0.0"
       sources."is-path-inside-3.0.3"
-      sources."is-regex-1.1.4"
       sources."is-relative-0.1.3"
       sources."is-stream-2.0.1"
       sources."is-typedarray-1.0.0"
@@ -134468,10 +135720,10 @@ in
       sources."js-yaml-4.1.0"
       sources."jsbn-0.1.1"
       sources."json-buffer-3.0.0"
-      sources."json-merge-patch-0.2.3"
+      sources."json-merge-patch-1.0.2"
       sources."json-parse-even-better-errors-2.3.1"
       sources."json-schema-0.4.0"
-      sources."json-schema-traverse-0.4.1"
+      sources."json-schema-traverse-1.0.0"
       sources."json-stable-stringify-without-jsonify-1.0.1"
       sources."json-stringify-safe-5.0.1"
       (sources."jsonfile-6.1.0" // {
@@ -134481,7 +135733,6 @@ in
       })
       (sources."jsonwebtoken-8.5.1" // {
         dependencies = [
-          sources."ms-2.1.3"
           sources."semver-5.7.1"
         ];
       })
@@ -134500,8 +135751,13 @@ in
       sources."lcid-3.1.1"
       sources."levn-0.4.1"
       sources."lie-3.3.0"
-      sources."lighthouse-logger-1.3.0"
-      sources."lines-and-columns-1.2.4"
+      (sources."lighthouse-logger-1.3.0" // {
+        dependencies = [
+          sources."debug-2.6.9"
+          sources."ms-2.0.0"
+        ];
+      })
+      sources."lines-and-columns-2.0.3"
       sources."lodash.includes-4.3.0"
       sources."lodash.isboolean-3.0.3"
       sources."lodash.isinteger-4.0.4"
@@ -134530,8 +135786,8 @@ in
       sources."minimist-1.2.6"
       sources."mkdirp-1.0.4"
       sources."moment-2.29.3"
-      sources."ms-2.0.0"
-      sources."multimatch-5.0.0"
+      sources."ms-2.1.2"
+      sources."multimatch-6.0.0"
       (sources."mv-2.1.1" // {
         dependencies = [
           sources."glob-6.0.4"
@@ -134544,19 +135800,17 @@ in
       sources."nanoid-3.3.4"
       sources."natural-compare-1.4.0"
       sources."ncp-2.0.0"
-      sources."node-forge-0.10.0"
-      sources."node-notifier-9.0.0"
+      sources."node-forge-1.3.1"
+      sources."node-notifier-10.0.1"
       sources."normalize-url-4.5.1"
       sources."npm-run-path-4.0.1"
       sources."nth-check-2.1.1"
       sources."oauth-sign-0.9.0"
       sources."object-assign-4.1.1"
-      sources."object-is-1.1.5"
-      sources."object-keys-1.1.1"
       sources."on-exit-leak-free-0.2.0"
       sources."once-1.4.0"
       sources."onetime-5.1.2"
-      sources."open-7.4.2"
+      sources."open-8.4.0"
       sources."optionator-0.9.1"
       sources."os-locale-5.0.0"
       sources."os-shim-0.1.3"
@@ -134570,23 +135824,23 @@ in
       })
       sources."pako-1.0.11"
       sources."parent-module-1.0.1"
-      sources."parse-json-5.2.0"
-      sources."parse5-6.0.1"
-      sources."parse5-htmlparser2-tree-adapter-6.0.1"
+      sources."parse-json-6.0.2"
+      sources."parse5-7.0.0"
+      sources."parse5-htmlparser2-tree-adapter-7.0.0"
       sources."path-is-absolute-1.0.1"
       sources."path-key-3.1.1"
       sources."pend-1.2.0"
       sources."performance-now-2.1.0"
       sources."picocolors-1.0.0"
-      sources."pino-7.9.1"
+      sources."pino-7.11.0"
       sources."pino-abstract-transport-0.5.0"
       sources."pino-std-serializers-4.0.0"
-      sources."postcss-8.4.12"
+      sources."postcss-8.4.14"
       sources."prelude-ls-1.2.1"
       sources."prepend-http-2.0.0"
       sources."process-nextick-args-2.0.1"
       sources."process-warning-1.0.0"
-      sources."promise-toolbox-0.20.0"
+      sources."promise-toolbox-0.21.0"
       sources."psl-1.8.0"
       sources."pump-3.0.0"
       sources."punycode-2.1.1"
@@ -134603,9 +135857,8 @@ in
       sources."readable-stream-3.6.0"
       sources."real-require-0.1.0"
       sources."regenerator-runtime-0.13.9"
-      sources."regexp.prototype.flags-1.4.3"
       sources."regexpp-3.2.0"
-      sources."registry-auth-token-4.2.1"
+      sources."registry-auth-token-4.2.2"
       sources."registry-url-5.1.0"
       (sources."relaxed-json-1.0.3" // {
         dependencies = [
@@ -134613,6 +135866,7 @@ in
           sources."chalk-2.4.2"
           sources."color-convert-1.9.3"
           sources."color-name-1.1.3"
+          sources."commander-2.20.3"
           sources."escape-string-regexp-1.0.5"
           sources."has-flag-3.0.0"
           sources."supports-color-5.5.0"
@@ -134624,15 +135878,20 @@ in
         ];
       })
       sources."require-directory-2.1.1"
+      sources."require-from-string-2.0.2"
       sources."resolve-from-4.0.0"
       sources."responselike-1.0.2"
-      sources."rimraf-3.0.2"
+      (sources."rimraf-3.0.2" // {
+        dependencies = [
+          sources."glob-7.2.3"
+        ];
+      })
       sources."safe-buffer-5.2.1"
       sources."safe-json-stringify-1.2.0"
       sources."safe-stable-stringify-2.3.1"
       sources."safer-buffer-2.1.2"
       sources."sax-1.2.4"
-      sources."semver-7.3.5"
+      sources."semver-7.3.7"
       (sources."semver-diff-3.1.1" // {
         dependencies = [
           sources."semver-6.3.0"
@@ -134644,18 +135903,14 @@ in
       sources."shebang-regex-3.0.0"
       sources."shell-quote-1.7.3"
       sources."shellwords-0.1.1"
-      (sources."sign-addon-3.11.0" // {
-        dependencies = [
-          sources."source-map-support-0.5.21"
-        ];
-      })
+      sources."sign-addon-5.0.0"
       sources."signal-exit-3.0.7"
       sources."sonic-boom-2.8.0"
       sources."source-map-0.6.1"
       sources."source-map-js-1.0.2"
-      sources."source-map-support-0.5.20"
+      sources."source-map-support-0.5.21"
       sources."spawn-sync-1.0.15"
-      sources."split-0.3.3"
+      sources."split-1.0.1"
       sources."split2-4.1.0"
       sources."sshpk-1.17.0"
       sources."stream-shift-1.0.1"
@@ -134664,16 +135919,16 @@ in
       sources."string-width-4.2.3"
       sources."string_decoder-1.3.0"
       sources."strip-ansi-6.0.1"
-      sources."strip-bom-4.0.0"
+      sources."strip-bom-5.0.0"
       sources."strip-bom-buf-2.0.0"
       sources."strip-bom-stream-4.0.0"
       sources."strip-final-newline-2.0.0"
-      sources."strip-json-comments-3.1.1"
+      sources."strip-json-comments-4.0.0"
       sources."supports-color-7.2.0"
       sources."text-table-0.2.0"
       sources."thenify-3.3.1"
       sources."thenify-all-1.6.0"
-      sources."thread-stream-0.13.2"
+      sources."thread-stream-0.15.2"
       sources."through-2.3.8"
       sources."tmp-0.2.1"
       sources."to-readable-stream-1.0.0"
@@ -134701,7 +135956,7 @@ in
           sources."core-util-is-1.0.2"
         ];
       })
-      sources."watchpack-2.1.1"
+      sources."watchpack-2.4.0"
       sources."wcwidth-1.0.1"
       sources."when-3.7.7"
       sources."which-2.0.2"
@@ -134711,24 +135966,16 @@ in
       sources."wrap-ansi-7.0.0"
       sources."wrappy-1.0.2"
       sources."write-file-atomic-3.0.3"
-      sources."ws-7.4.6"
+      sources."ws-8.7.0"
       sources."xdg-basedir-4.0.0"
       sources."xml2js-0.4.23"
       sources."xmlbuilder-11.0.1"
       sources."y18n-5.0.8"
       sources."yallist-4.0.0"
-      (sources."yargs-16.2.0" // {
-        dependencies = [
-          sources."yargs-parser-20.2.9"
-        ];
-      })
+      sources."yargs-17.5.1"
       sources."yargs-parser-21.0.1"
       sources."yauzl-2.10.0"
-      (sources."zip-dir-2.0.0" // {
-        dependencies = [
-          sources."async-3.2.4"
-        ];
-      })
+      sources."zip-dir-2.0.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -134759,7 +136006,7 @@ in
       sources."@types/eslint-scope-3.7.3"
       sources."@types/estree-0.0.51"
       sources."@types/json-schema-7.0.11"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@webassemblyjs/ast-1.11.1"
       sources."@webassemblyjs/floating-point-hex-parser-1.11.1"
       sources."@webassemblyjs/helper-api-error-1.11.1"
@@ -134783,10 +136030,10 @@ in
       sources."ajv-keywords-3.5.2"
       sources."browserslist-4.20.4"
       sources."buffer-from-1.1.2"
-      sources."caniuse-lite-1.0.30001352"
+      sources."caniuse-lite-1.0.30001356"
       sources."chrome-trace-event-1.0.3"
       sources."commander-2.20.3"
-      sources."electron-to-chromium-1.4.150"
+      sources."electron-to-chromium-1.4.161"
       sources."enhanced-resolve-5.9.3"
       sources."es-module-lexer-0.9.3"
       sources."escalade-3.1.1"
@@ -134822,7 +136069,7 @@ in
       sources."source-map-support-0.5.21"
       sources."supports-color-8.1.1"
       sources."tapable-2.2.1"
-      sources."terser-5.14.0"
+      sources."terser-5.14.1"
       sources."terser-webpack-plugin-5.3.3"
       sources."uri-js-4.4.1"
       sources."watchpack-2.4.0"
@@ -134841,41 +136088,33 @@ in
   webpack-cli = nodeEnv.buildNodePackage {
     name = "webpack-cli";
     packageName = "webpack-cli";
-    version = "4.9.2";
+    version = "4.10.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.9.2.tgz";
-      sha512 = "m3/AACnBBzK/kMTcxWHcZFPrw/eQuY4Df1TxvIWfWM2x7mRqBQCqKEd96oCUa9jkapLBaFfRce33eGDb4Pr7YQ==";
+      url = "https://registry.npmjs.org/webpack-cli/-/webpack-cli-4.10.0.tgz";
+      sha512 = "NLhDfH/h4O6UOy+0LSso42xvYypClINuMNBVVzX4vX98TmTaTUxwRbXdhucbFMd2qLaCTcLq/PdYrvi8onw90w==";
     };
     dependencies = [
       sources."@discoveryjs/json-ext-0.5.7"
-      sources."@webpack-cli/configtest-1.1.1"
-      sources."@webpack-cli/info-1.4.1"
-      sources."@webpack-cli/serve-1.6.1"
+      sources."@webpack-cli/configtest-1.2.0"
+      sources."@webpack-cli/info-1.5.0"
+      sources."@webpack-cli/serve-1.7.0"
       sources."clone-deep-4.0.1"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."commander-7.2.0"
       sources."cross-spawn-7.0.3"
       sources."envinfo-7.8.1"
-      sources."execa-5.1.1"
       sources."fastest-levenshtein-1.0.12"
       sources."find-up-4.1.0"
       sources."function-bind-1.1.1"
-      sources."get-stream-6.0.1"
       sources."has-1.0.3"
-      sources."human-signals-2.1.0"
       sources."import-local-3.1.0"
       sources."interpret-2.2.0"
       sources."is-core-module-2.9.0"
       sources."is-plain-object-2.0.4"
-      sources."is-stream-2.0.1"
       sources."isexe-2.0.0"
       sources."isobject-3.0.1"
       sources."kind-of-6.0.3"
       sources."locate-path-5.0.0"
-      sources."merge-stream-2.0.0"
-      sources."mimic-fn-2.1.0"
-      sources."npm-run-path-4.0.1"
-      sources."onetime-5.1.2"
       sources."p-limit-2.3.0"
       sources."p-locate-4.1.0"
       sources."p-try-2.2.0"
@@ -134884,14 +136123,12 @@ in
       sources."path-parse-1.0.7"
       sources."pkg-dir-4.2.0"
       sources."rechoir-0.7.1"
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."resolve-cwd-3.0.0"
       sources."resolve-from-5.0.0"
       sources."shallow-clone-3.0.1"
       sources."shebang-command-2.0.0"
       sources."shebang-regex-3.0.0"
-      sources."signal-exit-3.0.7"
-      sources."strip-final-newline-2.0.0"
       sources."supports-preserve-symlinks-flag-1.0.0"
       sources."webpack-merge-5.8.0"
       sources."which-2.0.2"
@@ -134922,11 +136159,11 @@ in
       sources."@types/connect-3.4.35"
       sources."@types/connect-history-api-fallback-1.3.5"
       sources."@types/express-4.17.13"
-      sources."@types/express-serve-static-core-4.17.28"
+      sources."@types/express-serve-static-core-4.17.29"
       sources."@types/http-proxy-1.17.9"
       sources."@types/json-schema-7.0.11"
       sources."@types/mime-1.3.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@types/qs-6.9.7"
       sources."@types/range-parser-1.2.4"
       sources."@types/retry-0.12.0"
@@ -134955,7 +136192,7 @@ in
       sources."bytes-3.0.0"
       sources."call-bind-1.0.2"
       sources."chokidar-3.5.3"
-      sources."colorette-2.0.17"
+      sources."colorette-2.0.19"
       sources."compressible-2.0.18"
       sources."compression-1.7.4"
       sources."concat-map-0.0.1"
@@ -134977,7 +136214,7 @@ in
       sources."destroy-1.2.0"
       sources."detect-node-2.1.0"
       sources."dns-equal-1.0.0"
-      sources."dns-packet-5.3.1"
+      sources."dns-packet-5.4.0"
       sources."ee-first-1.1.1"
       sources."encodeurl-1.0.2"
       sources."escape-html-1.0.3"
@@ -135037,7 +136274,7 @@ in
       sources."isexe-2.0.0"
       sources."json-schema-traverse-1.0.0"
       sources."media-typer-0.3.0"
-      sources."memfs-3.4.4"
+      sources."memfs-3.4.6"
       sources."merge-descriptors-1.0.1"
       sources."merge-stream-2.0.0"
       sources."methods-1.1.2"
@@ -135144,7 +136381,7 @@ in
       sources."websocket-extensions-0.1.4"
       sources."which-2.0.2"
       sources."wrappy-1.0.2"
-      sources."ws-8.7.0"
+      sources."ws-8.8.0"
     ];
     buildInputs = globalBuildInputs;
     meta = {
@@ -135183,7 +136420,7 @@ in
       sources."fastq-1.13.0"
       sources."fill-range-7.0.1"
       sources."glob-parent-6.0.2"
-      sources."globby-13.1.1"
+      sources."globby-13.1.2"
       sources."ignore-5.2.0"
       sources."is-extglob-2.1.1"
       sources."is-glob-4.0.3"
@@ -135238,7 +136475,7 @@ in
       sources."@protobufjs/pool-1.1.0"
       sources."@protobufjs/utf8-1.1.0"
       sources."@types/long-4.0.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-18.0.0"
       sources."@webtorrent/http-node-1.3.0"
       sources."addr-to-ip-port-1.5.4"
       sources."airplay-js-0.3.0"
@@ -135343,7 +136580,7 @@ in
           sources."mime-1.6.0"
         ];
       })
-      sources."dns-packet-5.3.1"
+      sources."dns-packet-5.4.0"
       sources."dns-txt-2.0.2"
       (sources."ecstatic-4.1.4" // {
         dependencies = [
@@ -135607,7 +136844,7 @@ in
     version = "1.0.0";
     src = fetchurl {
       url = "https://registry.npmjs.org/wring/-/wring-1.0.0.tgz";
-      sha1 = "3d8ebe894545bf0b42946fdc84c61e37ae657ce1";
+      sha512 = "XoFoUf9gxnQkergF+FK+AuaI/iaSh9P0N1hqIGTTs1V3rjexH1ZZKuxuDUbdVGrwxvoTW4xpeZrNhBw6WJIIag==";
     };
     buildInputs = globalBuildInputs;
     meta = {
@@ -135646,13 +136883,31 @@ in
     bypassCache = true;
     reconstructLock = true;
   };
+  "@yaegassy/coc-nginx" = nodeEnv.buildNodePackage {
+    name = "_at_yaegassy_slash_coc-nginx";
+    packageName = "@yaegassy/coc-nginx";
+    version = "0.3.6";
+    src = fetchurl {
+      url = "https://registry.npmjs.org/@yaegassy/coc-nginx/-/coc-nginx-0.3.6.tgz";
+      sha512 = "ml53NkTvLqmhdE4rFY6WK5ZM1l6SFM+sGui1xrurEN1zTN+v0w0ifaNLwoEz/XsQdX3yTpl0oD+MA3JYgx9Tzg==";
+    };
+    buildInputs = globalBuildInputs;
+    meta = {
+      description = "nginx-language-server extension for coc.nvim";
+      homepage = "https://github.com/yaegassy/coc-nginx#readme";
+      license = "MIT";
+    };
+    production = true;
+    bypassCache = true;
+    reconstructLock = true;
+  };
   yaml-language-server = nodeEnv.buildNodePackage {
     name = "yaml-language-server";
     packageName = "yaml-language-server";
-    version = "1.7.0";
+    version = "1.8.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.7.0.tgz";
-      sha512 = "lIn8cKP7WvXAs/9ybENadjA/RZ3z0eT+/Qxu/Qhh9aG7U3FTtmO6xauRAih4Gxm4qZeBE1t4C31XB8B/KOQRtw==";
+      url = "https://registry.npmjs.org/yaml-language-server/-/yaml-language-server-1.8.0.tgz";
+      sha512 = "Aclwmim+y1+02NYcAvvQB0d/qg2udHRnY0rZMeN24m2MSmbWFdffRWqmgSLieMimKHTCZ5hss4ZTvYNzLiiJtQ==";
     };
     dependencies = [
       sources."jsonc-parser-3.0.0"
@@ -135933,7 +137188,7 @@ in
       sources."config-chain-1.1.13"
       sources."configstore-3.1.5"
       sources."console-control-strings-1.1.0"
-      sources."core-js-3.22.8"
+      sources."core-js-3.23.1"
       sources."core-util-is-1.0.3"
       sources."create-error-class-3.0.2"
       sources."cross-spawn-6.0.5"
@@ -136214,7 +137469,7 @@ in
         ];
       })
       sources."minimist-1.2.6"
-      sources."minipass-3.2.0"
+      sources."minipass-3.2.1"
       sources."minipass-collect-1.0.2"
       sources."minipass-fetch-1.4.1"
       sources."minipass-flush-1.0.5"
@@ -136471,7 +137726,7 @@ in
           sources."tough-cookie-2.5.0"
         ];
       })
-      sources."resolve-1.22.0"
+      sources."resolve-1.22.1"
       sources."responselike-1.0.2"
       sources."restore-cursor-2.0.0"
       sources."retry-0.12.0"
@@ -136771,10 +138026,10 @@ in
   zx = nodeEnv.buildNodePackage {
     name = "zx";
     packageName = "zx";
-    version = "6.2.4";
+    version = "7.0.0";
     src = fetchurl {
-      url = "https://registry.npmjs.org/zx/-/zx-6.2.4.tgz";
-      sha512 = "wBDObcY5tKDOIOuGrg3XwrhCa6V6eeZLQDVbbpgN9pdhiyOJA/So9R9i5vKN7cGGWkcKKHy29i8kJtx02j+kSg==";
+      url = "https://registry.npmjs.org/zx/-/zx-7.0.0.tgz";
+      sha512 = "QPUkzM2o/yfr8CnJgR3Uzi4ESW3IhM4iOIrDx2wJ0vZAU4Gz0Bd/wvOWdqAheJgUTc1ecTkOMpdBKCSBvVDnTg==";
     };
     dependencies = [
       sources."@nodelib/fs.scandir-2.1.5"
@@ -136782,7 +138037,7 @@ in
       sources."@nodelib/fs.walk-1.2.8"
       sources."@types/fs-extra-9.0.13"
       sources."@types/minimist-1.2.2"
-      sources."@types/node-17.0.41"
+      sources."@types/node-17.0.45"
       sources."@types/ps-tree-1.1.2"
       sources."@types/which-2.0.1"
       sources."braces-3.0.2"
@@ -136799,7 +138054,7 @@ in
       sources."from-0.1.7"
       sources."fs-extra-10.1.0"
       sources."glob-parent-5.1.2"
-      sources."globby-13.1.1"
+      sources."globby-13.1.2"
       sources."graceful-fs-4.2.10"
       sources."ignore-5.2.0"
       sources."is-extglob-2.1.1"
@@ -136812,7 +138067,7 @@ in
       sources."micromatch-4.0.5"
       sources."minimist-1.2.6"
       sources."node-domexception-1.0.0"
-      sources."node-fetch-3.2.5"
+      sources."node-fetch-3.2.6"
       sources."path-type-4.0.0"
       sources."pause-stream-0.0.11"
       sources."picomatch-2.3.1"
diff --git a/pkgs/development/node-packages/overrides.nix b/pkgs/development/node-packages/overrides.nix
index 8fa3d2faf8d90..e184210485901 100644
--- a/pkgs/development/node-packages/overrides.nix
+++ b/pkgs/development/node-packages/overrides.nix
@@ -26,6 +26,18 @@ final: prev: {
     buildInputs = [ final.node-gyp-build ];
   };
 
+  "@forge/cli" = prev."@forge/cli".override {
+    nativeBuildInputs = [ pkgs.pkg-config ];
+    buildInputs = with pkgs; [
+      libsecret
+      final.node-gyp-build
+      final.node-pre-gyp
+    ] ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.AppKit
+      darwin.apple_sdk.frameworks.Security
+    ];
+  };
+
   "@hyperspace/cli" = prev."@hyperspace/cli".override {
     nativeBuildInputs = [ pkgs.makeWrapper ];
     buildInputs = [ final.node-gyp-build ];
diff --git a/pkgs/development/ocaml-modules/ffmpeg/base.nix b/pkgs/development/ocaml-modules/ffmpeg/base.nix
index 5dc5f612fd325..212ad686e356a 100644
--- a/pkgs/development/ocaml-modules/ffmpeg/base.nix
+++ b/pkgs/development/ocaml-modules/ffmpeg/base.nix
@@ -1,7 +1,7 @@
 { lib, fetchFromGitHub }:
 
 rec {
-  version = "1.1.3";
+  version = "1.1.4";
 
   useDune2 = true;
 
@@ -9,7 +9,7 @@ rec {
     owner = "savonet";
     repo = "ocaml-ffmpeg";
     rev = "v${version}";
-    sha256 = "1l40dfc0v3wn2drfq0mclrc1lrlpycdjrkrw4knkwpsg0za68v4c";
+    sha256 = "sha256-IM7bzOZAZQjLz4YjRTMU5fZgrA2QTZcSDMgclDo4sn0=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/ocaml-modules/fmt/default.nix b/pkgs/development/ocaml-modules/fmt/default.nix
index 4816cab57cfd3..bd56298165284 100644
--- a/pkgs/development/ocaml-modules/fmt/default.nix
+++ b/pkgs/development/ocaml-modules/fmt/default.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [ ocaml findlib ocamlbuild topkg ];
-  buildInputs = [ topkg ];
-  propagatedBuildInputs = [ cmdliner seq stdlib-shims ];
+  buildInputs = [ cmdliner topkg ];
+  propagatedBuildInputs = [ seq stdlib-shims ];
 
   strictDeps = true;
 
diff --git a/pkgs/development/ocaml-modules/lablgtk/default.nix b/pkgs/development/ocaml-modules/lablgtk/default.nix
index f82548b18838e..17f32ef3edebc 100644
--- a/pkgs/development/ocaml-modules/lablgtk/default.nix
+++ b/pkgs/development/ocaml-modules/lablgtk/default.nix
@@ -10,18 +10,24 @@ let param =
       rev = version;
       sha256 = "sha256:0asib87c42apwf1ln8541x6i3mvyajqbarifvz11in0mqn5k7g7h";
     };
+    NIX_CFLAGS_COMPILE = null;
   } else if check "3.12" then {
     version = "2.18.5";
     src = fetchurl {
       url = "https://forge.ocamlcore.org/frs/download.php/1627/lablgtk-2.18.5.tar.gz";
       sha256 = "0cyj6sfdvzx8hw7553lhgwc0krlgvlza0ph3dk9gsxy047dm3wib";
     };
+    # Workaround build failure on -fno-common toolchains like upstream
+    # gcc-10. Otherwise build fails as:
+    #   ld: ml_gtktree.o:(.bss+0x0): multiple definition of
+    #     `ml_table_extension_events'; ml_gdkpixbuf.o:(.bss+0x0): first defined here
+    NIX_CFLAGS_COMPILE = "-fcommon";
   } else throw "lablgtk is not available for OCaml ${ocaml.version}";
 in
 
 stdenv.mkDerivation {
   pname = "lablgtk";
-  inherit (param) version src;
+  inherit (param) version src NIX_CFLAGS_COMPILE;
 
   nativeBuildInputs = [ pkg-config ocaml findlib ];
   buildInputs = [ gtk2 libgnomecanvas gtksourceview ];
diff --git a/pkgs/development/ocaml-modules/mldoc/default.nix b/pkgs/development/ocaml-modules/mldoc/default.nix
new file mode 100644
index 0000000000000..2d184e68a0e7a
--- /dev/null
+++ b/pkgs/development/ocaml-modules/mldoc/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildDunePackage
+, fetchFromGitHub
+, fetchpatch
+, angstrom
+, cmdliner
+, core
+, core_bench
+, js_of_ocaml
+, js_of_ocaml-ppx
+, ppx_deriving_yojson
+, uri
+, yojson
+, lwt
+, xmlm
+}:
+let
+  angstrom' = angstrom.overrideAttrs (attrs: {
+    patches = attrs.patches or [ ] ++ [
+      # mldoc requires Angstrom to expose `unsafe_lookahead`
+      (fetchpatch {
+        url = "https://github.com/logseq/angstrom/commit/bbe36c99c13678937d4c983a427e02a733d6cc24.patch";
+        sha256 = "sha256-RapY1QJ8U0HOqJ9TFDnCYB4tFLFuThESzdBZqjYuDUA=";
+      })
+    ];
+  });
+  uri' = uri.override { angstrom = angstrom'; };
+in
+buildDunePackage rec {
+  pname = "mldoc";
+  version = "1.3.9";
+
+  minimalOCamlVersion = "4.10";
+
+  src = fetchFromGitHub {
+    owner = "logseq";
+    repo = "mldoc";
+    rev = "v${version}";
+    sha256 = "sha256-C5SeG10EoZixCWeBxw7U+isAR8UWd1jzHLdmbp//gAs=";
+  };
+
+  buildInputs = [
+    cmdliner
+    core
+    core_bench
+    js_of_ocaml
+    js_of_ocaml-ppx
+    lwt
+  ];
+
+  propagatedBuildInputs = [
+    angstrom'
+    uri'
+    yojson
+    ppx_deriving_yojson
+    xmlm
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/logseq/mldoc";
+    description = "Another Emacs Org-mode and Markdown parser";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ marsam ];
+  };
+}
diff --git a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
index 9f4979d7563c8..0d127d791524a 100644
--- a/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
+++ b/pkgs/development/ocaml-modules/ocaml-migrate-parsetree/2.x.nix
@@ -2,15 +2,13 @@
 
 buildDunePackage rec {
    pname = "ocaml-migrate-parsetree";
-   version = "2.3.0";
-
-   useDune2 = true;
+   version = "2.4.0";
 
    minimalOCamlVersion = "4.02";
 
    src = fetchurl {
-     url = "https://github.com/ocaml-ppx/${pname}/releases/download/v${version}/${pname}-${version}.tbz";
-     sha256 = "sha256:02mzh1rcvc2xpq4iz01z7kvzsgxns3774ggxi96f147i8yr2d08h";
+     url = "https://github.com/ocaml-ppx/${pname}/releases/download/${version}/${pname}-${version}.tbz";
+     sha256 = "sha256-7EnEUtwzemIFVqtoK/AZi/UBglULUC2PsjClkSYKpqQ=";
    };
 
    meta = {
diff --git a/pkgs/development/ocaml-modules/ocaml-r/default.nix b/pkgs/development/ocaml-modules/ocaml-r/default.nix
index fcee63de3b5db..ed22177bfaac3 100644
--- a/pkgs/development/ocaml-modules/ocaml-r/default.nix
+++ b/pkgs/development/ocaml-modules/ocaml-r/default.nix
@@ -37,6 +37,8 @@ buildDunePackage rec {
   checkInputs = [ alcotest ];
 
   meta = {
+    # This has been broken by the update to R 4.2.0 (#171597)
+    broken = true;
     description = "OCaml bindings for the R interpreter";
     inherit (src.meta) homepage;
     license = lib.licenses.gpl3;
diff --git a/pkgs/development/ocaml-modules/parmap/default.nix b/pkgs/development/ocaml-modules/parmap/default.nix
index 521c1c406714b..18e1975b698d5 100644
--- a/pkgs/development/ocaml-modules/parmap/default.nix
+++ b/pkgs/development/ocaml-modules/parmap/default.nix
@@ -10,13 +10,12 @@ buildDunePackage rec {
   };
 
   minimalOCamlVersion = "4.03";
-  useDune2 = true;
 
   buildInputs = [
     dune-configurator
   ];
 
-  doCheck = true;
+  doCheck = false; # prevent running slow benchmarks
 
   meta = with lib; {
     description = "Library for multicore parallel programming";
diff --git a/pkgs/development/ocaml-modules/pbkdf/default.nix b/pkgs/development/ocaml-modules/pbkdf/default.nix
index 1ecf213f6d369..d82869c4392d4 100644
--- a/pkgs/development/ocaml-modules/pbkdf/default.nix
+++ b/pkgs/development/ocaml-modules/pbkdf/default.nix
@@ -1,22 +1,23 @@
 { lib
 , buildDunePackage
-, fetchurl
+, fetchFromGitHub
+, cstruct
 , mirage-crypto
 , alcotest
 }:
 
 buildDunePackage rec {
   pname = "pbkdf";
-  version = "1.1.0";
+  version = "1.2.0";
 
-  useDune2 = true;
-
-  src = fetchurl {
-    url = "https://github.com/abeaumont/ocaml-pbkdf/releases/download/${version}/pbkdf-${version}.tbz";
-    sha256 = "e53ed1bd9abf490c858a341c10fb548bc9ad50d4479acdf95a9358a73d042264";
+  src = fetchFromGitHub {
+    owner = "abeaumont";
+    repo = "ocaml-pbkdf";
+    rev = version;
+    sha256 = "sha256-dGi4Vw+7VBpK/NpJ6zdpogm+E6G/oJovXCksJBSmqjI=";
   };
 
-  propagatedBuildInputs = [ mirage-crypto ];
+  propagatedBuildInputs = [ cstruct mirage-crypto ];
   checkInputs = [ alcotest ];
   doCheck = true;
 
diff --git a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
index 07d817d229381..1bf2078375ac7 100644
--- a/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
+++ b/pkgs/development/ocaml-modules/ppx_yojson_conv_lib/default.nix
@@ -2,7 +2,7 @@
 
 buildDunePackage rec {
   pname = "ppx_yojson_conv_lib";
-  version = "0.14.0";
+  version = "0.15.0";
 
   useDune2 = true;
 
@@ -12,7 +12,7 @@ buildDunePackage rec {
     owner = "janestreet";
     repo = pname;
     rev = "v${version}";
-    sha256 = "12s3xshayy1f8cp9lk6zqwnw60n7cdap55gkksz5w65gdd8bfxmf";
+    sha256 = "sha256-Hpg4AKAe7Q5P5UkBpH+5l1nZbIVA2Dr1Q30D4zkrjGo=";
   };
 
   propagatedBuildInputs = [ yojson ];
diff --git a/pkgs/development/ocaml-modules/tsort/default.nix b/pkgs/development/ocaml-modules/tsort/default.nix
index fdfe7a650e554..1e40488080a83 100644
--- a/pkgs/development/ocaml-modules/tsort/default.nix
+++ b/pkgs/development/ocaml-modules/tsort/default.nix
@@ -2,13 +2,12 @@
 
 buildDunePackage rec {
   pname = "tsort";
-  useDune2 = true;
-  version = "2.0.0";
+  version = "2.1.0";
   src = fetchFromGitHub {
     owner = "dmbaturin";
     repo = "ocaml-tsort";
     rev = version;
-    sha256 = "0i67ys5p5i8q9p0nhkq4pjg9jav8dy0fiy975a365j7m6bhrwgc1";
+    sha256 = "sha256-SCd0R8iGwMeRhhSxMid9lzqj5fm+owCJ2dzwtLpFqB4=";
   };
 
   propagatedBuildInputs = [ containers ];
diff --git a/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
index 17ec8ab48b59c..6ab6233fc7006 100644
--- a/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
+++ b/pkgs/development/perl-modules/WWW-YoutubeViewer/default.nix
@@ -25,7 +25,8 @@ buildPerlPackage rec {
   meta = with lib; {
     description = "A lightweight application for searching and streaming videos from YouTube";
     homepage = "https://github.com/trizen/youtube-viewer";
-    maintainers = with maintainers; [ woffs ];
     license = with licenses; [ artistic2 ];
+    maintainers = with maintainers; [ woffs ];
+    mainProgram = "youtube-viewer";
   };
 }
diff --git a/pkgs/development/perl-modules/ham/default.nix b/pkgs/development/perl-modules/ham/default.nix
index 8b19c9404fe05..2fc4b3c3b4305 100644
--- a/pkgs/development/perl-modules/ham/default.nix
+++ b/pkgs/development/perl-modules/ham/default.nix
@@ -37,6 +37,7 @@ buildPerlPackage {
     homepage = "https://github.com/kernkonzept/ham";
     license = "unknown"; # should be gpl2, but not quite sure
     maintainers = with lib.maintainers; [ aw ];
+    mainProgram = "ham";
     platforms = lib.platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/GitPython/default.nix b/pkgs/development/python-modules/GitPython/default.nix
index dc909f5bcee8c..8d89c1af8d0cb 100644
--- a/pkgs/development/python-modules/GitPython/default.nix
+++ b/pkgs/development/python-modules/GitPython/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "gitpython";
-  version = "3.1.25";
+  version = "3.1.27";
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "gitpython-developers";
     repo = "GitPython";
     rev = version;
-    sha256 = "sha256-ienc7zvLe6t8rkMtC6wVIewUqQBFdFbLc8iPT6aPVrE=";
+    sha256 = "sha256-RA+6JFXHUQoXGErV8+aYuJPsfXzNSZK3kTm6eMbQIss=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/JPype1/default.nix b/pkgs/development/python-modules/JPype1/default.nix
index af435c5f088e8..16ef7a71d1b85 100644
--- a/pkgs/development/python-modules/JPype1/default.nix
+++ b/pkgs/development/python-modules/JPype1/default.nix
@@ -31,6 +31,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/originell/jpype/";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode
+    ];
     license = licenses.asl20;
     description = "A Python to Java bridge";
   };
diff --git a/pkgs/development/python-modules/Pmw/default.nix b/pkgs/development/python-modules/Pmw/default.nix
index 9dfb8de3b2c67..27c62ea663265 100644
--- a/pkgs/development/python-modules/Pmw/default.nix
+++ b/pkgs/development/python-modules/Pmw/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "Pmw";
-  version = "2.0.1";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "080iml3868nxniyn56kcwnbghm10j7fw74a5nj0s19sm4zsji78b";
+    sha256 = "sha256-lIQSRXz8zwx3XdCOCRP7APkIlqM8eXN9VxxzEq6vVcY=";
   };
 
   propagatedBuildInputs = [ tkinter ];
diff --git a/pkgs/development/python-modules/Rtree/default.nix b/pkgs/development/python-modules/Rtree/default.nix
index eb4dae8e3aa2b..0c599b18d73ac 100644
--- a/pkgs/development/python-modules/Rtree/default.nix
+++ b/pkgs/development/python-modules/Rtree/default.nix
@@ -1,32 +1,36 @@
-{ lib,
-  stdenv,
-  buildPythonPackage,
-  fetchPypi,
-  libspatialindex,
-  numpy,
-  pytestCheckHook
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, libspatialindex
+, numpy
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "Rtree";
-  version = "0.9.7";
+  pname = "rtree";
+  version = "1.0.0";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "be8772ca34699a9ad3fb4cfe2cfb6629854e453c10b3328039301bbfc128ca3e";
+    pname = "Rtree";
+    inherit version;
+    sha256 = "sha256-0Eg0ghITRrCTuaQlGNQPkhrfRFkVt66jB+smdoyDloI=";
   };
 
-  buildInputs = [ libspatialindex ];
-
-  patchPhase = ''
+  postPatch = ''
     substituteInPlace rtree/finder.py --replace \
-      "find_library('spatialindex_c')" "'${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}'"
+      'find_library("spatialindex_c")' '"${libspatialindex}/lib/libspatialindex_c${stdenv.hostPlatform.extensions.sharedLibrary}"'
   '';
 
+  buildInputs = [ libspatialindex ];
+
   checkInputs = [
     numpy
     pytestCheckHook
   ];
+
   pythonImportsCheck = [ "rtree" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/adb-enhanced/default.nix b/pkgs/development/python-modules/adb-enhanced/default.nix
index bf3f124b02e2f..79fc34cc0ecb4 100644
--- a/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -40,6 +40,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Tool for Android testing and development";
     homepage = "https://github.com/ashishb/adb-enhanced";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ vtuan10 ];
     mainProgram = "adbe";
diff --git a/pkgs/development/python-modules/aesara/default.nix b/pkgs/development/python-modules/aesara/default.nix
index 56d298f6ed11e..efa9715a0f005 100644
--- a/pkgs/development/python-modules/aesara/default.nix
+++ b/pkgs/development/python-modules/aesara/default.nix
@@ -6,6 +6,8 @@
 , etuples
 , fetchFromGitHub
 , filelock
+, jax
+, jaxlib
 , logical-unification
 , minikanren
 , numba
@@ -19,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "aesara";
-  version = "2.7.1";
+  version = "2.7.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,7 +30,7 @@ buildPythonPackage rec {
     owner = "aesara-devs";
     repo = "aesara";
     rev = "refs/tags/rel-${version}";
-    hash = "sha256-qjAaW7YYmzGBNpc8T5RyOdP5evkKOdzUGzQ9JXKioxw=";
+    hash = "sha256-LeZEWKSfVmU7k7qMjniUjwoDJ5xJUHoYux7Qy5/w4Cg=";
   };
 
   nativeBuildInputs = [
@@ -47,6 +49,8 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    jax
+    jaxlib
     numba
     numba-scipy
     pytestCheckHook
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 01617f7980ef5..0b6ba901df52a 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-SymOCHKIr0SOi4OM+OONA7+A2nV4JMA467OkoqDhZ+M=";
+    hash = "sha256-zQz8tbxo1Trfeg7zeW/htm+zD4n++guYXUdCHp3cikw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/aiomusiccast/default.nix b/pkgs/development/python-modules/aiomusiccast/default.nix
index 02d7f565c3c1a..1ca2cdcb519b7 100644
--- a/pkgs/development/python-modules/aiomusiccast/default.nix
+++ b/pkgs/development/python-modules/aiomusiccast/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "aiomusiccast";
-  version = "0.14.3";
+  version = "0.14.4";
 
   format = "pyproject";
   disabled = pythonOlder "3.8";
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "vigonotion";
     repo = "aiomusiccast";
-    rev = version;
-    hash = "sha256-ELdNxeU9dajWr4VeOyuvNrSi7B+ImVJM/BlZsw3tcKE=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-vSf4Fcioz+ZrXCaFQQbHzhz7vOknCOEFJXduXJlO/wE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
index b52760d206941..420b3aaf8b9c9 100644
--- a/pkgs/development/python-modules/aiomysql/default.nix
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiomysql";
-  version = "0.1.0";
+  version = "0.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-TNaQ4EKiHwSmPpUco0pA5SBP3fljWQ/Kd5RLs649fu0=";
+    hash = "sha256-rYEos2RuE2xI59httYlN21smBH4/fU4uT48FWwrI6Qg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aiosteamist/default.nix b/pkgs/development/python-modules/aiosteamist/default.nix
index aa7edc001de36..535594e3d28dd 100644
--- a/pkgs/development/python-modules/aiosteamist/default.nix
+++ b/pkgs/development/python-modules/aiosteamist/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aiosteamist";
-  version = "0.3.1";
+  version = "0.3.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = version;
-    hash = "sha256-VoIJh3EDBPKmvEmM3gP2pyt/0oz4i6Y0zIkkprTcFLg=";
+    hash = "sha256-IKrAJ4QDcYJRO4hcomL9FRs8hJ3k7SgRgK4H1b8SxIM=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +32,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=aiosteamist" ""
+      --replace "--cov=aiosteamist" "" \
+      --replace 'xmltodict = "^0.12.0"' 'xmltodict = "*"'
   '';
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index 68cc3150d9f69..d03cc22ab1eb1 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     "test_schedule_parser_with_a_daily_recurring_enabled_schedule_data"
     "test_schedule_parser_with_a_partial_daily_recurring_enabled_schedule_data"
     "test_schedule_parser_with_a_non_recurring_enabled_schedule_data"
+    "test_hexadecimale_timestamp_to_localtime_with_the_current_timestamp_should_return_a_time_string"
   ];
 
   pythonImportsCheck = [ "aioswitcher" ];
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index 1294f8dade69e..0596e654eb7e7 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -11,15 +11,15 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "31";
+  version = "33";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-8Hm7sUkIW4rVLCL5+vHfhAvmc8+IKDXaSLtYJTf14XY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-MXzUQOC5Y33RgRKf5BPbA9VfQKKdRjawF9kW4QmSHkU=";
   };
 
   propagatedBuildInputs = [
@@ -37,7 +37,9 @@ buildPythonPackage rec {
     "--asyncio-mode=auto"
   ];
 
-  pythonImportsCheck = [ "aiounifi" ];
+  pythonImportsCheck = [
+    "aiounifi"
+  ];
 
   meta = with lib; {
     description = "Python library for communicating with Unifi Controller API";
diff --git a/pkgs/development/python-modules/aioymaps/default.nix b/pkgs/development/python-modules/aioymaps/default.nix
index c23451b9db92a..e1da7baaa6b50 100644
--- a/pkgs/development/python-modules/aioymaps/default.nix
+++ b/pkgs/development/python-modules/aioymaps/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "aioymaps";
-  version = "1.2.2";
+  version = "1.2.3";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZWolVsh6MSEA3h62ERaCLSVAr+vl53yysPjulMtW4QI=";
+    sha256 = "sha256-pW8FoMdA8XdQZmLRwk5SBBgFhYhgEMJPA9+b+8aicuE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/amazon-ion/default.nix b/pkgs/development/python-modules/amazon-ion/default.nix
index eb83fcce471b5..e8e63f41b62e7 100644
--- a/pkgs/development/python-modules/amazon-ion/default.nix
+++ b/pkgs/development/python-modules/amazon-ion/default.nix
@@ -41,6 +41,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python implementation of Amazon Ion";
     homepage = "https://github.com/amzn/ion-python";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ terlar ];
   };
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index a6a5aa49953fd..72481814f9d4a 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -46,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-qXzkrfF8FkALkEaFLSmaadovwLc2DkXXJivdrT6srTc=";
+    hash = "sha256-77RLoSZnzggt8ZWQwRcvMhCYGupF2Kp+u2LFZ9ozXlw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/angrop/default.nix b/pkgs/development/python-modules/angrop/default.nix
index 63dce4bdbed78..cfd27ae4cbfe3 100644
--- a/pkgs/development/python-modules/angrop/default.nix
+++ b/pkgs/development/python-modules/angrop/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , progressbar
 , pythonOlder
+, pythonRelaxDepsHook
 , tqdm
 }:
 
@@ -21,12 +22,20 @@ buildPythonPackage rec {
     hash = "sha256-qaDAicmYZxLPTl17il61ij01prRv2H4xxe07Xg4KWhI=";
   };
 
+  nativeBuildInputs = [
+    pythonRelaxDepsHook
+  ];
+
   propagatedBuildInputs = [
     angr
     progressbar
     tqdm
   ];
 
+  pythonRelaxDeps = [
+    "angr"
+  ];
+
   # Tests have additional requirements, e.g., angr binaries
   # cle is executing the tests with the angr binaries already and is a requirement of angr
   doCheck = false;
diff --git a/pkgs/development/python-modules/ansible-later/default.nix b/pkgs/development/python-modules/ansible-later/default.nix
index 39a1d6d1d1999..5e7f717634a2e 100644
--- a/pkgs/development/python-modules/ansible-later/default.nix
+++ b/pkgs/development/python-modules/ansible-later/default.nix
@@ -63,7 +63,7 @@ buildPythonPackage rec {
       --replace " --cov=ansiblelater --cov-report=xml:coverage.xml --cov-report=term --cov-append --no-cov-on-fail" "" \
       --replace 'PyYAML = "6.0"' 'PyYAML = "*"' \
       --replace 'unidiff = "0.7.3"' 'unidiff = "*"' \
-      --replace 'jsonschema = "4.6.0"' 'jsonschema = "*"'
+      --replace 'jsonschema = "' 'jsonschema = "^'
   '';
 
   postInstall = ''
diff --git a/pkgs/development/python-modules/ansible-lint/default.nix b/pkgs/development/python-modules/ansible-lint/default.nix
index 9178cab6421a3..a3867db819f4c 100644
--- a/pkgs/development/python-modules/ansible-lint/default.nix
+++ b/pkgs/development/python-modules/ansible-lint/default.nix
@@ -20,13 +20,13 @@
 
 buildPythonPackage rec {
   pname = "ansible-lint";
-  version = "6.2.2";
+  version = "6.3.0";
   format = "pyproject";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-uOKVb+3pC9KBUOl/IJqK94fGAB9YS7ZhMRKhzhrqMR0=";
+    sha256 = "sha256-9X9SCuXYEM4GIVfcfWM5kK0vvsgbu7NMzEzjoMIfzTg=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ansible/core.nix b/pkgs/development/python-modules/ansible/core.nix
index d8111e13d6fae..118e82fae1a0b 100644
--- a/pkgs/development/python-modules/ansible/core.nix
+++ b/pkgs/development/python-modules/ansible/core.nix
@@ -24,11 +24,11 @@
 
 buildPythonPackage rec {
   pname = "ansible-core";
-  version = "2.13.0";
+  version = "2.13.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-COD7SnGNlnplTnDNpXz5MgGGkyndHPW4pCZ8V8XEyNM=";
+    sha256 = "sha256-q9R4zv8aCrqV6UzquNyCD0B7zA8AM9xUaEDN3CmjaVg=";
   };
 
   # ansible_connection is already wrapped, so don't pass it through
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 802e7ee72c7b8..69d80afb872f5 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -20,7 +20,7 @@
 
 let
   pname = "ansible";
-  version = "5.8.0";
+  version = "6.0.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -30,7 +30,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+gVkdiAfQGJfs22VxQQe9GOIC+GL5cc7mYtXtAGWeGM=";
+    sha256 = "sha256-ZBosJ7xXaPmorRSIDx9uVxwfKvHUXnbycdduP3R1TFM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
index 0fade1362c9c7..d0e8d4fab439e 100644
--- a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
+++ b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
@@ -9,8 +9,9 @@ buildPythonPackage rec {
 
   sourceRoot = "source/runtime/Python3";
 
+  # in 4.9, test was renamed to tests
   checkPhase = ''
-    cd test
+    cd test*
     ${python.interpreter} ctest.py
   '';
 
diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix
index a9ae447d45ff5..fde9fe67fccab 100644
--- a/pkgs/development/python-modules/anyio/default.nix
+++ b/pkgs/development/python-modules/anyio/default.nix
@@ -4,6 +4,7 @@
 , fetchFromGitHub
 , fetchpatch
 , pythonOlder
+, setuptools
 , setuptools-scm
 , idna
 , sniffio
@@ -44,6 +45,7 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
+    setuptools
     setuptools-scm
   ];
 
diff --git a/pkgs/development/python-modules/aocd/default.nix b/pkgs/development/python-modules/aocd/default.nix
index ca9768569ee1d..f9e2f177a88a8 100644
--- a/pkgs/development/python-modules/aocd/default.nix
+++ b/pkgs/development/python-modules/aocd/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "aocd";
-  version = "1.1.1";
+  version = "1.1.2";
 
   src = fetchFromGitHub {
     owner = "wimglenn";
     repo = "advent-of-code-data";
-    rev = "v${version}";
-    sha256 = "sha256-wdg6XUkjnAc9yAP7DP0UT6SlQHfj/ymhqzIGNM3fco4=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-3Cs9tiyWXtyeDXf4FK4gXokCZgtxv4Z5jmSv47t04ag=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/apipkg/default.nix b/pkgs/development/python-modules/apipkg/default.nix
index 241ddfaa11ab3..1b6528ab30098 100644
--- a/pkgs/development/python-modules/apipkg/default.nix
+++ b/pkgs/development/python-modules/apipkg/default.nix
@@ -3,11 +3,11 @@
 
 buildPythonPackage rec {
   pname = "apipkg";
-  version = "2.1.0";
+  version = "2.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a4be31cf8081e660d2cdea6edfb8a0f39f385866abdcfcfa45e5a0887345cb70";
+    sha256 = "sha256-zKNAIkFKE5duM6HjjWoJBWfve2jQNy+SPGmaj4wIivw=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 5dd1ed0d13124..bbd39cf619f46 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -16,7 +16,7 @@
 }:
 
 buildPythonPackage rec {
-  version = "5.2.0";
+  version = "5.3.0";
   pname = "approvaltests";
   format = "setuptools";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-PrO6NC+ARv0o1KHv+ekPwkEi4VpBIj+YjWRrCSFMHI8=";
+    sha256 = "sha256-nKTMWdXnxAf+UBUHkx+LAY29A/QXH+AtPjC296aarjU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index a6984e773dd09..47f667a4688de 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "2.0.2";
+  version = "2.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-Ozf3qmD9JRH19N/eERhDHz4LUoWwCVepLbSRCg6lWnQ=";
+    sha256 = "sha256-ThUkDCoRKefAqTmOxCk9W9LZlCqUU+jxF0egjthH4JI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index f9ffeefa296d9..a3dd440d43b16 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "apycula";
-  version = "0.3.1";
+  version = "0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit version;
     pname = "Apycula";
-    hash = "sha256-RoWZt2Ox0XjJ6vmuCCcNCTMfwZnwJ6fSx71fmipmu2c=";
+    hash = "sha256-+GVXmqoF9r/GPv2S7KP+PTS2WTeubhLBNaA9MXw5lRo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index 348a022d2ccfd..f87c7863c264c 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-yMUcuZ9v1dVbh/t456fpMu8tDFWIdh55LZh7FLkz9GM=";
+    hash = "sha256-sl5qCH/biH3QBrnfZAQMWd55yKM0PGE/Rx2MscKn4Nk=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/archspec/default.nix b/pkgs/development/python-modules/archspec/default.nix
new file mode 100644
index 0000000000000..ea48798b6898b
--- /dev/null
+++ b/pkgs/development/python-modules/archspec/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, click
+, six
+, pytestCheckHook
+, jsonschema
+}:
+
+buildPythonPackage rec {
+  pname = "archspec";
+  version = "0.1.4";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    fetchSubmodules = true;
+    sha256 = "sha256-ScigEpYNArveqi5tlqiA7LwsVs2RkjT+GChxhSy/ndw=";
+  };
+
+  nativeBuildInputs = [ poetry-core ];
+  propagatedBuildInputs = [ click six ];
+  checkInputs = [ pytestCheckHook jsonschema ];
+
+  pythonImportsCheck = [ "archspec" ];
+
+  meta = with lib; {
+    description = "A library for detecting, labeling, and reasoning about microarchitectures";
+    homepage = "https://archspec.readthedocs.io/en/latest/";
+    license = with licenses; [ mit asl20 ];
+    maintainers = with maintainers; [ atila ];
+  };
+}
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 2ea9f4130f979..4ccbe3175cc82 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -6,11 +6,10 @@
 , pytest-asyncio
 , pytestCheckHook
 , pythonOlder
-, fetchpatch
 }:
 
 buildPythonPackage rec {
-  version = "3.5.0";
+  version = "3.5.2";
   pname = "asgiref";
   format = "setuptools";
 
@@ -20,17 +19,9 @@ buildPythonPackage rec {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "sha256-eWDsd8iWK1C/X3t/fKAM1i4hyTM/daGTd8CDSgDTL/U=";
+    sha256 = "sha256-56suF63ePRDprqODhVIPCEGiO8UGgWrpwg2wYEs6OOE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "remove-sock-nonblock-in-tests.patch";
-      url = "https://github.com/django/asgiref/commit/d451a724c93043b623e83e7f86743bbcd9a05c45.patch";
-      sha256 = "0whdsn5isln4dqbqqngvsy4yxgaqgpnziz0cndj1zdxim8cdicj7";
-    })
-  ];
-
   propagatedBuildInputs = [
     async-timeout
   ];
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index 539787403c6ef..dc28b10d7b9dd 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -5,17 +5,18 @@
 , pythonOlder
 , isPyPy
 , lazy-object-proxy
-, wrapt
+, setuptools
+, setuptools-scm
 , typing-extensions
 , typed-ast
-, pytestCheckHook
-, setuptools-scm
 , pylint
+, pytestCheckHook
+, wrapt
 }:
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "2.11.2"; # Check whether the version is compatible with pylint
+  version = "2.11.5"; # Check whether the version is compatible with pylint
 
   disabled = pythonOlder "3.6.2";
 
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-adnvJCchsMWQxsIlenndUb6Mw1MgCNAanZcTmssmsEc=";
+    sha256 = "sha256-GKda3hNdOrsd11pi+6NpYodW4TAgSvqbv2hF4GaIvtM=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -34,19 +35,19 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     lazy-object-proxy
+    setuptools
     wrapt
   ] ++ lib.optionals (pythonOlder "3.10") [
     typing-extensions
-  ] ++ lib.optional (!isPyPy && pythonOlder "3.8") typed-ast;
+  ] ++ lib.optionals (!isPyPy && pythonOlder "3.8") [
+    typed-ast
+  ];
 
   checkInputs = [
     pytestCheckHook
   ];
 
   disabledTests = [
-    # assert (1, 1) == (1, 16)
-    "test_end_lineno_string"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
     # AssertionError: Lists differ: ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'Protocol', 'object'] != ['ABC[16 chars]yBase', 'Final', 'Generic', 'MyProtocol', 'object']
     "test_mro_typing_extensions"
   ];
@@ -59,7 +60,6 @@ buildPythonPackage rec {
     description = "An abstract syntax tree for Python with inference support";
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl21Plus;
-    platforms = platforms.all;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/audible/default.nix b/pkgs/development/python-modules/audible/default.nix
index 987859fbcdd66..8769cdedeac31 100644
--- a/pkgs/development/python-modules/audible/default.nix
+++ b/pkgs/development/python-modules/audible/default.nix
@@ -2,22 +2,24 @@
 
 buildPythonPackage rec {
   pname = "audible";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "mkb79";
     repo = "Audible";
-    rev = "v${version}";
-    sha256 = "0fsb5av4s7fvpn0iryl8jj3lwffwlxgbwj46l3fidy0l58nq3b1d";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-SIEDBuMCC/Hap2mGVbKEFic96ClN369SEsV06Sg+poY=";
   };
 
   propagatedBuildInputs = [ beautifulsoup4 httpx pbkdf2 pillow pyaes rsa ];
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'httpx>=0.20.*,<=0.22.*' 'httpx'
+    sed -i "s/httpx.*/httpx',/" setup.py
   '';
 
+  # has no tests
+  doCheck = false;
+
   pythonImportsCheck = [ "audible"];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aurorapy/default.nix b/pkgs/development/python-modules/aurorapy/default.nix
index 7e59d9c8bc958..00eb71e3d7daf 100644
--- a/pkgs/development/python-modules/aurorapy/default.nix
+++ b/pkgs/development/python-modules/aurorapy/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "aurorapy";
-  version = "0.2.6";
+  version = "0.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "energievalsabbia";
     repo = pname;
     rev = version;
-    hash = "sha256-DMlzzLe94dbeHjESmLc045v7vQ//IEsngAv7TeVznHE=";
+    hash = "sha256-rGwfGq3zdoG9NCGqVN29Q4bWApk5B6CRdsW9ctWgOec=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/authcaptureproxy/default.nix b/pkgs/development/python-modules/authcaptureproxy/default.nix
index 11e1f444cb0bb..d4a71d639c73b 100644
--- a/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "authcaptureproxy";
-  version = "1.1.3";
+  version = "1.1.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alandtse";
     repo = "auth_capture_proxy";
-    rev = "v${version}";
-    sha256 = "sha256-RD/8v3IQb50iGkU6zj5QfHXakjHdcCBWWAkXhCIF6qo=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-4IPBulzRoAAplyM/1MPE40IW4IXBIGYLydzpY64Gl0c=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index 2e5501afb2ddc..f55f91d5a1921 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "awesomeversion";
-  version = "22.5.2";
+  version = "22.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "ludeeus";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/La54qrejUhyoA1fRPEIItlKojTP5n5YmH+ovL6ASGk=";
+    sha256 = "sha256-osAJzJr9PtGH8wcHam1BolIBTD8QDBWg3mI/z4JW0JE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 1c750267695fc..f2dd2c4205271 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.17.0";
+  version = "1.18.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EkAtRqUHwmH0LG/bkXBbZ3TMgXDtcqLfUBySPbrgWmc=";
+    hash = "sha256-yAqGVZnnragi3+jaAGnkYNH/XtpH3bojXHmPCrANgJU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-data-tables/default.nix b/pkgs/development/python-modules/azure-data-tables/default.nix
new file mode 100644
index 0000000000000..7f2933e01a561
--- /dev/null
+++ b/pkgs/development/python-modules/azure-data-tables/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, azure-core
+, msrest
+}:
+
+buildPythonPackage rec {
+  pname = "azure-data-tables";
+  version = "12.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "zip";
+    sha256 = "sha256-3V/I3pHi+JCO+kxkyn9jz4OzBoqbpCYpjeO1QTnpZlw=";
+  };
+
+  propagatedBuildInputs = [
+    azure-core
+    msrest
+  ];
+
+  # has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "azure.data.tables" ];
+
+  meta = with lib; {
+    description = "NoSQL data storage service that can be accessed from anywhere";
+    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jonringer ];
+  };
+}
diff --git a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
index ce17bc60de50e..aa9d27e680ef1 100644
--- a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  preBuild = ''
+    rm -f azure_bdist_wheel.py
+    substituteInPlace setup.cfg \
+      --replace "azure-namespace-package = azure-mgmt-nspkg" ""
+  '';
+
   pythonNamespaces = [ "azure.mgmt" ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index ae6d9755171eb..83e1163df4672 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerinstance";
-  version = "9.1.0";
+  version = "9.2.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "22164b0c59138b37bc48ba6d476bf635152bc428dcb420b521a14b8c25c797ad";
+    sha256 = "sha256-3rElVUvbGqF99ppZanUUrwFGtCAXak2zhMVOd6n9bkY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
index fae7318cd4866..dc86f5acd7381 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "9.1.0";
+  version = "10.0.0";
   pname = "azure-mgmt-containerregistry";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jkzGLDqrJgwCnz27lGzFk4d2q+j0P+PU8uUVGQg7MkA=";
+    sha256 = "sha256-HjejK28Em5AeoQ20o4fucnXTlAwADF/SEpVfHn9anZk=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix b/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
index e61cd221db9b3..98c897aeabff7 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
@@ -5,18 +5,20 @@
 , msrestazure
 , azure-common
 , azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventgrid";
-  version = "10.1.0";
+  version = "10.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "4da3bf142d31bc25d80ee26641b95b7f52eb1baf4f326b9954e9f0613944ef3c";
+    hash = "sha256-jJ+gvJmOTz2YXQ9BDrFgXCybplgwvOYZ5Gv7FHLhxQA=";
   };
 
   propagatedBuildInputs = [
@@ -24,13 +26,14 @@ buildPythonPackage rec {
     msrestazure
     azure-mgmt-core
     azure-common
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
   doCheck = false;
-  pythonImportsCheck = [ "azure.mgmt.eventgrid" ];
+
+  pythonImportsCheck = [
+    "azure.mgmt.eventgrid"
+  ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure EventGrid Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 70103df64cfc2..4955655607d27 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -5,18 +5,20 @@
 , msrestazure
 , azure-common
 , azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-eventhub";
-  version = "10.0.0";
+  version = "10.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "0856574ef4b73bbbc62834051061e2081400aba7e3715e10ef5181d639e86a0b";
+    hash = "sha256-MZqhSBkwypvEefhoEWEPsBUFidWYD7qAX6edcBDDSSA=";
   };
 
   propagatedBuildInputs = [
@@ -24,8 +26,6 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
   ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index 8c2ec661f8c1d..f798ac2f8ab1f 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "azure-mgmt-netapp";
-  version = "7.0.0";
+  version = "8.0.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ziaddG+6MoPG18OYZyQ9HRx8nfGsz2UbWPC1pWacKto=";
+    hash = "sha256-S0miYNV+mr3IiT5aLlDhiSpwpPMyWQ5m6/ZUrVfCNRM=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index a44825b55bd6b..a49080152ed4a 100644
--- a/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
     azure-mgmt-nspkg
   ];
 
+  preBuild = ''
+    rm -f azure_bdist_wheel.py
+    substituteInPlace setup.cfg \
+      --replace "azure-namespace-package = azure-mgmt-nspkg" ""
+  '';
+
   pythonNamespaces = [ "azure.mgmt" ];
 
   # has no tests
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index a64ba934887ce..80ce4a495385c 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.11.0";
+  version = "12.12.0";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-SVNbMZC7adDZ/3o4MkaxTaTSsb3/YMrl+Rc5IMZ8p+4=";
+    sha256 = "sha256-9trwfRyobRia4VybGFnf9bcSe/JKB6S75B4LgeAdYvc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/beaker/default.nix b/pkgs/development/python-modules/beaker/default.nix
index c455ee50284ae..9b692ef92f2a5 100644
--- a/pkgs/development/python-modules/beaker/default.nix
+++ b/pkgs/development/python-modules/beaker/default.nix
@@ -70,6 +70,11 @@ buildPythonPackage rec {
 
   meta = {
     description = "A Session and Caching library with WSGI Middleware";
+    homepage = "https://github.com/bbangert/beaker";
+    license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ domenkozar ];
+    knownVulnerabilities = [
+      "CVE-2013-7489"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index 2a59ac00f7aa8..ee11ead039e7b 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, chardet
 , html5lib
 , lxml
 , pytestCheckHook
@@ -22,7 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-rZqlW2XvKAjrQF9Gz3Tff8twRNXLwmSH+W6y7y5DZpM=";
   };
 
+  nativeBuildInputs = [
+    sphinxHook
+  ];
+
   propagatedBuildInputs = [
+    chardet
     html5lib
     lxml
     soupsieve
@@ -31,7 +37,6 @@ buildPythonPackage rec {
   checkInputs = [
     pytestCheckHook
   ];
-  nativeBuildInputs = [ sphinxHook ];
 
   pythonImportsCheck = [
     "bs4"
diff --git a/pkgs/development/python-modules/billiard/default.nix b/pkgs/development/python-modules/billiard/default.nix
index f02bef97ba341..a2aaa1027c5d4 100644
--- a/pkgs/development/python-modules/billiard/default.nix
+++ b/pkgs/development/python-modules/billiard/default.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # psutil.NoSuchProcess: process no longer exists (pid=168)
+    "test_set_pdeathsig"
+  ];
+
   pythonImportsCheck = [
     "billiard"
   ];
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index 63071d4946248..5f494308ecf9f 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.9.4";
+  version = "0.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = "refs/tags/${version}";
-    hash = "sha256-+K+RffQzbJiKld0AM41OlK0ma0aopJRaTz+ZcCcYzJk=";
+    hash = "sha256-R7QmxSUbVsvb+MRTYlihxuM05WLYASRSfUs09fl7l1k=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/bitlist/default.nix b/pkgs/development/python-modules/bitlist/default.nix
index c96c2e8707b70..e1129f40602f9 100644
--- a/pkgs/development/python-modules/bitlist/default.nix
+++ b/pkgs/development/python-modules/bitlist/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "bitlist";
-  version = "0.7.0";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-p3Gws48u1/AzltbtPyWvSX4O0u4MgSXiVq4GstpPCCg=";
+    sha256 = "sha256-43Oh1ERGsW12HOqpbIa7rzLKrP9tIjckZhHwZSmBypE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/blinkpy/default.nix b/pkgs/development/python-modules/blinkpy/default.nix
index ae509418b7b1a..c56c377b299be 100644
--- a/pkgs/development/python-modules/blinkpy/default.nix
+++ b/pkgs/development/python-modules/blinkpy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "blinkpy";
-  version = "0.19.0";
+  version = "0.19.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "fronzbot";
     repo = "blinkpy";
-    rev = "v${version}";
-    hash = "sha256-niUGfktP1zVdrRCDy81ou4yAoscnYveHje9423IKcso=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-29wfdRbJ4U3ou/4jkpWBE2FrUuo09k4hTYLnIP1S3uU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 52b8d8d37fc14..6774189043c96 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -4,7 +4,6 @@
 , python-dateutil
 , jmespath
 , docutils
-, ordereddict
 , simplejson
 , mock
 , nose
@@ -24,7 +23,6 @@ buildPythonPackage rec {
     python-dateutil
     jmespath
     docutils
-    ordereddict
     simplejson
     urllib3
   ];
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 976a8b60dfb3b..a53af25bd8880 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "breathe";
-  version = "4.33.1";
+  version = "4.34.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "michaeljones";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-S4wxlxluRjwlRGCa5Os/J3EpdekI/CEPMWw6j/wlZbw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OOc3XQjqQa0cVpA+/HHco+koL+0whUm5qC7x3xiEdwQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/browser-cookie3/default.nix b/pkgs/development/python-modules/browser-cookie3/default.nix
index 3fce6a7473b3a..07874e808d48a 100644
--- a/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "browser-cookie3";
-  version = "0.14.3";
+  version = "0.15.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ch8ho4T3R9qwQiaP+n5Q21x62Ip3ibtqDJIDnobbh5c=";
+    hash = "sha256-AfRL2u1wMXXCCfKyrD0F96hXap88TQx7D1fjFWGKDy4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cachecontrol/default.nix b/pkgs/development/python-modules/cachecontrol/default.nix
index bee126fbf1677..529975f1080bf 100644
--- a/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/pkgs/development/python-modules/cachecontrol/default.nix
@@ -7,12 +7,13 @@
 , msgpack
 , pytestCheckHook
 , pythonOlder
+, redis
 , requests
 }:
 
 buildPythonPackage rec {
   pname = "cachecontrol";
-  version = "0.12.10";
+  version = "0.12.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,11 +22,10 @@ buildPythonPackage rec {
     owner = "ionrock";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mgvL0q10UbPHY1H3tJprke5p8qNl3HNYoeLAERZTcTs=";
+    hash = "sha256-uUPIQz/n347Q9G7NDOGuB760B/KxOglUxiS/rYjt5Po=";
   };
 
   propagatedBuildInputs = [
-    lockfile
     msgpack
     requests
   ];
@@ -34,12 +34,17 @@ buildPythonPackage rec {
     cherrypy
     mock
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.filecache;
 
   pythonImportsCheck = [
     "cachecontrol"
   ];
 
+  passthru.optional-dependencies = {
+    filecache = [ lockfile ];
+    redis = [ redis ];
+  };
+
   meta = with lib; {
     description = "Httplib2 caching for requests";
     homepage = "https://github.com/ionrock/cachecontrol";
diff --git a/pkgs/development/python-modules/cachelib/default.nix b/pkgs/development/python-modules/cachelib/default.nix
index 5a5c001c135df..6c0bb626f9bd5 100644
--- a/pkgs/development/python-modules/cachelib/default.nix
+++ b/pkgs/development/python-modules/cachelib/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "cachelib";
-  version = "0.7.0";
+  version = "0.8.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "pallets";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-/378xNkBZHoTJ9Qs8RTYi+QosLs7GBgMOkIDYOaSH1Y=";
+    sha256 = "sha256-MtfBiis0oXF4sxCUI/uneZM/OFzmTy+pj8ddTxamKrs=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index f38eb328e3d98..9de26ad533952 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "cachetools";
-  version = "5.0.0";
+  version = "5.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "tkem";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-urTkls1S83m7Eo7chPaQc5gxz0omZBToNYa8upQEiOo=";
+    hash = "sha256-DheHTD62f1ZxoiS0y0/CzDMHvKGmEiEUAX6oaqTpB78=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 5df8ae38bebed..cc84063060755 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.16.5";
+  version = "1.16.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "pycasbin";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-27j1iuqf0af4Cm3r32FJnWnjvvUcacuv2+1OL6z/mwM=";
+    sha256 = "sha256-l98QfrRg7ghZ+jT9J2BNILUcinOKwhpnIMS+W8NQFr4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/censys/default.nix b/pkgs/development/python-modules/censys/default.nix
index 754d7ca0f2aa9..272be648d2cf6 100644
--- a/pkgs/development/python-modules/censys/default.nix
+++ b/pkgs/development/python-modules/censys/default.nix
@@ -5,8 +5,10 @@
 , importlib-metadata
 , parameterized
 , poetry-core
+, pytest-mock
 , pytestCheckHook
 , pythonOlder
+, pythonRelaxDepsHook
 , requests
 , requests-mock
 , responses
@@ -15,20 +17,21 @@
 
 buildPythonPackage rec {
   pname = "censys";
-  version = "2.1.3";
+  version = "2.1.6";
   format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "censys";
     repo = "censys-python";
     rev = "v${version}";
-    sha256 = "sha256-Zv3ViOrdQby+7UQrHy6174W2qh1vx21R0yOA7ecr0lU=";
+    hash = "sha256-jCQWjGx35erhkj1gjBjdGytvKNarrTODH6fJpFMQqLE=";
   };
 
   nativeBuildInputs = [
     poetry-core
+    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -40,16 +43,19 @@ buildPythonPackage rec {
 
   checkInputs = [
     parameterized
+    pytest-mock
     pytestCheckHook
     requests-mock
     responses
   ];
 
+  pythonRelaxDeps = [
+    "backoff"
+    "requests"
+    "rich"
+  ];
+
   postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'backoff = "^1.11.1"' 'backoff = "*"' \
-      --replace 'requests = ">=2.26.0"' 'requests = "*"' \
-      --replace 'rich = "^10.16.2"' 'rich = "*"'
     substituteInPlace pytest.ini \
       --replace "--cov" ""
   '';
@@ -60,7 +66,9 @@ buildPythonPackage rec {
     mkdir -p $HOME
   '';
 
-  pythonImportsCheck = [ "censys" ];
+  pythonImportsCheck = [
+    "censys"
+  ];
 
   meta = with lib; {
     description = "Python API wrapper for the Censys Search Engine (censys.io)";
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 72a5d8db39d75..094729d704c92 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "1.24.0";
+  version = "1.28.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-XIKFEPQKIV5s6sZ7LRnlTvsb3cF4KIaiVZ36cAN1AwA=";
+    sha256 = "sha256-KwjxLNbRL8aOMXmCOg9wwveRVZsSr+PlkJkFmY/yRBs=";
   };
 
   sourceRoot = "source/${pname}";
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index bc361806d87a1..bef7c64ea1321 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "certifi";
-  version = "2021.10.08";
+  version = "2022.05.18.1";
 
   disabled = pythonOlder "3.5";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-certifi";
     rev = version;
-    sha256 = "sha256-SFb/spVHK15b53ZG1P147DcTjs1dqR0+MBXzpE+CWpo=";
+    sha256 = "sha256-uDNVzKcT45mz0zXBwPkttKV21fEcgbRamE3+QutNLjA=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/cfn-flip/default.nix b/pkgs/development/python-modules/cfn-flip/default.nix
index 105775a4547e8..f19a6aba260fb 100644
--- a/pkgs/development/python-modules/cfn-flip/default.nix
+++ b/pkgs/development/python-modules/cfn-flip/default.nix
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-cfn-template-flip";
     rev = version;
-    hash = "sha256-1cV0mHc6+P0CbnLIMSSwNEzDB+1QzNjioH/EoIo40xU=";
+    hash = "sha256-lfhTR3+D1FvblhQGF83AB8+I8WDPBTmo+q22ksgDgt4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index e50dc051361a9..d027c194675b6 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -11,13 +11,13 @@
 
 buildPythonPackage rec {
   pname = "channels";
-  version = "3.0.4";
+  version = "3.0.5";
 
   src = fetchFromGitHub {
     owner = "django";
     repo = pname;
     rev = version;
-    sha256 = "0jdylcb77n04rqyzg9v6qfzaxp1dnvdvnxddwh3x1qazw3csi5y2";
+    sha256 = "sha256-bKrPLbD9zG7DwIYBst1cb+zkDsM8B02wh3D80iortpw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index f4272f90d6298..6690a913beb23 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -8,9 +8,11 @@
 , objgraph
 , path
 , portend
+, pyopenssl
 , pytest-forked
 , pytest-services
 , pytestCheckHook
+, python-memcached
 , pythonAtLeast
 , pythonOlder
 , requests-toolbelt
@@ -38,15 +40,11 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    # required
     cheroot
     portend
     more-itertools
     zc_lockfile
     jaraco_collections
-    # optional
-    routes
-    simplejson
   ];
 
   checkInputs = [
@@ -90,6 +88,15 @@ buildPythonPackage rec {
     "cherrypy"
   ];
 
+  passthru.optional-dependencies = {
+    json = [ simplejson ];
+    memcached_session = [ python-memcached ];
+    routes_dispatcher = [ routes ];
+    ssl = [ pyopenssl ];
+    # not packaged yet
+    xcgi = [ /* flup */ ];
+  };
+
   meta = with lib; {
     description = "Object-oriented HTTP framework";
     homepage = "https://www.cherrypy.org";
diff --git a/pkgs/development/python-modules/chess/default.nix b/pkgs/development/python-modules/chess/default.nix
index 2644ebc9e7a74..e4f9c7bfb022e 100644
--- a/pkgs/development/python-modules/chess/default.nix
+++ b/pkgs/development/python-modules/chess/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "chess";
-  version = "1.9.1";
+  version = "1.9.2";
 
   disabled = pythonOlder "3.7";
 
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "niklasf";
     repo = "python-${pname}";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-sJ5mw9sQQn2IP7iDjYUGf6P3FqAbHJC1R4phnwVcNIM=";
+    sha256 = "sha256-RGAEkeE6YAik//yZt9mJdrFj4z0yxlHjZPLUaHd9yUQ=";
   };
 
   pythonImportsCheck = [ "chess" ];
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index 7dccab0b76240..efceffd786d47 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.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-mBpAwKUclwvgOeGD6BvPUKZHdjngfvuHdtKY3nx7jzM=";
+    hash = "sha256-4t1PbxcHxiv8W/M9McaBu7CTLc74gCZ7om3K4fgpFFI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 25765fc11d3db..db926aad32b4c 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -15,14 +15,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.6";
+  version = "9.2.7";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "v${version}";
-    sha256 = "1qlrxfj1n34xvwkac6mbcc7zmixxbp34fj7lkf0fvp7zcz1rpla1";
+    hash = "sha256-LpYi5Ty6OBcW0zokCliMDhujJ7tPPl1XdPs5ad1tv5s=";
   };
 
 in
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-GOrjT5CM+yzboOTgkVriuf1UpNDVhDgGpS8vp4D39W0=";
+    hash = "sha256-IQLtkS4LNyyEOwInd9A3pHGtj80yXARXcQKA3FonPUE=";
   };
 
   propagatedBuildInputs = [
@@ -66,7 +66,6 @@ buildPythonPackage rec {
     "test_ppc_rel24_relocation"
     "test_ppc_addr16_ha_relocation"
     "test_ppc_addr16_lo_relocation"
-    # Binary not found, seems to be missing in the current binaries release
     "test_plt_full_relro"
     # Test fails
     "test_tls_pe_incorrect_tls_data_start"
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b74827d1971dd..d0f81a20c6d34 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -2,7 +2,6 @@
 , stdenv
 , buildPythonPackage
 , pythonOlder
-, pythonAtLeast
 , fetchFromGitHub
 , pillow
 , libX11
@@ -17,7 +16,7 @@ buildPythonPackage rec {
   version = "1.2.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "ful1e5";
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index e6498216aa03c..97c23c17dd351 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.9.10";
+  version = "2.9.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LsUMB0zqlelHqWsgdmJ8v+Qn/reYuxCTKTODBT9K0bg=";
+    hash = "sha256-kvCSazLBU2sBzobdZrVXcdlEpMoAe5wb7rBWxzhDuus=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index 0e0debe932918..d33f4dbee3582 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,28 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pytest, mock }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, psutil
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "cloudpickle";
-  version = "2.0.0";
-  disabled = isPy27; # abandoned upstream
+  version = "2.1.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5cd02f3b417a783ba84a4ec3e290ff7929009fe51f6405423cfccfadd43ba4a4";
+    hash = "sha256-uyM+h2pYSR2VkKZ2+Tx6VHOgj3R9Wrnff5zlZLPnk44=";
   };
 
-  buildInputs = [ pytest mock ];
+  checkInputs = [
+    psutil
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "cloudpickle"
+  ];
 
-  # See README for tests invocation
-  checkPhase = ''
-    PYTHONPATH=$PYTHONPATH:'.:tests' py.test
-  '';
+  disabledTestPaths = [
+    # ModuleNotFoundError: No module named '_cloudpickle_testpkg'
+    "tests/cloudpickle_test.py"
+  ];
 
-  # TypeError: cannot serialize '_io.FileIO' object
-  doCheck = false;
+  disabledTests = [
+    # TypeError: cannot pickle 'EncodedFile' object
+    "test_pickling_special_file_handles"
+  ];
 
   meta = with lib; {
     description = "Extended pickling support for Python objects";
     homepage = "https://github.com/cloudpipe/cloudpickle";
     license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cloup/default.nix b/pkgs/development/python-modules/cloup/default.nix
index 92ccba675e0cb..551c819e39c2f 100644
--- a/pkgs/development/python-modules/cloup/default.nix
+++ b/pkgs/development/python-modules/cloup/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "cloup";
-  version = "0.14.0";
+  version = "0.15.0";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4dec7e43905b7771884cda4f13ab8b7537bceaee467a92655e7660797ab08c47";
+    sha256 = "sha256-Mq7391NiKN7xP5ZRsvY7XvnVr+vu/aFcD21obrjKbHE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cocotb/0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch b/pkgs/development/python-modules/cocotb/0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch
new file mode 100644
index 0000000000000..38ca864add3b3
--- /dev/null
+++ b/pkgs/development/python-modules/cocotb/0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch
@@ -0,0 +1,26 @@
+From 94c4768cd69b026e498d92133dd6c7d8589cf911 Mon Sep 17 00:00:00 2001
+From: Jiajie Chen <c@jia.je>
+Date: Sat, 25 Jun 2022 10:19:44 +0800
+Subject: [PATCH] Patch LDCXXSHARED for macOS along with LDSHARED
+
+In Nixpkgs, we patched distutils to respect LDCXXSHARED environment, so
+the replacement should be taken on LDCXXSHARED as well.
+---
+ cocotb_build_libs.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/cocotb_build_libs.py b/cocotb_build_libs.py
+index 66097ec2..d5555b36 100755
+--- a/cocotb_build_libs.py
++++ b/cocotb_build_libs.py
+@@ -583,6 +583,7 @@ def get_ext():
+ 
+     if sys.platform == "darwin":
+         cfg_vars["LDSHARED"] = cfg_vars["LDSHARED"].replace("-bundle", "-dynamiclib")
++        cfg_vars["LDCXXSHARED"] = cfg_vars["LDCXXSHARED"].replace("-bundle", "-dynamiclib")
+ 
+     share_lib_dir = os.path.relpath(os.path.join(cocotb_share_dir, "lib"))
+     include_dir = os.path.relpath(os.path.join(cocotb_share_dir, "include"))
+-- 
+2.36.1
+
diff --git a/pkgs/development/python-modules/cocotb/default.nix b/pkgs/development/python-modules/cocotb/default.nix
index d24d3bc798227..83ed76ac86691 100644
--- a/pkgs/development/python-modules/cocotb/default.nix
+++ b/pkgs/development/python-modules/cocotb/default.nix
@@ -40,8 +40,17 @@ buildPythonPackage rec {
 
     # remove circular dependency cocotb-bus from setup.py
     substituteInPlace setup.py --replace "'cocotb-bus<1.0'" ""
+  '' + lib.optionalString stdenv.isDarwin ''
+    # disable lto on darwin
+    # https://github.com/NixOS/nixpkgs/issues/19098
+    substituteInPlace cocotb_build_libs.py --replace "-flto" ""
   '';
 
+  patches = [
+    # Fix "can't link with bundle (MH_BUNDLE) only dylibs (MH_DYLIB) file" error
+    ./0001-Patch-LDCXXSHARED-for-macOS-along-with-LDSHARED.patch
+  ];
+
   checkInputs = [ cocotb-bus pytestCheckHook swig verilog ];
 
   checkPhase = ''
@@ -53,6 +62,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/cocotb/cocotb";
     license = licenses.bsd3;
     maintainers = with maintainers; [ matthuszagh ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/colorama/default.nix b/pkgs/development/python-modules/colorama/default.nix
index 1d472035b2f2e..f362bbd30b3c4 100644
--- a/pkgs/development/python-modules/colorama/default.nix
+++ b/pkgs/development/python-modules/colorama/default.nix
@@ -12,10 +12,13 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
+  pythonImportsCheck = [ "colorama" ];
+
   meta = with lib; {
+    description = "Cross-platform colored terminal text";
     homepage = "https://github.com/tartley/colorama";
     license = licenses.bsd3;
-    description = "Cross-platform colored terminal text";
+    maintainers = with maintainers; [ ];
   };
 }
 
diff --git a/pkgs/development/python-modules/compreffor/default.nix b/pkgs/development/python-modules/compreffor/default.nix
index 9427739025830..1836450537715 100644
--- a/pkgs/development/python-modules/compreffor/default.nix
+++ b/pkgs/development/python-modules/compreffor/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "compreffor";
-  version = "0.5.1.post1";
+  version = "0.5.2";
 
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "Zqia+yP4Dp5VNGeMwv+j04aNm9oVmZ2juehbfEzDfOQ=";
+    sha256 = "sha256-rsC0HJCl3IGqEqUqfCwRRNwzjtfGDlxcCkeOU3On22Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/configobj/default.nix b/pkgs/development/python-modules/configobj/default.nix
index 746c5f35f2568..3ea89db527e96 100644
--- a/pkgs/development/python-modules/configobj/default.nix
+++ b/pkgs/development/python-modules/configobj/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchFromGitHub
+, mock
+, pytestCheckHook
+, pythonOlder
 , six
-, mock, pytest
 }:
 
 buildPythonPackage rec {
   pname = "configobj";
   version = "5.0.6";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
-  # Pypi archives don't contain the tests
   src = fetchFromGitHub {
     owner = "DiffSK";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0x97794nk3dfn0i3si9fv7y19jnpnarb34bkdwlz7ii7ag6xihhw";
+    hash = "sha256-HMLYzVMnxvMpb3ORsbKy18oU/NkuRT0isK6NaUk6J3U=";
   };
 
+  propagatedBuildInputs = [
+    six
+  ];
 
-  propagatedBuildInputs = [ six ];
-
-  checkPhase = ''
-    pytest --deselect=tests/test_configobj.py::test_options_deprecation
-  '';
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
-  checkInputs = [ mock pytest ];
+  pythonImportsCheck = [
+    "configobj"
+  ];
 
   meta = with lib; {
     description = "Config file reading, writing and validation";
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index 2e36a1c455470..3bac60d0e7d77 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "2.13.1";
+  version = "2.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "spec-first";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nWhrb2oyBue/Q/dAdSgk3K/JXdgLg1xAEbOtCTRYs/M=";
+    hash = "sha256-5+OZvJG68jZZsfOuOqsCUSPLV6vvjk9msJzjsCwo0jw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/constantly/default.nix b/pkgs/development/python-modules/constantly/default.nix
index e3a9c642f4780..b75eca7163657 100644
--- a/pkgs/development/python-modules/constantly/default.nix
+++ b/pkgs/development/python-modules/constantly/default.nix
@@ -9,6 +9,8 @@ buildPythonPackage rec {
     sha256 = "0dgwdla5kfpqz83hfril716inm41hgn9skxskvi77605jbmp4qsq";
   };
 
+  pythonImportsCheck = [ "constantly" ];
+
   meta = with lib; {
     homepage = "https://github.com/twisted/constantly";
     description = "symbolic constant support";
diff --git a/pkgs/development/python-modules/container-inspector/default.nix b/pkgs/development/python-modules/container-inspector/default.nix
index 9d4f67ca83020..00dae814b1c2f 100644
--- a/pkgs/development/python-modules/container-inspector/default.nix
+++ b/pkgs/development/python-modules/container-inspector/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "container-inspector";
-  version = "31.0.0";
+  version = "31.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "nexB";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-YwtyNZsTMb8iFXo/rojvjkKUbMNRCXVamzFykpwYCOk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-44sTZelCT6sGPyMteJZBcPRReTHuO1ZUxeQ0Vp7Zmqo=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index de42f72841121..fdad4febcdafb 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,23 +1,31 @@
 { lib, buildPythonPackage, fetchPypi, isPyPy
 , pytest, pytest-cov, pytest-mock, freezegun
-, jinja2, future, binaryornot, click, whichcraft, poyo, jinja2_time, requests
-, python-slugify }:
+, jinja2, future, binaryornot, click, jinja2_time, requests
+, python-slugify
+, pyyaml
+}:
 
 buildPythonPackage rec {
   pname = "cookiecutter";
-  version = "1.7.3";
+  version = "2.1.1";
 
   # not sure why this is broken
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-a5pNcoguJDvgd6c5fQ8fdv5mzz35HzEV27UzDiFPpFc=";
+    sha256 = "sha256-85gr6NnFPawSYYZAE/3sf4Ov0uQu3m9t0GnF4UnFQNU=";
   };
 
   checkInputs = [ pytest pytest-cov pytest-mock freezegun ];
   propagatedBuildInputs = [
-    jinja2 future binaryornot click whichcraft poyo jinja2_time requests python-slugify
+    binaryornot
+    jinja2
+    click
+    pyyaml
+    jinja2_time
+    python-slugify
+    requests
   ];
 
   # requires network access for cloning git repos
diff --git a/pkgs/development/python-modules/crownstone-uart/default.nix b/pkgs/development/python-modules/crownstone-uart/default.nix
index e24235203ebb9..163f6a6cec28b 100644
--- a/pkgs/development/python-modules/crownstone-uart/default.nix
+++ b/pkgs/development/python-modules/crownstone-uart/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "crownstone-uart";
-  version = "2.4.1";
+  version = "2.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "crownstone";
     repo = "crownstone-lib-python-uart";
     rev = version;
-    sha256 = "sha256-NGy63o56oWhHcQ9QKo05k/z8ABp3p3T3+uY2O1YyzBk=";
+    sha256 = "sha256-WcEwAqHy3tuRlx1nyc+BKAb+PLD2B55fGSgb8dsbXbM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index b4048366ed544..08314f71308ef 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -12,7 +12,9 @@
 , isPyPy
 , cffi
 , pytestCheckHook
+, pytest-benchmark
 , pytest-subtests
+, pythonOlder
 , pretend
 , libiconv
 , iso8601
@@ -25,18 +27,19 @@ let
 in
 buildPythonPackage rec {
   pname = "cryptography";
-  version = "36.0.2"; # Also update the hash in vectors.nix
+  version = "37.0.2"; # Also update the hash in vectors.nix
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cPj097sqyfNAZVy6yJ1oxSevW7Q4dSKoQT6EHj5mKMk=";
+    sha256 = "sha256-8iStJTzJzqdWj0kHcAfSJj76VzlqLy94EUBm/VS1xo4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    sha256 = "sha256-6C4N445h4Xf2nCc9rJWpSZaNPilR9GfgbmKvNlSIFqg=";
+    sha256 = "sha256-qvrxvneoBXjP96AnUPyrtfmCnZo+IriHR5HbtWQ5Gk8=";
   };
 
   cargoRoot = "src/rust";
@@ -63,6 +66,7 @@ buildPythonPackage rec {
     iso8601
     pretend
     pytestCheckHook
+    pytest-benchmark
     pytest-subtests
     pytz
   ];
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index 9937209072653..d2c2beb9aba67 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -8,7 +8,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "cryptography_vectors";
     inherit version;
-    sha256 = "sha256-KnkkRJoDAl+vf4dUpvQgAAHKshBzSmzmrB9r2s06aOQ=";
+    sha256 = "sha256-fGXT3lF1b0GBQt9gVBfsLG6WHDZPcMyKEDAwiJ1aMhk=";
   };
 
   # No tests included
diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix
index 265504938df99..c4f0d9849ff80 100644
--- a/pkgs/development/python-modules/cssutils/default.nix
+++ b/pkgs/development/python-modules/cssutils/default.nix
@@ -6,9 +6,9 @@
 , fetchPypi
 , setuptools
 , setuptools-scm
-, toml
 , importlib-metadata
 , cssselect
+, jaraco-test
 , lxml
 , mock
 , pytestCheckHook
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "2.4.0";
+  version = "2.4.2";
 
   disabled = pythonOlder "3.7";
 
@@ -25,13 +25,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LZchCoOwo/4eRGn1/5pkILB4VyA1GIsbq3EDw6NtyJs=";
+    hash = "sha256-h3gYv6lmjMU1dz9G5rakbeKENhkSEXQbP3tKqmTZr7s=";
   };
 
   nativeBuildInputs = [
     setuptools
     setuptools-scm
-    toml
   ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
@@ -40,6 +39,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     cssselect
+    jaraco-test
     lxml
     mock
     pytestCheckHook
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 352af83f0139d..05cb491c14e27 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "2.5.1";
+  version = "2.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-w/av9U42fC4g7NUw7PSW+K822klH4e1xYFPh7I4jrRA=";
+    hash = "sha256-UM5z8FEu+Pua/LToraGh8N6V3ujUnu4F6lJec+4cUg4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index eb2e641910915..f5387a0d53c3e 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.5.0";
+  version = "2.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Qh5oOkTxEbxXXDX+g9TDa5DiYBlMpnx0yKsn/XMfMF0=";
+    hash = "sha256-ptJ/rRAENiwcvnCM80gewUwW5Q77gD0b/NF534LpPfY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dask-gateway-server/default.nix b/pkgs/development/python-modules/dask-gateway-server/default.nix
index f55a2fe750943..5ef21c545fa2e 100644
--- a/pkgs/development/python-modules/dask-gateway-server/default.nix
+++ b/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -1,25 +1,31 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , aiohttp
+, buildPythonPackage
 , colorlog
 , cryptography
-, traitlets
+, fetchFromGitHub
 , go
-, isPy27
+, pythonOlder
+, traitlets
 }:
 
 buildPythonPackage rec {
   pname = "dask-gateway-server";
   # update dask-gateway-server lock step with dask-gateway
-  version = "0.9.0";
-  disabled = isPy27;
+  version = "2022.4.0";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "82bca8a98fc1dbda9f67c8eceac59cb92abe07db6227c120a1eb1d040ea40fda";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "dask-gateway";
+    rev = version;
+    hash = "sha256-Grjp7gt3Pos4cQSGV/Rynz6W/zebRI0OqDiWT4cTh8I=";
   };
 
+  sourceRoot = "${src.name}/${pname}";
+
   nativeBuildInputs = [
     go
   ];
@@ -36,15 +42,17 @@ buildPythonPackage rec {
     export GO111MODULE=off
   '';
 
-  # tests requires cluster for testing
+  # Tests requires cluster for testing
   doCheck = false;
 
-  pythonImportsCheck = [ "dask_gateway_server" ];
+  pythonImportsCheck = [
+    "dask_gateway_server"
+  ];
 
   meta = with lib; {
     description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index 9072a691c20aa..bd9b468064ddb 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -1,33 +1,63 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , cloudpickle
 , dask
-, numpy, toolz # dask[array]
+, distributed
+, fetchPypi
 , multipledispatch
-, setuptools-scm
-, scipy
-, scikit-learn
 , pytestCheckHook
+, pythonOlder
+, scikit-learn
+, scipy
+, setuptools-scm
+, sparse
 }:
 
 buildPythonPackage rec {
-  version = "0.2.0";
   pname = "dask-glm";
+  version = "0.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "58b86cebf04fe5b9e58092e1c467e32e60d01e11b71fdc628baaa9fc6d1adee5";
+    hash = "sha256-WLhs6/BP5bnlgJLhxGfjLmDQHhG3H9xii6qp/G0a3uU=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
-  checkInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ cloudpickle dask numpy toolz multipledispatch scipy scikit-learn ];
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cloudpickle
+    distributed
+    multipledispatch
+    scikit-learn
+    scipy
+    sparse
+  ] ++ dask.optional-dependencies.array;
+
+  checkInputs = [
+    sparse
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "dask_glm"
+  ];
+
+  disabledTestPaths = [
+    # Circular dependency with dask-ml
+    "dask_glm/tests/test_estimators.py"
+    # Test tries to imort an obsolete method
+    "dask_glm/tests/test_utils.py"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/dask/dask-glm/";
     description = "Generalized Linear Models with Dask";
+    homepage = "https://github.com/dask/dask-glm/";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index d069532cffadb..ee3365955db58 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -13,7 +13,6 @@
 , scikit-learn
 , scipy
 , setuptools-scm
-, toolz
 }:
 
 buildPythonPackage rec {
@@ -33,7 +32,6 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    dask
     dask-glm
     distributed
     multipledispatch
@@ -43,8 +41,8 @@ buildPythonPackage rec {
     pandas
     scikit-learn
     scipy
-    toolz
-  ];
+  ] ++ dask.optional-dependencies.array
+    ++ dask.optional-dependencies.dataframe;
 
   # has non-standard build from source, and pypi doesn't include tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 59869efbffd8c..3aec3e25228c2 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -4,6 +4,7 @@
 , buildPythonPackage
 , cloudpickle
 , distributed
+, fastparquet
 , fetchFromGitHub
 , fetchpatch
 , fsspec
@@ -12,17 +13,20 @@
 , packaging
 , pandas
 , partd
+, pyarrow
 , pytest-rerunfailures
 , pytest-xdist
 , pytestCheckHook
 , pythonOlder
 , pyyaml
+, scipy
 , toolz
+, zarr
 }:
 
 buildPythonPackage rec {
   pname = "dask";
-  version = "2022.02.1";
+  version = "2022.05.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +35,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = pname;
     rev = version;
-    hash = "sha256-A8ktvfpow/QKAEEt9SUnkTqYFJCrV1mgnuDIP3gdyrE=";
+    hash = "sha256-8M70Pf31PhYnBPRhSG55eWg6gK0lxsIFKF+cRCsf0/U=";
   };
 
   propagatedBuildInputs = [
@@ -41,48 +45,71 @@ buildPythonPackage rec {
     partd
     pyyaml
     toolz
-    pandas
-    jinja2
-    bokeh
-    numpy
   ];
 
-  doCheck = true;
+  passthru.optional-dependencies = {
+    array = [
+      numpy
+    ];
+    complete = [
+      distributed
+    ];
+    dataframe = [
+      numpy
+      pandas
+    ];
+    distributed = [
+      distributed
+    ];
+    diagnostics = [
+      bokeh
+      jinja2
+    ];
+  };
 
   checkInputs = [
+    fastparquet
+    pyarrow
     pytestCheckHook
     pytest-rerunfailures
     pytest-xdist
+    scipy
+    zarr
   ];
 
   dontUseSetuptoolsCheck = true;
 
   postPatch = ''
-    # versioneer hack to set version of github package
+    # versioneer hack to set version of GitHub package
     echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
 
     substituteInPlace setup.py \
       --replace "version=versioneer.get_version()," "version='${version}'," \
       --replace "cmdclass=versioneer.get_cmdclass()," ""
+
+    substituteInPlace setup.cfg \
+      --replace " --durations=10" "" \
+      --replace " -v" ""
   '';
 
   pytestFlagsArray = [
-    # rerun failed tests up to three times
+    # Rerun failed tests up to three times
     "--reruns 3"
-    # don't run tests that require network access
+    # Don't run tests that require network access
     "-m 'not network'"
+    # Ignore warning about pyarrow 5.0.0 feautres
+    "-W"
+    "ignore::FutureWarning"
   ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
-    # this test requires features of python3Packages.psutil that are
+    # Test requires features of python3Packages.psutil that are
     # blocked in sandboxed-builds
     "test_auto_blocksize_csv"
+    # AttributeError: 'str' object has no attribute 'decode'
+    "test_read_dir_nometa"
   ] ++ [
-    # A deprecation warning from newer sqlalchemy versions makes these tests
-    # to fail https://github.com/dask/dask/issues/7406
-    "test_sql"
-    # Test interrupt fails intermittently https://github.com/dask/dask/issues/2192
-    "test_interrupt"
+    "test_chunksize_files"
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -98,10 +125,6 @@ buildPythonPackage rec {
     "dask.diagnostics"
   ];
 
-  passthru.optional-dependencies = {
-    complete = [ distributed ];
-  };
-
   meta = with lib; {
     description = "Minimal task scheduling abstraction";
     homepage = "https://dask.org/";
diff --git a/pkgs/development/python-modules/databases/default.nix b/pkgs/development/python-modules/databases/default.nix
index 518d2066853ad..05431026ec88b 100644
--- a/pkgs/development/python-modules/databases/default.nix
+++ b/pkgs/development/python-modules/databases/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "databases";
-  version = "0.5.5";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    hash = "sha256-NOXK1UCQzqvJRfzsgIfpihuD9oF52sMD+BxqUHWF8Rk=";
+    hash = "sha256-5+x735EFX9B25HgXiqzUJm0nbF7tDF5FOQVnbYQyomE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
index b271861e27897..e9fcda9deda52 100644
--- a/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -41,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Client for connecting to remote Databricks clusters";
     homepage = "https://pypi.org/project/databricks-connect";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.databricks;
     maintainers = with maintainers; [ kfollesdal ];
   };
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index e72d54cde4e36..cb93ceb2b204b 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -25,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.14.0";
+  version = "0.14.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VKEDOJV2ITO1gxKLbFQbcem0gEd/fzTIo+QSmZVsMGI=";
+    hash = "sha256-VGF6351lVCBat68EY9IY9lHk1hDMcjBcrVdPSliFq4Y=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/deal-solver/default.nix b/pkgs/development/python-modules/deal-solver/default.nix
index d3101f73e5409..f762ec0ca0ecf 100644
--- a/pkgs/development/python-modules/deal-solver/default.nix
+++ b/pkgs/development/python-modules/deal-solver/default.nix
@@ -11,15 +11,16 @@
 
 buildPythonPackage rec {
   pname = "deal-solver";
-  version = "0.1.0";
+  version = "0.1.1";
   format = "pyproject";
-  disabled = pythonOlder "3.6";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "life4";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-eSSyLBwPc0rrfew91nLBagYDD6aJRyx0cE9YTTSODI8=";
+    hash = "sha256-LXBAWbm8fT/jYNbzB95YeBL9fEknMNJvkTRMbc+nf6c=";
   };
 
   nativeBuildInputs = [
@@ -47,16 +48,6 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  disabledTests = [
-    # z3 assertion error
-    "test_expr_asserts_ok"
-  ];
-
-  disabledTestPaths = [
-    # regex matching seems flaky on tests
-    "tests/test_stdlib/test_re.py"
-  ];
-
   pythonImportsCheck = [ "deal_solver" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/debian/default.nix b/pkgs/development/python-modules/debian/default.nix
index 98f0e234e3ae4..352779f13dd06 100644
--- a/pkgs/development/python-modules/debian/default.nix
+++ b/pkgs/development/python-modules/debian/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "python-debian";
-  version = "0.1.43";
+  version = "0.1.44";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "abc702511c4e268da49c22fd97c83de355c559f3271e0798a6b67964be3d8248";
+    sha256 = "sha256-ZVkv47ZPbGyT2U4tJZnbXgwigx07z/B8t7ltOECxMz4=";
   };
 
   propagatedBuildInputs = [ chardet ];
diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix
index 7d7a9afcd300a..2b50dc97fb1e3 100644
--- a/pkgs/development/python-modules/diff-cover/default.nix
+++ b/pkgs/development/python-modules/diff-cover/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "diff-cover";
-  version = "6.5.0";
+  version = "6.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "diff_cover";
     inherit version;
-    hash = "sha256-N2O0/C75EGO6crUCFGUiJLLQqfMVRNVQRZb1xKhHzXs=";
+    hash = "sha256-jDuxOBLpZnvIP4x2BkAlEenC/nnWeG8SlSLnlpPuCWs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/discogs-client/default.nix b/pkgs/development/python-modules/discogs-client/default.nix
index 0295735abd754..f4d80c527bc85 100644
--- a/pkgs/development/python-modules/discogs-client/default.nix
+++ b/pkgs/development/python-modules/discogs-client/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "discogs-client";
-  version = "2.3.14";
+  version = "2.3.15";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "joalla";
     repo = "discogs_client";
-    rev = "v${version}";
-    sha256 = "sha256-HJxqTwZ9byjZxdftQPTkVo0Ufio9gNGH69q5Q2gYR00=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-teI0sbvluwVFmEOL/V1zLNGFVbeM7QzZ9rCOl3+A+aY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 2055c9de13e39..426ee1107909c 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -1,57 +1,55 @@
 { lib
 , buildPythonPackage
-, fetchPypi
 , click
 , cloudpickle
 , dask
+, fetchPypi
+, jinja2
+, locket
 , msgpack
+, packaging
 , psutil
+, pythonOlder
+, pyyaml
 , sortedcontainers
 , tblib
 , toolz
 , tornado
+, urllib3
 , zict
-, pyyaml
-, mpi4py
-, bokeh
-, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2022.2.1";
+  version = "2022.5.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  # get full repository need conftest.py to run tests
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+2KnWvjvM7vhqoCmjAGjOpPBzVozLdAXq0SVW/fs9ls=";
+    hash = "sha256-BEqsUfpk/Z4WsaLEMVIg0oHw5cwbBfTT03hSQm8efLY=";
   };
 
   propagatedBuildInputs = [
-    bokeh
     click
     cloudpickle
     dask
-    mpi4py
+    jinja2
+    locket
     msgpack
+    packaging
     psutil
     pyyaml
     sortedcontainers
     tblib
     toolz
     tornado
+    urllib3
     zict
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "dask == 2022.02.0" "dask"
-  '';
-
-  # when tested random tests would fail and not repeatably
+  # When tested random tests would fail and not repeatably
   doCheck = false;
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix
index 16d3e88b2115a..6db3cbefedb8d 100644
--- a/pkgs/development/python-modules/django-allauth/default.nix
+++ b/pkgs/development/python-modules/django-allauth/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "django-allauth";
-  version = "0.50.0";
+  version = "0.51.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "pennersr";
     repo = pname;
     rev = version;
-    hash = "sha256-O6KEDt+Z1MJUvKXQJILqLRgNj+ZrCZjlb3CJHpRL1Kk=";
+    hash = "sha256-o8EoayMMwxoJTrUA3Jo1Dfu1XFgC+Mcpa8yMwXlKAKY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-debug-toolbar/default.nix b/pkgs/development/python-modules/django-debug-toolbar/default.nix
index f67ea344be92c..b4409dc04d4cb 100644
--- a/pkgs/development/python-modules/django-debug-toolbar/default.nix
+++ b/pkgs/development/python-modules/django-debug-toolbar/default.nix
@@ -11,14 +11,16 @@
 
 buildPythonPackage rec {
   pname = "django-debug-toolbar";
-  version = "3.2.4";
-  disabled = pythonOlder "3.6";
+  version = "3.5";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
-    rev = version;
-    sha256 = "1008yzxxs1cp1wc0xcc9xskc3f7naxc4srv1sikiank1bc3479ha";
+    rev = "refs/tags/${version}";
+    hash = "sha256-OZWO3tXZ+p+zKtQHCkj0kGSXpDFHFV+HqSgiJvLmMTg=";
   };
 
   propagatedBuildInputs = [
@@ -42,11 +44,15 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  meta = {
+  pythonImportsCheck = [
+    "debug_toolbar"
+  ];
+
+  meta = with lib; {
     description = "Configurable set of panels that display debug information about the current request/response";
     homepage = "https://github.com/jazzband/django-debug-toolbar";
     changelog = "https://django-debug-toolbar.readthedocs.io/en/latest/changes.html";
-    maintainers =  with lib.maintainers; [ yuu ];
-    license = lib.licenses.bsd3;
-  };
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ yuu ];
+};
 }
diff --git a/pkgs/development/python-modules/django-filter/default.nix b/pkgs/development/python-modules/django-filter/default.nix
index 04867adab4500..bf4e342cc2d1b 100644
--- a/pkgs/development/python-modules/django-filter/default.nix
+++ b/pkgs/development/python-modules/django-filter/default.nix
@@ -7,11 +7,11 @@
 
 buildPythonPackage rec {
   pname = "django-filter";
-  version = "21.1";
+  version = "22.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-YyolH6jxqttLjM7/kyu1L+L4Jt19/n8+rEDlxGPWg24=";
+    sha256 = "sha256-7Uc7duhPfoOyURuyBQw++zbRNSB9ASjf465LNuNZS6U=";
   };
 
   propagatedBuildInputs = [ django ];
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
index 305e153ce602a..8216ca4ff8720 100644
--- a/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -1,28 +1,45 @@
-{ lib, buildPythonPackage, fetchPypi,
-  django, jinja2, pytz, tox
- }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, django
+, jinja2
+, python
+}:
 
 buildPythonPackage rec {
   pname = "django-jinja";
   version = "2.10.2";
 
-  meta = {
-    description = "Simple and nonobstructive jinja2 integration with Django";
-    homepage = "https://github.com/niwinz/django-jinja";
-    license = lib.licenses.bsd3;
-  };
+  disabled = pythonOlder "3.6";
+
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-v9+7VcH1pnnWmtV11VDEcH04ZjQAkVLv4BQInzxNFBI=";
+  src = fetchFromGitHub {
+    owner = "niwinz";
+    repo = "django-jinja";
+    rev = version;
+    hash = "sha256-IZ4HjBQt6K8xbaYfO5DVlGKUVCQ3UciAUpfnqCjzyCE=";
   };
 
-  buildInputs = [ django pytz tox ];
-  propagatedBuildInputs = [ django jinja2 ];
+  propagatedBuildInputs = [
+    django
+    jinja2
+  ];
 
-  # python installed: The directory '/homeless-shelter/.cache/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.,appdirs==1.4.3,Django==1.11.1,django-jinja==2.2.2,Jinja2==2.9.6,MarkupSafe==1.0,packaging==16.8,pyparsing==2.2.0,pytz==2017.2,six==1.10.0
-  doCheck = false;
   checkPhase = ''
-    tox
+    runHook preCheck
+
+    ${python.interpreter} testing/runtests.py
+
+    runHook postCheck
   '';
+
+  meta = {
+    description = "Simple and nonobstructive jinja2 integration with Django";
+    homepage = "https://github.com/niwinz/django-jinja";
+    changelog = "https://github.com/niwinz/django-jinja/blob/${src.rev}/CHANGES.adoc";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
 }
diff --git a/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index eca67211671c4..65bf5045a0351 100644
--- a/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "django-oauth-toolkit";
-  version = "1.7.0";
+  version = "2.1.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
-    rev = version;
-    sha256 = "0rp7pjif54yvdxfxn0pnf8ha3fjxspnx1ijyr1f8npwk2x5vnvhb";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-c78QYlU/gB4Lt04TlQFjtsS6pyjDm/fURBMa9hXLpLI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/django-prometheus/default.nix b/pkgs/development/python-modules/django-prometheus/default.nix
index 733a177d6a5ef..209395ef6430a 100644
--- a/pkgs/development/python-modules/django-prometheus/default.nix
+++ b/pkgs/development/python-modules/django-prometheus/default.nix
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "korfuri";
     repo = pname;
-    rev = version;
-    sha256 = "1y1cmycc545xrys41jk8kia36hwnkwhkw26mlpfdjgb63vq30x1d";
+    rev = "v${version}";
+    hash = "sha256-NE0zHnGGSrtkBLrSyBcQuyGrSfSQbdpevokg3YZhwDw=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch b/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
index 1e9e650608498..41f1229c5e59e 100644
--- a/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
+++ b/pkgs/development/python-modules/django-prometheus/drop-untestable-database-backends.patch
@@ -1,5 +1,5 @@
 diff --git a/django_prometheus/tests/end2end/testapp/settings.py b/django_prometheus/tests/end2end/testapp/settings.py
-index 0630721..bd2190a 100644
+index cdd167f..5c6073b 100644
 --- a/django_prometheus/tests/end2end/testapp/settings.py
 +++ b/django_prometheus/tests/end2end/testapp/settings.py
 @@ -53,33 +53,6 @@ DATABASES = {
@@ -28,9 +28,9 @@ index 0630721..bd2190a 100644
 -    "mysql": {
 -        "ENGINE": "django_prometheus.db.backends.mysql",
 -        "NAME": "django_prometheus_1",
--        "USER": "travis",
+-        "USER": "root",
 -        "PASSWORD": "",
--        "HOST": "localhost",
+-        "HOST": "127.0.0.1",
 -        "PORT": "3306",
 -    },
      # The following databases are used by test_db.py only
diff --git a/pkgs/development/python-modules/django_reversion/default.nix b/pkgs/development/python-modules/django-reversion/default.nix
index f6bc72dc226a5..a4f93c6ce2daa 100644
--- a/pkgs/development/python-modules/django_reversion/default.nix
+++ b/pkgs/development/python-modules/django-reversion/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "django-reversion";
-  version = "5.0.0";
+  version = "5.0.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-C63jw5k4dFEIfwxng14NPRhtdn3mpcW6U6iOr8Pyccg=";
+    sha256 = "sha256-orJqS4SxEzgTbKnWRXpK8wcJkseoliOzSQCaEj8o6h0=";
   };
 
   # tests assume the availability of a mysql/postgresql database
diff --git a/pkgs/development/python-modules/django-webpack-loader/default.nix b/pkgs/development/python-modules/django-webpack-loader/default.nix
index 2656dd593c1c2..ee51b0e7c8ecb 100644
--- a/pkgs/development/python-modules/django-webpack-loader/default.nix
+++ b/pkgs/development/python-modules/django-webpack-loader/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "django-webpack-loader";
-  version = "1.4.1";
+  version = "1.6.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "7e34085b7fc4d352e482ff9cf7d09ae4524e730675e25432ab1d25a2dd94e583";
+    sha256 = "sha256-opQY/0FpADW+ENLJSgZV2rCZAJxouJiDmBPWoQmxTXE=";
   };
 
   # django.core.exceptions.ImproperlyConfigured (path issue with DJANGO_SETTINGS_MODULE?)
diff --git a/pkgs/development/python-modules/djangoql/default.nix b/pkgs/development/python-modules/djangoql/default.nix
index f0550a296aa9f..0e38c82cab7ef 100644
--- a/pkgs/development/python-modules/djangoql/default.nix
+++ b/pkgs/development/python-modules/djangoql/default.nix
@@ -23,6 +23,6 @@ buildPythonPackage rec {
     description = "Advanced search language for Django";
     homepage = "https://github.com/ivelum/djangoql";
     license = licenses.mit;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/dremel3dpy/default.nix b/pkgs/development/python-modules/dremel3dpy/default.nix
index 06de83a778ae5..8d28ac60dccb8 100644
--- a/pkgs/development/python-modules/dremel3dpy/default.nix
+++ b/pkgs/development/python-modules/dremel3dpy/default.nix
@@ -2,28 +2,34 @@
 , async-timeout
 , buildPythonPackage
 , fetchPypi
+, imageio
+, imutils
 , pythonOlder
 , requests
 , urllib3
+, tqdm
 , validators
 , yarl
 }:
 
 buildPythonPackage rec {
   pname = "dremel3dpy";
-  version = "0.3.4";
+  version = "1.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zKbHKdgMx76cYGPvPVSm39si0LfyDA4L1CcKaQzEpCw=";
+    hash = "sha256-mf0YjK0nnuNnWgP20yqSgwc0SJfbqnvZqW0MKEXFTg8=";
   };
 
   propagatedBuildInputs = [
     async-timeout
+    imageio
+    imutils
     requests
+    tqdm
     urllib3
     validators
     yarl
diff --git a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
index e9128b79ec761..e2413df85d425 100644
--- a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "drf-spectacular-sidecar";
-  version = "2022.5.1";
+  version = "2022.6.1";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular-sidecar";
     rev = version;
-    sha256 = "sha256-UBuHU+F4b+plhGbvqho8/bgmq6yDUXSTnfxyD1xlDY4=";
+    sha256 = "sha256-SKMAA8tcvWUF7EARq9vN8C0DWcQFRX5j/tfgHF5TUWs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index e321c110a6bd4..bb75c68e32ebd 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -3,6 +3,7 @@
 , pythonOlder
 , fetchFromGitHub
 , requests
+, setuptools
 , six
 , stone
 , mock
@@ -13,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.31.0";
+  version = "11.32.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,11 +24,12 @@ buildPythonPackage rec {
     owner = "dropbox";
     repo = "dropbox-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mbBVivrpXYNuVbXeHRyy07LxPbtYvaL3JleK7QXOxi0=";
+    hash = "sha256-eb4GhmQJk60x02sFEYPF9x07lVRhVMFKYd9owO78S00=";
   };
 
   propagatedBuildInputs = [
     requests
+    setuptools
     six
     stone
   ];
diff --git a/pkgs/development/python-modules/ducc0/default.nix b/pkgs/development/python-modules/ducc0/default.nix
index ce2d0e4ef6e84..218af92608d46 100644
--- a/pkgs/development/python-modules/ducc0/default.nix
+++ b/pkgs/development/python-modules/ducc0/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "ducc0";
-  version = "0.23.0";
+  version = "0.24.0";
 
   disabled = pythonOlder "3.7";
 
@@ -11,7 +11,7 @@ buildPythonPackage rec {
     owner = "mtr";
     repo = "ducc";
     rev = "ducc0_${lib.replaceStrings ["."] ["_"] version}";
-    sha256 = "dOc3TihtoRuLfniC9zQ1MEbnvGJHzFZfZ8+J8Dnw6Lk=";
+    sha256 = "sFgEO6f9D3AFV62yLEocgrPrj03H60e2NtdA/Ws6lQw=";
   };
 
   buildInputs = [ pybind11 ];
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index fe7a95aba9bf6..ef4bc58459293 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -11,7 +11,7 @@
 }:
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.1.8";
+  version = "0.1.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     repo = "duckdb_engine";
     owner = "Mause";
-    rev = version;
-    hash = "sha256-dnm1nveCjrXFjDRykHp39AeVx7sk7Q/XwGn6hxdydT4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-tjyaV9DmiP2XrKxSCX2qKo7T7GNZtT3y5d1yQLdVuSE=";
   };
 
   nativeBuildInputs = [ poetry-core ];
diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix
index 787a54f267699..dd7ad8737975a 100644
--- a/pkgs/development/python-modules/duckdb/default.nix
+++ b/pkgs/development/python-modules/duckdb/default.nix
@@ -1,9 +1,11 @@
 { lib
 , buildPythonPackage
 , duckdb
+, google-cloud-storage
 , mypy
 , numpy
 , pandas
+, psutil
 , pybind11
 , setuptools-scm
 , pytestCheckHook
@@ -29,7 +31,9 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    google-cloud-storage
     mypy
+    psutil
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/email-validator/default.nix b/pkgs/development/python-modules/email-validator/default.nix
index b6112bb87dccd..bdd830810fb38 100644
--- a/pkgs/development/python-modules/email-validator/default.nix
+++ b/pkgs/development/python-modules/email-validator/default.nix
@@ -44,10 +44,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A robust email syntax and deliverability validation library for Python 2.x/3.x.";
+    description = "A robust email syntax and deliverability validation library";
     homepage    = "https://github.com/JoshData/python-email-validator";
     license     = licenses.cc0;
     maintainers = with maintainers; [ siddharthist ];
-    platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/enaml/default.nix b/pkgs/development/python-modules/enaml/default.nix
index ccd8bb497d100..61ae38930fe17 100644
--- a/pkgs/development/python-modules/enaml/default.nix
+++ b/pkgs/development/python-modules/enaml/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "enaml";
-  version = "0.15.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "nucleic";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-xSMgT8VooDS5kvf4BCcVbv/MNfRDTVnPKU3Ou+/Gq7I=";
+    sha256 = "sha256-kS15x7fZsHlARh1ILsQpJnwozutuoIysTCCKwkNCa7Y=";
   };
 
   # qt bindings cannot be found during tests
diff --git a/pkgs/development/python-modules/eth-typing/default.nix b/pkgs/development/python-modules/eth-typing/default.nix
index a2f3103be47d7..6c8bc6cb57073 100644
--- a/pkgs/development/python-modules/eth-typing/default.nix
+++ b/pkgs/development/python-modules/eth-typing/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "eth-typing";
-  version = "3.0.0";
+  version = "3.1.0";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "ethereum";
     repo = "eth-typing";
     rev = "v${version}";
-    sha256 = "sha256-9rrnDFPWAmrUkr2mVTVi/8DTJdg4hzGaU0UbpwG5mtY=";
+    sha256 = "sha256-Xk/IfW1zuNbGdYAxXTNL9kL+ZW1bWruZ21KFV9+lv/E=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/expiringdict/default.nix b/pkgs/development/python-modules/expiringdict/default.nix
index 23ca9c1c3f2a1..942feff4513f6 100644
--- a/pkgs/development/python-modules/expiringdict/default.nix
+++ b/pkgs/development/python-modules/expiringdict/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonApplication rec {
   pname = "expiringdict";
-  version = "1.2.1";
+  version = "1.2.2";
 
   # use fetchFromGitHub instead of fetchPypi because the test suite of
   # the package is not included into the PyPI tarball
@@ -18,7 +18,7 @@ buildPythonApplication rec {
     owner = "mailgun";
     repo = pname;
     rev = "v${version}";
-    sha256 = "07g1vxznmim78bankfl9brr01s31sksdcpwynq1yryh6xw9ri5xs";
+    sha256 = "sha256-vRhJSHIqc51I+s/wndtfANM44CKW3QS1iajqyoSBf0I=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/face_recognition/default.nix b/pkgs/development/python-modules/face_recognition/default.nix
index 6b2c6411aa1f6..b0c5266d6fb15 100644
--- a/pkgs/development/python-modules/face_recognition/default.nix
+++ b/pkgs/development/python-modules/face_recognition/default.nix
@@ -36,7 +36,7 @@ buildPythonPackage rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://github.com/ageitgey/face_recognition";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
     description = "The world's simplest facial recognition api for Python and the command line";
   };
 }
diff --git a/pkgs/development/python-modules/face_recognition_models/default.nix b/pkgs/development/python-modules/face_recognition_models/default.nix
index 6ec2634029b37..ccf20f4949988 100644
--- a/pkgs/development/python-modules/face_recognition_models/default.nix
+++ b/pkgs/development/python-modules/face_recognition_models/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ageitgey/face_recognition_models";
     license = licenses.cc0;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
     description = "Trained models for the face_recognition python library";
   };
 }
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index 9ce21b794927b..973c810b63476 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -3,7 +3,7 @@
 , aiosmtplib
 , blinker
 , buildPythonPackage
-, email_validator
+, email-validator
 , fakeredis
 , fastapi
 , fetchFromGitHub
@@ -31,6 +31,12 @@ buildPythonPackage rec {
     hash = "sha256-2Nb+FzmhsKvauT/yOCLHCEld8r+6niu9kV6EmjhC6S0=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace 'fastapi = "^0.75.0"' 'fastapi = "*"' \
+      --replace 'httpx = "^0.22.0"' 'httpx = "*"'
+  '';
+
   nativeBuildInputs = [
     poetry-core
   ];
@@ -39,7 +45,7 @@ buildPythonPackage rec {
     aioredis
     aiosmtplib
     blinker
-    email_validator
+    email-validator
     fakeredis
     fastapi
     httpx
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 3d418d75333f6..5366745a6f0af 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -7,7 +7,6 @@
 , pytest-asyncio
 , aiosqlite
 , databases
-, fetchpatch
 , flask
 , httpx
 , passlib
@@ -20,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.75.2";
+  version = "0.78.0";
   format = "flit";
 
   disabled = pythonOlder "3.6";
@@ -29,9 +28,14 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = pname;
     rev = version;
-    hash = "sha256-B4q3Q256Sj4jTQt1TDm3fiEaQKdVxddCF9+KsxkkTWo=";
+    hash = "sha256-4JS0VLVg67O7VdcDw2k2u+98kiCdCHvCAEGHYGWEIOA=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace "starlette==" "starlette>="
+  '';
+
   propagatedBuildInputs = [
     starlette
     pydantic
@@ -51,21 +55,6 @@ buildPythonPackage rec {
     trio
   ] ++ passlib.optional-dependencies.bcrypt;
 
-  patches = [
-    # Bump starlette, https://github.com/tiangolo/fastapi/pull/4483
-    (fetchpatch {
-      name = "support-later-starlette.patch";
-      # PR contains multiple commits
-      url = "https://patch-diff.githubusercontent.com/raw/tiangolo/fastapi/pull/4483.patch";
-      sha256 = "sha256-ZWaqAd/QYEYRL1hSQdXdFPgWgdmOill2GtmEn33vz2U=";
-    })
-  ];
-
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "starlette ==" "starlette >="
-  '';
-
   pytestFlagsArray = [
     # ignoring deprecation warnings to avoid test failure from
     # tests/test_tutorial/test_testing/test_tutorial001.py
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index 54a006d78422a..d0612a463c40f 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.4.4";
+  version = "1.4.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "fastai";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-2lV96QOlXfQ8PjSW45u9ZyXpssDgLyiUgmIC0VLOGus=";
+    sha256 = "sha256-i/Xw9lyKEW7uiNIyqeIXzwdowIugsNraQBb4fKGaX9U=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 30aa6a2ab7640..e11aac39f7e65 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -8,28 +8,50 @@
 , cramjam
 , fsspec
 , thrift
+, python-lzo
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
   version = "0.8.1";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = pname;
     rev = version;
-    sha256 = "05qb4nz87p9vnrdsyl25hdp5sj35lki64gjza5dahc89fwfdnsmd";
+    hash = "sha256-rWrbHHcJMahaUV8+YuKkZUhdboNFUK9btjvdg74lCxc=";
   };
 
+  propagatedBuildInputs = [
+    cramjam
+    fsspec
+    numba
+    numpy
+    pandas
+    thrift
+  ];
+
+  passthru.optional-dependencies = {
+    lzo = [
+      python-lzo
+    ];
+  };
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'," "" \
       --replace "oldest-supported-numpy" "numpy"
   '';
 
-  propagatedBuildInputs = [ cramjam fsspec numba numpy pandas thrift ];
-  checkInputs = [ pytestCheckHook ];
 
   # Workaround https://github.com/NixOS/nixpkgs/issues/123561
   preCheck = ''
@@ -43,7 +65,9 @@ buildPythonPackage rec {
     rm "$fastparquet_test"
   '';
 
-  pythonImportsCheck = [ "fastparquet" ];
+  pythonImportsCheck = [
+    "fastparquet"
+  ];
 
   meta = with lib; {
     description = "A python implementation of the parquet format";
diff --git a/pkgs/development/python-modules/filecheck/default.nix b/pkgs/development/python-modules/filecheck/default.nix
new file mode 100644
index 0000000000000..2480c196881af
--- /dev/null
+++ b/pkgs/development/python-modules/filecheck/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonApplication
+, fetchFromGitHub
+, poetry
+}:
+
+buildPythonApplication rec {
+  pname = "filecheck";
+  version = "0.0.22";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "mull-project";
+    repo = "FileCheck.py";
+    rev = "v${version}";
+    sha256 = "sha256-I2SypKkgcVuLyLiwNw5oWDb9qT56TbC6vbui8PEcziI=";
+  };
+
+  nativeBuildInputs = [ poetry ];
+
+  pythonImportsCheck = [ "filecheck" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/mull-project/FileCheck.py";
+    license = licenses.asl20;
+    description = "Python port of LLVM's FileCheck, flexible pattern matching file verifier";
+    maintainers = with maintainers; [ yorickvp ];
+  };
+}
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index 16379ef85e1ef..5fdbd8c441fe2 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -1,20 +1,21 @@
 { lib
 , buildPythonPackage
-, pythonOlder
 , fetchPypi
-, setuptools-scm
 , pytestCheckHook
+, pythonOlder
+, setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "filelock";
-  version = "3.6.0";
+  version = "3.7.1";
   format = "pyproject";
-  disabled = pythonOlder "3.6";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nNVAqTUuQyxyRqSP5OhxKxCssd8q0fMOjAcLgq4f7YU=";
+    hash = "sha256-Og/YUWatnbq1TJrslnN7dEEG3F8VwLCaZ0SkRSmfzwQ=";
   };
 
   nativeBuildInputs = [
@@ -26,8 +27,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://github.com/benediktschmitt/py-filelock";
     description = "A 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/filemagic/default.nix b/pkgs/development/python-modules/filemagic/default.nix
index ef8f6933e8fed..96ee0a95b283e 100644
--- a/pkgs/development/python-modules/filemagic/default.nix
+++ b/pkgs/development/python-modules/filemagic/default.nix
@@ -25,6 +25,6 @@ buildPythonPackage {
     description = "File type identification using libmagic";
     homepage = "https://github.com/aliles/filemagic";
     license = licenses.asl20;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index a2fb820c1e5fe..7d6df07885baa 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "flake8-bugbear";
-  version = "22.4.25";
+  version = "22.6.22";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-y/hpBlIQ3aJj3Y1snpArOCIv2w1ncQNMSYJ+G0CeM84=";
+    hash = "sha256-U5f7NZ1rkcYcluLsw2hTuPxme7QrmAMJrpKncFsYzNs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/flammkuchen/default.nix b/pkgs/development/python-modules/flammkuchen/default.nix
index 1349e10c5397a..eabfd1ad6fabf 100644
--- a/pkgs/development/python-modules/flammkuchen/default.nix
+++ b/pkgs/development/python-modules/flammkuchen/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "flammkuchen";
-  version = "0.9.2";
+  version = "1.0.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f249fe5bf85f717d3836e0db6fa9443a8a43101ce07704715b42251c44fc968e";
+    sha256 = "sha256-KtMGQftoYVNNMtfYeYiaQyMLAySpf9YXLMxj+e/CV5I=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index 6a1ea3991cfa3..75573c7a69d64 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -2,7 +2,7 @@
 , arrow
 , buildPythonPackage
 , colour
-, email_validator
+, email-validator
 , enum34
 , fetchPypi
 , flask
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   checkInputs = [
     arrow
     colour
-    email_validator
+    email-validator
     flask_sqlalchemy
     flask-babelex
     flask-mongoengine
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 5276fceb3f51a..9b0e993b1eb34 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -5,7 +5,7 @@
 , apispec
 , colorama
 , click
-, email_validator
+, email-validator
 , flask
 , flask-babel
 , flask_login
@@ -56,7 +56,7 @@ buildPythonPackage rec {
     apispec
     colorama
     click
-    email_validator
+    email-validator
     flask
     flask-babel
     flask_login
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 9fd80ac6d6778..6e78841ab8c32 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,18 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, flask, pytestCheckHook, pytest-cov, pytest-xprocess, pytestcache }:
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, cachelib
+, flask
+, pytest-asyncio
+, pytest-xprocess
+, pytestCheckHook
+}:
 
 buildPythonPackage rec {
   pname = "Flask-Caching";
-  version = "1.10.1";
-  disabled = isPy27; # invalid python2 syntax
+  version = "1.11.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "cf19b722fcebc2ba03e4ae7c55b532ed53f0cbf683ce36fafe5e881789a01c00";
+    sha256 = "28af189e97defb9e39b43ebe197b54a58aaee81bdeb759f46d969c26d7aa7810";
   };
 
-  propagatedBuildInputs = [ flask ];
+  propagatedBuildInputs = [
+    cachelib
+    flask
+  ];
 
-  checkInputs = [ pytestCheckHook pytest-cov pytest-xprocess pytestcache ];
+  checkInputs = [
+    pytest-asyncio
+    pytest-xprocess
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # backend_cache relies on pytest-cache, which is a stale package from 2013
diff --git a/pkgs/development/python-modules/flask-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
index 418225550167d..c593c855c70f2 100644
--- a/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -6,7 +6,6 @@
 , hiro
 , limits
 , mock
-, ordereddict
 , pymemcache
 , pytestCheckHook
 , redis
@@ -32,7 +31,6 @@ buildPythonPackage rec {
     redis
     flask-restful
     pymemcache
-    ordereddict
   ];
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/flask-mongoengine/default.nix b/pkgs/development/python-modules/flask-mongoengine/default.nix
index ee05ff420333b..e411d1f55a78b 100644
--- a/pkgs/development/python-modules/flask-mongoengine/default.nix
+++ b/pkgs/development/python-modules/flask-mongoengine/default.nix
@@ -8,7 +8,7 @@
 , nose
 , rednose
 , coverage
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    email_validator
+    email-validator
     flask
     flask-wtf
     mongoengine
diff --git a/pkgs/development/python-modules/flask-security-too/default.nix b/pkgs/development/python-modules/flask-security-too/default.nix
index ec088d5332c18..e1a598d3a0ba4 100644
--- a/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/pkgs/development/python-modules/flask-security-too/default.nix
@@ -23,7 +23,7 @@
 
 # propagates
 , blinker
-, email_validator
+, email-validator
 , flask
 , flask_login
 , flask_principal
@@ -54,7 +54,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     blinker
-    email_validator
+    email-validator
     flask
     flask_login
     flask_principal
diff --git a/pkgs/development/python-modules/flask-wtf/default.nix b/pkgs/development/python-modules/flask-wtf/default.nix
index fcfa4835be7c2..014f250128c32 100644
--- a/pkgs/development/python-modules/flask-wtf/default.nix
+++ b/pkgs/development/python-modules/flask-wtf/default.nix
@@ -4,7 +4,7 @@
 , flask
 , itsdangerous
 , wtforms
-, email_validator
+, email-validator
 , pytestCheckHook
 }:
 
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    email = [ email_validator ];
+    email = [ email-validator ];
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/flickrapi/default.nix b/pkgs/development/python-modules/flickrapi/default.nix
index 8ad1071cd241a..c13541acd833d 100644
--- a/pkgs/development/python-modules/flickrapi/default.nix
+++ b/pkgs/development/python-modules/flickrapi/default.nix
@@ -4,6 +4,7 @@
 , requests
 , requests-toolbelt
 , requests-oauthlib
+, six
 , pytestCheckHook
 , responses
 , pythonOlder
@@ -27,6 +28,7 @@ buildPythonPackage rec {
     requests
     requests-toolbelt
     requests-oauthlib
+    six
   ];
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index c7a2ba59db3e9..c8c9b7f4b19d4 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -54,5 +54,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/mher/flower";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ arnoldfarkas ];
+    knownVulnerabilities = [
+      "CVE-2022-30034"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index 0d836e51fe412..1dfaa3f3d5e21 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "fontParts";
-  version = "0.10.5";
+  version = "0.10.6";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-VriGYcpd2uVDMXeF3DXGKCMRQ9pTjDkrUOt2YSUgd5M=";
+    sha256 = "sha256-mEnQWmzzZ5S8rWzmXuJDjcuoICi6Q+aneX8hGXj11Gg=";
     extension = "zip";
   };
 
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index a667f631eb184..ba9929caacce2 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,19 +1,25 @@
 { lib
+, stdenv
 , buildPythonPackage
-, fetchFromGitHub
 , pythonOlder
-, brotlipy
-, zopfli
+, isPyPy
+, fetchFromGitHub
+, setuptools-scm
+, fs
 , lxml
+, brotli
+, brotlicffi
+, zopfli
+, unicodedata2
+, lz4
 , scipy
 , munkres
-, unicodedata2
+, matplotlib
 , sympy
-, reportlab
-, sphinx
+, xattr
+, skia-pathops
+, uharfbuzz
 , pytestCheckHook
-, glibcLocales
-, setuptools-scm
 }:
 
 buildPythonPackage rec {
@@ -31,28 +37,32 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  # all dependencies are optional, but
-  # we run the checks with them
+  passthru.optional-dependencies = let
+    extras = {
+      ufo = [ fs ];
+      lxml = [ lxml ];
+      woff = [ (if isPyPy then brotlicffi else brotli) zopfli ];
+      unicode = lib.optional (pythonOlder "3.11") unicodedata2;
+      graphite = [ lz4 ];
+      interpolatable = [ (if isPyPy then munkres else scipy) ];
+      plot = [ matplotlib ];
+      symfont = [ sympy ];
+      type1 = lib.optional stdenv.isDarwin xattr;
+      pathops = [ skia-pathops ];
+      repacker = [ uharfbuzz ];
+    };
+  in extras // {
+    all = lib.concatLists (lib.attrValues extras);
+  };
 
   checkInputs = [
     pytestCheckHook
-    # etree extra
-    lxml
-    # woff extra
-    brotlipy
-    zopfli
-    # interpolatable extra
-    scipy
-    munkres
-    # symfont
-    sympy
-    # pens
-    reportlab
-    sphinx
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    # unicode extra
-    unicodedata2
-  ];
+  ] ++ lib.concatLists (lib.attrVals [
+    "woff"
+    "interpolatable"
+    "pathops"
+    "repacker"
+  ] passthru.optional-dependencies);
 
   pythonImportsCheck = [ "fontTools" ];
 
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 7ff1577488914..844f396816489 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -1,29 +1,32 @@
 { lib
 , stdenv
+, aiohttp
 , buildPythonPackage
 , fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
 , numpy
-, aiohttp
-, pytest-vcr
-, pytest-mock
+, paramiko
 , pytest-asyncio
+, pytest-mock
+, pytest-vcr
+, pytestCheckHook
+, pythonOlder
 , requests
-, paramiko
 , smbprotocol
+, tqdm
 }:
 
 buildPythonPackage rec {
   pname = "fsspec";
-  version = "2022.3.0";
-  disabled = pythonOlder "3.6";
+  version = "2022.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "intake";
     repo = "filesystem_spec";
     rev = version;
-    sha256 = "sha256-jTF8R0kaHMsCYg+7YFi21Homn63K+ulp9NDZC/jkIXM=";
+    hash = "sha256-WOzw9UPF8LZuOhp5p/CJUUJcYpAfixV6GiI8tfnoklc=";
   };
 
   propagatedBuildInputs = [
@@ -31,13 +34,14 @@ buildPythonPackage rec {
     paramiko
     requests
     smbprotocol
+    tqdm
   ];
 
   checkInputs = [
     numpy
-    pytest-vcr
-    pytest-mock
     pytest-asyncio
+    pytest-mock
+    pytest-vcr
     pytestCheckHook
   ];
 
@@ -58,13 +62,15 @@ buildPythonPackage rec {
     "test_touch"
   ];
 
-  pythonImportsCheck = [ "fsspec" ];
+  pythonImportsCheck = [
+    "fsspec"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/intake/filesystem_spec";
     description = "A specification that Python filesystems should adhere to";
+    homepage = "https://github.com/intake/filesystem_spec";
     changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/functorch/default.nix b/pkgs/development/python-modules/functorch/default.nix
index 05b96077edc93..e7f4e29fe94a5 100644
--- a/pkgs/development/python-modules/functorch/default.nix
+++ b/pkgs/development/python-modules/functorch/default.nix
@@ -6,6 +6,7 @@
 , pytestCheckHook
 , python
 , pytorch
+, pybind11
 , which
 }:
 
@@ -29,6 +30,10 @@ buildPythonPackage rec {
     which
   ];
 
+  buildInputs = [
+    pybind11
+  ];
+
   preCheck = ''
     rm -rf functorch/
   '';
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index 60fbc917f7d95..cd97c2b5697c7 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -4,11 +4,12 @@
 , fetchPypi
 , sphinx
 , beautifulsoup4
+, sphinx-basic-ng
 }:
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2022.4.7";
+  version = "2022.6.21";
   format = "wheel";
   disable = pythonOlder "3.6";
 
@@ -16,12 +17,13 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    sha256 = "sha256-fz49L7l3SDWQ+Oyyws1RG9gmYbecGO+yTelVi8nN8tc=";
+    sha256 = "sha256-Bhto4yM0Xif8ugJM8zoed/Pf2NmYdBC+gidJpwbirdY=";
   };
 
   propagatedBuildInputs = [
     sphinx
     beautifulsoup4
+    sphinx-basic-ng
   ];
 
   installCheckPhase = ''
diff --git a/pkgs/development/python-modules/fuzzywuzzy/default.nix b/pkgs/development/python-modules/fuzzywuzzy/default.nix
index 0bcf8efc359e9..9059ba977b7b9 100644
--- a/pkgs/development/python-modules/fuzzywuzzy/default.nix
+++ b/pkgs/development/python-modules/fuzzywuzzy/default.nix
@@ -16,6 +16,6 @@ buildPythonPackage rec {
     description = "Fuzzy string matching for Python";
     homepage = "https://github.com/seatgeek/fuzzywuzzy";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix
index 33a19779ba14a..ea101117c135d 100644
--- a/pkgs/development/python-modules/gcal-sync/default.nix
+++ b/pkgs/development/python-modules/gcal-sync/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "gcal-sync";
-  version = "0.9.0";
+  version = "0.10.0";
 
   disabled = pythonOlder "3.9";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "gcal_sync";
     rev = "refs/tags/${version}";
-    hash = "sha256-7XvwN1sShvmg7Co3FyzPYJFCe961Ly4/854A1po22ds=";
+    hash = "sha256-RwQOLeOGxT8FijDSrByhZC/T8pFRDfJbA1eAQ1l4qUU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix
index 82791db5bcc46..85a88dc3d5b53 100644
--- a/pkgs/development/python-modules/gcsfs/default.nix
+++ b/pkgs/development/python-modules/gcsfs/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "gcsfs";
-  version = "2022.3.0";
+  version = "2022.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "fsspec";
     repo = pname;
     rev = version;
-    hash = "sha256-+Bchwsa8Jj7WBWbzyH+GQuqZki4EltMryumKt4Pm1es=";
+    hash = "sha256-gIkK1VSg1h04+MQBoxFtXIdn80faJlgQ9ayqV5p0RMU=";
   };
 
   propagatedBuildInputs = [
@@ -55,7 +55,9 @@ buildPythonPackage rec {
     "gcsfs/tests/test_retry.py"
   ];
 
-  pytestFlagsArray = [ "-x" ];
+  pytestFlagsArray = [
+    "-x"
+  ];
 
   pythonImportsCheck = [
     "gcsfs"
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 305fd93c96353..3368706c8c12f 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -11,12 +11,12 @@
 
 buildPythonApplication rec {
   pname = "gdown";
-  version = "4.4.0";
+  version = "4.5.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-GPw6TaSiJz3reqKcdIa+TfORnZBBWK1qaj4lyBFUcNc=";
+    sha256 = "sha256-ghcGEGPYr8qtnY4tVBD7wJicKz8JRqa9m/65RhYWzGo=";
   };
 
   propagatedBuildInputs = [
@@ -26,7 +26,8 @@ buildPythonApplication rec {
     tqdm
     setuptools
     six
-  ];
+  ]
+  ++ requests.optional-dependencies.socks;
 
   checkPhase = ''
     $out/bin/gdown --help > /dev/null
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
index 43609f3329244..35cd4ea7c4d95 100644
--- a/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.4.25";
+  version = "0.4.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TGitDdRvNKaZzbPrYvWx1bdbXAJW3OSnzbPBF2LpJW4=";
+    sha256 = "sha256-jhggGncxguG/hZutZ3gfg9dwl0Ex5wpcHFKZegAaM9Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/geoip2/default.nix b/pkgs/development/python-modules/geoip2/default.nix
index c5e9a01db5381..65f938fd6a97d 100644
--- a/pkgs/development/python-modules/geoip2/default.nix
+++ b/pkgs/development/python-modules/geoip2/default.nix
@@ -9,13 +9,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "4.5.0";
+  version = "4.6.0";
   pname = "geoip2";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b542252e87eb40adc3a2fc0f4e84b514c4c5e04ed46923a3a74d509f25f3103a";
+    sha256 = "sha256-8OgLzoCwa7OL0Iv0h31ahONU6TIJXmzPtNJ7tZj6T4M=";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index 327672bad1bd7..144a48f593244 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "gidgethub";
-  version = "5.1.0";
+  version = "5.2.0";
   format = "flit";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-kNGTb6mA2XBaljYvpOWaKFEks3NigsiPgmdIgSMKTiU=";
+    sha256 = "sha256-w1m3aRlOcvmE0uMo3g7o64G3AjQrCkTcXOuskhBOz0s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
index 8394f7918324a..79f30b89d31da 100644
--- a/pkgs/development/python-modules/glances-api/default.nix
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.3.5";
+  version = "0.3.6";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = version;
-    sha256 = "sha256-8NWrsiiKevIMeD++C2weRdG0FPm5T4fHMUSJM4J+AOo=";
+    sha256 = "sha256-2H8S08tntCNKwMw553/wuWLXmri7b2tLxFlgCDJWQNQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index 1d2ee112a4398..af46b9c675ff0 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -8,6 +8,7 @@
 , pythonOlder
 , requests
 , responses
+, six
 , typing-extensions
 }:
 
@@ -37,6 +38,7 @@ buildPythonPackage rec {
     mypy
     pytestCheckHook
     responses
+    six
   ];
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/gnureadline/default.nix b/pkgs/development/python-modules/gnureadline/default.nix
index 6f3ae30e8cde2..6a3b4cb4647ad 100644
--- a/pkgs/development/python-modules/gnureadline/default.nix
+++ b/pkgs/development/python-modules/gnureadline/default.nix
@@ -6,13 +6,13 @@
 }:
 
 buildPythonPackage rec {
-  version = "8.0.0";
+  version = "8.1.2";
   pname = "gnureadline";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0xllr43dizvybmb68i0ybk1xhaqx5abjwxa9vrg43b9ds0pggvk1";
+    sha256 = "sha256-QmKmqjVqsi72QvQ6f5TrQqctbwxTLttOjGuTP1cwVtI=";
   };
 
   buildInputs = [ pkgs.ncurses ];
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index baa6957c35ab1..ff684d597c302 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.10.0";
+  version = "2.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nicUpEaPhDBmWU2jP/R01d54xu9tgNUxZVD4gZGAyAw=";
+    hash = "sha256-f4wMYlmex0QrcJrl33VyOZgbURYnIjeWDR7rz4MzMJw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-datastore/default.nix b/pkgs/development/python-modules/google-cloud-datastore/default.nix
index e81fe18607f8d..c4476deb7bf1c 100644
--- a/pkgs/development/python-modules/google-cloud-datastore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datastore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-datastore";
-  version = "2.7.0";
+  version = "2.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-TS4noRo/spz+0x3I3bWbHJ3orrjQCDyy7OkSYn4z4G0=";
+    sha256 = "sha256-Q0dLstAwLamc2DCN1RMwPFHkvxGeGjLiUnyrkeAol0E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-firestore/default.nix b/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 24085cf5ff258..de0f9c32adfb4 100644
--- a/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-firestore";
-  version = "2.5.2";
+  version = "2.5.3";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ltFXT+cU/YGPqu28WcStV6bJarbiIGbjsHLI+9UZU80=";
+    sha256 = "sha256-ISPjpV2fjZSMbkJa6YzFGdrwyEC8MauLwS6pohMtFoY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-spanner/default.nix b/pkgs/development/python-modules/google-cloud-spanner/default.nix
index fa7a2a2310d9c..74537b37d0110 100644
--- a/pkgs/development/python-modules/google-cloud-spanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-spanner/default.nix
@@ -14,11 +14,11 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-spanner";
-  version = "3.14.1";
+  version = "3.15.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-d1d81cUtQu6DqKopv082HlmgSYOAWUdaBYBLjzFyC2M=";
+    sha256 = "sha256-VmHmje3fJfiCT2CeJgk98qdFhZnxGZudfHP1MgW6Mtw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix
index c8725dfd1167b..61545e3a2ec93 100644
--- a/pkgs/development/python-modules/graph-tool/default.nix
+++ b/pkgs/development/python-modules/graph-tool/default.nix
@@ -1,18 +1,34 @@
-{ fetchurl, python, cairomm, sparsehash, pycairo, autoreconfHook
-, pkg-config, boost, expat, scipy, cgal, gmp, mpfr
-, gobject-introspection, pygobject3, gtk3, matplotlib, ncurses
-, buildPythonPackage
+{ buildPythonPackage
 , lib
+, fetchurl
+
+, autoreconfHook
+, boost
+, cairomm
+, cgal
+, expat
+, gmp
+, gobject-introspection
+, gtk3
+, matplotlib
+, mpfr
+, numpy
+, pkg-config
+, pycairo
+, pygobject3
+, python
+, scipy
+, sparsehash
 }:
 
 buildPythonPackage rec {
   pname = "graph-tool";
   format = "other";
-  version = "2.43";
+  version = "2.45";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    hash = "sha256-XxvuCUIgz7JIaNsPr0f44v/Sb3fdcJmVhC5NnomNqGw=";
+    hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg=";
   };
 
   configureFlags = [
@@ -23,34 +39,35 @@ buildPythonPackage rec {
     "--enable-openmp"
   ];
 
-  nativeBuildInputs = [ autoreconfHook pkg-config ];
-  buildInputs = [ ncurses ];
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    autoreconfHook
+    pkg-config
+  ];
 
+  # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation
   propagatedBuildInputs = [
     boost
+    cairomm
     cgal
     expat
     gmp
-    mpfr
-    python
-    scipy
-    # optional
-    sparsehash
-    # drawing
-    cairomm
     gobject-introspection
     gtk3
-    pycairo
     matplotlib
+    mpfr
+    numpy
+    pycairo
     pygobject3
+    scipy
+    sparsehash
   ];
 
-  enableParallelBuilding = false;
-
   meta = with lib; {
     description = "Python module for manipulation and statistical analysis of graphs";
-    homepage    = "https://graph-tool.skewed.de/";
-    license     = licenses.gpl3;
-    maintainers = [ maintainers.joelmo ];
+    homepage = "https://graph-tool.skewed.de";
+    license = licenses.lgpl3Plus;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index 8cbee4bff7086..91def6f2886be 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,71 +1,73 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
-, fetchPypi
+, cairocffi
 , django
-, python-memcached
-, txamqp
 , django_tagging
+, fetchPypi
 , gunicorn
-, pytz
 , pyparsing
-, cairocffi
+, python-memcached
+, pythonOlder
+, pytz
+, six
+, txamqp
+, urllib3
 , whisper
 , whitenoise
-, urllib3
-, six
 }:
 
 buildPythonPackage rec {
   pname = "graphite-web";
-  version = "1.1.8";
+  version = "1.1.10";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "54240b0f1e069b53e2ce92d4e534e21b195fb0ebd64b6ad8a49c44284e3eb0b1";
+    hash = "sha256-Pxho1QWo2jJZYAMJx999bbELDVMr7Wp7wsssYPkc01o=";
   };
 
-  patches = [
-    ./update-django-tagging.patch
-  ];
-
-  postPatch = ''
-    # https://github.com/graphite-project/graphite-web/pull/2701
-    substituteInPlace setup.py \
-      --replace "'scandir'" "'scandir; python_version < \"3.5\"'"
-  '';
-
   propagatedBuildInputs = [
+    cairocffi
     django
-    python-memcached
-    txamqp
     django_tagging
     gunicorn
-    pytz
     pyparsing
-    cairocffi
+    python-memcached
+    pytz
+    six
+    txamqp
+    urllib3
     whisper
     whitenoise
-    urllib3
-    six
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "Django>=1.8,<3.1" "Django" \
+      --replace "django-tagging==0.4.3" "django-tagging"
+  '';
+
   # Carbon-s default installation is /opt/graphite. This env variable ensures
-  # carbon is installed as a regular python module.
-  GRAPHITE_NO_PREFIX="True";
+  # carbon is installed as a regular Python module.
+  GRAPHITE_NO_PREFIX = "True";
 
   preConfigure = ''
     substituteInPlace webapp/graphite/settings.py \
       --replace "join(WEBAPP_DIR, 'content')" "join('$out', 'webapp', 'content')"
   '';
 
-  pythonImportsCheck = [ "graphite" ];
+  pythonImportsCheck = [
+    "graphite"
+  ];
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    homepage = "http://graphiteapp.org/";
     description = "Enterprise scalable realtime graphing";
-    maintainers = with maintainers; [ offline basvandijk ];
+    homepage = "http://graphiteapp.org/";
     license = licenses.asl20;
+    maintainers = with maintainers; [ offline basvandijk ];
   };
 }
diff --git a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch b/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
deleted file mode 100644
index 9774f7e70a7fc..0000000000000
--- a/pkgs/development/python-modules/graphite-web/update-django-tagging.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/setup.py b/setup.py
-index a1a21f1..f0d1051 100644
---- a/setup.py
-+++ b/setup.py
-@@ -117,7 +117,7 @@ try:
-         ['templates/*', 'local_settings.py.example']},
-       scripts=glob('bin/*'),
-       data_files=list(webapp_content.items()) + storage_dirs + conf_files + examples,
--      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.4.3', 'pytz',
-+      install_requires=['Django>=1.8,<3.1', 'django-tagging==0.5.0', 'pytz',
-                         'pyparsing', 'cairocffi', 'urllib3', 'scandir', 'six'],
-       classifiers=[
-           'Intended Audience :: Developers',
diff --git a/pkgs/development/python-modules/growattserver/default.nix b/pkgs/development/python-modules/growattserver/default.nix
index 6347d9f55b8e9..a10b1d709a2ee 100644
--- a/pkgs/development/python-modules/growattserver/default.nix
+++ b/pkgs/development/python-modules/growattserver/default.nix
@@ -7,31 +7,28 @@
 
 buildPythonPackage rec {
   pname = "growattserver";
-  version = "1.2.0";
-  disabled = pythonOlder "3.6";
+  version = "1.2.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "indykoning";
     repo = "PyPi_GrowattServer";
     rev = version;
-    sha256 = "0v9clmz4qg6krmbsbfsrhsan824y2mqvwxsxb0fzfgaszxwkpm30";
+    hash = "sha256-dS5Ng89aYzfegdFlyt1eo7vhva2ME77pQV2hkd/iNq8=";
   };
 
   propagatedBuildInputs = [
     requests
   ];
 
-  postPatch = ''
-    # https://github.com/indykoning/PyPi_GrowattServer/issues/2
-    substituteInPlace setup.py \
-      --replace "tag = os.environ['LATEST_TAG']" "" \
-      --replace "version=tag," 'version="${version}",'
-  '';
-
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [ "growattServer" ];
+  pythonImportsCheck = [
+    "growattServer"
+  ];
 
   meta = with lib; {
     description = "Python package to retrieve information from Growatt units";
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index f4f3a7eb13fa9..0714352ed5eef 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -4,15 +4,15 @@
 }:
 
 buildPythonPackage rec {
-  version = "2.5.1";
+  version = "2.5.3";
   pname = "gsd";
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "glotzerlab";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "00cy4lw7xnl2skfx7fg7cs1c8lrbaxvkym9j6zfi1dbvsdd0r103";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-3CJKpvgJuFC/2qQdy0H/kvLbtmfF22gBAQustK99uEE=";
   };
 
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/gunicorn/default.nix b/pkgs/development/python-modules/gunicorn/default.nix
index ba948a68915a2..72852ae1f12c8 100644
--- a/pkgs/development/python-modules/gunicorn/default.nix
+++ b/pkgs/development/python-modules/gunicorn/default.nix
@@ -1,40 +1,55 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, coverage
-, mock
-, pytest
-, pytest-cov
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
+, pythonOlder
+, eventlet
+, gevent
+, pytestCheckHook
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "gunicorn";
   version = "20.1.0";
-  disabled = isPy27;
+  disabled = pythonOlder "3.5";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "e0a968b5ba15f8a328fdfd7ab1fcb5af4470c28aaf7e55df02a99bc13138e6e8";
+  src = fetchFromGitHub {
+    owner = "benoitc";
+    repo = "gunicorn";
+    rev = version;
+    sha256 = "sha256-xdNHm8NQWlAlflxof4cz37EoM74xbWrNaf6jlwwzHv4=";
   };
 
-  propagatedBuildInputs = [ setuptools ];
-
-  checkInputs = [ pytest mock pytest-cov coverage ];
-
-  prePatch = ''
-    substituteInPlace requirements_test.txt --replace "==" ">=" \
-      --replace "coverage>=4.0,<4.4" "coverage"
+  patches = [
+    (fetchpatch {
+      # fix eventlet 0.30.3+ compability
+      url = "https://github.com/benoitc/gunicorn/commit/6a8ebb4844b2f28596ffe7421eb9f7d08c8dc4d8.patch";
+      sha256 = "sha256-+iApgohzPZ/cHTGBNb7XkqLaHOVVPF26BnPUsvISoZw=";
+    })
+  ];
+
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace "--cov=gunicorn --cov-report=xml" ""
   '';
 
-  # better than no tests
-  checkPhase = ''
-    $out/bin/gunicorn --help > /dev/null
-  '';
+  propagatedBuildInputs = [
+    setuptools
+  ];
+
+  checkInputs = [
+    eventlet
+    gevent
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "gunicorn" ];
 
   meta = with lib; {
     homepage = "https://github.com/benoitc/gunicorn";
-    description = "WSGI HTTP Server for UNIX";
+    description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
     license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/gurobipy/linux.nix b/pkgs/development/python-modules/gurobipy/linux.nix
index ebcdc0e73f258..e9a72cbb5cba7 100644
--- a/pkgs/development/python-modules/gurobipy/linux.nix
+++ b/pkgs/development/python-modules/gurobipy/linux.nix
@@ -22,6 +22,7 @@ buildPythonPackage {
   meta = with lib; {
     description = "The Gurobi Python interface";
     homepage = "https://www.gurobi.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/development/python-modules/gvm-tools/default.nix b/pkgs/development/python-modules/gvm-tools/default.nix
index 8de737eeeddcf..93dfef3bf5bf2 100644
--- a/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/pkgs/development/python-modules/gvm-tools/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "gvm-tools";
-  version = "21.10.0";
+  version = "22.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LGdbqkIKdmtUOGSoCme6oVG1aCbtASSxi9K9f3khafA=";
+    sha256 = "sha256-H97pVLhXdO56cFzNV2hzaAqax3zKyeBORPiLc7pllEo=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
index e98d844a33e34..ca9a8dc5a2d7c 100644
--- a/pkgs/development/python-modules/gyp/default.nix
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -1,16 +1,19 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitiles
+, six
+, python
 }:
 
 buildPythonPackage {
   pname = "gyp";
-  version = "2020-05-12";
+  version = "unstable-2022-04-01";
 
   src = fetchFromGitiles {
     url = "https://chromium.googlesource.com/external/gyp";
-    rev = "caa60026e223fc501e8b337fd5086ece4028b1c6";
-    sha256 = "0r9phq5yrmj968vdvy9vivli35wn1j9a6iwshp69wl7q4p0x8q2b";
+    rev = "9ecf45e37677743503342ee4c6a76eaee80e4a7f";
+    hash = "sha256-LUlF2VhRnuDwJLdITgmXIQV/IuKdx1KXQkiPVHKrl4Q=";
   };
 
   patches = lib.optionals stdenv.isDarwin [
@@ -18,11 +21,16 @@ buildPythonPackage {
     ./no-xcode.patch
   ];
 
+  propagatedBuildInputs = [
+    six
+  ];
+
+  pythonImportsCheck = [ "gyp" "gyp.generator" ];
+
   meta = with lib; {
     description = "A tool to generate native build files";
-    homepage = "https://chromium.googlesource.com/external/gyp/+/master/README.md";
+    homepage = "https://gyp.gsrc.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ codyopel ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index 7627488a071be..587931af03ec5 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "1.8.4";
+  version = "1.9.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-ZoHH96BliXDTO6+yVs+GFSAxG9wx32tHrr74zTVq1FI=";
+    sha256 = "sha256-BmFJuugU6SsKxSB60O5dtODmgApClRT/AAzzTWAMXKI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index edf19d0e190ff..3b0531084244a 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -25,11 +25,11 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    sed -i 's/"acme.*"/"acme"/' setup.py
     substituteInPlace setup.py \
-      --replace "cryptography>=2.8,<4.0" "cryptography" \
+      --replace "acme==" "acme>=" \
+      --replace "cryptography>=2.8,<37.0" "cryptography" \
+      --replace "pycognito==" "pycognito>=" \
       --replace "snitun==" "snitun>=" \
-      --replace "pycognito==2022.01.0" "pycognito"
   '';
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/homeconnect/default.nix b/pkgs/development/python-modules/homeconnect/default.nix
index b615274416abc..3d7c31dc8623e 100644
--- a/pkgs/development/python-modules/homeconnect/default.nix
+++ b/pkgs/development/python-modules/homeconnect/default.nix
@@ -4,6 +4,7 @@
 , requests
 , requests-oauthlib
 , pythonOlder
+, six
 }:
 
 buildPythonPackage rec {
@@ -21,6 +22,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     requests
     requests-oauthlib
+    six
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/hpccm/default.nix b/pkgs/development/python-modules/hpccm/default.nix
new file mode 100644
index 0000000000000..b0c26bae97346
--- /dev/null
+++ b/pkgs/development/python-modules/hpccm/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, six
+, archspec
+, pytestCheckHook
+, pytest-xdist
+}:
+
+buildPythonPackage rec {
+  pname = "hpccm";
+  version = "22.5.0";
+
+  src = fetchFromGitHub {
+    owner = "NVIDIA";
+    repo = "hpc-container-maker";
+    rev = "v${version}";
+    sha256 = "sha256-zR5+X9BKaUvLPQ05FnfU817esgxVqP8n+wfdWy20BN4=";
+  };
+
+  propagatedBuildInputs = [ six archspec ];
+  checkInputs = [ pytestCheckHook pytest-xdist ];
+
+  disabledTests = [
+    # tests require git
+    "test_commit"
+    "test_tag"
+  ];
+
+  pythonImportsCheck = [ "hpccm" ];
+
+  meta = with lib; {
+    description = "HPC Container Maker";
+    homepage = "https://github.com/NVIDIA/hpc-container-maker";
+    license = licenses.asl20;
+    platforms = platforms.x86;
+    maintainers = with maintainers; [ atila ];
+  };
+}
diff --git a/pkgs/development/python-modules/http-sfv/default.nix b/pkgs/development/python-modules/http-sfv/default.nix
index 0a17a20f96bc6..abee83637215b 100644
--- a/pkgs/development/python-modules/http-sfv/default.nix
+++ b/pkgs/development/python-modules/http-sfv/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "http-sfv";
-  version = "0.9.7";
+  version = "0.9.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "mnot";
     repo = "http_sfv";
     rev = "http_sfv-${version}";
-    hash = "sha256-VeCDgzpnaN8zkZt7Dy0njU6Dnq1SQTJ95CEYl20QxPQ=";
+    hash = "sha256-zl0Rk4QbzCVmYZ6TnVq+C+oe27Imz5fEQY9Fco5lo5s=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/httpagentparser/default.nix b/pkgs/development/python-modules/httpagentparser/default.nix
index 44c521ff3304b..fae412075bc12 100644
--- a/pkgs/development/python-modules/httpagentparser/default.nix
+++ b/pkgs/development/python-modules/httpagentparser/default.nix
@@ -5,11 +5,12 @@
 
 buildPythonPackage rec {
   pname = "httpagentparser";
-  version = "1.9.2";
+  version = "1.9.3";
 
+  # Github version does not have any release tags
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a190dfdc5e63b2f1c87729424b19cbc49263d6a1fb585a16ac1c9d9ce127a4bf";
+    sha256 = "1x20j4gyx4vfsxs3bx8qcbdhq7n34gjr8gd01qlri96wpmn4c3rp";
   };
 
   # PyPi version does not include test directory
diff --git a/pkgs/development/python-modules/httpbin/default.nix b/pkgs/development/python-modules/httpbin/default.nix
index a5a77a82af29f..98c50fd152320 100644
--- a/pkgs/development/python-modules/httpbin/default.nix
+++ b/pkgs/development/python-modules/httpbin/default.nix
@@ -11,6 +11,7 @@
 , raven
 , six
 , pytestCheckHook
+, werkzeug
 }:
 
 buildPythonPackage rec {
@@ -34,14 +35,15 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     brotlipy
+    decorator
     flask
     flask-limiter
-    markupsafe
-    decorator
     itsdangerous
+    markupsafe
     raven
     six
-  ];
+    werkzeug
+  ] ++ raven.optional-dependencies.flask;
 
   checkInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index d2286b6b022b9..5016ece96f2f5 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -1,33 +1,32 @@
 { lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , anyio
+, buildPythonPackage
 , certifi
+, fetchFromGitHub
 , h11
 , h2
 , pproxy
 , pytest-asyncio
-, pytestCheckHook
-, pytest-cov
 , pytest-httpbin
+, pytest-trio
+, pytestCheckHook
+, pythonOlder
 , sniffio
 , socksio
-, trio
-, trustme
-, uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "httpcore";
-  version = "0.14.7";
-  disabled = pythonOlder "3.6";
+  version = "0.15.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-h+3MfP1p/ifN0mF/xxrOKPTjD4Q7WzRh94YO4DYSuXE=";
+    hash = "sha256-FF3Yzac9nkVcA5bHVOz2ymvOelSfJ0K6oU8UWpBDcmo=";
   };
 
   postPatch = ''
@@ -43,23 +42,30 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    http2 = [ h2 ];
-    socks = [ socksio ];
+    http2 = [
+      h2
+    ];
+    socks = [
+      socksio
+    ];
   };
 
   checkInputs = [
     pproxy
     pytest-asyncio
-    pytestCheckHook
-    pytest-cov
     pytest-httpbin
-    trio
-    trustme
-    uvicorn
+    pytest-trio
+    pytestCheckHook
   ] ++ passthru.optional-dependencies.http2
     ++ passthru.optional-dependencies.socks;
 
-  pythonImportsCheck = [ "httpcore" ];
+  pythonImportsCheck = [
+    "httpcore"
+  ];
+
+  pytestFlagsArray = [
+    "--asyncio-mode=strict"
+  ];
 
   meta = with lib; {
     description = "A minimal low-level HTTP client";
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 0070d5d04eff5..ab5a6820529e7 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -1,67 +1,74 @@
 { lib
-, async_generator
+, brotli
+, brotlicffi
 , buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
 , certifi
-, charset-normalizer
-, httpcore
-, rfc3986
-, sniffio
+, chardet
+, click
+, fetchFromGitHub
 , h2
-, socksio
+, httpcore
 , isPyPy
-, brotli
-, brotlicffi
-, click
-, rich
 , pygments
 , python
+, pythonOlder
+, rfc3986
+, rich
+, sniffio
+, socksio
 , pytestCheckHook
 , pytest-asyncio
 , pytest-trio
-, typing-extensions
 , trustme
 , uvicorn
 }:
 
 buildPythonPackage rec {
   pname = "httpx";
-  version = "0.22.0";
+  version = "0.23.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hQmQodGpVG23IZSsWV7rB1iB6QAudDao/8YshIgpmas=";
+    hash = "sha256-s11Yeizm3y3w5D6ACQ2wp/KJ0+1ALY/R71IlTP2pMC4=";
   };
 
   propagatedBuildInputs = [
     certifi
-    charset-normalizer
     httpcore
     rfc3986
     sniffio
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    async_generator
   ];
 
   passthru.optional-dependencies = {
-    http2 = [ h2 ];
-    socks = [ socksio ];
-    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
-    cli = [ click rich pygments ];
+    http2 = [
+      h2
+    ];
+    socks = [
+      socksio
+    ];
+    brotli = if isPyPy then [
+      brotlicffi
+    ] else [
+      brotli
+    ];
+    cli = [
+      click
+      rich
+      pygments
+    ];
   };
 
   checkInputs = [
+    chardet
     pytestCheckHook
     pytest-asyncio
     pytest-trio
     trustme
-    typing-extensions
     uvicorn
   ] ++ passthru.optional-dependencies.http2
     ++ passthru.optional-dependencies.brotli
@@ -88,9 +95,6 @@ buildPythonPackage rec {
     # httpcore.ConnectError: [Errno -2] Name or service not known
     "test_async_proxy_close"
     "test_sync_proxy_close"
-    # sensitive to charset_normalizer output
-    "iso-8859-1"
-    "test_response_no_charset_with_iso_8859_1_content"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 7e99e26c5248b..26c703b4c2549 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.7.0";
+  version = "0.8.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GUe9+Z23vt3sfpntDnToMY5vWLK6m0zRySSJgMljetg=";
+    hash = "sha256-XerI4dkGsnxbOE1Si70adVIwLIrStZ3HSuQPAQoJtnQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix
index 7837deea6dba5..ed57ad767b07e 100644
--- a/pkgs/development/python-modules/hyperion-py/default.nix
+++ b/pkgs/development/python-modules/hyperion-py/default.nix
@@ -2,6 +2,7 @@
 , aiohttp
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pytestCheckHook
 , pythonOlder
 , pythonAtLeast
@@ -13,7 +14,7 @@
 buildPythonPackage rec {
   pname = "hyperion-py";
   version = "0.7.5";
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.10";
+  disabled = pythonOlder "3.8";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -23,6 +24,14 @@ buildPythonPackage rec {
     sha256 = "sha256-arcnpCQsRuiWCrAz/t4TCjTe8DRDtRuzYp8k7nnjGDk=";
   };
 
+  patches = [
+    (fetchpatch {
+      # python3.10 compat: Drop loop kwarg in asyncio.sleep call
+      url = "https://github.com/dermotduffy/hyperion-py/commit/f02af52fcce17888984c99bfc03935e372011394.patch";
+      hash = "sha256-4nfsQVxd77VV9INwNxTyFRDlAjwdTYqfSGuF487hFCs=";
+    })
+  ];
+
   nativeBuildInputs = [
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 8eaa808563e6d..c92b655fabd51 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -8,27 +8,21 @@
 , pytestCheckHook
 , pytest-xdist
 , sortedcontainers
-, tzdata
 , pythonOlder
 }:
-buildPythonPackage rec {
-  # https://hypothesis.readthedocs.org/en/latest/packaging.html
-
-  # Hypothesis has optional dependencies on the following libraries
-  # pytz fake_factory django numpy pytest
-  # If you need these, you can just add them to your environment.
 
+buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.40.0";
+  version = "6.46.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "HypothesisWorks";
-    repo = "hypothesis-python";
+    repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-6BC3CTotkMhguueH4NJM8VjbrYhofHqtZEUytcllMwQ=";
+    hash = "sha256-eQ7Ns0k1hOVw8/xiINMei6GbQqDHXrBl+1v8YQeFO9Q=";
   };
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
@@ -42,8 +36,6 @@ buildPythonPackage rec {
     pexpect
     pytest-xdist
     pytestCheckHook
-  ] ++ lib.optional (pythonAtLeast "3.9") [
-    tzdata
   ];
 
   inherit doCheck;
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index 539238ba948d6..2572903791d28 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -1,6 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
+, fetchpatch
 , pythonOlder
 , pytestCheckHook
 , atpublic
@@ -73,6 +74,14 @@ buildPythonPackage rec {
     hash = "sha256-7ywDMAHQAl39kiHfxVkq7voUEKqbb9Zq8qlaug7+ukI=";
   };
 
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/ibis-project/ibis/commit/a6f64c6c32b49098d39bb205952cbce4bdfea657.patch";
+      sha256 = "sha256-puVMjiJXWk8C9yhuXPD9HKrgUBYcYmUPacQz5YO5xYQ=";
+      includes = [ "pyproject.toml" ];
+    })
+  ];
+
   nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
index b505182b4fb5b..fd98979cdacea 100644
--- a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
+++ b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -4,6 +4,7 @@
 , pyjwt
 , pytestCheckHook
 , python-dateutil
+, pythonOlder
 , requests
 , responses
 , tox
@@ -11,11 +12,14 @@
 
 buildPythonPackage rec {
   pname = "ibm-cloud-sdk-core";
-  version = "3.15.1";
+  version = "3.15.3";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-bGTr8Qf7ywlbsl6/FEJEjFB/bqyyMwfmjVVAsrgmkTg=";
+    hash = "sha256-CuVem9b7NhDsC2tXCg/+1DWZAqSHqJ0GuWZCmA/kesE=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ifaddr/default.nix b/pkgs/development/python-modules/ifaddr/default.nix
index 35bafd67fa977..82b00d550950d 100644
--- a/pkgs/development/python-modules/ifaddr/default.nix
+++ b/pkgs/development/python-modules/ifaddr/default.nix
@@ -1,8 +1,7 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, ipaddress
-, python
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
@@ -14,11 +13,11 @@ buildPythonPackage rec {
     sha256 = "1f9e8a6ca6f16db5a37d3356f07b6e52344f6f9f7e806d618537731669eb1a94";
   };
 
-  propagatedBuildInputs = [ ipaddress ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-   ${python.interpreter} -m unittest discover
-  '';
+  pythonImportsCheck = [ "ifaddr" ];
 
   meta = with lib; {
     homepage = "https://github.com/pydron/ifaddr";
diff --git a/pkgs/development/python-modules/igraph/default.nix b/pkgs/development/python-modules/igraph/default.nix
index 32b471a83ce29..6afa32d35bfbf 100644
--- a/pkgs/development/python-modules/igraph/default.nix
+++ b/pkgs/development/python-modules/igraph/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "igraph";
-  version = "0.9.10";
+  version = "0.9.11";
 
   disabled = pythonOlder "3.6";
 
@@ -18,16 +18,19 @@ buildPythonPackage rec {
     owner = "igraph";
     repo = "python-igraph";
     rev = version;
-    hash = "sha256-c20N8BtbQGxAK7ykQvyfqWYu7wVOlYfeGpNOwWPlGxs=";
+    hash = "sha256-tvkV5ve9X+LXx3LOdHIPljQKZc1v6yts0juo4SwDmfY=";
   };
 
+  postPatch = ''
+    rm -r vendor
+  '';
+
   nativeBuildInputs = [
     pkg-config
   ];
 
   buildInputs = [
     igraph
-    igraph.dev
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ihatemoney/default.nix b/pkgs/development/python-modules/ihatemoney/default.nix
index dafea4e2cb20e..bacaea2f2cb19 100644
--- a/pkgs/development/python-modules/ihatemoney/default.nix
+++ b/pkgs/development/python-modules/ihatemoney/default.nix
@@ -10,7 +10,7 @@
 , cachetools
 , click
 , dnspython
-, email_validator
+, email-validator
 , flask
 , flask-babel
 , flask-cors
@@ -60,7 +60,7 @@ buildPythonPackage rec {
     click
     debts
     dnspython
-    email_validator
+    email-validator
     flask
     flask_mail
     flask_migrate
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index 9c449c69b7700..7c3fd87b4afdc 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -16,11 +16,11 @@
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "2.16.1";
+  version = "2.19.2";
   disabled = isPy27;
 
   src = fetchPypi {
-    sha256 = "sha256-fxI8sjp3rFq+jtTnrWpggxqC3ixdEjRj3PHUJ4xHedI=";
+    sha256 = "sha256-RuHnQSiDfSoevIdHa39zl4tpoSj6I4vJibYlqYGb2bM=";
     inherit pname version;
   };
 
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 404731e22a9a5..95f988a34951a 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "0.55.0";
+  version = "0.56.0";
 
   disabled = isPy27;
 
@@ -16,8 +16,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ikvk";
     repo = "imap_tools";
-    rev = "v${version}";
-    hash = "sha256-Jtuw0pYkgR1wrqPlEBOpia1rFU/+MLadOFEm2xLIFMw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-g1m44hUtD/x7zEe/ELY6zj2hJikSmZB6S8ZHEHPrvz0=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 37703a3150f43..7b45a8cac65c5 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -1,21 +1,37 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, cmake, numpy, pytestCheckHook }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, cmake
+, numpy
+, pytestCheckHook
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.11.2";
-  disabled = !isPy3k;
+  version = "2.12.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jK55F8otIsaR4AeSv7u4ErhKxcdRIOsq6Hn7StpB7mw=";
+    hash = "sha256-zQ48t1EwLAZphOqzBhLF0kGaVDF/6+UbUL4fohr8Uak=";
   };
 
-  nativeBuildInputs = [ cmake ];
-  propagatedBuildInputs = [ numpy ];
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
 
   dontUseCmakeConfigure = true;
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/iminuit";
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index 83d6336fe5978..34a48ed2a1f60 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -9,17 +9,19 @@
 
 buildPythonPackage rec {
   pname = "immutables";
-  version = "0.17";
+  version = "0.18";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "MagicStack";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4VuB8eTWHD4hEDj11u/talfv38h2BhogSZmEVyUtnko=";
+    hash = "sha256-lXCoPTcpTOv9K0xCVjbrP3qlzP9tfk/e3Rk3oOmbS/Y=";
   };
 
-  propagatedBuildInputs = [
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     typing-extensions
   ];
 
@@ -33,10 +35,12 @@ buildPythonPackage rec {
     "testMypyImmu"
   ];
 
-  pythonImportsCheck = [ "immutables" ];
+  pythonImportsCheck = [
+    "immutables"
+  ];
 
   meta = with lib; {
-    description = "An immutable mapping type for Python";
+    description = "An immutable mapping type";
     homepage = "https://github.com/MagicStack/immutables";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/infinity/default.nix b/pkgs/development/python-modules/infinity/default.nix
new file mode 100644
index 0000000000000..1fe406e62ed81
--- /dev/null
+++ b/pkgs/development/python-modules/infinity/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytestCheckHook
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "infinity";
+  version = "1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1npcc4adcc3c9diw4kgmd5c0ikym1iz364p2zp6gs011rqaprald";
+  };
+
+  checkInputs = [
+    pytestCheckHook
+    six
+  ];
+
+  meta = with lib; {
+    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/injector/default.nix b/pkgs/development/python-modules/injector/default.nix
index 4651cc3a1fb81..56b53b8e97551 100644
--- a/pkgs/development/python-modules/injector/default.nix
+++ b/pkgs/development/python-modules/injector/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "injector";
-  version = "0.19.0";
+  version = "0.20.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3eaaf51cd3ba7be1354d92a5210c8bba43dd324300eafd214e1f2568834a912f";
+    sha256 = "sha256-DILe3I4TVOj9Iqs9mbiL3e9t7bnHfWwixNids9FYN/U=";
   };
 
   propagatedBuildInputs = [ typing-extensions ];
diff --git a/pkgs/development/python-modules/inotify-simple/default.nix b/pkgs/development/python-modules/inotify-simple/default.nix
index fe5f8ae9f11b8..8fdc7c4926c97 100644
--- a/pkgs/development/python-modules/inotify-simple/default.nix
+++ b/pkgs/development/python-modules/inotify-simple/default.nix
@@ -19,6 +19,6 @@ buildPythonPackage rec {
     description = "A simple Python wrapper around inotify";
     homepage = "https://github.com/chrisjbillington/inotify_simple";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
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 646ffec6552ea..15f8e338fc3ec 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "insteon-frontend-home-assistant";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "70ee413cae8717416f5add1be7647158d8ff4303942dafccac0792ef44336cdf";
+    sha256 = "sha256-s0MjB1dTsUy1cAMWo/0r+wTiO6/h0aOiPQ3d+1pHsyM=";
   };
 
   # upstream has no tests
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index 0228ae6bcf233..6f895b45ed035 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -6,7 +6,6 @@
 , entrypoints
 , fetchFromGitHub
 , fsspec
-, holoviews
 , hvplot
 , intake-parquet
 , jinja2
@@ -27,7 +26,8 @@
 
 buildPythonPackage rec {
   pname = "intake";
-  version = "0.6.4";
+  version = "0.6.5";
+  format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
@@ -35,57 +35,75 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "194cdd6lx92zcpkn3wgm490kxvw0c58ziix8hcihsr5ayfr1wdsl";
+    hash = "sha256-ABMXWUVptpOSPB1jQ57iXk/UG92puNCICzXo3ZMG2Pk=";
   };
 
   propagatedBuildInputs = [
     appdirs
-    bokeh
     dask
     entrypoints
     fsspec
-    holoviews
-    hvplot
-    jinja2
     msgpack
-    msgpack-numpy
-    numpy
+    jinja2
     pandas
-    panel
-    pyarrow
-    python-snappy
     pyyaml
-    requests
-    tornado
   ];
 
   checkInputs = [
     intake-parquet
     pytestCheckHook
-  ];
+  ] ++ passthru.optional-dependencies.server;
+
+  passthru.optional-dependencies = {
+    server = [
+      msgpack
+      python-snappy
+      tornado
+    ];
+    dataframe = [
+      msgpack-numpy
+      pyarrow
+    ];
+    plot = [
+      hvplot
+      bokeh
+      panel
+    ];
+    remote = [
+      requests
+    ];
+  };
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'" ""
   '';
 
-  # test_discover requires driver_with_entrypoints-0.1.dist-info, which is not included in tarball
-  # test_filtered_compressed_cache requires calvert_uk_filter.tar.gz, which is not included in tarball
   preCheck = ''
-    HOME=$TMPDIR
-    PATH=$out/bin:$PATH
+    export HOME=$(mktemp -d);
+    export PATH="$PATH:$out/bin";
   '';
 
   disabledTests = [
-    # Disable tests which touch network and are broken
+    # Disable tests which touch network
+    "http"
+    "test_dir"
     "test_discover"
     "test_filtered_compressed_cache"
+    "test_flatten_flag"
     "test_get_dir"
-    "test_remote_cat"
-    "http"
+    "test_pagination"
+    "test_read_part_compressed"
+    "test_read_partition"
     "test_read_pattern"
     "test_remote_arr"
-    "test_flatten_flag"
+    "test_remote_cat"
+    # ValueError
+    "test_mlist_parameter"
+    # ImportError
+    "test_dataframe"
+    "test_ndarray"
+    "test_python"
     # Timing-based, flaky on darwin and possibly others
     "TestServerV1Source.test_idle_timer"
   ] ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index eb7d4de7db45b..2ab3a3a510015 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "3.0.1";
+  version = "3.0.2";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0DcX2w2omPdOmBD6WpG2Li1ERPSI0i9qOINdO/kVrUI=";
+    sha256 = "sha256-3oVkZcLvaFIYTQi/1ZwMoBkEhls3OiezgwNKxrQSjrY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ipaddress/default.nix b/pkgs/development/python-modules/ipaddress/default.nix
deleted file mode 100644
index 06211470daa43..0000000000000
--- a/pkgs/development/python-modules/ipaddress/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, python
-}:
-
-if (pythonAtLeast "3.3") then null else buildPythonPackage rec {
-  pname = "ipaddress";
-  version = "1.0.23";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b7f8e0369580bb4a24d5ba1d7cc29660a4a6987763faf1d8a8046830e020e7e2";
-  };
-
-  checkPhase = ''
-    ${python.interpreter} test_ipaddress.py
-  '';
-
-  meta = with lib; {
-    description = "Port of the 3.3+ ipaddress module to 2.6, 2.7, and 3.2";
-    homepage = "https://github.com/phihag/ipaddress";
-    license = licenses.psfl;
-  };
-
-}
diff --git a/pkgs/development/python-modules/jaraco-test/default.nix b/pkgs/development/python-modules/jaraco-test/default.nix
new file mode 100644
index 0000000000000..3f3f9d54f87f5
--- /dev/null
+++ b/pkgs/development/python-modules/jaraco-test/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchPypi
+, setuptools
+, setuptools-scm
+, toml
+, jaraco_functools
+, jaraco-context
+, more-itertools
+, jaraco_collections
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "jaraco-test";
+  version = "5.1.0";
+
+  disabled = pythonOlder "3.7";
+
+  format = "pyproject";
+
+  src = fetchPypi {
+    pname = "jaraco.test";
+    inherit version;
+    sha256 = "04a7503c0c78cd057bd6b5f16ad1e3379b911b619df6694480a564ebc214c0a8";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    toml
+    jaraco_functools
+    jaraco-context
+    more-itertools
+    jaraco_collections
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "jaraco.test" ];
+
+  meta = {
+    description = "Testing support by jaraco";
+    homepage = "https://github.com/jaraco/jaraco.test";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ dotlambda ];
+  };
+}
diff --git a/pkgs/development/python-modules/jarowinkler/default.nix b/pkgs/development/python-modules/jarowinkler/default.nix
index 3985a22d5bcb6..de20ac26550ef 100644
--- a/pkgs/development/python-modules/jarowinkler/default.nix
+++ b/pkgs/development/python-modules/jarowinkler/default.nix
@@ -3,32 +3,42 @@
 , pythonOlder
 , fetchFromGitHub
 , cmake
+, ninja
 , cython
 , rapidfuzz-capi
 , scikit-build
+, setuptools
+, jarowinkler-cpp
 , hypothesis
 , pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "jarowinkler";
-  version = "1.0.2";
+  version = "1.0.4";
 
   disabled = pythonOlder "3.6";
 
+  format = "pyproject";
+
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "JaroWinkler";
     rev = "v${version}";
-    fetchSubmodules = true;
-    hash = "sha256-zVAcV6xxqyfXRUcyWo9PcOdagcexJc/D5k4g5ag3hbY=";
+    hash = "sha256-2bhKl7l3ByfrtkXnXifQd/AhWVFGSMzULkzJftd1mVE=";
   };
 
   nativeBuildInputs = [
     cmake
     cython
+    ninja
     rapidfuzz-capi
     scikit-build
+    setuptools
+  ];
+
+  buildInputs = [
+    jarowinkler-cpp
   ];
 
   dontUseCmakeConfigure = true;
@@ -48,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library for fast approximate string matching using Jaro and Jaro-Winkler similarity";
     homepage = "https://github.com/maxbachmann/JaroWinkler";
+    changelog = "https://github.com/maxbachmann/JaroWinkler/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 1eb4cc18ed069..88d210caa9e02 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -139,6 +139,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "XLA library for JAX";
     homepage = "https://github.com/google/jax";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 251eb44ecdfeb..6017c7b83aeef 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.20.0";
+  version = "1.20.1";
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Qw6jgbYDfeJfT6QtIaT2llbfwZTpoLeH78mxJlFA7TI=";
+    sha256 = "sha256-xsPz7v5+rIO88F1Y/inBSUwVnI7uKZrV2nzVvJ9L02A=";
   };
 
   propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index 5109f8ffe27b7..b73f266d39ce6 100644
--- a/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonApplication rec {
   pname = "jsbeautifier";
-  version = "1.14.3";
+  version = "1.14.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1tV2J8+ezYzZAbnsetSogSeo3t6RAXf6SyGedtAvm9c=";
+    hash = "sha256-cp+mwP6TWyZm8/6tfsV2+RGubo1731ePmy+5K6N3u7M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index f77412e4cc145..03060f4e866f7 100644
--- a/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/pkgs/development/python-modules/jsonpatch/default.nix
@@ -1,25 +1,45 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , jsonpointer
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "jsonpatch";
   version = "1.32";
+  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b6ddfe6c3db30d81a96aaeceb6baf916094ffa23d7dd5fa2c13e13f8b6e600c2";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "stefankoegl";
+    repo = "python-json-patch";
+    rev = "v${version}";
+    hash = "sha256-JMGBgYjnjHQ5JpzDwJcR2nVZfzmQ8ZZtcB0GsJ9Q4Jc=";
   };
 
-  # test files are missing
-  doCheck = false;
-  propagatedBuildInputs = [ jsonpointer ];
+  propagatedBuildInputs = [
+    jsonpointer
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "jsonpatch"
+  ];
+
+  pytestFlagsArray = [
+    "tests.py"
+  ];
 
-  meta = {
+  meta = with lib; {
     description = "Library to apply JSON Patches according to RFC 6902";
     homepage = "https://github.com/stefankoegl/python-json-patch";
-    license = lib.licenses.bsd2; # "Modified BSD license, says pypi"
+    license = licenses.bsd2; # "Modified BSD license, says pypi"
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index 202e047dd8eec..e90ea39132f67 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -2,35 +2,35 @@
 , attrs
 , buildPythonPackage
 , fetchPypi
+, hatch-vcs
+, hatchling
 , importlib-metadata
 , importlib-resources
 , pyrsistent
 , pythonOlder
-, setuptools-scm
 , twisted
 , typing-extensions
 }:
 
 buildPythonPackage rec {
   pname = "jsonschema";
-  version = "4.5.1";
+  version = "4.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-fG2IJhk0DDNHob9zFeFH5tPa5DkDOuY4PWrLkIwQHfw=";
+    sha256 = "sha256-nWOXukpsC/AwBzYFf2SePhLsvAfT6BoNrLct5OmAGVc=";
   };
 
   postPatch = ''
     patchShebangs json/bin/jsonschema_suite
   '';
 
-  SETUPTOOLS_SCM_PRETEND_VERSION = version;
-
   nativeBuildInputs = [
-    setuptools-scm
+    hatch-vcs
+    hatchling
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/junos-eznc/default.nix b/pkgs/development/python-modules/junos-eznc/default.nix
index d693c73130be8..9830d29789b51 100644
--- a/pkgs/development/python-modules/junos-eznc/default.nix
+++ b/pkgs/development/python-modules/junos-eznc/default.nix
@@ -77,7 +77,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jnpr.junos" ];
 
   meta = with lib; {
-    homepage = "http://www.github.com/Juniper/py-junos-eznc";
+    homepage = "https://github.com/Juniper/py-junos-eznc";
     description = "Junos 'EZ' automation for non-programmers";
     license = licenses.asl20;
     maintainers = with maintainers; [ xnaveira ];
diff --git a/pkgs/development/python-modules/jupyter_server/default.nix b/pkgs/development/python-modules/jupyter_server/default.nix
index 0001dd5e9373a..a140e2930b317 100644
--- a/pkgs/development/python-modules/jupyter_server/default.nix
+++ b/pkgs/development/python-modules/jupyter_server/default.nix
@@ -1,10 +1,12 @@
 { lib
 , stdenv
 , buildPythonPackage
-, fetchpatch
 , fetchPypi
 , pythonOlder
+, pandoc
 , pytestCheckHook
+, pytest-console-scripts
+, pytest-timeout
 , pytest-tornasync
 , argon2-cffi
 , jinja2
@@ -28,21 +30,14 @@
 
 buildPythonPackage rec {
   pname = "jupyter_server";
-  version = "1.11.2";
-  disabled = pythonOlder "3.6";
+  version = "1.17.1";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c1f32e0c1807ab2de37bf70af97a36b4436db0bc8af3124632b1f4441038bf95";
+    sha256 = "a36781656645ae17b12819a49ace377c045bf633823b3e4cd4b0c88c01e7711b";
   };
 
-  patches = [ (fetchpatch
-    { name = "Normalize-file-name-and-path.patch";
-      url = "https://github.com/jupyter-server/jupyter_server/pull/608/commits/345e26cdfd78651954b68708fa44119c2ac0dbd5.patch";
-      sha256 = "1kqz3dyh2w0h1g1fbvqa13q17hb6y32694rlaasyg213mq6g4k32";
-    })
-  ];
-
   propagatedBuildInputs = [
     argon2-cffi
     jinja2
@@ -64,7 +59,10 @@ buildPythonPackage rec {
 
   checkInputs = [
     ipykernel
+    pandoc
     pytestCheckHook
+    pytest-console-scripts
+    pytest-timeout
     pytest-tornasync
     requests
   ];
@@ -74,19 +72,18 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  pytestFlagsArray = [ "jupyter_server" ];
-
-  # disabled failing tests
   disabledTests = [
-    "test_server_extension_list"
-    "test_list_formats"
-    "test_base_url"
-    "test_culling"
+    "test_cull_idle"
   ] ++ lib.optionals stdenv.isDarwin [
     # attempts to use trashcan, build env doesn't allow this
     "test_delete"
   ];
 
+  disabledTestPaths = [
+    "tests/services/kernels/test_api.py"
+    "tests/services/sessions/test_api.py"
+  ];
+
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index c2855d6c8773b..04db4d4d0c229 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -61,12 +61,12 @@ in
 
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "1.3.0";
+  version = "1.5.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "13pf6qhimpaxj20871ff5rvwwan59320cdhhrn9cfh6314971zq5";
+    sha256 = "sha256-3GGPZXwjukYoDjYlflCTGAZnS6Dp5kmK+wke/GIm1p0=";
   };
 
   # Most of this only applies when building from source (e.g. js/css assets are
@@ -158,6 +158,7 @@ buildPythonPackage rec {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Serves multiple Jupyter notebook instances";
     homepage = "https://jupyter.org/";
+    changelog = "https://github.com/jupyterhub/jupyterhub/blob/${version}/docs/source/changelog.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ixxie cstrahan ];
   };
diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix
index c4772d6065189..a584e38810fc5 100644
--- a/pkgs/development/python-modules/kerberos/default.nix
+++ b/pkgs/development/python-modules/kerberos/default.nix
@@ -20,8 +20,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Kerberos high-level interface";
-    homepage = "https://pypi.python.org/pypi/kerberos";
+    homepage = "https://pypi.org/project/kerberos/";
     license = licenses.asl20;
+    knownVulnerabilities = [
+      "CVE-2015-3206"
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index bba71224cfdbf..9ed7f3d23d39a 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -24,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "23.6.0";
+  version = "24.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -32,8 +32,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "kubernetes-client";
     repo = "python";
-    rev = "v${version}";
-    sha256 = "sha256-d6S7cMTiwIgqOcN9j3yeEXUNSro9I2b8HLJw1oGKjWI=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-rRr73UGhLzpznpNKHCj8LReMk2wOpIoxrSzitl9J+Pg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/langdetect/default.nix b/pkgs/development/python-modules/langdetect/default.nix
index 2b9f87fdd81a4..4eab3bd06e580 100644
--- a/pkgs/development/python-modules/langdetect/default.nix
+++ b/pkgs/development/python-modules/langdetect/default.nix
@@ -28,6 +28,6 @@ buildPythonPackage rec {
     description = "Python port of Google's language-detection library";
     homepage = "https://github.com/Mimino666/langdetect";
     license = licenses.asl20;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix
index ccd12e4aaae3b..7d6c185d1cc29 100644
--- a/pkgs/development/python-modules/libcst/default.nix
+++ b/pkgs/development/python-modules/libcst/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , buildPythonPackage
-, dataclasses
 , fetchFromGitHub
 , hypothesis
 , libiconv
@@ -18,23 +17,23 @@
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "0.4.1";
+  version = "0.4.3";
   format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "instagram";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-soAlt1KBpCn5JxM1b2LZ3vOpBn9HPGdbm+BBYbyEkfE=";
+    sha256 = "sha256-Lm62rVL5f+fu4KzOQMroM0Eu27l5v2dkGtRiIVPFNhg=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "source/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256:1rz1c0dv3f1h2m5hwdisl3rbqnmifbva4f0c4vygk7rh1q27l515";
+    hash = "sha256-i5BYYiILadKEPIJOaWdG1lZNSHfNQnwmc5j0D1jg/kc=";
   };
 
   cargoRoot = "native";
@@ -56,15 +55,13 @@ buildPythonPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   propagatedBuildInputs = [
-    hypothesis
     typing-extensions
     typing-inspect
     pyyaml
-  ] ++ lib.optional (pythonOlder "3.7") [
-    dataclasses
   ];
 
   checkInputs = [
+    hypothesis
     pytestCheckHook
   ];
 
@@ -88,6 +85,6 @@ buildPythonPackage rec {
     description = "Concrete Syntax Tree (CST) parser and serializer library for Python";
     homepage = "https://github.com/Instagram/libcst";
     license = with licenses; [ mit asl20 psfl ];
-    maintainers = with maintainers; [ ruuda SuperSandro2000 ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/libversion/default.nix b/pkgs/development/python-modules/libversion/default.nix
index a492ea7806a0a..5fb33fa54774c 100644
--- a/pkgs/development/python-modules/libversion/default.nix
+++ b/pkgs/development/python-modules/libversion/default.nix
@@ -3,6 +3,7 @@
 , fetchFromGitHub
 , libversion
 , pkg-config
+, pytestCheckHook
 , pythonOlder
 }:
 
@@ -20,6 +21,11 @@ buildPythonPackage rec {
     sha256 = "sha256-p0wtSB+QXAERf+57MMb8cqWoy1bG3XaCpR9GPwYYvJM=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pkg-config'" "'$(command -v $PKG_CONFIG)'"
+  '';
+
   nativeBuildInputs = [
     pkg-config
   ];
@@ -28,6 +34,15 @@ buildPythonPackage rec {
     libversion
   ];
 
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm -r libversion
+  '';
+
   pythonImportsCheck = [
     "libversion"
   ];
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index a79bd445b6bfb..c28986085830d 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "2.6.1";
+  version = "2.6.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/limits/_version.py"
     '';
-    hash = "sha256-ja+YbRHCcZ5tFnoofdR44jbkkdDroVUdKeDOt6yE0LI=";
+    hash = "sha256-YAuq8QycQ55emU2S0rQHxdHCD+jSRmzUKeYFdrV9NzM=";
   };
 
   propagatedBuildInputs = [
@@ -56,9 +56,6 @@ buildPythonPackage rec {
     substituteInPlace pytest.ini \
       --replace "--cov=limits" "" \
       --replace "-K" ""
-    # redis-py-cluster doesn't support redis > 4
-    substituteInPlace tests/conftest.py \
-      --replace "import rediscluster" ""
 
     # Recreate _version.py, deleted at fetch time due to non-reproducibility.
     echo 'def get_versions(): return {"version": "${version}"}' > limits/_version.py
diff --git a/pkgs/development/python-modules/locket/default.nix b/pkgs/development/python-modules/locket/default.nix
index fd75a965c52f6..e416d8dd82885 100644
--- a/pkgs/development/python-modules/locket/default.nix
+++ b/pkgs/development/python-modules/locket/default.nix
@@ -1,21 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+}:
 
 buildPythonPackage rec {
   pname = "locket";
-  version = "0.2.1";
+  version = "1.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3e1faba403619fe201552f083f1ecbf23f550941bc51985ac6ed4d02d25056dd";
+    hash = "sha256-XA1MBSqLu/dQ4Fao5lzNMJCG9PDxii6sMGqN+kESpjI=";
   };
 
-  buildInputs = [ pytest ];
-
   # weird test requirements (spur.local>=0.3.7,<0.4)
   doCheck = false;
 
+  pythonImportsCheck = [
+    "locket"
+  ];
+
   meta = with lib; {
-    description = "Locket implements a lock that can be used by multiple processes provided they use the same path.";
+    description = "Library which provides a lock that can be used by multiple processes";
     homepage = "https://github.com/mwilliamson/locket.py";
     license = licenses.bsd2;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index a160095513eb5..f27897a7e1ed3 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.16.2";
+  version = "1.16.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Losant";
     repo = "losant-rest-python";
     rev = "v${version}";
-    sha256 = "sha256-OR5SegUfui5g11QZZJzAq8nhp7bFjS4Ip2gMjfx7tpA=";
+    sha256 = "sha256-s9WPr5sFSyPIDRgRYcD55iRLhaVIvkiDGg/m//6acFY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 8ae981cc1f1a8..4142b0b505aad 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-n7ZEXz+jFokjqQJf8feDE6wuN2kI3xB0z+guUhGse3o=";
+    hash = "sha256-SRDUFDtXJ1ZkX8A4ekF+YSOnxj/vsFsvr3W/LOIuerg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index 3ef230eb8e8d1..c9d4a7cf9616c 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "4.8.0";
+  version = "4.9.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "lxml-${version}";
-    sha256 = "sha256-ppyLn8B0YFQivRCOE8TjKGdDDQHbb7UdTUkevznoVC8=";
+    sha256 = "sha256-3bPyfsiJGDNB0MPw4OhATRnsM3I8ThZwvPWI+easgNo=";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
diff --git a/pkgs/development/python-modules/m2r/default.nix b/pkgs/development/python-modules/m2r/default.nix
index fd1483826177b..526f2b128678f 100644
--- a/pkgs/development/python-modules/m2r/default.nix
+++ b/pkgs/development/python-modules/m2r/default.nix
@@ -1,5 +1,6 @@
 { lib
 , buildPythonPackage
+, fetchpatch
 , fetchPypi
 , docutils
 , mistune
@@ -15,6 +16,14 @@ buildPythonPackage rec {
     sha256 = "bf90bad66cda1164b17e5ba4a037806d2443f2a4d5ddc9f6a5554a0322aaed99";
   };
 
+  patches = [
+    # fix tests in python 3.10
+    (fetchpatch {
+      url = "https://github.com/miyakogi/m2r/commit/58ee9cabdadf5e3deb13037f3052238f0f2bffcd.patch";
+      sha256 = "sha256-CN3PWmnk7xsn1wngRHuEWmDTP3HtVNxkFv0xzD2Zjlo=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace tests/test_cli.py \
       --replace "optional" "positional"
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 27ec85a1f4d12..7bf02f03895b2 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -8,12 +8,12 @@
 
 buildPythonPackage rec {
   pname = "manuel";
-  version = "1.11.2";
+  version = "1.12.4";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nJt3WMQ66oa3VlW5InJCzOea96Wf7WwxSbBp9WIfzqc=";
+    sha256 = "sha256-A5Wq32mR+SSseVz61Z2l3AYYcyqMxYrQ9HSWWrco9/Q=";
   };
 
   propagatedBuildInputs = [ six ];
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index 5d3cde1d038c6..0510aed835ad7 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -2,22 +2,23 @@
 , buildPythonPackage
 , fetchFromGitHub
 , fpyutils
+, pyfakefs
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "md-toc";
-  version = "8.1.3";
+  version = "8.1.4";
   format = "setuptools";
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "frnmst";
     repo = pname;
     rev = version;
-    sha256 = "sha256-/Hi2CW3aqbvCr7xGHD9lAe9U84waSjVfTfWq76NXNT4=";
+    hash = "sha256-7bXd+kTB1NF5KfcDVsvemCfIbZxv6nAw851bNo375Xs=";
   };
 
   propagatedBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
+    pyfakefs
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
new file mode 100644
index 0000000000000..9ea39e27a16e3
--- /dev/null
+++ b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, markdown
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "mdx_truly_sane_lists";
+  version = "1.2";
+
+  src = fetchFromGitHub {
+    owner = "radude";
+    repo = "mdx_truly_sane_lists";
+    rev = version;
+    sha256 = "1h8403ch016cwdy5zklzp7c6xrdyyhl4z07h97qzbafrbq07jyss";
+  };
+
+  propagatedBuildInputs = [ markdown ];
+
+  pythonImportsCheck = [ "mdx_truly_sane_lists" ];
+
+  checkPhase = ''
+    ${python.interpreter} mdx_truly_sane_lists/tests.py
+  '';
+
+  meta = with lib; {
+    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.
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ kaction ];
+  };
+}
diff --git a/pkgs/development/python-modules/miniaudio/default.nix b/pkgs/development/python-modules/miniaudio/default.nix
index e18396accfcc7..328dcd93ad48d 100644
--- a/pkgs/development/python-modules/miniaudio/default.nix
+++ b/pkgs/development/python-modules/miniaudio/default.nix
@@ -11,15 +11,15 @@
 
 buildPythonPackage rec {
   pname = "miniaudio";
-  version = "1.46";
+  version = "1.51";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "irmen";
     repo = "pyminiaudio";
-    rev = "v${version}";
-    sha256 = "16llwmbbd9445rwhl4v66kf5zd7yl3a94zm9xyllq6ij7vnhg5jb";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-nWx/1+b28/pvyTe8jSAOmw+vfzjuD7FFmVVUzH8DAyw=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
diff --git a/pkgs/development/python-modules/mitogen/default.nix b/pkgs/development/python-modules/mitogen/default.nix
index d99bdec4b0da0..6b6f29e1d5f4d 100644
--- a/pkgs/development/python-modules/mitogen/default.nix
+++ b/pkgs/development/python-modules/mitogen/default.nix
@@ -6,7 +6,7 @@
 
 buildPythonPackage rec {
   pname = "mitogen";
-  version = "0.3.2";
+  version = "0.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
     owner = "mitogen-hq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ACd1z9h9RLu6Kho59L2YkXkLtBEywYbO+drUvoZaVlg=";
+    sha256 = "sha256-cx0q2Y9A6UzpdD1kuGBtXIs9oBGFpkIyvPfN2hj+A1g=";
   };
 
   # Tests require network access and Docker support
diff --git a/pkgs/development/python-modules/mkdocs-exclude/default.nix b/pkgs/development/python-modules/mkdocs-exclude/default.nix
new file mode 100644
index 0000000000000..e959a15e4702c
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-exclude/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, callPackage
+, buildPythonPackage
+, fetchFromGitHub
+, mkdocs
+}:
+
+buildPythonPackage rec {
+  pname = "mkdocs-exclude";
+  version = "1.0.2";
+
+  # Repository has only 3 commits and no tags. Each of these commits has
+  # version of 1.0.0, 1.0.1 and 1.0.2 in setup.py, though.
+  src = fetchFromGitHub {
+    owner = "apenwarr";
+    repo = "mkdocs-exclude";
+    rev = "fdd67d2685ff706de126e99daeaaaf3f6f7cf3ae";
+    sha256 = "1phhl79xf4xq8w2sb2w5zm4bahcr33gsbxkz7dl1dws4qhcbxrfd";
+  };
+
+  propagatedBuildInputs = [ mkdocs ];
+
+  # Attempt to import "mkdocs_exclude" module in stand-alone mode fails:
+  #
+  #    module 'mkdocs.config' has no attribute 'config_options'
+  #
+  # It works fine when actually used to build documentation of "pydantic",
+  # though. This package has no tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A 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-gitlab-plugin/default.nix b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
new file mode 100644
index 0000000000000..5e8f12337e380
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
@@ -0,0 +1,37 @@
+{ buildPythonPackage
+, fetchzip
+, isPy3k
+, lib
+, mkdocs
+}:
+
+buildPythonPackage rec {
+  pname = "mkdocs-gitlab-plugin";
+  version = "0.1.4";
+
+  disabled = !isPy3k;
+
+  src = fetchzip {
+    url = "https://gitlab.inria.fr/vidjil/mkdocs-gitlab-plugin/-/archive/fb87fbfd404839e661a799c540664b1103096a5f/mkdocs-gitlab-plugin-fb87fbfd404839e661a799c540664b1103096a5f.tar.gz";
+    sha256 = "sha256-z+U0PRwymDDXVNM7a2Yl4pNNVBxpx/BhJnlx6kgyvww=";
+  };
+
+  patches = [ ./mkdocs-gitlab-plugin.diff ];
+
+  propagatedBuildInputs = [ mkdocs ];
+
+  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.";
+    homepage = "https://gitlab.inria.fr/vidjil/mkdocs-gitlab-plugin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ snpschaaf ];
+    longDescription = ''
+      Plugin for MkDocs.
+      Transform handles such as #1234, %56, !789, &12 or $34 into links to a gitlab repository,
+      given by the gitlab_url configuration option.
+      Before the #/%/!/&/$ is needed either a space, a '(', or a '['.
+    '';
+  };
+}
diff --git a/pkgs/development/python-modules/mkdocs-gitlab-plugin/mkdocs-gitlab-plugin.diff b/pkgs/development/python-modules/mkdocs-gitlab-plugin/mkdocs-gitlab-plugin.diff
new file mode 100644
index 0000000000000..65b0f2a10cd4a
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-gitlab-plugin/mkdocs-gitlab-plugin.diff
@@ -0,0 +1,37 @@
+diff --git a/mkdocs_gitlab_plugin/plugin.py b/mkdocs_gitlab_plugin/plugin.py
+index e8d7ab7..8b883f5 100644
+--- a/mkdocs_gitlab_plugin/plugin.py
++++ b/mkdocs_gitlab_plugin/plugin.py
+@@ -3,7 +3,7 @@
+ import re
+ import mkdocs
+ 
+-from mkdocs.config import Config
++from mkdocs.config.config_options import Type
+ from mkdocs.plugins import BasePlugin
+ 
+ class GitlabLinksPlugin(BasePlugin):
+@@ -13,8 +13,8 @@ class GitlabLinksPlugin(BasePlugin):
+     '''
+ 
+     config_scheme = (
+-        ('gitlab_url', mkdocs.config.config_options.Type(str, default='http://gitlab.com/XXX')),
+-        ('verbose', mkdocs.config.config_options.Type(bool, default=False))
++        ('gitlab_url', Type(str, default='http://gitlab.com/XXX')),
++        ('verbose', Type(bool, default=False))
+     )
+ 
+     TOKEN_PATHS = {
+diff --git a/mkdocs_gitlab_plugin/test.py b/mkdocs_gitlab_plugin/test.py
+index 4a5c35f..d5a19c6 100644
+--- a/mkdocs_gitlab_plugin/test.py
++++ b/mkdocs_gitlab_plugin/test.py
+@@ -1,7 +1,7 @@
+ 
+ import sys
+ 
+-from plugin import GitlabLinksPlugin
++from .plugin import GitlabLinksPlugin
+ 
+ if __name__ == '__main__':
+     plugin = GitlabLinksPlugin()
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index 326cffcd64056..4f32dd745b0cf 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonApplication rec {
   pname = "mkdocs-material";
-  version = "8.3.4";
+  version = "8.3.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonApplication rec {
     owner = "squidfunk";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UQGszU1ICundexXSHMdDm15FjlnzK1ifuRn2M5fp1sA=";
+    hash = "sha256-hPDzA1QybLx47ZEAwKZJRqiI48vF0R4DOR3w7EiCpvU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/mockito/default.nix b/pkgs/development/python-modules/mockito/default.nix
index e11e2f7b41b90..e9af134ba111e 100644
--- a/pkgs/development/python-modules/mockito/default.nix
+++ b/pkgs/development/python-modules/mockito/default.nix
@@ -1,12 +1,12 @@
 { lib, buildPythonPackage, fetchPypi, isPy3k, funcsigs, pytest, numpy }:
 
 buildPythonPackage rec {
-  version = "1.3.0";
+  version = "1.3.3";
   pname = "mockito";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5d41a5f6ec0b8fc32b6d796480d4849ee5fb0ac75d12f13862f1622684f5f578";
+    sha256 = "sha256-mCRTdihXcyMHNPJkmGWLHcBFrTvhNCH1CMcaXHaVe8E=";
   };
 
   propagatedBuildInputs = lib.optionals (!isPy3k) [ funcsigs ];
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index 7f3251a6cc228..fc0e613b24958 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -16,6 +16,7 @@
 , idna
 , jinja2
 , jsondiff
+, openapi-spec-validator
 , python-dateutil
 , python-jose
 , pytz
@@ -35,14 +36,14 @@
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "3.1.3";
+  version = "3.1.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-+kgVlfVhHZ/r2vCg0Skwe1433mh2w30DXO7+Rs59isA=";
+    sha256 = "sha256-GwxHL0t0AXdakuY/vPomESoA4Ie59u3aEiAqOcYsYYE=";
   };
 
   propagatedBuildInputs = [
@@ -58,6 +59,7 @@ buildPythonPackage rec {
     idna
     jinja2
     jsondiff
+    openapi-spec-validator
     python-dateutil
     python-jose
     pytz
@@ -95,6 +97,10 @@ buildPythonPackage rec {
     "--deselect=tests/test_iotdata/test_iotdata.py::test_publish"
     "--deselect=tests/test_s3/test_server.py::test_s3_server_bucket_versioning"
 
+    # Disalbe test that require docker daemon
+    "--deselect=tests/test_events/test_events_lambdatriggers_integration.py::test_creating_bucket__invokes_lambda"
+    "--deselect=tests/test_s3/test_s3_lambda_integration.py::test_objectcreated_put__invokes_lambda"
+
     # json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
     "--deselect=tests/test_cloudformation/test_cloudformation_stack_integration.py::test_lambda_function"
 
diff --git a/pkgs/development/python-modules/msgpack/default.nix b/pkgs/development/python-modules/msgpack/default.nix
index 805d347389c0f..aa413190d4dac 100644
--- a/pkgs/development/python-modules/msgpack/default.nix
+++ b/pkgs/development/python-modules/msgpack/default.nix
@@ -2,27 +2,37 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 , setuptools
 }:
 
 buildPythonPackage rec {
   pname = "msgpack";
-  version = "1.0.3";
+  version = "1.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "51fdc7fb93615286428ee7758cecc2f374d5ff363bdd884c7ea622a7a327a81e";
+    hash = "sha256-9dhpwY8DAgLrQS8Iso0q/upVPWYTruieIA16yn7wH18=";
   };
 
   nativeBuildInputs = [
     setuptools
   ];
 
-  checkInputs = [ pytestCheckHook ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "msgpack"
+  ];
 
   meta = with lib;  {
+    description = "MessagePack serializer implementation";
     homepage = "https://github.com/msgpack/msgpack-python";
-    description = "MessagePack serializer implementation for Python";
     changelog = "https://github.com/msgpack/msgpack-python/blob/master/ChangeLog.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index ad1e321e9f845..c12b16611e924 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonPackage rec {
   pname = "mysqlclient";
-  version = "2.1.0";
+  version = "2.1.1";
 
   nativeBuildInputs = [
     libmysqlclient
@@ -17,7 +17,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "973235686f1b720536d417bf0a0d39b4ab3d5086b2b6ad5e6752393428c02b12";
+    sha256 = "sha256-godX5Bn7Ed1sXtJXbsksPvqpOg98OeJjWG0e53nD14I=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/napalm/default.nix b/pkgs/development/python-modules/napalm/default.nix
index 09d38875db8e8..9625c8b55649f 100644
--- a/pkgs/development/python-modules/napalm/default.nix
+++ b/pkgs/development/python-modules/napalm/default.nix
@@ -1,7 +1,7 @@
 { lib, buildPythonPackage, fetchFromGitHub, fetchpatch, setuptools, cffi
 , paramiko, requests, future, textfsm, jinja2, netaddr, pyyaml, pyeapi, netmiko
 , junos-eznc, ciscoconfparse, scp, lxml, ncclient, pytestCheckHook, ddt, mock
-, pythonOlder }:
+, pythonOlder, invoke }:
 
 buildPythonPackage rec {
   pname = "napalm";
@@ -35,14 +35,13 @@ buildPythonPackage rec {
       --replace "netmiko>=3.3.0,<4.0.0" "netmiko"
   '';
 
-  buildInputs = [ setuptools ];
-
   propagatedBuildInputs = [
     cffi
     paramiko
     requests
     future
     textfsm
+    invoke
     jinja2
     netaddr
     pyyaml
@@ -51,6 +50,7 @@ buildPythonPackage rec {
     junos-eznc
     ciscoconfparse
     scp
+    setuptools
     lxml
     ncclient
   ];
@@ -62,6 +62,6 @@ buildPythonPackage rec {
       "Network Automation and Programmability Abstraction Layer with Multivendor support";
     homepage = "https://github.com/napalm-automation/napalm";
     license = licenses.asl20;
-    maintainers = [ maintainers.astro ];
+    maintainers = with maintainers; [ ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index c94c7a0b01bf0..68eebbada8aa5 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "nbxmpp";
-  version = "3.0.2";
+  version = "3.1.0";
 
   disabled = pythonOlder "3.7";
 
@@ -21,8 +21,8 @@ buildPythonPackage rec {
     domain = "dev.gajim.org";
     owner = "gajim";
     repo = "python-nbxmpp";
-    rev = "nbxmpp-${version}";
-    sha256 = "sha256:0wvganymqw90y9mz5a5mh531r2s9z0vrkbfspx5akk98syaq6f5p";
+    rev = version;
+    sha256 = "sha256-QnvV/sAxdl8V5nV1hk8sRrL6nn015dAy6cXAiy2Tmbs=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/netifaces/default.nix b/pkgs/development/python-modules/netifaces/default.nix
index 66feb7be02636..6d34bc3df4a57 100644
--- a/pkgs/development/python-modules/netifaces/default.nix
+++ b/pkgs/development/python-modules/netifaces/default.nix
@@ -1,25 +1,32 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   version = "0.11.0";
   pname = "netifaces";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "043a79146eb2907edf439899f262b3dfe41717d34124298ed281139a8b93ca32";
+    hash = "sha256-BDp5FG6ykH7fQ5iZ8mKz3+QXF9NBJCmO0oETmouTyjI=";
   };
 
-  doCheck = false; # no tests implemented
+  # No tests implemented
+  doCheck = false;
 
-  pythonImportsCheck = [ "netifaces" ];
+  pythonImportsCheck = [
+    "netifaces"
+  ];
 
   meta = with lib; {
-    homepage = "https://alastairs-place.net/projects/netifaces/";
     description = "Portable access to network interfaces from Python";
+    homepage = "https://github.com/al45tair/netifaces";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/networkx/default.nix b/pkgs/development/python-modules/networkx/default.nix
index 140eb9bb24c95..3fb08348c7ffa 100644
--- a/pkgs/development/python-modules/networkx/default.nix
+++ b/pkgs/development/python-modules/networkx/default.nix
@@ -2,26 +2,25 @@
 , buildPythonPackage
 , fetchPypi
 , nose
-, pytest
+, pytestCheckHook
 , decorator
 , setuptools
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "networkx";
   # upgrade may break sage, please test the sage build or ping @timokau on upgrade
-  version = "2.7.1";
+  version = "2.8.2";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0RlLp1Pl7tB83s0dI8XNejx3IJm9jb0v6jZniM9N57o=";
+    sha256 = "sha256-rpnJsNNeW0pizxz+oB5bNjPY0C9KDq1paFtufeW4Xqs=";
   };
 
   propagatedBuildInputs = [ decorator setuptools ];
-  checkInputs = [ nose pytest];
-  checkPhase = ''
-    pytest
-  '';
+  checkInputs = [ nose pytestCheckHook ];
 
   meta = {
     homepage = "https://networkx.github.io/";
diff --git a/pkgs/development/python-modules/nexia/default.nix b/pkgs/development/python-modules/nexia/default.nix
index e96a2b260b907..184271a5fe67e 100644
--- a/pkgs/development/python-modules/nexia/default.nix
+++ b/pkgs/development/python-modules/nexia/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "nexia";
-  version = "1.0.1";
+  version = "1.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = pname;
     rev = version;
-    sha256 = "sha256-f1IUyeOmRmnr7zWoMKF895FKsNgiiCbw7inmXDGZrVw=";
+    sha256 = "sha256-+3nWf9GjX7ovnumwSq3l1dcHrgWIPPzKsPmI8/tT7Lo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index dc0a6d12f0c1b..af75649216957 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -13,12 +13,12 @@
 
 buildPythonPackage rec {
   pname = "nibabel";
-  version = "3.2.2";
+  version = "4.0.1";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-sNzBdLMEBc6ej+weqzy7sg9cXkkgl2wIsi4FC3wST5Q=";
+    sha256 = "sha256-Ih83OjgAWpEcViOWBw1ngu3zTuNsVguWrj/m3Q7VxGI=";
   };
 
   propagatedBuildInputs = [ numpy scipy h5py packaging pydicom ];
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
index ef7083980af5f..554df0878595d 100644
--- a/pkgs/development/python-modules/nomadnet/default.nix
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "nomadnet";
-  version = "0.1.8";
+  version = "0.1.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "NomadNet";
     rev = version;
-    hash = "sha256-gqUCE35RPt7k0RAoZGJS1srB5K4v6gJkbTKQs8Lajm8=";
+    hash = "sha256-GZsARzqnLyZZU900ONv1/sejsEGMTFNIhOS+SESFBqg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/nose_progressive/default.nix b/pkgs/development/python-modules/nose_progressive/default.nix
index a483b2b7af899..fb9a8e61bdae4 100644
--- a/pkgs/development/python-modules/nose_progressive/default.nix
+++ b/pkgs/development/python-modules/nose_progressive/default.nix
@@ -24,11 +24,11 @@ buildPythonPackage rec {
   doCheck = !isPy3k;
 
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://github.com/erikrose/nose-progressive";
     description = "A testrunner with a progress bar and smarter tracebacks";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
+    broken = true; # relies on 2to3 conversion, which was removed from setuptools>=58.0
   };
 
 }
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index d76909efdcfe9..4efaaf3f9ec94 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -27,12 +27,12 @@
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "6.4.10";
+  version = "6.4.12";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-JAina8YokoOo7s/KZ+KY7IPGfbUaTC4bcT3RgLs56Q4=";
+    sha256 = "sha256-YmjJ7JBIz/ekVAXJkMKaycpAsLw+wpJj0hjF4B8rToY=";
   };
 
   LC_ALL = "en_US.utf8";
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index ffc422e9b421d..6c76a8fc88eee 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "numexpr";
-  version = "2.8.1";
+  version = "2.8.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zXeapE3ZhsTvEBY1GSOWArAnvgalJ5RmViB6zx9YETs=";
+    hash = "sha256-y2R8nZx4Xa4HWb9sh1zeK+xHK1w/emAVc0sWGudm0UE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/default.nix
index 2fbe1a7a694cb..a163ef6449a98 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/default.nix
@@ -44,7 +44,7 @@ in buildPythonPackage rec {
   # Attention! v1.22.0 breaks scipy and by extension scikit-learn, so
   # build both to verify they don't break.
   # https://github.com/scipy/scipy/issues/15414
-  version = "1.21.5";
+  version = "1.21.6";
 
   format = "pyproject.toml";
   disabled = pythonOlder "3.7";
@@ -52,7 +52,7 @@ in buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "sha256-alkovGJBJk3OXtUJ5m8zZ2/Jf0ZOepGe3GcvtVMiIe4=";
+    sha256 = "sha256-7LVSUROXBmaf3sL/BzyY746ahEc+UecWIRtBqg8Y5lY=";
   };
 
   patches = lib.optionals python.hasDistutilsCxxPatch [
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index 89faff436664f..97b0bfd4cbcac 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "13.4.7";
+  version = "13.5.0";
 
   src = fetchFromGitHub {
     owner = "ocrmypdf";
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-jCfMCjh8MdH5K76iyJCgtkgPtpxnCxlXlzttTIzINPk=";
+    hash = "sha256-jGVqH2z8NRnQcm4hv4OufCm26o6Qr8/mBRIScvcUpkE=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/ocrmypdf/paths.patch b/pkgs/development/python-modules/ocrmypdf/paths.patch
index 47521e1033eb4..9b1eed233cbb2 100644
--- a/pkgs/development/python-modules/ocrmypdf/paths.patch
+++ b/pkgs/development/python-modules/ocrmypdf/paths.patch
@@ -1,20 +1,20 @@
 diff --git a/src/ocrmypdf/_exec/ghostscript.py b/src/ocrmypdf/_exec/ghostscript.py
-index 1146cc5f..43f3915c 100644
+index 4da65483..af750249 100644
 --- a/src/ocrmypdf/_exec/ghostscript.py
 +++ b/src/ocrmypdf/_exec/ghostscript.py
-@@ -40,15 +40,7 @@ For details see:
+@@ -35,15 +35,7 @@ log = logging.getLogger(__name__)
  # Most reliable what to get the bitness of Python interpreter, according to Python docs
- _is_64bit = sys.maxsize > 2 ** 32
+ _IS_64BIT = sys.maxsize > 2**32
  
--_gswin = None
+-_GSWIN = None
 -if os.name == 'nt':
--    if _is_64bit:
--        _gswin = 'gswin64c'
+-    if _IS_64BIT:
+-        _GSWIN = 'gswin64c'
 -    else:
--        _gswin = 'gswin32c'
+-        _GSWIN = 'gswin32c'
 -
--GS = _gswin if _gswin else 'gs'
--del _gswin
+-GS = _GSWIN if _GSWIN else 'gs'
+-del _GSWIN
 +GS = '@gs@'
  
  
@@ -73,10 +73,10 @@ index ca8a4542..d0544174 100644
              '--skip-if-larger',
              '--quality',
 diff --git a/src/ocrmypdf/_exec/tesseract.py b/src/ocrmypdf/_exec/tesseract.py
-index a3688f65..61f54465 100644
+index 01177cac..665f1145 100644
 --- a/src/ocrmypdf/_exec/tesseract.py
 +++ b/src/ocrmypdf/_exec/tesseract.py
-@@ -75,7 +75,7 @@ class TesseractVersion(StrictVersion):
+@@ -114,7 +114,7 @@ class TesseractVersion(Version):
  
  
  def version() -> str:
@@ -85,7 +85,7 @@ index a3688f65..61f54465 100644
  
  
  def has_user_words():
-@@ -97,7 +97,7 @@ def get_languages():
+@@ -141,7 +141,7 @@ def get_languages():
          msg += output
          return msg
  
@@ -94,7 +94,7 @@ index a3688f65..61f54465 100644
      try:
          proc = run(
              args_tess,
-@@ -119,7 +119,7 @@ def get_languages():
+@@ -163,7 +163,7 @@ def get_languages():
  
  
  def tess_base_args(langs: List[str], engine_mode: Optional[int]) -> List[str]:
@@ -104,10 +104,10 @@ index a3688f65..61f54465 100644
          args.extend(['-l', '+'.join(langs)])
      if engine_mode is not None:
 diff --git a/src/ocrmypdf/_exec/unpaper.py b/src/ocrmypdf/_exec/unpaper.py
-index aec365c2..cc5cb7e4 100644
+index 479959ef..cc15fdec 100644
 --- a/src/ocrmypdf/_exec/unpaper.py
 +++ b/src/ocrmypdf/_exec/unpaper.py
-@@ -31,7 +31,7 @@ log = logging.getLogger(__name__)
+@@ -69,7 +69,7 @@ class UnpaperImageTooLargeError(Exception):
  
  
  def version() -> str:
@@ -115,13 +115,13 @@ index aec365c2..cc5cb7e4 100644
 +    return get_version('@unpaper@')
  
  
- def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
-@@ -71,7 +71,7 @@ def _setup_unpaper_io(tmpdir: Path, input_file: Path) -> Tuple[Path, Path]:
- def run(
+ SUFFIXES = {'1': '.pbm', 'L': '.pgm', 'RGB': '.ppm'}
+@@ -123,7 +123,7 @@ def _setup_unpaper_io(input_file: Path) -> Iterator[Tuple[Path, Path, Path]]:
+ def run_unpaper(
      input_file: Path, output_file: Path, *, dpi: DecFloat, mode_args: List[str]
  ) -> None:
 -    args_unpaper = ['unpaper', '-v', '--dpi', str(round(dpi, 6))] + mode_args
 +    args_unpaper = ['@unpaper@', '-v', '--dpi', str(round(dpi, 6))] + mode_args
  
-     with TemporaryDirectory() as tmpdir:
-         input_pnm, output_pnm = _setup_unpaper_io(Path(tmpdir), input_file)
+     with _setup_unpaper_io(input_file) as (input_pnm, output_pnm, tmpdir):
+         # To prevent any shenanigans from accepting arbitrary parameters in
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index 3854ed1c76048..87fb5301d7f7a 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "0.19.0";
+  version = "0.20.0";
 
   disabled = pythonOlder "3.7.1";
 
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "v${version}";
-    sha256 = "sha256-v/EBmKIzHGPR2KGLUqyWlTSZjV2MqALYRRofCXRjH24=";
+    sha256 = "sha256-kG7gsLAOoBCt7pxViO1Zhil2FGHigPEMJfBjdIp2th8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/ordereddict/default.nix b/pkgs/development/python-modules/ordereddict/default.nix
deleted file mode 100644
index 6ef006405853c..0000000000000
--- a/pkgs/development/python-modules/ordereddict/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
-
-buildPythonPackage rec {
-  pname = "ordereddict";
-  version = "1.1";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "07qvy11nvgxpzarrni3wrww3vpc9yafgi2bch4j2vvvc42nb8d8w";
-  };
-
-  meta = with lib; {
-    description = "A drop-in substitute for Py2.7's new collections.OrderedDict that works in Python 2.4-2.6";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
-  };
-
-}
diff --git a/pkgs/development/python-modules/oscpy/default.nix b/pkgs/development/python-modules/oscpy/default.nix
new file mode 100644
index 0000000000000..07991a0fac7e9
--- /dev/null
+++ b/pkgs/development/python-modules/oscpy/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook }:
+
+buildPythonPackage rec {
+  pname = "oscpy";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "kivy";
+    repo = "oscpy";
+    rev = "v${version}";
+    hash = "sha256-Luj36JLgU9xbBMydeobyf98U5zs5VwWQOPGV7TPXQwA=";
+  };
+
+  checkInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "oscpy" ];
+
+  meta = with lib; {
+    description = "A modern implementation of OSC for python2/3";
+    license = licenses.mit;
+    homepage = "https://github.com/kivy/oscpy";
+    maintainers = [ maintainers.yurkobb ];
+  };
+}
diff --git a/pkgs/development/python-modules/osmnx/default.nix b/pkgs/development/python-modules/osmnx/default.nix
index 75a2ce44630b7..4442d2ddee011 100755
--- a/pkgs/development/python-modules/osmnx/default.nix
+++ b/pkgs/development/python-modules/osmnx/default.nix
@@ -3,14 +3,14 @@
 
 buildPythonPackage rec {
   pname = "osmnx";
-  version = "1.1.2";
-  disabled = pythonOlder "3.6";
+  version = "1.2.0";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner  = "gboeing";
     repo   = pname;
     rev    = "v${version}";
-    sha256 = "sha256-qrTAXZFm88elMrVjvGwfdNwTA/PRdCOHFqpcgoKVGNk=";
+    sha256 = "sha256-HfgMmPEiKstMXV0rtul8QLxB1FY32Ws7IEonBB+qZOc=";
   };
 
   propagatedBuildInputs = [ geopandas matplotlib networkx numpy pandas requests Rtree shapely folium scikit-learn scipy gdal rasterio ];
diff --git a/pkgs/development/python-modules/osmpythontools/default.nix b/pkgs/development/python-modules/osmpythontools/default.nix
index 53c4dc1457e68..d273002ca2d96 100644
--- a/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/pkgs/development/python-modules/osmpythontools/default.nix
@@ -13,13 +13,13 @@
 
 buildPythonPackage rec {
   pname = "osmpythontools";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "mocnik-science";
     repo = "osm-python-tools";
     rev = "v${version}";
-    sha256 = "sha256-7r42b/B9h7cMgM+wFS0Fink/3WjUNvz+PwLn3C5hawc=";
+    sha256 = "sha256-lTDA1Rad9aYI/ymU/0xzdJHmebUGcpVJ0GW7D0Ujdko=";
   };
 
   propagatedBuildInputs = [
@@ -55,6 +55,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mocnik-science/osm-python-tools";
     license = licenses.gpl3Only;
     changelog = "https://raw.githubusercontent.com/mocnik-science/osm-python-tools/v${version}/version-history.md";
-    maintainers = with maintainers; [ das-g ];
+    maintainers = with maintainers; [ das-g erictapen ];
   };
 }
diff --git a/pkgs/development/python-modules/pad4pi/default.nix b/pkgs/development/python-modules/pad4pi/default.nix
new file mode 100644
index 0000000000000..a0ac82a9f16e9
--- /dev/null
+++ b/pkgs/development/python-modules/pad4pi/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi, rpi-gpio }:
+
+buildPythonPackage rec {
+  pname = "pad4pi";
+  version = "1.1.5";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-+oVYlqF5PQAFz4EO1ap6pjmYTLg9xQy6UbQja4utt2Q=";
+  };
+
+  propagatedBuildInputs = [ rpi-gpio ];
+
+  # Checks depend on rpi-gpio which requires to be run on a Raspberry Pi,
+  # therefore it fails on other systems
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/brettmclean/pad4pi";
+    description = "Interrupt-based matrix keypad library for Raspberry Pi";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index 701c9db7962a2..dc1e8c9ae5174 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "param";
-  version = "1.12.1";
+  version = "1.12.2";
 
   src = fetchFromGitHub {
     owner = "holoviz";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "sha256-MehTz0qCpWe/11PZ5jmFxHE54TA+QX2KfqvKB8L79V4=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-NrMsIDcpZc/R2j8VuXitbnIlhP3NtLxU/OkygXqYok8=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 421d53b5a8812..9a00469400355 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -2,24 +2,25 @@
 , bcrypt
 , buildPythonPackage
 , cryptography
+, fetchpatch
 , fetchPypi
+, gssapi
 , invoke
 , mock
 , pyasn1
 , pynacl
 , pytest-relaxed
 , pytestCheckHook
-, fetchpatch
 }:
 
 buildPythonPackage rec {
   pname = "paramiko";
-  version = "2.10.4";
+  version = "2.11.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-PS5lC2gSzm0WCr/3AdbvRDTsl5NLE+lc8a09pw/7XFg=";
+    sha256 = "sha256-AD5r7nwDTCH7sFG/g9wKnuQQYgTdPFMFTHFFLMTsOTg=";
   };
 
   patches = [
@@ -32,11 +33,9 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    bcrypt
     cryptography
     pyasn1
-    pynacl
-  ];
+  ] ++ passthru.optional-dependencies.ed25519; # remove on 3.0 update
 
   checkInputs = [
     invoke
@@ -62,6 +61,12 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
+  passthru.optional-dependencies = {
+    gssapi = [ pyasn1 gssapi ];
+    ed25519 = [ pynacl bcrypt ];
+    invoke = [ invoke ];
+  };
+
   meta = with lib; {
     homepage = "https://github.com/paramiko/paramiko/";
     description = "Native Python SSHv2 protocol library";
diff --git a/pkgs/development/python-modules/parts/default.nix b/pkgs/development/python-modules/parts/default.nix
index 65ebd1bf3a15f..0b2d246056f04 100644
--- a/pkgs/development/python-modules/parts/default.nix
+++ b/pkgs/development/python-modules/parts/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "parts";
-  version = "1.3.0";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-NrhNpWyzqwn1bNnuqmcyKcUED0A4v7VJE4ZlTHFafJY=";
+    sha256 = "sha256-Qs6+3dWG5sjSmeQiL/Q2evn5TImEX0Yk/nCIe5uIMp4=";
   };
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/pbr/default.nix b/pkgs/development/python-modules/pbr/default.nix
index 7a03226b4dde9..7fb0574f75a07 100644
--- a/pkgs/development/python-modules/pbr/default.nix
+++ b/pkgs/development/python-modules/pbr/default.nix
@@ -7,13 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pbr";
-  version = "5.8.1";
+  version = "5.9.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-ZrxaNJEvQIuzklvyEjHLb1kgYme39j81A++GXBopLiU=";
+    sha256 = "sha256-6Nyi9LQ1YO3vWIE5afUqVs7wIxRsu4kxYm24DmwcQwg=";
   };
 
+  # importlib-metadata could be added here if it wouldn't cause an infinite recursion
   propagatedBuildInputs = [ setuptools ];
 
   # check in passthru.tests.pytest to escape infinite recursion with fixtures
diff --git a/pkgs/development/python-modules/pdftotext/default.nix b/pkgs/development/python-modules/pdftotext/default.nix
index 4e1ea3622e8ca..efb26fa4955dc 100644
--- a/pkgs/development/python-modules/pdftotext/default.nix
+++ b/pkgs/development/python-modules/pdftotext/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "Simple PDF text extraction";
     homepage = "https://github.com/jalan/pdftotext";
     license = licenses.mit;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index 41d910279e56d..239fcfe5962c1 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "1.0.14";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zHVi950iUultt66amL22d/7INglJtSOHvWCPUSaw5h4=";
+    hash = "sha256-GU0g1jCvLcbwO9apt3r/Y8XNtiraEI83thiXI/wDIJk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pefile/default.nix b/pkgs/development/python-modules/pefile/default.nix
index 1a793644fb295..b1707670e7689 100644
--- a/pkgs/development/python-modules/pefile/default.nix
+++ b/pkgs/development/python-modules/pefile/default.nix
@@ -8,14 +8,16 @@
 
 buildPythonPackage rec {
   pname = "pefile";
-  version = "2021.9.3";
+  version = "2022.5.30";
+  format = "setuptools";
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "erocarrera";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sr17rmqpr874m8rpkp8xdz8kjshhimbfgq13qy4lscaiznmlf0d";
+    hash = "sha256-Cv20hJsErHFSuS5Q1kqLNp4DAsPXv/eFhaU9oYECSeI=";
   };
 
   nativeBuildInputs = [
@@ -29,12 +31,14 @@ buildPythonPackage rec {
   # Test data encrypted
   doCheck = false;
 
-  pythonImportsCheck = [ "pefile" ];
+  pythonImportsCheck = [
+    "pefile"
+  ];
 
   meta = with lib; {
     description = "Multi-platform Python module to parse and work with Portable Executable (aka PE) files";
     homepage = "https://github.com/erocarrera/pefile";
     license = licenses.mit;
-    maintainers = [ maintainers.pamplemousse ];
+    maintainers = with maintainers; [ pamplemousse ];
   };
 }
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index 307e0e411a00c..b2702ac09cd3f 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.1.92";
+  version = "2.1.93";
   format = "flit";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LEHbS6rSKQl1APWYjNS8y1edtXDRqSuhfftcuM67K44=";
+    hash = "sha256-7aXpKbGjJrkMS6l2B6jR1XWn7t3WLyztePEyMQaJkbk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/database/pgcli/default.nix b/pkgs/development/python-modules/pgcli/default.nix
index 40c2048128876..70e52493315e6 100644
--- a/pkgs/development/tools/database/pgcli/default.nix
+++ b/pkgs/development/python-modules/pgcli/default.nix
@@ -1,5 +1,5 @@
 { lib, stdenv
-, buildPythonApplication
+, buildPythonPackage
 , fetchPypi
 , isPy3k
 , cli-helpers
@@ -18,7 +18,9 @@
 , mock
 }:
 
-buildPythonApplication rec {
+# this is a pythonPackage because of the ipython line magics in pgcli.magic
+# integrating with ipython-sql
+buildPythonPackage rec {
   pname = "pgcli";
   version = "3.4.1";
 
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index baef7ea8aad0c..b45b2139e7122 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pglast";
-  version = "3.11";
+  version = "3.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JvWYrfo4HmvzwJ4vi8iGMfUKTMmpN6FS8fx2McKDj3Y=";
+    hash = "sha256-9lPyillQyCTXiHCCLq1DKG6YbKWSYu9h8AGijO3xN/M=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pgpy/default.nix b/pkgs/development/python-modules/pgpy/default.nix
index 3c2e2c22a88b0..a53711a4de626 100644
--- a/pkgs/development/python-modules/pgpy/default.nix
+++ b/pkgs/development/python-modules/pgpy/default.nix
@@ -25,6 +25,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # assertions contains extra: IDEA has been deprecated
+    "test_encrypt_bad_cipher"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/SecurityInnovation/PGPy";
     description = "Pretty Good Privacy for Python 2 and 3";
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index 29a54e1eac1f6..87609b30d80b7 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -8,6 +8,7 @@
 , jbig2dec
 , lxml
 , mupdf
+, packaging
 , pillow
 , psutil
 , pybind11
@@ -22,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "5.1.4";
+  version = "5.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-nCzG1QYwERKo/T16hEGIG//PwSrpWRmKLXdj42WGyls=";
+    hash = "sha256-DEgxdMVX5gQOsV9EyJtO/MO7padYMZrekanpp+nNvek=";
   };
 
   patches = [
@@ -78,6 +79,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     lxml
+    packaging
     pillow
   ] ++ lib.optionals (pythonOlder "3.8") [
     importlib-metadata
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index 47ed191c6d993..e482cd75e1a5b 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -12,14 +12,14 @@
 
 import ./generic.nix (rec {
   pname = "pillow";
-  version = "9.1.0";
+  version = "9.1.1";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "Pillow";
     inherit version;
-    sha256 = "f401ed2bbb155e1ade150ccc63db1a4f6c1909d3d378f7d1235a44e90d75fb97";
+    sha256 = "sha256-dQJTmTm1PXVl89Edh8eOfskA08cpRdTuDi8lDVmDCaA=";
   };
 
   passthru.tests = {
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index 20613e518af8b..c67c50afd84fa 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "9.5.0";
+  version = "9.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gjYlr2rp2xRMcFKbA4Y/Pb7YYOUR4LTzMtVoG1iMlx0=";
+    hash = "sha256-LijBSAnRwXoeddWwolamM3QYSTwFvgodmaIbayco8fY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index e6f09947905d9..37078a6347d19 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.19.1";
+  version = "0.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-eytv61aTGL6rTLHfZD9Tsl9FycdExo+TGsVBCNu1fIo=";
+    sha256 = "sha256-2ESoMJtoh0f7E427q7IFZZJW2ZcwgnjFDasKbHyF844=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index ace9537c1d043..3db023447f610 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -10,12 +10,12 @@
 
 buildPythonPackage rec {
   pname = "proto-plus";
-  version = "1.20.5";
+  version = "1.20.6";
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gXlOsb4zPGeYYzOUjfcOu4zfU44Dn4z6kv0qnXF21AU=";
+    sha256 = "sha256-RJtFN+g/R3a9aQUcTXdtuP/j+dBkHx6HsGwRbrlMkOk=";
   };
 
   propagatedBuildInputs = [ protobuf ];
diff --git a/pkgs/development/python-modules/psutil/default.nix b/pkgs/development/python-modules/psutil/default.nix
index 581e83ddf1a22..197da3c76ce60 100644
--- a/pkgs/development/python-modules/psutil/default.nix
+++ b/pkgs/development/python-modules/psutil/default.nix
@@ -1,18 +1,17 @@
 { lib, stdenv, buildPythonPackage, fetchPypi, isPy27, python
-, darwin
+, IOKit
 , pytestCheckHook
 , mock
-, ipaddress
 , unittest2
 }:
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.9.0";
+  version = "5.9.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "869842dbd66bb80c3217158e629d6fceaecc3a3166d3d1faee515b05dd26ca25";
+    sha256 = "sha256-V/GBm12elc37DIgailt9VC7Qt8Ui1XVwaoC+3ISMiVQ=";
   };
 
   # We have many test failures on various parts of the package:
@@ -24,7 +23,7 @@ buildPythonPackage rec {
   #    https://github.com/giampaolo/psutil/issues/1912
   doCheck = false;
   checkInputs = [ pytestCheckHook ]
-  ++ lib.optionals isPy27 [ mock ipaddress unittest2 ];
+  ++ lib.optionals isPy27 [ mock unittest2 ];
   # In addition to the issues listed above there are some that occure due to
   # our sandboxing which we can work around by disabling some tests:
   # - cpu_times was flaky on darwin
@@ -42,7 +41,7 @@ buildPythonPackage rec {
     "cpu_freq"
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ darwin.IOKit ];
+  buildInputs = lib.optionals stdenv.isDarwin [ IOKit ];
 
   pythonImportsCheck = [ "psutil" ];
 
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 56cd8fee7f932..8ebba4b017889 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -34,14 +34,17 @@ buildPythonPackage rec {
     openssl
   ];
 
+  sphinxRoot = "doc/src";
+
   # requires setting up a postgresql database
   doCheck = false;
 
-  sphinxRoot = "doc/src";
+  pythonImportsCheck = [ "psycopg2" ];
 
   meta = with lib; {
     description = "PostgreSQL database adapter for the Python programming language";
     homepage = "https://www.psycopg.org";
     license = with licenses; [ lgpl3 zpl20 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index 0f4cb78e8fefb..88fb56750aaea 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "6.3.2";
+  version = "6.3.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xSPsBcbttADgaetkTIFSYSoEl3lWfdhechpkzQEmcag=";
+    hash = "sha256-OVciXd1u112h9tPNW5XpT7aDknpMGEYroe4m7HxBqaw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pulumi-aws/default.nix b/pkgs/development/python-modules/pulumi-aws/default.nix
index 023414f3c41d6..838422a31a250 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 = "5.8.0";
+  version = "5.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "pulumi";
     repo = "pulumi-aws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-exMPHz5sq6AW3hyv+pl66RmHR4nEBIeDu7NPPyH1mig=";
+    hash = "sha256-LYWxdqortazhev73JSTItrEyZZYFmeXkAko/2aFKaSw=";
   };
 
   sourceRoot = "${src.name}/sdk/python";
diff --git a/pkgs/development/python-modules/pure-eval/default.nix b/pkgs/development/python-modules/pure-eval/default.nix
index 866b2bdcadf6f..ba84c1db5fae8 100644
--- a/pkgs/development/python-modules/pure-eval/default.nix
+++ b/pkgs/development/python-modules/pure-eval/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, isPy3k
+, pythonOlder
 , fetchFromGitHub
 , setuptools-scm
 , toml
@@ -9,15 +9,16 @@
 
 buildPythonPackage rec {
   pname = "pure_eval";
-  version = "0.2.1";
+  version = "0.2.2";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "alexmojaki";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-+Vucu16NFPtQ23AbBH/cQU+klxp6DMicSScbnKegLZI=";
+    hash = "sha256-9N+UcgAv30s4ctgsBrOHiix4BoXhKPgxH/GOz/NIFdU=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -34,7 +35,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "pure_eval" ];
+  pythonImportsCheck = [
+    "pure_eval"
+  ];
 
   meta = with lib; {
     description = "Safely evaluate AST nodes without side effects";
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index cdf8a3c49c37e..dac1ecb9ec1fc 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -16,6 +16,10 @@ buildPythonPackage rec {
   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.";
     homepage = "https://www.py4j.org/";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode
+    ];
     license = licenses.bsd3;
     maintainers = [ maintainers.shlevy ];
   };
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 13678edc8656a..0474ed4e67cf0 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pyTelegramBotAPI";
-  version = "4.5.1";
+  version = "4.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ClzdkvH1uz1qh/q3prfn8n0eosY3y3mUscbb4EKbmJQ=";
+    hash = "sha256-sa6kw8hnWGt++qgNVNs7cQ9LJK64CVv871aP8n08pRA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyannotate/default.nix b/pkgs/development/python-modules/pyannotate/default.nix
index 332a4161fe787..50edda1a7ef2b 100644
--- a/pkgs/development/python-modules/pyannotate/default.nix
+++ b/pkgs/development/python-modules/pyannotate/default.nix
@@ -1,34 +1,42 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, mypy-extensions
+, pytestCheckHook
 , pythonOlder
 , six
-, mypy-extensions
-, typing
-, pytest
 }:
 
 buildPythonPackage rec {
-  version = "1.2.0";
   pname = "pyannotate";
+  version = "1.2.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "16bm0mf7wxvy0lgmcs1p8n1ji8pnvj1jvj8zk3am70dkp825iv84";
+    hash = "sha256-BO1YBLqzgVPVmB/JLYPc9qIog0U3aFYfBX53flwFdZk=";
   };
 
-  checkInputs = [ pytest ];
-  propagatedBuildInputs = [ six mypy-extensions ]
-    ++ lib.optionals (pythonOlder "3.5") [ typing ];
+  propagatedBuildInputs = [
+    six
+    mypy-extensions
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
 
-  checkPhase = ''
-    py.test
-  '';
+  pythonImportsCheck = [
+    "pyannotate_runtime"
+    "pyannotate_tools"
+  ];
 
   meta = with lib; {
-    homepage = "https://github.com/dropbox/pyannotate";
     description = "Auto-generate PEP-484 annotations";
+    homepage = "https://github.com/dropbox/pyannotate";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index 85d89424c839f..53dde0cd0f616 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -2,7 +2,7 @@
 , stdenv
 , buildPythonPackage
 , python
-, isPy3k
+, pythonOlder
 , arrow-cpp
 , cffi
 , cloudpickle
@@ -28,14 +28,28 @@ in
 
 buildPythonPackage rec {
   pname = "pyarrow";
-  disabled = !isPy3k;
-
   inherit (_arrow-cpp) version src;
 
+  disabled = pythonOlder "3.7";
+
   sourceRoot = "apache-arrow-${version}/python";
 
-  nativeBuildInputs = [ cmake cython pkg-config setuptools-scm ];
-  propagatedBuildInputs = [ numpy six cloudpickle scipy fsspec cffi ];
+  nativeBuildInputs = [
+    cmake
+    cython
+    pkg-config
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    cffi
+    cloudpickle
+    fsspec
+    numpy
+    scipy
+    six
+  ];
+
   checkInputs = [
     hypothesis
     pandas
@@ -62,6 +76,7 @@ buildPythonPackage rec {
   ARROW_TEST_DATA = lib.optionalString doCheck _arrow-cpp.ARROW_TEST_DATA;
 
   doCheck = true;
+
   dontUseCmakeConfigure = true;
 
   preBuild = ''
@@ -80,6 +95,9 @@ buildPythonPackage rec {
     "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws"
     "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws_region_selection"
     "--deselect=pyarrow/tests/test_fs.py::test_s3_options"
+    # Flaky test
+    "--deselect=pyarrow/tests/test_flight.py::test_roundtrip_errors"
+    "--deselect=pyarrow/tests/test_pandas.py::test_threaded_pandas_import"
   ] ++ lib.optionals stdenv.isDarwin [
     # Requires loopback networking
     "--deselect=pyarrow/tests/test_ipc.py::test_socket_"
@@ -90,6 +108,7 @@ buildPythonPackage rec {
   ];
 
   dontUseSetuptoolsCheck = true;
+
   preCheck = ''
     shopt -s extglob
     rm -r pyarrow/!(tests)
@@ -98,7 +117,9 @@ buildPythonPackage rec {
     ulimit -n 1024
   '';
 
-  pythonImportsCheck = [ "pyarrow" ] ++ map (module: "pyarrow.${module}") ([
+  pythonImportsCheck = [
+    "pyarrow"
+  ] ++ map (module: "pyarrow.${module}") ([
     "compute"
     "csv"
     "dataset"
@@ -108,7 +129,9 @@ buildPythonPackage rec {
     "hdfs"
     "json"
     "parquet"
-  ] ++ lib.optionals (!stdenv.isDarwin) [ "plasma" ]);
+  ] ++ lib.optionals (!stdenv.isDarwin) [
+    "plasma"
+  ]);
 
   meta = with lib; {
     description = "A cross-language development platform for in-memory data";
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index 7a44cf995e3f0..78a75817bee01 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -1,16 +1,16 @@
 { lib
-, buildPythonPackage
-, fetchPypi
 , boto3
 , botocore
+, buildPythonPackage
+, fetchPypi
 , pandas
-, tenacity
 , pythonOlder
+, tenacity
 }:
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "2.5.2";
+  version = "2.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyAthena";
     inherit version;
-    sha256 = "sha256-vjoK6lEitvd5vqSEE/ael8q00O05lquKIviFK/bPlVQ=";
+    hash = "sha256-b1JdJhSe4ezKN4afZexwc/YT7OM9nIXHK7ca6nYRGnY=";
   };
 
   propagatedBuildInputs = [
@@ -38,9 +38,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
+    description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
     homepage = "https://github.com/laughingman7743/PyAthena/";
     license = licenses.mit;
-    description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
     maintainers = with maintainers; [ turion ];
   };
 }
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index ea7458f13b660..d4b67f2bb21ed 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonPackage rec {
   pname = "pybase64";
-  version = "1.2.1";
+  version = "1.2.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "d2016a3a487d3d4501d8281f61ee54c25efd65e37a4c7dce8011e0de7183c956";
+    sha256 = "sha256-vv2YOlp7ZVE1W2q+VnI/f58SxYDgLxJreIOwdb6/8lw=";
   };
 
   checkInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/pychm/default.nix b/pkgs/development/python-modules/pychm/default.nix
new file mode 100644
index 0000000000000..e9cc2c319fffc
--- /dev/null
+++ b/pkgs/development/python-modules/pychm/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pythonOlder
+, chmlib
+}:
+
+buildPythonPackage rec {
+  pname = "pychm";
+  version = "0.8.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0wpn9ijlsmrpyiwg3drmgz4dms1i1i347adgqw37bkrh3vn6yq16";
+  };
+
+  buildInputs = [ chmlib ];
+
+  pythonImportsCheck = [ "chm" ];
+
+  meta = with lib; {
+    description = "Library to manipulate Microsoft HTML Help (CHM) files";
+    homepage = "https://github.com/dottedmag/pychm";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ alexshpilkin ];
+  };
+}
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 584462035eb9d..9dce1cfa7938c 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pychromecast";
-  version = "12.1.3";
+  version = "12.1.4";
   format = "setuptools";
 
   disabled = !isPy3k;
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyChromecast";
     inherit version;
-    sha256 = "sha256-7dZ7bSPV0GSlbJfNkOpmH6j/12cgvxmbWhJsaGn4HgE=";
+    sha256 = "sha256-nlfcmFpKBdtb3NXaIZy/bO0lVIygk/jXS8EHs8VU7AA=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
index a6e023366ac9f..9216f0d5b8930 100644
--- a/pkgs/development/python-modules/pyclipper/default.nix
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyclipper";
-  version = "1.3.0.post2";
+  version = "1.3.0.post3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "fonttools";
     repo = pname;
-    rev = version;
-    hash = "sha256-AFdfzM1zdhmfh3Uu5fFVOMWStbuHxKS3FovZPTeuNFA=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-viBnmzbCAH9QaVHwUq43rm11e8o3N/jtGsGpmRZokaw=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index e3e4e6c3a03ab..ef7b571170f3e 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,28 +1,43 @@
 { lib
 , buildPythonPackage
-, fetchPypi
-, pycryptodome-test-vectors
+, callPackage
+, fetchFromGitHub
+, cffi
+, gmp
 }:
 
+let
+  test-vectors = callPackage ./vectors.nix { };
+in
 buildPythonPackage rec {
   pname = "pycryptodome";
   version = "3.14.1";
   format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-4E5Ap/jBZpGVU2o3l53YfaLDLb3HPW/jXwB3sMF8gDs=";
+  src = fetchFromGitHub {
+    owner = "Legrandin";
+    repo = "pycryptodome";
+    rev = "v${version}";
+    hash = "sha256-0GjpKNyALe2Q1R3dEjeAEn6E8hxYDic/vbN1YkVaUfs=";
   };
 
+  postPatch = ''
+    substituteInPlace lib/Crypto/Math/_IntegerGMP.py \
+      --replace 'load_lib("gmp"' 'load_lib("${gmp}/lib/libgmp.so.10"'
+  '';
+
+  checkInputs = [
+    test-vectors
+  ];
+
   pythonImportsCheck = [
     "Crypto"
   ];
 
   meta = with lib; {
-    description = "Python Cryptography Toolkit";
-    homepage = "https://www.pycryptodome.org/";
+    description = "Self-contained cryptographic library";
+    homepage = "https://github.com/Legrandin/pycryptodome";
     license = with licenses; [ bsd2 /* and */ asl20 ];
     maintainers = with maintainers; [ fab ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix b/pkgs/development/python-modules/pycryptodome/vectors.nix
index f6a2b715ad916..f6a2b715ad916 100644
--- a/pkgs/development/python-modules/pycryptodome-test-vectors/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/vectors.nix
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 934c021ed9098..9d476ea4728c1 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -1,27 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pycryptodome-test-vectors
-}:
+{ pycryptodome }:
 
-buildPythonPackage rec {
+(pycryptodome.overrideAttrs (oldAttrs: rec {
   pname = "pycryptodomex";
-  version = "3.14.1";
-  format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-LOdu0Agf1qyMdO3HW50U7KIGQXOveYQ8JPpiVzJjwfI=";
-  };
+  postPatch = ''
+    touch .separate_namespace
+  '';
 
   pythonImportsCheck = [
     "Cryptodome"
   ];
-
-  meta = with lib; {
-    description = "A self-contained cryptographic library for Python";
-    homepage = "https://www.pycryptodome.org";
-    license = with licenses; [ bsd2 /* and */ asl20 ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
+}))
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index aac95982ceaef..25a5d54d529e0 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -2,18 +2,30 @@
 , buildPythonPackage
 , cython
 , devtools
-, email_validator
+, email-validator
 , fetchFromGitHub
 , pytest-mock
 , pytestCheckHook
 , python-dotenv
 , pythonOlder
 , typing-extensions
+# dependencies for building documentation.
+, ansi2html
+, markdown-include
+, mkdocs
+, mkdocs-exclude
+, mkdocs-material
+, mdx-truly-sane-lists
+, sqlalchemy
+, ujson
+, orjson
+, hypothesis
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
   version = "1.9.0";
+  outputs = [ "out" "doc" ];
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
@@ -23,13 +35,29 @@ buildPythonPackage rec {
     sha256 = "sha256-C4WP8tiMRFmkDkQRrvP3yOSM2zN8pHJmX9cdANIckpM=";
   };
 
+  postPatch = ''
+    sed -i '/flake8/ d' Makefile
+  '';
+
   nativeBuildInputs = [
     cython
+
+    # dependencies for building documentation
+    ansi2html
+    markdown-include
+    mdx-truly-sane-lists
+    mkdocs
+    mkdocs-exclude
+    mkdocs-material
+    sqlalchemy
+    ujson
+    orjson
+    hypothesis
   ];
 
   propagatedBuildInputs = [
     devtools
-    email_validator
+    email-validator
     python-dotenv
     typing-extensions
   ];
@@ -43,6 +71,18 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
+  # Must include current directory into PYTHONPATH, since documentation
+  # building process expects "import pydantic" to work.
+  preBuild = ''
+    PYTHONPATH=$PWD:$PYTHONPATH make docs
+  '';
+
+  # Layout documentation in same way as "sphinxHook" does.
+  postInstall = ''
+    mkdir -p $out/share/doc/$name
+    mv ./site $out/share/doc/$name/html
+  '';
+
   enableParallelBuilding = true;
 
   pythonImportsCheck = [ "pydantic" ];
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
index ef9a7f1368eed..cec999bf999a5 100644
--- a/pkgs/development/python-modules/pyelftools/default.nix
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -1,19 +1,23 @@
 { lib
+, stdenv
 , buildPythonPackage
 , fetchFromGitHub
 , python
-, stdenv
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyelftools";
-  version = "0.27";
+  version = "0.28";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "eliben";
     repo = pname;
     rev = "v${version}";
-    sha256 = "09igdym2qj2fvfcazbz25qybmgz7ccrn25xn3havfkdkka0z0i3p";
+    hash = "sha256-+T5C0ah2oj5E8fWaQbuzYRVgD5bSiUbaArrlxNLojvw=";
   };
 
   doCheck = stdenv.hostPlatform.system == "x86_64-linux";
@@ -23,7 +27,9 @@ buildPythonPackage rec {
     ${python.interpreter} test/all_tests.py
   '';
 
-  pythonImportsCheck = [ "elftools" ];
+  pythonImportsCheck = [
+    "elftools"
+  ];
 
   meta = with lib; {
     description = "Python library for analyzing ELF files and DWARF debugging information";
diff --git a/pkgs/development/python-modules/pyenvisalink/default.nix b/pkgs/development/python-modules/pyenvisalink/default.nix
index 2bcbc753a9ae1..8e59cec643a11 100644
--- a/pkgs/development/python-modules/pyenvisalink/default.nix
+++ b/pkgs/development/python-modules/pyenvisalink/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "pyenvisalink";
-  version = "4.4";
+  version = "4.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-YUYiCid+XAlfytkyz4Td5CG1zBOrsLx4/nuRubRE14w=";
+    sha256 = "sha256-WS1DCnuVmFAKsFVOb6HeKoNn2ZWHoLupg2VOZkzVsBU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyfuse3/default.nix b/pkgs/development/python-modules/pyfuse3/default.nix
index bdb420313ba28..07ba27c0ef7da 100644
--- a/pkgs/development/python-modules/pyfuse3/default.nix
+++ b/pkgs/development/python-modules/pyfuse3/default.nix
@@ -27,6 +27,11 @@ buildPythonPackage rec {
     hash = "sha256-JGbp2bSI/Rvyys1xMd2o34KlqqBsV6B9LhuuNopayYA=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "'pkg-config'" "'$(command -v $PKG_CONFIG)'"
+  '';
+
   nativeBuildInputs = [
     cython
     pkg-config
diff --git a/pkgs/development/python-modules/pygal/default.nix b/pkgs/development/python-modules/pygal/default.nix
index ae7277202bbc5..ae5274944afc5 100644
--- a/pkgs/development/python-modules/pygal/default.nix
+++ b/pkgs/development/python-modules/pygal/default.nix
@@ -1,59 +1,45 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, fetchpatch
-, isPyPy
-, flask
-, pyquery
-, pytest
-, pytest-runner
-, cairosvg
-, tinycss
-, cssselect
 , lxml
+, cairosvg
+, pyquery
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "pygal";
   version = "3.0.0";
 
-  doCheck = !isPyPy; # one check fails with pypy
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-KSP5XS5RWTCqWplyGdzO+/PZK36vX8HJ/ruVsJk1/bI=";
   };
 
-  buildInputs = [
-    flask
-    pyquery
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace pytest-runner ""
+  '';
 
-    # Should be a check input, but upstream lists it under "setup_requires".
-    # https://github.com/Kozea/pygal/issues/430
-    pytest-runner
-  ];
+  passthru.optional-dependencies = {
+    lxml = [ lxml ];
+    png = [ cairosvg ];
+  };
 
   checkInputs = [
-    pytest
-  ];
+    pyquery
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.png;
 
   preCheck = ''
     # necessary on darwin to pass the testsuite
     export LANG=en_US.UTF-8
   '';
 
-  postPatch = ''
-    substituteInPlace setup.cfg --replace "[pytest]" "[tool:pytest]"
-  '';
-
-  propagatedBuildInputs = [ cairosvg tinycss cssselect ]
-    ++ lib.optionals (!isPyPy) [ lxml ];
-
   meta = with lib; {
     description = "Sexy and simple python charting";
     homepage = "http://www.pygal.org";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ sjourdois ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index f7728cfa28db0..127150a1a626d 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -17,15 +17,15 @@
 
 buildPythonPackage rec {
   pname = "pygmt";
-  version = "0.6.0";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "GenericMappingTools";
     repo = "pygmt";
-    rev = "v${version}";
-    sha256 = "sha256-QzqQKnANReSHIsDbiKSZ1ZgMgbj3NAfq4bmRQktnRjQ=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-/hZUDvMhF/ojTXBcap5lL6X2bYu+opf+TwYNjANgtiw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyhiveapi/default.nix b/pkgs/development/python-modules/pyhiveapi/default.nix
index 36c61204796a1..56e8e4d620bfa 100644
--- a/pkgs/development/python-modules/pyhiveapi/default.nix
+++ b/pkgs/development/python-modules/pyhiveapi/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "pyhiveapi";
-  version = "0.5.10";
+  version = "0.5.11";
 
   format = "pyproject";
 
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "Pyhass";
     repo = "Pyhiveapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WhUZP6g9KVWIB6QYPDX1X5JQ9ymVX3wR3kzMtTEjEfs=";
+    hash = "sha256-7Zval0LPuL3QUgDwpG91ybbL7gSWm4DxxZ/yXzkBES8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyjwt/default.nix b/pkgs/development/python-modules/pyjwt/default.nix
index 8212d097aa806..500f46b024088 100644
--- a/pkgs/development/python-modules/pyjwt/default.nix
+++ b/pkgs/development/python-modules/pyjwt/default.nix
@@ -2,30 +2,26 @@
 , buildPythonPackage
 , fetchPypi
 , cryptography
-, ecdsa
-, pytest-cov
 , pytestCheckHook
 , pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pyjwt";
-  version = "2.3.0";
+  version = "2.4.0";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     pname = "PyJWT";
     inherit version;
-    sha256 = "sha256-uIi01W8G9tzXdyEMM05pxze+dHVdPl6e4/5n3Big7kE=";
+    sha256 = "sha256-1CkIIIxpmzuXPL6wGpabpqlsgh7vscW/5MOQwB1nq7o=";
   };
 
   propagatedBuildInputs = [
     cryptography
-    ecdsa
   ];
 
   checkInputs = [
-    pytest-cov
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/PyLD/default.nix b/pkgs/development/python-modules/pyld/default.nix
index 5a4741a730ace..464065cbc1750 100644
--- a/pkgs/development/python-modules/PyLD/default.nix
+++ b/pkgs/development/python-modules/pyld/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, requests, gnugrep }:
+{ lib, buildPythonPackage, fetchFromGitHub, python, requests }:
 
 let
 
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     ok_min=401
 
     if ! ${python.interpreter} tests/runtests.py -d ${json-ld}/test-suite 2>&1 | tee test.out; then
-      ok_count=$(${gnugrep}/bin/grep -F '... ok' test.out | wc -l)
+      ok_count=$(grep -F '... ok' test.out | wc -l)
       if [[ $ok_count -lt $ok_min ]]; then
         echo "Less than $ok_min tests passed ($ok_count). Failing the build."
         exit 1
diff --git a/pkgs/development/python-modules/pylink-square/default.nix b/pkgs/development/python-modules/pylink-square/default.nix
index 287e8c338a81d..7da521ef48fec 100644
--- a/pkgs/development/python-modules/pylink-square/default.nix
+++ b/pkgs/development/python-modules/pylink-square/default.nix
@@ -6,44 +6,35 @@
 , psutil
 , six
 , future
+, pytestCheckHook
 }:
 
-let
-  mock' = mock.overridePythonAttrs (old: rec {
-    version = "2.0.0";
-    src = fetchPypi {
-      inherit (old) pname;
-      inherit version;
-      sha256 = "1flbpksir5sqrvq2z0dp8sl4bzbadg21sj4d42w3klpdfvgvcn5i";
-    };
-  });
-in buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "pylink-square";
-  version = "0.8.1";
+  version = "0.13.0";
+
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "square";
     repo = "pylink";
     rev = "v${version}";
-    sha256 = "1q5sm1017pcqcgwhsliiiv1wh609lrjdlc8f5ihlschk1d0qidpd";
+    hash = "sha256-SH2oxOlsX5dE8wMXpWPA/rEVrJwxJzizsOiYbwaGjLw=";
   };
 
-  buildInputs = [ mock' ];
   propagatedBuildInputs = [ psutil six future ];
 
-  preCheck = ''
-    # For an unknown reason, `pylink --version` output is different
-    # inside the nix build environment across different python versions
-    substituteInPlace tests/unit/test_main.py --replace \
-      "expected = 'pylink %s' % pylink.__version__" \
-      "return"
-  '';
+  checkInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "pylink" ];
 
   meta = with lib; {
     description = "Python interface for the SEGGER J-Link";
-    homepage = "https://github.com/Square/pylink";
+    homepage = "https://github.com/square/pylink";
+    changelog = "https://github.com/square/pylink/blob/${src.rev}/CHANGELOG.md";
     maintainers = with maintainers; [ dump_stack ];
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 9bb6cdf900df4..5fa39298cb5f0 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -2,7 +2,6 @@
 , lib
 , buildPythonPackage
 , fetchFromGitHub
-, pythonAtLeast
 , pythonOlder
 , installShellFiles
 , astroid
@@ -11,6 +10,7 @@
 , mccabe
 , platformdirs
 , tomli
+, tomlkit
 , typing-extensions
 , GitPython
 , pytest-timeout
@@ -20,16 +20,16 @@
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "2.13.5";
+  version = "2.14.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6.2";
+  disabled = pythonOlder "3.7.2";
 
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-FB99vmUtoTc0cTjDUSbx80Tesh0vASigSpPktrDYk08=";
+    sha256 = "sha256-rtyqHRDywv3l8bDgEjQlsh8lvwWbLswOPujFakaLWOw=";
   };
 
   nativeBuildInputs = [
@@ -42,6 +42,7 @@ buildPythonPackage rec {
     isort
     mccabe
     platformdirs
+    tomlkit
   ] ++ lib.optionals (pythonOlder "3.11") [
     tomli
   ] ++ lib.optionals (pythonOlder "3.9") [
@@ -65,9 +66,7 @@ buildPythonPackage rec {
 
   dontUseSetuptoolsCheck = true;
 
-  # calls executable in one of the tests
   preCheck = ''
-    export PATH=$PATH:$out/bin
     export HOME=$TEMPDIR
   '';
 
@@ -78,7 +77,15 @@ buildPythonPackage rec {
     "tests/pyreverse/test_writer.py"
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
+  disabledTests = [
+    # AssertionError when self executing and checking output
+    # expected output looks like it should match though
+    "test_invocation_of_pylint_config"
+    "test_generate_rcfile"
+    "test_generate_toml_config"
+    "test_help_msg"
+    "test_output_of_callback_options"
+  ] ++ lib.optionals stdenv.isDarwin [
     "test_parallel_execution"
     "test_py3k_jobs_option"
   ];
@@ -96,6 +103,6 @@ buildPythonPackage rec {
       - epylint: Emacs and Flymake compatible Pylint
     '';
     license = licenses.gpl1Plus;
-    maintainers = with maintainers; [ totoroot ];
+    maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/pymazda/default.nix b/pkgs/development/python-modules/pymazda/default.nix
index 5ee3234b70d81..228323f94845e 100644
--- a/pkgs/development/python-modules/pymazda/default.nix
+++ b/pkgs/development/python-modules/pymazda/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pymazda";
-  version = "0.3.3";
+  version = "0.3.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-jvDjitS8r0oyANxUGbYksX7O7dbEqZeWEpYc9gABb78=";
+    sha256 = "sha256-Xq+DXrZp1NrsCgUnjaMWUoM+SDfnXK+YDX2Gcr7FKvQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 4fce3800ef1f9..51a669b9c0a88 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pymc-devs";
     repo = "pymc";
-    rev = "v${version}";
-    hash = "sha256-ZMuDQJ+bmrQlrem/OqU/hIie3ZQkAqayU3N8ZtaW7xo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-muNwq9ZSxbcFNoitP1k8LEjOxJWft9jqci5q2IGu7F8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pymemcache/default.nix b/pkgs/development/python-modules/pymemcache/default.nix
index 81c05f4e97c2e..c9d3ef94d7788 100644
--- a/pkgs/development/python-modules/pymemcache/default.nix
+++ b/pkgs/development/python-modules/pymemcache/default.nix
@@ -1,22 +1,24 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, six
-, future
 , mock
+, six
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pymemcache";
-  version = "3.5.1";
+  version = "3.5.2";
   format = "setuptools";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchFromGitHub {
     owner = "pinterest";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DKqfv5gf9gzbnEPQSzy2mAaVYJZL9jmTKyGWVzj40T4=";
+    hash = "sha256-bsiFWZHGJO/07w6mFXzf0JwftJWClE2mTv86h8zT1K0=";
   };
 
   propagatedBuildInputs = [
@@ -24,7 +26,6 @@ buildPythonPackage rec {
   ];
 
   checkInputs = [
-    future
     mock
     pytestCheckHook
   ];
@@ -38,7 +39,9 @@ buildPythonPackage rec {
     "TestClientSocketConnect"
   ];
 
-  pythonImportsCheck = [ "pymemcache" ];
+  pythonImportsCheck = [
+    "pymemcache"
+  ];
 
   meta = with lib; {
     description = "Python memcached client";
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index 6f09f2d6d9898..fe4f854e53eab 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.4.1";
+  version = "1.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PVRNfpV6LwZNzSQaDJnDztNUdzosa2yIdXRLXpPMVW4=";
+    hash = "sha256-o6qAeZSjXK/V5TKFCsnVvCbDH6lQTts1ClJ5scmDeVQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
index 26d27f4455afd..d147de042c9f7 100644
--- a/pkgs/development/python-modules/pypdf2/default.nix
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -8,11 +8,11 @@
 
 buildPythonPackage rec {
   pname = "PyPDF2";
-  version = "1.26.0";
+  version = "1.28.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "11a3aqljg4sawjijkvzhs3irpw0y67zivqpbjpm065ha5wpr13z2";
+    sha256 = "sha256-BM5CzQVweIH+28oxZHRFEYBf6MMGGK5M+yuUDjNo1a0=";
   };
 
   LC_ALL = "en_US.UTF-8";
diff --git a/pkgs/development/python-modules/pypoolstation/default.nix b/pkgs/development/python-modules/pypoolstation/default.nix
index 6ac92aeb6e9d4..5607bc0926a9e 100644
--- a/pkgs/development/python-modules/pypoolstation/default.nix
+++ b/pkgs/development/python-modules/pypoolstation/default.nix
@@ -1,5 +1,6 @@
 { lib
 , aiohttp
+, backoff
 , buildPythonPackage
 , fetchPypi
 , poetry-core
@@ -8,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pypoolstation";
-  version = "0.4.5";
+  version = "0.4.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PyPoolstation";
     inherit version;
-    sha256 = "sha256-cf2KUdvsuC7fplg7O9Jqqb86rOjNicV+vGVBwWvvs90=";
+    sha256 = "sha256-6Fdam/LS3Nicrhe5jHHvaKCpE0HigfOVszjb5c1VM3Y=";
   };
 
   nativeBuildInputs = [
@@ -25,6 +26,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiohttp
+    backoff
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/pyrogram/default.nix b/pkgs/development/python-modules/pyrogram/default.nix
index 055efe2975569..f17e42b5d46f7 100644
--- a/pkgs/development/python-modules/pyrogram/default.nix
+++ b/pkgs/development/python-modules/pyrogram/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pyrogram";
-  version = "2.0.27";
+  version = "2.0.30";
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "pyrogram";
     repo = "pyrogram";
     rev = "v${version}";
-    hash = "sha256-QYNE6VfbhlZpxc3CGitOs0zMwYI6RKQG/GhyWSNoaDI=";
+    hash = "sha256-EG9LafZHqCC4klYm5gAlShnznGoaDOGsak4cEOh2OA4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-core/default.nix b/pkgs/development/python-modules/pyroute2-core/default.nix
index 085e0059a9d55..76fb240445563 100644
--- a/pkgs/development/python-modules/pyroute2-core/default.nix
+++ b/pkgs/development/python-modules/pyroute2-core/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-core";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.core";
     inherit version;
-    hash = "sha256-uzb8nlAOHNtNq205/sJPoJtvMoo7uCFfrRQas/rv8p8=";
+    hash = "sha256-In39nxmIjd0TQZZoIv/ViA2548iTdQlkGMZg/00aEdA=";
   };
 
   # pyroute2 sub-modules have no tests
diff --git a/pkgs/development/python-modules/pyroute2-ethtool/default.nix b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
index 93699e161b819..f163336028d16 100644
--- a/pkgs/development/python-modules/pyroute2-ethtool/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ethtool/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ethtool";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ethtool";
     inherit version;
-    hash = "sha256-MwIRm/DezL7yCN682Yckxd23+iri2V6HCokF4G36apU=";
+    hash = "sha256-Cmh/6g/Nd9kHTHwYujXZufcOQhfr5opofiAECEc6O9Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipdb/default.nix b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
index 0c11d6f85cedd..a991645d4ce2c 100644
--- a/pkgs/development/python-modules/pyroute2-ipdb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipdb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipdb";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipdb";
     inherit version;
-    hash = "sha256-hKh5SFFMdhECeMyA3Quzqp7h+iQMMmCYBJEuLEq5dVs=";
+    hash = "sha256-u7u3XRO+luRUnPcOuU/XCy4XNuowGsa2g/VqoazYTVo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ipset/default.nix b/pkgs/development/python-modules/pyroute2-ipset/default.nix
index 6b21283aa9078..28c806143808f 100644
--- a/pkgs/development/python-modules/pyroute2-ipset/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ipset/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ipset";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ipset";
     inherit version;
-    hash = "sha256-nvj7b6HF/XhzqmFg6aOQKMFDEFwAcyOnoJXi/coNvG4=";
+    hash = "sha256-KKJU9iKhiXbQaDYD1a79pat8hSj6nja+uFvOUgJveGY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-ndb/default.nix b/pkgs/development/python-modules/pyroute2-ndb/default.nix
index 6965dfaf8a5a4..c43adc07647f0 100644
--- a/pkgs/development/python-modules/pyroute2-ndb/default.nix
+++ b/pkgs/development/python-modules/pyroute2-ndb/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-ndb";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.ndb";
     inherit version;
-    hash = "sha256-Oc+uaqftRH6Dw3Sa2G1rZ3Mx2u81ErKIyz8xhnA1QgI=";
+    hash = "sha256-CbH1XyYEPOZMkz6CJP0IREpJjzgeXcSDvJ9CjLrwkBo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nftables/default.nix b/pkgs/development/python-modules/pyroute2-nftables/default.nix
index 19850bb9f2fb2..f6ac1b1f22478 100644
--- a/pkgs/development/python-modules/pyroute2-nftables/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nftables/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nftables";
-  version = "0.6.12";
+  version = "0.6.13";
 
   src = fetchPypi {
     pname = "pyroute2.nftables";
     inherit version;
-    sha256 = "sha256-jy04M73r49LxfbHAuDgSaoFWmkc0O/jPJwdDlW8YCSc=";
+    sha256 = "sha256-yUvXQNULA6Go2WVPdp53r8d6deBfxYh90FUeOXD4ZZI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-nslink/default.nix b/pkgs/development/python-modules/pyroute2-nslink/default.nix
index 7213556ea950d..59eba1b76a1ec 100644
--- a/pkgs/development/python-modules/pyroute2-nslink/default.nix
+++ b/pkgs/development/python-modules/pyroute2-nslink/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-nslink";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.nslink";
     inherit version;
-    hash = "sha256-c66rD7CyHdyYACIiq1Nfu6rmUsIL9YmFp4Z1gxOFik4=";
+    hash = "sha256-hu1QbK3MsVTNJ667Pb9z67cjw5EQTn8PO8LEo5xiNmw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2-protocols/default.nix b/pkgs/development/python-modules/pyroute2-protocols/default.nix
index 700abb2266daa..24758a91ca24c 100644
--- a/pkgs/development/python-modules/pyroute2-protocols/default.nix
+++ b/pkgs/development/python-modules/pyroute2-protocols/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyroute2-protocols";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pyroute2.protocols";
     inherit version;
-    hash = "sha256-j83UNlQVjxIyKhOqDsx6yhvMZEfAh54gRjniacCpSxY=";
+    hash = "sha256-bb7y0D7If2MAHabua9EzgEL2Ic+9BHVfYaMoxDCwAtY=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index 96835a1be1f84..632fadd3c2667 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "pyroute2";
-  version = "0.6.12";
+  version = "0.6.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cnUvmx9R+4oUGgf6LpbMlAadVh/EYcNX1ep88gtPTn4=";
+    hash = "sha256-sD1JpYGUX+wrHsfR1RJcb0C6BO0Rr/yQxMrdwBniV5I=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index 3b91236a6ccfe..5153663c6e883 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -1,11 +1,10 @@
 { lib
 , buildPythonPackage
 , fetchFromGitHub
-, pytest
+, pytestCheckHook
 , six
 , enum34
 , pathlib
-, ordereddict
 , pythonOlder
 }:
 
@@ -20,23 +19,19 @@ buildPythonPackage rec {
     sha256 = "sha256-z0y4z+/JE6rZWHAvps/taDZvutyVhxxs2gMujV5rNu4=";
   };
 
-  checkInputs = [ pytest ];
+  checkInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [ six ]
-    ++ (lib.optionals (pythonOlder "3.4") [ enum34 pathlib ])
-    ++ (lib.optionals (pythonOlder "2.7") [ ordereddict ]);
+    ++ lib.optionals (pythonOlder "3.4") [ enum34 pathlib ];
 
   # Test suite is broken.
   # See https://github.com/Kronuz/pyScss/issues/415
   doCheck = false;
-  checkPhase = ''
-    py.test
-  '';
 
   meta = with lib; {
     description = "A Scss compiler for Python";
     homepage = "https://pyscss.readthedocs.org/en/latest/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyserial/default.nix b/pkgs/development/python-modules/pyserial/default.nix
index b45b031fb84a4..e6b8edb784aae 100644
--- a/pkgs/development/python-modules/pyserial/default.nix
+++ b/pkgs/development/python-modules/pyserial/default.nix
@@ -1,12 +1,23 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage }:
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchPypi
+, python
+, pythonOlder
+, isPy3k
+}:
 
 buildPythonPackage rec {
   pname = "pyserial";
-  version="3.5";
+  version = "3.5";
+  format = "setuptools";
+
+  # Supports Python 2.7 and 3.4+
+  disabled = isPy3k && pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1nyd4m4mnrz8scbfqn4zpq8gnbl4x42w5zz62vcgpzqd2waf0xrw";
+    hash = "sha256-PHfgFBcN//vYFub/wgXphC77EL6fWOwW0+hnW0klzds=";
   };
 
   patches = [
@@ -14,13 +25,22 @@ buildPythonPackage rec {
     ./002-rfc2217-timeout-setter-for-rfc2217.patch
   ];
 
-  checkPhase = "python -m unittest discover -s test";
   doCheck = !stdenv.hostPlatform.isDarwin; # broken on darwin
 
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -m unittest discover -s test
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [
+    "serial"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/pyserial/pyserial";
-    license = licenses.psfl;
     description = "Python serial port extension";
+    homepage = "https://github.com/pyserial/pyserial";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ makefu ];
   };
 }
diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix
index bf16e1522ddea..3be201d3c913d 100644
--- a/pkgs/development/python-modules/pyside2/default.nix
+++ b/pkgs/development/python-modules/pyside2/default.nix
@@ -3,11 +3,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pyside2";
-  version = "5.15.2";
+  version = "5.15.5";
 
   src = fetchurl {
     url = "https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${version}-src/pyside-setup-opensource-src-${version}.tar.xz";
-    sha256 = "060ljj1nzyp4zfz2vasbv2i7gs5rfkkjwxxbisd0fdw01d5m01mk";
+    sha256 = "0cwvw6695215498rsbm2xzkwaxdr3w7zfvy4kc62c01k6pxs881r";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
index b270fa79c88d2..aa316a2617531 100644
--- a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-splunk";
-  version = "0.3.3";
+  version = "0.3.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-splunk";
     rev = "v${version}";
-    hash = "sha256-VRHrlcty3EpGnQkVJvsNWOJSW6rNE97Lqt36HmMR53A=";
+    hash = "sha256-zsX2lycqJKRASXio8s3Cvkt1yfnBm5cwQOFAFA891GI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
index a9eda723eb2cd..7620f84a97e5a 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-pipeline-windows";
-  version = "0.1.0";
+  version = "0.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "SigmaHQ";
     repo = "pySigma-pipeline-windows";
-    rev = "v${version}";
-    hash = "sha256-BO6hiPLwEJX0sICqMZfcO4tqljdS+93Z1kG8IWsV9og=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ATDWhHY9tjuQbfIFgoGhz8qsluH9hTSI9zdPmP8GPWE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 17e6a27ea57db..e0ae16b805fed 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.6.2";
+  version = "0.6.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "SigmaHQ";
     repo = "pySigma";
-    rev = "v${version}";
-    hash = "sha256-/SZe4pzlhlkzW84WOjPOibfdznf5uLHL5RsNnT/EL9M=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-39wp12YDM0Wnl+8tNS6XsoYF+5xM7uQRpUtlo3A2PYE=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pysnmp-pysmi/default.nix b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
index 0616a7c695e9f..1a9cab98915d9 100644
--- a/pkgs/development/python-modules/pysnmp-pysmi/default.nix
+++ b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pysnmp-pysmi";
-  version = "1.1.8";
+  version = "1.1.10";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,8 +17,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pysnmp";
     repo = "pysmi";
-    rev = "v${version}";
-    hash = "sha256-nsIEZPD7bfbePZukkudP0ZH/m8Be88QkVDM5PdjNHVk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZfN0nU9IurBEjSZijC2E4UoLIM54mBFgv7rcI1v/a4Q=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 6acc5b3bf92f0..dfce66ee52df9 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -6,11 +6,11 @@
 
 buildPythonPackage rec {
   pname = "pyspark";
-  version = "3.2.1";
+  version = "3.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-C4E1kmLsbprHjDUzROfeAmAn0UDG3vlJ/w2Aq3D4mlQ=";
+    sha256 = "sha256-fr6OlQVke00STVqC/KYN/TiRAhz4rWxeyId37uzpLPc=";
   };
 
   # pypandoc is broken with pandoc2, so we just lose docs.
@@ -35,6 +35,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python bindings for Apache Spark";
     homepage = "https://github.com/apache/spark/tree/master/python";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode
+    ];
     license = licenses.asl20;
     maintainers = [ maintainers.shlevy ];
   };
diff --git a/pkgs/development/python-modules/pyspcwebgw/default.nix b/pkgs/development/python-modules/pyspcwebgw/default.nix
index e1a04a9a469d7..bc11a30334daa 100644
--- a/pkgs/development/python-modules/pyspcwebgw/default.nix
+++ b/pkgs/development/python-modules/pyspcwebgw/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pyspcwebgw";
-  version = "0.5.0";
+  version = "0.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,8 +19,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "mbrrg";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "0pc25myjc2adqcx2lbns9kw0gy17x1qjgicmfj46n6fn0c786p9v";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-Pjv8AxXuwi48Z8U+LSZZ+OhXrE3KlX7jlmnXTBLxXOs=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index 38e7e2733ead5..702f179b6dad3 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -1,5 +1,5 @@
 { lib
-, bluepy
+, bleak
 , buildPythonPackage
 , fetchFromGitHub
 , pythonOlder
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.13.3";
+  version = "0.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,11 +16,11 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = version;
-    hash = "sha256-Zgpnw4It3yyy9RQqt5SxeJXl1Z3J3Rp9baLfiw5Bgow=";
+    hash = "sha256-6u7PqYv7Q5rVzsUnoQi495svX8puBz0Oj3SGgcpJrcQ=";
   };
 
   propagatedBuildInputs = [
-    bluepy
+    bleak
   ];
 
   # Project has no tests
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index 7405df0aaf01f..4a411c7685d79 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.4.6";
+  version = "1.4.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -28,8 +28,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tenable";
     repo = "pyTenable";
-    rev = version;
-    hash = "sha256-0isXHh0b2l8Br4XXR1y8A+zu8vkJjEsJ6faNNEx12lM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-w6IM82nxv6rg3XbrHZfoN517usOOo/ly1GGgjnIdcEw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index c99e6acbfbfe7..a2fa23834a6ee 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -36,6 +36,6 @@ buildPythonPackage rec {
     homepage = "https://pypi.org/project/pytesseract/";
     license = licenses.asl20;
     description = "A Python wrapper for Google Tesseract";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-annotate/default.nix b/pkgs/development/python-modules/pytest-annotate/default.nix
index bb4089c753627..d73e3b8f8e6a3 100644
--- a/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -1,5 +1,5 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
 , buildPythonPackage
 , fetchPypi
 , pyannotate
@@ -13,7 +13,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "09269320f8d218728247436f7ade96f33cf3fe85840b40632142d9f8968c1fd0";
+    hash = "sha256-CSaTIPjSGHKCR0Nvet6W8zzz/oWEC0BjIULZ+JaMH9A=";
   };
 
   buildInputs = [
@@ -24,6 +24,11 @@ buildPythonPackage rec {
     pyannotate
   ];
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "pytest>=3.2.0,<7.0.0" "pytest>=3.2.0"
+  '';
+
   # Module has no tests
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pytest-env/default.nix b/pkgs/development/python-modules/pytest-env/default.nix
index 3e2fb0a05dc7f..72df18c884750 100644
--- a/pkgs/development/python-modules/pytest-env/default.nix
+++ b/pkgs/development/python-modules/pytest-env/default.nix
@@ -15,6 +15,6 @@ buildPythonPackage rec {
     description = "Pytest plugin used to set environment variables";
     homepage = "https://github.com/MobileDynasty/pytest-env";
     license = licenses.mit;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index 7dc70c49280f6..c83724fa8036e 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -4,19 +4,23 @@
 , httpbin
 , pytest
 , pytestCheckHook
+, pythonOlder
 , requests
 , six
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
-  version = "1.0.1";
+  version = "1.0.2";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kevin1024";
     repo = "pytest-httpbin";
     rev = "v${version}";
-    hash = "sha256-Vngd8Vum96+rdG8Nz1+aHrO6WZjiAz+0CeIovaH8N+s=";
+    hash = "sha256-S4ThQx4H3UlKhunJo35esPClZiEn7gX/Qwo4kE1QMTI=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index 1fb4023b2d9b7..6a66727b1ebb8 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-httpx";
-  version = "0.20.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "Colin-b";
     repo = "pytest_httpx";
     rev = "v${version}";
-    sha256 = "sha256-9LDbVZgTmfyYAWylUy6Q4KH2gKpAa/o4IhqQV31BVgY=";
+    hash = "sha256-mUzmtZCguaab4fAE7VcUhv+NQVYiPpxxHpiVVlzwrIo=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
index e3823c18d8953..b64f3365dd6f3 100644
--- a/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -1,20 +1,25 @@
 { lib
+, aiosmtpd
 , buildPythonPackage
 , fetchPypi
 , werkzeug
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "pytest-localserver";
-  version = "0.5.1.post0";
+  version = "0.6.0";
   format = "setuptools";
 
+  disabled = pythonOlder "3.6";
+
   src = fetchPypi {
     inherit pname version;
-    sha256 = "5ec7f8e6534cf03887af2cb59e577f169ac0e8b2fd2c3e3409280035f386d407";
+    sha256 = "sha256-3cR5q6lqfaDnocx9OjA+UFgtbVBYA+j2e4JyGPn+D2U=";
   };
 
   propagatedBuildInputs = [
+    aiosmtpd
     werkzeug
   ];
 
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
index 5aae59bc605fc..8bb8c6d063749 100644
--- a/pkgs/development/python-modules/pytest-randomly/default.nix
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "pytest-randomly";
-  version = "3.11.0";
+  version = "3.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     repo = pname;
     owner = "pytest-dev";
     rev = version;
-    hash = "sha256-NoYpMpFWz52Z0+KIUumUFp3xMPA1jGw8COojU+bsgHc=";
+    hash = "sha256-n/Xp/HghqcQUreez+QbR3Mi5hE1U4zoOJCdFqD+pVBk=";
   };
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index b1df1ceaad678..4b88991bb7413 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-subtests";
-  version = "0.7.0";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-lcRMd+P77emEi7iMqQs4SBX8uoCQ75qfVWWasWOxaBw=";
+    sha256 = "sha256-Rus3YCLpJpUIFszCNQLeMnetzBOWZS3bMyjOAokFLE0=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index d1b5d632b302c..a805c3e6c6236 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -38,6 +38,6 @@ buildPythonPackage rec {
     description = "Add .env support to your django/flask apps in development and deployments";
     homepage = "https://github.com/theskumar/python-dotenv";
     license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ earvstedt ];
+    maintainers = with maintainers; [ erikarvstedt ];
   };
 }
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
index 7c1d64fc827db..dad933966aead 100644
--- a/pkgs/development/python-modules/python-jenkins/default.nix
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -10,8 +10,8 @@
 , multi_key_dict
 , testscenarios
 , requests
-, unittest2
 , requests-mock
+, stestr
 }:
 
 buildPythonPackage rec {
@@ -33,16 +33,16 @@ buildPythonPackage rec {
   buildInputs = [ mock ];
   propagatedBuildInputs = [ pbr pyyaml setuptools six multi_key_dict requests ];
 
-  checkInputs = [ unittest2 testscenarios requests-mock ];
-  checkPhase = ''
-    unit2
-  '';
+   checkInputs = [ stestr testscenarios requests-mock ];
+   checkPhase = ''
+     stestr run
+   '';
 
   meta = with lib; {
     description = "Python bindings for the remote Jenkins API";
     homepage = "https://pypi.python.org/pypi/python-jenkins";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ gador ];
   };
 
 }
diff --git a/pkgs/development/python-modules/python-ldap-test/default.nix b/pkgs/development/python-modules/python-ldap-test/default.nix
index 379aaa5ab6432..ed7a31b0cfe77 100644
--- a/pkgs/development/python-modules/python-ldap-test/default.nix
+++ b/pkgs/development/python-modules/python-ldap-test/default.nix
@@ -17,6 +17,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Tool for testing code speaking with LDAP server";
     homepage = "https://github.com/zoldar/python-ldap-test";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode
+    ];
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
   };
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index 852b66b44e5f1..3338fb6fa7d0d 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -1,6 +1,5 @@
 { lib
 , stdenv
-, python
 , buildPythonPackage
 , fetchFromGitHub
 , substituteAll
@@ -10,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "python-magic";
-  version = "0.4.26";
+  version = "0.4.27";
 
   src = fetchFromGitHub {
     owner = "ahupp";
     repo = "python-magic";
     rev = version;
-    sha256 = "sha256-RcKldMwSRroNZNEl0jwuJG9C+3OIPBzk+CjqkxKK/eY=";
+    sha256 = "sha256-fZ+5xJ3P0EYK+6rQ8VzXv2zckKfEH5VUdISIR6ybIfQ=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/python-olm/default.nix b/pkgs/development/python-modules/python-olm/default.nix
index d38c33df8c81f..f430517be7590 100644
--- a/pkgs/development/python-modules/python-olm/default.nix
+++ b/pkgs/development/python-modules/python-olm/default.nix
@@ -5,6 +5,8 @@ buildPythonPackage {
   pname = "python-olm";
   inherit (olm) src version;
 
+  disabled = !isPy3k;
+
   sourceRoot = "source/python";
   buildInputs = [ olm ];
 
@@ -15,7 +17,8 @@ buildPythonPackage {
   propagatedBuildInputs = [
     cffi
     future
-  ] ++ lib.optionals (!isPy3k) [ typing ];
+    typing
+  ];
 
   propagatedNativeBuildInputs = [
     cffi
diff --git a/pkgs/development/python-modules/python-rapidjson/default.nix b/pkgs/development/python-modules/python-rapidjson/default.nix
index 35d11e981e4d6..a9423a7a58df1 100644
--- a/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -1,37 +1,58 @@
 { lib
 , buildPythonPackage
+, fetchFromGitHub
+, fetchpatch
 , fetchPypi
 , pythonOlder
-, pytest
+, rapidjson
+, pytestCheckHook
 , pytz
 , glibcLocales
 }:
 
-buildPythonPackage rec {
+let
+  rapidjson' = rapidjson.overrideAttrs (old: {
+    version = "unstable-2022-05-24";
+    src = fetchFromGitHub {
+      owner = "Tencent";
+      repo = "rapidjson";
+      rev = "232389d4f1012dddec4ef84861face2d2ba85709";
+      hash = "sha256-RLvDcInUa8E8DRA4U/oXEE8+TZ0SDXXDU/oWvpfDWjw=";
+    };
+    patches = [
+      (fetchpatch {
+        url = "https://git.alpinelinux.org/aports/plain/community/rapidjson/do-not-include-gtest-src-dir.patch";
+        hash = "sha256-BjSZEwfCXA/9V+kxQ/2JPWbc26jQn35CfN8+8NW24s4=";
+      })
+    ];
+  });
+in buildPythonPackage rec {
   version = "1.6";
   pname = "python-rapidjson";
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-GJzxqWv5/NhtADYPFa12qDzgiJuK6NHLD9srKZXlocg=";
   };
 
-  LC_ALL="en_US.utf-8";
-  buildInputs = [ glibcLocales ];
+  setupPyBuildFlags = [
+    "--rj-include-dir=${lib.getDev rapidjson'}/include"
+  ];
 
-  # buildInputs = [ ];
-  checkInputs = [ pytest pytz ];
-  # propagatedBuildInputs = [ ];
+  checkInputs = [
+    pytestCheckHook
+    pytz
+  ];
 
-  checkPhase = ''
-    pytest tests
-  '';
+  disabledTestPaths = [
+    "benchmarks"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/python-rapidjson/python-rapidjson";
-    description = "Python wrapper around rapidjson ";
+    description = "Python wrapper around rapidjson";
     license = licenses.mit;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index 2f22a20afb357..5f985f0fafdda 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -1,6 +1,6 @@
 { lib
 , buildPythonPackage
-, fetchPypi
+, fetchFromGitHub
 , pytestCheckHook
 , pythonOlder
 , text-unidecode
@@ -9,14 +9,16 @@
 
 buildPythonPackage rec {
   pname = "python-slugify";
-  version = "6.1.1";
+  version = "6.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-AAAzl/TjFBTpIs5WezpNoozxQ2pT0zLJrutRx9jEaf0=";
+  src = fetchFromGitHub {
+    owner = "un33k";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-JGjUNBEMuICsaClQGDSGX4qFRjecVKzmpPNRUTvfwho=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix
index 3b2d924695ace..b00cc63da1fab 100644
--- a/pkgs/development/python-modules/pytibber/default.nix
+++ b/pkgs/development/python-modules/pytibber/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "pytibber";
-  version = "0.22.3";
+  version = "0.23.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Danielhiversen";
     repo = "pyTibber";
     rev = version;
-    hash = "sha256-tM8Uu/TpP5a7y+ePFko0bMoZJWG2efYA861Ez8dPeFY=";
+    hash = "sha256-DMYSv66PVBuOHuIio06OLrtGP0q7PeuDGKK+OznaLec=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pytorch/bin.nix b/pkgs/development/python-modules/pytorch/bin.nix
index daa82bba580c7..e2427ac22df3a 100644
--- a/pkgs/development/python-modules/pytorch/bin.nix
+++ b/pkgs/development/python-modules/pytorch/bin.nix
@@ -75,6 +75,7 @@ in buildPythonPackage {
     # 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 ];
     platforms = platforms.linux ++ platforms.darwin;
     hydraPlatforms = []; # output size 3.2G on 1.11.0
     maintainers = with maintainers; [ junjihashimoto ];
diff --git a/pkgs/development/python-modules/pytorch/default.nix b/pkgs/development/python-modules/pytorch/default.nix
index d6e78c31d753a..76a835910392d 100644
--- a/pkgs/development/python-modules/pytorch/default.nix
+++ b/pkgs/development/python-modules/pytorch/default.nix
@@ -10,6 +10,7 @@
 
   # Build inputs
   numactl,
+  CoreServices, libobjc,
 
   # Propagated build inputs
   numpy, pyyaml, cffi, click, typing-extensions,
@@ -145,7 +146,7 @@ in buildPythonPackage rec {
     # https://github.com/pytorch/pytorch/issues/70297
     # https://github.com/google/breakpad/commit/605c51ed96ad44b34c457bbca320e74e194c317e
     ./breakpad-sigstksz.patch
-  ] ++ lib.optionals stdenv.isDarwin [
+  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
     # pthreadpool added support for Grand Central Dispatch in April
     # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
     # that is available starting with macOS 10.13. However, our current
@@ -176,6 +177,10 @@ in buildPythonPackage rec {
   USE_MKLDNN = setBool mklDnnSupport;
   USE_MKLDNN_CBLAS = setBool mklDnnSupport;
 
+  # Avoid using pybind11 from git submodule
+  # Also avoids pytorch exporting the headers of pybind11
+  USE_SYSTEM_BIND11 = true;
+
   preBuild = ''
     export MAX_JOBS=$NIX_BUILD_CORES
     ${python.interpreter} setup.py build --cmake-only
@@ -223,9 +228,10 @@ in buildPythonPackage rec {
     removeReferencesTo
   ] ++ lib.optionals cudaSupport [ cudatoolkit_joined ];
 
-  buildInputs = [ blas blas.provider ]
+  buildInputs = [ blas blas.provider pybind11 ]
     ++ lib.optionals cudaSupport [ cudnn magma nccl ]
-    ++ lib.optionals stdenv.isLinux [ numactl ];
+    ++ lib.optionals stdenv.isLinux [ numactl ]
+    ++ lib.optionals stdenv.isDarwin [ CoreServices libobjc ];
 
   propagatedBuildInputs = [
     cffi
@@ -291,15 +297,6 @@ in buildPythonPackage rec {
 
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
 
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_observers.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_observers.dylib
-
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_module_test_dynamic.dylib
-
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libcaffe2_detectron_ops.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libcaffe2_detectron_ops.dylib
-
     install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
     install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
   '';
@@ -315,12 +312,11 @@ in buildPythonPackage rec {
   };
 
   meta = with lib; {
-    # darwin: error: use of undeclared identifier 'noU'; did you mean 'no'?
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     description = "Open source, prototype-to-production deep learning platform";
     homepage    = "https://pytorch.org/";
     license     = licenses.bsd3;
-    platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
     maintainers = with maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
+    platforms   = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index ffd7a89dbb0ce..ce8694be61ba8 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyupgrade";
-  version = "2.32.1";
+  version = "2.34.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "asottile";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-fjahaMetgZaH+IzdyaZSkVbasgc0bqQL+1ae0OJriT0=";
+    sha256 = "sha256-3Go0w/7jcv1XzZ7ypSdPzMZgzEj2+sMlrIm4X1r34MA=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index b7bff273b231c..8710fea109f02 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.6";
+  version = "9.2.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-I2ZQJ/CDvNq5uJoLT9SHDGzeuI32YUy/6fMSNR9WM8I=";
+    hash = "sha256-vSVkredOekqUAre38jDCE8f8OXd0cNmZ2SmpEQ7+I28=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index 60fcce9442a81..62de8e72b4c47 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -1,46 +1,68 @@
-{ buildPythonPackage
+{ lib
+, buildPythonPackage
 , fetchPypi
+, py
 , pytestCheckHook
+, python
+, pythonOlder
 , tornado
 , zeromq
-, py
-, python
 }:
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "22.3.0";
+  version = "23.0.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c";
+    hash = "sha256-pF9cBHfRLfBe8uKSK0m3wK6dD0/5trsNZmVY3w7zcSI=";
   };
 
+  buildInputs = [
+    zeromq
+  ];
+
+  propagatedBuildInputs = [
+    py
+  ];
+
   checkInputs = [
     pytestCheckHook
     tornado
   ];
-  buildInputs = [ zeromq ];
-  propagatedBuildInputs = [ py ];
 
-  # failing tests
-  disabledTests = [
-    "test_socket" # hangs
-    "test_current"
-    "test_instance"
-    "test_callable_check"
-    "test_on_recv_basic"
-    "test_on_recv_wake"
-    "test_monitor" # https://github.com/zeromq/pyzmq/issues/1272
-    "test_cython"
-    "test_asyncio" # hangs
-    "test_mockable" # fails
+  pythonImportsCheck = [
+    "zmq"
   ];
 
   pytestFlagsArray = [
     "$out/${python.sitePackages}/zmq/tests/" # Folder with tests
   ];
 
+  disabledTests = [
+    # Tests hang
+    "test_socket"
+    "test_monitor"
+    # https://github.com/zeromq/pyzmq/issues/1272
+    "test_cython"
+    # Test fails
+    "test_mockable"
+    # Issues with the sandbox
+    "TestFutureSocket"
+    "TestIOLoop"
+    "TestPubLog"
+  ];
+
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
+
+  meta = with lib; {
+    description = "Python bindings for ØMQ";
+    homepage = "https://pyzmq.readthedocs.io/";
+    license = with licenses; [ bsd3 /* or */ lgpl3Only ];
+    maintainers = with maintainers; [ ];
+  };
 }
diff --git a/pkgs/development/python-modules/qcelemental/default.nix b/pkgs/development/python-modules/qcelemental/default.nix
index c5e9c92010ebb..d40252c563b73 100644
--- a/pkgs/development/python-modules/qcelemental/default.nix
+++ b/pkgs/development/python-modules/qcelemental/default.nix
@@ -9,11 +9,11 @@
 
 buildPythonPackage rec {
   pname = "qcelemental";
-  version = "0.24.0";
+  version = "0.25.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-XcsR89tu26EG5AcXqmndkESLGWZ8eKmTkjaLziosawE=";
+    sha256 = "sha256-v1yu6yBEtgVsheku/8YaIaXrsVgMzcFlWAuySPhYgyQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiling/default.nix b/pkgs/development/python-modules/qiling/default.nix
index 729954328140d..fcceaa3d007fc 100644
--- a/pkgs/development/python-modules/qiling/default.nix
+++ b/pkgs/development/python-modules/qiling/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "qiling";
-  version = "1.4.2";
+  version = "1.4.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-myUGzNP4bf90d2gY5ZlYbVlTG640dj/Qha8/aMydvuw=";
+    hash = "sha256-sndRKknfY3LgqUf6FOobwczIStjzZkudVgUR1EQSyeU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/qiskit-finance/default.nix b/pkgs/development/python-modules/qiskit-finance/default.nix
index 2c544d5a92ed5..ad80eb3698faf 100644
--- a/pkgs/development/python-modules/qiskit-finance/default.nix
+++ b/pkgs/development/python-modules/qiskit-finance/default.nix
@@ -22,15 +22,15 @@
 
 buildPythonPackage rec {
   pname = "qiskit-finance";
-  version = "0.3.1";
+  version = "0.3.2";
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "qiskit";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-wnto3IqrJFAqIv6QAXe3BB9fvXQXe2fw/iUZe3+198M=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-ZmK4nYuv3DBJ0Ah819zGAh7inGVBWDnzJvl0FABJ6KU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/qiskit-nature/default.nix b/pkgs/development/python-modules/qiskit-nature/default.nix
index 7b652c5072230..ab794c9e9643a 100644
--- a/pkgs/development/python-modules/qiskit-nature/default.nix
+++ b/pkgs/development/python-modules/qiskit-nature/default.nix
@@ -64,6 +64,10 @@ buildPythonPackage rec {
     homepage = "https://qiskit.org";
     downloadPage = "https://github.com/QISKit/qiskit-nature/releases";
     changelog = "https://qiskit.org/documentation/release_notes.html";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # drivers/gaussiand/gauopen/*.so
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index 75c186fc83510..e99deef489f32 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -1,70 +1,91 @@
-{ lib, stdenv, fetchFromGitHub, buildPythonPackage, python, packaging, numpy
-, cython, scipy, matplotlib, pytestCheckHook, pytest-rerunfailures
-, doCheck ? false
+{ lib
+, stdenv
+, buildPythonPackage
+, cvxopt
+, cvxpy
+, cython
+, doCheck ? true
+, fetchFromGitHub
+, matplotlib
+, numpy
+, packaging
+, pytest-rerunfailures
+, pytestCheckHook
+, python
+, pythonOlder
+, scipy
 }:
 
-let
-  self = buildPythonPackage rec {
-    pname = "qutip";
-    version = "4.6.3";
+buildPythonPackage rec {
+  pname = "qutip";
+  version = "4.7.0";
+  format = "setuptools";
 
-    src = fetchFromGitHub {
-      owner = pname;
-      repo = pname;
-      rev = "v${version}";
-      sha256 = "sha256-11K7Tl7PE98nM2vGsa+OKIJYu0Wmv8dT700PDt9RRVk=";
-    };
+  disabled = pythonOlder "3.7";
 
-    # QuTiP says it needs specific (old) Numpy versions. We overwrite them here
-    # as the tests work perfectly fine with up-to-date packages.
-    postPatch = ''
-      substituteInPlace setup.cfg --replace "numpy>=1.16.6,<1.20" "numpy>=1.16.6"
-    '';
+  src = fetchFromGitHub {
+    owner = pname;
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-wGr6uTM6pFL2nvN4zdqPdEO8O3kjrRtKWx8luL1t9Sw=";
+  };
 
-    # Disabling OpenMP support on Darwin.
-    setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) "--with-openmp";
+  nativeBuildInputs = [
+    cython
+  ];
 
-    propagatedBuildInputs = [
-      packaging
-      numpy
-      cython
-      scipy
-      matplotlib
-    ];
+  propagatedBuildInputs = [
+    numpy
+    packaging
+    scipy
+  ];
 
-    checkInputs = [
-      pytestCheckHook
-      pytest-rerunfailures
-    ];
+  checkInputs = [
+    pytestCheckHook
+    pytest-rerunfailures
+  ] ++ passthru.optional-dependencies.graphics;
+
+  # Disabling OpenMP support on Darwin.
+  setupPyGlobalFlags = lib.optional (!stdenv.isDarwin) [
+    "--with-openmp"
+  ];
 
-    # test suite is very cpu intensive
-    inherit doCheck;
-    # - QuTiP tries to access the home directory to create an rc file for us.
-    # This of course fails and therefore, we provide a writable temp dir as HOME.
-    # - 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
-    # of the source tree.
-    # - For running tests, see:
-    # https://qutip.org/docs/latest/installation.html#verifying-the-installation
-    checkPhase = ''
-      export OMP_NUM_THREADS=$NIX_BUILD_CORES
-      export HOME=$(mktemp -d)
-      mkdir -p test && cd test
-      ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
-    '';
+  # 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
+  # of the source tree.
+  preCheck = ''
+    export HOME=$(mktemp -d);
+    export OMP_NUM_THREADS=$NIX_BUILD_CORES
+    mkdir -p test && cd test
+  '';
 
-    pythonImportsCheck = [ "qutip" ];
+  # For running tests, see https://qutip.org/docs/latest/installation.html#verifying-the-installation
+  checkPhase = ''
+    runHook preCheck
+    ${python.interpreter} -c "import qutip.testing; qutip.testing.run()"
+    runHook postCheck
+  '';
 
-    passthru.tests = {
-      all-tests = self.override { doCheck = true; };
-    };
+  pythonImportsCheck = [
+    "qutip"
+  ];
+
+  passthru.optional-dependencies = {
+    graphics = [
+      matplotlib
+    ];
+    semidefinite = [
+      cvxpy
+      cvxopt
+    ];
+  };
 
-    meta = with lib; {
-      broken = (stdenv.isLinux && stdenv.isAarch64);
-      description = "Open-source software for simulating the dynamics of closed and open quantum systems";
-      homepage = "https://qutip.org/";
-      license = licenses.bsd3;
-      maintainers = [ maintainers.fabiangd ];
-    };
+  meta = with lib; {
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    description = "Open-source software for simulating the dynamics of closed and open quantum systems";
+    homepage = "https://qutip.org/";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fabiangd ];
   };
-in self
+}
diff --git a/pkgs/development/python-modules/railroad-diagrams/default.nix b/pkgs/development/python-modules/railroad-diagrams/default.nix
index 57c07e0dc48b1..55b964fb6ad27 100644
--- a/pkgs/development/python-modules/railroad-diagrams/default.nix
+++ b/pkgs/development/python-modules/railroad-diagrams/default.nix
@@ -1,24 +1,30 @@
 { lib
 , buildPythonPackage
 , fetchPypi
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "railroad-diagrams";
-  version = "1.1.1";
+  version = "2.0.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "8a1ec227666be2000e76794aa740f77987f1586077aae4d090d2633b3064c976";
+    hash = "sha256-dBP/oZRYO9UQ78PkZo9h1aOL7soYa7fDbuptDW8D+0U=";
   };
 
-  # this is a dependency of pyparsing, which is a dependency of pytest
+  # This is a dependency of pyparsing, which is a dependency of pytest
   doCheck = false;
 
-  pythonImportsCheck = [ "railroad" ];
+  pythonImportsCheck = [
+    "railroad"
+  ];
 
   meta = with lib; {
-    description = "Generate SVG railroad syntax diagrams, like on JSON.org";
+    description = "Module to generate SVG railroad syntax diagrams";
     homepage = "https://github.com/tabatkins/railroad-diagrams";
     license = licenses.cc0;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 45929e3c991d3..f3c4b77a70956 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -4,8 +4,10 @@
 , fetchFromGitHub
 , cmake
 , cython_3
+, ninja
 , rapidfuzz-capi
 , scikit-build
+, setuptools
 , jarowinkler
 , numpy
 , hypothesis
@@ -18,22 +20,26 @@
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "2.0.11";
+  version = "2.0.15";
 
   disabled = pythonOlder "3.6";
 
+  format = "pyproject";
+
   src = fetchFromGitHub {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "v${version}";
-    hash = "sha256-npmdnUMrmbHgUgqMxKBytgtL1weWw6BjVNmBkYSKNMw=";
+    hash = "sha256-wn77gA6UCgsdDf3FZgjrA5gSWpWJg3YoUhx88X7aVcM=";
   };
 
   nativeBuildInputs = [
     cmake
     cython_3
+    ninja
     rapidfuzz-capi
     scikit-build
+    setuptools
   ];
 
   dontUseCmakeConfigure = true;
@@ -70,6 +76,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Rapid fuzzy string matching";
     homepage = "https://github.com/maxbachmann/RapidFuzz";
+    changelog = "https://github.com/maxbachmann/RapidFuzz/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/raven/default.nix b/pkgs/development/python-modules/raven/default.nix
index 45a408640b520..cdcec2bf249d0 100644
--- a/pkgs/development/python-modules/raven/default.nix
+++ b/pkgs/development/python-modules/raven/default.nix
@@ -1,5 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, contextlib2, blinker
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, blinker
+, flask
 }:
 
 buildPythonPackage rec {
@@ -13,14 +16,17 @@ buildPythonPackage rec {
     sha256 = "16x9ldl8cy7flw5kh7qmgbmflqyf210j3q6ac2lw61sgwajsnvw8";
   };
 
-  # way too many dependencies to run tests
-  # see https://github.com/getsentry/raven-python/blob/master/setup.py
+  # requires outdated dependencies which have no official support for python 3.4
   doCheck = false;
 
-  propagatedBuildInputs = [ blinker ] ++ lib.optionals (!isPy3k) [ contextlib2 ];
+  pythonImportsCheck = [ "raven" ];
+
+  passthru.optional-dependencies = {
+    flask = [ blinker flask ];
+  };
 
   meta = {
-    description = "A Python client for Sentry (getsentry.com)";
+    description = "Legacy Python client for Sentry (getsentry.com) — replaced by sentry-python";
     homepage = "https://github.com/getsentry/raven-python";
     license = [ lib.licenses.bsd3 ];
     maintainers = with lib.maintainers; [ primeos ];
diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix
index 1ec7301dabd12..f98e4d992a328 100644
--- a/pkgs/development/python-modules/rdkit/default.nix
+++ b/pkgs/development/python-modules/rdkit/default.nix
@@ -27,21 +27,20 @@ let
     yaehmop = fetchFromGitHub {
       owner = "greglandrum";
       repo = "yaehmop";
-      rev = "1b13b52e2738a77715b1bad876e3b4e93f2b5269";
-      sha256 = "1jp7wz8win4mgwxkaz2gnrgsaaqgln04n2lwgfr96isdv1klf62d";
+      rev = "cfb5aeebbdf5ae93c4f4eeb14c7a507dea54ae9e";
+      sha256 = "sha256-QMnc5RyHlY3giw9QmrkGntiA+Srs7OhCIKs9GGo5DfQ=";
+    };
+    freesasa = fetchFromGitHub {
+      owner = "mittinatten";
+      repo = "freesasa";
+      rev = "2.1.1";
+      sha256 = "sha256-fUJvLDTVhpBWl9MavZwp0kAO5Df1QuHEKqe20CXNfcg=";
     };
-    freesasa = fetchFromGitHub
-      {
-        owner = "mittinatten";
-        repo = "freesasa";
-        rev = "2.0.3";
-        sha256 = "0x686zm9fpyg5647fdgxnxgbwav99nc6ymh4bmkr2063yyda4kzc";
-      };
   };
 in
 buildPythonPackage rec {
   pname = "rdkit";
-  version = "2020.09.5";
+  version = "2022.03.3";
 
   src =
     let
@@ -51,7 +50,7 @@ buildPythonPackage rec {
       owner = pname;
       repo = pname;
       rev = "Release_${versionTag}";
-      sha256 = "1ycbjia223d0w9xiwk36x2vkdidsx198rzkfyxz48cbax9vvklzq";
+      sha256 = "sha256-YZq1JKDlCQVvjv7+XpEhD/wfFcQ5m3i5VO4rNQ3ONRQ=";
     };
 
   unpackPhase = ''
@@ -114,6 +113,7 @@ buildPythonPackage rec {
     "-DEIGEN3_INCLUDE_DIR=${eigen}/include/eigen3"
     "-DRDK_INSTALL_INTREE=OFF"
     "-DRDK_INSTALL_STATIC_LIBS=OFF"
+    "-DRDK_INSTALL_COMIC_FONTS=OFF"
     "-DRDK_BUILD_INCHI_SUPPORT=ON"
     "-DRDK_BUILD_AVALON_SUPPORT=ON"
     "-DRDK_BUILD_FREESASA_SUPPORT=ON"
diff --git a/pkgs/development/python-modules/rencode/default.nix b/pkgs/development/python-modules/rencode/default.nix
index 464bbd78515c1..86192cbc29caa 100644
--- a/pkgs/development/python-modules/rencode/default.nix
+++ b/pkgs/development/python-modules/rencode/default.nix
@@ -2,25 +2,37 @@
 , buildPythonPackage
 , fetchFromGitHub
 , cython
+, pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "rencode";
-  version = "1.0.6";
+  version = "unstable-2021-08-10";
+
+  format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "aresch";
     repo = "rencode";
-    rev = "v${version}";
-    sha256 = "sha256-PGjjrZuoGYSPMNqXG1KXoZnOoWIe4g6s056jFhqrJ60=";
+    rev = "572ff74586d9b1daab904c6f7f7009ce0143bb75";
+    hash = "sha256-cL1hV3RMDuSdcjpPXXDYIEbzQrxiPeRs82PU8HTEQYk=";
   };
 
-  buildInputs = [ cython ];
+  nativeBuildInputs = [ cython ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    # import from $out
+    rm -r rencode
+  '';
 
   meta = with lib; {
     homepage = "https://github.com/aresch/rencode";
     description = "Fast (basic) object serialization similar to bencode";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/repoze_lru/default.nix b/pkgs/development/python-modules/repoze_lru/default.nix
index e986f47e6e0da..cfe19f6b6376d 100644
--- a/pkgs/development/python-modules/repoze_lru/default.nix
+++ b/pkgs/development/python-modules/repoze_lru/default.nix
@@ -12,11 +12,12 @@ buildPythonPackage rec {
     sha256 = "0429a75e19380e4ed50c0694e26ac8819b4ea7851ee1fc7583c8572db80aff77";
   };
 
+  pythonImportsCheck = [ "repoze.lru" ];
+
   meta = with lib; {
     description = "A tiny LRU cache implementation and decorator";
     homepage = "http://www.repoze.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 559ce70533ce5..be996151f9844 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -1,5 +1,6 @@
 { lib
 , stdenv
+, pythonOlder
 , brotli
 , brotlicffi
 , buildPythonPackage
@@ -21,6 +22,8 @@ buildPythonPackage rec {
   pname = "requests";
   version = "2.27.1";
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-aNfFb9WomZiHco7zBKbRLtx7508c+kdxT8i0FFJcmmE=";
@@ -32,23 +35,29 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
+    brotlicffi
     certifi
+    charset-normalizer
     idna
     urllib3
-    chardet
-  ] ++ lib.optionals isPy3k [
-    brotlicffi
-    charset-normalizer
-  ] ++ lib.optionals isPy27 [
-    brotli
   ];
 
+  passthru.optional-dependencies = {
+    security = [];
+    socks = [
+      pysocks
+    ];
+    use_chardet_on_py3 = [
+      chardet
+    ];
+  };
+
   checkInputs = [
-    pysocks
     pytest-mock
     pytest-xdist
     pytestCheckHook
-  ];
+  ]
+  ++ passthru.optional-dependencies.socks;
 
   # AttributeError: 'KeywordMapping' object has no attribute 'get'
   doCheck = !isPy27;
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 7f9372dcdb719..1343aa6cfd011 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "responses";
-  version = "0.20.0";
+  version = "0.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = pname;
     rev = version;
-    hash = "sha256-dhIKMQXBJfZGIanJN1bFmlr/FYL1UYgYKGYaSznKhZs=";
+    hash = "sha256-qYohrXrQkUBPo7yC+ZOwidDaCg/2nteXKAOCUvR4k2Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 88e94d8927a0a..4a680cde242f5 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.3.7";
+  version = "0.3.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-fihcDMQzFuQGOrADxjUcEcPqiolpQgPwyFNW0ZVXwhU=";
+    hash = "sha256-/Xw3UnxtQ4G92Urplz5isDN12QVOPtZKr7LjqsNVmrc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index fefec51c2bcd4..23c113bc46dd6 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -8,6 +8,7 @@
 , fetchFromGitHub
 , poetry-core
 , pytest-asyncio
+, pytest-freezegun
 , pytestCheckHook
 , pythonOlder
 , xmltodict
@@ -43,8 +44,9 @@ buildPythonPackage rec {
 
   checkInputs = [
     aresponses
-    pytestCheckHook
     pytest-asyncio
+    pytest-freezegun
+    pytestCheckHook
   ];
 
   postPatch = ''
@@ -59,6 +61,9 @@ buildPythonPackage rec {
     "test_get_dns_state"
     # Assertion issue
     "test_guess_stream_format"
+    "test_update_tv"
+    "test_get_apps_single_app"
+    "test_get_tv_channels_single_channel"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/ropgadget/default.nix b/pkgs/development/python-modules/ropgadget/default.nix
index 4d0a4aa94f11e..65a80e399d1e3 100644
--- a/pkgs/development/python-modules/ropgadget/default.nix
+++ b/pkgs/development/python-modules/ropgadget/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ropgadget";
-  version = "6.7";
+  version = "6.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,8 +15,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "JonathanSalwan";
     repo = "ROPgadget";
-    rev = "v${version}";
-    hash = "sha256-zOTbncsOvmLQMZGpcRLviSZP/d1cQTQHXCLUKyEgVBk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hnqjyZC3RJNQf8JdtaQ5L3PU+96p4cxdd+P4YlW9jjI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/routes/default.nix b/pkgs/development/python-modules/routes/default.nix
index 1176fcb4eb093..ea548fcfe56f9 100644
--- a/pkgs/development/python-modules/routes/default.nix
+++ b/pkgs/development/python-modules/routes/default.nix
@@ -5,30 +5,29 @@
 , six
 , soupsieve
 , webob
-, coverage
-, webtest
 }:
 
 buildPythonPackage rec {
-  pname = "Routes";
+  pname = "routes";
   version = "2.5.1";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "Routes";
+    inherit version;
     sha256 = "b6346459a15f0cbab01a45a90c3d25caf980d4733d628b4cc1952b865125d053";
   };
 
   propagatedBuildInputs = [ repoze_lru six soupsieve webob ];
+
   # incompatible with latest soupsieve
   doCheck = false;
-  checkInputs = [ coverage soupsieve webtest ];
 
   pythonImportsCheck = [ "routes" ];
 
   meta = with lib; {
-    description = "A Python re-implementation of the Rails routes system for mapping URLs to application actions";
-    homepage = "http://routes.groovie.org/";
+    description = "Re-implementation of the Rails routes system for mapping URLs to application actions";
+    homepage = "https://github.com/bbangert/routes";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/rpi-gpio/default.nix b/pkgs/development/python-modules/rpi-gpio/default.nix
new file mode 100644
index 0000000000000..2618f9f0ea916
--- /dev/null
+++ b/pkgs/development/python-modules/rpi-gpio/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "rpi-gpio";
+  version = "0.7.1";
+
+  src = fetchPypi {
+    pname = "RPi.GPIO";
+    inherit version;
+    sha256 = "sha256-zWHEsDw3tiu6SlrP6phidJwzxhjgKV5+kKpHE/s3O3A=";
+  };
+
+  # Tests disable because they do a platform check which requires running on a
+  # Raspberry Pi
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://sourceforge.net/p/raspberry-gpio-python";
+    description = "Python module to control the GPIO on a Raspberry Pi";
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpi-gpio2/default.nix b/pkgs/development/python-modules/rpi-gpio2/default.nix
new file mode 100644
index 0000000000000..3adf7a35ea74c
--- /dev/null
+++ b/pkgs/development/python-modules/rpi-gpio2/default.nix
@@ -0,0 +1,28 @@
+{ lib, libgpiod, buildPythonPackage, fetchurl }:
+
+buildPythonPackage rec {
+  pname = "rpi-gpio2";
+  version = "0.3.0a3";
+
+  # PyPi source does not work for some reason
+  src = fetchurl {
+    url = "https://github.com/underground-software/RPi.GPIO2/archive/refs/tags/v${version}.tar.gz";
+    sha256 = "sha256-AY1AD2Yu66eJUqB4OStZnUeEhmISLVRrTOAcmEHjuOM=";
+  };
+
+  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/rplcd/default.nix b/pkgs/development/python-modules/rplcd/default.nix
new file mode 100644
index 0000000000000..c404317f027ea
--- /dev/null
+++ b/pkgs/development/python-modules/rplcd/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "rplcd";
+  version = "1.3.0";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "RPLCD";
+    sha256 = "sha256-AIEiL+IPU76DF+P08c5qokiJcZdNNDJ/Jjng2Z292LY=";
+  };
+
+  # Disable check because it depends on a GPIO library
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/dbrgn/RPLCD";
+    description = ''
+      Raspberry Pi LCD library for the widely used Hitachi HD44780 controller
+    '';
+    license = licenses.mit;
+    maintainers = with maintainers; [ onny ];
+  };
+}
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index 4bfe4be5e8cd0..18332b2341543 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -1,19 +1,24 @@
-{ stdenv
-, lib
+{ lib
+, stdenv
+, aiobotocore
+, aiohttp
 , buildPythonPackage
-, fetchPypi
 , docutils
-, aiobotocore
+, fetchPypi
 , fsspec
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2022.2.0";
+  version = "2022.5.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RhHQ9+QeW8nawwCQcOCtN9qHpC9t73W0gTwG9+QEpzg=";
+    hash = "sha256-tAo8v6+Ay6uvDjMjMRF8ysaSkO/aw0cYT7OrYAP3BGU=";
   };
 
   buildInputs = [
@@ -22,6 +27,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     aiobotocore
+    aiohttp
     fsspec
   ];
 
@@ -30,7 +36,9 @@ buildPythonPackage rec {
   # pythonPackages.
   doCheck = false;
 
-  pythonImportsCheck = [ "s3fs" ];
+  pythonImportsCheck = [
+    "s3fs"
+  ];
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix
index 8b0b0a9e24480..edc339987dad5 100644
--- a/pkgs/development/python-modules/sabyenc3/default.nix
+++ b/pkgs/development/python-modules/sabyenc3/default.nix
@@ -6,14 +6,14 @@
 
 buildPythonPackage rec {
   pname = "sabyenc3";
-  version = "5.1.7";
+  version = "5.4.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pewB7JAQ/4KitGFrHX52Gn02my/bOcQCz79cwh6vElk=";
+    hash = "sha256-6wXwmL1RCZ72KSqJgMjO3grvuDLWyMsbuU+kJmEkCmM=";
   };
 
   # Tests are not included in pypi distribution
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 5bcf2b6d1a4f3..627f2baf38e81 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.94.0";
+  version = "2.96.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WASgnF1IwqwiYcNEkHlhbV13rKdTTZgwvLcbBZaBNK8=";
+    hash = "sha256-40xvL7EwCDx/zsYHJhczx1MqVVrwQiDhlcv3QrEuv/E=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sanic-testing/default.nix b/pkgs/development/python-modules/sanic-testing/default.nix
index 173e2b91ff791..398f3dad63222 100644
--- a/pkgs/development/python-modules/sanic-testing/default.nix
+++ b/pkgs/development/python-modules/sanic-testing/default.nix
@@ -23,6 +23,10 @@ buildPythonPackage rec {
     "testsout"
   ];
 
+  postPatch = ''
+    sed -i 's/httpx>=.*"/httpx"/' setup.py
+  '';
+
   propagatedBuildInputs = [
     httpx
     sanic
diff --git a/pkgs/development/python-modules/schwifty/default.nix b/pkgs/development/python-modules/schwifty/default.nix
new file mode 100644
index 0000000000000..9b237757f78d2
--- /dev/null
+++ b/pkgs/development/python-modules/schwifty/default.nix
@@ -0,0 +1,49 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, importlib-resources
+, importlib-metadata
+, iso3166
+, pycountry
+, pytestCheckHook
+, pytest-cov
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "schwifty";
+  version = "2022.6.2";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-urXYEX7QFl2HwoCwTSj+83TYQOkfqbc+aGJaBwKVorU=";
+  };
+
+  propagatedBuildInputs = [
+    iso3166
+    pycountry
+  ] ++ lib.optionals (pythonOlder "3.8") [
+    importlib-resources
+  ] ++ lib.optionals (pythonOlder "3.7") [
+    importlib-metadata
+  ];
+
+  checkInputs = [
+    pytest-cov
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "schwifty"
+  ];
+
+  meta = with lib; {
+    description = "Validate/generate IBANs and BICs";
+    homepage = "https://github.com/mdomke/schwifty";
+    license = licenses.mit;
+    maintainers = with maintainers; [ milibopp ];
+  };
+}
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index 2443c68c1e768..e61ac1e5b9b5b 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "0.0.24";
+  version = "0.0.25";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-S1jeLls0do9sCqTWe8h8+8CO3oM160J97UmISUhTU/s=";
+    hash = "sha256-269vJNclTBWEqM9AJbF96R1I6Ru3q8YBd5A8Rmw7Jjo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/scrap-engine/default.nix b/pkgs/development/python-modules/scrap-engine/default.nix
new file mode 100644
index 0000000000000..07d942f010990
--- /dev/null
+++ b/pkgs/development/python-modules/scrap-engine/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "scrap_engine";
+  version = "1.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-dn/9wxK1UHd3cc3Jo1Cp9tynOFUlndH+cZfIc244ysE=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  meta = with lib; {
+    maintainers = with maintainers; [ fgaz ];
+    description = "A 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/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index 3f594c5a59fb4..dc108502ce9c1 100644
--- a/pkgs/development/python-modules/selectors2/default.nix
+++ b/pkgs/development/python-modules/selectors2/default.nix
@@ -10,6 +10,10 @@ buildPythonPackage rec {
     sha256 = "1f1bbaac203a23fbc851dc1b5a6e92c50698cc8cefa5873eb5b89eef53d1d82b";
   };
 
+  patches = [
+    ./mapping-import.patch
+  ];
+
   checkInputs = [ nose psutil mock ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/selectors2/mapping-import.patch b/pkgs/development/python-modules/selectors2/mapping-import.patch
new file mode 100644
index 0000000000000..64f74a5ce29bf
--- /dev/null
+++ b/pkgs/development/python-modules/selectors2/mapping-import.patch
@@ -0,0 +1,14 @@
+diff --git a/selectors2.py b/selectors2.py
+index 1625a30..c4a1231 100644
+--- a/selectors2.py
++++ b/selectors2.py
+@@ -22,7 +22,8 @@
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ # SOFTWARE.
+ 
+-from collections import namedtuple, Mapping
++from collections import namedtuple
++from collections.abc import Mapping
+ import errno
+ import math
+ import platform
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix
index e606819159c02..a1db98deeb755 100644
--- a/pkgs/development/python-modules/selenium/default.nix
+++ b/pkgs/development/python-modules/selenium/default.nix
@@ -1,59 +1,54 @@
 { lib
-, stdenv
-, fetchPypi
 , fetchFromGitHub
 , buildPythonPackage
 , geckodriver
+, pytestCheckHook
+, pythonOlder
+, trio
+, trio-websocket
 , urllib3
-, xorg
 , nixosTests
 }:
 
-let
-  # Recompiling x_ignore_nofocus.so as the original one dlopen's libX11.so.6 by some
-  # absolute paths. Replaced by relative path so it is found when used in nix.
-  x_ignore_nofocus =
-    fetchFromGitHub {
-      owner = "SeleniumHQ";
-      repo = "selenium";
-      rev = "selenium-3.6.0";
-      sha256 = "13wf4hx4i7nhl4s8xkziwxl0km1j873syrj4amragj6mpip2wn8v";
-    };
-in
-
 buildPythonPackage rec {
   pname = "selenium";
-  version = "3.141.0";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "039hf9knvl4s3hp21bzwsp1g5ri9gxsh504dp48lc6nr1av35byy";
+  version = "4.2.0";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "SeleniumHQ";
+    repo = "selenium";
+    rev = "selenium-${version}"; # check if there is a newer tag with -python suffix
+    sha256 = "sha256-KhBCMsWGRD7hJqumA1+K8AVhJ7hq26XkEa1QbgY0Q0w=";
   };
 
-  buildInputs = [ xorg.libX11 ];
+  postPatch = ''
+    substituteInPlace py/selenium/webdriver/firefox/service.py \
+      --replace 'DEFAULT_EXECUTABLE_PATH = "geckodriver"' 'DEFAULT_EXECUTABLE_PATH = "${geckodriver}/bin/geckodriver"'
+  '';
+
+  preConfigure = ''
+    cd py
+  '';
 
   propagatedBuildInputs = [
-    geckodriver urllib3
+    trio
+    trio-websocket
+    urllib3
+  ] ++ urllib3.optional-dependencies.secure
+  ++ urllib3.optional-dependencies.socks;
+
+  checkInputs = [
+    pytestCheckHook
   ];
 
-  postPatch = lib.optionalString stdenv.isLinux ''
-    cp "${x_ignore_nofocus}/cpp/linux-specific/"* .
-    substituteInPlace x_ignore_nofocus.c --replace "/usr/lib/libX11.so.6" "${lib.getLib xorg.libX11}/lib/libX11.so.6"
-    cc -c -fPIC x_ignore_nofocus.c -o x_ignore_nofocus.o
-    cc -shared \
-      -Wl,${if stdenv.isDarwin then "-install_name" else "-soname"},x_ignore_nofocus.so \
-      -o x_ignore_nofocus.so \
-      x_ignore_nofocus.o
-    cp -v x_ignore_nofocus.so selenium/webdriver/firefox/${if stdenv.is64bit then "amd64" else "x86"}/
-  '';
-
   passthru.tests = {
     testing-vaultwarden = nixosTests.vaultwarden;
   };
 
   meta = with lib; {
-    description = "The selenium package is used to automate web browser interaction from Python";
-    homepage = "http://www.seleniumhq.org";
+    description = "Bindings for Selenium WebDriver";
+    homepage = "https://selenium.dev/";
     license = licenses.asl20;
     maintainers = with maintainers; [ jraygauthier ];
   };
diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix
index 542178a3cae30..e434310f56f04 100644
--- a/pkgs/development/python-modules/sentry-sdk/default.nix
+++ b/pkgs/development/python-modules/sentry-sdk/default.nix
@@ -46,7 +46,7 @@
 
 buildPythonPackage rec {
   pname = "sentry-sdk";
-  version = "1.5.12";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -55,7 +55,7 @@ buildPythonPackage rec {
     owner = "getsentry";
     repo = "sentry-python";
     rev = version;
-    hash = "sha256-8M0FWfvaGp74Fb+qJlhyiJPUVHN2ZdEleZf27d+bftE=";
+    hash = "sha256-X831uMlxvcgxQz8xWQZkJOp/fTmF62J95esJY23DZQw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 2a7e7613dfb81..11461a9545cd2 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -34,6 +34,6 @@ stdenv.mkDerivation {
     license = with licenses; [ gpl2 lgpl21 ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin || python.isPy310;
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/simple-rest-client/default.nix b/pkgs/development/python-modules/simple-rest-client/default.nix
index d4cbfdbfb94a4..4b5b2ed068119 100644
--- a/pkgs/development/python-modules/simple-rest-client/default.nix
+++ b/pkgs/development/python-modules/simple-rest-client/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "simple-rest-client";
-  version = "1.1.2";
+  version = "1.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "allisson";
     repo = "python-simple-rest-client";
     rev = version;
-    sha256 = "sha256-kyoFtPa94c5EAT7wBEXdkPEg8Bp3hJQQoFsutap1qvs=";
+    sha256 = "sha256-HdGYLDrqQvd7hvjwhC5dY2amdHUZHTYJvD1QP89lcXU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index e0cd3d4833582..a4bef1ab8e144 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.17.0";
+  version = "3.17.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-XyxvJsALAEuAJWORhIs4bGB4vYnCbFHecerA4gTr6ak=";
+    sha256 = "sha256-Rzs2ugG6Xm8IVWt20+1oLB0FxhBHyIfDGNL2jzgDnwc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sleekxmpp/default.nix b/pkgs/development/python-modules/sleekxmpp/default.nix
index 187ae018fddef..41578b3dc0478 100644
--- a/pkgs/development/python-modules/sleekxmpp/default.nix
+++ b/pkgs/development/python-modules/sleekxmpp/default.nix
@@ -1,9 +1,11 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, dnspython, pyasn1 }:
+{ stdenv, lib, fetchPypi, buildPythonPackage, pythonAtLeast, dnspython, pyasn1 }:
 
 buildPythonPackage rec {
   pname = "sleekxmpp";
   version = "1.3.3";
 
+  disabled = pythonAtLeast "3.10"; # Deprecated in favor of Slixmpp
+
   propagatedBuildInputs = [ dnspython pyasn1 ];
 
   patches = [
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index 5077bbd2d1750..304a1c36894f2 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "2.7.8";
+  version = "2.7.9";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nPsHsEi8sf5kbQP3SAzLaod+nEUGcwLpC8/3/XL2vC8=";
+    hash = "sha256-HQ/d7luqdG1BriuP8QXzZk5JZwwLJH1JQIN3BtEDpM4=";
   };
 
   propagatedBuildInputs = [
@@ -45,7 +45,8 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "pyOpenSSL>=16.2.0,<23.0.0" "pyOpenSSL"
+      --replace "pyOpenSSL>=16.2.0,<23.0.0" "pyOpenSSL" \
+      --replace "cryptography>=3.1.0,<37.0.0" "cryptography"
   '';
 
   # Tests require encrypted secrets, see
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index e40a3f8b58885..b2b6f92a01ada 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -1,8 +1,9 @@
 { buildPythonPackage
 , lib
 , fetchPypi
-, sqlalchemy
+, six
 , snowflake-connector-python
+, sqlalchemy
 }:
 
 buildPythonPackage rec {
@@ -15,8 +16,9 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    sqlalchemy
+    six
     snowflake-connector-python
+    sqlalchemy
   ];
 
   # Pypi does not include tests
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index 98933759f0bbe..379159180a060 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -2,6 +2,7 @@
 , beautifulsoup4
 , buildPythonPackage
 , fetchFromGitHub
+, filelock
 , lxml
 , pythonOlder
 , pytz
@@ -11,15 +12,16 @@
 
 buildPythonPackage rec {
   pname = "snscrape";
-  version = "unstable-2021-08-30";
+  version = "0.4.3.20220106";
+  format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "JustAnotherArchivist";
     repo = pname;
-    rev = "c76f1637ce1d7a154af83495b67ead2559cd5715";
-    sha256 = "01x4961fxj1p98y6fcyxw5sv8fa87x41fdx9p31is12bdkmqxi6v";
+    rev = "v${version}";
+    hash = "sha256-gphNT1IYSiAw22sqHlV8Rm4WRP4EWUvP0UkITuepmMc=";
   };
 
   SETUPTOOLS_SCM_PRETEND_VERSION = version;
@@ -30,9 +32,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     beautifulsoup4
+    filelock
     lxml
     requests
-  ] ++ lib.optionals (pythonOlder "3.9") [
+  ]
+  ++ requests.optional-dependencies.socks
+  ++ lib.optionals (pythonOlder "3.9") [
     pytz
   ];
 
@@ -42,11 +47,13 @@ buildPythonPackage rec {
     snscrape --help
   '';
 
-  pythonImportsCheck = [ "snscrape" ];
+  pythonImportsCheck = [
+    "snscrape"
+  ];
 
   meta = with lib; {
+    description = "A social networking service scraper";
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
-    description = "A social networking service scraper in Python";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ivan ];
   };
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 50a134df2d2a3..894bdb9d0ba61 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -5,6 +5,7 @@
 , appdirs
 , ifaddr
 , pythonOlder
+, lxml
 , mock
 , nix-update-script
 , pytestCheckHook
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.27.1";
+  version = "0.28.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,12 +25,13 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "v${version}";
-    hash = "sha256-8U7wfxqen+hgK8j9ooPHCAKvd9kSZicToTyP7XzQFrg=";
+    hash = "sha256-rH6EfPK4EEQDO63VEIM7jJO5OM4tyYfZ5yYUskPf8dE=";
   };
 
   propagatedBuildInputs = [
     appdirs
     ifaddr
+    lxml
     requests
     xmltodict
   ];
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
index bbc3f8edbf2d8..ac0a393631343 100644
--- a/pkgs/development/python-modules/sopel/default.nix
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -1,11 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy
+{ lib
+, buildPythonPackage
 , dnspython
+, fetchPypi
 , geoip2
 , ipython
+, isPyPy
 , praw
 , pyenchant
 , pygeoip
 , pytestCheckHook
+, pythonOlder
 , pytz
 , sqlalchemy
 , xmltodict
@@ -13,12 +17,14 @@
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "7.1.8";
-  disabled = isPyPy;
+  version = "7.1.9";
+  format = "setuptools";
+
+  disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-zxb95GVcDrd3FG/k+0PLg+dVlMgQpf1ntG8jF/zpHH4=";
+    hash = "sha256-IJ+ovLQv6/UU1oepmUQjzaWBG3Rdd3xvui7FjK85Urs=";
   };
 
   propagatedBuildInputs = [
@@ -33,15 +39,17 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  # remove once https://github.com/sopel-irc/sopel/pull/1653 lands
+  checkInputs = [
+    pytestCheckHook
+  ];
+
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "praw>=4.0.0,<6.0.0" "praw" \
-      --replace "sqlalchemy<1.4" "sqlalchemy"
+      --replace "sqlalchemy<1.4" "sqlalchemy" \
+      --replace "xmltodict==0.12" "xmltodict>=0.12"
   '';
 
-  checkInputs = [ pytestCheckHook ];
-
   preCheck = ''
     export TESTDIR=$(mktemp -d)
     cp -R ./test $TESTDIR
@@ -52,7 +60,9 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [ "sopel" ];
+  pythonImportsCheck = [
+    "sopel"
+  ];
 
   meta = with lib; {
     description = "Simple and extensible IRC bot";
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 6c50cc6e11500..8d92e49427aff 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -1,8 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, pytest
-, beautifulsoup4
 , isPy3k
 , backports_functools_lru_cache
 }:
@@ -16,21 +14,18 @@ buildPythonPackage rec {
     sha256 = "b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9";
   };
 
-  checkPhase = ''
-    py.test
-  '';
-
-  checkInputs = [ pytest beautifulsoup4 ];
-
   propagatedBuildInputs = lib.optional (!isPy3k) backports_functools_lru_cache;
 
-  # Circular test dependency on beautifulsoup4
+  # Circular dependency on beautifulsoup4
   doCheck = false;
 
-  meta = {
+  # Circular dependency on beautifulsoup4
+  # pythonImportsCheck = [ "soupsieve" ];
+
+  meta = with lib; {
     description = "A CSS4 selector implementation for Beautiful Soup";
-    license = lib.licenses.mit;
+    license = licenses.mit;
     homepage = "https://github.com/facelessuser/soupsieve";
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index c081ab5e3a1e0..2a11e1f145871 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -1,24 +1,24 @@
 { lib
 , buildPythonPackage
+, dask
 , fetchPypi
-, isPy3k
 , numba
 , numpy
-, scipy
-  # Test Inputs
 , pytestCheckHook
-, dask
+, pythonOlder
+, scipy
 }:
 
 buildPythonPackage rec {
   pname = "sparse";
   version = "0.13.0";
+  format = "setuptools";
 
-  disabled = !isPy3k;
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "685dc994aa770ee1b23f2d5392819c8429f27958771f8dceb2c4fb80210d5915";
+    hash = "sha256-aF3JlKp3DuGyPy1TkoGchCnyeVh3H43OssT7gCENWRU=";
   };
 
   propagatedBuildInputs = [
@@ -26,16 +26,22 @@ buildPythonPackage rec {
     numpy
     scipy
   ];
-  checkInputs = [ pytestCheckHook dask ];
 
-  pythonImportsCheck = [ "sparse" ];
+  checkInputs = [
+    dask
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "sparse"
+  ];
 
   meta = with lib; {
     description = "Sparse n-dimensional arrays computations";
-    homepage = "https://sparse.pydata.org/en/stable/";
+    homepage = "https://sparse.pydata.org/";
     changelog = "https://sparse.pydata.org/en/stable/changelog.html";
     downloadPage = "https://github.com/pydata/sparse/releases/tag/${version}";
     license = licenses.bsd3;
-    maintainers = [ maintainers.costrouc ];
+    maintainers = with maintainers; [ costrouc ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-basic-ng/default.nix b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
new file mode 100644
index 0000000000000..df55a1316fbb7
--- /dev/null
+++ b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, pythonOlder
+, fetchFromGitHub
+, fetchpatch
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "sphinx-basic-ng";
+  version = "0.0.1.a11";
+  disable = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pradyunsg";
+    repo = "sphinx-basic-ng";
+    rev = version;
+    sha256 = "sha256-Eur3CadC2NTuBXosG4SN9t2L0qkqN+Q79bcvhvlG/f8=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-import-error.patch";
+      url = "https://github.com/pradyunsg/sphinx-basic-ng/pull/32/commits/323a0085721b908aa11bc3c36c51e16f517ee023.patch";
+      sha256 = "sha256-/G1wLG/08u2s3YENSKSYekLrV1fUkxDAlxc3crTQNHk=";
+    })
+  ];
+
+  propagatedBuildInputs = [
+    sphinx
+  ];
+
+  # no tests implemented
+  doCheck = false;
+
+  pythonImportsCheck = [ "sphinx_basic_ng" ];
+
+  meta = with lib; {
+    description = "A 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/sphinxcontrib-bayesnet/default.nix b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
index 4b44619b4c3b2..6f53dd79d3646 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
@@ -16,10 +16,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinxcontrib.bayesnet" ];
 
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
     homepage = "https://github.com/jluttine/sphinx-bayesnet";
     description = "Bayesian networks and factor graphs in Sphinx using TikZ syntax";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ jluttine ];
+    broken = true; # relies on 2to3 conversion, which was removed from setuptools>=58.0
   };
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index 0b5e64fb38001..629e4a3262f8a 100644
--- a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-spelling";
-  version = "7.5.0";
+  version = "7.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2SvcHWPzYbbgoXG51oUYEBdFSFMX8VhhUB44fxt49qs=";
+    hash = "sha256-D8TCSGOezvPUigR1T+uhdEaOaza1bJAwJcUNYNbPtO8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index 9a80bb93621a7..a368d1a81131f 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -2,7 +2,6 @@
 , buildPythonPackage
 , fetchFromGitHub
 , selenium
-, six
 , flask
 , pytestCheckHook
 }:
@@ -20,7 +19,6 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     selenium
-    six
   ];
 
   checkInputs = [
@@ -28,8 +26,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # driver is present and fails with a different error during loading
+    "test_local_driver_not_present"
+  ];
+
   disabledTestPaths = [
     "samples"
+    # TODO: requires optional dependencies which should be defined in passthru.optional-dependencies.$name
     "tests/test_djangoclient.py"
     "tests/test_flaskclient.py"
     "tests/test_popups.py"
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index 0bed203007c13..544bdccd2cbbe 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -13,11 +13,11 @@
 
 buildPythonPackage rec {
   pname = "SQLAlchemy";
-  version = "1.4.36";
+  version = "1.4.37";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZGeKwyHWSkWQHvLiRyXsXng/H0pYgwXhlkMUR+es4kM=";
+    hash = "sha256-Noj5LGLbbF3yaOImSJEHjxfsuR4xQbQA8uKND3V5beo=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index d7f07eea073ce..e682365f92747 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "sqlite-utils";
-  version = "3.26.1";
+  version = "3.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GK/036zijOSi9IWZSFifXrexY8dyo6cfwWyaF06x82c=";
+    hash = "sha256-SercPK2Svrq7rEULglvjq1J3FV0x0aHHKs72HmXkTGo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/ssh-mitm/default.nix b/pkgs/development/python-modules/ssh-mitm/default.nix
index 899f3a10e042d..3e930006289e1 100644
--- a/pkgs/development/python-modules/ssh-mitm/default.nix
+++ b/pkgs/development/python-modules/ssh-mitm/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "ssh-mitm";
-  version = "2.0.4";
+  version = "2.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-F7+odIWiEy7Aea+Jnx5VuDv5PdMlvxX975QmlLQ5APE=";
+    hash = "sha256-zLVi+9XvNAfa3fB2GRdNnEPoDY2Wf3XkbQGOT0RNkdQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index caa841339e16c..05c3cd829f9be 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "starlette";
-  version = "0.19.0";
+  version = "0.20.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "encode";
     repo = pname;
     rev = version;
-    sha256 = "sha256-gjRTMzoQ8pqxjIusRwRXGs72VYo6xsp2DSUxmEr9KxU=";
+    hash = "sha256-PUZ9joOhXkL1K2yi0baiuY74PIi71V/epX8zdcUv1DA=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index ae2cd9504359b..0b2fb134a921c 100644
--- a/pkgs/development/python-modules/streamz/default.nix
+++ b/pkgs/development/python-modules/streamz/default.nix
@@ -3,6 +3,7 @@
 , buildPythonPackage
 , confluent-kafka
 , distributed
+, fetchpatch
 , fetchPypi
 , flaky
 , graphviz
@@ -15,7 +16,6 @@
 , toolz
 , tornado
 , zict
-, fetchpatch
 }:
 
 buildPythonPackage rec {
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-0wZ1ldLFRAIL9R+gLfwsFbL+gvdORAkYWNjnDmeafm8=";
+    hash = "sha256-0wZ1ldLFRAIL9R+gLfwsFbL+gvdORAkYWNjnDmeafm8=";
   };
 
   patches = [
@@ -36,7 +36,9 @@ buildPythonPackage rec {
       name = "fix-tests-against-distributed-2021.10.0.patch";
       url = "https://github.com/python-streamz/streamz/commit/5bd3bc4d305ff40c740bc2550c8491be9162778a.patch";
       sha256 = "1xzxcbf7yninkyizrwm3ahqk6ij2fmh0454iqjx2n7mmzx3sazx7";
-      includes = ["streamz/tests/test_dask.py"];
+      includes = [
+        "streamz/tests/test_dask.py"
+      ];
     })
   ];
 
@@ -63,15 +65,17 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # test_tcp_async fails on sandbox build
+    # Test fail in the sandbox
     "test_tcp_async"
     "test_tcp"
     "test_partition_timeout"
-    # flaky
-    "test_from_iterable_backpressure"
+    # Tests are flaky
+    "test_from_iterable"
+    "test_buffer"
   ];
+
   disabledTestPaths = [
-    # disable kafka tests
+    # Disable kafka tests
     "streamz/tests/test_kafka.py"
   ];
 
diff --git a/pkgs/development/python-modules/strenum/default.nix b/pkgs/development/python-modules/strenum/default.nix
index f287b2623a6b1..d73b60906cc57 100644
--- a/pkgs/development/python-modules/strenum/default.nix
+++ b/pkgs/development/python-modules/strenum/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "strenum";
-  version = "0.4.7";
+  version = "0.4.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "irgeek";
     repo = "StrEnum";
     rev = "v${version}";
-    hash = "sha256-ktsPROIv/BbPinZfrBknI4c/WwRYGhWgmw209Hfg8EQ=";
+    hash = "sha256-S64YfF+cbefXRWoeJK99ZPTiO9DUcDaT77hVQd7pKDk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index b070b9f117de4..2d99b497eac68 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "3.3.0";
+  version = "3.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2sYMEC+2eorJqhZWmwr9DWO5bGK+BkCIUZ4cZhs/Ofo=";
+    hash = "sha256-XcN979nWXgUwItq8tlnnNisFinr3QEfuWFGKKQenYfI=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index b9fc0a652439e..beb7c5b73ada2 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -31,14 +31,14 @@
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "4.0.1";
+  version = "4.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TKOJcEg5A3zjuJbH/tugoX7A7vxSwcE20jJ5QuvWTu8=";
+    hash = "sha256-ZswUFdMRqEiMpTXAuVtEnsHJ4dgwcx2f4k1DwLl8pz8=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/svg-path/default.nix b/pkgs/development/python-modules/svg-path/default.nix
index 4e135a03cf79e..8c565b3d41c8c 100644
--- a/pkgs/development/python-modules/svg-path/default.nix
+++ b/pkgs/development/python-modules/svg-path/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "svg.path";
-  version = "6.1";
+  version = "6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-i0Rx37c2GwibZstC2pZBWO0A6aXKEVuKaaxPXcJHSj8=";
+    hash = "sha256-GiFZ+duJjfk8RjfP08yvfaH9Bz9Z+ppZUMc+RtSqGso=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/systemd/default.nix b/pkgs/development/python-modules/systemd/default.nix
index 86c330bd1d880..b27af96edbd75 100644
--- a/pkgs/development/python-modules/systemd/default.nix
+++ b/pkgs/development/python-modules/systemd/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, systemd, pkg-config }:
+{ lib
+, buildPythonPackage
+, fetchpatch
+, fetchFromGitHub
+, systemd
+, pkg-config
+}:
 
 buildPythonPackage rec {
   pname = "systemd";
@@ -11,14 +17,36 @@ buildPythonPackage rec {
     sha256 = "1fakw7qln44mfd6pj4kqsgyrhkc6cyr653id34kv0rdnb1bvysrz";
   };
 
-  buildInputs = [ systemd ];
-  nativeBuildInputs = [ pkg-config ];
+  patches = [
+    # Fix runtime issues on Python 3.10
+    # https://github.com/systemd/python-systemd/issues/107
+    (fetchpatch {
+      url = "https://github.com/systemd/python-systemd/commit/c71bbac357f0ac722e1bcb2edfa925b68cca23c9.patch";
+      sha256 = "22s72Wa/BCwNNvwbxEUh58jhHlbA00SNwNVchVDovcc=";
+    })
+  ];
 
+  nativeBuildInputs = [
+    pkg-config
+  ];
+
+  buildInputs = [
+    systemd
+  ];
+
+  # No module named 'systemd._journal
   doCheck = false;
 
+  pythonImportsCheck = [
+    "systemd.journal"
+    "systemd.id128"
+    "systemd.daemon"
+    "systemd.login"
+  ];
+
   meta = with lib; {
     description = "Python module for native access to the systemd facilities";
     homepage = "http://www.freedesktop.org/software/systemd/python-systemd/";
-    license = licenses.lgpl21;
+    license = licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix
new file mode 100644
index 0000000000000..914e053919d57
--- /dev/null
+++ b/pkgs/development/python-modules/tabula-py/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, buildPythonPackage
+, distro
+, fetchFromGitHub
+, jdk
+, numpy
+, pandas
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+}:
+
+buildPythonPackage rec {
+  pname = "tabula-py";
+  version = "2.4.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "chezou";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-cVhtFfzDQvVnDaXOU3dx/m3LENMMG3E+RnFVFCZ0AAc=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    distro
+    numpy
+    pandas
+  ];
+
+  checkInputs = [
+    jdk
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "tabula"
+  ];
+
+  disabledTests = [
+    # Tests require network access
+    "test_convert_remote_file"
+    "test_read_pdf_with_remote_template"
+    "test_read_remote_pdf"
+    "test_read_remote_pdf_with_custom_user_agent"
+  ];
+
+  meta = with lib; {
+    description = "Module to extract table from PDF into pandas DataFrame";
+    homepage = "https://github.com/chezou/tabula-py";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tensorboard/default.nix b/pkgs/development/python-modules/tensorboard/default.nix
index 47025bf4a28af..42fe33dcab69c 100644
--- a/pkgs/development/python-modules/tensorboard/default.nix
+++ b/pkgs/development/python-modules/tensorboard/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "tensorboard";
-  version = "2.8.0";
+  version = "2.9.0";
   format = "wheel";
   disabled = pythonOlder "3.6" || pythonAtLeast "3.11";
 
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-ZaM45EJOkHnyYEkjvb4wF5KtzirOG+aNprPd8AUXDe8=";
+    hash = "sha256-vXghEHbcpe+icmCvrPqpbNBcfbEqbAnMdqHWsph8piE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tensorflow-estimator/default.nix b/pkgs/development/python-modules/tensorflow-estimator/default.nix
index 7c7f155adb09b..b52a96a3ea5bd 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/default.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/default.nix
@@ -6,13 +6,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-estimator";
-  version = "2.8.0";
+  version = "2.9.0";
   format = "wheel";
 
   src = fetchPypi {
     pname = "tensorflow_estimator";
     inherit version format;
-    hash = "sha256-vujgUgxgrn6vbKjLRsWp9LRXJVMTgNuPvjj8tIR4trs=";
+    hash = "sha256-6XYrswL1G8HrLzXRnwGQpqLYCddU1d73iMQyj+N0Z0Q=";
   };
 
   propagatedBuildInputs = [ mock numpy absl-py ];
diff --git a/pkgs/development/python-modules/tensorflow-metadata/default.nix b/pkgs/development/python-modules/tensorflow-metadata/default.nix
index bdf6cc08aa64f..5204e2158dc71 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/default.nix
+++ b/pkgs/development/python-modules/tensorflow-metadata/default.nix
@@ -8,13 +8,13 @@
 
 buildPythonPackage rec {
   pname = "tensorflow-metadata";
-  version = "1.8.0";
+  version = "1.9.0";
 
   src = fetchFromGitHub {
     owner = "tensorflow";
     repo = "metadata";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-IaLr6XYEy1EcyWi5GWzDFa7TeVZ59v8Wj5qkNdVbOqw=";
+    sha256 = "sha256-6BtKHyVrprtEb2Bi7g2YuctUykWSRXmKwADfHzGkYjc=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index 1f57c11ec1834..b266f837f8499 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -9,6 +9,7 @@
 , numpy
 , six
 , termcolor
+, packaging
 , protobuf
 , absl-py
 , grpcio
@@ -48,9 +49,6 @@ in buildPythonPackage {
   inherit (packages) version;
   format = "wheel";
 
-  # See https://github.com/tensorflow/tensorflow/issues/55581#issuecomment-1101890383
-  disabled = pythonAtLeast "3.10" && !cudaSupport;
-
   src = let
     pyVerNoDot = lib.strings.stringAsChars (x: if x == "." then "" else x) python.pythonVersion;
     platform = if stdenv.isDarwin then "mac" else "linux";
@@ -62,6 +60,7 @@ in buildPythonPackage {
     astunparse
     flatbuffers
     typing-extensions
+    packaging
     protobuf
     numpy
     scipy
@@ -93,21 +92,25 @@ in buildPythonPackage {
 
     pushd dist
 
+    orig_name="$(echo ./*.whl)"
     wheel unpack --dest unpacked ./*.whl
     rm ./*.whl
     (
       cd unpacked/tensorflow*
       # Adjust dependency requirements:
-      # - Relax tensorflow-estimator version requirement that doesn't match what we have packaged
+      # - Relax flatbuffers, gast and tensorflow-estimator version requirements that don't match what we have packaged
       # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
       # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
       sed -i *.dist-info/METADATA \
-        -e "s/Requires-Dist: tf-estimator-nightly.*/Requires-Dist: tensorflow-estimator/" \
+        -e "/Requires-Dist: flatbuffers/d" \
+        -e "/Requires-Dist: gast/d" \
         -e "/Requires-Dist: libclang/d" \
         -e "/Requires-Dist: keras/d" \
+        -e "/Requires-Dist: tensorflow-estimator/d" \
         -e "/Requires-Dist: tensorflow-io-gcs-filesystem/d"
     )
     wheel pack ./unpacked/tensorflow*
+    mv *.whl $orig_name # avoid changes to the _os_arch.whl suffix
 
     popd
   '';
@@ -187,9 +190,9 @@ in buildPythonPackage {
   };
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ jyp abbradar cdepillabout ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 0d221452bb72b..69f72867cd871 100644
--- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,51 +1,51 @@
 {
-version = "2.8.0";
+version = "2.9.0";
 linux_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "1nza8i0nvqgrcwj2yy74a3wgpgf52svf0yrz9xd6l18gsifkmkx0";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "1gs10w8hm47lmp4hln8qw02x7c018lxmcxs4i8dj3z5h2k64nx75";
 };
 linux_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "1li2gllznd5w3hh2w9ibh5lkvvssnwh5vhk7i873dxjjdl1w8sqy";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "01jz7vsinbzznzh6dv5bcz0yf8v050wd0axpn9z2jakkh5bwskhp";
 };
 linux_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "03swmyak1hb0k6b2fi9a8g76fi57jz30ym015a576iwp42pqcgkq";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "0458w6p567pm9xs1n5x4z5qygmlwy752d8livvn98p3j0lzccnhy";
 };
 linux_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
-  sha256 = "";
+  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "136d7hjdsks7gvgz54vl9riq1xdqpiamjp449myy9a768vz2xghp";
 };
 linux_py_37_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp37-cp37m-manylinux2010_x86_64.whl";
-  sha256 = "06q3vjrlqfkqa5r18hla3d8ms1sqa897g7fpnqizgh4k8skhm9fq";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "11w1jrz9x6c8kzqfv14snp9djrwy17qc74h5kdiphhprm9ikkikz";
 };
 linux_py_38_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp38-cp38-manylinux2010_x86_64.whl";
-  sha256 = "0099aa5g19zi74n6bamhmmcgp096m41fhr61swkwnh92myz1ylgb";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "0vszrrnm706cqqv7b0726dd9ql3pcd08almqk8w0bcfk3fz05d3w";
 };
 linux_py_39_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp39-cp39-manylinux2010_x86_64.whl";
-  sha256 = "0zw20yvlqga7znr13pa10qxww42mj64209syiicgvhs74ji1zdca";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "18mgv36kdpx4q39qm708abfcjxy4gppv9ray0f418q0jlmfy2fi0";
 };
 linux_py_310_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.8.0-cp310-cp310-manylinux2010_x86_64.whl";
-  sha256 = "06kwjlhzl46jhjcg836crys2aw39x0g8s1s9qfscm1kbwzbww1hq";
+  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-2.9.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+  sha256 = "17wnvfgj9vynq1ibylfqw2cngnjawsxw1mvphdl3g57i92mqsn2x";
 };
 mac_py_37_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp37-cp37m-macosx_10_14_x86_64.whl";
-  sha256 = "1z5w6wx3h45fz0ji9kn2m2kf963bqbvmqc7cyjv4ixymd0rp4jps";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp37-cp37m-macosx_10_14_x86_64.whl";
+  sha256 = "1lvc8rp0a0snjz5cgw6m5nk9qdnl6h7v2cc2pmxssp5c0flqzx4j";
 };
 mac_py_38_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp38-cp38-macosx_10_14_x86_64.whl";
-  sha256 = "1h5v8flhc5zb038ld0av7638cyqqkrib379lrlzvf8dw7q8ry3yx";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp38-cp38-macosx_10_14_x86_64.whl";
+  sha256 = "1lgpgbasmc1av9njz3i1654qkbw2c99x8c7vb2yslnw63s79j774";
 };
 mac_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp39-cp39-macosx_10_14_x86_64.whl";
-  sha256 = "0qsmlrf8h2gxkimniyrz9bniaqpdsd92pficmsrq30k8rkz2bwjj";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp39-cp39-macosx_10_14_x86_64.whl";
+  sha256 = "07dd3srqx78aq7w0g6k1x6l7zphwhm29lv9ai3gyqszi99cpn5pr";
 };
 mac_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.8.0-cp310-cp310-macosx_10_14_x86_64.whl";
-  sha256 = "0lnwbvil6c6ai10lcaj9ay9pya207s9g204273msjalm1hpbmhvq";
+  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.9.0-cp310-cp310-macosx_10_14_x86_64.whl";
+  sha256 = "14fz1id9clcbcrq4y8i1ij1nrk6dz36cqxb88ilip0jj36vfy991";
 };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 3a8eba3ba97fc..92b78b02e0636 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -4,7 +4,7 @@
 , buildPythonPackage, pythonOlder, python
 # Python libraries
 , numpy, tensorboard, absl-py
-, setuptools, wheel, keras, keras-preprocessing, google-pasta
+, packaging, setuptools, wheel, keras, keras-preprocessing, google-pasta
 , opt-einsum, astunparse, h5py
 , termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator
 , dill, flatbuffers-python, portpicker, tblib, typing-extensions
@@ -76,7 +76,7 @@ let
 
   tfFeature = x: if x then "1" else "0";
 
-  version = "2.8.0";
+  version = "2.9.0";
   variant = if cudaSupport then "-gpu" else "";
   pname = "tensorflow${variant}";
 
@@ -94,6 +94,7 @@ let
       keras-preprocessing
       numpy
       opt-einsum
+      packaging
       protobuf-python
       setuptools
       six
@@ -189,7 +190,7 @@ let
       owner = "tensorflow";
       repo = "tensorflow";
       rev = "v${version}";
-      hash = "sha256-w78ehpsnXElIyYftgZEq3b/+TSrRN1gyWVUVlSZpGFM=";
+      hash = "sha256-9VsgNvl+2gxxkC4F+pq4ABuOONpcf96Qbk46shDRpVY=";
     };
 
     # On update, it can be useful to steal the changes from gentoo
@@ -350,7 +351,13 @@ let
     bazelBuildFlags = [
       "--config=opt" # optimize using the flags set in the configure phase
     ]
-    ++ lib.optionals stdenv.cc.isClang [ "--cxxopt=-x" "--cxxopt=c++" "--host_cxxopt=-x" "--host_cxxopt=c++" ]
+    ++ lib.optionals stdenv.cc.isClang [
+      "--cxxopt=-x" "--cxxopt=c++"
+      "--host_cxxopt=-x" "--host_cxxopt=c++"
+
+      # workaround for https://github.com/bazelbuild/bazel/issues/15359
+      "--spawn_strategy=sandboxed"
+    ]
     ++ lib.optionals (mklSupport) [ "--config=mkl" ];
 
     bazelTarget = "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow";
@@ -362,12 +369,12 @@ let
     fetchAttrs = {
       # cudaSupport causes fetch of ncclArchive, resulting in different hashes
       sha256 = if cudaSupport then
-        "sha256-dQEyfueuQPcGvbhuh8Al45np3nRLDw2PCfC2lEqAH50="
+        "sha256-mcK60pLz70tOAu1+THUXweiO2SCSFUdFdT91HaUokzA="
       else
         if stdenv.isDarwin then
-          "sha256-yfnZVtKWqNQGvlfq2owXhem0LmzDYriVfYgf1ZRlaDo="
+          "sha256-j2k9Q+k41nq5nP1VjjkkNjXRov1uAda4RCMDMAthjrk="
         else
-          "sha256:12i1ix2xwq77f3h8qr4h57g0aazrdsjjqa536cpwx3n1mvl5p6qi";
+          "sha256-teW6o9Fb4hUxmaHpQU2F+5ihE/DA+MIY8QaMEKMnFiE=";
     };
 
     buildAttrs = {
@@ -428,16 +435,15 @@ in buildPythonPackage {
   src = bazel-build.python;
 
   # Adjust dependency requirements:
-  # - Relax gast version requirement that doesn't match what we have packaged
-  # - Relax tf-estimator, that would require a nightly version
+  # - Relax flatbuffers and gast version requirements
   # - The purpose of python3Packages.libclang is not clear at the moment and we don't have it packaged yet
   # - keras and tensorlow-io-gcs-filesystem will be considered as optional for now.
   postPatch = ''
     sed -i setup.py \
+      -e "s/'flatbuffers[^']*',/'flatbuffers',/" \
       -e "s/'gast[^']*',/'gast',/" \
-      -e "s/'tf-estimator-nightly[^']*',/'tensorflow-estimator',/" \
       -e "/'libclang[^']*',/d" \
-      -e "/'keras[^']*',/d" \
+      -e "/'keras[^']*')\?,/d" \
       -e "/'tensorflow-io-gcs-filesystem[^']*',/d"
   '';
 
@@ -463,6 +469,7 @@ in buildPythonPackage {
     keras-preprocessing
     numpy
     opt-einsum
+    packaging
     protobuf-python
     six
     tensorflow-estimator
diff --git a/pkgs/development/python-modules/tensorflow/prefetcher.sh b/pkgs/development/python-modules/tensorflow/prefetcher.sh
index 3edc671582710..e4904b46d4f31 100755
--- a/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-version="2.8.0"
+version="2.9.0"
 
 bucket="https://storage.googleapis.com/tensorflow"
 
@@ -8,14 +8,14 @@ bucket="https://storage.googleapis.com/tensorflow"
 # on the following page:
 # https://www.tensorflow.org/install/pip?lang=python3#package-location
 url_and_key_list=(
-"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-"linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
-"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
-"linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux2010_x86_64.whl"
-"linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux2010_x86_64.whl"
-"linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux2010_x86_64.whl"
-"linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux2010_x86_64.whl"
+"linux_py_37_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_38_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_37_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_38_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_39_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"linux_py_310_gpu $bucket/linux/gpu/tensorflow_gpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
 "mac_py_37_cpu $bucket/mac/cpu/tensorflow-${version}-cp37-cp37m-macosx_10_14_x86_64.whl"
 "mac_py_38_cpu $bucket/mac/cpu/tensorflow-${version}-cp38-cp38-macosx_10_14_x86_64.whl"
 "mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_14_x86_64.whl"
diff --git a/pkgs/development/python-modules/threat9-test-bed/default.nix b/pkgs/development/python-modules/threat9-test-bed/default.nix
new file mode 100644
index 0000000000000..35d5f1389fd1b
--- /dev/null
+++ b/pkgs/development/python-modules/threat9-test-bed/default.nix
@@ -0,0 +1,65 @@
+{ lib
+, buildPythonPackage
+, click
+, faker
+, fetchFromGitHub
+, flask
+, gunicorn
+, pyopenssl
+, pytestCheckHook
+, pythonOlder
+, setuptools-scm
+, requests
+}:
+
+buildPythonPackage rec {
+  pname = "threat9-test-bed";
+  version = "0.6.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "threat9";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-0YSjMf2gDdrvkDaT77iwfCkiDDXKHnZyI8d7JmBSuCg=";
+  };
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  nativeBuildInputs = [
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    click
+    faker
+    flask
+    gunicorn
+    pyopenssl
+    requests
+  ];
+
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "threat9_test_bed"
+  ];
+
+  disabledTests = [
+    # Assertion issue with the response codes
+    "test_http_service_mock"
+    "tests_http_service_mock"
+    "test_http_service_mock_random_port"
+  ];
+
+  meta = with lib; {
+    description = "Module for adding unittests.mock as view functions";
+    homepage = "https://github.com/threat9/threat9-test-bed";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 0faea93ebdeb7..f3fe08821f5b8 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -12,14 +12,14 @@
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2022.3.25";
+  version = "2022.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bZQ/LAGxo0pHbJY9EZVl+6EI9VngYUJsY6UVeEaVntk=";
+    hash = "sha256-sDFHoVhit8HZDUdDUZfxSb73pSwlrWfPH5tGX6pxuNI=";
   };
 
   propagatedBuildInputs = [
@@ -40,6 +40,9 @@ buildPythonPackage rec {
     "test_write_ome"
     # Test file is missing
     "test_write_predictor"
+    # AssertionError
+    "test_write_bigtiff"
+    "test_write_imagej_raw"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/time-machine/default.nix b/pkgs/development/python-modules/time-machine/default.nix
index f840512c7d519..1b680dd6c1b14 100644
--- a/pkgs/development/python-modules/time-machine/default.nix
+++ b/pkgs/development/python-modules/time-machine/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "time-machine";
-  version = "2.7.0";
+  version = "2.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "adamchainz";
     repo = pname;
     rev = version;
-    sha256 = "sha256-d/jUyzqC4weWdY2x6lf85noE/6gNBFhhDfAaYcwB9XQ=";
+    sha256 = "sha256-bRqljS09IBp/uqbx9hrr1iEwqvAyOWyl4qjKhJqqGzc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/timetagger/default.nix b/pkgs/development/python-modules/timetagger/default.nix
index 6b99e9882c37f..4ef4369669885 100644
--- a/pkgs/development/python-modules/timetagger/default.nix
+++ b/pkgs/development/python-modules/timetagger/default.nix
@@ -15,13 +15,13 @@
 
 buildPythonPackage rec {
   pname = "timetagger";
-  version = "22.6.2";
+  version = "22.6.4";
 
   src = fetchFromGitHub {
     owner = "almarklein";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-8Rl7g0OwjabBI9ekh3+vb+20KsqttvwwzZU0U1ee8dQ=";
+    sha256 = "sha256-wLbC7NlDNgAyCnGjawfrnRPN/4DOcHVd93pIWrILs68=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix
index ba504102329d6..42558837bc000 100644
--- a/pkgs/development/python-modules/torchaudio/bin.nix
+++ b/pkgs/development/python-modules/torchaudio/bin.nix
@@ -50,6 +50,7 @@ buildPythonPackage rec {
     # 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 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ junjihashimoto ];
   };
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index 8b1d0e2ec8dea..60a33882021b2 100644
--- a/pkgs/development/python-modules/torchvision/bin.nix
+++ b/pkgs/development/python-modules/torchvision/bin.nix
@@ -60,6 +60,7 @@ in buildPythonPackage {
     # 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 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ junjihashimoto ];
   };
diff --git a/pkgs/development/python-modules/trio-websocket/default.nix b/pkgs/development/python-modules/trio-websocket/default.nix
new file mode 100644
index 0000000000000..3b33b80e921e0
--- /dev/null
+++ b/pkgs/development/python-modules/trio-websocket/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, async_generator
+, pytest-trio
+, pytestCheckHook
+, trio
+, trustme
+, wsproto
+}:
+
+buildPythonPackage rec {
+  pname = "trio-websocket";
+  version = "0.9.2";
+
+  src = fetchFromGitHub {
+    owner = "HyperionGray";
+    repo = "trio-websocket";
+    rev = version;
+    sha256 = "sha256-8VrpI/pk5IhEvqzo036cnIbJ1Hu3UfQ6GHTNkNJUYvo=";
+  };
+
+  propagatedBuildInputs = [
+    async_generator
+    trio
+    wsproto
+  ];
+
+  checkInputs = [
+    pytest-trio
+    pytestCheckHook
+    trustme
+  ];
+
+  pythonImportsCheck = [ "trio_websocket" ];
+
+  meta = with lib; {
+    description = "WebSocket client and server implementation for Python Trio";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index bffc1e819193e..24d8d61b50974 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -24,14 +24,14 @@
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "6.4.1";
+  version = "6.4.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8Ah1zNQzcVgYSqCIGRN+6o8qzVPd3WzygGtVnyojHuk=";
+    sha256 = "sha256-ylRyTpTnciZiBeG/Mx9PGBXFdh4q3qENeygY3NDDPKU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/tubeup/default.nix b/pkgs/development/python-modules/tubeup/default.nix
index 6eca48a2add42..c86f0298d3bcb 100644
--- a/pkgs/development/python-modules/tubeup/default.nix
+++ b/pkgs/development/python-modules/tubeup/default.nix
@@ -9,13 +9,13 @@
 
 buildPythonPackage rec {
   pname = "tubeup";
-  version = "0.0.31";
+  version = "0.0.32";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-hoVmkBrXc2AN5K/vZpxby1U7huhXbfFCiy+2Njt+2Lk=";
+    sha256 = "sha256-YWBp6qXz4hNTBzywBGTXDQSzbWfoEEvJLQL5wy8DQ1g=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index fb11b1f63c6db..31649923daa62 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "7.9.2";
+  version = "7.9.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-JFCYHiPvKYveHYf6SWkmovuvas5+9IGpsnQWqVIaTto=";
+    hash = "sha256-tTtfrIapIaC3oidqWRntkZ1T1eKZ9/ggKbZk2cMiPSQ=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index 6cfb7f3604768..c3e4682d5a7ec 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -16,13 +16,13 @@
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-gXqgwL3AKl6+MgUeFo4jxxoGCDNOYkx5MBHxINu8Bbc=";
+    sha256 = "sha256-lrHPEveuYRpKQLaujpVwIV2v8GEYKPX+HzehYlWrJKA=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
@@ -42,6 +42,8 @@ buildPythonPackage rec {
   # Requires network
   doCheck = false;
 
+  pythonImportsCheck = [ "twine" ];
+
   meta = {
     description = "Collection of utilities for interacting with PyPI";
     homepage = "https://github.com/pypa/twine";
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index 87116017063db..0c5e1fa3cd272 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "typed-ast";
-  version = "1.5.2";
+  version = "1.5.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
     owner = "python";
     repo = "typed_ast";
     rev = version;
-    hash = "sha256-Ul1FIS1a1f8l3tX+m8Bj/LsLQW1sXJv6XzEZ9zh8rfI=";
+    hash = "sha256-GRmKw7SRrrIIb61VeB8GLhSKCmLUd54AA+GAf43vor8=";
   };
 
   checkInputs = [
diff --git a/pkgs/development/python-modules/types-pytz/default.nix b/pkgs/development/python-modules/types-pytz/default.nix
index bbbd791301815..d63968603a035 100644
--- a/pkgs/development/python-modules/types-pytz/default.nix
+++ b/pkgs/development/python-modules/types-pytz/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-pytz";
-  version = "2021.3.8";
+  version = "2022.1.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-QSU6OivwKLaj8XtYdJppLZVa8PdOl13pT29NLTzQHb0=";
+    sha256 = "sha256-u+fq+TtPvsR4AyOvklKG0mWmaB9Q26V9FtvYaVw+1j0=";
   };
 
   # Modules doesn't have tests
diff --git a/pkgs/development/python-modules/types-pyyaml/default.nix b/pkgs/development/python-modules/types-pyyaml/default.nix
new file mode 100644
index 0000000000000..113e2bd887787
--- /dev/null
+++ b/pkgs/development/python-modules/types-pyyaml/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "types-pyyaml";
+  version = "6.0.8";
+  format = "setuptools";
+
+  src = fetchPypi {
+    pname = "types-PyYAML";
+    inherit version;
+    sha256 = "0f349hmw597f2gcja445fsrlnfzb0dj7fy62g8wcbydlgcvmsjfr";
+  };
+
+  # Module doesn't have tests
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "yaml-stubs"
+  ];
+
+  meta = with lib; {
+    description = "Typing stubs for PyYAML";
+    homepage = "https://github.com/python/typeshed";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ dnr ];
+  };
+}
diff --git a/pkgs/development/python-modules/types-redis/default.nix b/pkgs/development/python-modules/types-redis/default.nix
index 28a196145c0c7..4e2d5950efa30 100644
--- a/pkgs/development/python-modules/types-redis/default.nix
+++ b/pkgs/development/python-modules/types-redis/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-redis";
-  version = "4.2.6";
+  version = "4.3.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-1q3HcYXPQLMAgWdnpkwO6e4LIdwXTo5cI7foPUMYnLg=";
+    sha256 = "sha256-oZNQj6poxT3sRcwwUV6rlMMxMlr4oMPIAJX2Dyq22qY=";
   };
 
   # Module 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 4af9b4a42ab36..b6b6f99f4d80d 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -6,12 +6,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.27.30";
+  version = "2.28.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-yo18xUnD0Q28s8acG1Pj/9EnAInBABplwenhAX615wQ=";
+    sha256 = "sha256-mGPRbfuz+lXc2mT6O5ieduiFkDOybB4WI+MEZc/ilNM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index 1114b06157a65..28c29d0c5de8a 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "57.4.17";
+  version = "57.4.18";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nVVvyvaAihzq1KqkHlwHph8BUqh1gR4SOXOOuk4LexY=";
+    sha256 = "sha256-juA9gj/n/aC9Nfrq4z01y1wltJcmPmpYs0xM/QX0C88=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-tabulate/default.nix b/pkgs/development/python-modules/types-tabulate/default.nix
index c8f49386543a4..dd3a6b461c780 100644
--- a/pkgs/development/python-modules/types-tabulate/default.nix
+++ b/pkgs/development/python-modules/types-tabulate/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "types-tabulate";
-  version = "0.8.9";
+  version = "0.8.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L8P6T+GFOsmHz1Do1FmeP+RG3VMGT+hqRqQHqY6fwE8=";
+    hash = "sha256-F6X6O1ykU4FXePyYZejs0BGLB7K5+v8+Kwb+RIF03V4=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/types-typed-ast/default.nix b/pkgs/development/python-modules/types-typed-ast/default.nix
index 2c8e2a09580ef..ca45ec7039ba0 100644
--- a/pkgs/development/python-modules/types-typed-ast/default.nix
+++ b/pkgs/development/python-modules/types-typed-ast/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "types-typed-ast";
-  version = "1.5.4";
+  version = "1.5.6";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MlOHn/Y6+4lkZa/kIoocTfLmPNw57vm5dD1QC42aUXY=";
+    hash = "sha256-UzmUeAz3KbdAwUdQZsRAdi8pqZvalRHU+mhdXuOoQ4k=";
   };
 
   # Module doesn't have tests
diff --git a/pkgs/development/python-modules/ultraheat-api/default.nix b/pkgs/development/python-modules/ultraheat-api/default.nix
index 1d359d748b34f..9eee34d154313 100644
--- a/pkgs/development/python-modules/ultraheat-api/default.nix
+++ b/pkgs/development/python-modules/ultraheat-api/default.nix
@@ -7,7 +7,7 @@
 
 buildPythonPackage rec {
   pname = "ultraheat-api";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "ultraheat_api";
     inherit version;
-    hash = "sha256-J0mQolWdXatIG/ORTBNyo6HrAfydvYqXK7LxInQWcX0=";
+    hash = "sha256-6idbapqxPgA6st2ayuEiHc6WDDmsb3AJU1FnJjOukaM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/unidecode/default.nix b/pkgs/development/python-modules/unidecode/default.nix
index f16fec644db01..96e487871aa33 100644
--- a/pkgs/development/python-modules/unidecode/default.nix
+++ b/pkgs/development/python-modules/unidecode/default.nix
@@ -7,7 +7,8 @@
 
 buildPythonPackage rec {
   pname = "unidecode";
-  version = "1.3.2";
+  version = "1.3.4";
+  format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
@@ -15,7 +16,7 @@ buildPythonPackage rec {
     owner = "avian2";
     repo = pname;
     rev = "${pname}-${version}";
-    sha256 = "07789mrq0gjxrg1b9a3ypzzfww224sbj25wl0h9nik22sjwi8qhh";
+    hash = "sha256-2LRV6Egst2bdxefEzfuA9Ef8zMSWvmlCEV/sIzezyPw=";
   };
 
   checkInputs = [
@@ -27,8 +28,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    homepage = "https://pypi.python.org/pypi/Unidecode/";
     description = "ASCII transliterations of Unicode text";
+    homepage = "https://pypi.python.org/pypi/Unidecode/";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/unifi-discovery/default.nix b/pkgs/development/python-modules/unifi-discovery/default.nix
index 511fd26132b77..309c87f8b32b6 100644
--- a/pkgs/development/python-modules/unifi-discovery/default.nix
+++ b/pkgs/development/python-modules/unifi-discovery/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "unifi-discovery";
-  version = "1.1.3";
+  version = "1.1.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-++5Rg3cCyH4h6zzEXbsQM5tRnUsnV3RCzuOctcjA/x4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-+af1boeJtTI89ZJqgXXsxXQXGDhG4ewgukfKDdhWl9g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 6d29a107f0045..8a79241eebca3 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -1,11 +1,13 @@
 { lib
 , brotli
+, brotlicffi
 , buildPythonPackage
+, certifi
 , cryptography
 , python-dateutil
 , fetchPypi
+, isPyPy
 , idna
-, isPy27
 , mock
 , pyopenssl
 , pysocks
@@ -26,14 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-qrrxZHeAal4d0ZqkH4wreVDdPHRjYtfjIj2+beasRI4=";
   };
 
-  propagatedBuildInputs = [
-    brotli
-    pysocks
-  ] ++ lib.optionals isPy27 [
-    cryptography
-    idna
-    pyopenssl
-  ];
+  # FIXME: remove backwards compatbility hack
+  propagatedBuildInputs = passthru.optional-dependencies.brotli
+    ++ passthru.optional-dependencies.secure;
 
   checkInputs = [
     python-dateutil
@@ -66,6 +63,12 @@ buildPythonPackage rec {
     "urllib3"
   ];
 
+  passthru.optional-dependencies = {
+    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
+    secure = [ certifi cryptography idna pyopenssl ];
+    socks = [ pysocks ];
+  };
+
   meta = with lib; {
     description = "Powerful, sanity-friendly HTTP client for Python";
     homepage = "https://github.com/shazow/urllib3";
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 2ed3bec5a73b7..cc9f884f7cb96 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -4,7 +4,6 @@
 , fetchFromGitHub
 , asgiref
 , click
-, colorama
 , h11
 , httptools
 , python-dotenv
@@ -37,7 +36,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     asgiref
     click
-    colorama
     h11
     httptools
     python-dotenv
diff --git a/pkgs/development/python-modules/vaa/default.nix b/pkgs/development/python-modules/vaa/default.nix
index 783cc7bd68117..d43f007c35cda 100644
--- a/pkgs/development/python-modules/vaa/default.nix
+++ b/pkgs/development/python-modules/vaa/default.nix
@@ -9,7 +9,7 @@
 , marshmallow
 , pyschemes
 , wtforms
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     marshmallow
     pyschemes
     wtforms
-    email_validator
+    email-validator
   ];
 
   pythonImportsCheck = [ "vaa" ];
diff --git a/pkgs/development/python-modules/vapoursynth/default.nix b/pkgs/development/python-modules/vapoursynth/default.nix
new file mode 100644
index 0000000000000..bfd5e1ca8b2bc
--- /dev/null
+++ b/pkgs/development/python-modules/vapoursynth/default.nix
@@ -0,0 +1,22 @@
+{ vapoursynth, cython, buildPythonPackage, python }:
+
+buildPythonPackage {
+  pname = "vapoursynth";
+
+  inherit (vapoursynth) version src;
+
+  nativeBuildInputs = [
+    cython
+  ];
+
+  buildInputs = [
+    vapoursynth
+  ];
+
+  checkPhase = ''
+    ${python.interpreter} -m unittest discover -s $src/test -p "*test.py"
+  '';
+
+  inherit (vapoursynth) meta;
+}
+
diff --git a/pkgs/development/python-modules/vulture/default.nix b/pkgs/development/python-modules/vulture/default.nix
index 7ab5bcbb65bc0..e1dd04ed75f6d 100644
--- a/pkgs/development/python-modules/vulture/default.nix
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -1,32 +1,39 @@
 { lib
 , buildPythonPackage
-, coverage
 , fetchPypi
-, isPy27
-, pytest-cov
+, pythonOlder
 , pytestCheckHook
 , toml
 }:
 
 buildPythonPackage rec {
   pname = "vulture";
-  version = "2.3";
-  disabled = isPy27;
+  version = "2.4";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ryrmsm72z3fzaanyblz49q40h9d3bbl4pspn2lvkkp9rcmsdm83";
+    hash = "sha256-gZQ5KUp2tOC44Ixw11VlqM49wfbgNVjtEjpfK7c3wOo=";
   };
 
-  propagatedBuildInputs = [ toml ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace " --cov vulture --cov-report=html --cov-report=term --cov-report=xml --cov-append" ""
+  '';
+
+  propagatedBuildInputs = [
+    toml
+  ];
 
   checkInputs = [
-    coverage
-    pytest-cov
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [ "vulture" ];
+  pythonImportsCheck = [
+    "vulture"
+  ];
 
   meta = with lib; {
     description = "Finds unused code in Python programs";
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index e2cbe59ab2864..898b1093159d8 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -5,11 +5,11 @@
 
 buildPythonPackage rec {
   pname = "waitress";
-  version = "2.1.1";
+  version = "2.1.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-4uYFds8UoVOdp597fuHnmnHmTzZqC0fbVKFelx9XuxY=";
+    sha256 = "780a4082c5fbc0fde6a2fcfe5e26e6efc1e8f425730863c04085769781f51eba";
   };
 
   doCheck = false;
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index 096312a407a31..747f60bc21f85 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -25,6 +25,7 @@
 , pytestCheckHook
 , python-dateutil
 , pythonOlder
+, pytorch
 , pyyaml
 , requests
 , scikit-learn
@@ -38,7 +39,7 @@
 
 buildPythonPackage rec {
   pname = "wandb";
-  version = "0.12.17";
+  version = "0.12.19";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -46,8 +47,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = "client";
-    rev = "v${version}";
-    hash = "sha256-hY01cql/j3ieL1zJoPOM/QZiF0X/ivekFRfX+TvZhyM=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eH65vk3Pnm6d4vDiaWbs1tXD0lCRkfOB2hqD9MGxuXY=";
   };
 
   patches = [
@@ -93,12 +94,15 @@ buildPythonPackage rec {
     pytest-mock
     pytest-xdist
     pytestCheckHook
+    pytorch
     scikit-learn
     tqdm
   ];
 
   disabledTestPaths = [
     # Tests that try to get chatty over sockets or spin up servers, not possible in the nix build environment.
+    "tests/integrations/test_keras.py"
+    "tests/integrations/test_torch.py"
     "tests/test_cli.py"
     "tests/test_data_types.py"
     "tests/test_file_stream.py"
@@ -111,6 +115,7 @@ buildPythonPackage rec {
     "tests/test_metric_full.py"
     "tests/test_metric_internal.py"
     "tests/test_mode_disabled.py"
+    "tests/test_model_workflows.py"
     "tests/test_mp_full.py"
     "tests/test_public_api.py"
     "tests/test_redir.py"
@@ -119,14 +124,18 @@ buildPythonPackage rec {
     "tests/test_start_method.py"
     "tests/test_tb_watcher.py"
     "tests/test_telemetry_full.py"
+    "tests/test_util.py"
     "tests/wandb_agent_test.py"
     "tests/wandb_artifacts_test.py"
     "tests/wandb_integration_test.py"
     "tests/wandb_run_test.py"
     "tests/wandb_settings_test.py"
     "tests/wandb_sweep_test.py"
+    "tests/wandb_tensorflow_test.py"
     "tests/wandb_verify_test.py"
-    "tests/test_model_workflows.py"
+
+    # Requires metaflow, which is not yet packaged.
+    "tests/integrations/test_metaflow.py"
 
     # Fails and borks the pytest runner as well.
     "tests/wandb_test.py"
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index ee1e866f4a666..177848497b81b 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -20,6 +20,10 @@ buildPythonPackage rec {
     sha256 = "sha256-bQMUkSaGSr0ycV1OkmfSdUzt4lppBSkBOZNWrTvF7P8=";
   };
 
+  patches = lib.optionals (stdenv.isDarwin && !stdenv.isAarch64) [
+    ./force-kqueue.patch
+  ];
+
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
   propagatedBuildInputs = [
@@ -42,6 +46,8 @@ buildPythonPackage rec {
   disabledTests = [
     # probably failing because of an encoding related issue
     "test_create_wrong_encoding"
+  ] ++ lib.optionals (stdenv.isDarwin && !stdenv.isAarch64) [
+    "test_delete"
   ];
 
   disabledTestPaths = [
@@ -58,8 +64,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/gorakhargosh/watchdog";
     license = licenses.asl20;
     maintainers = with maintainers; [ goibhniu ];
-    # error: use of undeclared identifier 'kFSEventStreamEventFlagItemCloned'
-    # builds fine on aarch64-darwin
-    broken = stdenv.isDarwin && !stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/watchdog/force-kqueue.patch b/pkgs/development/python-modules/watchdog/force-kqueue.patch
new file mode 100644
index 0000000000000..de222d891214b
--- /dev/null
+++ b/pkgs/development/python-modules/watchdog/force-kqueue.patch
@@ -0,0 +1,159 @@
+diff --git a/setup.py b/setup.py
+index 072dfc8..64732bb 100644
+--- a/setup.py
++++ b/setup.py
+@@ -39,7 +39,7 @@ _apple_devices = ('appletv', 'iphone', 'ipod', 'ipad', 'watch')
+ is_macos = sys.platform == 'darwin' and not machine().lower().startswith(_apple_devices)
+ 
+ ext_modules = []
+-if is_macos or os.getenv('FORCE_MACOS_MACHINE', '0') == '1':
++if False:
+     ext_modules = [
+         Extension(
+             name='_watchdog_fsevents',
+diff --git a/tests/test_emitter.py b/tests/test_emitter.py
+index bec052c..242fbea 100644
+--- a/tests/test_emitter.py
++++ b/tests/test_emitter.py
+@@ -42,13 +42,11 @@ if platform.is_linux():
+         InotifyEmitter as Emitter,
+         InotifyFullEmitter,
+     )
+-elif platform.is_darwin():
+-    from watchdog.observers.fsevents import FSEventsEmitter as Emitter
+ elif platform.is_windows():
+     from watchdog.observers.read_directory_changes import (
+         WindowsApiEmitter as Emitter
+     )
+-elif platform.is_bsd():
++elif platform.is_bsd() or platform.is_darwin():
+     from watchdog.observers.kqueue import (
+         KqueueEmitter as Emitter
+     )
+@@ -57,12 +55,6 @@ logging.basicConfig(level=logging.DEBUG)
+ logger = logging.getLogger(__name__)
+ 
+ 
+-if platform.is_darwin():
+-    # enable more verbose logs
+-    fsevents_logger = logging.getLogger("fsevents")
+-    fsevents_logger.setLevel(logging.DEBUG)
+-
+-
+ @pytest.fixture(autouse=True)
+ def setup_teardown(tmpdir):
+     global p, emitter, event_queue
+@@ -85,9 +77,6 @@ def start_watching(path=None, use_full_emitter=False, recursive=True):
+     else:
+         emitter = Emitter(event_queue, ObservedWatch(path, recursive=recursive))
+ 
+-    if platform.is_darwin():
+-        emitter.suppress_history = True
+-
+     emitter.start()
+ 
+ 
+@@ -345,7 +334,7 @@ def test_separate_consecutive_moves():
+     if platform.is_windows():
+         expected_events = [a_deleted, d_created]
+ 
+-    if platform.is_bsd():
++    if platform.is_bsd() or platform.is_darwin():
+         # Due to the way kqueue works, we can't really order
+         # 'Created' and 'Deleted' events in time, so creation queues first
+         expected_events = [d_created, a_deleted, dir_modif, dir_modif]
+@@ -355,7 +344,7 @@ def test_separate_consecutive_moves():
+ 
+ 
+ @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
+-@pytest.mark.skipif(platform.is_bsd(), reason="BSD create another set of events for this test")
++@pytest.mark.skipif(platform.is_bsd() or platform.is_darwin(), reason="BSD create another set of events for this test")
+ def test_delete_self():
+     mkdir(p('dir1'))
+     start_watching(p('dir1'))
+@@ -365,7 +354,7 @@ def test_delete_self():
+     assert not emitter.is_alive()
+ 
+ 
+-@pytest.mark.skipif(platform.is_windows() or platform.is_bsd(),
++@pytest.mark.skipif(platform.is_windows() or platform.is_bsd() or platform.is_darwin(),
+                     reason="Windows|BSD create another set of events for this test")
+ def test_fast_subdirectory_creation_deletion():
+     root_dir = p('dir1')
+@@ -429,7 +418,7 @@ def test_recursive_on():
+         assert event.src_path == p('dir1', 'dir2', 'dir3')
+         assert isinstance(event, DirModifiedEvent)
+ 
+-        if not platform.is_bsd():
++        if not (platform.is_bsd() or platform.is_darwin()):
+             event = event_queue.get(timeout=5)[0]
+             assert event.src_path == p('dir1', 'dir2', 'dir3', 'a')
+             assert isinstance(event, FileModifiedEvent)
+@@ -452,26 +441,6 @@ def test_recursive_off():
+         if platform.is_linux():
+             expect_event(FileClosedEvent(p('b')))
+ 
+-    # currently limiting these additional events to macOS only, see https://github.com/gorakhargosh/watchdog/pull/779
+-    if platform.is_darwin():
+-        mkdir(p('dir1', 'dir2'))
+-        with pytest.raises(Empty):
+-            event_queue.get(timeout=5)
+-        mkfile(p('dir1', 'dir2', 'somefile'))
+-        with pytest.raises(Empty):
+-            event_queue.get(timeout=5)
+-
+-        mkdir(p('dir3'))
+-        expect_event(DirModifiedEvent(p()))  # the contents of the parent directory changed
+-
+-        mv(p('dir1', 'dir2', 'somefile'), p('somefile'))
+-        expect_event(FileMovedEvent(p('dir1', 'dir2', 'somefile'), p('somefile')))
+-        expect_event(DirModifiedEvent(p()))
+-
+-        mv(p('dir1', 'dir2'), p('dir2'))
+-        expect_event(DirMovedEvent(p('dir1', 'dir2'), p('dir2')))
+-        expect_event(DirModifiedEvent(p()))
+-
+ 
+ @pytest.mark.skipif(platform.is_windows(),
+                     reason="Windows create another set of events for this test")
+@@ -493,7 +462,7 @@ def test_renaming_top_level_directory():
+ 
+     expect_event(DirMovedEvent(p('a', 'b'), p('a2', 'b')))
+ 
+-    if platform.is_bsd():
++    if platform.is_bsd() or platform.is_darwin():
+         expect_event(DirModifiedEvent(p()))
+ 
+     open(p('a2', 'b', 'c'), 'a').close()
+@@ -584,7 +553,7 @@ def test_move_nested_subdirectories():
+     expect_event(DirMovedEvent(p('dir1', 'dir2', 'dir3'), p('dir2', 'dir3')))
+     expect_event(FileMovedEvent(p('dir1', 'dir2', 'dir3', 'a'), p('dir2', 'dir3', 'a')))
+ 
+-    if platform.is_bsd():
++    if platform.is_bsd() or platform.is_darwin():
+         event = event_queue.get(timeout=5)[0]
+         assert p(event.src_path) == p()
+         assert isinstance(event, DirModifiedEvent)
+@@ -643,7 +612,7 @@ def test_move_nested_subdirectories_on_windows():
+ 
+ 
+ @pytest.mark.flaky(max_runs=5, min_passes=1, rerun_filter=rerun_filter)
+-@pytest.mark.skipif(platform.is_bsd(), reason="BSD create another set of events for this test")
++@pytest.mark.skipif(platform.is_bsd() or platform.is_darwin(), reason="BSD create another set of events for this test")
+ def test_file_lifecyle():
+     start_watching()
+ 
+diff --git a/tests/test_fsevents.py b/tests/test_fsevents.py
+index 4a4fabf..49886a1 100644
+--- a/tests/test_fsevents.py
++++ b/tests/test_fsevents.py
+@@ -3,8 +3,7 @@
+ import pytest
+ from watchdog.utils import platform
+ 
+-if not platform.is_darwin():  # noqa
+-    pytest.skip("macOS only.", allow_module_level=True)
++pytest.skip("doesn't work with Nix yet", allow_module_level=True)
+ 
+ import logging
+ import os
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index ce9432ee296aa..e4576a303c500 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -2,18 +2,15 @@
 , fetchPypi
 , fetchpatch
 , pytestCheckHook
-, brotli
 , cairosvg
 , flit-core
 , fonttools
 , pydyf
 , pyphen
 , cffi
-, cssselect
-, lxml
+, cssselect2
 , html5lib
-, tinycss
-, zopfli
+, tinycss2
 , glib
 , harfbuzz
 , pango
@@ -23,6 +20,7 @@
 , ghostscript
 , isPy3k
 , substituteAll
+, pillow
 }:
 
 buildPythonPackage rec {
@@ -61,19 +59,15 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-    brotli
-    cairosvg
     cffi
-    cssselect
+    cssselect2
     fonttools
     html5lib
-    lxml
-    flit-core
+    pillow
     pydyf
     pyphen
-    tinycss
-    zopfli
-  ];
+    tinycss2
+  ] ++ fonttools.optional-dependencies.woff;
 
   checkInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
index 201893c2536b6..e4fb4f0ea324a 100644
--- a/pkgs/development/python-modules/webob/default.nix
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -1,25 +1,41 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, nose
-, pytest
+, pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
-  pname = "WebOb";
+  pname = "webob";
   version = "1.8.7";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    sha256 = "b64ef5141be559cfade448f044fa45c2260351edcb6a8ef6b7e00c7dcef0c323";
+    pname = "WebOb";
+    inherit version;
+    hash = "sha256-tk71FBvlWc+t5EjwRPpFwiYDUe3Lao72t+AMfc7wwyM=";
   };
 
-  propagatedBuildInputs = [ nose pytest ];
+  checkInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "webob"
+  ];
+
+  disabledTestPaths = [
+    # AttributeError: 'Thread' object has no attribute 'isAlive'
+    "tests/test_in_wsgiref.py"
+    "tests/test_client_functional.py"
+  ];
 
   meta = with lib; {
     description = "WSGI request and response object";
-    homepage = "http://pythonpaste.org/webob/";
+    homepage = "https://webob.org/";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/websockets/default.nix b/pkgs/development/python-modules/websockets/default.nix
index 7d6f78902d0a7..538055b989091 100644
--- a/pkgs/development/python-modules/websockets/default.nix
+++ b/pkgs/development/python-modules/websockets/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "websockets";
-  version = "10.1";
+  version = "10.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "aaugustin";
     repo = pname;
     rev = version;
-    sha256 = "sha256-FFaoqxa+TmKJ+P6T7HrwodjbVCir+2qJSfZsoj6deJU=";
+    hash = "sha256-ZUn/DvO1Kx7Uxne4DF/am69YL1c48qpgQrGek355Z+4=";
   };
 
   # Tests fail on Darwin with `OSError: AF_UNIX path too long`
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
index 0016fa76bf4ff..5cfc12b5225bb 100644
--- a/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "weconnect-mqtt";
-  version = "0.34.0";
+  version = "0.35.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,8 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tillsteinbach";
     repo = "WeConnect-mqtt";
-    rev = "v${version}";
-    hash = "sha256-Gj+hXgGkOqKnZ4W2iZ9P6JN3lYMoREMSF/wfGwLL/tc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3WFD99ujaQzJrsKCc9i0zwNEzRjgkGCwUXSip+6/158=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
index c6a3ecf2088ad..ef2e06cc3e71f 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -4,7 +4,7 @@
 , markupsafe
 , babel
 , pytestCheckHook
-, email_validator
+, email-validator
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,7 @@ buildPythonPackage rec {
 
   checkInputs = [
     pytestCheckHook
-    email_validator
+    email-validator
   ];
 
   pythonImportsCheck = [ "wtforms" ];
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 291da467e9ed3..53ff69168a59d 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "xdis";
-  version = "unstable-2022-04-13";
+  version = "6.0.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -18,9 +18,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "rocky";
     repo = "python-xdis";
-    # Support for later Python releases is missing in 6.0.3
-    rev = "f888df7df5cb8839927e9187c258769cc77fb7a3";
-    hash = "sha256-V1ws5GibRkutFRNcjlP7aW+AshSyWavXIxuwznVbRlU=";
+    rev = version;
+    hash = "sha256-CRZG898xCwukq+9YVkyXMP8HcuJ9GtvDhy96kxvRFks=";
   };
 
   propagatedBuildInputs = [
@@ -48,7 +47,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python cross-version byte-code disassembler and marshal routines";
-    homepage = "https://github.com/rocky/python-xdis/";
+    homepage = "https://github.com/rocky/python-xdis";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/xhtml2pdf/default.nix b/pkgs/development/python-modules/xhtml2pdf/default.nix
index 230e57a06430e..31ae00ec7817b 100644
--- a/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "xhtml2pdf";
-  version = "0.2.7";
+  version = "0.2.8";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,8 +25,8 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     # Currently it is not possible to fetch from version as there is a branch with the same name
-    rev = "afa72cdbbdaf7d459261c1605263101ffcd999af";
-    sha256 = "sha256-plyIM7Ohnp5UBWz/UDTJa1UeWK9yckSZR16wxmLrpnc=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-zWzg/r18wjzxWyD5QJ7l4pY+4bJTvHjrD11FRuuy8H8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 07001eb49f8b3..3dcfe8d7d0269 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "xmlschema";
-  version = "1.11.2";
+  version = "1.11.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "sissaschool";
     repo = "xmlschema";
     rev = "refs/tags/v${version}";
-    hash = "sha256-coQbO5XrFjU9rAN5Vw/BlMHpkQzQy6t0dNfFsMeO2+o=";
+    hash = "sha256-z6VgLRDp5PHaYstdV30gt6xGVd4uifz4LkYQ2z3ayk4=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix
index e0a9f4c5d73e8..19c2b1d283f6a 100644
--- a/pkgs/development/python-modules/xmltodict/default.nix
+++ b/pkgs/development/python-modules/xmltodict/default.nix
@@ -2,22 +2,26 @@
 , buildPythonPackage
 , fetchPypi
 , pytestCheckHook
+, pythonOlder
 }:
 
 buildPythonPackage rec {
   pname = "xmltodict";
-  version = "0.12.0";
+  version = "0.13.0";
   format = "setuptools";
+  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "50d8c638ed7ecb88d90561beedbf720c9b4e851a9fa6c47ebd64e99d166d8a21";
+    sha256 = "sha256-NBWVpIjj4BqFqdiRHYkS/ZIu3l/sxNzkN+tLbI0DflY=";
   };
 
   checkInputs = [
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "xmltodict" ];
+
   meta = with lib; {
     description = "Makes working with XML feel like you are working with JSON";
     homepage = "https://github.com/martinblech/xmltodict";
diff --git a/pkgs/development/python-modules/yamlordereddictloader/default.nix b/pkgs/development/python-modules/yamlordereddictloader/default.nix
index ce9602a4720c3..9de933fda157e 100644
--- a/pkgs/development/python-modules/yamlordereddictloader/default.nix
+++ b/pkgs/development/python-modules/yamlordereddictloader/default.nix
@@ -1,8 +1,6 @@
 { lib
 , buildPythonPackage
 , fetchPypi
-, isPy27
-, ordereddict
 , pyyaml
 }:
 
@@ -15,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "03h8wa6pzqjiw25s3jv9gydn77gs444mf31lrgvpgy53kswz0c3z";
   };
 
-  propagatedBuildInputs = [ pyyaml ] ++ lib.optional (isPy27) ordereddict;
+  propagatedBuildInputs = [ pyyaml ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index 26ddf9354df9f..d4b0d5a790689 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -10,13 +10,13 @@
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.1.70";
+  version = "0.1.72";
 
   src = fetchFromGitHub {
     owner = "ranaroussi";
     repo = pname;
-    rev = version;
-    sha256 = "sha256-Anvt+ag0PysGynQv4q+2IrQmCPZViGqWI4dgfLQWGds=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-7dA5+PJhuj/KAZoHMxx34yfyxDeiIf6DhufymfvD8Gg=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/youtube-search-python/default.nix b/pkgs/development/python-modules/youtube-search-python/default.nix
index 9383d4cb05988..11da850c992d3 100644
--- a/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -7,14 +7,14 @@
 
 buildPythonPackage rec {
   pname = "youtube-search-python";
-  version = "1.6.5";
+  version = "1.6.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1B7rppa+s/oE8w91Ca7ogjkNHu5pFSnNmDyUopCWEY8=";
+    hash = "sha256-RWjR12ns1+tLuDZfBO7G42TF9w7sezdl9UPa67E1/PU=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index 5fa96494cc16b..7c87b09c3bf42 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "zeroconf";
-  version = "0.38.6";
+  version = "0.38.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "jstasiak";
     repo = "python-zeroconf";
     rev = version;
-    hash = "sha256-P5yAXh/5J5/giOZTOuk9ay3PF8MNxPOJgtoWeX7xxFk=";
+    hash = "sha256-Q/rrN7xzbehwMa3yFVP5F9ztUcJCDsfBIGf0b/GPzLM=";
   };
 
   propagatedBuildInputs = [
@@ -39,7 +39,7 @@ buildPythonPackage rec {
     "test_launch_and_close_v4_v6"
     "test_launch_and_close_v6_only"
     "test_integration_with_listener_ipv6"
-    # Starting with 0.38.6: AssertionError: assert [('add', '_ht..._tcp.local.')]
+    # Starting with 0.38.7: AssertionError: assert [('add', '_ht..._tcp.local.')]
     "test_service_browser_expire_callbacks"
   ] ++ lib.optionals stdenv.isDarwin [
     "test_lots_of_names"
diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix
index 253962910acb1..ba3ea107ea02f 100644
--- a/pkgs/development/python-modules/zipp/default.nix
+++ b/pkgs/development/python-modules/zipp/default.nix
@@ -9,14 +9,14 @@
 
 let zipp = buildPythonPackage rec {
   pname = "zipp";
-  version = "3.7.0";
-  format = "setuptools";
+  version = "3.8.0";
+  format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d";
+    sha256 = "sha256-Vr+Krbg8JNtsS1d+E943TM+2faIHi+uh0DfBeYC/Q60=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python2-modules/botocore/default.nix b/pkgs/development/python2-modules/botocore/default.nix
index d05c2decf497f..f23a10579c6ee 100644
--- a/pkgs/development/python2-modules/botocore/default.nix
+++ b/pkgs/development/python2-modules/botocore/default.nix
@@ -4,7 +4,6 @@
 , python-dateutil
 , jmespath
 , docutils
-, ordereddict
 , simplejson
 , mock
 , nose
@@ -24,7 +23,6 @@ buildPythonPackage rec {
     python-dateutil
     jmespath
     docutils
-    ordereddict
     simplejson
     urllib3
   ];
diff --git a/pkgs/development/r-modules/default.nix b/pkgs/development/r-modules/default.nix
index 96eb2364d3f60..afd1bb4d7523e 100644
--- a/pkgs/development/r-modules/default.nix
+++ b/pkgs/development/r-modules/default.nix
@@ -938,6 +938,22 @@ let
   ];
 
   otherOverrides = old: new: {
+    gifski = old.gifski.overrideDerivation (attrs: {
+      cargoDeps = pkgs.rustPlatform.fetchCargoTarball {
+        src = attrs.src;
+        sourceRoot = "gifski/src/myrustlib";
+        hash = "sha256-vBrTQ+5JZA8554Aasbqw7mbaOfJNQjrOpG00IXAcamI=";
+      };
+
+      cargoRoot = "src/myrustlib";
+
+      nativeBuildInputs = attrs.nativeBuildInputs ++ [
+        pkgs.rustPlatform.cargoSetupHook
+        pkgs.cargo
+        pkgs.rustc
+      ];
+    });
+
     stringi = old.stringi.overrideDerivation (attrs: {
       postInstall = let
         icuName = "icudt52l";
diff --git a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
index 3106e9c24ca76..822996b7cbf68 100644
--- a/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
+++ b/pkgs/development/ruby-modules/bundled-common/gen-bin-stubs.rb
@@ -41,6 +41,20 @@ Gem.paths = { 'GEM_HOME' => #{bundle_path.dump} }
 $LOAD_PATH.unshift #{File.join(bundler_path, "/lib").dump}
 
 require 'bundler'
+# Monkey-patch out the check that Bundler performs to determine
+# whether the bundler env is writable. It's not writable, even for
+# root! And for this use of Bundler, it shouldn't be necessary since
+# we're not trying to perform any package management operations, only
+# produce a Gem path. Thus, we replace it with a method that will
+# always return false, to squelch a warning from Bundler saying that
+# sudo may be required.
+module Bundler
+  class <<self
+    def requires_sudo?
+      return false
+    end
+  end
+end
 Bundler.setup(#{groups.map(&:dump).join(', ')})
 
 load Gem.bin_path(#{name.dump}, #{exe.dump})
diff --git a/pkgs/development/ruby-modules/gem-config/default.nix b/pkgs/development/ruby-modules/gem-config/default.nix
index 47e70aaa8f0eb..6f9da13f50342 100644
--- a/pkgs/development/ruby-modules/gem-config/default.nix
+++ b/pkgs/development/ruby-modules/gem-config/default.nix
@@ -294,6 +294,14 @@ in
     propagatedBuildInputs = [ gobject-introspection wrapGAppsHook glib ];
   };
 
+  gollum = attrs: {
+    dontBuild = false;
+    postPatch = ''
+      substituteInPlace bin/gollum \
+        --replace "/usr/bin/env -S ruby" "${ruby}/bin/ruby"
+    '';
+  };
+
   grpc = attrs: {
     nativeBuildInputs = [ pkg-config ] ++ lib.optional stdenv.isDarwin libtool;
     buildInputs = [ openssl ];
diff --git a/pkgs/development/tools/analysis/actionlint/default.nix b/pkgs/development/tools/analysis/actionlint/default.nix
index 9e94fe79d358c..b4d9dd9698df9 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.6.13";
+  version = "1.6.14";
 
   subPackages = [ "cmd/actionlint" ];
 
@@ -18,10 +18,10 @@ buildGoModule rec {
     owner = "rhysd";
     repo = "actionlint";
     rev = "v${version}";
-    sha256 = "sha256-EZqWamNfv4+f1Ajm6StEdDLOwwWdJr1mrzd3+ba3YHI=";
+    sha256 = "sha256-eBIAm+mgjOLePxJ6b9d3cr3k0vqaDqLzorZg/ZplpcM=";
   };
 
-  vendorSha256 = "sha256-fADaYrGtg4B7XqD2MUMw30xfGT70Hx+iue79AIDsSRc=";
+  vendorSha256 = "sha256-wKK597mk51jT6s1eKA4AjiCvI4IkZ9WjMXxaY8AWwkU=";
 
   nativeBuildInputs = [ makeWrapper ronn installShellFiles ];
 
diff --git a/pkgs/development/tools/analysis/autoflake/default.nix b/pkgs/development/tools/analysis/autoflake/default.nix
index 03e01aadb7167..adc861588dd5a 100644
--- a/pkgs/development/tools/analysis/autoflake/default.nix
+++ b/pkgs/development/tools/analysis/autoflake/default.nix
@@ -1,22 +1,36 @@
-{ lib, python3Packages }:
+{ lib
+, python3
+}:
 
-with python3Packages;
-buildPythonApplication rec {
+python3.pkgs.buildPythonApplication rec {
   pname = "autoflake";
   version = "1.4";
 
-  src = fetchPypi {
+  src = python3.pkgs.fetchPypi {
     inherit pname version;
-    sha256 = "61a353012cff6ab94ca062823d1fb2f692c4acda51c76ff83a8d77915fba51ea";
+    hash = "sha256-YaNTASz/arlMoGKCPR+y9pLErNpRx2/4Oo13kV+6Ueo=";
   };
 
-  propagatedBuildInputs = [ pyflakes ];
+  propagatedBuildInputs = with python3.pkgs; [
+    pyflakes
+  ];
 
-  doCheck = true;
+  checkInputs = with python3.pkgs; [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [
+    "autoflake"
+  ];
+
+  disabledTests = [
+    # AssertionError: True is not false
+    "test_is_literal_or_name"
+  ];
 
   meta = with lib; {
+    description = "Tool to remove unused imports and unused variables";
     homepage = "https://github.com/myint/autoflake";
-    description = "A simple program which removes unused imports and unused variables as reported by pyflakes";
     license = licenses.mit;
     maintainers = with maintainers; [ yuriaisaka ];
   };
diff --git a/pkgs/development/tools/analysis/checkov/default.nix b/pkgs/development/tools/analysis/checkov/default.nix
index 9ba1d1ac38fa3..6cb98bf10d4dc 100644
--- a/pkgs/development/tools/analysis/checkov/default.nix
+++ b/pkgs/development/tools/analysis/checkov/default.nix
@@ -32,14 +32,14 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "checkov";
-  version = "2.0.1210";
+  version = "2.1.5";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "bridgecrewio";
     repo = pname;
     rev = version;
-    hash = "sha256-2NVr8XUddKfsfCHEv9tvEwbLZRVzLTmlVkZ7+anmtA4=";
+    hash = "sha256-bH7W+GZ4O32ty5YD4hfKz2R10v7zEJLU1kLzKvdx3E4=";
   };
 
   nativeBuildInputs = with py.pkgs; [
diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix
index 31f022263b22f..1f07c8ff030f0 100644
--- a/pkgs/development/tools/analysis/checkstyle/default.nix
+++ b/pkgs/development/tools/analysis/checkstyle/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "10.2";
+  version = "10.3";
   pname = "checkstyle";
 
   src = fetchurl {
     url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar";
-    sha256 = "sha256-jcu7KMeYbHZW4zswaV/cLkY4CLX9vJIcElXJq06EfRY=";
+    sha256 = "sha256-3n5gXGHznrLGL9hudk1nZs1GJ5V2qzqVPCtn1fqujB0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/analysis/cvehound/default.nix b/pkgs/development/tools/analysis/cvehound/default.nix
index 3fe3c043c238b..12d36dc6089ef 100644
--- a/pkgs/development/tools/analysis/cvehound/default.nix
+++ b/pkgs/development/tools/analysis/cvehound/default.nix
@@ -7,13 +7,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cvehound";
-  version = "1.0.9";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "evdenis";
     repo = "cvehound";
-    rev = version;
-    hash = "sha256-qwQfpelY1Air3wVQ3RziM/+MNOR3jiKmLpO2w6kXZwM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-4+0Virpsq4mwOIpostS87VYTX8hsumXEL1w8FiOrNtA=";
   };
 
   makeWrapperArgs = [
diff --git a/pkgs/development/tools/analysis/radare2/default.nix b/pkgs/development/tools/analysis/radare2/default.nix
index e344f3f7874da..63594300e835d 100644
--- a/pkgs/development/tools/analysis/radare2/default.nix
+++ b/pkgs/development/tools/analysis/radare2/default.nix
@@ -31,8 +31,8 @@ let
   arm64 = fetchFromGitHub {
     owner = "radareorg";
     repo = "vector35-arch-arm64";
-    rev = "3c5eaba46dab72ecb7d5f5b865a13fdeee95b464";
-    sha256 = "sha256-alcGEi+D8CptXzfznnuxQKCvU2mbzn2sQge5jSqLVpg=";
+    rev = "9ab2b0bedde459dc86e079718333de4a63bbbacb";
+    sha256 = "sha256-2KLtjgCqHzBBlo9ImZ8WJ1bsWy/kdJCjCFxlLE+HxoI=";
   };
   armv7 = fetchFromGitHub {
     owner = "radareorg";
@@ -44,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "radare2";
-  version = "5.7.0";
+  version = "5.7.2";
 
   src = fetchFromGitHub {
     owner = "radare";
     repo = "radare2";
     rev = version;
-    sha256 = "sha256-tCFi1m3xyQlG+8FijjQh8PMwg6CIfIxvLkd5xCIZHHo=";
+    sha256 = "sha256-TZeW+9buJvCOudHsLTMITFpRUlmNpo71efc3xswJoPw=";
   };
 
   preBuild = ''
@@ -110,7 +110,6 @@ stdenv.mkDerivation rec {
   ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
     description = "unix-like reverse engineering framework and commandline tools";
     homepage = "https://radare.org/";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/tools/analysis/tflint/default.nix b/pkgs/development/tools/analysis/tflint/default.nix
index 2ed23f43a4710..d37b514138034 100644
--- a/pkgs/development/tools/analysis/tflint/default.nix
+++ b/pkgs/development/tools/analysis/tflint/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "tflint";
-  version = "0.37.0";
+  version = "0.38.1";
 
   src = fetchFromGitHub {
     owner = "terraform-linters";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-2fcrKwbYuCOZE++Sin0zNuGaBQQd0dNs1MRL/doOLOw=";
+    sha256 = "sha256-sBvfcAOkfZ5V7SrLBWrSQr5zXwqbwOBmYehujk0y6eg=";
   };
 
   vendorSha256 = "sha256-2v070TwDWkN4HZ/EOu85lotA9qIKLgpwD9TrfH7pGY4=";
diff --git a/pkgs/development/tools/analysis/tfsec/default.nix b/pkgs/development/tools/analysis/tfsec/default.nix
index 9dc35bcb78952..288549313d204 100644
--- a/pkgs/development/tools/analysis/tfsec/default.nix
+++ b/pkgs/development/tools/analysis/tfsec/default.nix
@@ -5,23 +5,24 @@
 
 buildGoModule rec {
   pname = "tfsec";
-  version = "1.24.0";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-puH8MoY04OokEcHMn93i/7jBIYbXtYBh2BcBwmBZJVs=";
+    hash = "sha256-IYrLf2StBzIIl6xhN0gbgKGeopetuAko+kXjvlXAsBg=";
   };
 
   ldflags = [
-    "-s" "-w"
+    "-s"
+    "-w"
     "-X github.com/aquasecurity/tfsec/version.Version=${version}"
     ## not sure if this is needed (https://github.com/aquasecurity/tfsec/blob/master/.goreleaser.yml#L6)
     # "-extldflags '-fno-PIC -static'"
   ];
 
-  vendorSha256 = "sha256-Y6ZsLezx7rhGFkWVBpwYlfXWJU9V4u4lJ4AsyJbXTUk=";
+  vendorSha256 = "sha256-AayEYoybJGWdRES73wlf7pLpMukBbuxtaOU/RT9ObkI=";
 
   subPackages = [
     "cmd/tfsec"
diff --git a/pkgs/development/tools/apko/default.nix b/pkgs/development/tools/apko/default.nix
index 05342e7714e97..ee2d7f24a6b61 100644
--- a/pkgs/development/tools/apko/default.nix
+++ b/pkgs/development/tools/apko/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "apko";
-  version = "0.3.3";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "chainguard-dev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-j/tfa9O10HSEwzuXE2mjV2TVYuwk9lpA0PgsKDm70uI=";
+    sha256 = "sha256-gmBcN1lxzkkRpiUUWv87ji/G4Uy3DA8a6+6Qs+p/2mg=";
     # 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;
@@ -24,7 +24,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-jsNSYlTXUAUPG7vccjmonZUN1HAmULprCmJ1TYLYP00=";
+  vendorSha256 = "sha256-3gRECgKvGqkgBzB3SSxm6/LxZG8RxhjoC6Q7DZj/Has=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/development/tools/appthreat-depscan/default.nix b/pkgs/development/tools/appthreat-depscan/default.nix
index 5973b25decd62..0481c8a5be0eb 100644
--- a/pkgs/development/tools/appthreat-depscan/default.nix
+++ b/pkgs/development/tools/appthreat-depscan/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "appthreat-depscan";
-  version = "2.1.3";
+  version = "2.1.7";
 
   src = fetchFromGitHub {
     owner = "AppThreat";
     repo = "dep-scan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6ifpPNBcqaNGVQjZQ3G48QuwTRRn4zL3awa06yOeveU=";
+    hash = "sha256-hudPySVFewKrXI5FAYBCPTkjI4W7/kmnNwhnjxMhkrw=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/asmfmt/default.nix b/pkgs/development/tools/asmfmt/default.nix
index 81f7aa764f27c..953a5469ec51d 100644
--- a/pkgs/development/tools/asmfmt/default.nix
+++ b/pkgs/development/tools/asmfmt/default.nix
@@ -1,14 +1,12 @@
-{ buildGoPackage
+{ buildGoModule
 , lib
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "asmfmt";
   version = "1.3.2";
 
-  goPackagePath = "github.com/klauspost/asmfmt";
-
   src = fetchFromGitHub {
     owner = "klauspost";
     repo = "asmfmt";
@@ -16,17 +14,26 @@ buildGoPackage rec {
     sha256 = "sha256-YxIVqPGsqxvOY0Qz4Jw5FuO9IbplCICjChosnHrSCgc=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
 
   # This package comes with its own version of goimports, gofmt and goreturns
   # but these binaries are outdated and are offered by other packages.
   subPackages = [ "cmd/asmfmt" ];
 
+  ldflags = [ "-s" "-w" ];
+
+  # There are no tests.
+  doCheck = false;
+
   meta = with lib; {
-    description = "Go Assembler Formatter";
+    description = "Go assembler formatter";
+    longDescription = ''
+      This will format your assembler code in a similar way that gofmt formats
+      your Go code.
+    '';
     homepage = "https://github.com/klauspost/asmfmt";
+    changelog = "https://github.com/klauspost/asmfmt/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/asmfmt/deps.nix b/pkgs/development/tools/asmfmt/deps.nix
deleted file mode 100644
index 0288fc206d492..0000000000000
--- a/pkgs/development/tools/asmfmt/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
-      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
-    };
-  }
-  {
-    goPackagePath = "sourcegraph.com/sqs/goreturns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sqs/goreturns";
-      rev = "538ac601451833c7c4449f8431d65d53c1c60e41";
-      sha256 = "0gcplch8zmcgwl6xvcffxg50g3xnf60n7dlqxgn51179qcjr354p";
-    };
-  }
-]
diff --git a/pkgs/development/tools/azure-functions-core-tools/default.nix b/pkgs/development/tools/azure-functions-core-tools/default.nix
index d201c64f08341..27aa1e2f37144 100644
--- a/pkgs/development/tools/azure-functions-core-tools/default.nix
+++ b/pkgs/development/tools/azure-functions-core-tools/default.nix
@@ -66,6 +66,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://github.com/Azure/azure-functions-core-tools";
     description = "Command line tools for Azure Functions";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.mit;
     maintainers = with maintainers; [ jshcmpbll ];
     platforms = platforms.linux;
diff --git a/pkgs/development/tools/bazelisk/default.nix b/pkgs/development/tools/bazelisk/default.nix
index 2ba077fa9439c..6eace485507a3 100644
--- a/pkgs/development/tools/bazelisk/default.nix
+++ b/pkgs/development/tools/bazelisk/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "bazelisk";
-  version = "1.11.0";
+  version = "1.12.0";
 
   src = fetchFromGitHub {
     owner = "bazelbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9J49+1fI3wmHQqYgdoGgaAuVMA9eG7wrFe7dQEectvI=";
+    sha256 = "sha256-RWVD6tngFE3i8JDB9b0JZz8Bd+u97b4ilmEF0N8Pm4Y=";
   };
 
-  vendorSha256 = "sha256-+zJEB9FyVvxHdwR/dAn56jrMbgVBhlbziVFe2WCQFfE=";
+  vendorSha256 = "sha256-6rJa/c5uCnBQh0VVlzefXXPuJNFi+R8X2r+o7GBLIiE=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/beancount-language-server/default.nix b/pkgs/development/tools/beancount-language-server/default.nix
index 1766f22ee1809..b415906eead76 100644
--- a/pkgs/development/tools/beancount-language-server/default.nix
+++ b/pkgs/development/tools/beancount-language-server/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "beancount-language-server";
-  version = "1.1.1";
+  version = "1.2.5";
 
   src = fetchFromGitHub {
     owner = "polarmutex";
     repo = "beancount-language-server";
     rev = "v${version}";
-    sha256 = "sha256-CkwNxamkErRo3svJNth2F8NSqlJNX+1S/srKu6Z+mX4=";
+    sha256 = "sha256-AbljduMz4mz5InsHKCq0K6i9F/lBgvdy0+W8aclr0R0=";
   };
 
-  cargoSha256 = "sha256-NTUs9ADTn+KoE08FikRHrdptZkrUqnjVIlcr8RtDvic=";
+  cargoSha256 = "sha256-jrxVMGJk4o9aROtFZBc8G/HP5xm9MjVyewww1DzrRdM=";
 
   doInstallCheck = true;
   postInstallCheck = ''
diff --git a/pkgs/development/tools/buf/default.nix b/pkgs/development/tools/buf/default.nix
index 8fcc8bad2269e..c853e361bae97 100644
--- a/pkgs/development/tools/buf/default.nix
+++ b/pkgs/development/tools/buf/default.nix
@@ -10,16 +10,16 @@
 
 buildGoModule rec {
   pname = "buf";
-  version = "1.5.0";
+  version = "1.6.0";
 
   src = fetchFromGitHub {
     owner = "bufbuild";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Jcj1tpcG64mSVn444isGsK9AcITh171ibECukv3bXDI=";
+    sha256 = "sha256-sqByTrhtaytBMD8ULOP+xoacxMD6sw3n2XYVZ1hWIJ4=";
   };
 
-  vendorSha256 = "sha256-aHGV8UfPn7xsySPXRSzsEpcaz1Ll49Mj1S9izvaIRWY=";
+  vendorSha256 = "sha256-H000xhqjSFXGW3Saa/ryYdVcDl2ieeSW3dq3DPVX+c0=";
 
   patches = [
     # Skip a test that requires networking to be available to work.
diff --git a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
index 56a4d5b3b5a0c..aa9794b5869c0 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_4/default.nix
@@ -257,7 +257,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
+        buildInputs = attrs.buildInputs or [];
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -323,13 +323,13 @@ stdenv.mkDerivation rec {
 
     in (if !stdenv.hostPlatform.isDarwin then {
       # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self; };
     } else {}) // {
-      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
-      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
-      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
+      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self; };
+      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
 
       bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
@@ -591,6 +591,7 @@ stdenv.mkDerivation rec {
     # The binary _must_ exist with this naming if your project contains a .bazelversion
     # file.
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+    wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     mkdir $out/share
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 d0b71f3760c89..c9c435a0b34d7 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel_5/default.nix
@@ -219,7 +219,7 @@ stdenv.mkDerivation rec {
       runLocal = name: attrs: script:
       let
         attrs' = removeAttrs attrs [ "buildInputs" ];
-        buildInputs = [ python3 which ] ++ (attrs.buildInputs or []);
+        buildInputs = attrs.buildInputs or [];
       in
       runCommandCC name ({
         inherit buildInputs;
@@ -285,13 +285,13 @@ stdenv.mkDerivation rec {
 
     in (if !stdenv.hostPlatform.isDarwin then {
       # `extracted` doesn’t work on darwin
-      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; };
+      shebang = callPackage ../shebang-test.nix { inherit runLocal extracted bazelTest distDir; bazel = bazel_self;};
     } else {}) // {
-      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; };
-      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; };
-      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; };
-      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; };
+      bashTools = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self;};
+      cpp = callPackage ../cpp-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self;};
+      java = callPackage ../java-test.nix { inherit runLocal bazelTest bazel-examples distDir; bazel = bazel_self;};
+      protobuf = callPackage ../protobuf-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self; };
+      pythonBinPath = callPackage ../python-bin-path-test.nix { inherit runLocal bazelTest distDir; bazel = bazel_self;};
 
       bashToolsWithNixHacks = callPackage ../bash-tools-test.nix { inherit runLocal bazelTest distDir; bazel = bazelWithNixHacks; };
 
@@ -586,6 +586,7 @@ stdenv.mkDerivation rec {
     # The binary _must_ exist with this naming if your project contains a .bazelversion
     # file.
     cp ./bazel_src/scripts/packages/bazel.sh $out/bin/bazel
+    wrapProgram $out/bin/bazel $wrapperfile --suffix PATH : ${defaultShellPath}
     mv ./bazel_src/output/bazel $out/bin/bazel-${version}-${system}-${arch}
 
     mkdir $out/share
@@ -662,4 +663,3 @@ stdenv.mkDerivation rec {
   dontStrip = true;
   dontPatchELF = true;
 }
-
diff --git a/pkgs/development/tools/build-managers/bloop/default.nix b/pkgs/development/tools/build-managers/bloop/default.nix
index aa0e9adc2fc8b..1a7060a2f042f 100644
--- a/pkgs/development/tools/build-managers/bloop/default.nix
+++ b/pkgs/development/tools/build-managers/bloop/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     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";
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/development/tools/build-managers/conan/default.nix b/pkgs/development/tools/build-managers/conan/default.nix
index 78e54028cc9cd..a72106ace3c4d 100644
--- a/pkgs/development/tools/build-managers/conan/default.nix
+++ b/pkgs/development/tools/build-managers/conan/default.nix
@@ -21,17 +21,6 @@ let newPython = python3.override {
         sha256 = "1dv6mjsm67l1razcgmq66riqmsb36wns17mnipqr610v0z0zf5j0";
       };
     });
-    # https://github.com/conan-io/conan/issues/8876
-    pyjwt = super.pyjwt.overridePythonAttrs (oldAttrs: rec {
-      version = "1.7.1";
-      src = oldAttrs.src.override {
-        inherit version;
-        sha256 = "8d59a976fb773f3e6a39c85636357c4f0e242707394cadadd9814f5cbaa20e96";
-      };
-      disabledTests = [
-        "test_ec_verify_should_return_false_if_signature_invalid"
-      ];
-    });
     distro = super.distro.overridePythonAttrs (oldAttrs: rec {
       version = "1.5.0";
       src = oldAttrs.src.override {
@@ -43,14 +32,14 @@ let newPython = python3.override {
 };
 
 in newPython.pkgs.buildPythonApplication rec {
-  version = "1.47.0";
+  version = "1.49.0";
   pname = "conan";
 
   src = fetchFromGitHub {
     owner = "conan-io";
     repo = "conan";
     rev = version;
-    sha256 = "1zs2xb22rsy5fsc0fd7c95vrx1mfz7vasyg1lqkzyfimvn5zah6n";
+    hash = "sha256-BJGstNAnAZtpwagsCY+4quTd0/79zL+v4ifKikS3vaw=";
   };
 
   propagatedBuildInputs = with newPython.pkgs; [
diff --git a/pkgs/development/tools/build-managers/gradle/default.nix b/pkgs/development/tools/build-managers/gradle/default.nix
index 1ec162fd3403d..074a2945d5469 100644
--- a/pkgs/development/tools/build-managers/gradle/default.nix
+++ b/pkgs/development/tools/build-managers/gradle/default.nix
@@ -86,7 +86,10 @@ rec {
         homepage = "https://www.gradle.org/";
         changelog = "https://docs.gradle.org/${version}/release-notes.html";
         downloadPage = "https://gradle.org/next-steps/?version=${version}";
-        sourceProvenance = with sourceTypes; [ binaryBytecode ];
+        sourceProvenance = with sourceTypes; [
+          binaryBytecode
+          binaryNativeCode
+        ];
         license = licenses.asl20;
         platforms = if (supportedPlatforms != null) then supportedPlatforms else platforms.unix;
         maintainers = with maintainers; [ lorenzleutgeb liff ];
diff --git a/pkgs/development/tools/build-managers/msbuild/default.nix b/pkgs/development/tools/build-managers/msbuild/default.nix
index 5c3225c683f75..31c1b5dc521bf 100644
--- a/pkgs/development/tools/build-managers/msbuild/default.nix
+++ b/pkgs/development/tools/build-managers/msbuild/default.nix
@@ -143,6 +143,10 @@ EOF
   meta = with lib; {
     description = "Mono version of Microsoft Build Engine, the build platform for .NET, and Visual Studio";
     homepage = "https://github.com/mono/msbuild";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # dependencies
+    ];
     license = licenses.mit;
     maintainers = with maintainers; [ jdanek ];
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index 59d9441a59052..19a72b70f9d91 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -39,6 +39,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.scala-sbt.org/";
     license = licenses.bsd3;
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     description = "A build tool for Scala, Java and more";
     maintainers = with maintainers; [ nequissimus ];
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/build-managers/scala-cli/default.nix b/pkgs/development/tools/build-managers/scala-cli/default.nix
index 1eb6b92cbd444..a9ec8b88df070 100644
--- a/pkgs/development/tools/build-managers/scala-cli/default.nix
+++ b/pkgs/development/tools/build-managers/scala-cli/default.nix
@@ -1,5 +1,16 @@
-{ stdenv, coreutils, lib, installShellFiles, zlib, autoPatchelfHook, fetchurl, callPackage }:
+{ stdenv
+, coreutils
+, lib
+, installShellFiles
+, zlib
+, autoPatchelfHook
+, fetchurl
+, makeWrapper
+, callPackage
+, jre
+}:
 
+assert lib.versionAtLeast jre.version "17.0.0";
 let
   pname = "scala-cli";
   sources = builtins.fromJSON (builtins.readFile ./sources.json);
@@ -9,7 +20,7 @@ let
 in
 stdenv.mkDerivation {
   inherit pname version;
-  nativeBuildInputs = [ installShellFiles ]
+  nativeBuildInputs = [ installShellFiles makeWrapper ]
     ++ lib.optional stdenv.isLinux autoPatchelfHook;
   buildInputs = [ coreutils zlib stdenv.cc.cc ];
   src =
@@ -28,7 +39,9 @@ stdenv.mkDerivation {
 
   installPhase = ''
     runHook preInstall
-    install -Dm755 scala-cli $out/bin/scala-cli
+    install -Dm755 scala-cli $out/bin/.scala-cli-wrapped
+    makeWrapper $out/bin/.scala-cli-wrapped $out/bin/scala-cli \
+      --set JAVA_HOME ${jre.home}
     runHook postInstall
   '';
 
@@ -50,6 +63,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "https://scala-cli.virtuslab.org";
     downloadPage = "https://github.com/VirtusLab/scala-cli/releases/v${version}";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     description = "Command-line tool to interact with the Scala language";
     maintainers = [ maintainers.kubukoz ];
diff --git a/pkgs/development/tools/build-managers/scala-cli/sources.json b/pkgs/development/tools/build-managers/scala-cli/sources.json
index 464675569fd77..bd3a4efc57bfd 100644
--- a/pkgs/development/tools/build-managers/scala-cli/sources.json
+++ b/pkgs/development/tools/build-managers/scala-cli/sources.json
@@ -1,13 +1,17 @@
 {
-  "version": "0.1.7",
+  "version": "0.1.8",
   "assets": {
+    "aarch64-darwin": {
+      "asset": "scala-cli-x86_64-apple-darwin.gz",
+      "sha256": "1dxhwhdk7kflzn4ckqxfxkz4v26l39ki6ykpml6k6kvy3nn0wwz3"
+    },
     "x86_64-darwin": {
       "asset": "scala-cli-x86_64-apple-darwin.gz",
-      "sha256": "1sly3s9y742nms8kqwh2cikjkcnbkkafsql8sw2w2zr53z28g10v"
+      "sha256": "1dxhwhdk7kflzn4ckqxfxkz4v26l39ki6ykpml6k6kvy3nn0wwz3"
     },
     "x86_64-linux": {
       "asset": "scala-cli-x86_64-pc-linux.gz",
-      "sha256": "1lgcbxzhwqfnj6n81w1ssdcrn1j0c93chqgh0zzqi08w8wk3x4j5"
+      "sha256": "0hj22lcmbbfgv69k778myb0kp79gbg7xx9a3b66g3svxmanlbvxf"
     }
   }
 }
diff --git a/pkgs/development/tools/cambalache/default.nix b/pkgs/development/tools/cambalache/default.nix
index 5845ed033c3e9..781dd86cd7593 100644
--- a/pkgs/development/tools/cambalache/default.nix
+++ b/pkgs/development/tools/cambalache/default.nix
@@ -12,13 +12,15 @@
 , glib
 , gtk3
 , gtk4
+, libadwaita
+, libhandy
 , webkitgtk
 , nix-update-script
 }:
 
 python3.pkgs.buildPythonApplication rec {
   pname = "cambalache";
-  version = "0.8.2";
+  version = "0.10.2";
 
   format = "other";
 
@@ -27,7 +29,7 @@ python3.pkgs.buildPythonApplication rec {
     owner = "jpu";
     repo = pname;
     rev = version;
-    sha256 = "sha256-1+IoBoaNHwvN8W+KRyV5cTFkFG+pTHJBehQ2VosCEfs=";
+    sha256 = "sha256-/0HMtNR9R/Oq1ZoBaLe4iU0OOVZUozuo8gP0j9J8hdc=";
   };
 
   nativeBuildInputs = [
@@ -50,6 +52,9 @@ python3.pkgs.buildPythonApplication rec {
     gtk3
     gtk4
     webkitgtk
+    # For extra widgets support.
+    libadwaita
+    libhandy
   ];
 
   # Not compatible with gobject-introspection setup hooks.
diff --git a/pkgs/development/tools/ccloud-cli/default.nix b/pkgs/development/tools/ccloud-cli/default.nix
index 2a3d1de41a11a..f3754c6119ea3 100644
--- a/pkgs/development/tools/ccloud-cli/default.nix
+++ b/pkgs/development/tools/ccloud-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Confluent Cloud CLI";
     homepage = "https://docs.confluent.io/current/cloud/cli/index.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ kalbasit ];
 
diff --git a/pkgs/development/tools/check/default.nix b/pkgs/development/tools/check/default.nix
index a28124828f90b..f74578e25a0d3 100644
--- a/pkgs/development/tools/check/default.nix
+++ b/pkgs/development/tools/check/default.nix
@@ -1,30 +1,26 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitLab
 }:
 
-buildGoPackage rec {
-  pname = "check-unstable";
-  version = "2018-09-12";
-  rev = "88db195993f8e991ad402754accd0635490769f9";
-
-  goPackagePath = "gitlab.com/opennota/check";
+buildGoModule rec {
+  pname = "check";
+  version = "unstable-2018-12-24";
+  rev = "ccaba434e62accd51209476ad093810bd27ec150";
 
   src = fetchFromGitLab {
-    inherit rev;
-
     owner = "opennota";
     repo = "check";
-    sha256 = "1983xmdkgpqda4qz8ashc6xv1zg5jl4zly3w566grxc5sfxpgf0i";
+    inherit rev;
+    sha256 = "sha256-u8U/62LZEn1ffwdGsUCGam4HAk7b2LetomCLZzHuuas=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-DyysiVYFpncmyCzlHIOEtWlCMpm90AC3gdItI9WinSo=";
 
   meta = with lib; {
     description = "A set of utilities for checking Go sources";
     homepage = "https://gitlab.com/opennota/check";
     license = licenses.gpl3;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/check/deps.nix b/pkgs/development/tools/check/deps.nix
deleted file mode 100644
index b9c50d95d117c..0000000000000
--- a/pkgs/development/tools/check/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "677d2ff680c1";
-      sha256 = "0vp1w1haqcjd82dxd6x9xrllbfwvm957rxwkpji96cgvhsli2bq5";
-    };
-  }
-]
diff --git a/pkgs/development/tools/clj-kondo/default.nix b/pkgs/development/tools/clj-kondo/default.nix
index 5ef65dde14d63..3fe90a3004c08 100644
--- a/pkgs/development/tools/clj-kondo/default.nix
+++ b/pkgs/development/tools/clj-kondo/default.nix
@@ -2,11 +2,11 @@
 
 buildGraalvmNativeImage rec {
   pname = "clj-kondo";
-  version = "2022.04.25";
+  version = "2022.06.22";
 
   src = fetchurl {
     url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
-    sha256 = "sha256-BqqeJQ7mBMofX6efJCSUr6qMZXubO9CuDiCNNNKT3DA=";
+    sha256 = "sha256-g+0BYwk9bws+c7CfLGf88r2nfcDBCdDKyqRS285oIQM=";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/cloud-nuke/default.nix b/pkgs/development/tools/cloud-nuke/default.nix
index 7f98d9ee3767e..3354b6f693711 100644
--- a/pkgs/development/tools/cloud-nuke/default.nix
+++ b/pkgs/development/tools/cloud-nuke/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "cloud-nuke";
-  version = "0.11.6";
+  version = "0.11.8";
 
   src = fetchFromGitHub {
     owner = "gruntwork-io";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-wsCe32Ui+czM0+qpMxgTahJ7FlcnFMkueEkrcwm1sdE=";
+    sha256 = "sha256-0GP7T/OspaJVATd0dYNVniDh0XAiL09dopNnOQrLpCs=";
   };
 
-  vendorSha256 = "sha256-McCbogZvgm9pnVjay9O2CxAh+653JnDMcU4CHD0PTPI=";
+  vendorSha256 = "sha256-4BUKUDr0bcd4AcMGIDC7HIhDI7pdTu2efkLqRD7Piw0=";
 
   ldflags = [ "-s" "-w" "-X main.VERSION=${version}" ];
 
diff --git a/pkgs/development/tools/comby/default.nix b/pkgs/development/tools/comby/default.nix
index 9b77740979e5f..cd3251841ad14 100644
--- a/pkgs/development/tools/comby/default.nix
+++ b/pkgs/development/tools/comby/default.nix
@@ -14,7 +14,7 @@ let
   mkCombyPackage = { pname, extraBuildInputs ? [ ], extraNativeInputs ? [ ], preBuild ? "" }:
     ocamlPackages.buildDunePackage rec {
       inherit pname preBuild;
-      version = "1.7.0";
+      version = "1.7.1";
       useDune2 = true;
       minimumOcamlVersion = "4.08.1";
       doCheck = true;
@@ -23,7 +23,7 @@ let
         owner = "comby-tools";
         repo = "comby";
         rev = version;
-        sha256 = "sha256-Y2RcYvJOSqppmxxG8IZ5GlFkXCOIQU+1jJZ6j+PBHC4";
+        sha256 = "0k60hj8wcrvrk0isr210vnalylkd63ria1kgz5n49inl7w1hfwpv";
       };
 
       nativeBuildInputs = [
@@ -82,6 +82,7 @@ mkCombyPackage {
     ocamlPackages.parany
     ocamlPackages.conduit-lwt-unix
     ocamlPackages.lwt_react
+    ocamlPackages.tar-unix
     ocamlPackages.tls
     combyKernel
     combySemantic
diff --git a/pkgs/development/tools/confluent-cli/default.nix b/pkgs/development/tools/confluent-cli/default.nix
index 059a3272038fe..84a681c9b6bff 100644
--- a/pkgs/development/tools/confluent-cli/default.nix
+++ b/pkgs/development/tools/confluent-cli/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Confluent CLI";
     homepage = "https://docs.confluent.io/confluent-cli/current/overview.html";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ rguevara84 ];
 
diff --git a/pkgs/development/tools/conftest/default.nix b/pkgs/development/tools/conftest/default.nix
index 2bd5789c3e3c1..0aebf2363f53d 100644
--- a/pkgs/development/tools/conftest/default.nix
+++ b/pkgs/development/tools/conftest/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "conftest";
-  version = "0.32.0";
+  version = "0.32.1";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "conftest";
     rev = "v${version}";
-    sha256 = "sha256-fPg3376QtbjrUJWZxjRqEFL2cWy1xb7vUX1Lfp5WFmY=";
+    sha256 = "sha256-lmz5ALGvTwPiz0PaGYlL3UTd6tYgO5rpUHXFoLKgS7E=";
   };
-  vendorSha256 = "sha256-/RfIjCI2RMktUSVEoyJqMwdmlW6lGvXanX7RBxiaTyE=";
+  vendorSha256 = "sha256-Y0S759iPSU7kboa9GxC56QR3caOG9gEmEG44B1Lp3w4=";
 
   ldflags = [
     "-s"
diff --git a/pkgs/development/tools/continuous-integration/dagger/default.nix b/pkgs/development/tools/continuous-integration/dagger/default.nix
index 79538e4be2cec..86e4525212afc 100644
--- a/pkgs/development/tools/continuous-integration/dagger/default.nix
+++ b/pkgs/development/tools/continuous-integration/dagger/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "dagger";
-  version = "0.2.18";
+  version = "0.2.20";
 
   src = fetchFromGitHub {
     owner = "dagger";
     repo = "dagger";
     rev = "v${version}";
-    sha256 = "sha256-nxBevv7COhywEYeRq1gXAuLswxe2WgHI0Pm78IvzapM=";
+    sha256 = "sha256-TlysP5xf8LJoB9MU/sdQIM6yMfsaI8SP+drRlfG+tQ4=";
   };
 
-  vendorSha256 = "sha256-27cXvgpw4Te0w/rMk6g5jF3UY6N8saArUwfbVO6xpes=";
+  vendorSha256 = "sha256-pE6g5z4rOQlqmI9LZQXoI6fRmSTXDv5H8Y+pNXVIcOU=";
 
   subPackages = [
     "cmd/dagger"
diff --git a/pkgs/development/tools/continuous-integration/drone/default.nix b/pkgs/development/tools/continuous-integration/drone/default.nix
index d043f25f4550c..313099d45e072 100644
--- a/pkgs/development/tools/continuous-integration/drone/default.nix
+++ b/pkgs/development/tools/continuous-integration/drone/default.nix
@@ -3,9 +3,9 @@
 
 buildGoModule rec {
   pname = "drone.io${lib.optionalString (!enableUnfree) "-oss"}";
-  version = "2.12.0";
+  version = "2.12.1";
 
-  vendorSha256 = "sha256-y9knuU/+hkXBLgMmJ5Trp0A3lEiLC1I2Dh85/CFBXow=";
+  vendorSha256 = "sha256-hKJFYjIJVuGBiSIeTitI7kZdGjSRUTCPMhH72O0wm3I=";
 
   doCheck = false;
 
@@ -13,7 +13,7 @@ buildGoModule rec {
     owner = "harness";
     repo = "drone";
     rev = "v${version}";
-    sha256 = "sha256-Bpv08iD0wRiscwNE8TIBgZMlChQFQEegbjkzDv4mIYU=";
+    sha256 = "sha256-ZngZzpFjQLkiBDNrmgPXPCfDoeZbX/ynBXkuNrrGz3E=";
   };
 
   tags = lib.optionals (!enableUnfree) [ "oss" "nolimit" ];
diff --git a/pkgs/development/tools/continuous-integration/fly/default.nix b/pkgs/development/tools/continuous-integration/fly/default.nix
index ad9752872738d..85eb3cfb64088 100644
--- a/pkgs/development/tools/continuous-integration/fly/default.nix
+++ b/pkgs/development/tools/continuous-integration/fly/default.nix
@@ -1,36 +1,39 @@
-{ buildGoModule, fetchFromGitHub, stdenv, lib }:
+{ buildGoModule, fetchFromGitHub, stdenv, lib, installShellFiles }:
 
 buildGoModule rec {
   pname = "fly";
-  version = "7.7.1";
+  version = "7.8.1";
 
   src = fetchFromGitHub {
     owner = "concourse";
     repo = "concourse";
     rev = "v${version}";
-    sha256 = "sha256-AJvD9re4jj+ixvZKWHDJM0QEv5EPFv3VFJus3lnm2LI=";
+    sha256 = "sha256-A37XTLL6BcltKofriqai8RX+VQ4jcFRHriP4sUZ5g2c=";
   };
 
-  vendorSha256 = "sha256-G9HdhPi4iezUR6SIVYnjL0fznOfiusY4T9ClLPr1w5c=";
-
-  doCheck = false;
+  vendorSha256 = "sha256-aYu5K6pK6Q0Fmagr91i6nc3t55nUjn5vasIO+kUXWrs=";
 
   subPackages = [ "fly" ];
 
   ldflags = [
-    "-X github.com/concourse/concourse.Version=${version}"
+    "-s" "-w" "-X github.com/concourse/concourse.Version=${version}"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
+  doCheck = false;
+
   postInstall = lib.optionalString (stdenv.hostPlatform == stdenv.buildPlatform) ''
-    mkdir -p $out/share/{bash-completion/completions,zsh/site-functions}
-    $out/bin/fly completion --shell bash > $out/share/bash-completion/completions/fly
-    $out/bin/fly completion --shell zsh > $out/share/zsh/site-functions/_fly
+    installShellCompletion --cmd fly \
+      --bash <($out/bin/fly completion --shell bash) \
+      --fish <($out/bin/fly completion --shell fish) \
+      --zsh <($out/bin/fly completion --shell zsh)
   '';
 
   meta = with lib; {
-    description = "A command line interface to Concourse CI";
+    description = "Command line interface to Concourse CI";
     homepage = "https://concourse-ci.org";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ivanbrennan ];
+    maintainers = with maintainers; [ ivanbrennan SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/tools/continuous-integration/github-runner/default.nix b/pkgs/development/tools/continuous-integration/github-runner/default.nix
index 8718cd8dc80a0..5b33c02809eb9 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/default.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/default.nix
@@ -46,13 +46,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "github-runner";
-  version = "2.292.0";
+  version = "2.294.0";
 
   src = fetchFromGitHub {
     owner = "actions";
     repo = "runner";
     rev = "v${version}";
-    hash = "sha256-vmHUu4coAxFLfi+G4xLjy3+LzFnmGllhWhCXcWuDQnc=";
+    hash = "sha256-2MOvqVlUZBmCt24EYSVjXWKR+fB2Mys70L/1/7jtwQQ=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/tools/continuous-integration/github-runner/deps.nix b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
index 906b2830a2612..0a75c0a97c8f3 100644
--- a/pkgs/development/tools/continuous-integration/github-runner/deps.nix
+++ b/pkgs/development/tools/continuous-integration/github-runner/deps.nix
@@ -1,16 +1,16 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Castle.Core"; version = "4.4.0"; sha256 = "0rpcbmyhckvlvp6vbzpj03c1gqz56ixc6f15vgmxmyf1g40c24pf"; })
   (fetchNuGet { pname = "Microsoft.AspNet.WebApi.Client"; version = "5.2.4"; sha256 = "00fkczf69z2rwarcd8kjjdp47517a0ca6lggn72qbilsp03a5scj"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0mjv5w9gia3bb2qg7ahh6j1mgb3fwlr3famxssdy8vq8qgfd1h4h"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "1z50gqg0jimk98yd0zr2vxn087h3h1qn08fdcqbaxfgpcw30yi87"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
   (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Logging"; version = "5.2.1"; sha256 = "1gpka9jm2gl6f07pcwzwvaxw9xq1a19i9fskn0qs921c5grhlp3g"; })
   (fetchNuGet { pname = "Microsoft.IdentityModel.Tokens"; version = "5.2.1"; sha256 = "03v6145vr1winq8xxfikydicds4f10qmy1ybyz2gfimnzzx51w00"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.5"; sha256 = "0q9wswwnwdi2y9ca2h072anb2m8mjs01hqg6p9kyxlsgfmvcaxmw"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.5"; sha256 = "0x1jhv7h17kwxigrwlcs13kf4xlfy0977hdajj96kl6vbcd7256d"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-arm64"; version = "6.0.6"; sha256 = "0hlxq0k60ras0wj7d7q94dxd8nzjcry0kixxs6z1hyrbm4q0y3ls"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-arm64"; version = "6.0.6"; sha256 = "117rz4gm7ihns5jlc2x05h7kdcgrl0ic4v67dzfbbr9kpra1bmcw"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1-rc2-24027"; sha256 = "1a0w5fv8slfr4q7m3mh78lb9awdwyz4zv3bb73vybkyq1f6z7lx8"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
diff --git a/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix b/pkgs/development/tools/continuous-integration/gitlab-runner/default.nix
index 039c54cf9df10..d5e4edb2abfe8 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, fetchurl }:
 
 let
-  version = "15.0.0";
+  version = "15.1.0";
 in
 buildGoModule rec {
   inherit version;
@@ -14,13 +14,13 @@ buildGoModule rec {
     "-X ${commonPackagePath}.REVISION=v${version}"
   ];
 
-  vendorSha256 = "0ag3pmcrxksgikdcvl9rv2s3kn7l0dj41pf2m9dq0g2a1j45nydn";
+  vendorSha256 = "sha256-5MzhDBCsgcACzImnfvetr3Z6SO+fHozChIhvZG0JwBc=";
 
   src = fetchFromGitLab {
     owner = "gitlab-org";
     repo = "gitlab-runner";
     rev = "v${version}";
-    sha256 = "1s7jqhrwy5wl0db37d3pms499mmy7msx4ch46w5qa25nfbxcr07c";
+    sha256 = "sha256-G6V0l9kzbpl9XEYiiVBYjY7xOHemtOrb1xyB1HjhhTc=";
   };
 
   patches = [
diff --git a/pkgs/development/tools/continuous-integration/jenkins/default.nix b/pkgs/development/tools/continuous-integration/jenkins/default.nix
index abf7f840a4541..00395854cfd8d 100644
--- a/pkgs/development/tools/continuous-integration/jenkins/default.nix
+++ b/pkgs/development/tools/continuous-integration/jenkins/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "jenkins";
-  version = "2.332.3";
+  version = "2.346.1";
 
   src = fetchurl {
     url = "https://get.jenkins.io/war-stable/${version}/jenkins.war";
-    sha256 = "sha256-0ZPxearfOnzrYa3rw6tRIYrEp4UriJMv8ztE/XvmAQ8=";
+    sha256 = "09rvwpywf8wc3605kc0x171kmxfigqg4dq7gkd1hng1xqbjjqvhp";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/agent.nix b/pkgs/development/tools/continuous-integration/woodpecker/agent.nix
new file mode 100644
index 0000000000000..2865711d507c3
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/agent.nix
@@ -0,0 +1,17 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-agent";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  subPackages = "cmd/agent";
+
+  CGO_ENABLED = 0;
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration agent";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/cli.nix b/pkgs/development/tools/continuous-integration/woodpecker/cli.nix
new file mode 100644
index 0000000000000..b5eda9efb9173
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/cli.nix
@@ -0,0 +1,17 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-cli";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  subPackages = "cmd/cli";
+
+  CGO_ENABLED = 0;
+
+  meta = common.meta // {
+    description = "Command line client for the Woodpecker Continuous Integration server";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/common.nix b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
new file mode 100644
index 0000000000000..932fa934b1bc7
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/common.nix
@@ -0,0 +1,36 @@
+{ lib, fetchFromGitHub }:
+let
+  version = "0.15.3";
+  srcSha256 = "sha256-HOOH3H2SXLcT2oW/xL80TO+ZSI+Haulnznpb4hlCQow=";
+  yarnSha256 = "sha256-x9g0vSoexfknqLejgcNIigmkFnqYsmhcQNTOStcj68o=";
+in
+{
+  inherit version yarnSha256;
+
+  src = fetchFromGitHub {
+    owner = "woodpecker-ci";
+    repo = "woodpecker";
+    rev = "v${version}";
+    sha256 = srcSha256;
+  };
+
+  postBuild = ''
+    cd $GOPATH/bin
+    for f in *; do
+      mv -- "$f" "woodpecker-$f"
+    done
+    cd -
+  '';
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/woodpecker-ci/woodpecker/version.Version=${version}"
+  ];
+
+  meta = with lib; {
+    homepage = "https://woodpecker-ci.org/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ambroisie ];
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix b/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
new file mode 100644
index 0000000000000..267fdc13985a9
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/frontend.nix
@@ -0,0 +1,40 @@
+{ lib, callPackage, fetchFromGitHub, fetchYarnDeps, mkYarnPackage }:
+let
+  common = callPackage ./common.nix { };
+in
+mkYarnPackage {
+  pname = "woodpecker-frontend";
+  inherit (common) version;
+
+  src = "${common.src}/web";
+
+  packageJSON = ./woodpecker-package.json;
+  offlineCache = fetchYarnDeps {
+    yarnLock = "${common.src}/web/yarn.lock";
+    sha256 = common.yarnSha256;
+  };
+
+  buildPhase = ''
+    runHook preBuild
+
+    yarn build
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    cp -R deps/woodpecker-ci/dist $out
+    echo "${common.version}" > "$out/version"
+
+    runHook postInstall
+  '';
+
+  # Do not attempt generating a tarball for woodpecker-frontend again.
+  doDist = false;
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration server frontend";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/server.nix b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
new file mode 100644
index 0000000000000..d97412649b5db
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/server.nix
@@ -0,0 +1,27 @@
+{ lib, buildGoModule, callPackage, fetchFromGitHub, woodpecker-frontend }:
+let
+  common = callPackage ./common.nix { };
+in
+buildGoModule {
+  pname = "woodpecker-server";
+  inherit (common) version src ldflags postBuild;
+  vendorSha256 = null;
+
+  postPatch = ''
+    cp -r ${woodpecker-frontend} web/dist
+  '';
+
+  subPackages = "cmd/server";
+
+  CGO_ENABLED = 1;
+
+  passthru = {
+    inherit woodpecker-frontend;
+
+    updateScript = ./update.sh;
+  };
+
+  meta = common.meta // {
+    description = "Woodpecker Continuous Integration server";
+  };
+}
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/update.sh b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
new file mode 100755
index 0000000000000..3530ea6c46c6c
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/update.sh
@@ -0,0 +1,50 @@
+#!/usr/bin/env nix-shell
+#!nix-shell -i bash -p nix wget prefetch-yarn-deps nix-prefetch-github jq
+
+# shellcheck shell=bash
+
+if [ -n "$GITHUB_TOKEN" ]; then
+    TOKEN_ARGS=(--header "Authorization: token $GITHUB_TOKEN")
+fi
+
+if [[ $# -gt 1 || $1 == -* ]]; then
+    echo "Regenerates packaging data for the woodpecker packages."
+    echo "Usage: $0 [git release tag]"
+    exit 1
+fi
+
+set -x
+
+cd "$(dirname "$0")"
+version="$1"
+
+set -euo pipefail
+
+if [ -z "$version" ]; then
+    version="$(wget -O- "${TOKEN_ARGS[@]}" "https://api.github.com/repos/woodpecker-ci/woodpecker/releases?per_page=1" | jq -r '.[0].tag_name')"
+fi
+
+# strip leading "v"
+version="${version#v}"
+
+# Woodpecker repository
+src_hash=$(nix-prefetch-github woodpecker-ci woodpecker --rev "v${version}" | jq -r .sha256)
+
+# Front-end dependencies
+woodpecker_src="https://raw.githubusercontent.com/woodpecker-ci/woodpecker/v$version"
+wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/package.json" -O woodpecker-package.json
+
+web_tmpdir=$(mktemp -d)
+trap 'rm -rf "$web_tmpdir"' EXIT
+pushd "$web_tmpdir"
+wget "${TOKEN_ARGS[@]}" "$woodpecker_src/web/yarn.lock"
+yarn_hash=$(prefetch-yarn-deps yarn.lock)
+popd
+
+# Use friendlier hashes
+src_hash=$(nix hash to-sri --type sha256 "$src_hash")
+yarn_hash=$(nix hash to-sri --type sha256 "$yarn_hash")
+
+sed -i -E -e "s#version = \".*\"#version = \"$version\"#" common.nix
+sed -i -E -e "s#srcSha256 = \".*\"#srcSha256 = \"$src_hash\"#" common.nix
+sed -i -E -e "s#yarnSha256 = \".*\"#yarnSha256 = \"$yarn_hash\"#" common.nix
diff --git a/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json b/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
new file mode 100644
index 0000000000000..eb29431a0566c
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/woodpecker/woodpecker-package.json
@@ -0,0 +1,63 @@
+{
+  "name": "woodpecker-ci",
+  "author": "Woodpecker CI",
+  "version": "0.0.0",
+  "license": "Apache-2.0",
+  "engines": {
+    "node": ">=14"
+  },
+  "scripts": {
+    "start": "vite",
+    "build": "vite build",
+    "serve": "vite preview",
+    "lint": "eslint --max-warnings 0 --ext .js,.ts,.vue,.json .",
+    "formatcheck": "prettier -c .",
+    "format:fix": "prettier --write .",
+    "typecheck": "vue-tsc --noEmit",
+    "test": "echo 'No tests configured' && exit 0"
+  },
+  "dependencies": {
+    "@kyvg/vue3-notification": "2.3.4",
+    "@meforma/vue-toaster": "1.2.2",
+    "ansi-to-html": "0.7.2",
+    "dayjs": "1.10.7",
+    "floating-vue": "2.0.0-beta.5",
+    "fuse.js": "6.4.6",
+    "humanize-duration": "3.27.0",
+    "javascript-time-ago": "2.3.10",
+    "node-emoji": "1.11.0",
+    "pinia": "2.0.0",
+    "vue": "v3.2.20",
+    "vue-router": "4.0.10"
+  },
+  "devDependencies": {
+    "@iconify/json": "1.1.421",
+    "@types/humanize-duration": "3.27.0",
+    "@types/javascript-time-ago": "2.0.3",
+    "@types/node": "16.11.6",
+    "@types/node-emoji": "1.8.1",
+    "@typescript-eslint/eslint-plugin": "5.6.0",
+    "@typescript-eslint/parser": "5.6.0",
+    "@vitejs/plugin-vue": "1.9.4",
+    "@vue/compiler-sfc": "3.2.20",
+    "eslint": "7.32.0",
+    "eslint-config-airbnb-base": "15.0.0",
+    "eslint-config-airbnb-typescript": "16.1.0",
+    "eslint-config-prettier": "8.3.0",
+    "eslint-plugin-import": "2.25.3",
+    "eslint-plugin-prettier": "4.0.0",
+    "eslint-plugin-promise": "5.1.1",
+    "eslint-plugin-simple-import-sort": "7.0.0",
+    "eslint-plugin-vue": "7.18.0",
+    "eslint-plugin-vue-scoped-css": "1.3.0",
+    "prettier": "2.4.1",
+    "typescript": "4.4.4",
+    "unplugin-icons": "0.12.17",
+    "unplugin-vue-components": "0.17.0",
+    "vite": "2.6.13",
+    "vite-plugin-windicss": "1.4.12",
+    "vite-svg-loader": "3.0.0",
+    "vue-tsc": "0.28.10",
+    "windicss": "3.2.0"
+  }
+}
diff --git a/pkgs/development/tools/dapper/default.nix b/pkgs/development/tools/dapper/default.nix
index 45e4614b448af..8e3160b4cddcf 100644
--- a/pkgs/development/tools/dapper/default.nix
+++ b/pkgs/development/tools/dapper/default.nix
@@ -1,30 +1,29 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
 }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "dapper";
   version = "0.5.8";
 
-  goPackagePath = "github.com/rancher/dapper";
-
   src = fetchFromGitHub {
     owner = "rancher";
     repo = "dapper";
     rev = "v${version}";
     sha256 = "sha256-t1w8bhwCjZHmvgBG6Tv8kgqTbC7v5P5QOvJGuTJUC04=";
   };
-   patchPhase = ''
-     substituteInPlace main.go --replace 0.0.0 ${version}
-   '';
+  vendorSha256 = null;
+
+  patchPhase = ''
+    substituteInPlace main.go --replace 0.0.0 ${version}
+  '';
 
   meta = with lib; {
-    description = "Docker Build Wrapper";
+    description = "Docker build wrapper";
     homepage = "https://github.com/rancher/dapper";
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ kuznero ];
   };
 }
-
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 14f39f0e58a1d..e51cbe6d1da8d 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "sqlfluff";
-  version = "0.13.2";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-tPcj4QTqO03SKyZh7OQbXvjJPheUeWGhWfqpy/IBrk4=";
+    hash = "sha256-qJVzeorNojWzJ6TRTFQNNOXLWbHLMTteJaDWUcrz0j0=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/development/tools/ddosify/default.nix b/pkgs/development/tools/ddosify/default.nix
index 998be0d15ea8e..43867d13b009c 100644
--- a/pkgs/development/tools/ddosify/default.nix
+++ b/pkgs/development/tools/ddosify/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ddosify";
-  version = "0.7.9";
+  version = "0.8.0";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-7dPDYBypLz0YWcgwP57LtZV+WNEGd705/0jyDXT4xTY=";
+    sha256 = "sha256-ImVNiBXvKKYXuWtOajvLFobk956wNSQHLH7npdYY4SE=";
   };
 
-  vendorSha256 = "sha256-WvchcVd0tql5Kxt2EP/auSq66hjiVqew7Iyi/ytaI64=";
+  vendorSha256 = "sha256-mq82KNa01gHvW+RUREra+ysaJ1YWIwX0v/uYMxmFN4M=";
 
   ldflags = [
     "-s -w"
diff --git a/pkgs/development/tools/deadnix/default.nix b/pkgs/development/tools/deadnix/default.nix
index 3de058fb70c32..53f30595cef6a 100644
--- a/pkgs/development/tools/deadnix/default.nix
+++ b/pkgs/development/tools/deadnix/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deadnix";
-  version = "0.1.5";
+  version = "0.1.6";
 
   src = fetchFromGitHub {
     owner = "astro";
     repo = "deadnix";
     rev = "v${version}";
-    sha256 = "1fyagp6m6adwfcisi1zvs5dflcvrmpx4q1fr8pqzb93zv4m3ar84";
+    sha256 = "sha256-a3zEPblkvj9cjGEQB6LKqB+h8C2df7p+IgkwqsUptmY=";
   };
 
-  cargoSha256 = "102akpvs2hvf5hl9rh5cspxzqly68wk7qhx0g1zhfp1ka58gnr4p";
+  cargoSha256 = "sha256-zMVXl7kJEavv5zfSm0bTYtd8J3j/LtY3ikPUK2hod+E=";
 
   meta = with lib; {
     description = "Find and remove unused code in .nix source files";
diff --git a/pkgs/development/tools/delve/default.nix b/pkgs/development/tools/delve/default.nix
index 635a8aa880641..101449cb80385 100644
--- a/pkgs/development/tools/delve/default.nix
+++ b/pkgs/development/tools/delve/default.nix
@@ -34,6 +34,5 @@ buildGoModule rec {
     homepage = "https://github.com/go-delve/delve";
     maintainers = with maintainers; [ SuperSandro2000 vdemeester ];
     license = licenses.mit;
-    platforms = [ "x86_64-linux" ] ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/doctl/default.nix b/pkgs/development/tools/doctl/default.nix
index fb602240bb328..926b1c75ee36b 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.76.0";
+  version = "1.77.0";
 
   vendorSha256 = null;
 
@@ -31,7 +31,7 @@ buildGoModule rec {
     owner = "digitalocean";
     repo = "doctl";
     rev = "v${version}";
-    sha256 = "sha256-rascG0WXDsmParwzR8QZEayiQEARu8YXfU0JT2yhQrc=";
+    sha256 = "sha256-i+Z5xFO3e04c/CfOyPAjD1nwPvm5vmYLsvj6OblJuqg=";
   };
 
   meta = with lib; {
diff --git a/pkgs/development/tools/dyff/default.nix b/pkgs/development/tools/dyff/default.nix
index 33590f4a4e10f..c2801422c0e0a 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.5.3";
+  version = "1.5.4";
 
   src = fetchFromGitHub {
     owner = "homeport";
     repo = "dyff";
     rev = "v${version}";
-    sha256 = "sha256-On3n4qJUcGhJfh0B1ESE5zl1fb/RW12eFPxx5sTqfpw=";
+    sha256 = "sha256-6r7e35hJrrkBaDHMUJGVOP7b0OwekJzedTs/P5E8Ykc=";
   };
 
-  vendorSha256 = "sha256-eI3E83bYSMfi7fInBsPflE3zUGHF6diSkXDy04+CeqQ=";
+  vendorSha256 = "sha256-nam/so7ylbGVhEjGKZzeYZyHz90rq5XEZelHkjcIeh8=";
 
   subPackages = [
     "cmd/dyff"
diff --git a/pkgs/development/tools/earthly/default.nix b/pkgs/development/tools/earthly/default.nix
index 5838f5e94b433..cca4b15899766 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.6.14";
+  version = "0.6.16";
 
   src = fetchFromGitHub {
     owner = "earthly";
     repo = "earthly";
     rev = "v${version}";
-    sha256 = "sha256-1zJPtx+W+UuH+upun1o9f3ofieahTsb4bSuznPhIYnw=";
+    sha256 = "sha256-PKvF5dO7aFF3WOAWOxFTy1PpCr6o9s4QjQkgI7EO6Ss=";
   };
 
-  vendorSha256 = "sha256-2bOaJdK12qGjjVtoBp3LeSyIiFwm4ZvxNI5yR0HriXI=";
+  vendorSha256 = "sha256-ESPi6ZjN2GkvzVidmBmuglL4Oh0EjyhGBdvjjiXB38s=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/development/tools/eclipse-mat/default.nix b/pkgs/development/tools/eclipse-mat/default.nix
index 647e5200a3dc0..dced6c6cde2da 100644
--- a/pkgs/development/tools/eclipse-mat/default.nix
+++ b/pkgs/development/tools/eclipse-mat/default.nix
@@ -110,6 +110,7 @@ stdenv.mkDerivation rec {
       run a report to automatically extract leak suspects.
     '';
     homepage = "https://www.eclipse.org/mat";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.epl20;
     maintainers = [ maintainers.ktor ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/esbuild/default.nix b/pkgs/development/tools/esbuild/default.nix
index ce8ade8d6b3b4..a1989084ad525 100644
--- a/pkgs/development/tools/esbuild/default.nix
+++ b/pkgs/development/tools/esbuild/default.nix
@@ -2,21 +2,23 @@
 
 buildGoModule rec {
   pname = "esbuild";
-  version = "0.14.39";
+  version = "0.14.47";
 
   src = fetchFromGitHub {
     owner = "evanw";
     repo = "esbuild";
     rev = "v${version}";
-    sha256 = "sha256-li8uVs7SZ3KX0AbzyTDUesiqm8dQecrzyLjYKnQncj8=";
+    sha256 = "sha256-4T+kH8aDIN18lGkduHUTg+kXjU3JZRvmzXsT2gVNar4=";
   };
 
   vendorSha256 = "sha256-QPkBR+FscUc3jOvH7olcGUhM6OW4vxawmNJuRQxPuGs=";
 
+  ldflags = [ "-s" "-w" ];
+
   meta = with lib; {
     description = "An extremely fast JavaScript bundler";
     homepage = "https://esbuild.github.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ lucus16 ];
+    maintainers = with maintainers; [ lucus16 marsam ];
   };
 }
diff --git a/pkgs/development/tools/flyway/default.nix b/pkgs/development/tools/flyway/default.nix
index 02c6c6ae9437f..4cf9efb964abe 100644
--- a/pkgs/development/tools/flyway/default.nix
+++ b/pkgs/development/tools/flyway/default.nix
@@ -1,10 +1,10 @@
 { lib, stdenv, fetchurl, jre_headless, makeWrapper }:
 stdenv.mkDerivation rec{
   pname = "flyway";
-  version = "8.5.11";
+  version = "8.5.13";
   src = fetchurl {
     url = "mirror://maven/org/flywaydb/flyway-commandline/${version}/flyway-commandline-${version}.tar.gz";
-    sha256 = "sha256-qmDvubyWWBRTbspVDSACiklC6a8l5n4y88vz3VZFnV0=";
+    sha256 = "sha256-9MEsZ5lc9cF7MKD+dYdZGR9cnMHFxELACp4gsC0gzRc=";
   };
   nativeBuildInputs = [ makeWrapper ];
   dontBuild = true;
diff --git a/pkgs/development/tools/golangci-lint-langserver/default.nix b/pkgs/development/tools/golangci-lint-langserver/default.nix
new file mode 100644
index 0000000000000..0da4498bd9b0c
--- /dev/null
+++ b/pkgs/development/tools/golangci-lint-langserver/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "golangci-lint-langserver";
+  version = "0.0.6";
+
+  src = fetchFromGitHub {
+    owner = "nametake";
+    repo = "golangci-lint-langserver";
+    rev = "v${version}";
+    sha256 = "0x3qr2ckyk6rcn2rfm2sallzdprzxjh590gh3bfvqn7nb1mfw367";
+  };
+
+  vendorSha256 = "sha256-tAcl6P+cgqFX1eMYdS8vnfdNyb+1QNWwWdJsQU6Fpgg=";
+
+  subPackages = [ "." ];
+
+  meta = with lib; {
+    description = "Language server for golangci-lint";
+    homepage = "https://github.com/nametake/golangci-lint-langserver";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/tools/google-app-engine-go-sdk/default.nix b/pkgs/development/tools/google-app-engine-go-sdk/default.nix
index c20d7a2e49a6f..1230ac606ecf6 100644
--- a/pkgs/development/tools/google-app-engine-go-sdk/default.nix
+++ b/pkgs/development/tools/google-app-engine-go-sdk/default.nix
@@ -36,6 +36,10 @@ stdenv.mkDerivation rec {
     description = "Google App Engine SDK for Go";
     version = version;
     homepage = "https://cloud.google.com/appengine/docs/go/";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # includes golang toolchain binaries
+    ];
     license = licenses.asl20;
     platforms = ["x86_64-linux" "x86_64-darwin"];
     maintainers = with maintainers; [ lufia ];
diff --git a/pkgs/development/tools/gosca/default.nix b/pkgs/development/tools/gosca/default.nix
new file mode 100644
index 0000000000000..18459ec943222
--- /dev/null
+++ b/pkgs/development/tools/gosca/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, gosca
+, testers
+}:
+
+buildGoModule rec {
+  pname = "gosca";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "TARI0510";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-mjQSYkcLl9X3IPv0liX26hvystsQOSVXvovKp4VekAY=";
+  };
+
+  vendorSha256 = "sha256-0EqMW4aNYPZEuk+mxmLTuenGdam56YneEad8lodVeBo=";
+
+  passthru.tests.version = testers.testVersion {
+    package = gosca;
+    command = "gosca -v";
+    version = "GoSCA_v${version}";
+  };
+
+  meta = with lib; {
+    description = "Golang dependence security checker";
+    homepage = "https://github.com/TARI0510/gosca";
+    changelog = "https://github.com/TARI0510/gosca/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
index 343ab9624ca62..38a8e2ad2b063 100644
--- a/pkgs/development/tools/gosec/default.nix
+++ b/pkgs/development/tools/gosec/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "gosec";
-  version = "2.11.0";
+  version = "2.12.0";
 
   src = fetchFromGitHub {
     owner = "securego";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-AYD45L1FFT/S1toLK489C2TTasTHVXIs4Tf7TLOaye0=";
+    sha256 = "sha256-Y4QL6vYCTZUCh+HF86QI+ENel/pK16XpLd6CF4RWcK0=";
   };
 
-  vendorSha256 = "sha256-zzbINVp8EA5aIvwUiFlQRtD6YL0iytbgVzCHbo+clYI=";
+  vendorSha256 = "sha256-5rA2C3nyvSUiBQ/Nk5OJ9e9tf8CKHQB+6rLUJXESK/0=";
 
   subPackages = [
     "cmd/gosec"
diff --git a/pkgs/development/tools/gotags/default.nix b/pkgs/development/tools/gotags/default.nix
deleted file mode 100644
index 0a55fc66830f3..0000000000000
--- a/pkgs/development/tools/gotags/default.nix
+++ /dev/null
@@ -1,15 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "gotags";
-  version = "unstable-2015-08-03";
-
-  goPackagePath = "github.com/jstemmer/gotags";
-
-  src = fetchFromGitHub {
-    owner = "jstemmer";
-    repo = "gotags";
-    rev = "be986a34e20634775ac73e11a5b55916085c48e7";
-    sha256 = "sha256-Su7AA6HCdeZai8+yRSKzlrgXvsSEgrXGot2ABRL2PBw=";
-  };
-}
diff --git a/pkgs/development/tools/grpc-gateway/default.nix b/pkgs/development/tools/grpc-gateway/default.nix
new file mode 100644
index 0000000000000..800836dc9b082
--- /dev/null
+++ b/pkgs/development/tools/grpc-gateway/default.nix
@@ -0,0 +1,29 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "grpc-gateway";
+  version = "2.10.3";
+
+  src = fetchFromGitHub {
+    owner = "grpc-ecosystem";
+    repo = "grpc-gateway";
+    rev = "v${version}";
+    sha256 = "sha256-4/iE+sK+ZbG6194i8E1ZHla/7C9blKGRHwM7iX7nvXU=";
+  };
+
+  vendorSha256 = "sha256-FhiTU9VmDZNCPBWrmCqmQo/kPdDe8Da1T2E06CVN2kw=";
+
+  meta = with lib; {
+    description =
+      "A gRPC to JSON proxy generator plugin for Google Protocol Buffers";
+    longDescription = ''
+      This is a plugin for the Google Protocol Buffers compiler (protoc). It reads
+      protobuf service definitions and generates a reverse-proxy server which
+      translates a RESTful HTTP API into gRPC. This server is generated according to
+      the google.api.http annotations in the protobuf service definitions.
+    '';
+    homepage = "https://github.com/grpc-ecosystem/grpc-gateway";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ happyalu ];
+  };
+}
diff --git a/pkgs/development/tools/iaca/2.1.nix b/pkgs/development/tools/iaca/2.1.nix
index 1b64b2a5302d4..6695716aa67f9 100644
--- a/pkgs/development/tools/iaca/2.1.nix
+++ b/pkgs/development/tools/iaca/2.1.nix
@@ -27,6 +27,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Intel Architecture Code Analyzer";
     homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ kazcw ];
diff --git a/pkgs/development/tools/iaca/3.0.nix b/pkgs/development/tools/iaca/3.0.nix
index d5a8f8aece443..b5ad92cc08219 100644
--- a/pkgs/development/tools/iaca/3.0.nix
+++ b/pkgs/development/tools/iaca/3.0.nix
@@ -18,6 +18,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Intel Architecture Code Analyzer";
     homepage = "https://software.intel.com/en-us/articles/intel-architecture-code-analyzer/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ kazcw ];
diff --git a/pkgs/development/tools/ineffassign/default.nix b/pkgs/development/tools/ineffassign/default.nix
index 111048b562f39..16e392b6bbc49 100644
--- a/pkgs/development/tools/ineffassign/default.nix
+++ b/pkgs/development/tools/ineffassign/default.nix
@@ -1,28 +1,31 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
+, go
 }:
 
-buildGoPackage rec {
-  pname = "ineffassign-unstable";
-  version = "2018-09-09";
-  rev = "1003c8bd00dc2869cb5ca5282e6ce33834fed514";
-
-  goPackagePath = "github.com/gordonklaus/ineffassign";
+buildGoModule rec {
+  pname = "ineffassign";
+  version = "unstable-2021-09-04";
+  rev = "4cc7213b9bc8b868b2990c372f6fa057fa88b91c";
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "gordonklaus";
     repo = "ineffassign";
-    sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
+    inherit rev;
+    sha256 = "sha256-XLXANN9TOmrNOixWtlqnIC27u+0TW2P3s9MyeyVUcAQ=";
   };
 
+  vendorSha256 = "sha256-QTgWicN2m2ughtLsEBMaQWfpDbmbL0nS5qaIKF3mTJM=";
+
+  allowGoReference = true;
+
+  checkInputs = [ go ];
+
   meta = with lib; {
     description = "Detect ineffectual assignments in Go code";
     homepage = "https://github.com/gordonklaus/ineffassign";
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/jbake/default.nix b/pkgs/development/tools/jbake/default.nix
index e14cfe874040c..48737ed668f77 100644
--- a/pkgs/development/tools/jbake/default.nix
+++ b/pkgs/development/tools/jbake/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchzip, makeWrapper, jre }:
 
 stdenv.mkDerivation rec {
-  version = "2.6.5";
+  version = "2.6.7";
   pname = "jbake";
 
   src = fetchzip {
-    url = "https://dl.bintray.com/jbake/binary/${pname}-${version}-bin.zip";
-    sha256 = "0ripayv1vf4f4ylxr7h9kad2xhy3y98ca8s4p38z7dn8l47zg0qw";
+    url = "https://github.com/jbake-org/jbake/releases/download/v${version}/jbake-${version}-bin.zip";
+    sha256 = "sha256-kikGnFsParq8g0dzzYtMr2vIJD2ie8PeF6TG2G5K7KE=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/tools/jd-diff-patch/default.nix b/pkgs/development/tools/jd-diff-patch/default.nix
index 26c9eeedacd7e..6977049ed9460 100644
--- a/pkgs/development/tools/jd-diff-patch/default.nix
+++ b/pkgs/development/tools/jd-diff-patch/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "jd-diff-patch";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner  = "josephburnett";
     repo   = "jd";
     rev    = "v${version}";
-    sha256 = "sha256-nYV72EgYgXWyGp2s09BlaRmOy6aSMtmrTvWCxk9znp0=";
+    sha256 = "sha256-NUga7Rxh/hCEw6bZvbxsqBoIKdG2TTfEXdwHY42cgxE=";
   };
 
   # not including web ui
@@ -16,8 +16,6 @@ buildGoModule rec {
 
   vendorSha256 = "sha256-uoMOkCmJY417zxkTsXHGy+BZ/BH29nH4MhFaIKofh4k=";
 
-  doCheck = true;
-
   meta = with lib; {
     description = "Commandline utility and Go library for diffing and patching JSON values";
     homepage = "https://github.com/josephburnett/jd";
diff --git a/pkgs/development/tools/jira-cli-go/default.nix b/pkgs/development/tools/jira-cli-go/default.nix
index 75640ddf33f82..641b16ac2e9ff 100644
--- a/pkgs/development/tools/jira-cli-go/default.nix
+++ b/pkgs/development/tools/jira-cli-go/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, less, more, installShellFiles, testVersion, jira-cli-go }:
+{ lib, buildGoModule, fetchFromGitHub, less, more, installShellFiles, testers, jira-cli-go }:
 
 buildGoModule rec {
   pname = "jira-cli-go";
@@ -22,7 +22,7 @@ buildGoModule rec {
 
   checkInputs = [ less more ]; # Tests expect a pager in $PATH
 
-  passthru.tests.version = testVersion {
+  passthru.tests.version = testers.testVersion {
     package = jira-cli-go;
     command = "jira version";
     inherit version;
diff --git a/pkgs/development/tools/jira_cli/default.nix b/pkgs/development/tools/jira_cli/default.nix
index cf15a61477e4a..9145f4a42cdbe 100644
--- a/pkgs/development/tools/jira_cli/default.nix
+++ b/pkgs/development/tools/jira_cli/default.nix
@@ -1,6 +1,6 @@
 { lib, libffi, openssl, python3Packages }:
 let
-  inherit (python3Packages) fetchPypi buildPythonApplication vcrpy mock hiro;
+  inherit (python3Packages) fetchPypi buildPythonApplication;
 in
   buildPythonApplication rec {
     pname = "jira-cli";
@@ -19,7 +19,7 @@ in
     checkInputs = with python3Packages; [ vcrpy mock hiro ];
     buildInputs = [ libffi openssl ];
     propagatedBuildInputs = with python3Packages; [
-      ordereddict requests six suds-jurko termcolor keyring
+      requests six suds-jurko termcolor keyring
       jira  keyrings-alt
     ];
 
diff --git a/pkgs/development/tools/jless/default.nix b/pkgs/development/tools/jless/default.nix
index 558c9e019e192..306a271936bfd 100644
--- a/pkgs/development/tools/jless/default.nix
+++ b/pkgs/development/tools/jless/default.nix
@@ -23,6 +23,6 @@ rustPlatform.buildRustPackage rec {
     description = "A command-line pager for JSON data";
     homepage = "https://jless.io";
     license = licenses.mit;
-    maintainers = with maintainers; [ jfchevrette zowoq ];
+    maintainers = with maintainers; [ jfchevrette ];
   };
 }
diff --git a/pkgs/development/tools/k6/default.nix b/pkgs/development/tools/k6/default.nix
index 66ff4a8b2df48..200eaa2cb5778 100644
--- a/pkgs/development/tools/k6/default.nix
+++ b/pkgs/development/tools/k6/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "k6";
-  version = "0.37.0";
+  version = "0.38.3";
 
   src = fetchFromGitHub {
     owner = "grafana";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5pxOg+pwa2VrEWinDadx2ZFYXiQgochbU4bCkJEezQw=";
+    sha256 = "sha256-MV5GbsXVvq99tI5LCK6VgcXRtNUfffoz3FopwPljhdA=";
   };
 
   subPackages = [ "./" ];
diff --git a/pkgs/development/tools/kube-prompt/default.nix b/pkgs/development/tools/kube-prompt/default.nix
index 1c6e8d56a6acf..ad8749b578712 100644
--- a/pkgs/development/tools/kube-prompt/default.nix
+++ b/pkgs/development/tools/kube-prompt/default.nix
@@ -1,26 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "kube-prompt";
   version = "1.0.11";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/c-bata/kube-prompt";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "c-bata";
     repo = "kube-prompt";
+    rev = "v${version}";
     sha256 = "sha256-9OWsITbC7YO51QzsRwDWvojU54DiuGJhkSGwmesEj9w=";
   };
 
-  subPackages = ["."];
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-wou5inOX8vadEBCIBccwSRjtzf0GH1abwNdUu4JBvyM=";
 
-  meta = {
-  description = "An interactive kubernetes client featuring auto-complete using go-prompt";
-    license = lib.licenses.mit;
+  meta = with lib; {
+    description = "An interactive kubernetes client featuring auto-complete";
+    license = licenses.mit;
     homepage = "https://github.com/c-bata/kube-prompt";
-    maintainers = [ lib.maintainers.vdemeester ];
+    maintainers = with maintainers; [ vdemeester ];
   };
 }
diff --git a/pkgs/development/tools/kube-prompt/deps.nix b/pkgs/development/tools/kube-prompt/deps.nix
deleted file mode 100644
index a6c4bbd445c41..0000000000000
--- a/pkgs/development/tools/kube-prompt/deps.nix
+++ /dev/null
@@ -1,993 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-cloud-go";
-      rev = "v0.38.0";
-      sha256 = "0n6n13b7lri2fmc4bn4ifszyawj31dpbzvyv0xafsf81440z8cyh";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/autorest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "autorest/v0.9.0";
-      sha256 = "01fg6x3a6as2kh0km8kvjzjalq7xiqa17hnsdwawzlpnfpqgslvq";
-      moduleDir = "autorest";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/autorest/adal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "autorest/adal/v0.5.0";
-      sha256 = "07zbbshyz1s9fj9ifa6zzks4wq7455rna50z1ahpgin92jk0s6la";
-      moduleDir = "autorest/adal";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/autorest/date";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "autorest/date/v0.1.0";
-      sha256 = "1w94wxjjkiv8m44rcdm1af9h0ap2r8kpp9198cxpxj8d5xxkaxpz";
-      moduleDir = "autorest/date";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/autorest/mocks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "autorest/mocks/v0.2.0";
-      sha256 = "04jsq3bnz9s27kp45n7q5wj2fi3bxwvxrxcmiswrhqz4pj35b561";
-      moduleDir = "autorest/mocks";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/logger";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "logger/v0.1.0";
-      sha256 = "1w94wxjjkiv8m44rcdm1af9h0ap2r8kpp9198cxpxj8d5xxkaxpz";
-      moduleDir = "logger";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/go-autorest/tracing";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/go-autorest";
-      rev = "tracing/v0.5.0";
-      sha256 = "0n482cjr2pk6ql6awcnn6llrnygjzakihbjaahgmylf3znwil7jp";
-      moduleDir = "tracing";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/NYTimes/gziphandler";
-    fetch = {
-      type = "git";
-      url = "https://github.com/NYTimes/gziphandler";
-      rev = "56545f4a5d46";
-      sha256 = "1fwk9wz6vrvq72f2gq8jhvd1nvv6grqgwrjq66vjpm0726pxar72";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/PuerkitoBio/purell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/PuerkitoBio/purell";
-      rev = "v1.0.0";
-      sha256 = "1qhsy1nm96b9kb63svkvkqmmw15xg6irwcysisxdgzk64adfwqv1";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/PuerkitoBio/urlesc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/PuerkitoBio/urlesc";
-      rev = "5bd2802263f2";
-      sha256 = "15y5r3asvm7196m3nza5xvdvlc2k11p6lfs6hi917hl7r9vgi6mp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/c-bata/go-prompt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/c-bata/go-prompt";
-      rev = "v0.2.5";
-      sha256 = "1ny9a1cshl9h6rddk3j0ar6iya1iahaw623g7qbsrbdbx38xlip3";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/docker/spdystream";
-    fetch = {
-      type = "git";
-      url = "https://github.com/docker/spdystream";
-      rev = "449fdfce4d96";
-      sha256 = "1412cpiis971iq1kxrirzirhj2708ispjh0x0dh879b66x8507sl";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/elazarl/goproxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/elazarl/goproxy";
-      rev = "c4fc26588b6e";
-      sha256 = "1s3v02px61a3hmvb47rqk598z5visayxq46k3c8dcrayhhngv2fw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/emicklei/go-restful";
-    fetch = {
-      type = "git";
-      url = "https://github.com/emicklei/go-restful";
-      rev = "ff4f55a20633";
-      sha256 = "1v5lj5142abz3gvbygp6xghpdx4ps2lwswl8559ivaidahwnc21c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/evanphx/json-patch";
-    fetch = {
-      type = "git";
-      url = "https://github.com/evanphx/json-patch";
-      rev = "v4.2.0";
-      sha256 = "0cfvyhl3hjfc4z8hbkfc40yafv6r7y513zgp3jwf88isbd13r7a6";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "73d445a93680";
-      sha256 = "0pg53ky4sy3sp9j4n7vgf1p3gw4nbckwqfldcmmi9rf13kjh0mr7";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logr/logr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logr/logr";
-      rev = "v0.1.0";
-      sha256 = "0fhijjhxz4n2j5i24ckzv8r9kri3v44jdyklgbqjfq0xm7izqg14";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-openapi/jsonpointer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-openapi/jsonpointer";
-      rev = "46af16f9f7b1";
-      sha256 = "0w0fphmdycjzbsm1vppdcjc9aqinkcdzcq3pxikdvdqh5p791gsc";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-openapi/jsonreference";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-openapi/jsonreference";
-      rev = "13c6e3589ad9";
-      sha256 = "1fh4xcl9ijww4bdq656sx981d57w2c9zx5148jsxlsg4bsvxmwis";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-openapi/spec";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-openapi/spec";
-      rev = "6aced65f8501";
-      sha256 = "0yf0nw7167yjpiqrikns5djarjpf2r07q6xnq9xb1cfsc4m7ynm4";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-openapi/swag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-openapi/swag";
-      rev = "1d0bd113de87";
-      sha256 = "0fmk42chj20679n87n6sig3czs25lavyj6w208000n6kccv1ns3c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "65acae22fc9d";
-      sha256 = "0700alky9z0g9akhrzn20wf4jr1600d0clhs32sm8chnlbvidy46";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/groupcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/groupcache";
-      rev = "02826c3e7903";
-      sha256 = "0w46bsllddfij66nrg8jbfjsr54birvfww8a2fj9fmgyig5syn2x";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.2.0";
-      sha256 = "12ddj2g8ab87id6n2n67vnbhq6p8dvgsq1pzpqfriym4dk8w54fg";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.3.2";
-      sha256 = "1k1wb4zr0qbwgpvz9q5ws9zhlal8hq7dmq62pwxxriksayl6hzym";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "v1.0.0";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.3.0";
-      sha256 = "1hyxx3434zshl2m9ja78gwlkg1rx9yl6diqa7dnjb31xz5x4gbjj";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/gofuzz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/gofuzz";
-      rev = "v1.0.0";
-      sha256 = "0qz439qvccm91w0mmjz4fqgx48clxdwagkvvx89cr43q1d4iry36";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/martian";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/martian";
-      rev = "v2.1.0";
-      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/pprof";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/pprof";
-      rev = "3ea8567a2e57";
-      sha256 = "09rhjn3ms0a72dw0yzbp237p7yhqma772zspddn6mgkh3gi3kn4c";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/uuid";
-      rev = "v1.1.1";
-      sha256 = "0hfxcf9frkb57k6q0rdkrmnfs78ms21r1qfk9fhlqga2yh5xg8zb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gax-go/v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gax-go";
-      rev = "v2.0.4";
-      sha256 = "1iwnm6ky1x53lgs44mw3hpdkjzrm5qd0kfs50m0qcq2ml5m1cwdm";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gnostic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gnostic";
-      rev = "v0.2.0";
-      sha256 = "0yh3ckd7m0r9h50wmxxvba837d0wb1k5yd439zq4p1kpp4390z12";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/gophercloud/gophercloud";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gophercloud/gophercloud";
-      rev = "v0.1.0";
-      sha256 = "0794s9c144gphm4dh1wgba6ydsb4zdwgglj1p9im43jv0lvh6p81";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/gregjones/httpcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gregjones/httpcache";
-      rev = "9cad4c3443a7";
-      sha256 = "0wjdwcwqqcx2d5y68qvhg6qyj977il5ijmnn9h9cd6wjbdy0ay6s";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/hpcloud/tail";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hpcloud/tail";
-      rev = "v1.0.0";
-      sha256 = "1njpzc0pi1acg5zx9y6vj9xi6ksbsc5d387rd6904hy6rh2m6kn0";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev = "v0.3.5";
-      sha256 = "1mvgn89vp39gcpvhiq4n7nw5ipj7fk6h03jgc6fjwgvwvss213pb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/json-iterator/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/json-iterator/go";
-      rev = "v1.1.8";
-      sha256 = "1kbp9fj6fxfql0ir59zb6v68l4bpwlmk76xm8vaikw1hp6y9bcss";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/jstemmer/go-junit-report";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jstemmer/go-junit-report";
-      rev = "af01ea7f8024";
-      sha256 = "1lp3n94ris12hac02wi31f3whs88lcrzwgdg43a5j6cafg9p1d0s";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/errcheck";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/errcheck";
-      rev = "v1.2.0";
-      sha256 = "0am6g10ipdxw84byscm7shda654882wjcbinq5c4696m6mhi2qrd";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "v1.0.0";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailru/easyjson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailru/easyjson";
-      rev = "d5b7844b561a";
-      sha256 = "1g84l4wns28xjpn6nl1g33dcj3sfgxlkqqsa6w8fbq2kwyd50xka";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-colorable";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-colorable";
-      rev = "v0.1.7";
-      sha256 = "08y5c01bvyqxraj3wc0di80gbp87178rsshb74x0p3m7wwfv82l3";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-isatty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-isatty";
-      rev = "v0.0.12";
-      sha256 = "1dfsh27d52wmz0nmmzm2382pfrs2fcijvh6cgir7jbb4pnigr5w4";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-runewidth";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-runewidth";
-      rev = "v0.0.9";
-      sha256 = "1mvlxcdwr0vwp8b2wqs6y7hk72y28sqh03dz5x0xkg48d4y9cplj";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-tty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-tty";
-      rev = "v0.0.3";
-      sha256 = "0d1d63q02pc5k5ga8bw4yjbkrli2769vg237psajsskjirjy53vf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/concurrent";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/concurrent";
-      rev = "bacd9c7ef1dd";
-      sha256 = "0s0fxccsyb8icjmiym5k7prcqx36hvgdwl588y0491gi18k5i4zs";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/modern-go/reflect2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/modern-go/reflect2";
-      rev = "v1.0.1";
-      sha256 = "06a3sablw53n1dqqbr2f53jyksbxdmmk8axaas4yvnhyfi55k4lf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/munnerz/goautoneg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/munnerz/goautoneg";
-      rev = "a547fc61f48d";
-      sha256 = "19khhn5xhqv1yp7d6k987gh5w5rhrjnp4p0c6fyrd8z6lzz5h9qi";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/mxk/go-flowrate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mxk/go-flowrate";
-      rev = "cca7078d478f";
-      sha256 = "0zqs39923ja0yypdmiqk6x8pgmfs3ms5x5sl1dqv9z6zyx2xy541";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/ginkgo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/ginkgo";
-      rev = "v1.10.1";
-      sha256 = "033a42h1wzmji57p86igg9whvsbp6nvfdsypskw738ys903n3z4d";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/onsi/gomega";
-    fetch = {
-      type = "git";
-      url = "https://github.com/onsi/gomega";
-      rev = "v1.7.0";
-      sha256 = "09j6wq425wgzzsbwm9ckhfgl2capv3yyqbrf45qyrjwkzm49i02y";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/peterbourgon/diskv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterbourgon/diskv";
-      rev = "v2.0.1";
-      sha256 = "1mxpa5aad08x30qcbffzk80g9540wvbca4blc1r2qyzl65b8929b";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/term";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/term";
-      rev = "v1.1.0";
-      sha256 = "0flyj256zv5qc7z3m3s147k46p9whr7hl06zzwgvy2dkjp90ff73";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.2.2";
-      sha256 = "0j9r65qgd58324m85lkl49vk9dgwd62g7dwvkfcm3k6i9dc555a9";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.5";
-      sha256 = "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.0";
-      sha256 = "19ynspzjdynbi85xw06mh8ad5j0qa1vryvxjgvbnyrr8rbm4vd8w";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.4.0";
-      sha256 = "187i5g88sxfy4vxpm7dw1gwv29pa2qaq475lxrdh5livh69wqfjb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.21.0";
-      sha256 = "14s0a12xdzjvad0dgksgv8m3hh7nc585abvjkvyk6r67a29lxj6x";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "60c769a6c586";
-      sha256 = "1wy2pg38dz29vf1h48yfqf8m3jqvwnbdw8vkk3ldlj5d8fbbbmv8";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "509febef88a4";
-      sha256 = "02isrh39z8znrp5znplzy0dip2gnrl3jm1355raliyvhnhg04j6q";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "5614ed5bae6f";
-      sha256 = "0fzn0zjv0x92xvfdq3a0v9w5sgkhr7hxkfy9zaqi8i57807z8bnx";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "13f9640d40b9";
-      sha256 = "1ba2767lvklnmfvb9jkwvd4m7z6326gaiz3rgylh795g88hy34g1";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "0f29369cfe45";
-      sha256 = "06jwpvx0x2gjn2y959drbcir5kd7vg87k0r1216abk6rrdzzrzi2";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "cd5d95a43a6e";
-      sha256 = "1nqkyz2y1qvqcma52ijh02s8aiqmkfb95j08f6zcjhbga3ds6hds";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "af09f7315aff";
-      sha256 = "0kr94lzr8ngrc6913j5xh6g4r7g087dbdgnpzi6rjcl0bf8nsr22";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "9d24e82272b4";
-      sha256 = "1f5nkr4vys2vbd8wrwyiq2f5wcaahhpxmia85d1gshcbqjqf8dkb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "e65039ee4138";
-      sha256 = "0c094599cf70wdrms49a3879qkq122pqlp2av444gs2pvc8apdcx";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-api-go-client";
-      rev = "v0.4.0";
-      sha256 = "1hzgrw5wasmcjlqpxsmryddzzw4cwyzf2vx14i9z51v1plwssijm";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.5.0";
-      sha256 = "0l7mkdnwhidv8m686x432vmx8z5nqcrr9f46ddgvrxbh4wvyfcll";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/go-genproto";
-      rev = "e7d98fc518a7";
-      sha256 = "1cnavkyawwvfc5yl097ygnfy1ac69v4zc02gdfnq1bvgcvgmvnbi";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.19.0";
-      sha256 = "1znqwpj7ix3dpzx4zch0q70sdl3z5lvbb7v3q4i8sf8kas3yv71v";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/fsnotify.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/fsnotify.v1";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/inf.v0";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/inf.v0";
-      rev = "v0.9.1";
-      sha256 = "00k5iqjcp371fllqxncv7jkf80hn1zww92zm78cclbcn4ybigkng";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/tomb.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/tomb.v1";
-      rev = "dd632973f1e7";
-      sha256 = "1lqmq1ag7s4b3gc3ddvr792c5xb5k6sfn0cchr3i2s7f1c231zjv";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.4";
-      sha256 = "11bwj757wi8kdrcnlgfqb8vv2d2xdhlghmyagd19i62khrkchsg2";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "3f1c8253044a";
-      sha256 = "0d3vgh0fgfj1z7i648g1s6x2pwxd07sxfjwg1xn3yagr9h06jh3h";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/api";
-      rev = "v0.17.0";
-      sha256 = "180gijj7nl6pgfgqg6h7rcpxissmq9c3axph8ld7llx0cwmsxdrb";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/apimachinery";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/apimachinery";
-      rev = "v0.17.0";
-      sha256 = "1418y3p2fx7zsf1anpwcma1fqnaymal12d6x33j600jf1y0j9g8i";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/client-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/client-go";
-      rev = "v0.17.0";
-      sha256 = "1v8n92g18xb6b1wvl3p2slm0hbpf8agwdyslqn2wgnwyhhgi0rfg";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/gengo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/gengo";
-      rev = "0689ccc1d7d6";
-      sha256 = "10c0kbm07pzxwdxpsmcgqkcxqxaijyywvwj1rciw6ssfcgx7kdc5";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/klog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/klog";
-      rev = "v1.0.0";
-      sha256 = "1cgannfmldcrcksb2wqdn2b5qabqyxl9r25w9y4qbljw24hhnlvn";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/kube-openapi";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/kube-openapi";
-      rev = "30be4d16710a";
-      sha256 = "13pksn2xzyhrz569zihqy78y9ckn4sf4f4x31w1czfwbs87n00gf";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "k8s.io/utils";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes/utils";
-      rev = "e782cd3c129f";
-      sha256 = "19dp1cfqmgwy4m4yyxzbmmzklxnff4ipqknsp7y9yi02q6h4gj7r";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "sigs.k8s.io/structured-merge-diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes-sigs/structured-merge-diff";
-      rev = "15d366b2352e";
-      sha256 = "1anrx09ksgrwjwmbrcrk3hx8wyzjaakzmmn36nd23if36nv1xg11";
-      moduleDir = "";
-    };
-  }
-  {
-    goPackagePath = "sigs.k8s.io/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kubernetes-sigs/yaml";
-      rev = "v1.1.0";
-      sha256 = "1p7hvjdr5jsyk7nys1g1pmgnf3ys6n320i6hds85afppk81k01kb";
-      moduleDir = "";
-    };
-  }
-]
diff --git a/pkgs/development/tools/kubicorn/default.nix b/pkgs/development/tools/kubicorn/default.nix
deleted file mode 100644
index 706b91aad251c..0000000000000
--- a/pkgs/development/tools/kubicorn/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-with lib;
-
-buildGoPackage rec {
-  pname = "kubicorn";
-  version = "2018-10-13-${lib.strings.substring 0 7 rev}";
-  rev = "4c7f3623e9188fba43778271afe161a4facfb657";
-
-  src = fetchFromGitHub {
-    rev = rev;
-    owner = "kubicorn";
-    repo = "kubicorn";
-    sha256 = "18h5sj4lcivrwjq2hzn7c3g4mblw17zicb5nma8sh7sakwzyg1k9";
-  };
-
-  subPackages = ["."];
-  goPackagePath = "github.com/kubicorn/kubicorn";
-
-  meta = {
-    description = "Simple, cloud native infrastructure for Kubernetes";
-    homepage = "http://kubicorn.io/";
-    maintainers = with lib.maintainers; [ offline ];
-    license = lib.licenses.asl20;
-  };
-}
diff --git a/pkgs/development/tools/kythe/default.nix b/pkgs/development/tools/kythe/default.nix
index f6a4c2e6c1e60..4cac7a0e3b7b4 100644
--- a/pkgs/development/tools/kythe/default.nix
+++ b/pkgs/development/tools/kythe/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
       analyses, editors, code-review applications, and more — to share
       information with each other smoothly.  '';
     homepage = "https://kythe.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = [ maintainers.mpickering ];
diff --git a/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch b/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch
new file mode 100644
index 0000000000000..caaec22000083
--- /dev/null
+++ b/pkgs/development/tools/lc3tools/0004-configure-use-cc.patch
@@ -0,0 +1,22 @@
+diff --git a/configure b/configure
+index dfc1b3e..55577af 100755
+--- a/configure
++++ b/configure
+@@ -18,7 +18,7 @@ esac
+ # Some binaries that we'll need, and the places that we might find them.
+ 
+ IFS=:
+-binlist="uname:flex:gcc:wish:rm:cp:mkdir:chmod:sed"
++binlist="uname:flex:cc:wish:rm:cp:mkdir:chmod:sed"
+ pathlist=$PATH
+ libpathlist=$LIBS
+ incpathlist=$INCLUDES
+@@ -109,7 +109,7 @@ fi
+ # Splice it all in to Makefile.def to create the Makefile.
+ 
+ rm -f Makefile
+-sed -e "s __GCC__ $gcc g" -e "s __FLEX__ $flex g" -e "s __EXE__ $EXE g"     \
++sed -e "s __GCC__ $cc g" -e "s __FLEX__ $flex g" -e "s __EXE__ $EXE g"     \
+     -e "s*__OS_SIM_LIBS__*$OS_SIM_LIBS*g" -e "s __RM__ $rm g"               \
+     -e "s __CP__ $cp g" -e "s __MKDIR__ $mkdir g" -e "s __CHMOD__ $chmod g" \
+     -e "s __USE_READLINE__ $USE_READLINE g" -e "s*__RLLPATH__*$RLLPATH*g"   \
diff --git a/pkgs/development/tools/lc3tools/default.nix b/pkgs/development/tools/lc3tools/default.nix
index 3e7f81bb4e7bc..c6120a227a993 100644
--- a/pkgs/development/tools/lc3tools/default.nix
+++ b/pkgs/development/tools/lc3tools/default.nix
@@ -19,6 +19,9 @@ stdenv.mkDerivation {
 
     # lc3sim-tk looks for lc3sim in $out/bin instead of $out
     ./0003-lc3sim-tk-path.patch
+
+    # use `cc` instead of `gcc`; on macOS the latter is not present
+    ./0004-configure-use-cc.patch
   ];
 
   nativeBuildInputs = [ unzip ];
@@ -40,8 +43,15 @@ stdenv.mkDerivation {
   '';
 
   meta = with lib; {
+    longDescription = ''
+      The LC-3 tools package contains the lc3as assembler, the lc3sim simulator,
+      and lc3sim-tk, a Tcl/Tk-based GUI frontend to the simulator.
+    '';
     description = "Toolchain and emulator for the LC-3 architecture";
+    homepage = "https://highered.mheducation.com/sites/0072467509/student_view0/lc-3_simulator.html";
     license = licenses.gpl2;
     maintainers = with maintainers; [ anna328p ];
+    mainProgram = "lc3sim-tk";
+    platforms = with lib.platforms; unix ++ windows;
   };
 }
diff --git a/pkgs/development/tools/maligned/default.nix b/pkgs/development/tools/maligned/default.nix
index 06cd23e40f4b3..f39b83489f990 100644
--- a/pkgs/development/tools/maligned/default.nix
+++ b/pkgs/development/tools/maligned/default.nix
@@ -1,30 +1,31 @@
-{ buildGoPackage
-, lib
+{ lib
+, buildGoModule
 , fetchFromGitHub
+, go
 }:
 
-buildGoPackage rec {
-  pname = "maligned-unstable";
-  version = "2018-07-07";
-  rev = "6e39bd26a8c8b58c5a22129593044655a9e25959";
-
-  goPackagePath = "github.com/mdempsky/maligned";
+buildGoModule rec {
+  pname = "maligned";
+  version = "unstable-2022-02-04";
+  rev = "d7cd9a96ae47d02b08234503b54709ad4ae82105";
 
   src = fetchFromGitHub {
-    inherit rev;
-
     owner = "mdempsky";
     repo = "maligned";
-    sha256 = "08inr5xjqv9flrlyhqd8ck1q26y5xb6iilz0xkb6bqa4dl5ialhi";
+    inherit rev;
+    sha256 = "sha256-exljmDNtVhjJkvh0EomcbBXSsmQx4I59MHDfMWSQyKk=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-q/0lxZWk3a7brMsbLvZUSZ8XUHfWfx79qxjir1Vygx4=";
+
+  allowGoReference = true;
+
+  checkInputs = [ go ];
 
   meta = with lib; {
     description = "Tool to detect Go structs that would take less memory if their fields were sorted";
     homepage = "https://github.com/mdempsky/maligned";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kalbasit ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/development/tools/maligned/deps.nix b/pkgs/development/tools/maligned/deps.nix
deleted file mode 100644
index afe5e50e47bdd..0000000000000
--- a/pkgs/development/tools/maligned/deps.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "96e9e165b75e735822645eff82850b08c377be36";
-      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
-    };
-  }
-]
diff --git a/pkgs/development/tools/mblock-mlink/default.nix b/pkgs/development/tools/mblock-mlink/default.nix
index f43cc683c320d..4d70efbbc50e2 100644
--- a/pkgs/development/tools/mblock-mlink/default.nix
+++ b/pkgs/development/tools/mblock-mlink/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Driver for mBlock web version";
     homepage = "https://mblock.makeblock.com/en-us/download/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.mausch ];
diff --git a/pkgs/development/tools/metal-cli/default.nix b/pkgs/development/tools/metal-cli/default.nix
index f2194ecc428d2..a01dc7d9d28e2 100644
--- a/pkgs/development/tools/metal-cli/default.nix
+++ b/pkgs/development/tools/metal-cli/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "metal-cli";
-  version = "0.7.4";
+  version = "0.9.0";
 
   src = fetchFromGitHub {
     owner = "equinix";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-muhHBUb5Ttj4n6fJzIJMqics5rKupeSBZAd4JxZUe64=";
+    sha256 = "sha256-ivO4YFFDTza20WgTGEaSGUcIEvXVtwKKVGyKWe8d9bA=";
   };
 
-  vendorSha256 = "sha256-F8d5i9jvjY11Pv6w0ZXI3jr0Wix++B/w9oRTuJGpQfE=";
+  vendorSha256 = "sha256-rf0EWMVvuoPUMTQKi/FnUbE2ZAs0C7XosHAzCgwB5wg=";
 
   ldflags = [
     "-s" "-w"
diff --git a/pkgs/development/tools/millet/default.nix b/pkgs/development/tools/millet/default.nix
new file mode 100644
index 0000000000000..bc5f184ad94b2
--- /dev/null
+++ b/pkgs/development/tools/millet/default.nix
@@ -0,0 +1,29 @@
+{ lib, rustPlatform, fetchFromGitHub, rustfmt }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "millet";
+  version = "0.1.12";
+
+  src = fetchFromGitHub {
+    owner = "azdavis";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-dYX7G/oDSjQwW28njat6pdNobnFp5yE7rgUCPqbWLi0=";
+  };
+
+  cargoSha256 = "sha256-ve7V2G4rVQJshngxEFZWX8PtRxvZgeHP7XCgW4x1yyo=";
+
+  nativeBuildInputs = [
+    # Required for `syntax-gen` crate https://github.com/azdavis/language-util/blob/8ec2dc509c88951102ad3e751820443059a363af/crates/syntax-gen/src/util.rs#L37
+    rustfmt
+  ];
+
+  cargoBuildFlags = [ "--package" "lang-srv" ];
+
+  meta = with lib; {
+    description = "A language server for Standard ML";
+    homepage = "https://github.com/azdavis/millet";
+    license = licenses.mit;
+    maintainers = with maintainers; [ marsam ];
+  };
+}
diff --git a/pkgs/development/tools/misc/act/default.nix b/pkgs/development/tools/misc/act/default.nix
index 10fc62fdeffa2..934f417b07455 100644
--- a/pkgs/development/tools/misc/act/default.nix
+++ b/pkgs/development/tools/misc/act/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "act";
-  version = "0.2.26";
+  version = "0.2.28";
 
   src = fetchFromGitHub {
     owner = "nektos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-DBiBJf4hEjn/sJXjAvsiARWz66sDBIz0hFEdCgS8D4g=";
+    sha256 = "sha256-wHBdmNFi//0nAgqRjTJYE3H+06HrW9l+xLVB97/XrnY=";
   };
 
-  vendorSha256 = "sha256-5RvFdtEZEQBWvkUKIcV/A+tCSy9V9DJj4HujGQgTxq0=";
+  vendorSha256 = "sha256-bWNDBoLGiV/eSUW/AE/yzvJN7NYCnT1GjzP3VmDVAg8=";
 
   doCheck = false;
 
diff --git a/pkgs/development/tools/misc/arcanist/default.nix b/pkgs/development/tools/misc/arcanist/default.nix
index 16c056bc3ff09..178bb9b3d0592 100644
--- a/pkgs/development/tools/misc/arcanist/default.nix
+++ b/pkgs/development/tools/misc/arcanist/default.nix
@@ -25,16 +25,19 @@ let makeArcWrapper = toolset: ''
 in
 stdenv.mkDerivation {
   pname = "arcanist";
-  version = "20220425";
+  version = "20220517";
 
   src = fetchFromGitHub {
     owner = "phacility";
     repo = "arcanist";
-    rev = "da206314cf59f71334b187283e18823bddc16ddd";
-    sha256 = "sha256-6VVUjFMwPQvk22Ni1YUSgks4ZM0j1JP+71VnYKD8onM=";
+    rev = "85c953ebe4a6fef332158fd757d97c5a58682d3a";
+    sha256 = "0x847fw74mzrbhzpgc4iqgvs6dsf4svwfa707dsbxi78fn2lxbl7";
   };
 
-  patches = [ ./dont-require-python3-in-path.patch ];
+  patches = [
+    ./dont-require-python3-in-path.patch
+    ./shellcomplete-strlen-null.patch
+  ];
 
   buildInputs = [ php python3 ];
 
diff --git a/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch b/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch
new file mode 100644
index 0000000000000..6911ce074e0cd
--- /dev/null
+++ b/pkgs/development/tools/misc/arcanist/shellcomplete-strlen-null.patch
@@ -0,0 +1,13 @@
+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/binutils/default.nix b/pkgs/development/tools/misc/binutils/default.nix
index 279e0da7155f9..4457db0943014 100644
--- a/pkgs/development/tools/misc/binutils/default.nix
+++ b/pkgs/development/tools/misc/binutils/default.nix
@@ -194,6 +194,9 @@ stdenv.mkDerivation {
   # mass rebuild.
   postFixup = "";
 
+  # Break dependency on pkgsBuildBuild.gcc when building a cross-binutils
+  stripDebugList = if stdenv.hostPlatform != stdenv.targetPlatform then "bin lib ${stdenv.hostPlatform.config}" else null;
+
   # INFO: Otherwise it fails with:
   # `./sanity.sh: line 36: $out/bin/size: not found`
   doInstallCheck = (buildPlatform == hostPlatform) && (hostPlatform == targetPlatform);
diff --git a/pkgs/development/tools/misc/blackfire/default.nix b/pkgs/development/tools/misc/blackfire/default.nix
index 8ccc03c6e5035..107076963b770 100644
--- a/pkgs/development/tools/misc/blackfire/default.nix
+++ b/pkgs/development/tools/misc/blackfire/default.nix
@@ -98,6 +98,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Blackfire Profiler agent and client";
     homepage = "https://blackfire.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jtojnar shyim ];
     platforms = [ "x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/development/tools/misc/blackfire/php-probe.nix b/pkgs/development/tools/misc/blackfire/php-probe.nix
index 7abca124920fc..0805a5be07cf4 100644
--- a/pkgs/development/tools/misc/blackfire/php-probe.nix
+++ b/pkgs/development/tools/misc/blackfire/php-probe.nix
@@ -198,6 +198,7 @@ self = stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Blackfire Profiler PHP module";
     homepage = "https://blackfire.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ jtojnar shyim ];
     platforms = [ "x86_64-linux" "aarch64-linux" "i686-linux" "x86_64-darwin" "aarch64-darwin" ];
diff --git a/pkgs/development/tools/misc/checkbashisms/default.nix b/pkgs/development/tools/misc/checkbashisms/default.nix
index 6222bb312bb08..b648a082fa3f6 100644
--- a/pkgs/development/tools/misc/checkbashisms/default.nix
+++ b/pkgs/development/tools/misc/checkbashisms/default.nix
@@ -1,11 +1,11 @@
 { lib, stdenv, fetchurl, perl, installShellFiles }:
 stdenv.mkDerivation rec {
-  version = "2.21.1";
+  version = "2.22.1";
   pname = "checkbashisms";
 
   src = fetchurl {
     url = "mirror://debian/pool/main/d/devscripts/devscripts_${version}.tar.xz";
-    hash = "sha256-1ZbIiUrFd38uMVLy7YayLLm5RrmcovsA++JTb8PbTFI=";
+    hash = "sha256-Nd1eYCnSe+NblujG44uKpvunkaITcdrC3g+M3uX+M9U=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/development/tools/misc/cli11/default.nix b/pkgs/development/tools/misc/cli11/default.nix
index dbab7c880efbd..67cdfb2c68ef9 100644
--- a/pkgs/development/tools/misc/cli11/default.nix
+++ b/pkgs/development/tools/misc/cli11/default.nix
@@ -1,35 +1,30 @@
-{
-  lib, stdenv,
-  fetchFromGitHub,
-  cmake,
-  gtest,
-  python3,
-  boost
+{ lib
+, stdenv
+, fetchFromGitHub
+, boost
+, catch2
+, cmake
+, gtest
+, python3
 }:
 
 stdenv.mkDerivation rec {
   pname = "cli11";
-  version = "1.9.1";
+  version = "2.2.0";
 
   src = fetchFromGitHub {
     owner = "CLIUtils";
     repo = "CLI11";
     rev = "v${version}";
-    sha256 = "0hbch0vk8irgmiaxnfqlqys65v1770rxxdfn3d23m2vqyjh0j9l6";
+    sha256 = "sha256-emTIaoUyTINbAAn9tw1r3zLTQt58N8A1zoP+0y41yKo=";
   };
 
   nativeBuildInputs = [ cmake ];
 
-  checkInputs = [ boost python3 ];
+  checkInputs = [ boost python3 catch2 ];
 
   doCheck = true;
 
-  preConfigure = ''
-    rm -rfv extern/googletest
-    ln -sfv ${gtest.src} extern/googletest
-    sed -i '/TrueFalseTest/d' tests/CMakeLists.txt
-  '';
-
   meta = with lib; {
     description = "Command line parser for C++11";
     homepage = "https://github.com/CLIUtils/CLI11";
diff --git a/pkgs/development/tools/misc/clojure-lsp/default.nix b/pkgs/development/tools/misc/clojure-lsp/default.nix
index 0d878ffe90691..78bee76efdcf9 100644
--- a/pkgs/development/tools/misc/clojure-lsp/default.nix
+++ b/pkgs/development/tools/misc/clojure-lsp/default.nix
@@ -2,18 +2,18 @@
 
 buildGraalvmNativeImage rec {
   pname = "clojure-lsp";
-  version = "2022.05.31-17.35.50";
+  version = "2022.06.22-14.09.50";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-turIdgW1gr+b4rjCTet9demJvtaSdw3INbWgXetngLM=";
+    sha256 = "sha256-QMzjoxcEbzOZKh3nN+kMwjp5NfARBFiVnZ/1B3yzVK0=";
   };
 
   jar = fetchurl {
     url = "https://github.com/clojure-lsp/clojure-lsp/releases/download/${version}/clojure-lsp-standalone.jar";
-    sha256 = "e67140bca87347ab639c40504c897c36307ed64278bb764db41a32627582bd71";
+    sha256 = "ff400595723af878f5d6edfed78d403eb1ce18bd439d4bb0eb8eccf3d20a2b51";
   };
 
   extraNativeImageBuildArgs = [
diff --git a/pkgs/development/tools/misc/editorconfig-checker/default.nix b/pkgs/development/tools/misc/editorconfig-checker/default.nix
index 13377334cce41..ff95935326426 100644
--- a/pkgs/development/tools/misc/editorconfig-checker/default.nix
+++ b/pkgs/development/tools/misc/editorconfig-checker/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "editorconfig-checker";
-  version = "2.4.0";
+  version = "2.5.0";
 
   src = fetchFromGitHub {
     owner = "editorconfig-checker";
     repo = "editorconfig-checker";
     rev = version;
-    sha256 = "sha256-uP+AgQO1k9fic7r0pOKqO5lUHKEf7Pwaw2U2a6ghzz0=";
+    sha256 = "sha256-zbE/je5ZxCX83hxl88c8/FoZzOLatrSEjSAI+eIOVQQ=";
   };
 
   vendorSha256 = "sha256-SrBrYyExeDHXhezvtfGLtm8NM1eX4/8kzwUICQLZDjo=";
diff --git a/pkgs/development/tools/misc/elfinfo/default.nix b/pkgs/development/tools/misc/elfinfo/default.nix
index e3ee51c58fdc6..b9a6dc0c39b4f 100644
--- a/pkgs/development/tools/misc/elfinfo/default.nix
+++ b/pkgs/development/tools/misc/elfinfo/default.nix
@@ -1,20 +1,25 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "elfinfo";
   version = "1.1.0";
 
-  goPackagePath = "github.com/xyproto/elfinfo";
   src = fetchFromGitHub {
-    rev = version;
     owner = "xyproto";
     repo = "elfinfo";
+    rev = version;
     sha256 = "1n8bg0rcq9fqa6rdnk6x9ngvm59hcayblkpjv9j5myn2vmm6fv8m";
   };
 
+  vendorSha256 = null;
+
   meta = with lib; {
     description = "Small utility for showing information about ELF files";
     homepage = "https://elfinfo.roboticoverlords.org/";
+    changelog = "https://github.com/xyproto/elfinfo/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dtzWill ];
   };
diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix
index 5eb252a9c0e41..bf1784e08a02a 100644
--- a/pkgs/development/tools/misc/fswatch/default.nix
+++ b/pkgs/development/tools/misc/fswatch/default.nix
@@ -11,13 +11,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fswatch";
-  version = "1.16.0";
+  version = "1.17.0";
 
   src = fetchFromGitHub {
     owner = "emcrisostomo";
     repo = "fswatch";
     rev = version;
-    sha256 = "sha256-EKbo5gkrWuijLJgYsNBDtxy0ioXu/yHxnPPeOpk620g=";
+    sha256 = "sha256-9xCp/SaqdUsVhOYr/QfAN/7RcRxsybCmfiO91vf3j40=";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ] ++ lib.optionals stdenv.isDarwin [ CoreServices ];
diff --git a/pkgs/development/tools/misc/grpc-client-cli/default.nix b/pkgs/development/tools/misc/grpc-client-cli/default.nix
new file mode 100644
index 0000000000000..59beb7acd8bb4
--- /dev/null
+++ b/pkgs/development/tools/misc/grpc-client-cli/default.nix
@@ -0,0 +1,22 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "grpc-client-cli";
+  version = "1.12.0";
+
+  src = fetchFromGitHub {
+    owner = "vadimi";
+    repo = "grpc-client-cli";
+    rev = "v${version}";
+    sha256 = "sha256-hsx+nmkYLkSsrUEDAf5556qNLeZ3w5txFBUpDv+b3a4=";
+  };
+
+  vendorSha256 = "sha256-1WcnEl3odjxyXfSNyzPU3fa5yrF4MaEgfCAsbr3xedA=";
+
+  meta = with lib; {
+    description = "generic gRPC command line client";
+    maintainers = with maintainers; [ Philipp-M ];
+    homepage = "https://github.com/vadimi/grpc-client-cli";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/tools/misc/hound/default.nix b/pkgs/development/tools/misc/hound/default.nix
index 4a2b4ac603603..7e46fadf362e0 100644
--- a/pkgs/development/tools/misc/hound/default.nix
+++ b/pkgs/development/tools/misc/hound/default.nix
@@ -8,13 +8,13 @@
 
 buildGoModule rec {
   pname = "hound";
-  version = "0.5.0";
+  version = "0.5.1";
 
   src = fetchFromGitHub {
     owner = "hound-search";
     repo = "hound";
     rev = "v${version}";
-    sha256 = "sha256-FNK6SgISGqx+O7Vgp+KOqQyPhqzERDjeo6mQIX1SXnA=";
+    sha256 = "sha256-1URhb+ZrtP5eGS2o7lBxvAxQJR/J6oE+pCbJ7sQb0X4=";
   };
 
   vendorSha256 = "sha256-ZgF/PB3VTPx367JUkhOkSEK1uvqENNG0xuNXvCGENnQ=";
diff --git a/pkgs/development/tools/misc/hydra/eval.patch b/pkgs/development/tools/misc/hydra/eval.patch
deleted file mode 100644
index 0be856ee75706..0000000000000
--- a/pkgs/development/tools/misc/hydra/eval.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff --git a/src/hydra-eval-jobs/Makefile.am b/src/hydra-eval-jobs/Makefile.am
-index 7a4e9c91..90742a30 100644
---- a/src/hydra-eval-jobs/Makefile.am
-+++ b/src/hydra-eval-jobs/Makefile.am
-@@ -1,5 +1,5 @@
- bin_PROGRAMS = hydra-eval-jobs
- 
- hydra_eval_jobs_SOURCES = hydra-eval-jobs.cc
--hydra_eval_jobs_LDADD = $(NIX_LIBS)
-+hydra_eval_jobs_LDADD = $(NIX_LIBS) -lnixcmd
- hydra_eval_jobs_CXXFLAGS = $(NIX_CFLAGS) -I ../libhydra
diff --git a/pkgs/development/tools/misc/hydra/unstable.nix b/pkgs/development/tools/misc/hydra/unstable.nix
index 709af8f44855a..db21e94d738a4 100644
--- a/pkgs/development/tools/misc/hydra/unstable.nix
+++ b/pkgs/development/tools/misc/hydra/unstable.nix
@@ -126,16 +126,22 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "hydra";
-  version = "2022-05-03";
+  version = "2022-06-16";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "hydra";
-    rev = "7c133a98f8e689cdc13f8a1adaaa9cd75d039a35";
-    sha256 = "sha256-LqBLIXYssvDoSp2Hf2+vDDB9O8VSF48HAGwL8pI2WZY=";
+    rev = "fb26435fe9a54f13143e69a545b8f3cecffaed96";
+    sha256 = "sha256-kmgN7D7tUC3Ki70D+rdS19PW/lrANlU3tc8gu5gsld0=";
   };
 
-  patches = [ ./eval.patch ];
+  patches = [
+    # https://github.com/NixOS/hydra/pull/1215: scmdiff: Hardcode --git-dir
+    (fetchpatch {
+      url = "https://github.com/NixOS/hydra/commit/b6ea85a601ddac9cb0716d8cb4d446439fa0778f.patch";
+      sha256 = "sha256-QHjwLYQucdkBs6OsFI8kWo5ugkPXXlTgdbGFxKBHAHo=";
+    })
+  ];
 
   buildInputs =
     [
diff --git a/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
index e5ed098af8e1d..2dba7768cf8c2 100644
--- a/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
+++ b/pkgs/development/tools/misc/remarkable/remarkable-toolchain/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A toolchain for cross-compiling to reMarkable tablets";
     homepage = "https://remarkable.engineering/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ nickhu siraben ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix b/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
index fe54390c78580..2bb5e11e24327 100644
--- a/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
+++ b/pkgs/development/tools/misc/remarkable/remarkable2-toolchain/default.nix
@@ -28,6 +28,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A toolchain for cross-compiling to reMarkable 2 tablets";
     homepage = "https://remarkable.engineering/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ tadfisher ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/misc/saleae-logic-2/default.nix b/pkgs/development/tools/misc/saleae-logic-2/default.nix
index 04526f59bd498..f606bc609713f 100644
--- a/pkgs/development/tools/misc/saleae-logic-2/default.nix
+++ b/pkgs/development/tools/misc/saleae-logic-2/default.nix
@@ -1,10 +1,10 @@
 { lib, fetchurl, makeDesktopItem, appimageTools }:
 let
   name = "saleae-logic-2";
-  version = "2.3.53";
+  version = "2.3.55";
   src = fetchurl {
     url = "https://downloads.saleae.com/logic2/Logic-${version}-master.AppImage";
-    sha256 = "sha256-RZrOyL0tb1nH5SX7P6d4TFkxSwDZiJUpu1eZaXqX3ew=";
+    sha256 = "sha256-fL72KZzOh9pWrjSaXDCMz0ijqRj1Vc5Ym37onv4E7aI=";
   };
   desktopItem = makeDesktopItem {
     inherit name;
diff --git a/pkgs/development/tools/misc/saleae-logic/default.nix b/pkgs/development/tools/misc/saleae-logic/default.nix
index 487445e0fc35b..d4f17fb595d07 100644
--- a/pkgs/development/tools/misc/saleae-logic/default.nix
+++ b/pkgs/development/tools/misc/saleae-logic/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Software for Saleae logic analyzers";
     homepage = "https://www.saleae.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = [ maintainers.bjornfor ];
diff --git a/pkgs/development/tools/misc/segger-ozone/default.nix b/pkgs/development/tools/misc/segger-ozone/default.nix
index 5e1c6888b8e59..7f68d3e7fc662 100644
--- a/pkgs/development/tools/misc/segger-ozone/default.nix
+++ b/pkgs/development/tools/misc/segger-ozone/default.nix
@@ -77,6 +77,7 @@ stdenv.mkDerivation rec {
       not guaranteed to be.
     '';
     homepage = "https://www.segger.com/products/development-tools/ozone-j-link-debugger";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.bmilanov ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/misc/strace/default.nix b/pkgs/development/tools/misc/strace/default.nix
index 1fd8db8c6e2ed..bee5d227f4d65 100644
--- a/pkgs/development/tools/misc/strace/default.nix
+++ b/pkgs/development/tools/misc/strace/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "strace";
-  version = "5.17";
+  version = "5.18";
 
   src = fetchurl {
     url = "https://strace.io/files/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-X7KY29EzH9HhvJTFwyOVhg03YQG4fGzT0bqfmqFcFh8=";
+    sha256 = "sha256-YCk+p5rJJT1gDNyb4HetKYjKIihKQ5yeZr5RUNs9EYc=";
   };
 
   depsBuildBuild = [ buildPackages.stdenv.cc ];
diff --git a/pkgs/development/tools/misc/terraform-ls/default.nix b/pkgs/development/tools/misc/terraform-ls/default.nix
index e85e014368afd..3e218523ed34b 100644
--- a/pkgs/development/tools/misc/terraform-ls/default.nix
+++ b/pkgs/development/tools/misc/terraform-ls/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "terraform-ls";
-  version = "0.26.0";
+  version = "0.28.1";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Xq9HojFjUrdThXvQ4M8o4LLmxopVErnN3WGUgI79BCw=";
+    sha256 = "sha256-6K4aOp5mjX+qhG/OS/Gs1kAOpDGUPdgRNx4zp3i/c2A=";
   };
-  vendorSha256 = "sha256-iSgK+FOD9olVN4bR2jmtWndaRHrh9pfo/42COTiIh9c=";
+  vendorSha256 = "sha256-YouAdTo7huco35er84MRfI1gmq11VbFwRGSovs1XDYo=";
 
   ldflags = [ "-s" "-w" "-X main.version=v${version}" "-X main.prerelease=" ];
 
diff --git a/pkgs/development/tools/misc/xorg-autoconf/default.nix b/pkgs/development/tools/misc/xorg-autoconf/default.nix
new file mode 100644
index 0000000000000..34aa363550ae5
--- /dev/null
+++ b/pkgs/development/tools/misc/xorg-autoconf/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, stdenv
+, autoreconfHook
+, fetchFromGitLab
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xorg-autoconf";
+  version = "1.19.3";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    group = "xorg";
+    owner = "util";
+    repo = "macros";
+    rev = "util-macros-${version}";
+    sha256 = "sha256-+yEMCjLztdY5LKTNjfhudDS0fdaOj4LKZ3YL5witFR4=";
+  };
+
+  nativeBuildInputs = [ autoreconfHook ];
+
+  meta = with lib; {
+    description = "GNU autoconf macros shared across X.Org projects";
+    homepage = "https://gitlab.freedesktop.org/xorg/util/macros";
+    maintainers = with maintainers; [ raboof ];
+    license = licenses.mit;
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/development/tools/mold/default.nix b/pkgs/development/tools/mold/default.nix
index 514835e81e4c8..c540aea300d0c 100644
--- a/pkgs/development/tools/mold/default.nix
+++ b/pkgs/development/tools/mold/default.nix
@@ -12,13 +12,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mold";
-  version = "1.2.1";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "rui314";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-qrIaHDjPiOzQ8Gi7aPT0BM9oIgWr1IdcT7vvYmsea7k=";
+    sha256 = "sha256-vfSsK1ODspmpku2KykDkTXkuZjywb/trBQbSiWJgwy4=";
   };
 
   buildInputs = [ zlib openssl ];
diff --git a/pkgs/development/tools/neoload/default.nix b/pkgs/development/tools/neoload/default.nix
index 0fcb121e4603a..b7e927dbfd077 100644
--- a/pkgs/development/tools/neoload/default.nix
+++ b/pkgs/development/tools/neoload/default.nix
@@ -87,6 +87,7 @@ in stdenv.mkDerivation rec {
 
     homepage = "https://www.neotys.com/product/overview-neoload.html";
 
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     # https://www.neotys.com/documents/legal/eula/neoload/eula_en.html
     license = lib.licenses.unfree;
 
diff --git a/pkgs/development/tools/ocaml/dune/3.nix b/pkgs/development/tools/ocaml/dune/3.nix
index 009c3cb6fe206..299a337d276c4 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.2.0";
+  version = "3.3.1";
 
   src = fetchurl {
-    url = "https://github.com/ocaml/dune/releases/download/${version}/chrome-trace-${version}.tbz";
-    sha256 = "sha256-vR+85q557R6yb6ibsuLiOXivzrP1P1V4zxvasIoa1bw=";
+    url = "https://github.com/ocaml/dune/releases/download/${version}/dune-${version}.tbz";
+    sha256 = "sha256-hAyASRv+Erq18rmdSeFj8+TE0vxLSj5vsWwk3M1VAuE=";
   };
 
   nativeBuildInputs = [ ocaml findlib ];
diff --git a/pkgs/development/tools/ocaml/utop/default.nix b/pkgs/development/tools/ocaml/utop/default.nix
index 08abbc1c9f216..195ae47a16344 100644
--- a/pkgs/development/tools/ocaml/utop/default.nix
+++ b/pkgs/development/tools/ocaml/utop/default.nix
@@ -4,15 +4,13 @@
 
 buildDunePackage rec {
   pname = "utop";
-  version = "2.9.1";
-
-  useDune2 = true;
+  version = "2.9.2";
 
   minimalOCamlVersion = "4.03";
 
   src = fetchurl {
     url = "https://github.com/ocaml-community/utop/releases/download/${version}/utop-${version}.tbz";
-    sha256 = "sha256-6TQxLYN/qjTABZuK6rp+daCSNWyJIXzB8q2QpZeBwaY=";
+    sha256 = "sha256-kvFBCe69TRQIWvZV47SH7ISus9k8afGRw5WLKzKqw08=";
   };
 
   nativeBuildInputs = [ makeWrapper cppo ];
diff --git a/pkgs/development/tools/okteto/default.nix b/pkgs/development/tools/okteto/default.nix
index 435ccd5a79fd3..ec4974876cb59 100644
--- a/pkgs/development/tools/okteto/default.nix
+++ b/pkgs/development/tools/okteto/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "okteto";
-  version = "2.3.3";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "okteto";
     repo = "okteto";
     rev = version;
-    sha256 = "sha256-rKhXzmBV59bj/Dj2ORU1ggOohAs56iB15es924pHXp4=";
+    sha256 = "sha256-+shhY7/chtq4xPwYSlcVgL/RGMNA0ahTCqT9pVQqpG4=";
   };
 
-  vendorSha256 = "sha256-XT/ZLydN1oeuRupD3gjvY6+hOB/Lq5CQwhfr9/iT7JI=";
+  vendorSha256 = "sha256-W1/QBMnMdZWokWSFmHhPqmOu827bpGXS8+GFp5Iu9Ig=";
 
   postPatch = ''
     # Disable some tests that need file system & network access.
diff --git a/pkgs/development/tools/omnisharp-roslyn/create-deps.sh b/pkgs/development/tools/omnisharp-roslyn/create-deps.sh
deleted file mode 100755
index c1b5da1247333..0000000000000
--- a/pkgs/development/tools/omnisharp-roslyn/create-deps.sh
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -I nixpkgs=../../../.. -i bash -p dotnet-sdk_6 jq xmlstarlet curl
-set -euo pipefail
-
-cat << EOL
-{ fetchurl }: [
-EOL
-
-# enter a temporary directory containing the source code, copied from the derivation
-srcdir="$(mktemp -d)"
-cp -r "$(nix-build -A omnisharp-roslyn.src ../../../..)"/. "$srcdir"
-rm -f "$srcdir"/global.json
-
-pushd $srcdir >&2
-
-tmpdir="$(mktemp -d -p "$(pwd)")" # must be under source root
-
-mapfile -t repos < <(
-    xmlstarlet sel -t -v 'configuration/packageSources/add/@value' -n NuGet.Config |
-        while IFS= read index
-        do
-            curl --compressed -fsL "$index" | \
-                jq -r '.resources[] | select(."@type" == "PackageBaseAddress/3.0.0")."@id"'
-        done
-    )
-
-dotnet msbuild -t:restore -p:Configuration=Release -p:RestorePackagesPath="$tmpdir" \
-        -p:RestoreNoCache=true -p:RestoreForce=true \
-        "$srcdir/src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj" >&2
-
-cd "$tmpdir"
-for package in *
-do
-    cd "$package"
-    for version in *
-    do
-        found=false
-        for repo in "${repos[@]}"
-        do
-            url="$repo$package/$version/$package.$version.nupkg"
-            if curl -fsL "$url" -o /dev/null
-            then
-                found=true
-                break
-            fi
-        done
-
-        if ! $found
-        then
-            echo "couldn't find $package $version" >&2
-            exit 1
-        fi
-
-        sha256=$(nix-prefetch-url "$url" 2>/dev/null)
-        cat << EOL
-  {
-    pname = "$package";
-    version = "$version";
-    src = fetchurl {
-      url = "$url";
-      sha256 = "$sha256";
-    };
-  }
-EOL
-    done
-    cd ..
-done
-cd ..
-
-cat << EOL
-]
-EOL
-
-popd >&2
diff --git a/pkgs/development/tools/omnisharp-roslyn/default.nix b/pkgs/development/tools/omnisharp-roslyn/default.nix
index a76e57ad4265b..7818273f80f3b 100644
--- a/pkgs/development/tools/omnisharp-roslyn/default.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/default.nix
@@ -1,68 +1,9 @@
-{ lib, stdenv
-, fetchFromGitHub
-, fetchurl
-, dotnetCorePackages
-, makeWrapper
-, unzip
-, writeText
-}:
+{ lib, fetchFromGitHub, buildDotnetModule, dotnetCorePackages }:
 
 let
-
-  dotnet-sdk = dotnetCorePackages.sdk_6_0;
-
-  deps = map (package: stdenv.mkDerivation (with package; {
-    inherit pname version src;
-
-    buildInputs = [ unzip ];
-    unpackPhase = ''
-      unzip $src
-      chmod -R u+r .
-      function traverseRename () {
-        for e in *
-        do
-          t="$(echo "$e" | sed -e "s/%20/\ /g" -e "s/%2B/+/g")"
-          [ "$t" != "$e" ] && mv -vn "$e" "$t"
-          if [ -d "$t" ]
-          then
-            cd "$t"
-            traverseRename
-            cd ..
-          fi
-        done
-      }
-
-      traverseRename
-    '';
-
-    installPhase = ''
-      runHook preInstall
-
-      package=$out/lib/dotnet/${pname}/${version}
-      mkdir -p $package
-      cp -r . $package
-      echo "{}" > $package/.nupkg.metadata
-
-      runHook postInstall
-    '';
-
-    dontFixup = true;
-  }))
-    (import ./deps.nix { inherit fetchurl; });
-
-  nuget-config = writeText "NuGet.Config" ''
-    <?xml version="1.0" encoding="utf-8"?>
-    <configuration>
-      <packageSources>
-        <clear />
-      </packageSources>
-      <fallbackPackageFolders>
-        ${lib.concatStringsSep "\n" (map (package: "<add key=\"${package}\" value=\"${package}/lib/dotnet\"/>") deps)}
-      </fallbackPackageFolders>
-    </configuration>
-  '';
-
-in stdenv.mkDerivation rec {
+  sdkVersion = dotnetCorePackages.sdk_6_0.version;
+in
+buildDotnetModule rec {
   pname = "omnisharp-roslyn";
   version = "1.38.2";
 
@@ -73,45 +14,33 @@ in stdenv.mkDerivation rec {
     sha256 = "7XJIdotfffu8xo+S6xlc1zcK3oY9QIg1CJhCNJh5co0=";
   };
 
-  nativeBuildInputs = [ makeWrapper dotnet-sdk ];
+  projectFile = "src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj";
+  nugetDeps = ./deps.nix;
+
+  dotnetInstallFlags = [ "--framework net6.0" ];
 
   postPatch = ''
     # Relax the version requirement
     substituteInPlace global.json \
-      --replace '6.0.100' '${dotnet-sdk.version}'
+      --replace '6.0.100' '${sdkVersion}'
   '';
 
-  buildPhase = ''
-    runHook preBuild
-
-    HOME=$(pwd)/fake-home dotnet msbuild -r \
-      -p:Configuration=Release \
-      -p:RestoreConfigFile=${nuget-config} \
-      src/OmniSharp.Stdio.Driver/OmniSharp.Stdio.Driver.csproj
-
-    runHook postBuild
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp -r bin/Release/OmniSharp.Stdio.Driver/net6.0 $out/src
-
+  postFixup = ''
     # Delete files to mimick hacks in https://github.com/OmniSharp/omnisharp-roslyn/blob/bdc14ca/build.cake#L594
-    rm $out/src/NuGet.*.dll
-    rm $out/src/System.Configuration.ConfigurationManager.dll
-
-    makeWrapper $out/src/OmniSharp $out/bin/omnisharp \
-      --prefix DOTNET_ROOT : ${dotnet-sdk} \
-      --suffix PATH : ${dotnet-sdk}/bin
+    rm $out/lib/omnisharp-roslyn/NuGet.*.dll
+    rm $out/lib/omnisharp-roslyn/System.Configuration.ConfigurationManager.dll
   '';
 
   meta = with lib; {
     description = "OmniSharp based on roslyn workspaces";
     homepage = "https://github.com/OmniSharp/omnisharp-roslyn";
     platforms = platforms.unix;
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # dependencies
+    ];
     license = licenses.mit;
-    maintainers = with maintainers; [ tesq0 ericdallo corngood ];
-    mainProgram = "omnisharp";
+    maintainers = with maintainers; [ tesq0 ericdallo corngood mdarocha ];
+    mainProgram = "OmniSharp";
   };
-
 }
diff --git a/pkgs/development/tools/omnisharp-roslyn/deps.nix b/pkgs/development/tools/omnisharp-roslyn/deps.nix
index 11b516357ee4f..8bb5c8bb65480 100644
--- a/pkgs/development/tools/omnisharp-roslyn/deps.nix
+++ b/pkgs/development/tools/omnisharp-roslyn/deps.nix
@@ -1,2858 +1,359 @@
-{ fetchurl }: [
-  {
-    pname = "cake.scripting.abstractions";
-    version = "0.9.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/cake.scripting.abstractions/0.9.0/cake.scripting.abstractions.0.9.0.nupkg";
-      sha256 = "15nqr100crclha0lzgil25j1wn45517gb34059qypj05j8psfmjx";
-    };
-  }
-  {
-    pname = "cake.scripting.transport";
-    version = "0.9.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/cake.scripting.transport/0.9.0/cake.scripting.transport.0.9.0.nupkg";
-      sha256 = "1gpbvframx4dx4mzfh44cib6dfd26q7878vf073m9gv3y43sws7b";
-    };
-  }
-  {
-    pname = "dotnet.script.dependencymodel";
-    version = "1.3.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/dotnet.script.dependencymodel/1.3.1/dotnet.script.dependencymodel.1.3.1.nupkg";
-      sha256 = "0bi9rg6c77qav8mb0rbvs5pczf9f0ii8i11c9vyib53bv6fiifxp";
-    };
-  }
-  {
-    pname = "dotnet.script.dependencymodel.nuget";
-    version = "1.3.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/dotnet.script.dependencymodel.nuget/1.3.1/dotnet.script.dependencymodel.nuget.1.3.1.nupkg";
-      sha256 = "1v2xd0f2xrkgdznnjad5vhjan51k9qwi4piyg5vdz9mvywail51q";
-    };
-  }
-  {
-    pname = "humanizer.core";
-    version = "2.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/humanizer.core/2.2.0/humanizer.core.2.2.0.nupkg";
-      sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5";
-    };
-  }
-  {
-    pname = "icsharpcode.decompiler";
-    version = "7.1.0.6543";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/icsharpcode.decompiler/7.1.0.6543/icsharpcode.decompiler.7.1.0.6543.nupkg";
-      sha256 = "1xrajs5dcd7aqsg9ibhdcy39yrd8737kknkmqf907n7fqs2jxr46";
-    };
-  }
-  {
-    pname = "mcmaster.extensions.commandlineutils";
-    version = "3.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/mcmaster.extensions.commandlineutils/3.1.0/mcmaster.extensions.commandlineutils.3.1.0.nupkg";
-      sha256 = "075n1mfsxwz514r94l8i3ax0wp43c3xb4f9w25a96h6xxnj0k2hd";
-    };
-  }
-  {
-    pname = "mediatr";
-    version = "8.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/mediatr/8.1.0/mediatr.8.1.0.nupkg";
-      sha256 = "0cqx7yfh998xhsfk5pr6229lcjcs1jxxyqz7dwskc9jddl6a2akp";
-    };
-  }
-  {
-    pname = "microsoft.aspnetcore.app.runtime.win-arm64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-arm64/6.0.5/microsoft.aspnetcore.app.runtime.win-arm64.6.0.5.nupkg";
-      sha256 = "1hlwgmscwv08bacajfa8rwgdy7shnyhr6m2jj6c25nbjrfbrdkrd";
-    };
-  }
-  {
-    pname = "microsoft.aspnetcore.app.runtime.win-x64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x64/6.0.5/microsoft.aspnetcore.app.runtime.win-x64.6.0.5.nupkg";
-      sha256 = "1wl227mbbda039dznl2lvd65kh3k978qa88pa2ayqjx3vb6394q9";
-    };
-  }
-  {
-    pname = "microsoft.aspnetcore.app.runtime.win-x86";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.aspnetcore.app.runtime.win-x86/6.0.5/microsoft.aspnetcore.app.runtime.win-x86.6.0.5.nupkg";
-      sha256 = "0b67bay43msr4hnhw6j9crm7p2z3ykbxz3cbyjzrsf80i2y79p4g";
-    };
-  }
-  {
-    pname = "microsoft.bcl.asyncinterfaces";
-    version = "1.1.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/1.1.1/microsoft.bcl.asyncinterfaces.1.1.1.nupkg";
-      sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw";
-    };
-  }
-  {
-    pname = "microsoft.bcl.asyncinterfaces";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/5.0.0/microsoft.bcl.asyncinterfaces.5.0.0.nupkg";
-      sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf";
-    };
-  }
-  {
-    pname = "microsoft.bcl.asyncinterfaces";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/6.0.0/microsoft.bcl.asyncinterfaces.6.0.0.nupkg";
-      sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3";
-    };
-  }
-  {
-    pname = "microsoft.build";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build/17.0.0/microsoft.build.17.0.0.nupkg";
-      sha256 = "166brl88y8xn9llc0hmn911k6y74gapmk1mrnfxbv73qj77jxsn1";
-    };
-  }
-  {
-    pname = "microsoft.build.framework";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build.framework/17.0.0/microsoft.build.framework.17.0.0.nupkg";
-      sha256 = "08c257dmfa6n41lq4fxb34khi8jbwlqfy1168x7h7zsbh3wss7yq";
-    };
-  }
-  {
-    pname = "microsoft.build.locator";
-    version = "1.4.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build.locator/1.4.1/microsoft.build.locator.1.4.1.nupkg";
-      sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx";
-    };
-  }
-  {
-    pname = "microsoft.build.tasks.core";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build.tasks.core/17.0.0/microsoft.build.tasks.core.17.0.0.nupkg";
-      sha256 = "087mn3rz5plnj7abjqk2di5is35mmfgmdjf0kcdn7jld8rbhk5hx";
-    };
-  }
-  {
-    pname = "microsoft.build.tasks.git";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build.tasks.git/1.0.0/microsoft.build.tasks.git.1.0.0.nupkg";
-      sha256 = "0avwja8vk56f2kr2pmrqx3h60bnwbs7ds062lhvhcxv87m5yfqnj";
-    };
-  }
-  {
-    pname = "microsoft.build.utilities.core";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.build.utilities.core/17.0.0/microsoft.build.utilities.core.17.0.0.nupkg";
-      sha256 = "0b7kylnvdqs81nmxdw7alwij8b19wm00iqicb9gkiklxjfyd8xav";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.analyzers";
-    version = "3.3.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.codeanalysis.analyzers/3.3.3/microsoft.codeanalysis.analyzers.3.3.3.nupkg";
-      sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.analyzerutilities";
-    version = "3.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.codeanalysis.analyzerutilities/3.3.0/microsoft.codeanalysis.analyzerutilities.3.3.0.nupkg";
-      sha256 = "0b2xy6m3l1y6j2xc97cg5llia169jv4nszrrrqclh505gpw6qccz";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.common";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.common/4.2.0-3.22169.1/microsoft.codeanalysis.common.4.2.0-3.22169.1.nupkg";
-      sha256 = "0505svp6y5nbmkh22gz6g4bcxxsmbpc9jy08h8lz5z4i3bikl30b";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.csharp";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.4.2.0-3.22169.1.nupkg";
-      sha256 = "1shvi06n4n2yxvmjzvvx5h9zcc1jwqjfcxr2lbagdcq9bmnvlikw";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.csharp.features";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.features/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.features.4.2.0-3.22169.1.nupkg";
-      sha256 = "1aq1qqdvq06h6247m3hpgzkgwpj3a48jl5b98hp4aj9kb5wkmnil";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.csharp.scripting";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.scripting/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.scripting.4.2.0-3.22169.1.nupkg";
-      sha256 = "0nhng62lfn4r300g2z3vp4qw51w8vzb5gl3wkd77p9lx2n1ma7n2";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.csharp.workspaces";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.workspaces/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.workspaces.4.2.0-3.22169.1.nupkg";
-      sha256 = "16vsx5yb3fmyx1nqnbsd5iy46v7s0gf8aikxl12yy7ajdd4mapxj";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.elfie";
-    version = "1.0.0-rc14";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.codeanalysis.elfie/1.0.0-rc14/microsoft.codeanalysis.elfie.1.0.0-rc14.nupkg";
-      sha256 = "0774fkq08a3h0yn22glfcvwzrwc0ll7dh71k0p1mg7m3biyy8a2f";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.externalaccess.omnisharp";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.4.2.0-3.22169.1.nupkg";
-      sha256 = "02c7m8gy3jkbvn8dcrzc00ngg80xq90cfa1yspk4y4pdcjf6mrbc";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.externalaccess.omnisharp.csharp";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.csharp.4.2.0-3.22169.1.nupkg";
-      sha256 = "1wj6r0ara77fibvxh8s518isgwxwcd41c0iw7fmvz2pd94l16hgz";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.features";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.features/4.2.0-3.22169.1/microsoft.codeanalysis.features.4.2.0-3.22169.1.nupkg";
-      sha256 = "1xpsjsxm7hnl9wzfp0nz9prv72jgf0r9ljqynab3gaipsdaswddk";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.scripting.common";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.scripting.common/4.2.0-3.22169.1/microsoft.codeanalysis.scripting.common.4.2.0-3.22169.1.nupkg";
-      sha256 = "0w0z3njcbq6n0a24xvxcp461898zlkwqs6p1gdpnpxks5vvgah12";
-    };
-  }
-  {
-    pname = "microsoft.codeanalysis.workspaces.common";
-    version = "4.2.0-3.22169.1";
-    src = fetchurl {
-      url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.workspaces.common/4.2.0-3.22169.1/microsoft.codeanalysis.workspaces.common.4.2.0-3.22169.1.nupkg";
-      sha256 = "0psy2ifls96mif6kvr242v1s1zmawdljwmcxaj20rl3m7v0nlwmd";
-    };
-  }
-  {
-    pname = "microsoft.csharp";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.csharp/4.0.1/microsoft.csharp.4.0.1.nupkg";
-      sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj";
-    };
-  }
-  {
-    pname = "microsoft.csharp";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.csharp/4.7.0/microsoft.csharp.4.7.0.nupkg";
-      sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
-    };
-  }
-  {
-    pname = "microsoft.diasymreader";
-    version = "1.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.diasymreader/1.4.0/microsoft.diasymreader.1.4.0.nupkg";
-      sha256 = "0li9shnm941jza40kqfkbbys77mrr55nvi9h3maq9fipq4qwx92d";
-    };
-  }
-  {
-    pname = "microsoft.dotnet.platformabstractions";
-    version = "3.1.6";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.dotnet.platformabstractions/3.1.6/microsoft.dotnet.platformabstractions.3.1.6.nupkg";
-      sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5";
-    };
-  }
-  {
-    pname = "microsoft.extensions.caching.abstractions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.caching.abstractions/6.0.0/microsoft.extensions.caching.abstractions.6.0.0.nupkg";
-      sha256 = "0qn30d3pg4rx1x2k525jj4x5g1fxm2v5m0ksz2dmk1gmqalpask8";
-    };
-  }
-  {
-    pname = "microsoft.extensions.caching.memory";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.caching.memory/6.0.0/microsoft.extensions.caching.memory.6.0.0.nupkg";
-      sha256 = "0dq1x7962zsp926rj76i4akk4hsy7r5ldys8r4xsd78rq5f67rhq";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration/2.0.0/microsoft.extensions.configuration.2.0.0.nupkg";
-      sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration/6.0.0/microsoft.extensions.configuration.6.0.0.nupkg";
-      sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.abstractions";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.abstractions/2.0.0/microsoft.extensions.configuration.abstractions.2.0.0.nupkg";
-      sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.abstractions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.abstractions/6.0.0/microsoft.extensions.configuration.abstractions.6.0.0.nupkg";
-      sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.binder";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.binder/2.0.0/microsoft.extensions.configuration.binder.2.0.0.nupkg";
-      sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.binder";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.binder/6.0.0/microsoft.extensions.configuration.binder.6.0.0.nupkg";
-      sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.commandline";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.commandline/6.0.0/microsoft.extensions.configuration.commandline.6.0.0.nupkg";
-      sha256 = "1hb4qrq9xdxzh2px515pv1vkz1jigwaxw1hfg9w8s6pgl8z04l4c";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.environmentvariables";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.environmentvariables/6.0.0/microsoft.extensions.configuration.environmentvariables.6.0.0.nupkg";
-      sha256 = "19w2vxliz1xangbach3hkx72x2pxqhc9n9c3kc3l8mhicl8w6vdl";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.fileextensions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.fileextensions/6.0.0/microsoft.extensions.configuration.fileextensions.6.0.0.nupkg";
-      sha256 = "02nna984iwnyyz4jjh9vs405nlj0yk1g5vz4v2x30z2c89mx5f9w";
-    };
-  }
-  {
-    pname = "microsoft.extensions.configuration.json";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.configuration.json/6.0.0/microsoft.extensions.configuration.json.6.0.0.nupkg";
-      sha256 = "1c6l5szma1pdn61ncq1kaqibg0dz65hbma2xl626a8d1m6awn353";
-    };
-  }
-  {
-    pname = "microsoft.extensions.dependencyinjection";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencyinjection/2.0.0/microsoft.extensions.dependencyinjection.2.0.0.nupkg";
-      sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq";
-    };
-  }
-  {
-    pname = "microsoft.extensions.dependencyinjection";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencyinjection/6.0.0/microsoft.extensions.dependencyinjection.6.0.0.nupkg";
-      sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1";
-    };
-  }
-  {
-    pname = "microsoft.extensions.dependencyinjection.abstractions";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencyinjection.abstractions/2.0.0/microsoft.extensions.dependencyinjection.abstractions.2.0.0.nupkg";
-      sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz";
-    };
-  }
-  {
-    pname = "microsoft.extensions.dependencyinjection.abstractions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencyinjection.abstractions/6.0.0/microsoft.extensions.dependencyinjection.abstractions.6.0.0.nupkg";
-      sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9";
-    };
-  }
-  {
-    pname = "microsoft.extensions.dependencymodel";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.dependencymodel/6.0.0/microsoft.extensions.dependencymodel.6.0.0.nupkg";
-      sha256 = "08c4fh1n8vsish1vh7h73mva34g0as4ph29s4lvps7kmjb4z64nl";
-    };
-  }
-  {
-    pname = "microsoft.extensions.fileproviders.abstractions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.abstractions/6.0.0/microsoft.extensions.fileproviders.abstractions.6.0.0.nupkg";
-      sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q";
-    };
-  }
-  {
-    pname = "microsoft.extensions.fileproviders.physical";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.fileproviders.physical/6.0.0/microsoft.extensions.fileproviders.physical.6.0.0.nupkg";
-      sha256 = "1ikc3kf325xig6njbi2aj5kmww4xlaq9lsrpc8v764fsm4x10474";
-    };
-  }
-  {
-    pname = "microsoft.extensions.filesystemglobbing";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.filesystemglobbing/6.0.0/microsoft.extensions.filesystemglobbing.6.0.0.nupkg";
-      sha256 = "09gyyv4fwy9ys84z3aq4lm9y09b7bd1d4l4gfdinmg0z9678f1a4";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging/2.0.0/microsoft.extensions.logging.2.0.0.nupkg";
-      sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging/6.0.0/microsoft.extensions.logging.6.0.0.nupkg";
-      sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging.abstractions";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging.abstractions/2.0.0/microsoft.extensions.logging.abstractions.2.0.0.nupkg";
-      sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging.abstractions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging.abstractions/6.0.0/microsoft.extensions.logging.abstractions.6.0.0.nupkg";
-      sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging.configuration";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging.configuration/6.0.0/microsoft.extensions.logging.configuration.6.0.0.nupkg";
-      sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1";
-    };
-  }
-  {
-    pname = "microsoft.extensions.logging.console";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.logging.console/6.0.0/microsoft.extensions.logging.console.6.0.0.nupkg";
-      sha256 = "1383b0r33dzz0hrch9cqzzxr9vxr21qq0a5vnrpkfq71m2fky31d";
-    };
-  }
-  {
-    pname = "microsoft.extensions.options";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.options/2.0.0/microsoft.extensions.options.2.0.0.nupkg";
-      sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh";
-    };
-  }
-  {
-    pname = "microsoft.extensions.options";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.options/6.0.0/microsoft.extensions.options.6.0.0.nupkg";
-      sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g";
-    };
-  }
-  {
-    pname = "microsoft.extensions.options.configurationextensions";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.options.configurationextensions/2.0.0/microsoft.extensions.options.configurationextensions.2.0.0.nupkg";
-      sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll";
-    };
-  }
-  {
-    pname = "microsoft.extensions.options.configurationextensions";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.options.configurationextensions/6.0.0/microsoft.extensions.options.configurationextensions.6.0.0.nupkg";
-      sha256 = "1k6q91vrhq1r74l4skibn7wzxzww9l74ibxb2i8gg4q6fzbiivba";
-    };
-  }
-  {
-    pname = "microsoft.extensions.primitives";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.primitives/2.0.0/microsoft.extensions.primitives.2.0.0.nupkg";
-      sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb";
-    };
-  }
-  {
-    pname = "microsoft.extensions.primitives";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.extensions.primitives/6.0.0/microsoft.extensions.primitives.6.0.0.nupkg";
-      sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.host.win-arm64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-arm64/6.0.5/microsoft.netcore.app.host.win-arm64.6.0.5.nupkg";
-      sha256 = "0yss672bi0psch2wza25rkzidqnf47i9gryqc39n262dfbbhnwq8";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.host.win-x64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x64/6.0.5/microsoft.netcore.app.host.win-x64.6.0.5.nupkg";
-      sha256 = "19lfp3lbvsvc51q46jwy5l39skx5rfiyhk6f6djdc3g5l55kb871";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.host.win-x86";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.host.win-x86/6.0.5/microsoft.netcore.app.host.win-x86.6.0.5.nupkg";
-      sha256 = "121xwk86xwsb6xcis4zd7ac4l8gvp86ra8rfq03z2mxkh1axjfxr";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.runtime.win-arm64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-arm64/6.0.5/microsoft.netcore.app.runtime.win-arm64.6.0.5.nupkg";
-      sha256 = "1za7xq6d27flyyn7fhrrf3xfdga7vf60zzd2cqdha7m3yj2zz548";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.runtime.win-x64";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x64/6.0.5/microsoft.netcore.app.runtime.win-x64.6.0.5.nupkg";
-      sha256 = "1ihlnzp7zclc76d1ig3dc71l0gm7z5lqqwppjj06aa4yhrsa2baj";
-    };
-  }
-  {
-    pname = "microsoft.netcore.app.runtime.win-x86";
-    version = "6.0.5";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app.runtime.win-x86/6.0.5/microsoft.netcore.app.runtime.win-x86.6.0.5.nupkg";
-      sha256 = "17v4ysr5vhn3h73m6nbi989ps4iwhwdr752vlal5kgiqvjwfyscl";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/1.0.1/microsoft.netcore.platforms.1.0.1.nupkg";
-      sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
-    version = "1.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/1.1.0/microsoft.netcore.platforms.1.1.0.nupkg";
-      sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/2.0.0/microsoft.netcore.platforms.2.0.0.nupkg";
-      sha256 = "1fk2fk2639i7nzy58m9dvpdnzql4vb8yl8vr19r2fp8lmj9w2jr0";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
-    version = "3.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/3.0.0/microsoft.netcore.platforms.3.0.0.nupkg";
-      sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51";
-    };
-  }
-  {
-    pname = "microsoft.netcore.platforms";
-    version = "3.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.platforms/3.1.0/microsoft.netcore.platforms.3.1.0.nupkg";
-      sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j";
-    };
-  }
-  {
-    pname = "microsoft.netcore.targets";
-    version = "1.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.targets/1.0.1/microsoft.netcore.targets.1.0.1.nupkg";
-      sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
-    };
-  }
-  {
-    pname = "microsoft.netcore.targets";
-    version = "1.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netcore.targets/1.1.0/microsoft.netcore.targets.1.1.0.nupkg";
-      sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
-    };
-  }
-  {
-    pname = "microsoft.netframework.referenceassemblies";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netframework.referenceassemblies/1.0.0/microsoft.netframework.referenceassemblies.1.0.0.nupkg";
-      sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9";
-    };
-  }
-  {
-    pname = "microsoft.netframework.referenceassemblies.net461";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netframework.referenceassemblies.net461/1.0.0/microsoft.netframework.referenceassemblies.net461.1.0.0.nupkg";
-      sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1";
-    };
-  }
-  {
-    pname = "microsoft.netframework.referenceassemblies.net472";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.netframework.referenceassemblies.net472/1.0.0/microsoft.netframework.referenceassemblies.net472.1.0.0.nupkg";
-      sha256 = "1bqinq2nxnpqxziypg1sqy3ly0nymxxjpn8fwkn3rl4vl6gdg3rc";
-    };
-  }
-  {
-    pname = "microsoft.net.stringtools";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.net.stringtools/1.0.0/microsoft.net.stringtools.1.0.0.nupkg";
-      sha256 = "06yakiyzgss399giivfx6xdrnfxqfsvy5fzm90scjanvandv0sdj";
-    };
-  }
-  {
-    pname = "microsoft.sourcelink.common";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.sourcelink.common/1.0.0/microsoft.sourcelink.common.1.0.0.nupkg";
-      sha256 = "1zxkpx01zdv17c39iiy8fx25ran89n14qwddh1f140v1s4dn8z9c";
-    };
-  }
-  {
-    pname = "microsoft.sourcelink.github";
-    version = "1.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.sourcelink.github/1.0.0/microsoft.sourcelink.github.1.0.0.nupkg";
-      sha256 = "029ixyaqn48cjza87m5qf0g1ynyhlm6irgbx1n09src9g666yhpd";
-    };
-  }
-  {
-    pname = "microsoft.testplatform.objectmodel";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.objectmodel/17.0.0/microsoft.testplatform.objectmodel.17.0.0.nupkg";
-      sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7";
-    };
-  }
-  {
-    pname = "microsoft.testplatform.translationlayer";
-    version = "17.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.testplatform.translationlayer/17.0.0/microsoft.testplatform.translationlayer.17.0.0.nupkg";
-      sha256 = "08c6d9aiicpj8hsjb77rz7d2vmw7ivkcc0l1vgdgxddzjhjpy0pi";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.remotecontrol";
-    version = "16.3.44";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.remotecontrol/16.3.44/microsoft.visualstudio.remotecontrol.16.3.44.nupkg";
-      sha256 = "0kjvxpx45vvaxqm6k632gqi0zaw7w5m4h8wgmsaj15r4ihl49c3a";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.sdk.embedinteroptypes";
-    version = "15.0.12";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.sdk.embedinteroptypes/15.0.12/microsoft.visualstudio.sdk.embedinteroptypes.15.0.12.nupkg";
-      sha256 = "083pva0a0xxvqqrjv75if25wr3rq034wgjhbax74zhzdb665nzsw";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.setup.configuration.interop";
-    version = "1.14.114";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.setup.configuration.interop/1.14.114/microsoft.visualstudio.setup.configuration.interop.1.14.114.nupkg";
-      sha256 = "062mqkmjf4k6zm3wi9ih0lzypfsnv82lgh88r35fj66akihn86gv";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.setup.configuration.interop";
-    version = "1.16.30";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.setup.configuration.interop/1.16.30/microsoft.visualstudio.setup.configuration.interop.1.16.30.nupkg";
-      sha256 = "14022lx03vdcqlvbbdmbsxg5pqfx1rfq2jywxlyaz9v68cvsb0g4";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.threading";
-    version = "16.7.56";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.threading/16.7.56/microsoft.visualstudio.threading.16.7.56.nupkg";
-      sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.threading.analyzers";
-    version = "16.7.56";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.threading.analyzers/16.7.56/microsoft.visualstudio.threading.analyzers.16.7.56.nupkg";
-      sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.utilities.internal";
-    version = "16.3.36";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.utilities.internal/16.3.36/microsoft.visualstudio.utilities.internal.16.3.36.nupkg";
-      sha256 = "1sg4vjm7735rkvxdmsb7wvjqrxy4gcvhhczv5dhpjayg7885k8cx";
-    };
-  }
-  {
-    pname = "microsoft.visualstudio.validation";
-    version = "15.5.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.visualstudio.validation/15.5.31/microsoft.visualstudio.validation.15.5.31.nupkg";
-      sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw";
-    };
-  }
-  {
-    pname = "microsoft.win32.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.primitives/4.3.0/microsoft.win32.primitives.4.3.0.nupkg";
-      sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
-    };
-  }
-  {
-    pname = "microsoft.win32.registry";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.3.0/microsoft.win32.registry.4.3.0.nupkg";
-      sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
-    };
-  }
-  {
-    pname = "microsoft.win32.registry";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.5.0/microsoft.win32.registry.4.5.0.nupkg";
-      sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
-    };
-  }
-  {
-    pname = "microsoft.win32.registry";
-    version = "4.6.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.registry/4.6.0/microsoft.win32.registry.4.6.0.nupkg";
-      sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s";
-    };
-  }
-  {
-    pname = "microsoft.win32.systemevents";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/microsoft.win32.systemevents/4.7.0/microsoft.win32.systemevents.4.7.0.nupkg";
-      sha256 = "0pjll2a62hc576hd4wgyasva0lp733yllmk54n37svz5ac7nfz0q";
-    };
-  }
-  {
-    pname = "nerdbank.streams";
-    version = "2.6.81";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nerdbank.streams/2.6.81/nerdbank.streams.2.6.81.nupkg";
-      sha256 = "06wihcaga8537ibh0mkj28m720m6vzkqk562zkynhca85nd236yi";
-    };
-  }
-  {
-    pname = "netstandard.library";
-    version = "1.6.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/netstandard.library/1.6.1/netstandard.library.1.6.1.nupkg";
-      sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8";
-    };
-  }
-  {
-    pname = "netstandard.library";
-    version = "2.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/netstandard.library/2.0.0/netstandard.library.2.0.0.nupkg";
-      sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
-    };
-  }
-  {
-    pname = "netstandard.library";
-    version = "2.0.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/netstandard.library/2.0.3/netstandard.library.2.0.3.nupkg";
-      sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
-    };
-  }
-  {
-    pname = "newtonsoft.json";
-    version = "11.0.2";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/newtonsoft.json/11.0.2/newtonsoft.json.11.0.2.nupkg";
-      sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2";
-    };
-  }
-  {
-    pname = "newtonsoft.json";
-    version = "13.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/newtonsoft.json/13.0.1/newtonsoft.json.13.0.1.nupkg";
-      sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb";
-    };
-  }
-  {
-    pname = "newtonsoft.json";
-    version = "9.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg";
-      sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
-    };
-  }
-  {
-    pname = "nuget.common";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.common/5.2.0/nuget.common.5.2.0.nupkg";
-      sha256 = "14y7axpmdl9fg8jfc42gxpcq9wj8k3vzc07npmgjnzqlp5xjyyac";
-    };
-  }
-  {
-    pname = "nuget.common";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.common/6.0.0/nuget.common.6.0.0.nupkg";
-      sha256 = "0vbvmx2zzg54fv6617afi3z49cala70qj7jfxqnldjbc1z2c4b7r";
-    };
-  }
-  {
-    pname = "nuget.configuration";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.configuration/5.2.0/nuget.configuration.5.2.0.nupkg";
-      sha256 = "0b4dkym3vnj7qldnqqq6h6ry0gkql5c2ps5wy72b8s4fc3dmnvf1";
-    };
-  }
-  {
-    pname = "nuget.configuration";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.configuration/6.0.0/nuget.configuration.6.0.0.nupkg";
-      sha256 = "1qnrahn4rbb55ra4zg9c947kbm9wdiv344f12c3b4c5i7bfmivx3";
-    };
-  }
-  {
-    pname = "nuget.dependencyresolver.core";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.dependencyresolver.core/5.2.0/nuget.dependencyresolver.core.5.2.0.nupkg";
-      sha256 = "156yjfsk9pzqviiwy69lxfqf61yyj4hn4vdgfcbqvw4d567i150r";
-    };
-  }
-  {
-    pname = "nuget.dependencyresolver.core";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.dependencyresolver.core/6.0.0/nuget.dependencyresolver.core.6.0.0.nupkg";
-      sha256 = "04w7wbfsb647apqrrzx3gj2jjlg09wdzmxj62bx43ngr34i4q83n";
-    };
-  }
-  {
-    pname = "nuget.frameworks";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.frameworks/5.0.0/nuget.frameworks.5.0.0.nupkg";
-      sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
-    };
-  }
-  {
-    pname = "nuget.frameworks";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.frameworks/5.2.0/nuget.frameworks.5.2.0.nupkg";
-      sha256 = "1fh4rp26m77jq5dyln68wz9qm217la9vv21amis2qvcy6gknk2wp";
-    };
-  }
-  {
-    pname = "nuget.frameworks";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.frameworks/6.0.0/nuget.frameworks.6.0.0.nupkg";
-      sha256 = "11p6mhh36s3vmnylfzw125fqivjk1xj75bvcxdav8n4sbk7d3gqs";
-    };
-  }
-  {
-    pname = "nuget.librarymodel";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.librarymodel/5.2.0/nuget.librarymodel.5.2.0.nupkg";
-      sha256 = "0vxd0y7rzzxvmxji9bzp95p2rx48303r3nqrlhmhhfc4z5fxjlqk";
-    };
-  }
-  {
-    pname = "nuget.librarymodel";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.librarymodel/6.0.0/nuget.librarymodel.6.0.0.nupkg";
-      sha256 = "0pg4m6v2j5vvld7s57fvx28ix7wlah6dakhi55qpavmkmnzp6g3f";
-    };
-  }
-  {
-    pname = "nuget.packaging";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.packaging/5.2.0/nuget.packaging.5.2.0.nupkg";
-      sha256 = "14frrbdkka9jd6g52bv4lbqnpckw09yynr08f9kfgbc3j8pklqqb";
-    };
-  }
-  {
-    pname = "nuget.packaging";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.packaging/6.0.0/nuget.packaging.6.0.0.nupkg";
-      sha256 = "0vlcda74h6gq3q569kbbz4n3d26vihxaldvvi2md3phqf8jpvhjb";
-    };
-  }
-  {
-    pname = "nuget.packaging.core";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.packaging.core/6.0.0/nuget.packaging.core.6.0.0.nupkg";
-      sha256 = "1kk7rf7cavdicxb4bmwcgwykr53nrk38m6r49hvs85jhhvg9jmyf";
-    };
-  }
-  {
-    pname = "nuget.projectmodel";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.projectmodel/5.2.0/nuget.projectmodel.5.2.0.nupkg";
-      sha256 = "1j23jk2zql52v2nqgi0k6d7z63pjjzrvw8y1s38zpf0sn7lzdr0h";
-    };
-  }
-  {
-    pname = "nuget.projectmodel";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.projectmodel/6.0.0/nuget.projectmodel.6.0.0.nupkg";
-      sha256 = "1fldxlw88jqgy0cfgfa7drqpxf909kfchcvk4nxj7vyhza2q715y";
-    };
-  }
-  {
-    pname = "nuget.protocol";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.protocol/5.2.0/nuget.protocol.5.2.0.nupkg";
-      sha256 = "1vlrrlcy7p2sf23wqax8mfhplnzppd73xqlr2g83ya056w0yf2rd";
-    };
-  }
-  {
-    pname = "nuget.protocol";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.protocol/6.0.0/nuget.protocol.6.0.0.nupkg";
-      sha256 = "16rs9hfra4bly8jp0lxsg0gbpi9wvxh7nrxrdkbjm01vb0azw823";
-    };
-  }
-  {
-    pname = "nuget.versioning";
-    version = "5.2.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.versioning/5.2.0/nuget.versioning.5.2.0.nupkg";
-      sha256 = "08ay8bhddj9yiq6h9lk814l65fpx5gh1iprkl7pcp78g57a6k45k";
-    };
-  }
-  {
-    pname = "nuget.versioning";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/nuget.versioning/6.0.0/nuget.versioning.6.0.0.nupkg";
-      sha256 = "0xxrz0p9vd2ax8hcrdxcp3h6gv8qcy6mngp49dvg1ijjjr1jb85k";
-    };
-  }
-  {
-    pname = "omnisharp.extensions.jsonrpc";
-    version = "0.19.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/omnisharp.extensions.jsonrpc/0.19.0/omnisharp.extensions.jsonrpc.0.19.0.nupkg";
-      sha256 = "0m9lw21iz90ayl35f24ir3vbiydf4sjqw590qqgwknykpzsi1ai2";
-    };
-  }
-  {
-    pname = "omnisharp.extensions.jsonrpc.generators";
-    version = "0.19.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/omnisharp.extensions.jsonrpc.generators/0.19.0/omnisharp.extensions.jsonrpc.generators.0.19.0.nupkg";
-      sha256 = "17akjdh9dnyxr01lnlsa41ca52psqnny8j3wxz904zs15pz932ln";
-    };
-  }
-  {
-    pname = "omnisharp.extensions.languageprotocol";
-    version = "0.19.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/omnisharp.extensions.languageprotocol/0.19.0/omnisharp.extensions.languageprotocol.0.19.0.nupkg";
-      sha256 = "06d4wakdaj42c9qnlhdyqrjnm97azp4hrvfg70f96ldl765y9vrf";
-    };
-  }
-  {
-    pname = "omnisharp.extensions.languageserver";
-    version = "0.19.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/omnisharp.extensions.languageserver/0.19.0/omnisharp.extensions.languageserver.0.19.0.nupkg";
-      sha256 = "0k1z3zchl1d82fj0ha63i54g5j046iaz8vb3cyxpjb6kp7zah28v";
-    };
-  }
-  {
-    pname = "omnisharp.extensions.languageserver.shared";
-    version = "0.19.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/omnisharp.extensions.languageserver.shared/0.19.0/omnisharp.extensions.languageserver.shared.0.19.0.nupkg";
-      sha256 = "0s3h9v5p043ip27g9jcvd0np9q3hn2pfv6gn539m45yb5d74a6i5";
-    };
-  }
-  {
-    pname = "runtime.any.system.collections";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.collections/4.3.0/runtime.any.system.collections.4.3.0.nupkg";
-      sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
-    };
-  }
-  {
-    pname = "runtime.any.system.diagnostics.tools";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.diagnostics.tools/4.3.0/runtime.any.system.diagnostics.tools.4.3.0.nupkg";
-      sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
-    };
-  }
-  {
-    pname = "runtime.any.system.diagnostics.tracing";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.diagnostics.tracing/4.3.0/runtime.any.system.diagnostics.tracing.4.3.0.nupkg";
-      sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
-    };
-  }
-  {
-    pname = "runtime.any.system.globalization";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.globalization/4.3.0/runtime.any.system.globalization.4.3.0.nupkg";
-      sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
-    };
-  }
-  {
-    pname = "runtime.any.system.globalization.calendars";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.globalization.calendars/4.3.0/runtime.any.system.globalization.calendars.4.3.0.nupkg";
-      sha256 = "1ghhhk5psqxcg6w88sxkqrc35bxcz27zbqm2y5p5298pv3v7g201";
-    };
-  }
-  {
-    pname = "runtime.any.system.io";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.io/4.3.0/runtime.any.system.io.4.3.0.nupkg";
-      sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
-    };
-  }
-  {
-    pname = "runtime.any.system.reflection";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.reflection/4.3.0/runtime.any.system.reflection.4.3.0.nupkg";
-      sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
-    };
-  }
-  {
-    pname = "runtime.any.system.reflection.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.reflection.extensions/4.3.0/runtime.any.system.reflection.extensions.4.3.0.nupkg";
-      sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
-    };
-  }
-  {
-    pname = "runtime.any.system.reflection.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.reflection.primitives/4.3.0/runtime.any.system.reflection.primitives.4.3.0.nupkg";
-      sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
-    };
-  }
-  {
-    pname = "runtime.any.system.resources.resourcemanager";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.resources.resourcemanager/4.3.0/runtime.any.system.resources.resourcemanager.4.3.0.nupkg";
-      sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
-    };
-  }
-  {
-    pname = "runtime.any.system.runtime";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.runtime/4.3.0/runtime.any.system.runtime.4.3.0.nupkg";
-      sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
-    };
-  }
-  {
-    pname = "runtime.any.system.runtime.handles";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.runtime.handles/4.3.0/runtime.any.system.runtime.handles.4.3.0.nupkg";
-      sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
-    };
-  }
-  {
-    pname = "runtime.any.system.runtime.interopservices";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.runtime.interopservices/4.3.0/runtime.any.system.runtime.interopservices.4.3.0.nupkg";
-      sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
-    };
-  }
-  {
-    pname = "runtime.any.system.text.encoding";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.text.encoding/4.3.0/runtime.any.system.text.encoding.4.3.0.nupkg";
-      sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
-    };
-  }
-  {
-    pname = "runtime.any.system.text.encoding.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.text.encoding.extensions/4.3.0/runtime.any.system.text.encoding.extensions.4.3.0.nupkg";
-      sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
-    };
-  }
-  {
-    pname = "runtime.any.system.threading.tasks";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.threading.tasks/4.3.0/runtime.any.system.threading.tasks.4.3.0.nupkg";
-      sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
-    };
-  }
-  {
-    pname = "runtime.any.system.threading.timer";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.any.system.threading.timer/4.3.0/runtime.any.system.threading.timer.4.3.0.nupkg";
-      sha256 = "0aw4phrhwqz9m61r79vyfl5la64bjxj8l34qnrcwb28v49fg2086";
-    };
-  }
-  {
-    pname = "runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.debian.8-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
-    };
-  }
-  {
-    pname = "runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.fedora.23-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
-    };
-  }
-  {
-    pname = "runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.fedora.24-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
-    };
-  }
-  {
-    pname = "runtime.native.system";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.native.system/4.3.0/runtime.native.system.4.3.0.nupkg";
-      sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
-    };
-  }
-  {
-    pname = "runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.native.system.io.compression/4.3.0/runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "1vvivbqsk6y4hzcid27pqpm5bsi6sc50hvqwbcx8aap5ifrxfs8d";
-    };
-  }
-  {
-    pname = "runtime.native.system.net.http";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.native.system.net.http/4.3.0/runtime.native.system.net.http.4.3.0.nupkg";
-      sha256 = "1n6rgz5132lcibbch1qlf0g9jk60r0kqv087hxc0lisy50zpm7kk";
-    };
-  }
-  {
-    pname = "runtime.native.system.security.cryptography.apple";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.native.system.security.cryptography.apple/4.3.0/runtime.native.system.security.cryptography.apple.4.3.0.nupkg";
-      sha256 = "1b61p6gw1m02cc1ry996fl49liiwky6181dzr873g9ds92zl326q";
-    };
-  }
-  {
-    pname = "runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.native.system.security.cryptography.openssl/4.3.0/runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
-    };
-  }
-  {
-    pname = "runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.opensuse.13.2-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
-    };
-  }
-  {
-    pname = "runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.opensuse.42.1-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
-    };
-  }
-  {
-    pname = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple/4.3.0/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.apple.4.3.0.nupkg";
-      sha256 = "10yc8jdrwgcl44b4g93f1ds76b176bajd3zqi2faf5rvh1vy9smi";
-    };
-  }
-  {
-    pname = "runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.osx.10.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
-    };
-  }
-  {
-    pname = "runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.rhel.7-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
-    };
-  }
-  {
-    pname = "runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.14.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
-    };
-  }
-  {
-    pname = "runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.16.04-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
-    };
-  }
-  {
-    pname = "runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl/4.3.0/runtime.ubuntu.16.10-x64.runtime.native.system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
-    };
-  }
-  {
-    pname = "runtime.win10-arm64.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win10-arm64.runtime.native.system.io.compression/4.3.0/runtime.win10-arm64.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "1jrmrmqscn8cn2n3piar8n85gfsra7vlai23w9ldzprh0y4dw3v1";
-    };
-  }
-  {
-    pname = "runtime.win7.system.private.uri";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7.system.private.uri/4.3.0/runtime.win7.system.private.uri.4.3.0.nupkg";
-      sha256 = "0bxkcmklp556dc43bra8ngc8wymcbbflcydi0xwq0j22gm66xf2m";
-    };
-  }
-  {
-    pname = "runtime.win7-x64.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x64.runtime.native.system.io.compression/4.3.0/runtime.win7-x64.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "1dmbmksnxg12fk2p0k7rzy16448mddr2sfrnqs0rhhrzl0z22zi5";
-    };
-  }
-  {
-    pname = "runtime.win7-x86.runtime.native.system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win7-x86.runtime.native.system.io.compression/4.3.0/runtime.win7-x86.runtime.native.system.io.compression.4.3.0.nupkg";
-      sha256 = "08ppln62lcq3bz2kyxqyvh98payd5a7w8fzmb53mznkcfv32n55b";
-    };
-  }
-  {
-    pname = "runtime.win.microsoft.win32.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.microsoft.win32.primitives/4.3.0/runtime.win.microsoft.win32.primitives.4.3.0.nupkg";
-      sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36";
-    };
-  }
-  {
-    pname = "runtime.win.system.console";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.console/4.3.0/runtime.win.system.console.4.3.0.nupkg";
-      sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc";
-    };
-  }
-  {
-    pname = "runtime.win.system.diagnostics.debug";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.diagnostics.debug/4.3.0/runtime.win.system.diagnostics.debug.4.3.0.nupkg";
-      sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f";
-    };
-  }
-  {
-    pname = "runtime.win.system.io.filesystem";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.io.filesystem/4.3.0/runtime.win.system.io.filesystem.4.3.0.nupkg";
-      sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8";
-    };
-  }
-  {
-    pname = "runtime.win.system.net.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.net.primitives/4.3.0/runtime.win.system.net.primitives.4.3.0.nupkg";
-      sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf";
-    };
-  }
-  {
-    pname = "runtime.win.system.net.sockets";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.net.sockets/4.3.0/runtime.win.system.net.sockets.4.3.0.nupkg";
-      sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck";
-    };
-  }
-  {
-    pname = "runtime.win.system.runtime.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/runtime.win.system.runtime.extensions/4.3.0/runtime.win.system.runtime.extensions.4.3.0.nupkg";
-      sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr";
-    };
-  }
-  {
-    pname = "sqlitepclraw.bundle_green";
-    version = "2.0.7";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.bundle_green/2.0.7/sqlitepclraw.bundle_green.2.0.7.nupkg";
-      sha256 = "083saqlwx1hbhy0rv7vi973aw7jv8q53fcxlrprx1wgxdwnbi5ni";
-    };
-  }
-  {
-    pname = "sqlitepclraw.core";
-    version = "2.0.7";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.core/2.0.7/sqlitepclraw.core.2.0.7.nupkg";
-      sha256 = "0b25qz3h1aarza2b74alsl9v6czns3y61i8p10yqgd9djk1b1byj";
-    };
-  }
-  {
-    pname = "sqlitepclraw.lib.e_sqlite3";
-    version = "2.0.7";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.lib.e_sqlite3/2.0.7/sqlitepclraw.lib.e_sqlite3.2.0.7.nupkg";
-      sha256 = "0wkrzcpc9vcd27gwj6w537i1i5i3h5zsips8b9v9ngk003n50mia";
-    };
-  }
-  {
-    pname = "sqlitepclraw.provider.dynamic_cdecl";
-    version = "2.0.7";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.dynamic_cdecl/2.0.7/sqlitepclraw.provider.dynamic_cdecl.2.0.7.nupkg";
-      sha256 = "1kmyf4v4157n2194j17ijf62xnqiapxhg4aka851zx0hzlxm7ygp";
-    };
-  }
-  {
-    pname = "sqlitepclraw.provider.e_sqlite3";
-    version = "2.0.7";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/sqlitepclraw.provider.e_sqlite3/2.0.7/sqlitepclraw.provider.e_sqlite3.2.0.7.nupkg";
-      sha256 = "1davv3fqd05353d7dl7wm2sg58fyy59b29pk58w1vf7m33580grj";
-    };
-  }
-  {
-    pname = "system.appcontext";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.appcontext/4.3.0/system.appcontext.4.3.0.nupkg";
-      sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
-    };
-  }
-  {
-    pname = "system.buffers";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.buffers/4.3.0/system.buffers.4.3.0.nupkg";
-      sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
-    };
-  }
-  {
-    pname = "system.buffers";
-    version = "4.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.buffers/4.4.0/system.buffers.4.4.0.nupkg";
-      sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
-    };
-  }
-  {
-    pname = "system.buffers";
-    version = "4.5.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.1/system.buffers.4.5.1.nupkg";
-      sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
-    };
-  }
-  {
-    pname = "system.codedom";
-    version = "4.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.codedom/4.4.0/system.codedom.4.4.0.nupkg";
-      sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g";
-    };
-  }
-  {
-    pname = "system.collections";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections/4.0.11/system.collections.4.0.11.nupkg";
-      sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
-    };
-  }
-  {
-    pname = "system.collections";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections/4.3.0/system.collections.4.3.0.nupkg";
-      sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
-    };
-  }
-  {
-    pname = "system.collections.concurrent";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections.concurrent/4.3.0/system.collections.concurrent.4.3.0.nupkg";
-      sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
-    };
-  }
-  {
-    pname = "system.collections.immutable";
-    version = "1.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections.immutable/1.5.0/system.collections.immutable.1.5.0.nupkg";
-      sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
-    };
-  }
-  {
-    pname = "system.collections.immutable";
-    version = "1.7.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections.immutable/1.7.1/system.collections.immutable.1.7.1.nupkg";
-      sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq";
-    };
-  }
-  {
-    pname = "system.collections.immutable";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.collections.immutable/5.0.0/system.collections.immutable.5.0.0.nupkg";
-      sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r";
-    };
-  }
-  {
-    pname = "system.componentmodel.annotations";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.componentmodel.annotations/5.0.0/system.componentmodel.annotations.5.0.0.nupkg";
-      sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j";
-    };
-  }
-  {
-    pname = "system.componentmodel.composition";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.componentmodel.composition/4.5.0/system.componentmodel.composition.4.5.0.nupkg";
-      sha256 = "196ihd17in5idnxq5l5xvpa1fhqamnihjg3mcmv1k4n8bjrrj5y7";
-    };
-  }
-  {
-    pname = "system.composition";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition/1.0.31/system.composition.1.0.31.nupkg";
-      sha256 = "0aa27jz73qb0xm6dyxv22qhfrmyyqjyn2dvvsd9asi82lcdh9i61";
-    };
-  }
-  {
-    pname = "system.composition";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition/6.0.0/system.composition.6.0.0.nupkg";
-      sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z";
-    };
-  }
-  {
-    pname = "system.composition.attributedmodel";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.attributedmodel/1.0.31/system.composition.attributedmodel.1.0.31.nupkg";
-      sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv";
-    };
-  }
-  {
-    pname = "system.composition.attributedmodel";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.attributedmodel/6.0.0/system.composition.attributedmodel.6.0.0.nupkg";
-      sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k";
-    };
-  }
-  {
-    pname = "system.composition.convention";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.convention/1.0.31/system.composition.convention.1.0.31.nupkg";
-      sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r";
-    };
-  }
-  {
-    pname = "system.composition.convention";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.convention/6.0.0/system.composition.convention.6.0.0.nupkg";
-      sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b";
-    };
-  }
-  {
-    pname = "system.composition.hosting";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.hosting/1.0.31/system.composition.hosting.1.0.31.nupkg";
-      sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy";
-    };
-  }
-  {
-    pname = "system.composition.hosting";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.hosting/6.0.0/system.composition.hosting.6.0.0.nupkg";
-      sha256 = "0big5nk8c44rxp6cfykhk7rxvn2cgwa99w6c3v2a36adc3lj36ky";
-    };
-  }
-  {
-    pname = "system.composition.runtime";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.runtime/1.0.31/system.composition.runtime.1.0.31.nupkg";
-      sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws";
-    };
-  }
-  {
-    pname = "system.composition.runtime";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.runtime/6.0.0/system.composition.runtime.6.0.0.nupkg";
-      sha256 = "0vq5ik63yii1784gsa2f2kx9w6xllmm8b8rk0arid1jqdj1nyrlw";
-    };
-  }
-  {
-    pname = "system.composition.typedparts";
-    version = "1.0.31";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.typedparts/1.0.31/system.composition.typedparts.1.0.31.nupkg";
-      sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63";
-    };
-  }
-  {
-    pname = "system.composition.typedparts";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.composition.typedparts/6.0.0/system.composition.typedparts.6.0.0.nupkg";
-      sha256 = "0y9pq3y60nyrpfy51f576a0qjjdh61mcv8vnik32pm4bz56h9q72";
-    };
-  }
-  {
-    pname = "system.configuration.configurationmanager";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.configuration.configurationmanager/4.5.0/system.configuration.configurationmanager.4.5.0.nupkg";
-      sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c";
-    };
-  }
-  {
-    pname = "system.configuration.configurationmanager";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.configuration.configurationmanager/4.7.0/system.configuration.configurationmanager.4.7.0.nupkg";
-      sha256 = "0pav0n21ghf2ax6fiwjbng29f27wkb4a2ddma0cqx04s97yyk25d";
-    };
-  }
-  {
-    pname = "system.console";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.console/4.3.0/system.console.4.3.0.nupkg";
-      sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
-    };
-  }
-  {
-    pname = "system.data.datasetextensions";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.data.datasetextensions/4.5.0/system.data.datasetextensions.4.5.0.nupkg";
-      sha256 = "0gk9diqx388qjmbhljsx64b5i0p9cwcaibd4h7f8x901pz84x6ma";
-    };
-  }
-  {
-    pname = "system.diagnostics.debug";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.debug/4.0.11/system.diagnostics.debug.4.0.11.nupkg";
-      sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
-    };
-  }
-  {
-    pname = "system.diagnostics.debug";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.debug/4.3.0/system.diagnostics.debug.4.3.0.nupkg";
-      sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
-    };
-  }
-  {
-    pname = "system.diagnostics.diagnosticsource";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.diagnosticsource/4.3.0/system.diagnostics.diagnosticsource.4.3.0.nupkg";
-      sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq";
-    };
-  }
-  {
-    pname = "system.diagnostics.diagnosticsource";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.diagnosticsource/6.0.0/system.diagnostics.diagnosticsource.6.0.0.nupkg";
-      sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5";
-    };
-  }
-  {
-    pname = "system.diagnostics.process";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.process/4.3.0/system.diagnostics.process.4.3.0.nupkg";
-      sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
-    };
-  }
-  {
-    pname = "system.diagnostics.tools";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.tools/4.0.1/system.diagnostics.tools.4.0.1.nupkg";
-      sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
-    };
-  }
-  {
-    pname = "system.diagnostics.tools";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.tools/4.3.0/system.diagnostics.tools.4.3.0.nupkg";
-      sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
-    };
-  }
-  {
-    pname = "system.diagnostics.tracing";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.diagnostics.tracing/4.3.0/system.diagnostics.tracing.4.3.0.nupkg";
-      sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
-    };
-  }
-  {
-    pname = "system.drawing.common";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.drawing.common/4.7.0/system.drawing.common.4.7.0.nupkg";
-      sha256 = "0yfw7cpl54mgfcylvlpvrl0c8r1b0zca6p7r3rcwkvqy23xqcyhg";
-    };
-  }
-  {
-    pname = "system.dynamic.runtime";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.dynamic.runtime/4.3.0/system.dynamic.runtime.4.3.0.nupkg";
-      sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
-    };
-  }
-  {
-    pname = "system.formats.asn1";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.formats.asn1/5.0.0/system.formats.asn1.5.0.0.nupkg";
-      sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn";
-    };
-  }
-  {
-    pname = "system.globalization";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.globalization/4.0.11/system.globalization.4.0.11.nupkg";
-      sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
-    };
-  }
-  {
-    pname = "system.globalization";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.globalization/4.3.0/system.globalization.4.3.0.nupkg";
-      sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
-    };
-  }
-  {
-    pname = "system.globalization.calendars";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.globalization.calendars/4.3.0/system.globalization.calendars.4.3.0.nupkg";
-      sha256 = "1xwl230bkakzzkrggy1l1lxmm3xlhk4bq2pkv790j5lm8g887lxq";
-    };
-  }
-  {
-    pname = "system.globalization.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.globalization.extensions/4.3.0/system.globalization.extensions.4.3.0.nupkg";
-      sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
-    };
-  }
-  {
-    pname = "system.io";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io/4.1.0/system.io.4.1.0.nupkg";
-      sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
-    };
-  }
-  {
-    pname = "system.io";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io/4.3.0/system.io.4.3.0.nupkg";
-      sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
-    };
-  }
-  {
-    pname = "system.io.compression";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.compression/4.3.0/system.io.compression.4.3.0.nupkg";
-      sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
-    };
-  }
-  {
-    pname = "system.io.compression.zipfile";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.compression.zipfile/4.3.0/system.io.compression.zipfile.4.3.0.nupkg";
-      sha256 = "1yxy5pq4dnsm9hlkg9ysh5f6bf3fahqqb6p8668ndy5c0lk7w2ar";
-    };
-  }
-  {
-    pname = "system.io.filesystem";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem/4.0.1/system.io.filesystem.4.0.1.nupkg";
-      sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
-    };
-  }
-  {
-    pname = "system.io.filesystem";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem/4.3.0/system.io.filesystem.4.3.0.nupkg";
-      sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
-    };
-  }
-  {
-    pname = "system.io.filesystem.accesscontrol";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem.accesscontrol/4.5.0/system.io.filesystem.accesscontrol.4.5.0.nupkg";
-      sha256 = "1gq4s8w7ds1sp8f9wqzf8nrzal40q5cd2w4pkf4fscrl2ih3hkkj";
-    };
-  }
-  {
-    pname = "system.io.filesystem.primitives";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem.primitives/4.0.1/system.io.filesystem.primitives.4.0.1.nupkg";
-      sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
-    };
-  }
-  {
-    pname = "system.io.filesystem.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.filesystem.primitives/4.3.0/system.io.filesystem.primitives.4.3.0.nupkg";
-      sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
-    };
-  }
-  {
-    pname = "system.io.pipelines";
-    version = "4.7.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.pipelines/4.7.3/system.io.pipelines.4.7.3.nupkg";
-      sha256 = "0djp59x56klidi04xx8p5jc1nchv5zvd1d59diphqxwvgny3aawy";
-    };
-  }
-  {
-    pname = "system.io.pipelines";
-    version = "6.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.io.pipelines/6.0.1/system.io.pipelines.6.0.1.nupkg";
-      sha256 = "0b6zvhhfdxx0wx3bzyvxbq0mk8l5lbjak5124sn0gkif5jb388w4";
-    };
-  }
-  {
-    pname = "system.linq";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.linq/4.1.0/system.linq.4.1.0.nupkg";
-      sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
-    };
-  }
-  {
-    pname = "system.linq";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.linq/4.3.0/system.linq.4.3.0.nupkg";
-      sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
-    };
-  }
-  {
-    pname = "system.linq.expressions";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.linq.expressions/4.1.0/system.linq.expressions.4.1.0.nupkg";
-      sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
-    };
-  }
-  {
-    pname = "system.linq.expressions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.linq.expressions/4.3.0/system.linq.expressions.4.3.0.nupkg";
-      sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
-    };
-  }
-  {
-    pname = "system.memory";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.0/system.memory.4.5.0.nupkg";
-      sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30";
-    };
-  }
-  {
-    pname = "system.memory";
-    version = "4.5.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkg";
-      sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
-    };
-  }
-  {
-    pname = "system.memory";
-    version = "4.5.4";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.memory/4.5.4/system.memory.4.5.4.nupkg";
-      sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
-    };
-  }
-  {
-    pname = "system.net.http";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.http/4.3.0/system.net.http.4.3.0.nupkg";
-      sha256 = "1i4gc757xqrzflbk7kc5ksn20kwwfjhw9w7pgdkn19y3cgnl302j";
-    };
-  }
-  {
-    pname = "system.net.http";
-    version = "4.3.4";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.http/4.3.4/system.net.http.4.3.4.nupkg";
-      sha256 = "0kdp31b8819v88l719j6my0yas6myv9d1viql3qz5577mv819jhl";
-    };
-  }
-  {
-    pname = "system.net.nameresolution";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.nameresolution/4.3.0/system.net.nameresolution.4.3.0.nupkg";
-      sha256 = "15r75pwc0rm3vvwsn8rvm2krf929mjfwliv0mpicjnii24470rkq";
-    };
-  }
-  {
-    pname = "system.net.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.primitives/4.3.0/system.net.primitives.4.3.0.nupkg";
-      sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii";
-    };
-  }
-  {
-    pname = "system.net.sockets";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.sockets/4.3.0/system.net.sockets.4.3.0.nupkg";
-      sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla";
-    };
-  }
-  {
-    pname = "system.net.websockets";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.net.websockets/4.3.0/system.net.websockets.4.3.0.nupkg";
-      sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p";
-    };
-  }
-  {
-    pname = "system.numerics.vectors";
-    version = "4.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.numerics.vectors/4.4.0/system.numerics.vectors.4.4.0.nupkg";
-      sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
-    };
-  }
-  {
-    pname = "system.numerics.vectors";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.numerics.vectors/4.5.0/system.numerics.vectors.4.5.0.nupkg";
-      sha256 = "1kzrj37yzawf1b19jq0253rcs8hsq1l2q8g69d7ipnhzb0h97m59";
-    };
-  }
-  {
-    pname = "system.objectmodel";
-    version = "4.0.12";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.objectmodel/4.0.12/system.objectmodel.4.0.12.nupkg";
-      sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
-    };
-  }
-  {
-    pname = "system.objectmodel";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.objectmodel/4.3.0/system.objectmodel.4.3.0.nupkg";
-      sha256 = "191p63zy5rpqx7dnrb3h7prvgixmk168fhvvkkvhlazncf8r3nc2";
-    };
-  }
-  {
-    pname = "system.private.uri";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.private.uri/4.3.0/system.private.uri.4.3.0.nupkg";
-      sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
-    };
-  }
-  {
-    pname = "system.reactive";
-    version = "4.4.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reactive/4.4.1/system.reactive.4.4.1.nupkg";
-      sha256 = "0gx8jh3hny2y5kijz5k9pxiqw481d013787c04zlhps21ygklw4a";
-    };
-  }
-  {
-    pname = "system.reflection";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection/4.1.0/system.reflection.4.1.0.nupkg";
-      sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
-    };
-  }
-  {
-    pname = "system.reflection";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection/4.3.0/system.reflection.4.3.0.nupkg";
-      sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
-    };
-  }
-  {
-    pname = "system.reflection.dispatchproxy";
-    version = "4.5.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.dispatchproxy/4.5.1/system.reflection.dispatchproxy.4.5.1.nupkg";
-      sha256 = "0cdnl4i9mfk7kx2ylglayqwqw7kl5k1xr8siaxch45hfyc2cpds8";
-    };
-  }
-  {
-    pname = "system.reflection.emit";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit/4.0.1/system.reflection.emit.4.0.1.nupkg";
-      sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
-    };
-  }
-  {
-    pname = "system.reflection.emit";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit/4.3.0/system.reflection.emit.4.3.0.nupkg";
-      sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
-    };
-  }
-  {
-    pname = "system.reflection.emit.ilgeneration";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit.ilgeneration/4.0.1/system.reflection.emit.ilgeneration.4.0.1.nupkg";
-      sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
-    };
-  }
-  {
-    pname = "system.reflection.emit.ilgeneration";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit.ilgeneration/4.3.0/system.reflection.emit.ilgeneration.4.3.0.nupkg";
-      sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
-    };
-  }
-  {
-    pname = "system.reflection.emit.lightweight";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit.lightweight/4.0.1/system.reflection.emit.lightweight.4.0.1.nupkg";
-      sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
-    };
-  }
-  {
-    pname = "system.reflection.emit.lightweight";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.emit.lightweight/4.3.0/system.reflection.emit.lightweight.4.3.0.nupkg";
-      sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
-    };
-  }
-  {
-    pname = "system.reflection.extensions";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.extensions/4.0.1/system.reflection.extensions.4.0.1.nupkg";
-      sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
-    };
-  }
-  {
-    pname = "system.reflection.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.extensions/4.3.0/system.reflection.extensions.4.3.0.nupkg";
-      sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
-    };
-  }
-  {
-    pname = "system.reflection.metadata";
-    version = "1.6.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.metadata/1.6.0/system.reflection.metadata.1.6.0.nupkg";
-      sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
-    };
-  }
-  {
-    pname = "system.reflection.metadata";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.metadata/5.0.0/system.reflection.metadata.5.0.0.nupkg";
-      sha256 = "17qsl5nanlqk9iz0l5wijdn6ka632fs1m1fvx18dfgswm258r3ss";
-    };
-  }
-  {
-    pname = "system.reflection.primitives";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.primitives/4.0.1/system.reflection.primitives.4.0.1.nupkg";
-      sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
-    };
-  }
-  {
-    pname = "system.reflection.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.primitives/4.3.0/system.reflection.primitives.4.3.0.nupkg";
-      sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
-    };
-  }
-  {
-    pname = "system.reflection.typeextensions";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.typeextensions/4.1.0/system.reflection.typeextensions.4.1.0.nupkg";
-      sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
-    };
-  }
-  {
-    pname = "system.reflection.typeextensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.reflection.typeextensions/4.3.0/system.reflection.typeextensions.4.3.0.nupkg";
-      sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
-    };
-  }
-  {
-    pname = "system.resources.extensions";
-    version = "4.6.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.resources.extensions/4.6.0/system.resources.extensions.4.6.0.nupkg";
-      sha256 = "0inch9jgchgmsg3xjivbhh9mpin40mhdd8dgf4i1p3g42i0hzc0j";
-    };
-  }
-  {
-    pname = "system.resources.resourcemanager";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.resources.resourcemanager/4.0.1/system.resources.resourcemanager.4.0.1.nupkg";
-      sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
-    };
-  }
-  {
-    pname = "system.resources.resourcemanager";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.resources.resourcemanager/4.3.0/system.resources.resourcemanager.4.3.0.nupkg";
-      sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
-    };
-  }
-  {
-    pname = "system.runtime";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime/4.1.0/system.runtime.4.1.0.nupkg";
-      sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
-    };
-  }
-  {
-    pname = "system.runtime";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime/4.3.0/system.runtime.4.3.0.nupkg";
-      sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "4.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.4.0/system.runtime.compilerservices.unsafe.4.4.0.nupkg";
-      sha256 = "0a6ahgi5b148sl5qyfpyw383p3cb4yrkm802k29fsi4mxkiwir29";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.0/system.runtime.compilerservices.unsafe.4.5.0.nupkg";
-      sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "4.5.2";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.2/system.runtime.compilerservices.unsafe.4.5.2.nupkg";
-      sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "4.5.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.5.3/system.runtime.compilerservices.unsafe.4.5.3.nupkg";
-      sha256 = "1afi6s2r1mh1kygbjmfba6l4f87pi5sg13p4a48idqafli94qxln";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "4.7.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.7.1/system.runtime.compilerservices.unsafe.4.7.1.nupkg";
-      sha256 = "119br3pd85lq8zcgh4f60jzmv1g976q1kdgi3hvqdlhfbw6siz2j";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/5.0.0/system.runtime.compilerservices.unsafe.5.0.0.nupkg";
-      sha256 = "02k25ivn50dmqx5jn8hawwmz24yf0454fjd823qk6lygj9513q4x";
-    };
-  }
-  {
-    pname = "system.runtime.compilerservices.unsafe";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/6.0.0/system.runtime.compilerservices.unsafe.6.0.0.nupkg";
-      sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc";
-    };
-  }
-  {
-    pname = "system.runtime.extensions";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.extensions/4.1.0/system.runtime.extensions.4.1.0.nupkg";
-      sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
-    };
-  }
-  {
-    pname = "system.runtime.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.extensions/4.3.0/system.runtime.extensions.4.3.0.nupkg";
-      sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
-    };
-  }
-  {
-    pname = "system.runtime.handles";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.handles/4.0.1/system.runtime.handles.4.0.1.nupkg";
-      sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
-    };
-  }
-  {
-    pname = "system.runtime.handles";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.handles/4.3.0/system.runtime.handles.4.3.0.nupkg";
-      sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
-    };
-  }
-  {
-    pname = "system.runtime.interopservices";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.interopservices/4.1.0/system.runtime.interopservices.4.1.0.nupkg";
-      sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
-    };
-  }
-  {
-    pname = "system.runtime.interopservices";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.interopservices/4.3.0/system.runtime.interopservices.4.3.0.nupkg";
-      sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
-    };
-  }
-  {
-    pname = "system.runtime.interopservices.runtimeinformation";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.interopservices.runtimeinformation/4.0.0/system.runtime.interopservices.runtimeinformation.4.0.0.nupkg";
-      sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
-    };
-  }
-  {
-    pname = "system.runtime.interopservices.runtimeinformation";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.interopservices.runtimeinformation/4.3.0/system.runtime.interopservices.runtimeinformation.4.3.0.nupkg";
-      sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
-    };
-  }
-  {
-    pname = "system.runtime.interopservices.windowsruntime";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.interopservices.windowsruntime/4.3.0/system.runtime.interopservices.windowsruntime.4.3.0.nupkg";
-      sha256 = "0bpsy91yqm2ryp5y9li8p6yh4yrxcvg9zvm569ifw25rpy67bgp9";
-    };
-  }
-  {
-    pname = "system.runtime.numerics";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.numerics/4.3.0/system.runtime.numerics.4.3.0.nupkg";
-      sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
-    };
-  }
-  {
-    pname = "system.runtime.serialization.primitives";
-    version = "4.1.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.runtime.serialization.primitives/4.1.1/system.runtime.serialization.primitives.4.1.1.nupkg";
-      sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
-    };
-  }
-  {
-    pname = "system.security.accesscontrol";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.accesscontrol/4.5.0/system.security.accesscontrol.4.5.0.nupkg";
-      sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
-    };
-  }
-  {
-    pname = "system.security.accesscontrol";
-    version = "4.6.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.accesscontrol/4.6.0/system.security.accesscontrol.4.6.0.nupkg";
-      sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf";
-    };
-  }
-  {
-    pname = "system.security.accesscontrol";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.accesscontrol/4.7.0/system.security.accesscontrol.4.7.0.nupkg";
-      sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz";
-    };
-  }
-  {
-    pname = "system.security.claims";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.claims/4.3.0/system.security.claims.4.3.0.nupkg";
-      sha256 = "0jvfn7j22l3mm28qjy3rcw287y9h65ha4m940waaxah07jnbzrhn";
-    };
-  }
-  {
-    pname = "system.security.cryptography.algorithms";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.algorithms/4.3.0/system.security.cryptography.algorithms.4.3.0.nupkg";
-      sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
-    };
-  }
-  {
-    pname = "system.security.cryptography.algorithms";
-    version = "4.3.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.algorithms/4.3.1/system.security.cryptography.algorithms.4.3.1.nupkg";
-      sha256 = "1m2wnzg3m3c0s11jg4lshcl2a47d78zri8khc21yrz34jjkbyls2";
-    };
-  }
-  {
-    pname = "system.security.cryptography.cng";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.cng/4.3.0/system.security.cryptography.cng.4.3.0.nupkg";
-      sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv";
-    };
-  }
-  {
-    pname = "system.security.cryptography.cng";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.cng/4.7.0/system.security.cryptography.cng.4.7.0.nupkg";
-      sha256 = "00797sqbba8lys486ifxblz9j52m29kidclvmqpk531820k55x9j";
-    };
-  }
-  {
-    pname = "system.security.cryptography.cng";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.cng/5.0.0/system.security.cryptography.cng.5.0.0.nupkg";
-      sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw";
-    };
-  }
-  {
-    pname = "system.security.cryptography.csp";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.csp/4.3.0/system.security.cryptography.csp.4.3.0.nupkg";
-      sha256 = "1x5wcrddf2s3hb8j78cry7yalca4lb5vfnkrysagbn6r9x6xvrx1";
-    };
-  }
-  {
-    pname = "system.security.cryptography.encoding";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.encoding/4.3.0/system.security.cryptography.encoding.4.3.0.nupkg";
-      sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
-    };
-  }
-  {
-    pname = "system.security.cryptography.openssl";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.openssl/4.3.0/system.security.cryptography.openssl.4.3.0.nupkg";
-      sha256 = "0givpvvj8yc7gv4lhb6s1prq6p2c4147204a0wib89inqzd87gqc";
-    };
-  }
-  {
-    pname = "system.security.cryptography.pkcs";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.pkcs/4.7.0/system.security.cryptography.pkcs.4.7.0.nupkg";
-      sha256 = "1mwvzl5ask8kk0vdgchhqr90nl61kagg47warb7dxrb03cxjd4wm";
-    };
-  }
-  {
-    pname = "system.security.cryptography.pkcs";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.pkcs/5.0.0/system.security.cryptography.pkcs.5.0.0.nupkg";
-      sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj";
-    };
-  }
-  {
-    pname = "system.security.cryptography.primitives";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.primitives/4.3.0/system.security.cryptography.primitives.4.3.0.nupkg";
-      sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
-    };
-  }
-  {
-    pname = "system.security.cryptography.protecteddata";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.3.0/system.security.cryptography.protecteddata.4.3.0.nupkg";
-      sha256 = "1kg264xmqabyz8gfg8ymp6qp6aw43vawfp0znf0909d7b5jd3dq9";
-    };
-  }
-  {
-    pname = "system.security.cryptography.protecteddata";
-    version = "4.4.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.4.0/system.security.cryptography.protecteddata.4.4.0.nupkg";
-      sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6";
-    };
-  }
-  {
-    pname = "system.security.cryptography.protecteddata";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.5.0/system.security.cryptography.protecteddata.4.5.0.nupkg";
-      sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7";
-    };
-  }
-  {
-    pname = "system.security.cryptography.protecteddata";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.protecteddata/4.7.0/system.security.cryptography.protecteddata.4.7.0.nupkg";
-      sha256 = "1s1sh8k10s0apa09c5m2lkavi3ys90y657whg2smb3y8mpkfr5vm";
-    };
-  }
-  {
-    pname = "system.security.cryptography.x509certificates";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.x509certificates/4.3.0/system.security.cryptography.x509certificates.4.3.0.nupkg";
-      sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
-    };
-  }
-  {
-    pname = "system.security.cryptography.xml";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.cryptography.xml/4.7.0/system.security.cryptography.xml.4.7.0.nupkg";
-      sha256 = "08c82yb1nhfqr15rrypc36c7pysp7jymkwnra84w72nd53h3dfgb";
-    };
-  }
-  {
-    pname = "system.security.permissions";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.5.0/system.security.permissions.4.5.0.nupkg";
-      sha256 = "192ww5rm3c9mirxgl1nzyrwd18am3izqls0hzm0fvcdjl5grvbhm";
-    };
-  }
-  {
-    pname = "system.security.permissions";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.permissions/4.7.0/system.security.permissions.4.7.0.nupkg";
-      sha256 = "13f366sj36jwbvld957gk2q64k2xbj48r8b0k9avrri2nlq1fs04";
-    };
-  }
-  {
-    pname = "system.security.principal";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.principal/4.3.0/system.security.principal.4.3.0.nupkg";
-      sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf";
-    };
-  }
-  {
-    pname = "system.security.principal.windows";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.principal.windows/4.3.0/system.security.principal.windows.4.3.0.nupkg";
-      sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr";
-    };
-  }
-  {
-    pname = "system.security.principal.windows";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.principal.windows/4.5.0/system.security.principal.windows.4.5.0.nupkg";
-      sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
-    };
-  }
-  {
-    pname = "system.security.principal.windows";
-    version = "4.6.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.principal.windows/4.6.0/system.security.principal.windows.4.6.0.nupkg";
-      sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm";
-    };
-  }
-  {
-    pname = "system.security.principal.windows";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.security.principal.windows/4.7.0/system.security.principal.windows.4.7.0.nupkg";
-      sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d";
-    };
-  }
-  {
-    pname = "system.text.encoding";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding/4.0.11/system.text.encoding.4.0.11.nupkg";
-      sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
-    };
-  }
-  {
-    pname = "system.text.encoding";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding/4.3.0/system.text.encoding.4.3.0.nupkg";
-      sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
-    };
-  }
-  {
-    pname = "system.text.encoding.codepages";
-    version = "4.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.codepages/4.0.1/system.text.encoding.codepages.4.0.1.nupkg";
-      sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3";
-    };
-  }
-  {
-    pname = "system.text.encoding.codepages";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.codepages/6.0.0/system.text.encoding.codepages.6.0.0.nupkg";
-      sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww";
-    };
-  }
-  {
-    pname = "system.text.encoding.extensions";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.extensions/4.0.11/system.text.encoding.extensions.4.0.11.nupkg";
-      sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
-    };
-  }
-  {
-    pname = "system.text.encoding.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encoding.extensions/4.3.0/system.text.encoding.extensions.4.3.0.nupkg";
-      sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
-    };
-  }
-  {
-    pname = "system.text.encodings.web";
-    version = "5.0.1";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encodings.web/5.0.1/system.text.encodings.web.5.0.1.nupkg";
-      sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9";
-    };
-  }
-  {
-    pname = "system.text.encodings.web";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.encodings.web/6.0.0/system.text.encodings.web.6.0.0.nupkg";
-      sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai";
-    };
-  }
-  {
-    pname = "system.text.json";
-    version = "5.0.2";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.json/5.0.2/system.text.json.5.0.2.nupkg";
-      sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx";
-    };
-  }
-  {
-    pname = "system.text.json";
-    version = "6.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.json/6.0.0/system.text.json.6.0.0.nupkg";
-      sha256 = "1si2my1g0q0qv1hiqnji4xh9wd05qavxnzj9dwgs23iqvgjky0gl";
-    };
-  }
-  {
-    pname = "system.text.regularexpressions";
-    version = "4.1.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.regularexpressions/4.1.0/system.text.regularexpressions.4.1.0.nupkg";
-      sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
-    };
-  }
-  {
-    pname = "system.text.regularexpressions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.text.regularexpressions/4.3.0/system.text.regularexpressions.4.3.0.nupkg";
-      sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
-    };
-  }
-  {
-    pname = "system.threading";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading/4.0.11/system.threading.4.0.11.nupkg";
-      sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
-    };
-  }
-  {
-    pname = "system.threading";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading/4.3.0/system.threading.4.3.0.nupkg";
-      sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
-    };
-  }
-  {
-    pname = "system.threading.overlapped";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.overlapped/4.3.0/system.threading.overlapped.4.3.0.nupkg";
-      sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm";
-    };
-  }
-  {
-    pname = "system.threading.tasks";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks/4.0.11/system.threading.tasks.4.0.11.nupkg";
-      sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
-    };
-  }
-  {
-    pname = "system.threading.tasks";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks/4.3.0/system.threading.tasks.4.3.0.nupkg";
-      sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
-    };
-  }
-  {
-    pname = "system.threading.tasks.dataflow";
-    version = "5.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks.dataflow/5.0.0/system.threading.tasks.dataflow.5.0.0.nupkg";
-      sha256 = "028fimgwn5j9fv6m547c975a8b90d9qcnb89k5crjyspsnjcqbhy";
-    };
-  }
-  {
-    pname = "system.threading.tasks.extensions";
-    version = "4.0.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.0.0/system.threading.tasks.extensions.4.0.0.nupkg";
-      sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
-    };
-  }
-  {
-    pname = "system.threading.tasks.extensions";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.3.0/system.threading.tasks.extensions.4.3.0.nupkg";
-      sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
-    };
-  }
-  {
-    pname = "system.threading.tasks.extensions";
-    version = "4.5.3";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.3/system.threading.tasks.extensions.4.5.3.nupkg";
-      sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i";
-    };
-  }
-  {
-    pname = "system.threading.tasks.extensions";
-    version = "4.5.4";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.4/system.threading.tasks.extensions.4.5.4.nupkg";
-      sha256 = "0y6ncasgfcgnjrhynaf0lwpkpkmv4a07sswwkwbwb5h7riisj153";
-    };
-  }
-  {
-    pname = "system.threading.thread";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.thread/4.3.0/system.threading.thread.4.3.0.nupkg";
-      sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
-    };
-  }
-  {
-    pname = "system.threading.threadpool";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.threadpool/4.3.0/system.threading.threadpool.4.3.0.nupkg";
-      sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
-    };
-  }
-  {
-    pname = "system.threading.timer";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.threading.timer/4.3.0/system.threading.timer.4.3.0.nupkg";
-      sha256 = "1nx773nsx6z5whv8kaa1wjh037id2f1cxhb69pvgv12hd2b6qs56";
-    };
-  }
-  {
-    pname = "system.valuetuple";
-    version = "4.5.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.valuetuple/4.5.0/system.valuetuple.4.5.0.nupkg";
-      sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy";
-    };
-  }
-  {
-    pname = "system.windows.extensions";
-    version = "4.7.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.windows.extensions/4.7.0/system.windows.extensions.4.7.0.nupkg";
-      sha256 = "11dmyx3j0jafjx5r9mkj1v4w2a4rzrdn8fgwm2d1g7fs1ayqcvy9";
-    };
-  }
-  {
-    pname = "system.xml.readerwriter";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.xml.readerwriter/4.0.11/system.xml.readerwriter.4.0.11.nupkg";
-      sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
-    };
-  }
-  {
-    pname = "system.xml.readerwriter";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.xml.readerwriter/4.3.0/system.xml.readerwriter.4.3.0.nupkg";
-      sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
-    };
-  }
-  {
-    pname = "system.xml.xdocument";
-    version = "4.0.11";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.xml.xdocument/4.0.11/system.xml.xdocument.4.0.11.nupkg";
-      sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
-    };
-  }
-  {
-    pname = "system.xml.xdocument";
-    version = "4.3.0";
-    src = fetchurl {
-      url = "https://api.nuget.org/v3-flatcontainer/system.xml.xdocument/4.3.0/system.xml.xdocument.4.3.0.nupkg";
-      sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
-    };
-  }
+{ fetchNuGet }: [
+  (fetchNuGet { pname = "Cake.Scripting.Abstractions"; version = "0.9.0"; sha256 = "15nqr100crclha0lzgil25j1wn45517gb34059qypj05j8psfmjx"; })
+  (fetchNuGet { pname = "Cake.Scripting.Transport"; version = "0.9.0"; sha256 = "1gpbvframx4dx4mzfh44cib6dfd26q7878vf073m9gv3y43sws7b"; })
+  (fetchNuGet { pname = "Dotnet.Script.DependencyModel"; version = "1.3.1"; sha256 = "0bi9rg6c77qav8mb0rbvs5pczf9f0ii8i11c9vyib53bv6fiifxp"; })
+  (fetchNuGet { pname = "Dotnet.Script.DependencyModel.NuGet"; version = "1.3.1"; sha256 = "1v2xd0f2xrkgdznnjad5vhjan51k9qwi4piyg5vdz9mvywail51q"; })
+  (fetchNuGet { pname = "Humanizer.Core"; version = "2.2.0"; sha256 = "08mzg65y9d3zvq16rsmpapcdan71ggq2mpks6k777h3wlm2sh3p5"; })
+  (fetchNuGet { pname = "ICSharpCode.Decompiler"; version = "7.1.0.6543"; sha256 = "1xrajs5dcd7aqsg9ibhdcy39yrd8737kknkmqf907n7fqs2jxr46"; })
+  (fetchNuGet { pname = "McMaster.Extensions.CommandLineUtils"; version = "3.1.0"; sha256 = "075n1mfsxwz514r94l8i3ax0wp43c3xb4f9w25a96h6xxnj0k2hd"; })
+  (fetchNuGet { pname = "MediatR"; version = "8.1.0"; sha256 = "0cqx7yfh998xhsfk5pr6229lcjcs1jxxyqz7dwskc9jddl6a2akp"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-arm64"; version = "6.0.6"; sha256 = "0991cx7z1bs4a8dn5135vh6mf2qxh0hg16n6j7cfgys74vh2b7ma"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1i66xw8h6qw1p0yf09hdy6l42bkhw3qi8q6zi7933mdkd4r3qr9n"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "6.0.6"; sha256 = "1lzg1x7i5kpmf4lkf1v2mqv3szq3vvsl5dpgjm0vfy1yaw308zaw"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "1.1.1"; sha256 = "0a1ahssqds2ympr7s4xcxv5y8jgxs7ahd6ah6fbgglj4rki1f1vw"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "5.0.0"; sha256 = "0cp5jbax2mf6xr3dqiljzlwi05fv6n9a35z337s92jcljiq674kf"; })
+  (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
+  (fetchNuGet { pname = "Microsoft.Build"; version = "17.0.0"; sha256 = "166brl88y8xn9llc0hmn911k6y74gapmk1mrnfxbv73qj77jxsn1"; })
+  (fetchNuGet { pname = "Microsoft.Build.Framework"; version = "17.0.0"; sha256 = "08c257dmfa6n41lq4fxb34khi8jbwlqfy1168x7h7zsbh3wss7yq"; })
+  (fetchNuGet { pname = "Microsoft.Build.Locator"; version = "1.4.1"; sha256 = "0j119rri7a401rca67cxdyrn3rprzdl1b2wrblqc23xsff1xvlrx"; })
+  (fetchNuGet { pname = "Microsoft.Build.Tasks.Core"; version = "17.0.0"; sha256 = "087mn3rz5plnj7abjqk2di5is35mmfgmdjf0kcdn7jld8rbhk5hx"; })
+  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.0.0"; sha256 = "0avwja8vk56f2kr2pmrqx3h60bnwbs7ds062lhvhcxv87m5yfqnj"; })
+  (fetchNuGet { pname = "Microsoft.Build.Utilities.Core"; version = "17.0.0"; sha256 = "0b7kylnvdqs81nmxdw7alwij8b19wm00iqicb9gkiklxjfyd8xav"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.AnalyzerUtilities"; version = "3.3.0"; sha256 = "0b2xy6m3l1y6j2xc97cg5llia169jv4nszrrrqclh505gpw6qccz"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.2.0-3.22169.1"; sha256 = "0505svp6y5nbmkh22gz6g4bcxxsmbpc9jy08h8lz5z4i3bikl30b"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.common/4.2.0-3.22169.1/microsoft.codeanalysis.common.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.2.0-3.22169.1"; sha256 = "1shvi06n4n2yxvmjzvvx5h9zcc1jwqjfcxr2lbagdcq9bmnvlikw"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Features"; version = "4.2.0-3.22169.1"; sha256 = "1aq1qqdvq06h6247m3hpgzkgwpj3a48jl5b98hp4aj9kb5wkmnil"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.features/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.features.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Scripting"; version = "4.2.0-3.22169.1"; sha256 = "0nhng62lfn4r300g2z3vp4qw51w8vzb5gl3wkd77p9lx2n1ma7n2"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.scripting/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.scripting.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp.Workspaces"; version = "4.2.0-3.22169.1"; sha256 = "16vsx5yb3fmyx1nqnbsd5iy46v7s0gf8aikxl12yy7ajdd4mapxj"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.csharp.workspaces/4.2.0-3.22169.1/microsoft.codeanalysis.csharp.workspaces.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Elfie"; version = "1.0.0-rc14"; sha256 = "0774fkq08a3h0yn22glfcvwzrwc0ll7dh71k0p1mg7m3biyy8a2f"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.ExternalAccess.OmniSharp"; version = "4.2.0-3.22169.1"; sha256 = "02c7m8gy3jkbvn8dcrzc00ngg80xq90cfa1yspk4y4pdcjf6mrbc"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.ExternalAccess.OmniSharp.CSharp"; version = "4.2.0-3.22169.1"; sha256 = "1wj6r0ara77fibvxh8s518isgwxwcd41c0iw7fmvz2pd94l16hgz"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.externalaccess.omnisharp.csharp/4.2.0-3.22169.1/microsoft.codeanalysis.externalaccess.omnisharp.csharp.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Features"; version = "4.2.0-3.22169.1"; sha256 = "1xpsjsxm7hnl9wzfp0nz9prv72jgf0r9ljqynab3gaipsdaswddk"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.features/4.2.0-3.22169.1/microsoft.codeanalysis.features.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Scripting.Common"; version = "4.2.0-3.22169.1"; sha256 = "0w0z3njcbq6n0a24xvxcp461898zlkwqs6p1gdpnpxks5vvgah12"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.scripting.common/4.2.0-3.22169.1/microsoft.codeanalysis.scripting.common.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Workspaces.Common"; version = "4.2.0-3.22169.1"; sha256 = "0psy2ifls96mif6kvr242v1s1zmawdljwmcxaj20rl3m7v0nlwmd"; url = "https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/d1622942-d16f-48e5-bc83-96f4539e7601/nuget/v3/flat2/microsoft.codeanalysis.workspaces.common/4.2.0-3.22169.1/microsoft.codeanalysis.workspaces.common.4.2.0-3.22169.1.nupkg"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
+  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
+  (fetchNuGet { pname = "Microsoft.DiaSymReader"; version = "1.4.0"; sha256 = "0li9shnm941jza40kqfkbbys77mrr55nvi9h3maq9fipq4qwx92d"; })
+  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "3.1.6"; sha256 = "0b9myd7gqbpaw9pkd2bx45jhik9mwj0f1ss57sk2cxmag2lkdws5"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Abstractions"; version = "6.0.0"; sha256 = "0qn30d3pg4rx1x2k525jj4x5g1fxm2v5m0ksz2dmk1gmqalpask8"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Caching.Memory"; version = "6.0.0"; sha256 = "0dq1x7962zsp926rj76i4akk4hsy7r5ldys8r4xsd78rq5f67rhq"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "2.0.0"; sha256 = "0yssxq9di5h6xw2cayp5hj3l9b2p0jw9wcjz73rwk4586spac9s9"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration"; version = "6.0.0"; sha256 = "1zdyai2rzngmsp3706d12qrdk315c1s3ja218fzb3nc3wd1vz0s8"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "2.0.0"; sha256 = "1ilz2yrgg9rbjyhn6a5zh9pr51nmh11z7sixb4p7vivgydj9gxwf"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Abstractions"; version = "6.0.0"; sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "2.0.0"; sha256 = "1prvdbma6r18n5agbhhabv6g357p1j70gq4m9g0vs859kf44nrgc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Binder"; version = "6.0.0"; sha256 = "15hb2rbzgri1fq8wpj4ll7czm3rxqzszs02phnhjnncp90m5rmpc"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.CommandLine"; version = "6.0.0"; sha256 = "1hb4qrq9xdxzh2px515pv1vkz1jigwaxw1hfg9w8s6pgl8z04l4c"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.EnvironmentVariables"; version = "6.0.0"; sha256 = "19w2vxliz1xangbach3hkx72x2pxqhc9n9c3kc3l8mhicl8w6vdl"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.FileExtensions"; version = "6.0.0"; sha256 = "02nna984iwnyyz4jjh9vs405nlj0yk1g5vz4v2x30z2c89mx5f9w"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Configuration.Json"; version = "6.0.0"; sha256 = "1c6l5szma1pdn61ncq1kaqibg0dz65hbma2xl626a8d1m6awn353"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "2.0.0"; sha256 = "018izzgykaqcliwarijapgki9kp2c560qv8qsxdjywr7byws5apq"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection"; version = "6.0.0"; sha256 = "1wlhb2vygzfdjbdzy7waxblmrx0q3pdcqvpapnpmq9fcx5m8r6w1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.DependencyInjection.Abstractions"; version = "2.0.0"; sha256 = "1pwrfh9b72k9rq6mb2jab5qhhi225d5rjalzkapiayggmygc8nhz"; })
+  (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.FileProviders.Abstractions"; version = "6.0.0"; sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileProviders.Physical"; version = "6.0.0"; sha256 = "1ikc3kf325xig6njbi2aj5kmww4xlaq9lsrpc8v764fsm4x10474"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.FileSystemGlobbing"; version = "6.0.0"; sha256 = "09gyyv4fwy9ys84z3aq4lm9y09b7bd1d4l4gfdinmg0z9678f1a4"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "2.0.0"; sha256 = "1jkwjcq1ld9znz1haazk8ili2g4pzfdp6i7r7rki4hg3jcadn386"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging"; version = "6.0.0"; sha256 = "0fd9jii3y3irfcwlsiww1y9npjgabzarh33rn566wpcz24lijszi"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "2.0.0"; sha256 = "1x5isi71z02khikzvm7vaschb006pqqrsv86ky1x08a4hir4s43h"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Abstractions"; version = "6.0.0"; sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Configuration"; version = "6.0.0"; sha256 = "0plx785hk61arjxf0m3ywy9hl5nii25raj4523n3ql7mmv6hxqr1"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Logging.Console"; version = "6.0.0"; sha256 = "1383b0r33dzz0hrch9cqzzxr9vxr21qq0a5vnrpkfq71m2fky31d"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "2.0.0"; sha256 = "0g4zadlg73f507krilhaaa7h0jdga216syrzjlyf5fdk25gxmjqh"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "2.0.0"; sha256 = "1isc3rjbzz60f7wbmgcwslx5d10hm5hisnk7v54vfi2bz7132gll"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Options.ConfigurationExtensions"; version = "6.0.0"; sha256 = "1k6q91vrhq1r74l4skibn7wzxzww9l74ibxb2i8gg4q6fzbiivba"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "2.0.0"; sha256 = "1xppr5jbny04slyjgngxjdm0maxdh47vq481ps944d7jrfs0p3mb"; })
+  (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
+  (fetchNuGet { pname = "Microsoft.NET.StringTools"; version = "1.0.0"; sha256 = "06yakiyzgss399giivfx6xdrnfxqfsvy5fzm90scjanvandv0sdj"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-arm64"; version = "6.0.6"; sha256 = "1rzp7ik9lgr48vrhdpi50f784ma049q40ax95ipfbd8d5ibibmf4"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "6.0.6"; sha256 = "186ammhxnkh4m68f1s70rca23025lwzhxnc7m82wjg18rwz2vnkl"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "6.0.6"; sha256 = "09qvkwp419w6kqya42zlm0xh7aaamnny26z19rhchrv33rh16m6h"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-arm64"; version = "6.0.6"; sha256 = "0aabgvm2pl28injcay77l6ccz8r7bk1gxw5jrxbbjiirkv3r4gbl"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "6.0.6"; sha256 = "1a6hvkiy2z6z7v7rw1q61qqlw7w0hzc4my3rm94kwgjcv5qkpr5k"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "6.0.6"; sha256 = "1kzkn9ssa9h4cfgnlcljw8qj2f7ln8ywzag6k4xx3i40pa7z5fhd"; })
+  (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 = "3.0.0"; sha256 = "1bk8r4r3ihmi6322jmcag14jmw11mjqys202azqjzglcx59pxh51"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "3.1.0"; sha256 = "1gc1x8f95wk8yhgznkwsg80adk1lc65v9n5rx4yaa4bc5dva0z3j"; })
+  (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.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; })
+  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.0"; sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1"; })
+  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net472"; version = "1.0.0"; sha256 = "1bqinq2nxnpqxziypg1sqy3ly0nymxxjpn8fwkn3rl4vl6gdg3rc"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "1.0.0"; sha256 = "1zxkpx01zdv17c39iiy8fx25ran89n14qwddh1f140v1s4dn8z9c"; })
+  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "1.0.0"; sha256 = "029ixyaqn48cjza87m5qf0g1ynyhlm6irgbx1n09src9g666yhpd"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.0.0"; sha256 = "1bh5scbvl6ndldqv20sl34h4y257irm9ziv2wyfc3hka6912fhn7"; })
+  (fetchNuGet { pname = "Microsoft.TestPlatform.TranslationLayer"; version = "17.0.0"; sha256 = "08c6d9aiicpj8hsjb77rz7d2vmw7ivkcc0l1vgdgxddzjhjpy0pi"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.RemoteControl"; version = "16.3.44"; sha256 = "0kjvxpx45vvaxqm6k632gqi0zaw7w5m4h8wgmsaj15r4ihl49c3a"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.SDK.EmbedInteropTypes"; version = "15.0.12"; sha256 = "083pva0a0xxvqqrjv75if25wr3rq034wgjhbax74zhzdb665nzsw"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Setup.Configuration.Interop"; version = "1.14.114"; sha256 = "062mqkmjf4k6zm3wi9ih0lzypfsnv82lgh88r35fj66akihn86gv"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Setup.Configuration.Interop"; version = "1.16.30"; sha256 = "14022lx03vdcqlvbbdmbsxg5pqfx1rfq2jywxlyaz9v68cvsb0g4"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading"; version = "16.7.56"; sha256 = "13x0xrsjxd86clf9cjjwmpzlyp8pkrf13riya7igs8zy93zw2qap"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Threading.Analyzers"; version = "16.7.56"; sha256 = "04v9df0k7bsc0rzgkw4mnvi43pdrh42vk6xdcwn9m6im33m0nnz2"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Utilities.Internal"; version = "16.3.36"; sha256 = "1sg4vjm7735rkvxdmsb7wvjqrxy4gcvhhczv5dhpjayg7885k8cx"; })
+  (fetchNuGet { pname = "Microsoft.VisualStudio.Validation"; version = "15.5.31"; sha256 = "1ah99rn922qa0sd2k3h64m324f2r32pw8cn4cfihgvwx4qdrpmgw"; })
+  (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 = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
+  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.6.0"; sha256 = "0i4y782yrqqyx85pg597m20gm0v126w0j9ddk5z7xb3crx4z9f2s"; })
+  (fetchNuGet { pname = "Microsoft.Win32.SystemEvents"; version = "4.7.0"; sha256 = "0pjll2a62hc576hd4wgyasva0lp733yllmk54n37svz5ac7nfz0q"; })
+  (fetchNuGet { pname = "Nerdbank.Streams"; version = "2.6.81"; sha256 = "06wihcaga8537ibh0mkj28m720m6vzkqk562zkynhca85nd236yi"; })
+  (fetchNuGet { pname = "NETStandard.Library"; version = "1.6.1"; sha256 = "1z70wvsx2d847a2cjfii7b83pjfs34q05gb037fdjikv5kbagml8"; })
+  (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 = "11.0.2"; sha256 = "1784xi44f4k8v1fr696hsccmwpy94bz7kixxqlri98zhcxn406b2"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
+  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
+  (fetchNuGet { pname = "NuGet.Common"; version = "5.2.0"; sha256 = "14y7axpmdl9fg8jfc42gxpcq9wj8k3vzc07npmgjnzqlp5xjyyac"; })
+  (fetchNuGet { pname = "NuGet.Common"; version = "6.0.0"; sha256 = "0vbvmx2zzg54fv6617afi3z49cala70qj7jfxqnldjbc1z2c4b7r"; })
+  (fetchNuGet { pname = "NuGet.Configuration"; version = "5.2.0"; sha256 = "0b4dkym3vnj7qldnqqq6h6ry0gkql5c2ps5wy72b8s4fc3dmnvf1"; })
+  (fetchNuGet { pname = "NuGet.Configuration"; version = "6.0.0"; sha256 = "1qnrahn4rbb55ra4zg9c947kbm9wdiv344f12c3b4c5i7bfmivx3"; })
+  (fetchNuGet { pname = "NuGet.DependencyResolver.Core"; version = "5.2.0"; sha256 = "156yjfsk9pzqviiwy69lxfqf61yyj4hn4vdgfcbqvw4d567i150r"; })
+  (fetchNuGet { pname = "NuGet.DependencyResolver.Core"; version = "6.0.0"; sha256 = "04w7wbfsb647apqrrzx3gj2jjlg09wdzmxj62bx43ngr34i4q83n"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.2.0"; sha256 = "1fh4rp26m77jq5dyln68wz9qm217la9vv21amis2qvcy6gknk2wp"; })
+  (fetchNuGet { pname = "NuGet.Frameworks"; version = "6.0.0"; sha256 = "11p6mhh36s3vmnylfzw125fqivjk1xj75bvcxdav8n4sbk7d3gqs"; })
+  (fetchNuGet { pname = "NuGet.LibraryModel"; version = "5.2.0"; sha256 = "0vxd0y7rzzxvmxji9bzp95p2rx48303r3nqrlhmhhfc4z5fxjlqk"; })
+  (fetchNuGet { pname = "NuGet.LibraryModel"; version = "6.0.0"; sha256 = "0pg4m6v2j5vvld7s57fvx28ix7wlah6dakhi55qpavmkmnzp6g3f"; })
+  (fetchNuGet { pname = "NuGet.Packaging"; version = "5.2.0"; sha256 = "14frrbdkka9jd6g52bv4lbqnpckw09yynr08f9kfgbc3j8pklqqb"; })
+  (fetchNuGet { pname = "NuGet.Packaging"; version = "6.0.0"; sha256 = "0vlcda74h6gq3q569kbbz4n3d26vihxaldvvi2md3phqf8jpvhjb"; })
+  (fetchNuGet { pname = "NuGet.Packaging.Core"; version = "6.0.0"; sha256 = "1kk7rf7cavdicxb4bmwcgwykr53nrk38m6r49hvs85jhhvg9jmyf"; })
+  (fetchNuGet { pname = "NuGet.ProjectModel"; version = "5.2.0"; sha256 = "1j23jk2zql52v2nqgi0k6d7z63pjjzrvw8y1s38zpf0sn7lzdr0h"; })
+  (fetchNuGet { pname = "NuGet.ProjectModel"; version = "6.0.0"; sha256 = "1fldxlw88jqgy0cfgfa7drqpxf909kfchcvk4nxj7vyhza2q715y"; })
+  (fetchNuGet { pname = "NuGet.Protocol"; version = "5.2.0"; sha256 = "1vlrrlcy7p2sf23wqax8mfhplnzppd73xqlr2g83ya056w0yf2rd"; })
+  (fetchNuGet { pname = "NuGet.Protocol"; version = "6.0.0"; sha256 = "16rs9hfra4bly8jp0lxsg0gbpi9wvxh7nrxrdkbjm01vb0azw823"; })
+  (fetchNuGet { pname = "NuGet.Versioning"; version = "5.2.0"; sha256 = "08ay8bhddj9yiq6h9lk814l65fpx5gh1iprkl7pcp78g57a6k45k"; })
+  (fetchNuGet { pname = "NuGet.Versioning"; version = "6.0.0"; sha256 = "0xxrz0p9vd2ax8hcrdxcp3h6gv8qcy6mngp49dvg1ijjjr1jb85k"; })
+  (fetchNuGet { pname = "OmniSharp.Extensions.JsonRpc"; version = "0.19.0"; sha256 = "0m9lw21iz90ayl35f24ir3vbiydf4sjqw590qqgwknykpzsi1ai2"; })
+  (fetchNuGet { pname = "OmniSharp.Extensions.JsonRpc.Generators"; version = "0.19.0"; sha256 = "17akjdh9dnyxr01lnlsa41ca52psqnny8j3wxz904zs15pz932ln"; })
+  (fetchNuGet { pname = "OmniSharp.Extensions.LanguageProtocol"; version = "0.19.0"; sha256 = "06d4wakdaj42c9qnlhdyqrjnm97azp4hrvfg70f96ldl765y9vrf"; })
+  (fetchNuGet { pname = "OmniSharp.Extensions.LanguageServer"; version = "0.19.0"; sha256 = "0k1z3zchl1d82fj0ha63i54g5j046iaz8vb3cyxpjb6kp7zah28v"; })
+  (fetchNuGet { pname = "OmniSharp.Extensions.LanguageServer.Shared"; version = "0.19.0"; sha256 = "0s3h9v5p043ip27g9jcvd0np9q3hn2pfv6gn539m45yb5d74a6i5"; })
+  (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.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.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.win.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0k1h8nnp1s0p8rjwgjyj1387cc1yycv0k22igxc963lqdzrx2z36"; })
+  (fetchNuGet { pname = "runtime.win.System.Console"; version = "4.3.0"; sha256 = "0x2yajfrbc5zc6g7nmlr44xpjk6p1hxjq47jn3xki5j7i33zw9jc"; })
+  (fetchNuGet { pname = "runtime.win.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "16fbn4bcynad1ygdq0yk1wmckvs8jvrrf104xa5dc2hlc8y3x58f"; })
+  (fetchNuGet { pname = "runtime.win.System.IO.FileSystem"; version = "4.3.0"; sha256 = "1c01nklbxywszsbfaxc76hsz7gdxac3jkphrywfkdsi3v4bwd6g8"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Primitives"; version = "4.3.0"; sha256 = "1dixh195bi7473n17hspll6i562gghdz9m4jk8d4kzi1mlzjk9cf"; })
+  (fetchNuGet { pname = "runtime.win.System.Net.Sockets"; version = "4.3.0"; sha256 = "0lr3zki831vs6qhk5wckv2b9qbfk9rcj0ds2926qvj1b9y9m6sck"; })
+  (fetchNuGet { pname = "runtime.win.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1700famsxndccfbcdz9q14qb20p49lax67mqwpgy4gx3vja1yczr"; })
+  (fetchNuGet { pname = "runtime.win10-arm64.runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1jrmrmqscn8cn2n3piar8n85gfsra7vlai23w9ldzprh0y4dw3v1"; })
+  (fetchNuGet { pname = "runtime.win7-x64.runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "1dmbmksnxg12fk2p0k7rzy16448mddr2sfrnqs0rhhrzl0z22zi5"; })
+  (fetchNuGet { pname = "runtime.win7-x86.runtime.native.System.IO.Compression"; version = "4.3.0"; sha256 = "08ppln62lcq3bz2kyxqyvh98payd5a7w8fzmb53mznkcfv32n55b"; })
+  (fetchNuGet { pname = "runtime.win7.System.Private.Uri"; version = "4.3.0"; sha256 = "0bxkcmklp556dc43bra8ngc8wymcbbflcydi0xwq0j22gm66xf2m"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.bundle_green"; version = "2.0.7"; sha256 = "083saqlwx1hbhy0rv7vi973aw7jv8q53fcxlrprx1wgxdwnbi5ni"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.core"; version = "2.0.7"; sha256 = "0b25qz3h1aarza2b74alsl9v6czns3y61i8p10yqgd9djk1b1byj"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.lib.e_sqlite3"; version = "2.0.7"; sha256 = "0wkrzcpc9vcd27gwj6w537i1i5i3h5zsips8b9v9ngk003n50mia"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.dynamic_cdecl"; version = "2.0.7"; sha256 = "1kmyf4v4157n2194j17ijf62xnqiapxhg4aka851zx0hzlxm7ygp"; })
+  (fetchNuGet { pname = "SQLitePCLRaw.provider.e_sqlite3"; version = "2.0.7"; sha256 = "1davv3fqd05353d7dl7wm2sg58fyy59b29pk58w1vf7m33580grj"; })
+  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
+  (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"; })
+  (fetchNuGet { pname = "System.CodeDom"; version = "4.4.0"; sha256 = "1zgbafm5p380r50ap5iddp11kzhr9khrf2pnai6k593wjar74p1g"; })
+  (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.7.1"; sha256 = "1nh4nlxfc7lbnbl86wwk1a3jwl6myz5j6hvgh5sp4krim9901hsq"; })
+  (fetchNuGet { pname = "System.Collections.Immutable"; version = "5.0.0"; sha256 = "1kvcllagxz2q92g81zkz81djkn2lid25ayjfgjalncyc68i15p0r"; })
+  (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 = "6.0.0"; sha256 = "1p7hysns39cc24af6dwd4m48bqjsrr3clvi4aws152mh2fgyg50z"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "1.0.31"; sha256 = "1ipyb86hvw754kmk47vjmzyilvj5hymg9nqabz70sbgsz1fygrdv"; })
+  (fetchNuGet { pname = "System.Composition.AttributedModel"; version = "6.0.0"; sha256 = "1mqrblb0l65hw39d0hnspqcv85didpn4wbiwhfgj4784wzqx2w6k"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "1.0.31"; sha256 = "00gqcdrql7vhynxh4xq0s9j5nw27kghmn2n773v7lhzjh3ash18r"; })
+  (fetchNuGet { pname = "System.Composition.Convention"; version = "6.0.0"; sha256 = "02km3yb94p1c4s7liyhkmda0g71zm1rc8ijsfmy4bnlkq15xjw3b"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "1.0.31"; sha256 = "1f1bnk3j7ndx9r7zpzibmrhw78clys1pspl20j2dhnmkiwhl23vy"; })
+  (fetchNuGet { pname = "System.Composition.Hosting"; version = "6.0.0"; sha256 = "0big5nk8c44rxp6cfykhk7rxvn2cgwa99w6c3v2a36adc3lj36ky"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "1.0.31"; sha256 = "1shfybfzsn4g6aim4pggb5ha31g0fz2kkk0519c4vj6m166g39ws"; })
+  (fetchNuGet { pname = "System.Composition.Runtime"; version = "6.0.0"; sha256 = "0vq5ik63yii1784gsa2f2kx9w6xllmm8b8rk0arid1jqdj1nyrlw"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "1.0.31"; sha256 = "1m4j19zx50lbbdx1xxbgpsd1dai2r3kzkyapw47kdvkb89qjkl63"; })
+  (fetchNuGet { pname = "System.Composition.TypedParts"; version = "6.0.0"; sha256 = "0y9pq3y60nyrpfy51f576a0qjjdh61mcv8vnik32pm4bz56h9q72"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.5.0"; sha256 = "1frpy24mn6q7hgwayj98kkx89z861f5dmia4j6zc0a2ydgx8x02c"; })
+  (fetchNuGet { pname = "System.Configuration.ConfigurationManager"; version = "4.7.0"; sha256 = "0pav0n21ghf2ax6fiwjbng29f27wkb4a2ddma0cqx04s97yyk25d"; })
+  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
+  (fetchNuGet { pname = "System.Data.DataSetExtensions"; version = "4.5.0"; sha256 = "0gk9diqx388qjmbhljsx64b5i0p9cwcaibd4h7f8x901pz84x6ma"; })
+  (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.3.0"; sha256 = "0z6m3pbiy0qw6rn3n209rrzf9x1k4002zh90vwcrsym09ipm2liq"; })
+  (fetchNuGet { pname = "System.Diagnostics.DiagnosticSource"; version = "6.0.0"; sha256 = "0rrihs9lnb1h6x4h0hn6kgfnh58qq7hx8qq99gh6fayx4dcnx3s5"; })
+  (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.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
+  (fetchNuGet { pname = "System.Drawing.Common"; version = "4.7.0"; sha256 = "0yfw7cpl54mgfcylvlpvrl0c8r1b0zca6p7r3rcwkvqy23xqcyhg"; })
+  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
+  (fetchNuGet { pname = "System.Formats.Asn1"; version = "5.0.0"; sha256 = "1axc8z0839yvqi2cb63l73l6d9j6wd20lsbdymwddz9hvrsgfwpn"; })
+  (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.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.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
+  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
+  (fetchNuGet { pname = "System.IO.FileSystem.AccessControl"; version = "4.5.0"; sha256 = "1gq4s8w7ds1sp8f9wqzf8nrzal40q5cd2w4pkf4fscrl2ih3hkkj"; })
+  (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.Pipelines"; version = "4.7.3"; sha256 = "0djp59x56klidi04xx8p5jc1nchv5zvd1d59diphqxwvgny3aawy"; })
+  (fetchNuGet { pname = "System.IO.Pipelines"; version = "6.0.1"; sha256 = "0b6zvhhfdxx0wx3bzyvxbq0mk8l5lbjak5124sn0gkif5jb388w4"; })
+  (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.Memory"; version = "4.5.0"; sha256 = "1layqpcx1q4l805fdnj2dfqp6ncx2z42ca06rgsr6ikq4jjgbv30"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
+  (fetchNuGet { pname = "System.Memory"; version = "4.5.4"; sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y"; })
+  (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.Primitives"; version = "4.3.0"; sha256 = "0c87k50rmdgmxx7df2khd9qj7q35j9rzdmm2572cc55dygmdk3ii"; })
+  (fetchNuGet { pname = "System.Net.Sockets"; version = "4.3.0"; sha256 = "1ssa65k6chcgi6mfmzrznvqaxk8jp0gvl77xhf1hbzakjnpxspla"; })
+  (fetchNuGet { pname = "System.Net.WebSockets"; version = "4.3.0"; sha256 = "1gfj800078kggcgl0xyl00a6y5k4wwh2k2qm69rjy22wbmq7fy4p"; })
+  (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 = "4.4.1"; sha256 = "0gx8jh3hny2y5kijz5k9pxiqw481d013787c04zlhps21ygklw4a"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
+  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
+  (fetchNuGet { pname = "System.Reflection.DispatchProxy"; version = "4.5.1"; sha256 = "0cdnl4i9mfk7kx2ylglayqwqw7kl5k1xr8siaxch45hfyc2cpds8"; })
+  (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.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.Extensions"; version = "4.6.0"; sha256 = "0inch9jgchgmsg3xjivbhh9mpin40mhdd8dgf4i1p3g42i0hzc0j"; })
+  (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.0"; sha256 = "17labczwqk3jng3kkky73m0jhi8wc21vbl7cz5c0hj2p1dswin43"; })
+  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
+  (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.InteropServices.WindowsRuntime"; version = "4.3.0"; sha256 = "0bpsy91yqm2ryp5y9li8p6yh4yrxcvg9zvm569ifw25rpy67bgp9"; })
+  (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.6.0"; sha256 = "1wl1dyghi0qhpap1vgfhg2ybdyyhy9vc2a7dpm1xb30vfgmlkjmf"; })
+  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.7.0"; sha256 = "0n0k0w44flkd8j0xw7g3g3vhw7dijfm51f75xkm1qxnbh4y45mpz"; })
+  (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.Algorithms"; version = "4.3.1"; sha256 = "1m2wnzg3m3c0s11jg4lshcl2a47d78zri8khc21yrz34jjkbyls2"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.3.0"; sha256 = "1k468aswafdgf56ab6yrn7649kfqx2wm9aslywjam1hdmk5yypmv"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "4.7.0"; sha256 = "00797sqbba8lys486ifxblz9j52m29kidclvmqpk531820k55x9j"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Cng"; version = "5.0.0"; sha256 = "06hkx2za8jifpslkh491dfwzm5dxrsyxzj5lsc0achb6yzg4zqlw"; })
+  (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 = "4.7.0"; sha256 = "1mwvzl5ask8kk0vdgchhqr90nl61kagg47warb7dxrb03cxjd4wm"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Pkcs"; version = "5.0.0"; sha256 = "0hb2mndac3xrw3786bsjxjfh19bwnr991qib54k6wsqjhjyyvbwj"; })
+  (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.ProtectedData"; version = "4.5.0"; sha256 = "11qlc8q6b7xlspayv07718ibzvlj6ddqqxkvcbxv5b24d5kzbrb7"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.ProtectedData"; version = "4.7.0"; sha256 = "1s1sh8k10s0apa09c5m2lkavi3ys90y657whg2smb3y8mpkfr5vm"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
+  (fetchNuGet { pname = "System.Security.Cryptography.Xml"; version = "4.7.0"; sha256 = "08c82yb1nhfqr15rrypc36c7pysp7jymkwnra84w72nd53h3dfgb"; })
+  (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.6.0"; sha256 = "1jmfzfz1n8hp63s5lja5xxpzkinbp6g59l3km9h8avjiisdrg5wm"; })
+  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.7.0"; sha256 = "1a56ls5a9sr3ya0nr086sdpa9qv0abv31dd6fp27maqa9zclqq5d"; })
+  (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.0.1"; sha256 = "00wpm3b9y0k996rm9whxprngm8l500ajmzgy2ip9pgwk0icp06y3"; })
+  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "6.0.0"; sha256 = "0gm2kiz2ndm9xyzxgi0jhazgwslcs427waxgfa30m7yqll1kcrww"; })
+  (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 = "5.0.1"; sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; })
+  (fetchNuGet { pname = "System.Text.Encodings.Web"; version = "6.0.0"; sha256 = "06n9ql3fmhpjl32g3492sj181zjml5dlcc5l76xq2h38c4f87sai"; })
+  (fetchNuGet { pname = "System.Text.Json"; version = "5.0.2"; sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; })
+  (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.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.Overlapped"; version = "4.3.0"; sha256 = "1nahikhqh9nk756dh8p011j36rlcp1bzz3vwi2b4m1l2s3vz8idm"; })
+  (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 = "5.0.0"; sha256 = "028fimgwn5j9fv6m547c975a8b90d9qcnb89k5crjyspsnjcqbhy"; })
+  (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.3"; sha256 = "0g7r6hm572ax8v28axrdxz1gnsblg6kszq17g51pj14a5rn2af7i"; })
+  (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.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"; })
 ]
diff --git a/pkgs/development/tools/open-policy-agent/default.nix b/pkgs/development/tools/open-policy-agent/default.nix
index bd13a697c0c7a..fb9b0060d20ab 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.40.0";
+  version = "0.41.0";
 
   src = fetchFromGitHub {
     owner = "open-policy-agent";
     repo = "opa";
     rev = "v${version}";
-    sha256 = "sha256-rLfo2SUlxL6QFc2v+nxFnbyYcfy7i3OFhGt6ZAUteHY=";
+    sha256 = "sha256-mvTaVKNE+XSBhJkodKSkLHoxJPOInPCycsoeeEJXABQ=";
   };
   vendorSha256 = null;
 
diff --git a/pkgs/development/tools/packer/default.nix b/pkgs/development/tools/packer/default.nix
index 0d901f14863e6..8ae769429cccd 100644
--- a/pkgs/development/tools/packer/default.nix
+++ b/pkgs/development/tools/packer/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "packer";
-  version = "1.8.1";
+  version = "1.8.2";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "packer";
     rev = "v${version}";
-    sha256 = "sha256-NqXmeBQrDnCGruJTZjAryxCmEdm1CZMPhW6JhZB0log=";
+    sha256 = "sha256-SaQGUVXtAI/FdqRZc4AjDkeEl9lE5i/wKsHKNGLpx8Y=";
   };
 
-  vendorSha256 = "sha256-Wit5DWTjVrxLLWpfOo/6JrSxqeZvC4Vjv+cW19wNHyw=";
+  vendorSha256 = "sha256-0GE5chSTonJFT7xomfa9a9QsnFpTFX7proo9joaDrOU=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
index 05964496ea879..37f6794bc281f 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/default.nix
@@ -30,6 +30,7 @@
   tree-sitter-glimmer = lib.importJSON ./tree-sitter-glimmer.json;
   tree-sitter-glsl = lib.importJSON ./tree-sitter-glsl.json;
   tree-sitter-go = lib.importJSON ./tree-sitter-go.json;
+  tree-sitter-gowork = lib.importJSON ./tree-sitter-gowork.json;
   tree-sitter-godot-resource = lib.importJSON ./tree-sitter-godot-resource.json;
   tree-sitter-gomod = lib.importJSON ./tree-sitter-gomod.json;
   tree-sitter-graphql = lib.importJSON ./tree-sitter-graphql.json;
@@ -68,6 +69,7 @@
   tree-sitter-query = lib.importJSON ./tree-sitter-query.json;
   tree-sitter-r = lib.importJSON ./tree-sitter-r.json;
   tree-sitter-regex = lib.importJSON ./tree-sitter-regex.json;
+  tree-sitter-rego = lib.importJSON ./tree-sitter-rego.json;
   tree-sitter-rst = lib.importJSON ./tree-sitter-rst.json;
   tree-sitter-ruby = lib.importJSON ./tree-sitter-ruby.json;
   tree-sitter-rust = lib.importJSON ./tree-sitter-rust.json;
@@ -75,9 +77,11 @@
   tree-sitter-scheme = lib.importJSON ./tree-sitter-scheme.json;
   tree-sitter-scss = lib.importJSON ./tree-sitter-scss.json;
   tree-sitter-sparql = lib.importJSON ./tree-sitter-sparql.json;
+  tree-sitter-sql = lib.importJSON ./tree-sitter-sql.json;
   tree-sitter-supercollider = lib.importJSON ./tree-sitter-supercollider.json;
   tree-sitter-surface = lib.importJSON ./tree-sitter-surface.json;
   tree-sitter-svelte = lib.importJSON ./tree-sitter-svelte.json;
+  tree-sitter-tiger = lib.importJSON ./tree-sitter-tiger.json;
   tree-sitter-tlaplus = lib.importJSON ./tree-sitter-tlaplus.json;
   tree-sitter-toml = lib.importJSON ./tree-sitter-toml.json;
   tree-sitter-tsq = lib.importJSON ./tree-sitter-tsq.json;
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
index 292b7c032666f..abc1625810a58 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-clojure.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/sogaiu/tree-sitter-clojure",
-  "rev": "879f0e726295807d917d576fcf9e1e432c4c20fc",
-  "date": "2022-04-11T22:46:47+09:00",
-  "path": "/nix/store/19bcj8f61w958njvksnqzm5r5s8szzz2-tree-sitter-clojure",
-  "sha256": "16g7s819gjgdc4wlp7rnvyv5i5dqa1yawxs8l4ggnz8n8acqza9n",
+  "rev": "e57c569ae332ca365da623712ae1f50f84daeae2",
+  "date": "2022-06-03T17:55:54+09:00",
+  "path": "/nix/store/fx58zcfxr983yczijs6cgdfa3158bl0s-tree-sitter-clojure",
+  "sha256": "0hq8rv4s0gzbfv3qj4gsrm87baiy6k1hyfbhbbpwbrcpd8jl7gdn",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
index 19129d053a058..bdb451c69ec90 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-elm.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/elm-tooling/tree-sitter-elm",
-  "rev": "5128296ba8542853d59e6b7c8dfe3d1fb9a637ea",
-  "date": "2022-02-04T13:10:25+01:00",
-  "path": "/nix/store/8brpvn8y88x3f3dsbgqql57kp9bygj3w-tree-sitter-elm",
-  "sha256": "10hbi4vyj4hjixqswdcbvzl60prldczz29mlp02if61wvwiwvqrw",
+  "rev": "a9a8efad446f78db3989d7ed8517987daf510c83",
+  "date": "2022-06-07T23:23:33+02:00",
+  "path": "/nix/store/rqmldb72cml0qm7p8kpjlj064f5miprc-tree-sitter-elm",
+  "sha256": "11d9lrybhqi85lxr7gf8s4zxgbclnjiwn0w1mga3lsh9nnf50a4a",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gowork.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gowork.json
new file mode 100644
index 0000000000000..590d0c77d614c
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-gowork.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/omertuc/tree-sitter-go-work",
+  "rev": "6dd9dd79fb51e9f2abc829d5e97b15015b6a8ae2",
+  "date": "2021-12-18T20:13:22+01:00",
+  "path": "/nix/store/7a4raw2gi4xgbg858cs0davbplj7m8rq-tree-sitter-gowork",
+  "sha256": "1kzrs4rpby3b0h87rbr02k55k3mmkmdy7rvl11q95b3ym0smmyqb",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
index 7ebbb5d4df0c5..89a249a68cb01 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-haskell.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-haskell",
-  "rev": "1b54c3f39436bbded6593ac9e0103f9115bbbd2e",
-  "date": "2022-05-19T19:09:09+02:00",
-  "path": "/nix/store/d9825wx3mjjj76pcbbz4pd6fz5h0c2ag-tree-sitter-haskell",
-  "sha256": "11brbizaw5m77hrmg6i5s437y4f1xgvfvjddfy1n39zpyf5x6nad",
+  "rev": "ca0a13f1acb60cf32e74cced3cb623b6c70fa77c",
+  "date": "2022-06-06T23:15:37+02:00",
+  "path": "/nix/store/dmq8mc361rkhrpa5s06h1z9k8khkvi78-tree-sitter-haskell",
+  "sha256": "1r3mfnj1f6p2cqriay22jjfggrmyywimidzmzw8h5q84flngdg2s",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hcl.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hcl.json
index 24d731be7a2de..89a3280383384 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hcl.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-hcl.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/MichaHoffmann/tree-sitter-hcl",
-  "rev": "3cb7fc28247efbcb2973b97e71c78838ad98a583",
-  "date": "2021-09-20T21:50:41+02:00",
-  "path": "/nix/store/rgd0p162smlfn90ggyq3y6y4q9sgybwh-tree-sitter-hcl",
-  "sha256": "0hg7w3hsvxjwz1rb1izknn46msm4mkjx2cnq603lzn7i9mb1pbyr",
+  "rev": "4ff21306a71269c4ac814769b90b0ecf3194d21d",
+  "date": "2022-06-02T20:13:06+02:00",
+  "path": "/nix/store/jsn5dixjqqvwagcgwgjdr91igic2r42w-tree-sitter-hcl",
+  "sha256": "1gvpl6kw83ywwd64ssz5xs4idc8ip2jmiz2mfy9xlkjbl9nfngci",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
index 1a067f18d14c2..0220be6596c96 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-heex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/connorlay/tree-sitter-heex",
-  "rev": "57e46b4b002d5fb5c1f2706fe42380e544ecab5f",
-  "date": "2022-04-17T10:39:01-07:00",
-  "path": "/nix/store/afmvzkh237ikn0b9fw51crzhyk4ys1d2-tree-sitter-heex",
-  "sha256": "0gfxqph5j3n3dlpnyw85lrwhgjh4zm7mdrnf0qyv0f2basayfabm",
+  "rev": "4d8d646bba27ec11bbf76ea37410a604d2e18bfc",
+  "date": "2022-06-09T17:09:44-05:00",
+  "path": "/nix/store/hcn9zl21asz1h6h2abqjpcc37sr56s6s-tree-sitter-heex",
+  "sha256": "0s38g23npq4k2yfwijmp14wmk7klhlycr4jl9a1hnh8qqihxjbj1",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
index 12c26b133ca72..43badeec12194 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-latex.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/latex-lsp/tree-sitter-latex",
-  "rev": "104a5dea952d5f00150afd6a8436e6cad95ef718",
-  "date": "2022-06-01T18:13:32+00:00",
-  "path": "/nix/store/7y5r30ylv51rqn3d8wk088ni7k58nzpm-tree-sitter-latex",
-  "sha256": "0b78hpp76hkpjd38zjfc2z98ipnazk2aza83k4r754gj8yshhsqx",
+  "rev": "9cbe0c6be9455b6d3be19f51daef6d08732abab1",
+  "date": "2022-06-05T08:50:52+02:00",
+  "path": "/nix/store/63i0iskmn862l0rm8gdkgs1bsxxpxw54-tree-sitter-latex",
+  "sha256": "1ahij4lwg59xvzy2jn8i4rpp6bjz8pl7sqwn6a3rwal3d2x89b3d",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
index 1bf9fe3c6c74e..d7b8f83ef50a0 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-php.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-php",
-  "rev": "fdbef3621b62e098d7c9a34669cbe8a8bd807bf2",
-  "date": "2022-06-01T15:02:43+02:00",
-  "path": "/nix/store/rq8rljxmmnii1w2bw3n7224vmwnm0j1n-tree-sitter-php",
-  "sha256": "1bsdls8icmh6wnyhdibmxxignmdx3wh0bkcrwcwc7mc0xac5r4z2",
+  "rev": "866e4a155739a1374da5247b876e70f8639005f6",
+  "date": "2022-06-06T09:18:54+02:00",
+  "path": "/nix/store/23f9s4z321mnjnqfxjdj75rkcvwv2xpa-tree-sitter-php",
+  "sha256": "11nagsvq2jsinrhsfpnylz1lkp6hiw3jndshnjvzvkjmmpavm1gr",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
index 9688a1d2b7c70..0e0d0adde4977 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-prisma.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/victorhqc/tree-sitter-prisma",
-  "rev": "0ac307e4be0409d4327082ddc737ed432a49dfc3",
-  "date": "2022-04-20T10:52:00+02:00",
-  "path": "/nix/store/24vp6k2ijg832c95hx2x0j8x4i6pxffz-tree-sitter-prisma",
-  "sha256": "13rcwlkxv9dns7mgxrb34vzhq32c854bna6gsyczvs6vishm6i9l",
+  "rev": "17a59236ac25413b81b1613ea6ba5d8d52d7cd6c",
+  "date": "2022-06-11T23:04:44+02:00",
+  "path": "/nix/store/qdkwinjdy495z59wvxhifk8caksndswj-tree-sitter-prisma",
+  "sha256": "1pw9mi6hhvww4i7gf7snl893b3hwnfwp18rhbcsf7z52cr78mmqi",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rego.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rego.json
new file mode 100644
index 0000000000000..7540751ab7ab6
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-rego.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/FallenAngel97/tree-sitter-rego",
+  "rev": "6bf5f8878bef2fb760508bff1ce0262a31925018",
+  "date": "2022-04-23T19:59:01+03:00",
+  "path": "/nix/store/gnbksy85s2z7b8c02im8liaa1d7g07my-tree-sitter-rego",
+  "sha256": "1ly2lhk4mfqmsg3pzv21ikzsxaz39bah3sgd3lcbaiqd0zzgbzks",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
index 4cdaa55dd2866..5650370f589a9 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scala.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-scala",
-  "rev": "8599058ef292e82203a1b23d10734dcbaf4d1b5c",
-  "date": "2022-05-09T16:17:13-07:00",
-  "path": "/nix/store/q802q124fq79wwr6m4xfcdmgw6fzjigw-tree-sitter-scala",
-  "sha256": "0i6qkgyv722jwma2rs0nf02jzl5dvml5m1whb7580qnza95x7py1",
+  "rev": "140c96cf398693189d4e50f76d19ddfcd8a018f8",
+  "date": "2022-06-06T08:54:55+02:00",
+  "path": "/nix/store/a1pi2xyaq2jjllbkj44xhi5cp0vnlnm4-tree-sitter-scala",
+  "sha256": "1hfx696x5pfww6zsfv36wkmxld14f02krmx55fy5rgzlz1m3xgja",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json
index 5201d477c286b..d54329b9aae76 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-scheme.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/6cdh/tree-sitter-scheme",
-  "rev": "1448396b310486e7d15e5e056713457cb0413bc2",
-  "date": "2022-05-17T11:34:51+08:00",
-  "path": "/nix/store/bhwsjp4salwmfq5cyvr0dd3al5s9xhsl-tree-sitter-scheme",
-  "sha256": "1m9pzlzrmphx6162dq2nxry30wpjbsi1zhl4asjvmc0zy4r3427f",
+  "rev": "5bb5b2de83d548243fbcc77e76224882ffb4ce68",
+  "date": "2022-06-07T22:14:20+08:00",
+  "path": "/nix/store/jy8z2s9zmgxm8ziv39cqkkia52mq7mbx-tree-sitter-scheme",
+  "sha256": "1cdbzmgkz3f1zbhgps9q1zvy1hnwwj5rlr5fp4jbvbnwp13pd04a",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sql.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sql.json
new file mode 100644
index 0000000000000..d8413f75d7d58
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-sql.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/m-novikov/tree-sitter-sql",
+  "rev": "2ec2fedbb38d09737e2a1cdd207f6416dc1cb109",
+  "date": "2022-06-11T22:57:56+02:00",
+  "path": "/nix/store/zzx4b5cnsrrdzkb5rbmx5d8vzbyr0rbi-tree-sitter-sql",
+  "sha256": "0dcpdshymyszsr1dflsr3j6ynrnrq0g4qdxqcz7d0anpwh3xw4cs",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tiger.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tiger.json
new file mode 100644
index 0000000000000..209f0d9d980be
--- /dev/null
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-tiger.json
@@ -0,0 +1,11 @@
+{
+  "url": "https://github.com/ambroisie/tree-sitter-tiger",
+  "rev": "eb1d3714998977ae76ca7c6a102b10ee37efc2b5",
+  "date": "2022-06-13T13:43:12+02:00",
+  "path": "/nix/store/97jbgip2nh59zrxyhnqlmw14g25c7g89-tree-sitter-tiger",
+  "sha256": "1p1hn99lsmqlmqgv7i3yw2jsqbj5xrrnvs87wkir74y7li2h9g4i",
+  "fetchLFS": false,
+  "fetchSubmodules": false,
+  "deepClone": false,
+  "leaveDotGit": false
+}
diff --git a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
index 44477aa24d3c8..df1e810151ffd 100644
--- a/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
+++ b/pkgs/development/tools/parsing/tree-sitter/grammars/tree-sitter-typescript.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/tree-sitter/tree-sitter-typescript",
-  "rev": "8e9dba7bd7cf089838a036a98be94db53ba2d0a9",
-  "date": "2022-04-13T09:44:02-07:00",
-  "path": "/nix/store/188d0ki07nhmihrl2b868vmb9rd4hf4q-tree-sitter-typescript",
-  "sha256": "010nnihmaw1a1l9mzjd1nmrb0z6j2h3pr872dzpdq7ajg0j3j1wl",
+  "rev": "1b3ba31c7538825b05815f4f5bffcca6394edc63",
+  "date": "2022-06-02T09:10:56-07:00",
+  "path": "/nix/store/g3q8azmyclcdns0ihwl5im46qlsfxbfj-tree-sitter-typescript",
+  "sha256": "1iw6823zh2m95gjmly34j49ixga07fhax7z6g2q6px06gj4fm5df",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/development/tools/parsing/tree-sitter/update.nix b/pkgs/development/tools/parsing/tree-sitter/update.nix
index 1512f985fa427..1366f0c57f4d8 100644
--- a/pkgs/development/tools/parsing/tree-sitter/update.nix
+++ b/pkgs/development/tools/parsing/tree-sitter/update.nix
@@ -122,6 +122,10 @@ let
       orga = "MDeiml";
       repo = "tree-sitter-markdown";
     };
+    "tree-sitter-rego" = {
+      orga = "FallenAngel97";
+      repo = "tree-sitter-rego";
+    };
     "tree-sitter-rst" = {
       orga = "stsewd";
       repo = "tree-sitter-rst";
@@ -130,6 +134,10 @@ let
       orga = "Himujjal";
       repo = "tree-sitter-svelte";
     };
+    "tree-sitter-sql" = {
+      orga = "m-novikov";
+      repo = "tree-sitter-sql";
+    };
     "tree-sitter-vim" = {
       orga = "vigoux";
       repo = "tree-sitter-viml";
@@ -178,6 +186,10 @@ let
       orga = "camdencheek";
       repo = "tree-sitter-go-mod";
     };
+    "tree-sitter-gowork" = {
+      orga = "omertuc";
+      repo = "tree-sitter-go-work";
+    };
     "tree-sitter-graphql" = {
       orga = "bkegley";
       repo = "tree-sitter-graphql";
@@ -322,6 +334,10 @@ let
       orga = "6cdh";
       repo = "tree-sitter-scheme";
     };
+    "tree-sitter-tiger" = {
+      orga = "ambroisie";
+      repo = "tree-sitter-tiger";
+    };
   };
 
   allGrammars =
diff --git a/pkgs/development/tools/pip-audit/default.nix b/pkgs/development/tools/pip-audit/default.nix
index 942d87c32e20a..09c954b199b64 100644
--- a/pkgs/development/tools/pip-audit/default.nix
+++ b/pkgs/development/tools/pip-audit/default.nix
@@ -25,14 +25,14 @@ with py.pkgs;
 
 buildPythonApplication rec {
   pname = "pip-audit";
-  version = "2.3.1";
+  version = "2.3.4";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "trailofbits";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-W7g2ZV1Xf1s5sGRJiZdQcreBD6zp1/VRQPGs+VIOJE0=";
+    hash = "sha256-11lcF+ITvZmB5UKgGWJdXJE45Kh5rD98UOg9a648dKc=";
   };
 
   nativeBuildInputs = [
@@ -43,10 +43,12 @@ buildPythonApplication rec {
     cachecontrol
     cyclonedx-python-lib
     html5lib
+    lockfile
     packaging
     pip-api
     progress
     resolvelib
+    rich
   ];
 
   checkInputs = [
diff --git a/pkgs/development/tools/quick-lint-js/default.nix b/pkgs/development/tools/quick-lint-js/default.nix
index 8869d3730a559..9425a04bbcb59 100644
--- a/pkgs/development/tools/quick-lint-js/default.nix
+++ b/pkgs/development/tools/quick-lint-js/default.nix
@@ -3,13 +3,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quick-lint-js";
-  version = "2.5.0";
+  version = "2.6.0";
 
   src = fetchFromGitHub {
     owner = "quick-lint";
     repo = "quick-lint-js";
     rev = version;
-    sha256 = "0vx6fddd0y8p27znv0ah0gjigs9hkifz132vzsnfg7w4s5az4fiy";
+    sha256 = "sha256-ZZxLiZ7ptaUAUXa2HA5ICEP5Ym6221Ehfd6ufj78kXM=";
   };
 
   nativeBuildInputs = [ cmake ninja ];
diff --git a/pkgs/development/tools/rbspy/default.nix b/pkgs/development/tools/rbspy/default.nix
index beb4df0f16832..fbd97882428fa 100644
--- a/pkgs/development/tools/rbspy/default.nix
+++ b/pkgs/development/tools/rbspy/default.nix
@@ -1,18 +1,32 @@
-{ stdenv, rustPlatform, fetchFromGitHub, lib}:
+{ stdenv, rustPlatform, fetchFromGitHub, lib, ruby, which}:
 rustPlatform.buildRustPackage rec {
   pname = "rbspy";
-  version = "0.11.1";
+  version = "0.12.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9BeQHwwnirK5Wquj6Tal8yCU/NXZGaPjXZe3cy5m98s=";
+    sha256 = "FnUUX7qQWVZMHtWvneTLzBL1YYwF8v4e1913Op4Lvbw=";
   };
 
-  cargoSha256 = "sha256-DHdfv6210wAkL9vXxLr76ejFWU/eV/q3lmgsYa5Rn54=";
+  cargoSha256 = "98vmUoWSehX/9rMlHNSvKHJvJxW99pOhS08FI3OeLGo=";
   doCheck = true;
 
+  # Tests in initialize.rs rely on specific PIDs being queried and attaching
+  # tracing to forked processes, which don't work well with the isolated build.
+  preCheck = ''
+    substituteInPlace src/core/process.rs \
+      --replace /usr/bin/which '${which}/bin/which'
+    substituteInPlace src/sampler/mod.rs \
+      --replace /usr/bin/which '${which}/bin/which'
+    substituteInPlace src/core/initialize.rs \
+      --replace 'fn test_initialize_with_disallowed_process(' '#[ignore] fn test_initialize_with_disallowed_process(' \
+      --replace 'fn test_get_exec_trace(' '#[ignore] fn test_get_exec_trace(' \
+  '';
+
+  nativeBuildInputs = [ ruby which ];
+
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
     homepage = "https://rbspy.github.io/";
diff --git a/pkgs/development/tools/react-native-debugger/default.nix b/pkgs/development/tools/react-native-debugger/default.nix
index ee03e043dd86b..3bd89c2daab7a 100644
--- a/pkgs/development/tools/react-native-debugger/default.nix
+++ b/pkgs/development/tools/react-native-debugger/default.nix
@@ -75,6 +75,7 @@ in stdenv.mkDerivation rec {
 
   meta = with lib; {
     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";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix
index 30c6dee23bfbc..4df82444ecb8b 100644
--- a/pkgs/development/tools/rgp/default.nix
+++ b/pkgs/development/tools/rgp/default.nix
@@ -69,6 +69,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A tool from AMD that allows for deep inspection of GPU workloads";
     homepage = "https://gpuopen.com/rgp/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ Flakebi ];
diff --git a/pkgs/development/tools/rnix-lsp/default.nix b/pkgs/development/tools/rnix-lsp/default.nix
index ccc8e88dec8bb..a587f87b3da74 100644
--- a/pkgs/development/tools/rnix-lsp/default.nix
+++ b/pkgs/development/tools/rnix-lsp/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rnix-lsp";
-  version = "0.2.4";
+  version = "0.2.5";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = "rnix-lsp";
     rev = "v${version}";
-    sha256 = "sha256-MfD07ugYYbcRaNoLxOcH9+SPbRewNxbHJA5blCSb4EM=";
+    sha256 = "sha256-WXpj2fgduYlF4t0QEvdfV1Eft8/nFXWF2zyEBKMUEIk=";
   };
 
-  cargoSha256 = "sha256-23TJrJyfCuoOOOjZeWQnF/Ac0Xv2k6tZduuzapKvsgg=";
+  cargoSha256 = "sha256-LfbmOhZJVthsLm8lnzHvEt7Vy27y4w4wpPfrf/s3s84=";
 
   checkInputs = lib.optional (!stdenv.isDarwin) nix;
 
diff --git a/pkgs/tools/package-management/cargo-about/default.nix b/pkgs/development/tools/rust/cargo-about/default.nix
index 8b98858e823b9..8b98858e823b9 100644
--- a/pkgs/tools/package-management/cargo-about/default.nix
+++ b/pkgs/development/tools/rust/cargo-about/default.nix
diff --git a/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch b/pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch
index e084538ca924c..e084538ca924c 100644
--- a/pkgs/tools/package-management/cargo-about/zstd-pkg-config.patch
+++ b/pkgs/development/tools/rust/cargo-about/zstd-pkg-config.patch
diff --git a/pkgs/tools/package-management/cargo-audit/default.nix b/pkgs/development/tools/rust/cargo-audit/default.nix
index 982a000caa74d..982a000caa74d 100644
--- a/pkgs/tools/package-management/cargo-audit/default.nix
+++ b/pkgs/development/tools/rust/cargo-audit/default.nix
diff --git a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
index 7eef0ce66299f..107241896edc6 100644
--- a/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
+++ b/pkgs/development/tools/rust/cargo-bisect-rustc/default.nix
@@ -12,29 +12,30 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bisect-rustc";
-  version = "0.6.0";
+  version = "0.6.3";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-LEmILWVU6hbh2FmdnQVV1Ob2MQvj+/lCr1hdRoTIOkI=";
+    hash = "sha256-TRcHeA4pOzODyzkQCGkdAWy3Bt2ltrOcpCMDu6n4k3k=";
   };
 
   patches =
     let
-      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch" {
-        CC = stdenv.cc;
-        patchelf = patchelf;
-        libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
-      }
-      ''
-        export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
-        substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
-          --subst-var patchelf \
-          --subst-var dynamicLinker \
-          --subst-var libPath
-      '';
+      patchelfPatch = runCommand "0001-dynamically-patchelf-binaries.patch"
+        {
+          CC = stdenv.cc;
+          patchelf = patchelf;
+          libPath = "$ORIGIN/../lib:${lib.makeLibraryPath [ zlib ]}";
+        }
+        ''
+          export dynamicLinker=$(cat $CC/nix-support/dynamic-linker)
+          substitute ${./0001-dynamically-patchelf-binaries.patch} $out \
+            --subst-var patchelf \
+            --subst-var dynamicLinker \
+            --subst-var libPath
+        '';
     in
     lib.optionals stdenv.isLinux [ patchelfPatch ];
 
@@ -45,7 +46,7 @@ rustPlatform.buildRustPackage rec {
     Security
   ];
 
-  cargoSha256 = "Ls51DQ0yScRhpkuEInCfR45+/WeaUoG935w4BJvwSRk=";
+  cargoSha256 = "sha256-3I5V/JOxxy1+Cwkq9tuHMgHQ0eCfzAViJ4Gl+l8RHlE=";
 
   meta = with lib; {
     description = "Bisects rustc, either nightlies or CI artifacts";
diff --git a/pkgs/development/tools/rust/cargo-bloat/default.nix b/pkgs/development/tools/rust/cargo-bloat/default.nix
index 44e06696ae84c..0742b6b904fbc 100644
--- a/pkgs/development/tools/rust/cargo-bloat/default.nix
+++ b/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-bloat";
-  version = "0.11.0";
+  version = "0.11.1";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-UzMo+IqoP3GpGu7tWlrkEU1YpVLgEL7UwIU1hPmoJNg=";
+    sha256 = "sha256-lCA7C1G2xu65jn3/wzj6prWSrjQz3EqqJyMlPR/HRFs=";
   };
 
-  cargoSha256 = "sha256-w3+ypGuVRGwC94zj/OaDUUoUbBnepGHvqulY4IVIsfo=";
+  cargoSha256 = "sha256-fOenXn5gagFss9DRDXXsGxQlDqVXZ5LZcdM4WsXAyUU=";
 
   meta = with lib; {
     description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
diff --git a/pkgs/development/tools/rust/cargo-crev/default.nix b/pkgs/development/tools/rust/cargo-crev/default.nix
index 90ea165827137..0caa77e2bfd8b 100644
--- a/pkgs/development/tools/rust/cargo-crev/default.nix
+++ b/pkgs/development/tools/rust/cargo-crev/default.nix
@@ -13,16 +13,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-crev";
-  version = "0.23.1";
+  version = "0.23.2";
 
   src = fetchFromGitHub {
     owner = "crev-dev";
     repo = "cargo-crev";
     rev = "v${version}";
-    sha256 = "sha256-XzjZEVyPVn+7VrjG4QsqVBFmuGC1TWTWLEoqFcwQhaI=";
+    sha256 = "sha256-q/GbEsGQip7+wXxbVFfm9l3tdCT2o4yhWVTY1qmnEic=";
   };
 
-  cargoSha256 = "sha256-p87ZnOxaF9ytSUxp0P3QE3K1/jo7hz/N7BH1f2Lc0I0=";
+  cargoSha256 = "sha256-pqOVKLh+ovUy+rJIz0tjp56qhilZTno4t4dZyCY1r7c=";
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/development/tools/rust/cargo-deb/default.nix
index 2eb2ddd2d9843..2eb2ddd2d9843 100644
--- a/pkgs/tools/package-management/cargo-deb/default.nix
+++ b/pkgs/development/tools/rust/cargo-deb/default.nix
diff --git a/pkgs/development/tools/rust/cargo-depgraph/default.nix b/pkgs/development/tools/rust/cargo-depgraph/default.nix
index 3ec0c110a69d8..5d2d1206007e1 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.2.4";
+  version = "1.2.5";
 
   src = fetchFromSourcehut {
     owner = "~jplatte";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EbAV2VM73K0KiEKcy9kkK1TQHFQ1jRmKG3Tn9GAsWIk=";
+    sha256 = "sha256-ewlrxxHnsXBWSMPAlxTfrHj23jMiThkDSJhEsChO/sM=";
   };
 
-  cargoSha256 = "sha256-AAZlAYhl62c8nFvFtwwGniGbQqXu2vHTO4++O1VJ4LM=";
+  cargoSha256 = "sha256-Ce13vJ5zE63hHVkg/WFdz3LrASj7Xw6nqOO64uALOeQ=";
 
   meta = with lib; {
     description = "Create dependency graphs for cargo projects using `cargo metadata` and graphviz";
diff --git a/pkgs/tools/package-management/cargo-deps/default.nix b/pkgs/development/tools/rust/cargo-deps/default.nix
index b98a0d75793f3..b98a0d75793f3 100644
--- a/pkgs/tools/package-management/cargo-deps/default.nix
+++ b/pkgs/development/tools/rust/cargo-deps/default.nix
diff --git a/pkgs/tools/package-management/cargo-download/Cargo.nix b/pkgs/development/tools/rust/cargo-download/Cargo.nix
index f96a3a207df01..f96a3a207df01 100644
--- a/pkgs/tools/package-management/cargo-download/Cargo.nix
+++ b/pkgs/development/tools/rust/cargo-download/Cargo.nix
diff --git a/pkgs/tools/package-management/cargo-download/crates-io.nix b/pkgs/development/tools/rust/cargo-download/crates-io.nix
index dde192585e08a..dde192585e08a 100644
--- a/pkgs/tools/package-management/cargo-download/crates-io.nix
+++ b/pkgs/development/tools/rust/cargo-download/crates-io.nix
diff --git a/pkgs/tools/package-management/cargo-download/default.nix b/pkgs/development/tools/rust/cargo-download/default.nix
index 1cb53a4b6c8d8..1cb53a4b6c8d8 100644
--- a/pkgs/tools/package-management/cargo-download/default.nix
+++ b/pkgs/development/tools/rust/cargo-download/default.nix
diff --git a/pkgs/tools/package-management/cargo-edit/default.nix b/pkgs/development/tools/rust/cargo-edit/default.nix
index 53f7d581b346c..53f7d581b346c 100644
--- a/pkgs/tools/package-management/cargo-edit/default.nix
+++ b/pkgs/development/tools/rust/cargo-edit/default.nix
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index d448b9a88f863..ebca19b3cbb34 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-expand";
-  version = "1.0.21";
+  version = "1.0.27";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-hxG7e5JBDv79eA7IQEdU8kpvE0B69Gqc+aPdCoc6Uf4=";
+    sha256 = "sha256-lj6B+9AdKhHc71cyzp7TcHmHv3K2ZoXEzMn/d3H0bB4=";
   };
 
-  cargoSha256 = "sha256-7CMNJb/HGHPP4CIBEYK+2HC/JAce25qGI86NkSvyxos=";
+  cargoSha256 = "sha256-j14l3E+vyeyEMYN+TEsuxlEdWa2Em0B6Y2LoTot2Np8=";
 
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
diff --git a/pkgs/development/tools/cargo-flamegraph/default.nix b/pkgs/development/tools/rust/cargo-flamegraph/default.nix
index e3bbb29164f13..e3bbb29164f13 100644
--- a/pkgs/development/tools/cargo-flamegraph/default.nix
+++ b/pkgs/development/tools/rust/cargo-flamegraph/default.nix
diff --git a/pkgs/tools/package-management/cargo-graph/default.nix b/pkgs/development/tools/rust/cargo-graph/default.nix
index 37fd43a1bcf1d..37fd43a1bcf1d 100644
--- a/pkgs/tools/package-management/cargo-graph/default.nix
+++ b/pkgs/development/tools/rust/cargo-graph/default.nix
diff --git a/pkgs/development/tools/rust/cargo-insta/default.nix b/pkgs/development/tools/rust/cargo-insta/default.nix
index aa70a576d37c2..99a19d12405fe 100644
--- a/pkgs/development/tools/rust/cargo-insta/default.nix
+++ b/pkgs/development/tools/rust/cargo-insta/default.nix
@@ -2,17 +2,17 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-insta";
-  version = "1.14.0";
+  version = "1.15.0";
 
   src = fetchFromGitHub {
     owner = "mitsuhiko";
     repo = "insta";
     rev = version;
-    sha256 = "sha256-kTICdLL3paJIj779w4i7QUzhdynzyjo+YjtBorJsms4=";
+    sha256 = "sha256-IwtAd8qhG7FgnC7esipwAbSssVKIirB6GCedgNRPabo=";
   };
 
   sourceRoot = "source/cargo-insta";
-  cargoSha256 = "sha256-Hfjz3arOvRbMIvV3o60zjRB2p4JbBUFPj66OpHZdIJg=";
+  cargoSha256 = "sha256-asWf+wIOpbZx9YOw5c4prg2D6FSRCTcc5FgWY93MNII=";
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   meta = with lib; {
diff --git a/pkgs/tools/package-management/cargo-kcov/default.nix b/pkgs/development/tools/rust/cargo-kcov/default.nix
index f94c4fa5c0f00..f94c4fa5c0f00 100644
--- a/pkgs/tools/package-management/cargo-kcov/default.nix
+++ b/pkgs/development/tools/rust/cargo-kcov/default.nix
diff --git a/pkgs/tools/package-management/cargo-license/default.nix b/pkgs/development/tools/rust/cargo-license/default.nix
index 6202e297b9a9e..6202e297b9a9e 100644
--- a/pkgs/tools/package-management/cargo-license/default.nix
+++ b/pkgs/development/tools/rust/cargo-license/default.nix
diff --git a/pkgs/development/tools/rust/cargo-llvm-lines/default.nix b/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
index e523fb44bb99a..417cdd6761838 100644
--- a/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
+++ b/pkgs/development/tools/rust/cargo-llvm-lines/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-llvm-lines";
-  version = "0.4.15";
+  version = "0.4.16";
 
   src = fetchFromGitHub {
     owner = "dtolnay";
     repo = pname;
     rev = version;
-    sha256 = "sha256-pP1kMwxIrL2ADvj4AkbhqKH5vzGyQnfL7hjg3/QYIY8=";
+    sha256 = "sha256-MDRVNCfyObEaN0eNnaDBQCYQV2Y1Ck5/8zdpG4eZbaE=";
   };
 
-  cargoSha256 = "sha256-V9mD9NAG7bB8uB/pjl0XGXmJqOUm4ZrFJV7nv569XOM=";
+  cargoSha256 = "sha256-oOUidCM3Xex8bqBVJmrigHZHMdjXBNDdKaPiA/+MR7s=";
 
   meta = with lib; {
     description = "Count the number of lines of LLVM IR across all instantiations of a generic function";
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index 92439d2a572b9..59ea51406ce0b 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -13,11 +13,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.35.12";
+  version = "0.35.13";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-BBSZTbzT+8obY677Yfmf1VTwg0GtvMNY/FTlS6isJTE=";
+    sha256 = "sha256-rkE/GLFZP1C5C4s6ghbfsJY92Wu3ku27VRorU/ZGelA=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
   buildInputs = [ openssl ]
     ++ lib.optionals stdenv.isDarwin [ Security SystemConfiguration libiconv ];
 
-  cargoSha256 = "sha256-Nsm6KnL72HjqGevXwg2qYagzMG5nEFuH9DblbcUv6Qg=";
+  cargoSha256 = "sha256-GSHbs8GUHqFrBN1Op6Uh4fPzXEjSkX+a6beBQxS19K8=";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
@@ -37,6 +37,6 @@ rustPlatform.buildRustPackage rec {
     description = "A Rust task runner and build tool";
     homepage = "https://github.com/sagiegurari/cargo-make";
     license = licenses.asl20;
-    maintainers = with maintainers; [ xrelkd ma27 ];
+    maintainers = with maintainers; [ xrelkd ];
   };
 }
diff --git a/pkgs/development/tools/rust/cargo-nextest/default.nix b/pkgs/development/tools/rust/cargo-nextest/default.nix
index 6bd243ee4ef3f..8220b8a726667 100644
--- a/pkgs/development/tools/rust/cargo-nextest/default.nix
+++ b/pkgs/development/tools/rust/cargo-nextest/default.nix
@@ -1,17 +1,19 @@
-{ lib, fetchFromGitHub, rustPlatform, stdenv, libiconv }:
+{ lib, fetchFromGitHub, rustPlatform, stdenv, Security }:
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-nextest";
-  version = "0.9.16";
+  version = "0.9.22";
 
   src = fetchFromGitHub {
     owner = "nextest-rs";
     repo = "nextest";
     rev = "cargo-nextest-${version}";
-    sha256 = "sha256-XxsJSuUyw2q2kXaITWbkka8R6fx0ikoRMtw0hiySJ+M=";
+    sha256 = "sha256-so9h6bpQzGMVwXI4qGHOJGbX7hnd9tllPGJcRvtIiIU=";
   };
 
-  cargoSha256 = "sha256-aE/yKf2HIjN/yk3Euj2KaX4DPB4wFywAAHWkRQ1SWKw=";
+  cargoSha256 = "sha256-rbrJPEMOFq37U+0uL5NIqithQAdjO8J6TDwr5vdfT50=";
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
 
   cargoTestFlags = [ # TODO: investigate some more why these tests fail in nix
     "--"
diff --git a/pkgs/tools/package-management/cargo-outdated/default.nix b/pkgs/development/tools/rust/cargo-outdated/default.nix
index 2013f15d1e1a6..2013f15d1e1a6 100644
--- a/pkgs/tools/package-management/cargo-outdated/default.nix
+++ b/pkgs/development/tools/rust/cargo-outdated/default.nix
diff --git a/pkgs/tools/package-management/cargo-release/default.nix b/pkgs/development/tools/rust/cargo-release/default.nix
index 965c94742ec5e..965c94742ec5e 100644
--- a/pkgs/tools/package-management/cargo-release/default.nix
+++ b/pkgs/development/tools/rust/cargo-release/default.nix
diff --git a/pkgs/tools/package-management/cargo-update/default.nix b/pkgs/development/tools/rust/cargo-update/default.nix
index 383eeac432d9a..383eeac432d9a 100644
--- a/pkgs/tools/package-management/cargo-update/default.nix
+++ b/pkgs/development/tools/rust/cargo-update/default.nix
diff --git a/pkgs/development/tools/cargo-web/default.nix b/pkgs/development/tools/rust/cargo-web/default.nix
index 2c35e951cda13..2c35e951cda13 100644
--- a/pkgs/development/tools/cargo-web/default.nix
+++ b/pkgs/development/tools/rust/cargo-web/default.nix
diff --git a/pkgs/development/tools/rust/cbindgen/default.nix b/pkgs/development/tools/rust/cbindgen/default.nix
index 730cb31fd8e60..555ed3a080d97 100644
--- a/pkgs/development/tools/rust/cbindgen/default.nix
+++ b/pkgs/development/tools/rust/cbindgen/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-cbindgen";
-  version = "0.23.0";
+  version = "0.24.2";
 
   src = fetchFromGitHub {
     owner = "eqrion";
     repo = "cbindgen";
     rev = "v${version}";
-    hash = "sha256-yux5VpN8UqBscu5TyojlZmu4q2uz8b9Tu++eNlPUj/M=";
+    hash = "sha256-7nl2VHw4l0hUVLs4fAnmkVaxTFRe3OcUwHXMqf/cH40=";
   };
 
-  cargoSha256 = "sha256:1838dsmaqdlbd3j040bdy1fvl3z77xmcz73r11qmnqsga4yva6d7";
+  cargoSha256 = "sha256:0q99vy5k57phi80viqhkw8cyw7kglap1yf6m8n25n4knf7z9l119";
 
   buildInputs = lib.optional stdenv.isDarwin Security;
 
diff --git a/pkgs/development/tools/rust/rust-analyzer/default.nix b/pkgs/development/tools/rust/rust-analyzer/default.nix
index 861a4075990c3..ebd79b0b6539b 100644
--- a/pkgs/development/tools/rust/rust-analyzer/default.nix
+++ b/pkgs/development/tools/rust/rust-analyzer/default.nix
@@ -12,14 +12,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "rust-analyzer-unwrapped";
-  version = "2022-05-17";
-  cargoSha256 = "sha256-H0nuS56mvo5YUAUOsEnR4Cv3iFKixoHK83BcM1PFMA8=";
+  version = "2022-06-13";
+  cargoSha256 = "sha256-pNYhX6Jh/NPIVf7labyDKxk8siHFABMSsJ3ZVBWowUo=";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "rust-analyzer";
     rev = version;
-    sha256 = "sha256-vrVpgQYUuJPgK1NMb1nxlCdxjoYo40YkUbZpH2Z2mwM=";
+    sha256 = "sha256-IArOOdvfz+864Rs7fgHolfYfcjYTlvWebeEsJgnfyqI=";
   };
 
   patches = [
@@ -39,7 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   buildFeatures = lib.optional useMimalloc "mimalloc";
 
-  RUST_ANALYZER_REV = version;
+  CFG_RELEASE = version;
 
   inherit doCheck;
   preCheck = lib.optionalString doCheck ''
diff --git a/pkgs/development/tools/sauce-connect/default.nix b/pkgs/development/tools/sauce-connect/default.nix
index 64517d865cdfc..ab75664f5a4b4 100644
--- a/pkgs/development/tools/sauce-connect/default.nix
+++ b/pkgs/development/tools/sauce-connect/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     description = "A 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/";
     maintainers = with maintainers; [offline];
diff --git a/pkgs/development/tools/selenium/chromedriver/default.nix b/pkgs/development/tools/selenium/chromedriver/default.nix
index 66a73b1c1e98f..2ce075272ebb7 100644
--- a/pkgs/development/tools/selenium/chromedriver/default.nix
+++ b/pkgs/development/tools/selenium/chromedriver/default.nix
@@ -67,6 +67,7 @@ in stdenv.mkDerivation rec {
       input, JavaScript execution, and more. ChromeDriver is a standalone
       server that implements the W3C WebDriver standard.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.bsd3;
     maintainers = with maintainers; [ goibhniu marsam primeos ];
     # Note from primeos: By updating Chromium I also update Google Chrome and
diff --git a/pkgs/development/tools/spr/default.nix b/pkgs/development/tools/spr/default.nix
new file mode 100644
index 0000000000000..c19bf5b174baf
--- /dev/null
+++ b/pkgs/development/tools/spr/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, rustPlatform
+, fetchCrate
+, Security
+, stdenv
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "spr";
+  version = "1.3.2";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-6IPNA1Ivj3o+X733a8Kxh1STODS5lLZaK4lh0lxU4bo=";
+  };
+
+  cargoSha256 = "sha256-m/mHOiuaFJtiuyFr2Z3ovk/Q06vxwvUBAiz0rF4R3kU=";
+
+  buildInputs = lib.optional stdenv.isDarwin Security;
+
+  meta = with lib; {
+    description = "Submit pull requests for individual, amendable, rebaseable commits to GitHub";
+    homepage = "https://github.com/getcord/spr";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sven-of-cord ];
+  };
+}
diff --git a/pkgs/development/tools/sslmate-agent/default.nix b/pkgs/development/tools/sslmate-agent/default.nix
index ecbaeb816f007..dccc22e7fe9e1 100644
--- a/pkgs/development/tools/sslmate-agent/default.nix
+++ b/pkgs/development/tools/sslmate-agent/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Daemon for managing SSL/TLS certificates on a server";
     homepage = "https://sslmate.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
   };
diff --git a/pkgs/development/tools/tabnine/default.nix b/pkgs/development/tools/tabnine/default.nix
index 1209f371a42f4..49377bd001c6b 100644
--- a/pkgs/development/tools/tabnine/default.nix
+++ b/pkgs/development/tools/tabnine/default.nix
@@ -1,19 +1,19 @@
 { stdenv, lib, fetchurl, unzip }:
 let
   # You can check the latest version with `curl -sS https://update.tabnine.com/bundles/version`
-  version = "4.0.60";
+  version = "4.4.40";
   supportedPlatforms = {
     "x86_64-linux" = {
       name = "x86_64-unknown-linux-musl";
-      sha256 = "sha256-v5UxRMDDQxpqIKMe9mYMXcpWiacdXzFfaQ6bgab/WmQ=";
+      sha256 = "sha256-goPPGU4oZWBD/C15rbbX5YMqua16A4MdLhBoC4JxaCI=";
     };
     "x86_64-darwin" = {
       name = "x86_64-apple-darwin";
-      sha256 = "sha256-vFMMzMatuu1TY6dnBXycv0HxvkOj4Axfx8p0VW0hOic=";
+      sha256 = "sha256-CgYHQ91U6K3+kMyOSSia2B7IncR5u0eq9h3EZiBsRdU=";
     };
     "aarch64-darwin" = {
       name = "aarch64-apple-darwin";
-      sha256 = "sha256-DUeDQLtvSY7W2nG60UunluCSO0ijJP2CYxpRIZA4LTE=";
+      sha256 = "sha256-JwX3TdKYmLQO3mWb15Ds/60VAAurGxqfJlMCQqy2pxg=";
     };
   };
   platform =
diff --git a/pkgs/development/tools/tfplugindocs/default.nix b/pkgs/development/tools/tfplugindocs/default.nix
new file mode 100644
index 0000000000000..8308092d33693
--- /dev/null
+++ b/pkgs/development/tools/tfplugindocs/default.nix
@@ -0,0 +1,22 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+
+buildGoModule rec {
+  pname = "tfplugindocs";
+  version = "0.9.0";
+
+  src = fetchFromGitHub {
+    owner = "hashicorp";
+    repo = "terraform-plugin-docs";
+    rev = "v${version}";
+    sha256 = "sha256-1grwbi/nG0d2NwEE/eOeo1+0uGpZ1BRJdubyLwhvKfU=";
+  };
+
+  vendorSha256 = "sha256-VhnPRBVlvR/Xh7wkX7qx0m5s+yBOCJQE1zcAe8//lNw=";
+
+  meta = with lib; {
+    description = "Generate and validate Terraform plugin/provider documentation";
+    homepage = "https://github.com/hashicorp/terraform-plugin-docs";
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ lewo ];
+  };
+}
diff --git a/pkgs/development/tools/thrust/default.nix b/pkgs/development/tools/thrust/default.nix
index 9770a384e1831..5e7b90641704a 100644
--- a/pkgs/development/tools/thrust/default.nix
+++ b/pkgs/development/tools/thrust/default.nix
@@ -39,6 +39,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Chromium-based cross-platform / cross-language application framework";
     homepage = "https://github.com/breach/thrust";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     maintainers = [ maintainers.osener ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/development/tools/tradcpp/default.nix b/pkgs/development/tools/tradcpp/default.nix
index c184cee91ca51..7d2606eba84e9 100644
--- a/pkgs/development/tools/tradcpp/default.nix
+++ b/pkgs/development/tools/tradcpp/default.nix
@@ -9,8 +9,9 @@ stdenv.mkDerivation rec {
     sha256 = "1h2bwxwc13rz3g2236l89hm47f72hn3m4h7wjir3j532kq0m68bc";
   };
 
+  strictDeps = true;
   # tradcpp only comes with BSD-make Makefile; the patch adds configure support
-  buildInputs = [ autoconf ];
+  nativeBuildInputs = [ autoconf ];
   preConfigure = "autoconf";
   patches = [
     ./tradcpp-configure.patch
diff --git a/pkgs/development/tools/typos/default.nix b/pkgs/development/tools/typos/default.nix
index 23b6f535fc363..ee5c636509af0 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.5.0";
+  version = "1.10.1";
 
   src = fetchFromGitHub {
     owner = "crate-ci";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-It112+60ze+5rvq3TYlIU+X4lJ4pgdCO7Gb1ADArDvY=";
+    hash = "sha256-CdmzGqqzMvLYAXJ2hpjoOQ8FA53PzGspWdjTFWlshYI=";
   };
 
-  cargoSha256 = "sha256-yiy1xLxCdjIzqXUlkxWoOZ7cPZzJgDuTUvNHpnnTnwE=";
+  cargoHash = "sha256-X41CSz52S2M4rUsX/GiDGoBpZgUS8UNPvHg7rxbsG0k=";
 
   meta = with lib; {
     description = "Source code spell checker";
diff --git a/pkgs/development/tools/unity3d/default.nix b/pkgs/development/tools/unity3d/default.nix
deleted file mode 100644
index 5470c45b138a1..0000000000000
--- a/pkgs/development/tools/unity3d/default.nix
+++ /dev/null
@@ -1,143 +0,0 @@
-{ stdenv, lib, fetchurl, makeWrapper, file, getopt
-, gtk2, gtk3, gdk-pixbuf, glib, libGL, libGLU, nss, nspr, udev, tbb
-, alsa-lib, GConf, cups, libcap, fontconfig, freetype, pango
-, cairo, dbus, expat, zlib, libpng12, nodejs, gnutar, gcc, gcc_32bit
-, libX11, libXcursor, libXdamage, libXfixes, libXrender, libXi
-, libXcomposite, libXext, libXrandr, libXtst, libSM, libICE, libxcb, chromium
-, libpqxx, libselinux, pciutils, libpulseaudio
-}:
-
-let
-  libPath64 = lib.makeLibraryPath [
-    gcc.cc gtk2 gdk-pixbuf glib libGL libGLU nss nspr
-    alsa-lib GConf cups libcap fontconfig freetype pango
-    cairo dbus expat zlib libpng12 udev tbb
-    libX11 libXcursor libXdamage libXfixes libXrender libXi
-    libXcomposite libXext libXrandr libXtst libSM libICE libxcb
-    libpqxx gtk3
-
-    libselinux pciutils libpulseaudio
-  ];
-  libPath32 = lib.makeLibraryPath [ gcc_32bit.cc ];
-  binPath = lib.makeBinPath [ nodejs gnutar ];
-
-  ver = "2018.3.0";
-  build = "f2";
-
-in stdenv.mkDerivation {
-  pname = "unity-editor";
-  version = "${ver}x${build}";
-
-  src = fetchurl {
-    url = "https://beta.unity3d.com/download/6e9a27477296/LinuxEditorInstaller/Unity.tar.xz";
-    sha256 = "10gppnqacs1qzahj077nkcgbfz2lryd0dxnfcmvyc64xpxnj9nlk";
-  };
-
-  nosuidLib = ./unity-nosuid.c;
-
-  nativeBuildInputs = [ makeWrapper file getopt ];
-
-  outputs = [ "out" ];
-
-  sourceRoot = ".";
-
-  buildPhase = ''
-    cd Editor
-
-    $CC -fPIC -shared -o libunity-nosuid.so $nosuidLib -ldl
-    strip libunity-nosuid.so
-
-    cd ..
-  '';
-
-  installPhase = ''
-    unitydir="$out/opt/Unity/Editor"
-    mkdir -p $unitydir
-    mv Editor/* $unitydir
-    ln -sf /run/wrappers/bin/${chromium.sandboxExecutableName} $unitydir/chrome-sandbox
-
-    mkdir -p $out/bin
-    makeWrapper $unitydir/Unity $out/bin/unity-editor \
-      --prefix LD_LIBRARY_PATH : "${libPath64}" \
-      --prefix LD_PRELOAD : "$unitydir/libunity-nosuid.so" \
-      --prefix PATH : "${binPath}"
-  '';
-
-  preFixup = ''
-    patchFile() {
-      ftype="$(file -b "$1")"
-      if [[ "$ftype" =~ LSB\ .*dynamically\ linked ]]; then
-        if [[ "$ftype" =~ 32-bit ]]; then
-          rpath="${libPath32}"
-          intp="$(cat $NIX_CC/nix-support/dynamic-linker-m32)"
-        else
-          rpath="${libPath64}"
-          intp="$(cat $NIX_CC/nix-support/dynamic-linker)"
-        fi
-
-        # Save origin-relative parts of rpath.
-        originRpath="$(patchelf --print-rpath "$1" | sed "s/:/\n/g" | grep "^\$ORIGIN" | paste -sd ":" - || echo "")"
-        rpath="$originRpath:$rpath"
-
-        patchelf --set-rpath "$rpath" "$1"
-        patchelf --set-interpreter "$intp" "$1" 2> /dev/null || true
-      fi
-    }
-
-    upm_linux=$unitydir/Data/Resources/PackageManager/Server/UnityPackageManager
-
-
-    orig_size=$(stat --printf=%s $upm_linux)
-
-    # Exclude PlaybackEngines to build something that can be run on FHS-compliant Linuxes
-    find $unitydir -name PlaybackEngines -prune -o -type f -print | while read path; do
-      patchFile "$path"
-    done
-
-    new_size=$(stat --printf=%s $upm_linux)
-
-    ###### zeit-pkg fixing starts here.
-    # we're replacing plaintext js code that looks like
-    # PAYLOAD_POSITION = '1234                  ' | 0
-    # [...]
-    # PRELUDE_POSITION = '1234                  ' | 0
-    # ^-----20-chars-----^^------22-chars------^
-    # ^-- grep points here
-    #
-    # var_* are as described above
-    # shift_by seems to be safe so long as all patchelf adjustments occur
-    # before any locations pointed to by hardcoded offsets
-
-    var_skip=20
-    var_select=22
-    shift_by=$(expr $new_size - $orig_size)
-
-    function fix_offset {
-      # $1 = name of variable to adjust
-      location=$(grep -obUam1 "$1" $upm_linux | cut -d: -f1)
-      location=$(expr $location + $var_skip)
-      value=$(dd if=$upm_linux iflag=count_bytes,skip_bytes skip=$location \
-                 bs=1 count=$var_select status=none)
-      value=$(expr $shift_by + $value)
-      echo -n $value | dd of=$upm_linux bs=1 seek=$location conv=notrunc
-    }
-
-    fix_offset PAYLOAD_POSITION
-    fix_offset PRELUDE_POSITION
-  '';
-
-  dontStrip = true;
-  dontPatchELF = true;
-
-  meta = with lib; {
-    homepage = "https://unity3d.com/";
-    description = "Game development tool";
-    longDescription = ''
-      Popular development platform for creating 2D and 3D multiplatform games
-      and interactive experiences.
-    '';
-    license = licenses.unfree;
-    platforms = [ "x86_64-linux" ];
-    maintainers = with maintainers; [ tesq0 ];
-  };
-}
diff --git a/pkgs/development/tools/unity3d/unity-nosuid.c b/pkgs/development/tools/unity3d/unity-nosuid.c
deleted file mode 100644
index 26a923ab03943..0000000000000
--- a/pkgs/development/tools/unity3d/unity-nosuid.c
+++ /dev/null
@@ -1,32 +0,0 @@
-#define _GNU_SOURCE
-
-#include <stdio.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <dlfcn.h>
-
-static const char sandbox_path[] = "/chrome-sandbox";
-
-int __xstat(int ver, const char* path, struct stat* stat_buf) {
-  static int (*original_xstat)(int, const char*, struct stat*) = NULL;
-  if (original_xstat == NULL) {
-    int (*fun)(int, const char*, struct stat*) = dlsym(RTLD_NEXT, "__xstat");
-    if (fun == NULL) {
-      return -1;
-    };
-    original_xstat = fun;
-  };
-
-  int res = (*original_xstat)(ver, path, stat_buf);
-  if (res == 0) {
-    char* pos = strstr(path, sandbox_path);
-    if (pos != NULL && *(pos + sizeof(sandbox_path) - 1) == '\0') {
-      printf("Lying about chrome-sandbox access rights...\n");
-      stat_buf->st_uid = 0;
-      stat_buf->st_gid = 0;
-      stat_buf->st_mode = 0104755;
-    };
-  }
-  return res;
-}
diff --git a/pkgs/development/tools/vultr/default.nix b/pkgs/development/tools/vultr/default.nix
index 2f1d6618d3fee..8a584ce669cbf 100644
--- a/pkgs/development/tools/vultr/default.nix
+++ b/pkgs/development/tools/vultr/default.nix
@@ -1,9 +1,11 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vultr";
   version = "2.0.3";
-  goPackagePath = "github.com/JamesClonk/vultr";
 
   src = fetchFromGitHub {
     owner = "JamesClonk";
@@ -12,10 +14,16 @@ buildGoPackage rec {
     sha256 = "sha256-kyB6gUbc32NsSDqDy1zVT4HXn0pWxHdBOEBOSaI0Xro=";
   };
 
-  meta = {
-    description = "A command line tool for Vultr services, a provider for cloud virtual private servers";
-    homepage = "https://github.com/JamesClonk/vultr";
-    license = lib.licenses.mit;
-    maintainers = [ lib.maintainers.zauberpony ];
+  vendorSha256 = null;
+
+  # There are not test files
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Vultr CLI and API client library";
+    homepage = "https://jamesclonk.github.io/vultr";
+    changelog = "https://github.com/JamesClonk/vultr/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ zauberpony ];
   };
 }
diff --git a/pkgs/development/tools/wasm-bindgen-cli/default.nix b/pkgs/development/tools/wasm-bindgen-cli/default.nix
index e239de15b24f3..14e140229dfd7 100644
--- a/pkgs/development/tools/wasm-bindgen-cli/default.nix
+++ b/pkgs/development/tools/wasm-bindgen-cli/default.nix
@@ -34,7 +34,7 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://rustwasm.github.io/docs/wasm-bindgen/";
     license = with licenses; [ asl20 /* or */ mit ];
     description = "Facilitating high-level interactions between wasm modules and JavaScript";
-    maintainers = with maintainers; [ ma27 nitsky rizary ];
+    maintainers = with maintainers; [ nitsky rizary ];
     mainProgram = "wasm-bindgen";
   };
 }
diff --git a/pkgs/development/tools/yq-go/default.nix b/pkgs/development/tools/yq-go/default.nix
index 71135ede5b222..7725c7d6e8099 100644
--- a/pkgs/development/tools/yq-go/default.nix
+++ b/pkgs/development/tools/yq-go/default.nix
@@ -2,24 +2,24 @@
 
 buildGoModule rec {
   pname = "yq-go";
-  version = "4.25.2";
+  version = "4.25.3";
 
   src = fetchFromGitHub {
     owner = "mikefarah";
     repo = "yq";
     rev = "v${version}";
-    sha256 = "sha256-yvFh1wPOsmQLGTLrMG7dwcEukFpelP183Xa2n2XiHlQ=";
+    sha256 = "sha256-136qmLHPBWPGiyIckSO9y3zpDxikGVy6w/f4UxWpvrw=";
   };
 
-  vendorSha256 = "sha256-oUpHK6YKjKWTGL2yC1q2hK/K/gK8I+FwTVshTxHBOKI=";
+  vendorSha256 = "sha256-pPZ5pR4RHzrb7k8akrBarUv7CHMCw+T4hfFJNGTrn8Y=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   postInstall = ''
-    for shell in bash fish zsh; do
-      $out/bin/yq shell-completion $shell > yq.$shell
-      installShellCompletion yq.$shell
-    done
+    installShellCompletion --cmd yq \
+      --bash <($out/bin/yq shell-completion bash) \
+      --fish <($out/bin/yq shell-completion fish) \
+      --zsh <($out/bin/yq shell-completion zsh)
   '';
 
   passthru.tests = {
@@ -32,8 +32,8 @@ buildGoModule rec {
   meta = with lib; {
     description = "Portable command-line YAML processor";
     homepage = "https://mikefarah.gitbook.io/yq/";
-    license = [ licenses.mit ];
-    maintainers = [ maintainers.lewo ];
     mainProgram = "yq";
+    license = [ licenses.mit ];
+    maintainers = with maintainers; [ lewo SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix
index b85a1f06b2bcd..6601820b219ee 100644
--- a/pkgs/development/web/cypress/default.nix
+++ b/pkgs/development/web/cypress/default.nix
@@ -16,11 +16,11 @@
 
 stdenv.mkDerivation rec {
   pname = "cypress";
-  version = "9.6.0";
+  version = "10.0.3";
 
   src = fetchzip {
     url = "https://cdn.cypress.io/desktop/${version}/linux-x64/cypress.zip";
-    sha256 = "Mac6lmwQqbj9EPfpG0iLI8Qx04q7E0swmTqXx0J+Sdc=";
+    sha256 = "0lz9rf58dzn18yxs337sw3fia0xif039dmlmslxhlhn48g9yj67z";
   };
 
   # don't remove runtime deps
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Fast, easy and reliable testing for anything that runs in a browser";
     homepage = "https://www.cypress.io";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ tweber mmahut ];
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index c8d5cc2cac3c9..c433e2dfa671a 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -16,15 +16,15 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.22.3";
+  version = "1.23.1";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ode/kbf2aHgSh+k7ZK0aoVqUTPzfLtWkSF2saP/DG0k=";
+    sha256 = "sha256-Z9dZrhH+zlYNuhFs+aicuepnUTSOfIHdLaz9sJp0LCA=";
   };
-  cargoSha256 = "sha256-YNJbT+88YDWDv/ydz9sZQ/QddjB+ggK57/6LzKN+zNE=";
+  cargoSha256 = "sha256-VIpy5vRZinFvFhyyKQwi5ThrBNwqGy1TVg5tAoxxJyQ=";
 
   postPatch = ''
     # upstream uses lld on aarch64-darwin for faster builds
diff --git a/pkgs/development/web/deno/librusty_v8.nix b/pkgs/development/web/deno/librusty_v8.nix
index 9011ee18046fc..793bc9cb19493 100644
--- a/pkgs/development/web/deno/librusty_v8.nix
+++ b/pkgs/development/web/deno/librusty_v8.nix
@@ -11,11 +11,11 @@ let
   };
 in
 fetch_librusty_v8 {
-  version = "0.43.1";
+  version = "0.44.2";
   shas = {
-    x86_64-linux = "sha256-xsKV3/MXwQExON5Bq1qRUShPV0wXEtUHB/DTVjVyWfQ=";
-    aarch64-linux = "sha256-wBtpDG4GxSR4jeAZjclNqVDankWBmxf0cH0LKM4smjM=";
-    x86_64-darwin = "sha256-BGrbwRoPUcSIW4Q3PF8p6vjkTKGLISBxLjOXDWcSjag=";
-    aarch64-darwin = "sha256-4OyQPQPIQ94TanY1hxRTdcWZi5didvyLupLfQ516YL4=";
+    x86_64-linux = "sha256-I1ad9a9FtJGGGW7Odc8HfysQyCEAb8xoEYmYti0pEkE=";
+    aarch64-linux = "sha256-KHjVMI9qiJ6q3D6t6iUKxbp1qthHSSl+2AfvL3Hvk6I=";
+    x86_64-darwin = "sha256-UO1NRpbCA5MtqeRLTGM3FIWdX/ECDW/JG52U756FIv8=";
+    aarch64-darwin = "sha256-FqakcG050m52/F6nWlS7VeW0r+77CCIzG1qvBP3Naik=";
   };
 }
diff --git a/pkgs/development/web/flyctl/default.nix b/pkgs/development/web/flyctl/default.nix
index 4a2ed0a33f4e4..c9d36dd679ade 100644
--- a/pkgs/development/web/flyctl/default.nix
+++ b/pkgs/development/web/flyctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "flyctl";
-  version = "0.0.330";
+  version = "0.0.335";
 
   src = fetchFromGitHub {
     owner = "superfly";
     repo = "flyctl";
     rev = "v${version}";
-    sha256 = "sha256-lgyr2NgurOZPqJv8ZUD8ut7ELxMZqLZ+rXYTjZauv8Y=";
+    sha256 = "sha256-da7fKtByg3zwtRmsObs5SV6E9bVBe9KyVzn1eE3PcV8=";
   };
 
-  vendorSha256 = "sha256-T1E2VJiaGKhk/rDVKYEju3AyDPEUMGFNvj/KrMjLKEc=";
+  vendorSha256 = "sha256-Hn4uB9HYHVS3p9zBpOzOiyTHMmjN8YmVxHZAj1V7y2I=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/development/web/insomnia/default.nix b/pkgs/development/web/insomnia/default.nix
index c93be3155ac1d..4aaae27014515 100644
--- a/pkgs/development/web/insomnia/default.nix
+++ b/pkgs/development/web/insomnia/default.nix
@@ -87,6 +87,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://insomnia.rest/";
     description = "The most intuitive cross-platform REST API Client";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ markus1189 babariviere ];
diff --git a/pkgs/development/web/nodejs/v18.nix b/pkgs/development/web/nodejs/v18.nix
index 6acf2e3cbe703..a2c10d1b96b21 100644
--- a/pkgs/development/web/nodejs/v18.nix
+++ b/pkgs/development/web/nodejs/v18.nix
@@ -7,8 +7,8 @@ let
 in
 buildNodejs {
   inherit enableNpm;
-  version = "18.3.0";
-  sha256 = "sha256-P2lKgWJuUFfNpXiY53HSE8/FpkmFX0zxxvbNFQxTBiU=";
+  version = "18.4.0";
+  sha256 = "sha256-lNbxmpcDYfjIrRdFBgQJU4n1HKagDc3lnCHzc+lau7U=";
   patches = [
     ./disable-darwin-v8-system-instrumentation.patch
   ];
diff --git a/pkgs/development/web/postman/default.nix b/pkgs/development/web/postman/default.nix
index e687a157b87e3..a5d3676e439b4 100644
--- a/pkgs/development/web/postman/default.nix
+++ b/pkgs/development/web/postman/default.nix
@@ -6,6 +6,7 @@ let
   meta = with lib; {
     homepage = "https://www.getpostman.com";
     description = "API Development Environment";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.postman;
     platforms = [ "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
     maintainers = with maintainers; [ johnrichardrinehart evanjs tricktron ];
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 4cf335a613784..4ca92961bafd5 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -166,6 +166,7 @@ let
         version 1.0 in mid 2020.
       '';
       homepage = "https://www.factorio.com/";
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       license = lib.licenses.unfree;
       maintainers = with lib.maintainers; [ Baughn elitak erictapen priegger lukegb ];
       platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/ferium/default.nix b/pkgs/games/ferium/default.nix
new file mode 100644
index 0000000000000..b542ae3451e74
--- /dev/null
+++ b/pkgs/games/ferium/default.nix
@@ -0,0 +1,28 @@
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "ferium";
+  version = "4.1.1";
+
+  src = fetchFromGitHub {
+    owner = "gorilla-devs";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "5DYdeK6JdA7oLBkjP3WkwLwlBitdf4Yt2dNP7P0INN0=";
+  };
+
+  buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+
+  cargoSha256 = "7rpxHfe+pWarPJ72WSXjgr63YctZ5+RrsEgmw7o66VI=";
+
+  buildNoDefaultFeatures = true; # by default pulls in GTK 3 just for its directory picker
+
+  doCheck = false; # requires internet
+
+  meta = with lib; {
+    description = "A CLI Minecraft mod manager for mods from Modrinth, CurseForge, and Github Releases";
+    homepage = "https://github.com/theRookieCoder/ferium";
+    license = licenses.mpl20;
+    maintainers = [ maintainers.leo60228 ];
+  };
+}
diff --git a/pkgs/games/fheroes2/default.nix b/pkgs/games/fheroes2/default.nix
index 2125a0ec8156d..26217015fe9df 100644
--- a/pkgs/games/fheroes2/default.nix
+++ b/pkgs/games/fheroes2/default.nix
@@ -7,13 +7,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fheroes2";
-  version = "0.9.15";
+  version = "0.9.16";
 
   src = fetchFromGitHub {
     owner = "ihhub";
     repo = "fheroes2";
     rev = version;
-    sha256 = "sha256-bT6asrre16NuavG7X28aHdEPeHdxMBdz2o2KCB+mrbg=";
+    sha256 = "sha256-avN7InwC6YOWSRjV15HOKdAU8azZiFUfT6JjwfDAdCs=";
   };
 
   buildInputs = [ gettext libpng SDL2 SDL2_image SDL2_mixer SDL2_ttf zlib ];
diff --git a/pkgs/games/freeciv/default.nix b/pkgs/games/freeciv/default.nix
index f5c1ff0ea3f49..e3057d59cd43a 100644
--- a/pkgs/games/freeciv/default.nix
+++ b/pkgs/games/freeciv/default.nix
@@ -1,7 +1,8 @@
 { lib, stdenv, fetchFromGitHub, autoreconfHook, lua5_3, pkg-config, python3
-, zlib, bzip2, curl, xz, gettext, libiconv
-, sdlClient ? true, SDL, SDL_mixer, SDL_image, SDL_ttf, SDL_gfx, freetype, fluidsynth
-, gtkClient ? false, gtk3, wrapGAppsHook
+, zlib, bzip2, curl, xz, gettext, libiconv, icu
+, SDL2, SDL2_mixer, SDL2_image, SDL2_ttf, SDL2_gfx, freetype, fluidsynth
+, sdl2Client ? false
+, gtkClient ? true, gtk3, wrapGAppsHook
 , qtClient ? false, qt5
 , server ? true, readline
 , enableSqlite ? true, sqlite
@@ -9,13 +10,13 @@
 
 stdenv.mkDerivation rec {
   pname = "freeciv";
-  version = "2.6.6";
+  version = "3.0.2";
 
   src = fetchFromGitHub {
     owner = "freeciv";
     repo = "freeciv";
     rev = "R${lib.replaceStrings [ "." ] [ "_" ] version}";
-    sha256 = "sha256-D5t6sMpm09jbixs5MCghBeDbeuRbGmrrfWR91VNolRM=";
+    sha256 = "sha256-1QGARXIfb97aLxQ5TZ6Fjznlniznnyuc2ugiW/Drf9g=";
   };
 
   postPatch = ''
@@ -29,8 +30,8 @@ stdenv.mkDerivation rec {
     ++ lib.optional qtClient [ qt5.wrapQtAppsHook ]
     ++ lib.optional gtkClient [ wrapGAppsHook ];
 
-  buildInputs = [ lua5_3 zlib bzip2 curl xz gettext libiconv ]
-    ++ lib.optionals sdlClient [ SDL SDL_mixer SDL_image SDL_ttf SDL_gfx freetype fluidsynth ]
+  buildInputs = [ lua5_3 zlib bzip2 curl xz gettext libiconv icu ]
+    ++ [ SDL2 SDL2_mixer SDL2_image SDL2_ttf SDL2_gfx freetype fluidsynth ]
     ++ lib.optionals gtkClient [ gtk3 ]
     ++ lib.optionals qtClient  [ qt5.qtbase ]
     ++ lib.optional server readline
@@ -39,8 +40,16 @@ stdenv.mkDerivation rec {
   dontWrapQtApps = true;
   dontWrapGApps = true;
 
+  # configure is not smart enough to look for SDL2 headers under
+  # .../SDL2, but thankfully $SDL2_PATH is almost exactly what we want
+  preConfigure = ''
+    export CPPFLAGS="$(echo $SDL2_PATH | sed 's#/nix/store/#-I/nix/store/#g')"
+  '';
   configureFlags = [ "--enable-shared" ]
-    ++ lib.optional sdlClient "--enable-client=sdl"
+    ++ lib.optionals sdl2Client [
+      "--enable-client=sdl2"
+      "--enable-sdl-mixer=sdl2"
+    ]
     ++ lib.optionals qtClient [
       "--enable-client=qt"
       "--with-qt5-includes=${qt5.qtbase.dev}/include"
diff --git a/pkgs/games/gamehub/default.nix b/pkgs/games/gamehub/default.nix
new file mode 100644
index 0000000000000..87796d58c732b
--- /dev/null
+++ b/pkgs/games/gamehub/default.nix
@@ -0,0 +1,67 @@
+{ stdenv
+, lib
+, fetchFromGitHub
+, meson
+, ninja
+, vala
+, pkg-config
+, desktop-file-utils
+, glib
+, gtk3
+, glib-networking
+, libgee
+, libsoup
+, json-glib
+, sqlite
+, webkitgtk
+, libmanette
+, libXtst
+, wrapGAppsHook
+}:
+
+stdenv.mkDerivation rec {
+  pname = "GameHub";
+  version = "0.16.3-2";
+
+  src = fetchFromGitHub {
+    owner = "tkashkin";
+    repo = pname;
+    rev = "${version}-master";
+    hash = "sha256-dBGzXwDO9BvnEIcdfqlGnMzUdBqaVA96Ds0fY6eukes=";
+  };
+
+  nativeBuildInputs = [
+    desktop-file-utils
+    meson
+    ninja
+    pkg-config
+    vala
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    glib
+    glib-networking
+    gtk3
+    json-glib
+    libgee
+    libmanette
+    libsoup
+    libXtst
+    sqlite
+    webkitgtk
+  ];
+
+  meta = with lib; {
+    homepage = "https://tkashkin.github.io/projects/gamehub";
+    description = "Unified library for all your games";
+    longDescription = ''
+      GameHub is a unified library for all your games. It allows you to store
+      your games from different platforms into one program to make it easier
+      for you to manage your games.
+    '';
+    maintainers = with maintainers; [ pasqui23 ];
+    license = with licenses; [ gpl3Only ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/games/garden-of-coloured-lights/default.nix b/pkgs/games/garden-of-coloured-lights/default.nix
index 9e842acfa9a50..9f9e85905a0a9 100644
--- a/pkgs/games/garden-of-coloured-lights/default.nix
+++ b/pkgs/games/garden-of-coloured-lights/default.nix
@@ -18,6 +18,11 @@ stdenv.mkDerivation rec {
     sha256 = "1qsj4d7r22m5f9f5f6cyvam1y5q5pbqvy5058r7w0k4s48n77y6s";
   };
 
+  # Workaround build failure on -fno-common toolchains:
+  #   ld: main.o:src/main.c:58: multiple definition of
+  #     `eclass'; eclass.o:src/eclass.c:21: first defined here
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   meta = with lib; {
     description = "Old-school vertical shoot-em-up / bullet hell";
     homepage = "http://garden.sourceforge.net/drupal/";
diff --git a/pkgs/games/gcompris/default.nix b/pkgs/games/gcompris/default.nix
index 5343bae4a6cb2..99ee63ed057fc 100644
--- a/pkgs/games/gcompris/default.nix
+++ b/pkgs/games/gcompris/default.nix
@@ -18,11 +18,11 @@
 
 mkDerivation rec {
   pname = "gcompris";
-  version = "2.3";
+  version = "2.4";
 
   src = fetchurl {
     url = "https://download.kde.org/stable/gcompris/qt/src/gcompris-qt-${version}.tar.xz";
-    sha256 = "sha256-UgWLp5IVqbeFFCO/PRFJ/X1sPm7nSkagVcgEp5SdzGI=";
+    sha256 = "sha256-/QZub48rarVHcD0PgOPc6NTlOKrsEzVK/qjHb5CjWS0=";
   };
 
   cmakeFlags = [
diff --git a/pkgs/games/gnonograms/default.nix b/pkgs/games/gnonograms/default.nix
index 21f522d3418f9..2446384ff719a 100644
--- a/pkgs/games/gnonograms/default.nix
+++ b/pkgs/games/gnonograms/default.nix
@@ -1,7 +1,6 @@
 { lib
 , stdenv
 , fetchFromGitHub
-, fetchpatch
 , vala
 , meson
 , ninja
@@ -19,24 +18,15 @@
 
 stdenv.mkDerivation rec {
   pname = "gnonograms";
-  version = "2.0.0";
+  version = "2.1.2";
 
   src = fetchFromGitHub {
     owner = "jeremypw";
     repo = "gnonograms";
     rev = "v${version}";
-    sha256 = "sha256-2uXaybpCAm9cr0o7bqfhgD7mMNPwtv1X/PgnFnSDOl0=";
+    sha256 = "sha256-TkEVjrwlr4Q5FsfcdY+9fxwaMq+DFs0RwGI2E+GT5Mk=";
   };
 
-  patches = [
-    # Fix build with meson 0.61, can be removed on next release
-    # https://github.com/jeremypw/gnonograms/pull/45
-    (fetchpatch {
-      url = "https://github.com/jeremypw/gnonograms/commit/0e90d8ff42d64a94002ec8500889bc4d7e06c1b6.patch";
-      sha256 = "sha256-G/yqsZFmOA69A3E2CROMYAS5vmok/K5l1S/M2m8DMh4=";
-    })
-  ];
-
   postPatch = ''
     patchShebangs meson/post_install.py
   '';
diff --git a/pkgs/games/graphwar/default.nix b/pkgs/games/graphwar/default.nix
new file mode 100644
index 0000000000000..3586979292e6c
--- /dev/null
+++ b/pkgs/games/graphwar/default.nix
@@ -0,0 +1,66 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, copyDesktopItems
+, jdk
+, makeDesktopItem
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+  pname = "graphwar";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "catabriga";
+    repo = "graphwar";
+    rev = version;
+    sha256 = "sha256-t3Y576dXWp2Mj6OSQN5cm9FuNBWNqKq6xxkVRbjIBgE=";
+  };
+
+  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
+  buildInputs = [ jdk ];
+
+  buildPhase = ''
+    runHook preBuild
+
+    mkdir -p out/
+    javac -d out/ -sourcepath src/ -classpath out/ -encoding utf8 src/**/*.java
+
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/lib/
+    mv out $out/lib/graphwar
+    cp -r rsc $out/lib/graphwar/rsc
+
+    makeWrapper ${jdk}/bin/java $out/bin/graphwar \
+      --add-flags "-classpath $out/lib/graphwar Graphwar.Graphwar"
+    makeWrapper ${jdk}/bin/java $out/bin/graphwar-roomserver \
+      --add-flags "-classpath $out/lib/graphwar RoomServer.RoomServer"
+    makeWrapper ${jdk}/bin/java $out/bin/graphwar-globalserver \
+      --add-flags "-classpath $out/lib/graphwar GlobalServer.GlobalServer"
+
+    runHook postInstall
+  '';
+
+  desktopItems = [
+    (makeDesktopItem {
+      name = "graphwar";
+      exec = "graphwar";
+      desktopName = "Graphwar";
+      categories = [ "Game" ];
+    })
+  ];
+
+  meta = with lib; {
+    homepage = "http://www.graphwar.com/";
+    description = "An 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/infra-arcana/default.nix b/pkgs/games/infra-arcana/default.nix
new file mode 100644
index 0000000000000..e48c69a2cf333
--- /dev/null
+++ b/pkgs/games/infra-arcana/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, cmake
+, makeWrapper
+, SDL2
+, SDL2_image
+, SDL2_mixer
+}:
+
+stdenv.mkDerivation rec {
+  pname = "infra-arcana";
+  version = "21.0.1";
+
+  src = fetchFromGitLab {
+    owner = "martin-tornqvist";
+    repo = "ia";
+    rev = "v${version}";
+    sha256 = "sha256-E2ssxdYa27qRk5cCmM7A5VqXGExwXHblR34y+rOUBRI=";
+  };
+
+  nativeBuildInputs = [ cmake makeWrapper ];
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer ];
+
+  # Some parts of the game don't compile with glibc 2.34. As soon as
+  # this is fixed upstream we can switch to the default build flags.
+  buildFlags = [ "ia" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/{opt/ia,bin}
+
+    # Remove build artifacts
+    rm -rf CMake* cmake* compile_commands.json CTest* Makefile
+    cp -ra * $out/opt/ia
+
+    # Uses relative paths when looking for assets
+    wrapProgram $out/opt/ia/ia --run "cd $out/opt/ia"
+    ln -s $out/opt/ia/ia $out/bin/infra-arcana
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://sites.google.com/site/infraarcana";
+    description = "A Lovecraftian single-player roguelike game";
+    longDescription = ''
+      Infra Arcana is a Roguelike set in the early 20th century. The goal is to
+      explore the lair of a dreaded cult called The Church of Starry Wisdom.
+
+      Buried deep beneath their hallowed grounds lies an artifact called The
+      Shining Trapezohedron - a window to all secrets of the universe. Your
+      ultimate goal is to unearth this artifact.
+    '';
+    platforms = platforms.linux;
+    maintainers = [ maintainers.kenran ];
+    license = licenses.agpl3Plus;
+  };
+}
diff --git a/pkgs/games/itch-setup/default.nix b/pkgs/games/itch-setup/default.nix
deleted file mode 100644
index 55d488bcaac06..0000000000000
--- a/pkgs/games/itch-setup/default.nix
+++ /dev/null
@@ -1,24 +0,0 @@
-{ lib, writeShellScriptBin, steam-run, fetchurl }:
-let
-
-  pname = "itch-setup";
-  version = "1.26.0";
-
-  src = fetchurl {
-    url = "https://broth.itch.ovh/itch-setup/linux-amd64/${version}/unpacked/default";
-    hash = "sha256-bcJKqhgZK42Irx12BIvbTDMb/DHEOEXljetlDokF7x8=";
-    executable = true;
-  };
-
-in
-(writeShellScriptBin pname ''exec ${steam-run}/bin/steam-run ${src} "$@"'') // {
-
-  passthru = { inherit pname version src; };
-  meta = with lib; {
-    description = "An installer for the itch.io desktop app";
-    homepage = "https://github.com/itchio/itch-setup";
-    license = licenses.mit;
-    platforms = platforms.linux;
-    maintainers = with maintainers; [ pasqui23 ];
-  };
-}
diff --git a/pkgs/games/itch/butler.nix b/pkgs/games/itch/butler.nix
new file mode 100644
index 0000000000000..68f1bac49e903
--- /dev/null
+++ b/pkgs/games/itch/butler.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "butler";
+  version = "15.21.0";
+
+  src = fetchFromGitHub {
+    owner = "itchio";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-vciSmXR3wI3KcnC+Uz36AgI/WUfztA05MJv1InuOjJM=";
+  };
+
+  proxyVendor = true;
+
+  vendorSha256 = "sha256-EIl0ZFDKbZopUR22hp5a2vRUu0O1h1O953NrtoNa2x8=";
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Command-line itch.io helper";
+    homepage = "https://github.com/itchio/butler";
+    license = licenses.mit;
+    maintainers = with maintainers; [ martfont ];
+  };
+}
diff --git a/pkgs/games/itch/default.nix b/pkgs/games/itch/default.nix
index 34a2775c3c80c..991623b6c9f7e 100644
--- a/pkgs/games/itch/default.nix
+++ b/pkgs/games/itch/default.nix
@@ -1,30 +1,56 @@
 { lib
 , stdenvNoCC
-, fetchurl
-, libnotify
-, nss
-, gtk3
+, fetchpatch
+, fetchzip
 , fetchFromGitHub
+, butler
+, electron_11
+, steam-run
+, makeWrapper
+, copyDesktopItems
 , makeDesktopItem
-, itch-setup
-, runtimeShell
 }:
-stdenvNoCC.mkDerivation rec{
+stdenvNoCC.mkDerivation rec {
   pname = "itch";
   version = "25.5.1";
 
-  src = fetchFromGitHub {
-    owner = "itchio";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-Pi3l3uK4kr+N3p7fGQuqckYIzycRqJHDVX00reoSbp4=";
+  src = fetchzip {
+    url = "https://broth.itch.ovh/${pname}/linux-amd64/${version}/itch.zip";
+    stripRoot = false;
+    sha256 = "sha256-ejfS+sqhacW2h8u96W4fout3V8xrBs0SrW5w/7X83m4=";
   };
 
+  patches = [
+    # Fixes crash while browsing the store.
+    (fetchpatch {
+      name = "itch.patch";
+      url = "https://aur.archlinux.org/cgit/aur.git/plain/itch.patch?h=itch-bin&id=0b181454567029141749f870880b10093216e133";
+      sha256 = "sha256-gmLL/BMondSflERm0z+DuGDP56JhDXiyxEwLUavTD8Q=";
+    })
+  ];
+
+  itch-setup = fetchzip {
+    url = "https://broth.itch.ovh/itch-setup/linux-amd64/1.26.0/itch-setup.zip";
+    stripRoot = false;
+    sha256 = "sha256-5MP6X33Jfu97o5R1n6Og64Bv4ZMxVM0A8lXeQug+bNA=";
+  };
+
+  icons = let sparseCheckout = "/release/images/itch-icons"; in
+    fetchFromGitHub {
+        owner = "itchio";
+        repo = pname;
+        rev = "v${version}";
+        hash = "sha256-1L6STTBHA9xL9IaERaH2OTvurTSng1D+P3KoW0ucEJc=";
+        inherit sparseCheckout;
+      } + sparseCheckout;
+
+  nativeBuildInputs = [ copyDesktopItems makeWrapper ];
+
   desktopItems = [
     (makeDesktopItem {
       name = pname;
-      exec = pname;
-      tryExec = "itch %U";
+      exec = "itch %U";
+      tryExec = pname;
       icon = pname;
       desktopName = pname;
       mimeTypes = [ "x-scheme-handler/itchio" "x-scheme-handler/itch" ];
@@ -33,23 +59,33 @@ stdenvNoCC.mkDerivation rec{
     })
   ];
 
-  itchBin = ''
-    #!${runtimeShell}
-    exec ${itch-setup}/bin/itch-setup --prefer-launch -- "$@"
-  '';
+  # As taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch-bin
+  installPhase = ''
+    runHook preInstall
 
-  passAsFile = [ "itchBin" ];
+    mkdir -p $out/bin $out/share/${pname}/resources/app
+    cp -r resources/app "$out/share/${pname}/resources/"
 
-  # as taken from https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=itch
-  installPhase = ''
-    install -Dm0777 $itchBinPath $out/bin/itch
-    for icon in release/images/itch-icons/icon*.png
+    install -Dm644 LICENSE -t "$out/share/licenses/$pkgname/"
+    install -Dm644 LICENSES.chromium.html -t "$out/share/licenses/$pkgname/"
+
+    for icon in $icons/icon*.png
     do
-      iconsize="''${icon#release/images/itch-icons/icon}"
+      iconsize="''${icon#$icons/icon}"
       iconsize="''${iconsize%.png}"
       icondir="$out/share/icons/hicolor/''${iconsize}x''${iconsize}/apps/"
       install -Dm644 "$icon" "$icondir/itch.png"
     done
+
+    runHook postInstall
+  '';
+
+  postFixup = ''
+    makeWrapper ${steam-run}/bin/steam-run $out/bin/${pname} \
+      --add-flags ${electron_11}/bin/electron \
+      --add-flags $out/share/${pname}/resources/app \
+      --set BROTH_USE_LOCAL butler,itch-setup \
+      --prefix PATH : ${butler}/bin/:${itch-setup}
   '';
 
   meta = with lib; {
@@ -57,6 +93,7 @@ stdenvNoCC.mkDerivation rec{
     homepage = "https://github.com/itchio/itch";
     license = licenses.mit;
     platforms = platforms.linux;
+    sourceProvenance = lib.sourceTypes.binaryBytecode;
     maintainers = with maintainers; [ pasqui23 ];
   };
 }
diff --git a/pkgs/games/legendary-gl/default.nix b/pkgs/games/legendary-gl/default.nix
index 7025a9cb66eb3..6b81593c8af14 100644
--- a/pkgs/games/legendary-gl/default.nix
+++ b/pkgs/games/legendary-gl/default.nix
@@ -7,13 +7,13 @@
 
 buildPythonApplication rec {
   pname = "legendary-gl"; # Name in pypi
-  version = "0.20.26";
+  version = "0.20.27";
 
   src = fetchFromGitHub {
     owner = "derrod";
     repo = "legendary";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-NqAdS5PN7Qj/HdZ2quemb0xJQsD3Ox1a/TVXj3QMq9c=";
+    sha256 = "sha256-h9WmeVONX19/pUBfE1T/OSMI/HkTKJiTfyyEJV/noB8=";
   };
 
   propagatedBuildInputs = [ requests ];
diff --git a/pkgs/games/megaglest/default.nix b/pkgs/games/megaglest/default.nix
index 30383e5f4067e..6a21a74f70b4a 100644
--- a/pkgs/games/megaglest/default.nix
+++ b/pkgs/games/megaglest/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, cmake, pkg-config, git, curl, SDL2, xercesc, openal, lua, libvlc
 , libjpeg, wxGTK, cppunit, ftgl, glew, libogg, libvorbis, buildEnv, libpng
 , fontconfig, freetype, xorg, makeWrapper, bash, which, gnome, libGLU, glib
-, fetchFromGitHub
+, fetchFromGitHub, fetchpatch
 }:
 let
   version = "3.13.0";
@@ -28,6 +28,15 @@ stdenv.mkDerivation {
     sha256 = "0fb58a706nic14ss89zrigphvdiwy5s9dwvhscvvgrfvjpahpcws";
   };
 
+  patches = [
+    # Pull upstream fix for -fno-common toolchains
+    (fetchpatch {
+      name = "fno-common.patch";
+      url = "https://github.com/MegaGlest/megaglest-source/commit/5a3520540276a6fd06f7c88e571b6462978e3eab.patch";
+      sha256 = "0y554kjw56dikq87vs709pmq97hdx9hvqsk27f81v4g90m3b3qhi";
+    })
+  ];
+
   nativeBuildInputs = [ cmake pkg-config ];
   buildInputs = [ git curl SDL2 xercesc openal lua libpng libjpeg libvlc wxGTK
     glib cppunit fontconfig freetype ftgl glew libogg libvorbis makeWrapper libGLU ];
diff --git a/pkgs/games/minecraft/default.nix b/pkgs/games/minecraft/default.nix
index dc4cd9087fc2c..a8e883acae37b 100644
--- a/pkgs/games/minecraft/default.nix
+++ b/pkgs/games/minecraft/default.nix
@@ -149,6 +149,7 @@ stdenv.mkDerivation rec {
     description = "Official launcher for Minecraft, a sandbox-building game";
     homepage = "https://minecraft.net";
     maintainers = with maintainers; [ cpages ryantm infinisil ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix
index b2c1e1ceb99ad..56206d2a42f8b 100644
--- a/pkgs/games/osu-lazer/deps.nix
+++ b/pkgs/games/osu-lazer/deps.nix
@@ -66,7 +66,7 @@
   (fetchNuGet { pname = "Markdig"; version = "0.23.0"; sha256 = "1bwn885w7balwncmr764vidyyp9bixqlq6r3lhsapj8ykrpxxa70"; })
   (fetchNuGet { pname = "MessagePack"; version = "2.3.85"; sha256 = "0n7kv4i6knhv1dd35cv45sfpidsiy9albfdmbrdschykd1mzxmiy"; })
   (fetchNuGet { pname = "MessagePack.Annotations"; version = "2.3.85"; sha256 = "0axjgy9r533bw00lflnc6acjyza76mf2x1nn6fw7qacvak9rqxm3"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Connections.Abstractions"; version = "6.0.3"; sha256 = "0mc84qjsbsi7m1yx42w4zh8bdkqyqlvvx9iw80g4wsbrflkq5pwi"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Client"; version = "6.0.3"; sha256 = "1vadkmcxj2nv01mg8027z0ywxk2fddyj5aqflanslbfclsz4779i"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Http.Connections.Common"; version = "6.0.3"; sha256 = "11a5w8p0nkfyp21aafpmrf0lvjpbg2p4yqay4dxbjg0w99w2kwq6"; })
@@ -115,7 +115,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Options"; version = "6.0.0"; sha256 = "008pnk2p50i594ahz308v81a41mbjz9mwcarqhmrjpl2d20c868g"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
   (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"; })
diff --git a/pkgs/games/pokete/default.nix b/pkgs/games/pokete/default.nix
new file mode 100644
index 0000000000000..c5f737906549a
--- /dev/null
+++ b/pkgs/games/pokete/default.nix
@@ -0,0 +1,54 @@
+{ lib
+, python3
+, fetchFromGitHub
+, testers
+, pokete
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "pokete";
+  version = "0.7.3";
+
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "lxgr-linux";
+    repo = "pokete";
+    rev = version;
+    sha256 = "sha256-sP6fI3F/dQHei1ZJU6gChKxft9fGpTct4EyU3OdBtr4=";
+  };
+
+  pythonPath = with python3.pkgs; [
+    scrap-engine
+    pynput
+  ];
+
+  buildPhase = ''
+    ${python3.interpreter} -O -m compileall .
+  '';
+
+  installPhase = ''
+    mkdir -p $out/share/pokete
+    cp -r assets pokete_classes pokete_data mods *.py $out/share/pokete/
+    mkdir -p $out/bin
+    ln -s $out/share/pokete/pokete.py $out/bin/pokete
+  '';
+
+  postFixup = ''
+    wrapPythonProgramsIn $out/share/pokete "$pythonPath"
+  '';
+
+  passthru.tests = {
+    pokete-version = testers.testVersion {
+      package = pokete;
+      command = "pokete --help";
+    };
+  };
+
+  meta = with lib; {
+    description = "A terminal based Pokemon like game";
+    homepage = "https://lxgr-linux.github.io/pokete";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fgaz ];
+  };
+}
diff --git a/pkgs/games/runelite/default.nix b/pkgs/games/runelite/default.nix
index 0cb72f6d23c6d..a3c686eee9fe0 100644
--- a/pkgs/games/runelite/default.nix
+++ b/pkgs/games/runelite/default.nix
@@ -58,7 +58,10 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Open source Old School RuneScape client";
     homepage = "https://runelite.net/";
-    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.bsd2;
     maintainers = with maintainers; [ kmeakin ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/runescape-launcher/default.nix b/pkgs/games/runescape-launcher/default.nix
index 3208aa3b46122..e671e5589b826 100644
--- a/pkgs/games/runescape-launcher/default.nix
+++ b/pkgs/games/runescape-launcher/default.nix
@@ -77,6 +77,7 @@ let
     meta = with lib; {
       description = "Launcher for RuneScape 3, the current main RuneScape";
       homepage = "https://www.runescape.com/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       maintainers = with maintainers; [ grburst ];
       platforms = [ "x86_64-linux" ];
diff --git a/pkgs/games/sil-q/default.nix b/pkgs/games/sil-q/default.nix
new file mode 100644
index 0000000000000..e4299bd8aca73
--- /dev/null
+++ b/pkgs/games/sil-q/default.nix
@@ -0,0 +1,73 @@
+{ pkgs, lib, stdenv, fetchFromGitHub, writeScript, makeWrapper, ncurses, libX11 }:
+
+let
+  setup = writeScript "setup" ''
+    mkdir -p "$ANGBAND_PATH"
+    # copy all the data files into place
+    cp -ar $1/* "$ANGBAND_PATH"
+    # the copied files need to be writable
+    chmod +w -R "$ANGBAND_PATH"
+  '';
+in stdenv.mkDerivation rec {
+  pname = "sil-q";
+  version = "1.5.0";
+
+  src = fetchFromGitHub {
+    owner = "sil-quirk";
+    repo = "sil-q";
+    rev = "v${version}";
+    sha256 = "sha256-v/sWhPWF9cCKD8N0RHpwzChMM1t9G2yrMDmi1cZxdOs=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+  buildInputs = [ ncurses libX11 ];
+
+  # Makefile(s) and config are not top-level
+  sourceRoot = "source/src";
+
+  postPatch = ''
+    # allow usage of ANGBAND_PATH
+    substituteInPlace config.h --replace "#define FIXED_PATHS" ""
+
+    # change Makefile.std for ncurses according to its own comment
+    substituteInPlace Makefile.std --replace "-lcurses" "-lncurses"
+  '';
+
+  makefile = "Makefile.std";
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp sil $out/bin/sil-q
+    wrapProgram $out/bin/sil-q \
+      --run "export ANGBAND_PATH=\$HOME/.sil" \
+      --run "${setup} ${src}/lib"
+
+    runHook postInstall
+  '';
+
+  passthru.tests = {
+    saveDirCreation = pkgs.runCommand "save-dir-creation" {} ''
+      HOME=$(pwd) ${lib.getExe pkgs.sil-q} --help
+      test -d .sil && touch $out
+    '';
+  };
+
+  meta = {
+    description = "A roguelike 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.
+
+      Walk the dark halls of Angband.  Slay creatures black and fell.  Wrest a shining
+      Silmaril from Morgoth’s iron crown.
+
+      A fork of Sil that's still actively developed.
+    '';
+    homepage = "https://github.com/sil-quirk/sil-q";
+    license = lib.licenses.gpl2;
+    maintainers = [ lib.maintainers.kenran ];
+    platforms = lib.platforms.linux;
+  };
+}
diff --git a/pkgs/games/sil/default.nix b/pkgs/games/sil/default.nix
index 2e6c50daa8236..7d446a684aae0 100644
--- a/pkgs/games/sil/default.nix
+++ b/pkgs/games/sil/default.nix
@@ -1,4 +1,6 @@
-{ lib, stdenv, fetchzip, ncurses, libX11, libXaw, libXt, libXext, libXmu, makeWrapper, writeScript, ... }:
+{ pkgs, lib, stdenv, fetchzip, ncurses, libX11, libXaw, libXt, libXext, libXmu
+, makeWrapper, writeScript }:
+
 let
   setup = writeScript "setup" ''
     mkdir -p "$ANGBAND_PATH"
@@ -15,7 +17,7 @@ stdenv.mkDerivation rec {
   src = fetchzip {
     url = "http://www.amirrorclear.net/flowers/game/sil/Sil-130-src.zip";
     sha256 = "1amp2mr3fxascra0k76sdsvikjh8g76nqh46kka9379zd35lfq8w";
-    stripRoot=false;
+    stripRoot = false;
   };
 
   nativeBuildInputs = [ makeWrapper ];
@@ -25,7 +27,7 @@ stdenv.mkDerivation rec {
 
   makefile = "Makefile.std";
 
-  prePatch = ''
+  postPatch = ''
     # Allow usage of ANGBAND_PATH
     substituteInPlace config.h --replace "#define FIXED_PATHS" ""
   '';
@@ -41,30 +43,42 @@ stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = "-fcommon";
 
   installPhase = ''
-    # the makefile doesn't have a sensible install target, so we hav to do it ourselves
+    runHook preInstall
+
+    # the makefile doesn't have a sensible install target, so we have to do it ourselves
     mkdir -p $out/bin
     cp sil $out/bin/sil
-    # Wrap the program to set a user-local ANGBAND_PATH, and run the setup script to copy files into place
+
+    # Wrap the program to set a user-local ANGBAND_PATH, and run the setup script to copy files into place.
     # We could just use the options for a user-local save and scores dir, but it tried to write to the
     # lib directory anyway, so we might as well give everyone a copy
     wrapProgram $out/bin/sil \
-      --run "set -u" \
       --run "export ANGBAND_PATH=\$HOME/.sil" \
       --run "${setup} ${src}/Sil/lib"
+
+    runHook postInstall
   '';
 
+  passthru.tests = {
+    saveDirCreation = pkgs.runCommand "save-dir-creation" {} ''
+      HOME=$(pwd) ${lib.getExe pkgs.sil} --help
+      test -d .sil && touch $out
+    '';
+  };
+
   meta = {
-    description = "A rouge-like game set in the first age of Middle-earth";
+    description = "A 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.
+      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.
 
       Walk the dark halls of Angband.  Slay creatures black and fell.  Wrest a shining
       Silmaril from Morgoth’s iron crown.
     '';
     homepage = "http://www.amirrorclear.net/flowers/game/sil/index.html";
     license = lib.licenses.gpl2;
-    maintainers = [ lib.maintainers.michaelpj ];
+    maintainers = with lib.maintainers; [ michaelpj kenran ];
     platforms = lib.platforms.linux;
+    mainProgram = "sil";
   };
 }
diff --git a/pkgs/games/sm64ex/default.nix b/pkgs/games/sm64ex/default.nix
index c6df2099d3ce3..a6bf7202adcf4 100644
--- a/pkgs/games/sm64ex/default.nix
+++ b/pkgs/games/sm64ex/default.nix
@@ -1,71 +1,55 @@
-{ lib, stdenv
+{ lib
+, stdenv
 , fetchFromGitHub
-, python3
-, pkg-config
-, audiofile
-, SDL2
-, hexdump
-, requireFile
-, compileFlags ? [ ]
-, region ? "us"
-, baseRom ? requireFile {
-    name = "baserom.${region}.z64";
-    message = ''
-      This nix expression requires that baserom.${region}.z64 is
-      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
-      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
-      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
-    '';
-    sha256 = {
-      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
-      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
-      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
-    }.${region};
-  }
+, callPackage
+, autoPatchelfHook
+, branch
 }:
 
-stdenv.mkDerivation rec {
-  pname = "sm64ex";
-  version = "unstable-2021-11-30";
-
-  src = fetchFromGitHub {
-    owner = "sm64pc";
-    repo = "sm64ex";
-    rev = "db9a6345baa5acb41f9d77c480510442cab26025";
-    sha256 = "sha256-q7JWDvNeNrDpcKVtIGqB1k7I0FveYwrfqu7ZZK7T8F8=";
+{
+  sm64ex = callPackage ./generic.nix {
+    pname = "sm64ex";
+    version = "0.pre+date=2021-11-30";
+
+    src = fetchFromGitHub {
+      owner = "sm64pc";
+      repo = "sm64ex";
+      rev = "db9a6345baa5acb41f9d77c480510442cab26025";
+      sha256 = "sha256-q7JWDvNeNrDpcKVtIGqB1k7I0FveYwrfqu7ZZK7T8F8=";
+    };
+
+    extraMeta = {
+      homepage = "https://github.com/sm64pc/sm64ex";
+      description = "Super Mario 64 port based off of decompilation";
+    };
   };
 
-  nativeBuildInputs = [ python3 pkg-config ];
-  buildInputs = [ audiofile SDL2 hexdump ];
-
-  makeFlags = [ "VERSION=${region}" ] ++ compileFlags
-    ++ lib.optionals stdenv.isDarwin [ "OSX_BUILD=1" ];
-
-  inherit baseRom;
-
-  preBuild = ''
-    patchShebangs extract_assets.py
-    cp $baseRom ./baserom.${region}.z64
-  '';
-
-  installPhase = ''
-    mkdir -p $out/bin
-    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
-  '';
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "https://github.com/sm64pc/sm64ex";
-    description = "Super Mario 64 port based off of decompilation";
-    longDescription = ''
-      Super Mario 64 port based off of decompilation.
-      Note that you must supply a baserom yourself to extract assets from.
-      If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
-      If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+  sm64ex-coop = callPackage ./generic.nix {
+    pname = "sm64ex-coop";
+    version = "0.pre+date=2022-05-14";
+
+    src = fetchFromGitHub {
+      owner = "djoslin0";
+      repo = "sm64ex-coop";
+      rev = "8200b175607fe2939f067d496627c202a15fe24c";
+      sha256 = "sha256-c1ZmMBtvYYcaJ/WxkZBVvNGVCeSXfm8NKe/BiAIJtks=";
+    };
+
+    extraNativeBuildInputs = [
+      autoPatchelfHook
+    ];
+
+    postInstall = let
+      sharedLib = stdenv.hostPlatform.extensions.sharedLibrary;
+    in ''
+      mkdir -p $out/lib
+      cp $src/lib/bass/libbass{,_fx}${sharedLib} $out/lib
+      cp $src/lib/discordsdk/libdiscord_game_sdk${sharedLib} $out/lib
     '';
-    license = licenses.unfree;
-    maintainers = with maintainers; [ ivar ];
-    platforms = platforms.unix;
+
+    extraMeta = {
+      homepage = "https://github.com/djoslin0/sm64ex-coop";
+      description = "Super Mario 64 online co-op mod, forked from sm64ex";
+    };
   };
-}
+}.${branch}
diff --git a/pkgs/games/sm64ex/generic.nix b/pkgs/games/sm64ex/generic.nix
new file mode 100644
index 0000000000000..ab75ac70b9c53
--- /dev/null
+++ b/pkgs/games/sm64ex/generic.nix
@@ -0,0 +1,83 @@
+{ pname
+, version
+, src
+, extraNativeBuildInputs ? [ ]
+, extraMeta ? {}
+, compileFlags ? [ ]
+, postInstall ? ""
+, region ? "us"
+
+, lib
+, stdenv
+, fetchFromGitHub
+, python3
+, pkg-config
+, audiofile
+, SDL2
+, hexdump
+, requireFile
+, baseRom ? requireFile {
+    name = "baserom.${region}.z64";
+    message = ''
+      This nix expression requires that baserom.${region}.z64 is
+      already part of the store. To get this file you can dump your Super Mario 64 cartridge's contents
+      and add it to the nix store with nix-store --add-fixed sha256 <FILE>.
+      Note that if you are not using a US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+    '';
+    sha256 = {
+      "us" = "17ce077343c6133f8c9f2d6d6d9a4ab62c8cd2aa57c40aea1f490b4c8bb21d91";
+      "eu" = "c792e5ebcba34c8d98c0c44cf29747c8ee67e7b907fcc77887f9ff2523f80572";
+      "jp" = "9cf7a80db321b07a8d461fe536c02c87b7412433953891cdec9191bfad2db317";
+    }.${region};
+  }
+}:
+
+stdenv.mkDerivation rec {
+  inherit pname version src postInstall;
+
+  nativeBuildInputs = [
+    python3
+    pkg-config
+    hexdump
+  ] ++ extraNativeBuildInputs;
+
+  buildInputs = [
+    audiofile
+    SDL2
+  ];
+
+  enableParallelBuilding = true;
+
+  makeFlags = [
+    "VERSION=${region}"
+  ] ++ lib.optionals stdenv.isDarwin [
+    "OSX_BUILD=1"
+  ] ++ compileFlags;
+
+  preBuild = ''
+    patchShebangs extract_assets.py
+    ln -s ${baseRom} ./baserom.${region}.z64
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    cp build/${region}_pc/sm64.${region}.f3dex2e $out/bin/sm64ex
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    longDescription =
+      extraMeta.description or "Super Mario 64 port based off of decompilation" + "\n" + ''
+        Note that you must supply a baserom yourself to extract assets from.
+        If you are not using an US baserom, you must overwrite the "region" attribute with either "eu" or "jp".
+        If you would like to use patches sm64ex distributes as makeflags, add them to the "compileFlags" attribute.
+      '';
+    mainProgram = "sm64ex";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ ivar ];
+    platforms = platforms.unix;
+  } // extraMeta;
+}
diff --git a/pkgs/games/titanion/default.nix b/pkgs/games/titanion/default.nix
new file mode 100644
index 0000000000000..47db68aa483ed
--- /dev/null
+++ b/pkgs/games/titanion/default.nix
@@ -0,0 +1,91 @@
+{ lib
+, stdenv
+, fetchpatch
+, fetchurl
+, unzip
+, gdc
+, SDL
+, SDL_mixer
+, bulletml
+}:
+
+let
+debianPatch = patchname: hash: fetchpatch {
+  name = "${patchname}.patch";
+  url = "https://sources.debian.org/data/main/t/titanion/0.3.dfsg1-7/debian/patches/${patchname}";
+  sha256 = hash;
+};
+
+in stdenv.mkDerivation rec {
+  pname = "titanion";
+  version = "0.3";
+
+  src = fetchurl {
+    url = "http://abagames.sakura.ne.jp/windows/ttn${lib.replaceStrings ["."] ["_"] version}.zip";
+    sha256 = "sha256-fR0cufi6dU898wP8KGl/vxbfQJzMmMxlYZ3QNGLajfM=";
+  };
+
+  patches = [
+    (debianPatch
+      "imports.patch"
+      "sha256-kSXpaTpYq6w9e0yLES2QGNQ8+vFIiOpw2P9MA8gZr8s=")
+    (debianPatch
+      "fix.diff"
+      "sha256-0WkkfuhJaAMY46VVyc3ldMQwgOVoQJDw/8zbm6H2sHU=")
+    (debianPatch
+      "directories.patch"
+      "sha256-fhQJuy2+r0YOQNwMqG85Gr7fJehmf00Scran+NPYQrw=")
+    (debianPatch
+      "windowed.patch"
+      "sha256-xouXIuIKfKFGsoOEJqL9jdsdnkX4nqwPGcoB+32Wvgo=")
+    (debianPatch
+      "dotfile.patch"
+      "sha256-sAml53Hh0ltbqN8xZDZuUJcaPfjK56jf4ymFXYD38v0=")
+    (debianPatch
+      "window-resize.patch"
+      "sha256-WwAi1aU4CmaX+O8fw0TfLhNSXFaObExrn7nuhesVkKM=")
+    (debianPatch
+      "makefile.patch"
+      "sha256-g0jDPmc0SWXkTLhiczeTse/WGCtgMUsbyPNZzwK3U+o=")
+    (debianPatch
+      "dlang_v2.patch"
+      "sha256-tfTAAKlPFSjbfAK1EjeB3unj9tbMlNaajJ+VVSMMiYw=")
+    (debianPatch
+      "gdc-8.patch"
+      "sha256-BxkPfSEymq7TDA+yjJHaYsjtGr0Tuu1/sWLwRBAMga4=")
+  ];
+
+  postPatch = ''
+    rm *.dll ttn.exe
+    rm -r lib
+    for f in src/abagames/ttn/screen.d src/abagames/util/sdl/sound.d src/abagames/util/sdl/texture.d; do
+      substituteInPlace $f \
+        --replace "/usr/" "$out/"
+    done
+  '';
+
+  nativeBuildInputs = [
+    unzip
+    gdc
+  ];
+
+  buildInputs = [
+    SDL
+    SDL_mixer
+    bulletml
+  ];
+
+  installPhase = ''
+    install -Dm755 titanion $out/bin/titanion
+    mkdir -p $out/share/games/titanion
+    cp -r sounds images $out/share/games/titanion/
+  '';
+
+  meta = with lib; {
+    homepage = "http://www.asahi-net.or.jp/~cs8k-cyu/windows/ttn_e.html";
+    description = "Strike down super high-velocity swooping insects";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ fgaz ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/games/umoria/default.nix b/pkgs/games/umoria/default.nix
new file mode 100644
index 0000000000000..13ec037afba78
--- /dev/null
+++ b/pkgs/games/umoria/default.nix
@@ -0,0 +1,78 @@
+{ lib
+, gcc9Stdenv
+, fetchFromGitHub
+, autoreconfHook
+, cmake
+, ncurses6
+, runtimeShell
+}:
+
+let
+  savesDir = "~/.umoria";
+in
+gcc9Stdenv.mkDerivation rec {
+  pname = "umoria";
+  version = "5.7.15";
+
+  src = fetchFromGitHub {
+    owner = "dungeons-of-moria";
+    repo = "umoria";
+    rev = "v${version}";
+    sha256 = "sha256-1j4QkE33UcTzM06qAjk1/PyK5uNA7E/kyDe3bZcFKUM=";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ ncurses6 ];
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/data $out/bin
+    cp -r umoria/data/* $out/data
+    cp umoria/umoria $out/.umoria-unwrapped
+
+    mkdir -p $out/bin
+    cat <<EOF >$out/bin/umoria
+    #! ${runtimeShell} -e
+
+    RUNDIR=\$(mktemp -d)
+
+    # Print the directory, so users have access to dumps, and let the system
+    # take care of cleaning up temp files.
+    echo "Running umoria in \$RUNDIR"
+
+    cd \$RUNDIR
+    ln -sn $out/data \$RUNDIR/data
+
+    mkdir -p ${savesDir}
+    [[ ! -f ${savesDir}/scores.dat ]] && touch ${savesDir}/scores.dat
+    ln -s ${savesDir}/scores.dat scores.dat
+
+    if [ \$# -eq 0 ]; then
+       $out/.umoria-unwrapped ${savesDir}/game.sav
+    else
+       $out/.umoria-unwrapped "\$@"
+    fi
+    EOF
+
+    chmod +x $out/bin/umoria
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://umoria.org/";
+    description = "The Dungeons of Moria - the original roguelike";
+    longDescription = ''
+      The Dungeons of Moria is a single player dungeon simulation originally written
+      by Robert Alan Koeneke, with its first public release in 1983.
+      The game was originally developed using VMS Pascal before being ported to the C
+      language by James E. Wilson in 1988, and released a Umoria.
+    '';
+    platforms = platforms.unix;
+    badPlatforms = [ "aarch64-darwin" ];
+    maintainers = with maintainers; [ aciceri kenran ];
+    license = licenses.gpl3Plus;
+  };
+}
diff --git a/pkgs/games/unvanquished/default.nix b/pkgs/games/unvanquished/default.nix
index 574c639ad125e..8b0ff1ca989d5 100644
--- a/pkgs/games/unvanquished/default.nix
+++ b/pkgs/games/unvanquished/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchzip
 , fetchFromGitHub
+, fetchpatch
 , SDL2
 , buildFHSUserEnv
 , cmake
@@ -139,6 +140,24 @@ in stdenv.mkDerivation rec {
     chmod +w -R daemon/external_deps/linux64-${binary-deps-version}/
   '';
 
+  patches = [
+    (fetchpatch {
+      name = "fix-sdl-eventqueue-part1.patch";
+      url = "https://github.com/DaemonEngine/Daemon/commit/3a978c485f2a7e02c0bc5aeed2c7c4378026cb33.patch";
+      sha256 = "sha256-wVDscGf5zOOmivItNK913l0cfNFR6RpApewrxbmfG8s=";
+      stripLen = 1;
+      extraPrefix = "daemon/";
+    })
+    (fetchpatch {
+      name = "fix-sdl-eventqueue-part2.patch";
+      url = "https://github.com/DaemonEngine/Daemon/commit/54f98909c8871a57efb40263b215b81f22010b22.patch";
+      sha256 = "sha256-9qlyJnUEyZgFaclpXthKHm3qq+cW4E4LMOpLukcwBCU=";
+      stripLen = 1;
+      extraPrefix = "daemon/";
+      excludes = [ "*/CMakeLists.txt" ];
+    })
+  ];
+
   nativeBuildInputs = [
     cmake
     unvanquished-binary-deps
@@ -225,6 +244,10 @@ in stdenv.mkDerivation rec {
       mit gpl3Plus lib.licenses.zlib bsd3 # engine
       cc-by-sa-25 cc-by-sa-30 cc-by-30 cc-by-sa-40 cc0 # assets
     ];
+    sourceProvenance = with lib.sourceTypes; [
+      fromSource
+      binaryNativeCode  # unvanquished-binary-deps
+    ];
     maintainers = with lib.maintainers; [ afontain ];
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/games/xivlauncher/deps.nix b/pkgs/games/xivlauncher/deps.nix
index 76a0b696ad15f..9e1f7f17c2ffc 100644
--- a/pkgs/games/xivlauncher/deps.nix
+++ b/pkgs/games/xivlauncher/deps.nix
@@ -13,13 +13,13 @@
   (fetchNuGet { pname = "goaaats.Veldrid.StartupUtilities"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "03r3x9h0fyb07d6d28ny6r5s688m50xc0lgc6zf2cy684kfnvmp5"; })
   (fetchNuGet { pname = "ImGui.NET"; version = "1.87.2"; sha256 = "0rv0n18fvz1gbh45crhzn1f8xw8zkc8qyiyj91vajjcry8mq1x7q"; })
   (fetchNuGet { pname = "KeySharp"; version = "1.0.5"; sha256 = "1ic10v0a174fw6w89iyg4yzji36bsj15573y676cj5n09n6s75d4"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.0.1"; sha256 = "0axjv1nhk1z9d4c51d9yxdp09l8yqqnqaifhqcwnxnv0r4y5cka9"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.0.1"; sha256 = "1h6jfifg7pw2vacpdds4v4jqnaydg9b108irf315wzx6rh8yv9cb"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "6.0.0"; sha256 = "06zy947m5lrbwb684g42ijb07r5jsqycvfnphc6cqfdrfnzqv6k9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
   (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.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
diff --git a/pkgs/misc/arm-trusted-firmware/default.nix b/pkgs/misc/arm-trusted-firmware/default.nix
index 4145e2f43f0aa..f523727d02113 100644
--- a/pkgs/misc/arm-trusted-firmware/default.nix
+++ b/pkgs/misc/arm-trusted-firmware/default.nix
@@ -17,7 +17,7 @@ let
             , platformCanUseHDCPBlob ? false  # set this to true if the platform is able to use hdcp.bin
             , extraMakeFlags ? []
             , extraMeta ? {}
-            , version ? "2.6"
+            , version ? "2.7"
             , ... } @ args:
 
            # delete hdcp.bin if either: the platform is thought to
@@ -33,7 +33,7 @@ let
       owner = "ARM-software";
       repo = "arm-trusted-firmware";
       rev = "v${version}";
-      sha256 = "sha256-qT9DdTvMcUrvRzgmVf2qmKB+Rb1WOB4p1rM+fsewGcg=";
+      sha256 = "sha256-WDJMMIWZHNqxxAKeHiZDxtPjfsfQAWsbYv+0o0PiJQs=";
     };
 
     patches = lib.optionals deleteHDCPBlobBeforeBuild [
diff --git a/pkgs/misc/cups/drivers/brgenml1lpr/default.nix b/pkgs/misc/cups/drivers/brgenml1lpr/default.nix
index 4fb2995ee3bc7..1e838db932634 100644
--- a/pkgs/misc/cups/drivers/brgenml1lpr/default.nix
+++ b/pkgs/misc/cups/drivers/brgenml1lpr/default.nix
@@ -87,6 +87,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Brother BrGenML1 LPR driver";
     homepage = "http://www.brother.com";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     platforms = lib.platforms.linux;
     license = lib.licenses.unfreeRedistributable;
     maintainers = with lib.maintainers; [ jraygauthier ];
diff --git a/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix b/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix
index 0ecbbd8b55e58..ddae34eaec838 100644
--- a/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix
+++ b/pkgs/misc/cups/drivers/brother/dcp9020cdw/default.nix
@@ -58,6 +58,7 @@ rec {
     meta = with lib; {
       homepage = "http://www.brother.com/";
       description = "Brother ${model} printer driver";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = platforms.linux;
       downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=gb&lang=en&prod=${model}_eu&os=128";
@@ -90,6 +91,7 @@ rec {
     meta = with lib; {
       homepage = "http://www.brother.com/";
       description = "Brother ${model} printer CUPS wrapper driver";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = licenses.unfree;
       platforms = platforms.linux;
       downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=gb&lang=en&prod=${model}_eu&os=128";
diff --git a/pkgs/misc/cups/drivers/brother/mfcl3770cdw/default.nix b/pkgs/misc/cups/drivers/brother/mfcl3770cdw/default.nix
index 10ed4368ce216..828b4bb831b62 100644
--- a/pkgs/misc/cups/drivers/brother/mfcl3770cdw/default.nix
+++ b/pkgs/misc/cups/drivers/brother/mfcl3770cdw/default.nix
@@ -48,6 +48,7 @@ in rec {
     meta = {
       description = "Brother ${lib.strings.toUpper model} driver";
       homepage = "http://www.brother.com/";
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       license = lib.licenses.unfree;
       platforms = [ "x86_64-linux" "i686-linux" ];
       maintainers = [ lib.maintainers.steveej ];
@@ -80,6 +81,7 @@ in rec {
     meta = {
       description = "Brother ${lib.strings.toUpper model} CUPS wrapper driver";
       homepage = "http://www.brother.com/";
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       license = lib.licenses.gpl2;
       platforms = [ "x86_64-linux" "i686-linux" ];
       maintainers = [ lib.maintainers.steveej ];
diff --git a/pkgs/misc/cups/drivers/canon/default.nix b/pkgs/misc/cups/drivers/canon/default.nix
index e313b3a6ec253..f20f310491119 100644
--- a/pkgs/misc/cups/drivers/canon/default.nix
+++ b/pkgs/misc/cups/drivers/canon/default.nix
@@ -209,6 +209,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "CUPS Linux drivers for Canon printers";
     homepage = "http://www.canon.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [
       # please consider maintaining if you are updating this package
diff --git a/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix b/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix
index d5ccc857e8d4a..2b7e416eafefb 100644
--- a/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix
+++ b/pkgs/misc/cups/drivers/cnijfilter_2_80/default.nix
@@ -103,6 +103,10 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Canon InkJet printer drivers for the iP5400, MP520, MP210, MP140, iP3500, and MP610 series.  (MP520 drivers also work for MX700.)";
     homepage = "http://support-asia.canon-asia.com/content/EN/0100084101.html";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ jerith666 ];
diff --git a/pkgs/misc/cups/drivers/cnijfilter_4_00/default.nix b/pkgs/misc/cups/drivers/cnijfilter_4_00/default.nix
index 2bd79691461cc..d632ed12d89bd 100644
--- a/pkgs/misc/cups/drivers/cnijfilter_4_00/default.nix
+++ b/pkgs/misc/cups/drivers/cnijfilter_4_00/default.nix
@@ -145,6 +145,10 @@ in stdenv.mkDerivation {
   meta = with lib; {
     description = "Canon InkJet printer drivers for the MG2400 MG2500 MG3500 MG5500 MG6400 MG6500 MG7100 and P200 series";
     homepage = "https://www.canon-europe.com/support/consumer_products/products/fax__multifunctionals/inkjet/pixma_mg_series/pixma_mg5550.aspx?type=drivers&driverdetailid=tcm:13-1094072";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ chpatrick ];
diff --git a/pkgs/misc/cups/drivers/fxlinuxprint/default.nix b/pkgs/misc/cups/drivers/fxlinuxprint/default.nix
index 36134780e9bfd..a5091c525d42e 100644
--- a/pkgs/misc/cups/drivers/fxlinuxprint/default.nix
+++ b/pkgs/misc/cups/drivers/fxlinuxprint/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
       DocuPrint 3205 d/3208 d/3505 d/3508 d/4405 d/4408 d
     '';
     homepage = "https://onlinesupport.fujixerox.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ delan ];
     platforms = platforms.linux;
diff --git a/pkgs/misc/cups/drivers/hl1110/default.nix b/pkgs/misc/cups/drivers/hl1110/default.nix
index 75bf923650594..07143b0991fb1 100644
--- a/pkgs/misc/cups/drivers/hl1110/default.nix
+++ b/pkgs/misc/cups/drivers/hl1110/default.nix
@@ -67,6 +67,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://www.brother.com/";
     description = "Brother HL1110 printer driver";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     downloadPage = "http://support.brother.com/g/b/downloadlist.aspx?c=eu_ot&lang=en&prod=hl1110_us_eu_as&os=128#SelectLanguageType-561_0_1";
diff --git a/pkgs/misc/cups/drivers/hl1210w/default.nix b/pkgs/misc/cups/drivers/hl1210w/default.nix
index abdc5b061ac0c..c8cd6e95651b6 100644
--- a/pkgs/misc/cups/drivers/hl1210w/default.nix
+++ b/pkgs/misc/cups/drivers/hl1210w/default.nix
@@ -56,6 +56,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://www.brother.com/";
     description = "Brother HL1210W printer driver";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=nz&lang=en&prod=hl1210w_eu_as&os=128";
diff --git a/pkgs/misc/cups/drivers/hl3140cw/default.nix b/pkgs/misc/cups/drivers/hl3140cw/default.nix
index 2f90f83da1f4f..2eceb64d3668d 100644
--- a/pkgs/misc/cups/drivers/hl3140cw/default.nix
+++ b/pkgs/misc/cups/drivers/hl3140cw/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation {
   meta = {
     homepage = "http://www.brother.com/";
     description = "Brother hl3140cw printer driver";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=eu_ot&lang=en&prod=hl3140cw_us_eu&os=128";
diff --git a/pkgs/misc/cups/drivers/hll2340dw/default.nix b/pkgs/misc/cups/drivers/hll2340dw/default.nix
index 5704cb6ccda46..74f3c3819ae8e 100644
--- a/pkgs/misc/cups/drivers/hll2340dw/default.nix
+++ b/pkgs/misc/cups/drivers/hll2340dw/default.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     homepage = "http://www.brother.com/";
     description = "Brother hl-l2340dw printer driver";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us&lang=es&prod=hll2340dw_us_eu_as&os=128&flang=English";
diff --git a/pkgs/misc/cups/drivers/hll2350dw/default.nix b/pkgs/misc/cups/drivers/hll2350dw/default.nix
index 3fd0c0fbac09c..f018c8b64544f 100644
--- a/pkgs/misc/cups/drivers/hll2350dw/default.nix
+++ b/pkgs/misc/cups/drivers/hll2350dw/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.brother.com/";
     description = "Brother HL-L2350DW printer driver";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.map (arch: "${arch}-linux") arches;
     downloadPage = "https://support.brother.com/g/b/downloadlist.aspx?c=us_ot&lang=en&prod=hll2350dw_us_eu_as&os=128";
diff --git a/pkgs/misc/cups/drivers/hll2390dw-cups/default.nix b/pkgs/misc/cups/drivers/hll2390dw-cups/default.nix
index 04087c765e68d..bd9974d5b6447 100644
--- a/pkgs/misc/cups/drivers/hll2390dw-cups/default.nix
+++ b/pkgs/misc/cups/drivers/hll2390dw-cups/default.nix
@@ -62,6 +62,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.brother.com/";
     description = "Brother HL-L2390DW combined print driver";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     downloadPage = "http://support.brother.com/g/b/downloadlist.aspx?c=us_ot&lang=en&prod=hll2390dw_us&os=128";
diff --git a/pkgs/misc/cups/drivers/kyocera/default.nix b/pkgs/misc/cups/drivers/kyocera/default.nix
index cd4c049e67f79..28b2a1281761e 100644
--- a/pkgs/misc/cups/drivers/kyocera/default.nix
+++ b/pkgs/misc/cups/drivers/kyocera/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "CUPS drivers for several Kyocera FS-{1020,1025,1040,1060,1120,1125} printers";
     homepage = "https://www.kyoceradocumentsolutions.ru/index/service_support/download_center.false.driver.FS1040._.EN.html#";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.vanzef ];
     platforms = platforms.linux;
diff --git a/pkgs/misc/cups/drivers/kyodialog3/default.nix b/pkgs/misc/cups/drivers/kyodialog3/default.nix
index 5a17f88a725c1..7eeae6daa53c4 100644
--- a/pkgs/misc/cups/drivers/kyodialog3/default.nix
+++ b/pkgs/misc/cups/drivers/kyodialog3/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "CUPS drivers for several Kyocera printers";
     homepage = "https://www.kyoceradocumentsolutions.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.steveej ];
     platforms = platforms.linux;
diff --git a/pkgs/misc/cups/drivers/mfc9140cdncupswrapper/default.nix b/pkgs/misc/cups/drivers/mfc9140cdncupswrapper/default.nix
index 0542b2ab303e8..c38b526186515 100644
--- a/pkgs/misc/cups/drivers/mfc9140cdncupswrapper/default.nix
+++ b/pkgs/misc/cups/drivers/mfc9140cdncupswrapper/default.nix
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Brother MFC-9140CDN CUPS wrapper driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/misc/cups/drivers/mfc9140cdnlpr/default.nix b/pkgs/misc/cups/drivers/mfc9140cdnlpr/default.nix
index 4128123d64318..ab20016c7ff0b 100644
--- a/pkgs/misc/cups/drivers/mfc9140cdnlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfc9140cdnlpr/default.nix
@@ -66,6 +66,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Brother MFC-9140CDN LPR printer driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ hexa ];
     platforms = [ "i686-linux" "x86_64-linux" ];
diff --git a/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix
index fdc88a36d29cd..28be1b580a44f 100644
--- a/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcj470dwlpr/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     homepage = "http://www.brother.com/";
     description = "Brother MFC-J470DW LPR driver";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     downloadPage = "http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj470dw_us_eu_as&os=128";
diff --git a/pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix
index 741abc74f26a5..0af79443ef6d4 100644
--- a/pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcj6510dwlpr/default.nix
@@ -82,6 +82,7 @@ stdenv.mkDerivation rec {
     description  = "Brother MFC-J6510DW LPR driver";
     downloadPage = "http://support.brother.com/g/b/downloadlist.aspx?c=us&lang=en&prod=mfcj6510dw_all&os=128";
     homepage     = "http://www.brother.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license      = with licenses; unfree;
     maintainers  = with maintainers; [ ramkromberg ];
     platforms    = with platforms; linux;
diff --git a/pkgs/misc/cups/drivers/mfcl2700dnlpr/default.nix b/pkgs/misc/cups/drivers/mfcl2700dnlpr/default.nix
index 4b60f548aad59..7e0c95582f533 100644
--- a/pkgs/misc/cups/drivers/mfcl2700dnlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2700dnlpr/default.nix
@@ -37,6 +37,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Brother MFC-L2700DN LPR driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.tv ];
     platforms = [ "i686-linux" ];
diff --git a/pkgs/misc/cups/drivers/mfcl2720dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcl2720dwlpr/default.nix
index fabcee4dc0274..36600a4505aaf 100644
--- a/pkgs/misc/cups/drivers/mfcl2720dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2720dwlpr/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Brother MFC-L2720DW lpr driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ lib.maintainers.xeji ];
diff --git a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
index dc25dbb5a25f2..9c4dfa2f9978f 100644
--- a/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2740dwlpr/default.nix
@@ -36,6 +36,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Brother MFC-L2740DW lpr driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "x86_64-linux" "i686-linux" ];
     maintainers = [ lib.maintainers.Enzime ];
diff --git a/pkgs/misc/cups/drivers/mfcl2750dw/default.nix b/pkgs/misc/cups/drivers/mfcl2750dw/default.nix
index f51a5e74666cf..73753b0dea076 100644
--- a/pkgs/misc/cups/drivers/mfcl2750dw/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl2750dw/default.nix
@@ -86,6 +86,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "http://www.brother.com/";
     description = "Brother MFC-L2750DW printer driver";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = builtins.map (arch: "${arch}-linux") arches;
     maintainers = [ maintainers.lovesegfault ];
diff --git a/pkgs/misc/cups/drivers/mfcl8690cdwlpr/default.nix b/pkgs/misc/cups/drivers/mfcl8690cdwlpr/default.nix
index ee9e8a07baab6..4bb07cbfcad43 100644
--- a/pkgs/misc/cups/drivers/mfcl8690cdwlpr/default.nix
+++ b/pkgs/misc/cups/drivers/mfcl8690cdwlpr/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Brother MFC-L8690CDW LPR printer driver";
     homepage = "http://www.brother.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.fuzzy-id ];
     platforms = [ "i686-linux" ];
diff --git a/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix b/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
index 2ea0e25385399..564a590e0e07f 100644
--- a/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.36/default.nix
@@ -106,6 +106,7 @@ in stdenv.mkDerivation rec {
     description = "Unified Linux Driver for Samsung printers and scanners";
     homepage = "http://www.bchemnet.com/suldr";
     downloadPage = "http://www.bchemnet.com/suldr/driver/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
 
     # Tested on linux-x86_64. Might work on linux-i386.
diff --git a/pkgs/misc/cups/drivers/samsung/1.00.37.nix b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
index 9fb26f62d76d8..0aab52eac5dac 100644
--- a/pkgs/misc/cups/drivers/samsung/1.00.37.nix
+++ b/pkgs/misc/cups/drivers/samsung/1.00.37.nix
@@ -89,6 +89,7 @@ in stdenv.mkDerivation rec {
     description = "Unified Linux Driver for Samsung printers and scanners";
     homepage = "http://www.bchemnet.com/suldr";
     downloadPage = "http://www.bchemnet.com/suldr/driver/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
 
     # Tested on linux-x86_64. Might work on linux-i386.
diff --git a/pkgs/misc/cups/drivers/samsung/4.01.17.nix b/pkgs/misc/cups/drivers/samsung/4.01.17.nix
index 2591cf7356612..12cfcde82f76a 100644
--- a/pkgs/misc/cups/drivers/samsung/4.01.17.nix
+++ b/pkgs/misc/cups/drivers/samsung/4.01.17.nix
@@ -75,6 +75,7 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Samsung's Linux printing drivers; includes binaries without source code";
     homepage = "http://www.samsung.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = platforms.linux;
     maintainers = with maintainers; [ joko ];
diff --git a/pkgs/misc/drivers/epkowa/default.nix b/pkgs/misc/drivers/epkowa/default.nix
index 29ebfa173296c..37e4d2baa35ee 100644
--- a/pkgs/misc/drivers/epkowa/default.nix
+++ b/pkgs/misc/drivers/epkowa/default.nix
@@ -18,6 +18,7 @@
 }:
 let common_meta = {
   homepage = "http://download.ebz.epson.net/dsc/search/01/search/?OSC=LX";
+  sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   license = with lib.licenses; epson;
   platforms = with lib.platforms; linux;
 };
diff --git a/pkgs/misc/drivers/epson-alc1100/default.nix b/pkgs/misc/drivers/epson-alc1100/default.nix
index 641d68d39479f..f39fb0ad17045 100644
--- a/pkgs/misc/drivers/epson-alc1100/default.nix
+++ b/pkgs/misc/drivers/epson-alc1100/default.nix
@@ -63,6 +63,7 @@ in
           };
       '';
 
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = with licenses; [ mit eapl ];
       maintainers = [ maintainers.eperuffo ];
       platforms = platforms.linux;
diff --git a/pkgs/misc/drivers/gutenprint/bin.nix b/pkgs/misc/drivers/gutenprint/bin.nix
index e1fcb838957ce..4b74b191e7f0f 100644
--- a/pkgs/misc/drivers/gutenprint/bin.nix
+++ b/pkgs/misc/drivers/gutenprint/bin.nix
@@ -63,6 +63,7 @@ stdenv.mkDerivation {
   '';
 
   meta = {
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     description = "Some additional CUPS drivers including Canon drivers";
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/misc/drivers/pantum-driver/default.nix b/pkgs/misc/drivers/pantum-driver/default.nix
index 1677dbca6fa7e..fdb54c53fdf68 100644
--- a/pkgs/misc/drivers/pantum-driver/default.nix
+++ b/pkgs/misc/drivers/pantum-driver/default.nix
@@ -46,6 +46,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Pantum universal driver";
     homepage = "https://global.pantum.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" ];
   };
diff --git a/pkgs/misc/drivers/pentablet-driver/default.nix b/pkgs/misc/drivers/pentablet-driver/default.nix
index 91564f2db89f6..a06ae85fb3b36 100644
--- a/pkgs/misc/drivers/pentablet-driver/default.nix
+++ b/pkgs/misc/drivers/pentablet-driver/default.nix
@@ -31,6 +31,7 @@ mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.xp-pen.com/download-46.html";
     description = "Driver for XP-PEN Pentablet drawing tablets";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ ivar ];
diff --git a/pkgs/misc/drivers/steamcontroller/default.nix b/pkgs/misc/drivers/steamcontroller/default.nix
index db5c8e5d903b5..50d1133c38201 100644
--- a/pkgs/misc/drivers/steamcontroller/default.nix
+++ b/pkgs/misc/drivers/steamcontroller/default.nix
@@ -1,5 +1,4 @@
 { lib, fetchFromGitHub, python3Packages, libusb1, linuxHeaders
-, GyroplotSupport ? false
 }:
 
 with python3Packages;
@@ -21,9 +20,7 @@ buildPythonApplication {
   '';
 
   buildInputs = [ libusb1 ];
-  propagatedBuildInputs = [ psutil python3Packages.libusb1 ]
-    ++ lib.optionals GyroplotSupport [ pyqtgraph pyside ];
-
+  propagatedBuildInputs = [ psutil python3Packages.libusb1 ];
   doCheck = false;
   pythonImportsCheck = [ "steamcontroller" ];
 
diff --git a/pkgs/misc/drivers/sundtek/default.nix b/pkgs/misc/drivers/sundtek/default.nix
index d81a278ec135f..da2852e70d56a 100644
--- a/pkgs/misc/drivers/sundtek/default.nix
+++ b/pkgs/misc/drivers/sundtek/default.nix
@@ -45,6 +45,7 @@ in
     meta = {
       description = "Sundtek MediaTV driver";
       maintainers = [ maintainers.simonvandel ];
+      sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
       platforms = platforms.unix;
       license = licenses.unfree;
       homepage = "https://support.sundtek.com/index.php/topic,1573.0.html";
diff --git a/pkgs/misc/drivers/utsushi/networkscan.nix b/pkgs/misc/drivers/utsushi/networkscan.nix
index 09230b16cb44b..c0416a11be3cc 100644
--- a/pkgs/misc/drivers/utsushi/networkscan.nix
+++ b/pkgs/misc/drivers/utsushi/networkscan.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://support.epson.net/linux/en/imagescanv3.php";
     description = "Network scan plugin for ImageScan v3";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ abbradar ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/misc/i3a/default.nix b/pkgs/misc/i3a/default.nix
index 36f58c16cc2dd..3171289bcac70 100644
--- a/pkgs/misc/i3a/default.nix
+++ b/pkgs/misc/i3a/default.nix
@@ -9,9 +9,17 @@ python3Packages.buildPythonApplication rec {
     hash = "sha256-2k1HYtgJ76qXLvX6RmOSKtMMg+K722n8U9YmBANvQvE=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace "python_requires='>=3.7,<3.10'," "python_requires='>=3.7',"
+  '';
+
   nativeBuildInputs = [ python3Packages.setuptools-scm ];
+
   propagatedBuildInputs = [ python3Packages.i3ipc ];
 
+  doCheck = false;
+
   meta = with lib; {
     homepage = "https://git.goral.net.pl/mgoral/i3a";
     description = "A set of scripts used for automation of i3 and sway window manager layouts";
diff --git a/pkgs/misc/opensbi/default.nix b/pkgs/misc/opensbi/default.nix
index 3a3e9edf93a22..558f5c487ae1b 100644
--- a/pkgs/misc/opensbi/default.nix
+++ b/pkgs/misc/opensbi/default.nix
@@ -6,15 +6,19 @@
 
 stdenv.mkDerivation rec {
   pname = "opensbi";
-  version = "1.0";
+  version = "1.1";
 
   src = fetchFromGitHub {
     owner = "riscv-software-src";
     repo = "opensbi";
     rev = "v${version}";
-    sha256 = "sha256-OgzcH+RLU680qF3+lUiWFFbif6YtjIknJriGlRqcOGs=";
+    sha256 = "sha256-k6f4/lWY/f7qqk0AFY4tdEi4cDilSv/jngaJYhKFlnY=";
   };
 
+  postPatch = ''
+    patchShebangs ./scripts
+  '';
+
   installFlags = [
     "I=$(out)"
   ];
diff --git a/pkgs/misc/screensavers/rss-glx/cstddef.patch b/pkgs/misc/screensavers/rss-glx/cstddef.patch
new file mode 100644
index 0000000000000..8bec510b04050
--- /dev/null
+++ b/pkgs/misc/screensavers/rss-glx/cstddef.patch
@@ -0,0 +1,12 @@
+diff --git i/src/Implicit/impSurface.h w/src/Implicit/impSurface.h
+index 41fab81..027587f 100644
+--- i/src/Implicit/impSurface.h
++++ w/src/Implicit/impSurface.h
+@@ -25,6 +25,7 @@
+ #ifdef WIN32
+ 	#include <windows.h>
+ #endif
++#include <cstddef>
+ #include <vector>
+ #include <GL/gl.h>
+ 
diff --git a/pkgs/misc/screensavers/rss-glx/default.nix b/pkgs/misc/screensavers/rss-glx/default.nix
index 981db782c7c92..a90b5d65653e0 100644
--- a/pkgs/misc/screensavers/rss-glx/default.nix
+++ b/pkgs/misc/screensavers/rss-glx/default.nix
@@ -1,4 +1,16 @@
-{lib, stdenv, fetchurl, pkg-config, xlibsWrapper, libXext, libGLU, libGL, imagemagick6, libtiff, bzip2}:
+{ lib
+, stdenv
+, fetchurl
+, autoconf
+, pkg-config
+, xlibsWrapper
+, libXext
+, libGLU
+, libGL
+, imagemagick6
+, libtiff
+, bzip2
+}:
 
 stdenv.mkDerivation rec {
   version = "0.9.1";
@@ -9,9 +21,13 @@ stdenv.mkDerivation rec {
     sha256 = "1aikafjqrfmv23jnrrm5d56dg6injh4l67zjdxzdapv9chw7g3cg";
   };
 
-  nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ autoconf pkg-config ];
   buildInputs = [ libGLU libGL xlibsWrapper imagemagick6 libtiff bzip2 ];
 
+  patches = [
+    ./cstddef.patch
+  ];
+
   NIX_CFLAGS_COMPILE = "-I${imagemagick6.dev}/include/ImageMagick";
   NIX_LDFLAGS= "-rpath ${libXext}/lib";
 
diff --git a/pkgs/misc/uboot/default.nix b/pkgs/misc/uboot/default.nix
index fc874e3d3a8e7..acb9675213d25 100644
--- a/pkgs/misc/uboot/default.nix
+++ b/pkgs/misc/uboot/default.nix
@@ -25,7 +25,7 @@ let
     url = "ftp://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
     hash = "sha256-gbRUMifbIowD+KG/XdvIE7C7j2VVzkYGTvchpvxoBBM=";
   };
-  buildUBoot = {
+  buildUBoot = lib.makeOverridable ({
     version ? null
   , src ? null
   , filesToInstall
@@ -114,7 +114,7 @@ let
       license = licenses.gpl2;
       maintainers = with maintainers; [ bartsch dezgeg samueldr lopsided98 ];
     } // extraMeta;
-  } // removeAttrs args [ "extraMeta" ]);
+  } // removeAttrs args [ "extraMeta" ]));
 in {
   inherit buildUBoot;
 
diff --git a/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix b/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
index 6f666019c3b31..214aa5dfad9ea 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/bsdmake/default.nix
@@ -20,6 +20,12 @@ appleDerivation {
       --replace '-o ''${''${group}OWN_''${.ALLSRC:T}}' "" \
       --replace '-g ''${''${group}GRP_''${.ALLSRC:T}}' "" \
       --replace '-o ''${''${group}OWN} -g ''${''${group}GRP}' ""
+
+    # Workaround for https://github.com/NixOS/nixpkgs/issues/103172
+    # Prevents bsdmake from failing on systems that already had default limits
+    # increased.
+    substituteInPlace main.c \
+      --replace 'err(2, "setrlimit");' 'warn("setrlimit");'
   '';
 
   buildPhase = ''
diff --git a/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix b/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
index f2c4ec32146f2..18233cfc5227f 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/developer_cmds/default.nix
@@ -16,6 +16,10 @@ appleDerivation {
       --replace "/usr/bin/cpp" "$out/bin/clang-cpp"
   '';
 
+  # Workaround build failure on -fno-common toolchains:
+  #   duplicate symbol '_btype_2' in:args.o pr_comment.o
+  NIX_CFLAGS_COMPILE = "-fcommon";
+
   # temporary install phase until xcodebuild has "install" support
   installPhase = ''
     for f in Products/Release/*; do
diff --git a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
index a2f912ca5782c..ef766f7bd7f1e 100644
--- a/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
+++ b/pkgs/os-specific/darwin/apple-source-releases/top/default.nix
@@ -3,6 +3,9 @@
 appleDerivation {
   nativeBuildInputs = [ xcbuildHook ];
   buildInputs = [ apple_sdk.frameworks.IOKit ncurses libutil ];
+  # Workaround build failure on -fno-common toolchains:
+  #   duplicate symbol '_tsamp' in: main.o top.o
+  NIX_CFLAGS_COMPILE = "-fcommon";
   NIX_LDFLAGS = "-lutil";
   installPhase = ''
     install -D Products/Release/libtop.a $out/lib/libtop.a
diff --git a/pkgs/os-specific/darwin/iproute2mac/default.nix b/pkgs/os-specific/darwin/iproute2mac/default.nix
index 915ef7c915889..f542f2c5221be 100644
--- a/pkgs/os-specific/darwin/iproute2mac/default.nix
+++ b/pkgs/os-specific/darwin/iproute2mac/default.nix
@@ -1,21 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, darwin, python2 }:
+{ lib, stdenv, fetchFromGitHub, darwin, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "1.2.1";
+  version = "1.4.0";
   pname = "iproute2mac";
 
   src = fetchFromGitHub {
     owner = "brona";
     repo = "iproute2mac";
     rev = "v${version}";
-    sha256 = "1n6la7blbxza2m79cpnywsavhzsdv4gzdxrkly4dppyidjg6jy1h";
+    sha256 = "sha256-xakCNjmZpdVY7MMxk38EZatrakgkEeDhvljhl+aMmGg=";
   };
 
-  buildInputs = [ python2 ];
+  buildInputs = [ python3 ];
 
   postPatch = ''
     substituteInPlace src/ip.py \
-      --replace /usr/bin/python ${python2}/bin/python \
       --replace /sbin/ifconfig ${darwin.network_cmds}/bin/ifconfig \
       --replace /sbin/route ${darwin.network_cmds}/bin/route \
       --replace /usr/sbin/netstat ${darwin.network_cmds}/bin/netstat \
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
     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.";
     license = licenses.mit;
-    maintainers = with maintainers; [ flokli ];
+    maintainers = with maintainers; [ jiegec ];
     platforms = platforms.darwin;
   };
 }
diff --git a/pkgs/os-specific/darwin/sketchybar/default.nix b/pkgs/os-specific/darwin/sketchybar/default.nix
index d85bdf0b65ca8..a870adf35310b 100644
--- a/pkgs/os-specific/darwin/sketchybar/default.nix
+++ b/pkgs/os-specific/darwin/sketchybar/default.nix
@@ -10,13 +10,13 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sketchybar";
-  version = "2.5.2";
+  version = "2.7.1";
 
   src = fetchFromGitHub {
     owner = "FelixKratz";
     repo = "SketchyBar";
     rev = "v${version}";
-    sha256 = "sha256-xkgNPVrGxmi8377+G1HQ8SdwS0fOnGhwYy43yLRyvF0=";
+    sha256 = "sha256-JzZ7X/McWIui9nkSkSGTSdBvJvMics/j7Qqh9wZU7iM=";
   };
 
   buildInputs = [ Carbon Cocoa SkyLight ]
diff --git a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
index e614be978c067..e8c6a2ae566fb 100644
--- a/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
+++ b/pkgs/os-specific/linux/alsa-project/alsa-utils/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "alsa-utils";
-  version = "1.2.6";
+  version = "1.2.7";
 
   src = fetchurl {
     url = "mirror://alsa/utils/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-ah79ih8dnTjkiWM+rsH/+lwxVmOzFsq4BL5IaIfmFF0=";
+    sha256 = "sha256-6Qa/JAT/BMRI6qPSJtKDpiuaKD8S5P2EV/skusJ05ng=";
   };
 
   nativeBuildInputs = [ gettext makeWrapper ];
diff --git a/pkgs/os-specific/linux/ax99100/default.nix b/pkgs/os-specific/linux/ax99100/default.nix
new file mode 100644
index 0000000000000..9167b4e5f89db
--- /dev/null
+++ b/pkgs/os-specific/linux/ax99100/default.nix
@@ -0,0 +1,29 @@
+{ kernel, stdenv, kmod, lib, fetchzip }:
+stdenv.mkDerivation
+{
+  pname = "ax99100";
+  version = "1.8.0";
+  nativeBuildInputs = [ kmod ] ++ kernel.moduleBuildDependencies;
+  src = fetchzip {
+    url = "https://www.asix.com.tw/en/support/download/file/1229";
+    sha256 = "1rbp1m01qr6b3nbr72vpbw89pjh8mddc60im78z2yjd951xkbcjh";
+    extension = "tar.bz2";
+  };
+
+  makeFlags = [ "KDIR='${kernel.dev}/lib/modules/${kernel.modDirVersion}/build'" ];
+
+  installPhase = ''
+    mkdir -p $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial
+    cp ax99100.ko $out/lib/modules/${kernel.modDirVersion}/kernel/drivers/tty/serial
+  '';
+
+  meta = {
+    description = "ASIX AX99100 Serial and Parralel Port driver";
+    homepage = "https://www.asix.com.tw/en/product/Interface/PCIe_Bridge/AX99100";
+    # According to the source code in the tarball, the license is gpl2.
+    license = lib.licenses.gpl2;
+    platforms = lib.platforms.linux;
+    # currently, the build fails with kernels newer than 5.17
+    broken = lib.versionAtLeast kernel.version "5.18.0";
+  };
+}
diff --git a/pkgs/os-specific/linux/bcc/default.nix b/pkgs/os-specific/linux/bcc/default.nix
index d6e4b059088dc..ab3e2232852bb 100644
--- a/pkgs/os-specific/linux/bcc/default.nix
+++ b/pkgs/os-specific/linux/bcc/default.nix
@@ -77,6 +77,8 @@ python.pkgs.buildPythonApplication rec {
     wrapPythonProgramsIn "$out/share/bcc/tools" "$out $pythonPath"
   '';
 
+  outputs = [ "out" "man" ];
+
   passthru.tests = {
     bpf = nixosTests.bpf;
   };
diff --git a/pkgs/os-specific/linux/bpftrace/default.nix b/pkgs/os-specific/linux/bpftrace/default.nix
index 0dd477ee31d29..cbf5eb4a6dd9f 100644
--- a/pkgs/os-specific/linux/bpftrace/default.nix
+++ b/pkgs/os-specific/linux/bpftrace/default.nix
@@ -62,8 +62,18 @@ stdenv.mkDerivation rec {
 
   # nuke the example/reference output .txt files, for the included tools,
   # stuffed inside $out. we don't need them at all.
+  # (see "Allow skipping examples" for a potential option
+  #  https://github.com/iovisor/bpftrace/pull/2256)
+  #
+  # Pull BPF scripts into $PATH (next to their bcc program equivalents), but do
+  # not move them to keep `${pkgs.bpftrace}/share/bpftrace/tools/...` working.
+  # (remove `chmod` once a new release "Add executable permission to tools"
+  #  https://github.com/iovisor/bpftrace/commit/77e524e6d276216ed6a6e1984cf204418db07c78)
   postInstall = ''
     rm -rf $out/share/bpftrace/tools/doc
+
+    ln -s $out/share/bpftrace/tools/*.bt $out/bin/
+    chmod +x $out/bin/*.bt
   '';
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix
index 636a07edddfd8..3feb590eb5d64 100644
--- a/pkgs/os-specific/linux/busybox/default.nix
+++ b/pkgs/os-specific/linux/busybox/default.nix
@@ -75,6 +75,11 @@ stdenv.mkDerivation rec {
       url = "https://git.alpinelinux.org/aports/plain/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch?id=ed92963eb55bbc8d938097b9ccb3e221a94653f4";
       sha256 = "sha256-vl1wPbsHtXY9naajjnTicQ7Uj3N+EQ8pRNnrdsiow+w=";
     })
+    (fetchurl {
+      name = "CVE-2022-30065.patch";
+      url = "https://git.alpinelinux.org/aports/plain/main/busybox/CVE-2022-30065.patch?id=4ffd996b3f8298c7dd424b912c245864c816e354";
+      sha256 = "sha256-+WSYxI6eF8S0tya/S62f9Nc6jVMnHO0q1OyM69GlNTY=";
+    })
   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch;
 
   separateDebugInfo = true;
diff --git a/pkgs/os-specific/linux/firejail/fix-opengl-support.patch b/pkgs/os-specific/linux/firejail/fix-opengl-support.patch
deleted file mode 100644
index 9fd18aad3fd9c..0000000000000
--- a/pkgs/os-specific/linux/firejail/fix-opengl-support.patch
+++ /dev/null
@@ -1,7 +0,0 @@
---- a/etc/inc/whitelist-run-common.inc.org	2022-05-07 11:27:32.264849186 +0200
-+++ b/etc/inc/whitelist-run-common.inc	2022-05-07 11:27:55.577778211 +0200
-@@ -13,3 +13,4 @@
- whitelist /run/systemd/resolve/resolv.conf
- whitelist /run/systemd/resolve/stub-resolv.conf
- whitelist /run/udev/data
-+whitelist /run/opengl-driver	# NixOS
diff --git a/pkgs/os-specific/linux/firejail/whitelist-nix-profile.patch b/pkgs/os-specific/linux/firejail/whitelist-nix-profile.patch
deleted file mode 100644
index 227d28846ea5f..0000000000000
--- a/pkgs/os-specific/linux/firejail/whitelist-nix-profile.patch
+++ /dev/null
@@ -1,9 +0,0 @@
---- a/etc/inc/whitelist-common.inc.org	2022-05-06 13:57:17.294206339 +0200
-+++ b/etc/inc/whitelist-common.inc	2022-05-06 13:58:00.108655548 +0200
-@@ -83,3 +83,6 @@
- whitelist ${HOME}/.kde4/share/config/oxygenrc
- whitelist ${HOME}/.kde4/share/icons
- whitelist ${HOME}/.local/share/qt5ct
-+
-+# NixOS specific to resolve binary paths
-+whitelist ${HOME}/.nix-profile
diff --git a/pkgs/os-specific/linux/hwdata/default.nix b/pkgs/os-specific/linux/hwdata/default.nix
index f700bf035de89..fe789d51dbb50 100644
--- a/pkgs/os-specific/linux/hwdata/default.nix
+++ b/pkgs/os-specific/linux/hwdata/default.nix
@@ -2,24 +2,25 @@
 
 stdenv.mkDerivation rec {
   pname = "hwdata";
-  version = "0.347";
+  version = "0.360";
 
   src = fetchFromGitHub {
     owner = "vcrhonek";
     repo = "hwdata";
     rev = "v${version}";
-    sha256 = "19kmz25zq6qqs67ppqhws4mh3qf6zrp55cpyxyw36q95yjdcqp21";
+    sha256 = "sha256-dF1Yeb3xH4keQzcydZ3h3kyuSZ1knW/2YAJ8xvFSoMo=";
   };
 
-  preConfigure = "patchShebangs ./configure";
+  postPatch = ''
+    patchShebangs ./configure
+  '';
 
   configureFlags = [ "--datadir=${placeholder "out"}/share" ];
 
   doCheck = false; # this does build machine-specific checks (e.g. enumerates PCI bus)
 
   outputHashMode = "recursive";
-  outputHashAlgo = "sha256";
-  outputHash = "0haaczd6pi9q2vdlvbwn7100sb87zsy64z94xhpbmlari4vzjmz0";
+  outputHash = "sha256-gkgnHy1XwP87qpQiAm31AIAkxgGm5JYxMBr60kvd+gE=";
 
   meta = {
     homepage = "https://github.com/vcrhonek/hwdata";
diff --git a/pkgs/os-specific/linux/kernel-headers/default.nix b/pkgs/os-specific/linux/kernel-headers/default.nix
index d4d438e78a00e..d07c9073e6a17 100644
--- a/pkgs/os-specific/linux/kernel-headers/default.nix
+++ b/pkgs/os-specific/linux/kernel-headers/default.nix
@@ -84,12 +84,12 @@ let
 in {
   inherit makeLinuxHeaders;
 
-  linuxHeaders = let version = "5.17"; in
+  linuxHeaders = let version = "5.18"; in
     makeLinuxHeaders {
       inherit version;
       src = fetchurl {
         url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-        sha256 = "1cdi43x4c3l4chznh57gm55szycj4wjlxl1dss1ilnfvvmhyypsm";
+        sha256 = "1vjwhl4s8qxfg1aabn8xnpjza3qzrjcp5450h9qpjvl999lg3wsi";
       };
       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 d8084bbfcccf1..5f0d5d3809913 100644
--- a/pkgs/os-specific/linux/kernel/common-config.nix
+++ b/pkgs/os-specific/linux/kernel/common-config.nix
@@ -41,7 +41,8 @@ let
         (whenBetween "5.2" "5.18" yes)
       ];
       DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT = whenAtLeast "5.18" yes;
-      DEBUG_INFO_BTF            = whenAtLeast "5.2" (option yes);
+      # Disabled on 32-bit platforms, fails to build on 5.15+ with `Failed to parse base BTF 'vmlinux': -22`
+      DEBUG_INFO_BTF            = whenAtLeast "5.2" (option (if stdenv.hostPlatform.is32bit && (versionAtLeast version "5.15") then no else yes));
       BPF_LSM                   = whenAtLeast "5.7" (option yes);
       DEBUG_KERNEL              = yes;
       DEBUG_DEVRES              = no;
@@ -920,6 +921,9 @@ let
       TASK_DELAY_ACCT = yes;
       TASK_XACCT = yes;
       TASK_IO_ACCOUNTING = yes;
+
+      # Fresh toolchains frequently break -Werror build for minor issues.
+      WERROR = whenAtLeast "5.15" no;
     } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") {
       # Enable CPU/memory hotplug support
       # Allows you to dynamically add & remove CPUs/memory to a VM client running NixOS without requiring a reboot
diff --git a/pkgs/os-specific/linux/kernel/hardened/patches.json b/pkgs/os-specific/linux/kernel/hardened/patches.json
index 7f2ee97406eea..fb8c448f7fb8f 100644
--- a/pkgs/os-specific/linux/kernel/hardened/patches.json
+++ b/pkgs/os-specific/linux/kernel/hardened/patches.json
@@ -2,71 +2,61 @@
     "4.14": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.14.282-hardened1.patch",
-            "sha256": "0f7av5llr1ccx0k6z2p2spaqk4jfaw9555gf59303zgxsvakavmi",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.282-hardened1/linux-hardened-4.14.282-hardened1.patch"
+            "name": "linux-hardened-4.14.284-hardened1.patch",
+            "sha256": "0hj6hmkv3ikgps0jrwl5jgg9pdw6mxi3iblr20r4yp8anxcrvaws",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.14.284-hardened1/linux-hardened-4.14.284-hardened1.patch"
         },
-        "sha256": "18sp2qvk8dkjrlxwf4d470282m9wyvhajvyys9vs94rh1i3whdv6",
-        "version": "4.14.282"
+        "sha256": "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq",
+        "version": "4.14.284"
     },
     "4.19": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-4.19.246-hardened1.patch",
-            "sha256": "00827r0hiiia95z4nwvbqi1jxj5bzh8hna3d4p08gj2pvq5rwvxk",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.246-hardened1/linux-hardened-4.19.246-hardened1.patch"
+            "name": "linux-hardened-4.19.248-hardened1.patch",
+            "sha256": "09bnw0f8rd5hf4k4w4n4sb3ggsw48nkxsrnxd9b8vn6jyqhv9n3s",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/4.19.248-hardened1/linux-hardened-4.19.248-hardened1.patch"
         },
-        "sha256": "0fmsglkvdgdmrkm53vyi9d4hvdl4py9qn1z0mni224n96rd2zb80",
-        "version": "4.19.246"
+        "sha256": "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4",
+        "version": "4.19.248"
     },
     "5.10": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.10.121-hardened1.patch",
-            "sha256": "1a7mvfnm15ci81129mpvh3gn6w75bq0i1ydv02zyngk9cz5mgjc1",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.121-hardened1/linux-hardened-5.10.121-hardened1.patch"
+            "name": "linux-hardened-5.10.124-hardened1.patch",
+            "sha256": "1fjwi5al5i0qb7a7viljb755ylqj3m5qp10835a3q91ad6zkjjnf",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.10.124-hardened1/linux-hardened-5.10.124-hardened1.patch"
         },
-        "sha256": "1iljaaiwqg30rqb9zxrxc4l1p56q75jf0zvsrmn67z2a12sffi4h",
-        "version": "5.10.121"
+        "sha256": "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc",
+        "version": "5.10.124"
     },
     "5.15": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.15.46-hardened1.patch",
-            "sha256": "1ndvrr98mn40705dsfkyda9ny5r273bl9f6n1xb5ndx34j396wrh",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.46-hardened1/linux-hardened-5.15.46-hardened1.patch"
+            "name": "linux-hardened-5.15.49-hardened1.patch",
+            "sha256": "0p14bhqk0a4xzr11cc6gqc0ncc1a3cmvwyvisbsp7b74ax9w5qbm",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.15.49-hardened1/linux-hardened-5.15.49-hardened1.patch"
         },
-        "sha256": "0srp0wypl24gf5yz91mpk1c2kllabq6wvby1wqrrbdwvfx35figb",
-        "version": "5.15.46"
-    },
-    "5.17": {
-        "patch": {
-            "extra": "-hardened1",
-            "name": "linux-hardened-5.17.14-hardened1.patch",
-            "sha256": "017dq8ngg3mxnfffjkf1knkzii8hsf1gsi65zla34n7kjyajlchq",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.17.14-hardened1/linux-hardened-5.17.14-hardened1.patch"
-        },
-        "sha256": "0r2skbgxzw42cn29mr7i9w7fczzxhc1lx3xvri44ljjyfdqn7r0b",
-        "version": "5.17.14"
+        "sha256": "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j",
+        "version": "5.15.49"
     },
     "5.18": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.18.3-hardened1.patch",
-            "sha256": "1kfnknpw2g39j7gqy6mqjmkaxkmdigx617rz2vpqvjxddfv59764",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.18.3-hardened1/linux-hardened-5.18.3-hardened1.patch"
+            "name": "linux-hardened-5.18.6-hardened1.patch",
+            "sha256": "0y0s50z4qrkcd0s7rlsk8nw1xibwy2i5vigm6526ch77d61g231m",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.18.6-hardened1/linux-hardened-5.18.6-hardened1.patch"
         },
-        "sha256": "1sngy576db1zl2284kd0j8ds4biln0q98wnywirzsg3c0w2v8367",
-        "version": "5.18.3"
+        "sha256": "0y1l2cgn8rak1050fn65a9xnapqyfq2dv8bijl150y44g6g2l72f",
+        "version": "5.18.6"
     },
     "5.4": {
         "patch": {
             "extra": "-hardened1",
-            "name": "linux-hardened-5.4.197-hardened1.patch",
-            "sha256": "0kqfviyx5aigadm051y9xkbyscnn9f92zwqxkjkxhpn0y684i7n5",
-            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.197-hardened1/linux-hardened-5.4.197-hardened1.patch"
+            "name": "linux-hardened-5.4.200-hardened1.patch",
+            "sha256": "1mpcvgri079v8js8y2angwmksyk07vhyi2b5b24bxxdbm1s5a58s",
+            "url": "https://github.com/anthraxx/linux-hardened/releases/download/5.4.200-hardened1/linux-hardened-5.4.200-hardened1.patch"
         },
-        "sha256": "1a1nzrx873vwlpm018l6rk19yh59badvwsknw3chbkbhzjrigbf2",
-        "version": "5.4.197"
+        "sha256": "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga",
+        "version": "5.4.200"
     }
 }
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index 4ee7bae776336..a18ac3ac5edb5 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.14.282";
+  version = "4.14.284";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18sp2qvk8dkjrlxwf4d470282m9wyvhajvyys9vs94rh1i3whdv6";
+    sha256 = "1f7bidisa6b4ff0mgn66h1nmf94j5mcx4wnkwnd9f49im6hcqllq";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 2c34b151031a6..4d322c8ed6d39 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "4.19.246";
+  version = "4.19.248";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0fmsglkvdgdmrkm53vyi9d4hvdl4py9qn1z0mni224n96rd2zb80";
+    sha256 = "0cdflfk6l13slw1cawpkhpjzbbnffcbyffrh29p9jg73pdqx23y4";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.9.nix b/pkgs/os-specific/linux/kernel/linux-4.9.nix
index e55a187208f1b..3c6aed36f3981 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.9.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.9.nix
@@ -1,12 +1,12 @@
 { buildPackages, fetchurl, perl, buildLinux, nixosTests, stdenv, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.9.317";
+  version = "4.9.319";
   extraMeta.branch = "4.9";
   extraMeta.broken = stdenv.isAarch64;
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "06qdqcplslnp1ncaqvp5yjr294rz3x4qrxnv522v76awj6dkd8vy";
+    sha256 = "11242bn95k51knm9da7xk7r10vk7iji06wix1cq4g5nzldrfp9sp";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.10.nix b/pkgs/os-specific/linux/kernel/linux-5.10.nix
index 5b28b814c00a0..9f4dcb001af5d 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.10.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.10.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.10.121";
+  version = "5.10.124";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1iljaaiwqg30rqb9zxrxc4l1p56q75jf0zvsrmn67z2a12sffi4h";
+    sha256 = "0yz3yw02b6b1sq800r46x5b3dagswb6z4clrfq485c4669sb2ipc";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.15.nix b/pkgs/os-specific/linux/kernel/linux-5.15.nix
index af9deb63c34b2..2b96065d84fe0 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.15.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.15.nix
@@ -1,9 +1,9 @@
-{ lib, stdenv, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
+{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
 
 with lib;
 
 buildLinux (args // rec {
-  version = "5.15.46";
+  version = "5.15.49";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -11,10 +11,8 @@ buildLinux (args // rec {
   # branchVersion needs to be x.y
   extraMeta.branch = versions.majorMinor version;
 
-  extraMeta.broken = stdenv.isi686;
-
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0srp0wypl24gf5yz91mpk1c2kllabq6wvby1wqrrbdwvfx35figb";
+    sha256 = "1p2r02h2z0j34hpkp3kr4741pr15ii72b94zllravx27pa9phj9j";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.17.nix b/pkgs/os-specific/linux/kernel/linux-5.17.nix
deleted file mode 100644
index b4eea2a18c9ef..0000000000000
--- a/pkgs/os-specific/linux/kernel/linux-5.17.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, buildPackages, fetchurl, perl, buildLinux, nixosTests, modDirVersionArg ? null, ... } @ args:
-
-with lib;
-
-buildLinux (args // rec {
-  version = "5.17.14";
-
-  # modDirVersion needs to be x.y.z, will automatically add .0 if needed
-  modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
-
-  # branchVersion needs to be x.y
-  extraMeta.branch = versions.majorMinor version;
-
-  src = fetchurl {
-    url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "0r2skbgxzw42cn29mr7i9w7fczzxhc1lx3xvri44ljjyfdqn7r0b";
-  };
-} // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.18.nix b/pkgs/os-specific/linux/kernel/linux-5.18.nix
index a4d889b3e9197..a5b50a6269e4b 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.18.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.18.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.18.3";
+  version = "5.18.6";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1sngy576db1zl2284kd0j8ds4biln0q98wnywirzsg3c0w2v8367";
+    sha256 = "0y1l2cgn8rak1050fn65a9xnapqyfq2dv8bijl150y44g6g2l72f";
   };
 } // (args.argsOverride or { }))
diff --git a/pkgs/os-specific/linux/kernel/linux-5.4.nix b/pkgs/os-specific/linux/kernel/linux-5.4.nix
index 0fa70aaa08694..2f7a5f372cfe1 100644
--- a/pkgs/os-specific/linux/kernel/linux-5.4.nix
+++ b/pkgs/os-specific/linux/kernel/linux-5.4.nix
@@ -3,7 +3,7 @@
 with lib;
 
 buildLinux (args // rec {
-  version = "5.4.197";
+  version = "5.4.200";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStringsSep "." (take 3 (splitVersion "${version}.0")) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v5.x/linux-${version}.tar.xz";
-    sha256 = "1a1nzrx873vwlpm018l6rk19yh59badvwsknw3chbkbhzjrigbf2";
+    sha256 = "1f15al9g4cd17fm43im5rqqrbz1cqhz2hq5ycpqvwa02pydprsga";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-libre.nix b/pkgs/os-specific/linux/kernel/linux-libre.nix
index 159584f607ff5..8b4382f80a0ba 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 = "18777";
-    sha256 = "0ycg799pdi3rarkdgrrxcfjl15n8i24d9zc54xhg79wpgxcv39n3";
+    rev = "18798";
+    sha256 = "04mxzf8k3g65yw73da9fgk27hraf69239m5757fsr5a6pj88z6lb";
   }
 , ...
 }:
diff --git a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
index 51f47cea2c45f..a1748156d098a 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing-bcachefs.nix
@@ -17,6 +17,7 @@
     extraMeta = {
       branch = "master";
       maintainers = with lib.maintainers; [ davidak Madouura ];
+      broken = true;
     };
   } // argsOverride;
 
diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix
index 0e9a632ddb56d..504cb1267429c 100644
--- a/pkgs/os-specific/linux/kernel/linux-zen.nix
+++ b/pkgs/os-specific/linux/kernel/linux-zen.nix
@@ -2,7 +2,7 @@
 
 let
   # having the full version string here makes it easier to update
-  modDirVersion = "5.18.1-zen1";
+  modDirVersion = "5.18.5-zen1";
   parts = lib.splitString "-" modDirVersion;
   version = lib.elemAt parts 0;
   suffix = lib.elemAt parts 1;
@@ -20,7 +20,7 @@ buildLinux (args // {
     owner = "zen-kernel";
     repo = "zen-kernel";
     inherit rev;
-    sha256 = "sha256-LCLfLE85NifuskYl2dxLOJEsUNHLegF8ecYyU4xOCtY=";
+    sha256 = "sha256-q6a8Wyzs6GNQ39mV+q/9N6yo/kXS9ZH+QTfGka42gk4=";
   };
 
   structuredExtraConfig = with lib.kernel; {
diff --git a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
index 795bedb99d4d1..95004f4479418 100755
--- a/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
+++ b/pkgs/os-specific/linux/nixos-rebuild/nixos-rebuild.sh
@@ -49,6 +49,8 @@ while [ "$#" -gt 0 ]; do
         ;;
       switch|boot|test|build|edit|dry-build|dry-run|dry-activate|build-vm|build-vm-with-bootloader)
         if [ "$i" = dry-run ]; then i=dry-build; fi
+        # exactly one action mandatory, bail out if multiple are given
+        if [ -n "$action" ]; then showSyntax; fi
         action="$i"
         ;;
       --install-grub)
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder.sh b/pkgs/os-specific/linux/nvidia-x11/builder.sh
index 75eb5d8757be8..da41837cfc2e0 100755
--- a/pkgs/os-specific/linux/nvidia-x11/builder.sh
+++ b/pkgs/os-specific/linux/nvidia-x11/builder.sh
@@ -147,6 +147,11 @@ installPhase() {
         fi
     fi
 
+    if [ -n "$firmware" ]; then
+        # Install the GSP firmware
+        install -Dm644 firmware/gsp.bin $firmware/lib/firmware/nvidia/$version/gsp.bin
+    fi
+
     # All libs except GUI-only are installed now, so fixup them.
     for libname in $(find "$out/lib/" $(test -n "$lib32" && echo "$lib32/lib/") $(test -n "$bin" && echo "$bin/lib/") -name '*.so.*')
     do
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 8e7b3cfa6c8e2..4577a33e1be0f 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -3,9 +3,7 @@
 let
   generic = args: let
     imported = import ./generic.nix args;
-  in if lib.versionAtLeast args.version "391"
-    && stdenv.hostPlatform.system != "x86_64-linux" then null
-  else callPackage imported {
+  in callPackage imported {
     lib32 = (pkgsi686Linux.callPackage imported {
       libsOnly = true;
       kernel = null;
@@ -21,6 +19,7 @@ rec {
     then generic {
       version = "515.48.07";
       sha256_64bit = "sha256-4odkzFsTwy52NwUT2ur8BcKJt37gURVSRQ8aAOMa4eM=";
+      openSha256 = "sha256-EGIrdabPr+AhQxXhFb8XXumuPxC+U6XEeIeSYFvA/q4=";
       settingsSha256 = "sha256-XwdMsAAu5132x2ZHqjtFvcBJk6Dao7I86UksxrOkknU=";
       persistencedSha256 = "sha256-BTfYNDJKe4tOvV71/1JJSPltJua0Mx/RvDcWT5ccRRY=";
     }
@@ -32,6 +31,7 @@ rec {
   beta = generic {
     version = "515.43.04";
     sha256_64bit = "sha256-PodaTTUOSyMW8rtdtabIkSLskgzAymQyfToNlwxPPcc=";
+    openSha256 = "sha256-1bAr5dWZ4jnY3Uo2JaEz/rhw2HuW9LZ5bACmA1VG068=";
     settingsSha256 = "sha256-j47LtP6FNTPfiXFh9KwXX8vZOQzlytA30ZfW9N5F2PY=";
     persistencedSha256 = "sha256-hULBy0wnVpLH8I0L6O9/HfgvJURtE2whpXOgN/vb3Wo=";
   };
@@ -46,6 +46,7 @@ rec {
     settingsSha256 = "sha256-fq6RlD6g3uylvvTjE4MmaQwxPJYU0u6IMfpPVzks0tI=";
     persistencedSha256 = "sha256-eHvauvh8Wd+b8DK6B3ZWNjoWGztupWrR8iog9ok58io=";
     url = "https://developer.nvidia.com/vulkan-beta-${lib.concatStrings (lib.splitString "." version)}-linux";
+    broken = kernel.kernelAtLeast "5.17";
   };
 
   # Update note:
diff --git a/pkgs/os-specific/linux/nvidia-x11/generic.nix b/pkgs/os-specific/linux/nvidia-x11/generic.nix
index bc867d8b82b9e..768d4179111fb 100644
--- a/pkgs/os-specific/linux/nvidia-x11/generic.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/generic.nix
@@ -2,6 +2,7 @@
 , url ? null
 , sha256_32bit ? null
 , sha256_64bit
+, openSha256 ? null
 , settingsSha256
 , settingsVersion ? version
 , persistencedSha256
@@ -27,13 +28,14 @@
   disable32Bit ? false
   # 32 bit libs only version of this package
 , lib32 ? null
+  # Whether to extract the GSP firmware
+, firmware ? openSha256 != null
 }:
 
 with lib;
 
 assert !libsOnly -> kernel != null;
 assert versionOlder version "391" -> sha256_32bit != null;
-assert versionAtLeast version "391" -> stdenv.hostPlatform.system == "x86_64-linux";
 
 let
   nameSuffix = optionalString (!libsOnly) "-${kernel.version}";
@@ -72,7 +74,8 @@ let
 
     outputs = [ "out" ]
         ++ optional i686bundled "lib32"
-        ++ optional (!libsOnly) "bin";
+        ++ optional (!libsOnly) "bin"
+        ++ optional (!libsOnly && firmware) "firmware";
     outputDev = if libsOnly then null else "bin";
 
     kernel = if libsOnly then null else kernel.dev;
@@ -100,6 +103,7 @@ let
     disallowedReferences = optional (!libsOnly) [ kernel.dev ];
 
     passthru = {
+      open = mapNullable (hash: callPackage (import ./open.nix self hash) { }) openSha256;
       settings = (if settings32Bit then pkgsi686Linux.callPackage else callPackage) (import ./settings.nix self settingsSha256) {
         withGtk2 = preferGtk2;
         withGtk3 = !preferGtk2;
diff --git a/pkgs/os-specific/linux/nvidia-x11/open.nix b/pkgs/os-specific/linux/nvidia-x11/open.nix
new file mode 100644
index 0000000000000..18b699221ef81
--- /dev/null
+++ b/pkgs/os-specific/linux/nvidia-x11/open.nix
@@ -0,0 +1,37 @@
+nvidia_x11: hash:
+{ stdenv
+, lib
+, fetchFromGitHub
+, kernel
+}:
+
+stdenv.mkDerivation {
+  pname = "nvidia-open";
+  version = "${kernel.version}-${nvidia_x11.version}";
+
+  src = fetchFromGitHub {
+    owner = "NVIDIA";
+    repo = "open-gpu-kernel-modules";
+    rev = nvidia_x11.version;
+    inherit hash;
+  };
+
+  nativeBuildInputs = kernel.moduleBuildDependencies;
+
+  makeFlags = kernel.makeFlags ++ [
+    "SYSSRC=${kernel.dev}/lib/modules/${kernel.modDirVersion}/source"
+    "SYSOUT=${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
+    "MODLIB=$(out)/lib/modules/${kernel.modDirVersion}"
+  ];
+
+  installTargets = [ "modules_install" ];
+  enableParallelBuilding = true;
+
+  meta = with lib; {
+    description = "NVIDIA Linux Open GPU Kernel Module";
+    homepage = "https://github.com/NVIDIA/open-gpu-kernel-modules";
+    license = with licenses; [ gpl2Plus mit ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ nickcao ];
+  };
+}
diff --git a/pkgs/os-specific/linux/open-iscsi/default.nix b/pkgs/os-specific/linux/open-iscsi/default.nix
index a4f6565f0c708..ebeb3516f243d 100644
--- a/pkgs/os-specific/linux/open-iscsi/default.nix
+++ b/pkgs/os-specific/linux/open-iscsi/default.nix
@@ -4,7 +4,7 @@
 
 stdenv.mkDerivation rec {
   pname = "open-iscsi";
-  version = "2.1.4";
+  version = "2.1.7";
 
   nativeBuildInputs = [ autoconf automake gettext libtool perl pkgconf ];
   buildInputs = [ kmod open-isns.lib openssl systemd util-linux ];
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
     owner = "open-iscsi";
     repo = "open-iscsi";
     rev = version;
-    sha256 = "sha256-HnvLLwxOnu7Oiige6A6zk9NmAI2ImcILp9eCfbdGiyI=";
+    sha256 = "sha256-R1ttHHxVSQ5TGtWVy4I9BAmEJfcRhKRD5jThoeddjUw=";
   };
 
   DESTDIR = "$(out)";
@@ -23,8 +23,17 @@ stdenv.mkDerivation rec {
 
   preConfigure = ''
     sed -i 's|/usr|/|' Makefile
+
+    # Remove blanket -Werror. Fails for minor error on gcc-11.
+    substituteInPlace usr/Makefile --replace ' -Werror ' ' '
   '';
 
+  # avoid /usr/bin/install
+  makeFlags = [
+    "INSTALL=install"
+    "SED=sed"
+  ];
+
   installFlags = [
     "install"
     "install_systemd"
diff --git a/pkgs/os-specific/linux/rtw88/default.nix b/pkgs/os-specific/linux/rtw88/default.nix
index 06fd2786c7cfb..bbff4f6e4a714 100644
--- a/pkgs/os-specific/linux/rtw88/default.nix
+++ b/pkgs/os-specific/linux/rtw88/default.nix
@@ -5,13 +5,13 @@ let
 in
 stdenv.mkDerivation {
   pname = "rtw88";
-  version = "unstable-2022-05-08";
+  version = "unstable-2022-06-03";
 
   src = fetchFromGitHub {
     owner = "lwfinger";
     repo = "rtw88";
-    rev = "dbcc43c31a4576f90e1e468d3a85c2dfdb25ec42";
-    hash = "sha256-IDHolspYtwjV5r5WArWl1g4zgKLvPd4ydKKH/aE5NSg=";
+    rev = "03da251c76ea1005b42625825c39181e12d75693";
+    sha256 = "0l5ysp4x5wzrn48sfjv3rciqhq5ldcmk86b9x6j9775zjj7yw8hw";
   };
 
   nativeBuildInputs = kernel.moduleBuildDependencies;
diff --git a/pkgs/os-specific/linux/system76-io/default.nix b/pkgs/os-specific/linux/system76-io/default.nix
index fb697430f61c1..54af222bc7d88 100644
--- a/pkgs/os-specific/linux/system76-io/default.nix
+++ b/pkgs/os-specific/linux/system76-io/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchFromGitHub, kernel }:
 let
-  version = "1.0.1";
-  sha256 = "0qkgkkjy1isv6ws6hrcal75dxjz98rpnvqbm7agdcc6yv0c17wwh";
+  version = "1.0.2";
+  sha256 = "sha256-DWUjQmoojkzFv1p4Xyt0kOwwqQ216ocO5yR/ujhhMPA=";
 in
 stdenv.mkDerivation {
   name = "system76-io-module-${version}-${kernel.version}";
diff --git a/pkgs/os-specific/linux/tinyalsa/default.nix b/pkgs/os-specific/linux/tinyalsa/default.nix
new file mode 100644
index 0000000000000..45d9191eea081
--- /dev/null
+++ b/pkgs/os-specific/linux/tinyalsa/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, cmake
+}:
+
+stdenv.mkDerivation rec {
+  pname = "tinyalsa";
+  version = "unstable-2022-06-05";
+
+  src = fetchFromGitHub {
+    owner = "tinyalsa";
+    repo = "tinyalsa";
+    rev = "3d70d227e7dfd1be6f8f420a5aae164a2b4126e0";
+    hash = "sha256-RHeF3VShy+LYFtJK+AEU7swIr5/rnpg2fdllnH9cFCk=";
+  };
+
+  nativeBuildInputs = [
+    cmake
+  ];
+
+  cmakeFlags = [
+    "-DTINYALSA_USES_PLUGINS=ON"
+  ];
+
+  NIX_CFLAGS_COMPILE = toString [
+    "-Wno-error=sign-compare"
+  ];
+
+  meta = with lib; {
+    homepage = "https://github.com/tinyalsa/tinyalsa";
+    description = "Tiny library to interface with ALSA in the Linux kernel";
+    license = licenses.mit;
+    maintainers = with maintainers; [ AndersonTorres ];
+    platforms = with platforms; linux;
+  };
+}
diff --git a/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch b/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
new file mode 100644
index 0000000000000..0e98214678502
--- /dev/null
+++ b/pkgs/os-specific/linux/tiscamera/0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
@@ -0,0 +1,25 @@
+From 90b540bd135de2587352719b14c385b20aa572be Mon Sep 17 00:00:00 2001
+From: Raymond Gauthier <jraygauthier@gmail.com>
+Date: Wed, 15 Jun 2022 16:09:58 -0400
+Subject: [PATCH] cmake-find-aravis: fix pkg cfg include dirs
+
+---
+ cmake/modules/FindAravis.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cmake/modules/FindAravis.cmake b/cmake/modules/FindAravis.cmake
+index 5dab5431..811302b9 100644
+--- a/cmake/modules/FindAravis.cmake
++++ b/cmake/modules/FindAravis.cmake
+@@ -20,7 +20,7 @@ find_path(aravis_INCLUDE_DIR
+ 	arv.h
+ 	PATHS
+ 	${aravis_PKGCONF_INCLUDE_DIRS}
+-	${aravis0_6_PKGCONF_INCLUDE_DIRS}
++	${aravis0_8_PKGCONF_INCLUDE_DIRS}
+ 	/usr/local/include
+ 	# /usr/local/include/aravis-0.4
+ 	/usr/local/include/aravis-0.8
+-- 
+2.31.1
+
diff --git a/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch b/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
new file mode 100644
index 0000000000000..3d1e5503bcd3d
--- /dev/null
+++ b/pkgs/os-specific/linux/tiscamera/0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
@@ -0,0 +1,70 @@
+From 5e7146e176cb1b01b47d16a66763469dccd87f25 Mon Sep 17 00:00:00 2001
+From: Raymond Gauthier <jraygauthier@gmail.com>
+Date: Thu, 9 Jun 2022 19:45:30 -0400
+Subject: [PATCH] tcamconvert&tcamsrc: add missing include/lib dirs
+
+These were building libraries with dependencies on gstreamer-video
+and gstreamer-base but weren't adding the proper include and
+lib directories which resulted in build failure on systems
+where video and base aren't installed in the same location
+as gstreamer itself (e.g: nix, nixos).
+---
+ src/gstreamer-1.0/tcamconvert/CMakeLists.txt |  2 ++
+ src/gstreamer-1.0/tcamsrc/CMakeLists.txt     | 11 +++++++++++
+ 2 files changed, 13 insertions(+)
+
+diff --git a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
+index 30563c38..066cb5d7 100644
+--- a/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
++++ b/src/gstreamer-1.0/tcamconvert/CMakeLists.txt
+@@ -28,6 +28,8 @@ add_library(tcamconvert SHARED
+ target_include_directories(tcamconvert
+   PRIVATE
+   ${GSTREAMER_INCLUDE_DIRS}
++  ${GSTREAMER_BASE_INCLUDE_DIRS}
++  ${GSTREAMER_VIDEO_INCLUDE_DIRS}
+   )
+ 
+ set_project_warnings(tcamconvert)
+diff --git a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
+index 3bc7ed97..ed5be37f 100644
+--- a/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
++++ b/src/gstreamer-1.0/tcamsrc/CMakeLists.txt
+@@ -21,12 +21,15 @@ add_library(gsttcamstatistics SHARED
+ target_include_directories(gsttcamstatistics
+   PRIVATE
+   ${GSTREAMER_INCLUDE_DIRS}
++  ${GSTREAMER_BASE_INCLUDE_DIRS}
++  ${GSTREAMER_VIDEO_INCLUDE_DIRS}
+   )
+ 
+ target_link_libraries( gsttcamstatistics
+   PRIVATE
+   ${GSTREAMER_LIBRARIES}
+   ${GSTREAMER_BASE_LIBRARIES}
++  ${GSTREAMER_VIDEO_LIBRARIES}
+   )
+ 
+ 
+@@ -53,10 +56,18 @@ add_library(gsttcamsrc SHARED
+ 	tcambind.cpp
+     )
+ 
++  target_include_directories(gsttcamsrc
++    PRIVATE
++    ${GSTREAMER_INCLUDE_DIRS}
++    ${GSTREAMER_BASE_INCLUDE_DIRS}
++    ${GSTREAMER_VIDEO_INCLUDE_DIRS}
++    )
++
+   target_link_libraries( gsttcamsrc
+     PRIVATE
+ 	${GSTREAMER_LIBRARIES}
+ 	${GSTREAMER_BASE_LIBRARIES}
++    ${GSTREAMER_VIDEO_LIBRARIES}
+ 
+ 	tcamgstbase
+ 	tcam::gst-helper
+-- 
+2.31.1
+
diff --git a/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch b/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch
new file mode 100644
index 0000000000000..9b373516aa9bc
--- /dev/null
+++ b/pkgs/os-specific/linux/tiscamera/0001-udev-rules-fix-install-location.patch
@@ -0,0 +1,25 @@
+From fdbc0b74812b9afd663226715375b5688e5408b5 Mon Sep 17 00:00:00 2001
+From: Raymond Gauthier <jraygauthier@gmail.com>
+Date: Thu, 9 Jun 2022 20:23:02 -0400
+Subject: [PATCH] udev/rules: fix install location
+
+---
+ CMakeInstall.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeInstall.cmake b/CMakeInstall.cmake
+index 4773091f..962c9b09 100644
+--- a/CMakeInstall.cmake
++++ b/CMakeInstall.cmake
+@@ -92,7 +92,7 @@ else()
+ 
+   else()
+ 
+-    set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
++    set(TCAM_INSTALL_UDEV "${CMAKE_INSTALL_PREFIX}/lib/udev/rules.d" CACHE PATH "udev rules installation path" FORCE)
+     set(TCAM_INSTALL_SYSTEMD "${CMAKE_INSTALL_PREFIX}/lib/systemd/system/" CACHE PATH "systemd unit installation path" FORCE)
+ 
+     set(TCAM_INSTALL_PKGCONFIG "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig" CACHE PATH "pkgconfig installation path" FORCE)
+-- 
+2.31.1
+
diff --git a/pkgs/os-specific/linux/tiscamera/default.nix b/pkgs/os-specific/linux/tiscamera/default.nix
index 1182aead36bed..e16c2dffe50aa 100644
--- a/pkgs/os-specific/linux/tiscamera/default.nix
+++ b/pkgs/os-specific/linux/tiscamera/default.nix
@@ -3,82 +3,111 @@
 , fetchFromGitHub
 , cmake
 , pkg-config
-, pcre
-, tinyxml
+, runtimeShell
+, catch2
+, elfutils
+, libselinux
+, libsepol
+, libunwind
 , libusb1
+, libuuid
 , libzip
+, orc
+, pcre
+, zstd
 , glib
 , gobject-introspection
 , gst_all_1
-, libwebcam
-, libunwind
-, elfutils
-, orc
-, python3Packages
-, libuuid
 , wrapGAppsHook
-, catch2
+, withDoc ? true
+, sphinx
+, graphviz
+, withAravis ? true
+, aravis
+, meson
+, withAravisUsbVision ? withAravis
+, withGui ? true
+, qt5
 }:
 
 stdenv.mkDerivation rec {
   pname = "tiscamera";
-  version = "0.13.1";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "TheImagingSource";
     repo = pname;
     rev = "v-${pname}-${version}";
-    sha256 = "0hpy9yhc4mn6w8gvzwif703smmcys0j2jqbz2xfghqxcyb0ykplj";
+    sha256 = "0msz33wvqrji11kszdswcvljqnjflmjpk0aqzmsv6i855y8xn6cd";
   };
 
+  patches = [
+    ./0001-tcamconvert-tcamsrc-add-missing-include-lib-dirs.patch
+    ./0001-udev-rules-fix-install-location.patch
+    ./0001-cmake-find-aravis-fix-pkg-cfg-include-dirs.patch
+  ];
+
   postPatch = ''
     cp ${catch2}/include/catch2/catch.hpp external/catch/catch.hpp
+
+    substituteInPlace ./data/udev/80-theimagingsource-cameras.rules.in \
+      --replace "/bin/sh" "${runtimeShell}/bin/sh" \
+      --replace "typically /usr/bin/" "" \
+      --replace "typically /usr/share/theimagingsource/tiscamera/uvc-extension/" ""
   '';
 
   nativeBuildInputs = [
     cmake
     pkg-config
-    python3Packages.wrapPython
     wrapGAppsHook
+  ] ++ lib.optionals withDoc [
+    sphinx
+    graphviz
+  ] ++ lib.optionals withAravis [
+    meson
+  ] ++ lib.optionals withGui [
+    qt5.wrapQtAppsHook
   ];
 
   buildInputs = [
-    pcre
-    tinyxml
+    elfutils
+    libselinux
+    libsepol
+    libunwind
     libusb1
+    libuuid
     libzip
+    orc
+    pcre
+    zstd
     glib
     gobject-introspection
     gst_all_1.gstreamer
     gst_all_1.gst-plugins-base
-    libwebcam
-    libunwind
-    elfutils
-    orc
-    libuuid
-    python3Packages.python
-    python3Packages.pyqt5
+    gst_all_1.gst-plugins-good
+    gst_all_1.gst-plugins-bad
+    gst_all_1.gst-plugins-ugly
+  ] ++ lib.optionals withAravis [
+    aravis
+  ] ++ lib.optionals withGui [
+    qt5.qtbase
   ];
 
-  pythonPath = with python3Packages; [ pyqt5 pygobject3 ];
-
-  propagatedBuildInputs = pythonPath;
+  hardeningDisable = [ "format" ];
 
   cmakeFlags = [
-    "-DBUILD_ARAVIS=OFF" # For GigE support. Won't need it as our camera is usb.
-    "-DBUILD_GST_1_0=ON"
-    "-DBUILD_TOOLS=ON"
-    "-DBUILD_V4L2=ON"
-    "-DBUILD_LIBUSB=ON"
-    "-DBUILD_TESTS=ON"
-    "-DTCAM_INSTALL_UDEV=${placeholder "out"}/lib/udev/rules.d"
-    "-DTCAM_INSTALL_UVCDYNCTRL=${placeholder "out"}/share/uvcdynctrl/data/199e"
-    "-DTCAM_INSTALL_GST_1_0=${placeholder "out"}/lib/gstreamer-1.0"
-    "-DTCAM_INSTALL_GIR=${placeholder "out"}/share/gir-1.0"
-    "-DTCAM_INSTALL_TYPELIB=${placeholder "out"}/lib/girepository-1.0"
-    "-DTCAM_INSTALL_SYSTEMD=${placeholder "out"}/etc/systemd/system"
-    "-DTCAM_INSTALL_PYTHON3_MODULES=${placeholder "out"}/lib/${python3Packages.python.libPrefix}/site-packages"
-    "-DGSTREAMER_1.0_INCLUDEDIR=${placeholder "out"}/include/gstreamer-1.0"
+    "-DTCAM_BUILD_GST_1_0=ON"
+    "-DTCAM_BUILD_TOOLS=ON"
+    "-DTCAM_BUILD_V4L2=ON"
+    "-DTCAM_BUILD_LIBUSB=ON"
+    "-DTCAM_BUILD_TESTS=ON"
+    "-DTCAM_BUILD_ARAVIS=${if withAravis then "ON" else "OFF"}"
+    "-DTCAM_BUILD_DOCUMENTATION=${if withDoc then "ON" else "OFF"}"
+    "-DTCAM_BUILD_WITH_GUI=${if withGui then "ON" else "OFF"}"
+    "-DTCAM_DOWNLOAD_MESON=OFF"
+    "-DTCAM_INTERNAL_ARAVIS=OFF"
+    "-DTCAM_ARAVIS_USB_VISION=${if withAravis && withAravisUsbVision then "ON" else "OFF"}"
+    "-DTCAM_INSTALL_FORCE_PREFIX=ON"
     # There are gobject introspection commands launched as part of the build. Those have a runtime
     # dependency on `libtcam` (which itself is built as part of this build). In order to allow
     # that, we set the dynamic linker's path to point on the build time location of the library.
@@ -90,8 +119,17 @@ stdenv.mkDerivation rec {
   # gstreamer tests requires, besides gst-plugins-bad, plugins installed by this expression.
   checkPhase = "ctest --force-new-ctest-process -E gstreamer";
 
-  postFixup = ''
-    wrapPythonPrograms "$out $pythonPath"
+  # wrapGAppsHook: make sure we add ourselves to the introspection
+  # and gstreamer paths.
+  GI_TYPELIB_PATH = "${placeholder "out"}/lib/girepository-1.0";
+  GST_PLUGIN_SYSTEM_PATH_1_0 = "${placeholder "out"}/lib/gstreamer-1.0";
+
+  QT_PLUGIN_PATH = lib.optionalString withGui "${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}";
+
+  dontWrapQtApps = true;
+
+  preFixup = ''
+    gappsWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
   meta = with lib; {
diff --git a/pkgs/os-specific/linux/upower/default.nix b/pkgs/os-specific/linux/upower/default.nix
index f083184a1145c..2ef6d8c8243d7 100644
--- a/pkgs/os-specific/linux/upower/default.nix
+++ b/pkgs/os-specific/linux/upower/default.nix
@@ -1,12 +1,16 @@
 { lib
 , stdenv
 , fetchFromGitLab
+, fetchpatch
 , pkg-config
 , rsync
 , libxslt
 , meson
 , ninja
 , python3
+, dbus
+, umockdev
+, libeatmydata
 , gtk-doc
 , docbook-xsl-nons
 , udev
@@ -23,7 +27,7 @@
 
 stdenv.mkDerivation rec {
   pname = "upower";
-  version = "0.99.17";
+  version = "0.99.19";
 
   outputs = [ "out" "dev" ]
     ++ lib.optionals withDocs [ "devdoc" ];
@@ -33,9 +37,18 @@ stdenv.mkDerivation rec {
     owner = "upower";
     repo = "upower";
     rev = "v${version}";
-    sha256 = "xvvqzGxgkuGcvnO12jnLURNJUoSlnMw2g/mnII+i6Bs=";
+    sha256 = "gpLsBh4jgiDO8bxic2BTFhjIwc2q/tuAIxykTHqK6UM=";
   };
 
+  patches = [
+    # Fix test
+    # https://gitlab.freedesktop.org/upower/upower/-/merge_requests/150
+    (fetchpatch {
+      url = "https://gitlab.freedesktop.org/upower/upower/-/commit/a78ee6039054770b466749f8ec4bfbe4c278d697.patch";
+      sha256 = "aUPXnr/2PlOZNb7mQl43hmKe01DtuBUrGnqvwBFRf7Q=";
+    })
+  ];
+
   strictDeps = true;
 
   depsBuildBuild = [
@@ -64,6 +77,16 @@ stdenv.mkDerivation rec {
     libimobiledevice
   ];
 
+  checkInputs = [
+    python3.pkgs.dbus-python
+    python3.pkgs.python-dbusmock
+    python3.pkgs.pygobject3
+    dbus
+    umockdev
+    libeatmydata
+    python3.pkgs.packaging
+  ];
+
   propagatedBuildInputs = [
     glib
   ];
@@ -74,16 +97,37 @@ stdenv.mkDerivation rec {
     "-Dos_backend=linux"
     "-Dsystemdsystemunitdir=${placeholder "out"}/etc/systemd/system"
     "-Dudevrulesdir=${placeholder "out"}/lib/udev/rules.d"
+    "-Dudevhwdbdir=${placeholder "out"}/lib/udev/hwdb.d"
     "-Dintrospection=${if (stdenv.buildPlatform == stdenv.hostPlatform) then "auto" else "disabled"}"
     "-Dgtk-doc=${lib.boolToString withDocs}"
   ];
 
-  doCheck = false; # fails with "env: './linux/integration-test': No such file or directory"
+  doCheck = true;
 
   postPatch = ''
+    patchShebangs src/linux/integration-test.py
     patchShebangs src/linux/unittest_inspector.py
   '';
 
+  preCheck = ''
+    # Our gobject-introspection patches make the shared library paths absolute
+    # in the GIR files. When running tests, the library is not yet installed,
+    # though, so we need to replace the absolute path with a local one during build.
+    # We are using a symlink that will be overwitten during installation.
+    mkdir -p "$out/lib"
+    ln -s "$PWD/libupower-glib/libupower-glib.so" "$out/lib/libupower-glib.so.3"
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+
+    # Slow fsync calls can make self-test fail:
+    # https://gitlab.freedesktop.org/upower/upower/-/issues/195
+    eatmydata meson test --print-errorlogs
+
+    runHook postCheck
+  '';
+
   postInstall = ''
     # Move stuff from DESTDIR to proper location.
     # We use rsync to merge the directories.
diff --git a/pkgs/os-specific/linux/waydroid/default.nix b/pkgs/os-specific/linux/waydroid/default.nix
index 1390077a60d14..0a0a4019e9839 100644
--- a/pkgs/os-specific/linux/waydroid/default.nix
+++ b/pkgs/os-specific/linux/waydroid/default.nix
@@ -16,13 +16,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "waydroid";
-  version = "1.2.0";
+  version = "1.2.1";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "03d87sh443kn0j2mpih1g909khkx3wgb04h605f9jhd0znskkbmw";
+    sha256 = "sha256-Sf1rl8GCSTuneuYroGqsm9Aq2rBurpyswOrfCq2mWOs=";
   };
 
   propagatedBuildInputs = with python3Packages; [
diff --git a/pkgs/os-specific/linux/wpa_supplicant/default.nix b/pkgs/os-specific/linux/wpa_supplicant/default.nix
index 1d58d47cf6635..2d954d83ecf3a 100644
--- a/pkgs/os-specific/linux/wpa_supplicant/default.nix
+++ b/pkgs/os-specific/linux/wpa_supplicant/default.nix
@@ -44,6 +44,7 @@ stdenv.mkDerivation rec {
     CONFIG_EAP_PWD=y
     CONFIG_EAP_SAKE=y
     CONFIG_ELOOP=eloop
+    CONFIG_EXT_PASSWORD_FILE=y
     CONFIG_HS20=y
     CONFIG_HT_OVERRIDES=y
     CONFIG_IEEE80211AC=y
diff --git a/pkgs/os-specific/linux/zfs/default.nix b/pkgs/os-specific/linux/zfs/default.nix
index 5a5fd2d19a8a2..eec2d1ad04abc 100644
--- a/pkgs/os-specific/linux/zfs/default.nix
+++ b/pkgs/os-specific/linux/zfs/default.nix
@@ -16,7 +16,7 @@
 , enablePython ? true
 
 # for determining the latest compatible linuxPackages
-, linuxPackages_5_17 ? pkgs.linuxKernel.packages.linux_5_17
+, linuxPackages_5_18 ? pkgs.linuxKernel.packages.linux_5_18
 }:
 
 let
@@ -216,28 +216,28 @@ in {
   # to be adapted
   zfsStable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelOlder "5.18";
-    latestCompatibleLinuxPackages = linuxPackages_5_17;
+    kernelCompatible = kernel.kernelOlder "5.19";
+    latestCompatibleLinuxPackages = linuxPackages_5_18;
 
     # this package should point to the latest release.
-    version = "2.1.4";
+    version = "2.1.5";
 
-    sha256 = "sha256-pHz1N2j+d9p1xleEBwwrmK9mN5gEyM69Suy0dsrkZT4=";
+    sha256 = "sha256-a9rmuPO8R8UfxdHvwjfFuYRGn97a1MPmLZRvr3l0swE=";
   };
 
   zfsUnstable = common {
     # check the release notes for compatible kernels
-    kernelCompatible = kernel.kernelOlder "5.18";
-    latestCompatibleLinuxPackages = linuxPackages_5_17;
+    kernelCompatible = kernel.kernelOlder "5.19";
+    latestCompatibleLinuxPackages = linuxPackages_5_18;
 
     # this package should point to a version / git revision compatible with the latest kernel release
     # 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.1.4";
+    version = "2.1.5";
     # rev = "0000000000000000000000000000000000000000";
 
-    sha256 = "sha256-pHz1N2j+d9p1xleEBwwrmK9mN5gEyM69Suy0dsrkZT4=";
+    sha256 = "sha256-a9rmuPO8R8UfxdHvwjfFuYRGn97a1MPmLZRvr3l0swE=";
 
     isUnstable = true;
   };
diff --git a/pkgs/pkgs-lib/formats.nix b/pkgs/pkgs-lib/formats.nix
index fc52128a7e999..cdcbd3663422a 100644
--- a/pkgs/pkgs-lib/formats.nix
+++ b/pkgs/pkgs-lib/formats.nix
@@ -50,25 +50,25 @@ rec {
       };
     in valueType;
 
-    generate = name: value: pkgs.runCommand name {
-      nativeBuildInputs = [ pkgs.jq ];
+    generate = name: value: pkgs.callPackage ({ runCommand, jq }: runCommand name {
+      nativeBuildInputs = [ jq ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
     } ''
       jq . "$valuePath"> $out
-    '';
+    '') {};
 
   };
 
   yaml = {}: {
 
-    generate = name: value: pkgs.runCommand name {
-        nativeBuildInputs = [ pkgs.remarshal ];
-        value = builtins.toJSON value;
-        passAsFile = [ "value" ];
-      } ''
-        json2yaml "$valuePath" "$out"
-      '';
+    generate = name: value: pkgs.callPackage ({ runCommand, remarshal }: runCommand name {
+      nativeBuildInputs = [ remarshal ];
+      value = builtins.toJSON value;
+      passAsFile = [ "value" ];
+    } ''
+      json2yaml "$valuePath" "$out"
+    '') {};
 
     type = with lib.types; let
       valueType = nullOr (oneOf [
@@ -161,13 +161,13 @@ rec {
       };
     in valueType;
 
-    generate = name: value: pkgs.runCommand name {
-      nativeBuildInputs = [ pkgs.remarshal ];
+    generate = name: value: pkgs.callPackage ({ runCommand, remarshal }: runCommand name {
+      nativeBuildInputs = [ remarshal ];
       value = builtins.toJSON value;
       passAsFile = [ "value" ];
     } ''
       json2toml "$valuePath" "$out"
-    '';
+    '') {};
 
   };
 
diff --git a/pkgs/servers/adguardhome/default.nix b/pkgs/servers/adguardhome/default.nix
index dbf9e14ebc67d..b193fd2cfdfe5 100644
--- a/pkgs/servers/adguardhome/default.nix
+++ b/pkgs/servers/adguardhome/default.nix
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
     description = "Network-wide ads & trackers blocking DNS server";
     platforms = builtins.attrNames sources;
     maintainers = with maintainers; [ numkem iagoq ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
   };
 }
diff --git a/pkgs/servers/bird/default.nix b/pkgs/servers/bird/default.nix
index 5c5fec3d892a4..4ea9d6a030564 100644
--- a/pkgs/servers/bird/default.nix
+++ b/pkgs/servers/bird/default.nix
@@ -1,11 +1,11 @@
-{ lib, stdenv, fetchurl, fetchpatch, flex, bison, readline, libssh, nixosTests }:
+{ lib, stdenv, fetchurl, flex, bison, readline, libssh, nixosTests }:
 
 stdenv.mkDerivation rec {
   pname = "bird";
-  version = "2.0.9";
+  version = "2.0.10";
 
   src = fetchurl {
-    sha256 = "sha256-dnhrvN7TBh4bsiGwEfLMACIewGPenNoASn2bBhoJbV4=";
+    sha256 = "sha256-ftNB3djch/qXNlhrNRVEeoQ2/sRC1l9AIhVaud4f/Vo=";
     url = "ftp://bird.network.cz/pub/bird/${pname}-${version}.tar.gz";
   };
 
@@ -14,10 +14,6 @@ stdenv.mkDerivation rec {
 
   patches = [
     ./dont-create-sysconfdir-2.patch
-    (fetchurl {
-      url = "https://gitlab.nic.cz/labs/bird/-/commit/fcb4dd0c831339c4374ace17d8f2ae6ebfeed279.patch";
-      sha256 = "sha256-PEgpRnOGLa1orHJDEHlblnVhBVv7XOKPR70M1wUMxMQ=";
-    })
   ];
 
   CPP="${stdenv.cc.targetPrefix}cpp -E";
diff --git a/pkgs/servers/calibre-web/default.nix b/pkgs/servers/calibre-web/default.nix
index 20e0e8f1383ee..9e7a9cae17309 100644
--- a/pkgs/servers/calibre-web/default.nix
+++ b/pkgs/servers/calibre-web/default.nix
@@ -2,7 +2,6 @@
 , fetchFromGitHub
 , nixosTests
 , python3
-, python3Packages
 }:
 
 python3.pkgs.buildPythonApplication rec {
@@ -16,9 +15,10 @@ python3.pkgs.buildPythonApplication rec {
     sha256 = "sha256-KjmpFetNhNM5tL34e/Pn1i3hc86JZglubSMsHZWu198=";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python3.pkgs; [
     advocate
     backports_abc
+    chardet
     flask-babel
     flask_login
     flask_principal
diff --git a/pkgs/servers/cayley/default.nix b/pkgs/servers/cayley/default.nix
index 97aac4272cead..ec94b19ae49cb 100644
--- a/pkgs/servers/cayley/default.nix
+++ b/pkgs/servers/cayley/default.nix
@@ -1,29 +1,39 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "cayley";
-  version = "0.7.5";
-
-  goPackagePath = "github.com/cayleygraph/cayley";
+  version = "0.7.7";
+  rev = "dcf764fef381f19ee49fad186b4e00024709f148";
 
   src = fetchFromGitHub {
     owner = "cayleygraph";
     repo = "cayley";
     rev = "v${version}";
-    sha256 = "1zfxa9z6spi6xw028mvbc7c3g517gn82g77ywr6picl47fr2blnd";
+    sha256 = "sha256-jIX0v6ujiQvEAb/mKkrpNgsY0YLkJYHy2sUfQnooE48=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-SSjHGJoW3I7r8emh3IwmiZQIVzdilAsA2ULdAqld2fA=";
+
+  subPackages = [ "cmd/cayley" ];
 
-  ldflags = [
-    "-X=main.Version=${version}"
+  ldflags = let basename = "github.com/cayleygraph/cayley/version"; in [
+    "-s"
+    "-w"
+    "-X ${basename}.Version=${src.rev}"
+    "-X ${basename}.GitHash=${rev}"
   ];
 
-  meta = {
-    homepage = "https://github.com/cayleygraph/cayley";
-    description = "A graph database inspired by Freebase and Knowledge Graph";
-    maintainers = with lib.maintainers; [ sigma ];
-    license = lib.licenses.asl20;
-    platforms = lib.platforms.unix;
+  meta = with lib; {
+    description = "Graph database designed for ease of use and storing complex data";
+    longDescription = ''
+      Cayley is an open-source database for Linked Data. It is inspired by the
+      graph database behind Google's Knowledge Graph (formerly Freebase).
+    '';
+    homepage = "https://cayley.io/";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ sigma ];
   };
 }
diff --git a/pkgs/servers/cayley/deps.nix b/pkgs/servers/cayley/deps.nix
deleted file mode 100644
index d4ec2670365b0..0000000000000
--- a/pkgs/servers/cayley/deps.nix
+++ /dev/null
@@ -1,471 +0,0 @@
-# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
-[
-  {
-    goPackagePath  = "github.com/badgerodon/peg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/badgerodon/peg";
-      rev =  "9e5f7f4d07ca576562618c23e8abadda278b684f";
-      sha256 = "12vd7hzdgknn8byz77lmvcrz9m5lvmffdnz2wwk83304przkra11";
-    };
-  }
-  {
-    goPackagePath  = "github.com/boltdb/bolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/boltdb/bolt";
-      rev =  "e9cf4fae01b5a8ff89d0ec6b32f0d9c9f79aefdd";
-      sha256 = "1sjxzz88bw0y37mk3xvwb9j5v7bz3r80rwg79jml6liqk1arnl99";
-    };
-  }
-  {
-    goPackagePath  = "github.com/cznic/mathutil";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cznic/mathutil";
-      rev =  "1447ad269d64ca91aa8d7079baa40b6fc8b965e7";
-      sha256 = "1r9c20k2h65g38yxf3vd46nbayx1cz5w4q4yr1xfggcs0mmrb87i";
-    };
-  }
-  {
-    goPackagePath  = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev =  "346938d642f2ec3594ed81d874461961cd0faa76";
-      sha256 = "0d4jfmak5p6lb7n2r6yvf5p1zcw0l8j74kn55ghvr7zr7b7axm6c";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dennwc/graphql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dennwc/graphql";
-      rev =  "12cfed44bc5de083875506a36d30f9798f9bca47";
-      sha256 = "1rfsxjjsik5618y2741lcyw56a4d4l6r04sbj1igrvcck9bz0k6a";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dlclark/regexp2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dlclark/regexp2";
-      rev =  "902a5ce7a7812e2ba9f73b9d96c09d5136df39cd";
-      sha256 = "0ypmdayq50ilbmqa1wjq5nvs9igbxkzlc8phlknw244935wz3v15";
-    };
-  }
-  {
-    goPackagePath  = "github.com/dop251/goja";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dop251/goja";
-      rev =  "ef8c030e3c96c5054c2f10ef925e7041e0583c07";
-      sha256 = "15419apwdpbl0lgnl9xj9wyl05vpiz6jqgj8zbcyxhzy0wycj445";
-    };
-  }
-  {
-    goPackagePath  = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev =  "4da3e2cfbabc9f751898f250b49f2439785783a1";
-      sha256 = "1y2l9jaf99j6gidcfdgq3hifxyiwv4f7awpll80p170ixdbqxvl3";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/couchdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/couchdb";
-      rev =  "74d231fe43245e77840213724894264f0f61ffd3";
-      sha256 = "0ga6d6y44wg8ync73wcyc7q7r3sr5vdj5qkn3yqn9yn4p0k2w89i";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/kivik";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/kivik";
-      rev =  "2a1f6b9dd407886bc59c0c28faed28fbce3b0ece";
-      sha256 = "0fpa62mriyiyl5dh5kg8858bqrwiwscpbkg9np69lk302znxalij";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-kivik/pouchdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kivik/pouchdb";
-      rev =  "bbd1ab79be17c809842e193b1f84e924b6b599ba";
-      sha256 = "15kv6i94j73c8zzy5hnmf051d3i65wxc07hvass9lc4g5ad7f9vf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sourcemap/sourcemap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sourcemap/sourcemap";
-      rev =  "b019cc30c1eaa584753491b0d8f8c1534bf1eb44";
-      sha256 = "03k44fdrnknba05f7cd58lq4rzk7jdpiqksmc0wxrdzwschrbgw8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev =  "147bd02c2c516cf9a8878cb75898ee8a9eea0228";
-      sha256 = "0s75nilz1jx0vgc69jgmys95lsq9j9nfdjcc8inc8mhzh3qpjb74";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev =  "30433562cfbf487fe1df7cd26c7bab168d2f14d0";
-      sha256 = "155iv0jqgh0d8cykghw3ifwk8pjyyq1w4gr9khhf78n01k6180hj";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev =  "23def4e6c14b4da8ac2ed8007337bc5eb5007998";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev =  "18c9bb3261723cd5401db4d0c9fbc5c3b6c70fe8";
-      sha256 = "0fbf8ymrcb23imkhlrlyq6i0x5w8gxzilljjsgd4hnvjgpgp3r4v";
-    };
-  }
-  {
-    goPackagePath  = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev =  "553a641470496b2327abcac10b36396bd98e45c9";
-      sha256 = "0kssxnih1l722hx9219c7javganjqkqhvl3i0hp0hif6xm6chvqk";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gopherjs/gopherjs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/gopherjs";
-      rev =  "558a9132744c22476178edf3126fd35a9754f565";
-      sha256 = "13mn0li83amgm4fgsm6l3shs2r4kjddr10xn0ydnr9ymg1y887vi";
-    };
-  }
-  {
-    goPackagePath  = "github.com/gopherjs/jsbuiltin";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gopherjs/jsbuiltin";
-      rev =  "67703bfb044e3192fbcab025c3aeaeedafad1f2f";
-      sha256 = "1k0df0z9fiyzbr1g1736zdp238j9z82q3gwkk060h2n84rg4c7lh";
-    };
-  }
-  {
-    goPackagePath  = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev =  "7fa7fff964d035e8a162cce3a164b3ad02ad651b";
-      sha256 = "0p3dyhpc0ajakcww3a45n750z2030xqhlswzf51d5rzid27681wp";
-    };
-  }
-  {
-    goPackagePath  = "github.com/imdario/mergo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/imdario/mergo";
-      rev =  "0d4b488675fdec1dde48751b05ab530cf0b630e1";
-      sha256 = "071rram7aib70f3gk4ansgwns82w9i6m1px8mgc8x4rs9ana4qhf";
-    };
-  }
-  {
-    goPackagePath  = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev =  "76626ae9c91c4f2a10f34cad8ce83ea42c93bb75";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath  = "github.com/jackc/pgx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jackc/pgx";
-      rev =  "606697ffdfe6603013560dbc171656de57b4f542";
-      sha256 = "0818yb2vjjwwmscdab7wnxbyiabvy544icdczdlr5kswbqq5h25m";
-    };
-  }
-  {
-    goPackagePath  = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev =  "6f3f3919c8781ce5c0509c83fffc887a7830c938";
-      sha256 = "1hmqdpv2zywwglmnjnxfn27mkac81n3nqs1wandlpybsww4vn4kx";
-    };
-  }
-  {
-    goPackagePath  = "github.com/lib/pq";
-    fetch = {
-      type = "git";
-      url = "https://github.com/lib/pq";
-      rev =  "2704adc878c21e1329f46f6e56a1c387d788ff94";
-      sha256 = "160fmvi7bczxw3i3h5s821hv029ph5ld8x3c36b4cz2sr30wp110";
-    };
-  }
-  {
-    goPackagePath  = "github.com/linkeddata/gojsonld";
-    fetch = {
-      type = "git";
-      url = "https://github.com/linkeddata/gojsonld";
-      rev =  "4f5db6791326b8962ede4edbba693edcf20fd1ad";
-      sha256 = "11g1kygkn55whaf49q2bzxk0w8b3nhdhiaixsj2ik65j8bl9g2cq";
-    };
-  }
-  {
-    goPackagePath  = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev =  "51463bfca2576e06c62a8504b5c0f06d61312647";
-      sha256 = "0d7hr78y8gg2mrm5z4jjgm2w3awkznz383b7wvyzk3l33jw6i288";
-    };
-  }
-  {
-    goPackagePath  = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev =  "cc8532a8e9a55ea36402aa21efdf403a60d34096";
-      sha256 = "0705c0hq7b993sabnjy65yymvpy9w1j84bg9bjczh5607z16nw86";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pborman/uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pborman/uuid";
-      rev =  "1b00554d822231195d1babd97ff4a781231955c9";
-      sha256 = "0rjkcf85sagdwzsycj1bbjyx5bgmrc1i8l5qf1f44z24rhbbkaan";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pelletier/go-buffruneio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-buffruneio";
-      rev =  "c37440a7cf42ac63b919c752ca73a85067e05992";
-      sha256 = "0l83p1gg6g5mmhmxjisrhfimhbm71lwn1r2w7d6siwwqm9q08sd2";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev =  "fe206efb84b2bc8e8cfafe6b4c1826622be969e3";
-      sha256 = "1dlabfpnlzvwf4i86idy8ilqpjsl8yqfgdv0nv5cccm8gkcans5w";
-    };
-  }
-  {
-    goPackagePath  = "github.com/peterh/liner";
-    fetch = {
-      type = "git";
-      url = "https://github.com/peterh/liner";
-      rev =  "88609521dc4b6c858fd4c98b628147da928ce4ac";
-      sha256 = "0jacb2fqgiccb98v1875j5xvj01l1z2laga1kgr8lhd0nl22r96k";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev =  "e881fd58d78e04cf6d0de1217f8707c8cc2249bc";
-      sha256 = "0vfhj598jp6dzy4pbyjdrqxzb5kppw8ggvfh78g80nz11r34xnzs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev =  "d8ed2627bdf02c080bf22230dbb337003b7aba2d";
-      sha256 = "0w1jp4k4zbnrxh3jvh8fgbjgqpf2hg31pbj8fb32kh26px9ldpbs";
-    };
-  }
-  {
-    goPackagePath  = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev =  "b253417e1cb644d645a0a3bb1fa5034c8030127c";
-      sha256 = "1knj8vabymhmkg12cj3hnpqf3b74wwrvqib12yczcvpi52xaqi20";
-    };
-  }
-  {
-    goPackagePath  = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev =  "79c90efaf01eddc01945af5bc1797859189b830b";
-      sha256 = "1dj8v91gv1ssw2j88gjzr1hw0n63qqxykjzfbvspyi529xn3ji3y";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev =  "9be650865eab0c12963d8753212f4f9c66cdcf12";
-      sha256 = "12dhh6d07304lsjv7c4p95hkip0hnshqhwivdw39pbypgg0p8y34";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev =  "acbeb36b902d72a7a4c18e8f3241075e7ab763e4";
-      sha256 = "0w25s6gjbbwv47b9208hysyqqphd6pib3d2phg24mjy4wigkm050";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev =  "7b1b6e8dc027253d45fc029bc269d1c019f83a34";
-      sha256 = "1nhnlpmbqq1ggix7jaxmzr8awk1zrrzag4vzq1p5q5l25d6kih35";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev =  "fa7ca7e836cf3a8bb4ebf799f472c12d7e903d66";
-      sha256 = "0404b7bzx7cq1b2bgdb3gs7gjzm4vvg1hl2y9mcm4m6vz56vbcz8";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev =  "f1d95a35e132e8a1868023a08932b14f0b8b8fcb";
-      sha256 = "0fwvkyq36jvy2gid81031ll7qaj8jxr5g36fff7hhkp3hh4kz6zh";
-    };
-  }
-  {
-    goPackagePath  = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev =  "0967fc9aceab2ce9da34061253ac10fb99bba5b2";
-      sha256 = "016syis0rvccp2indjqi1vnz3wk7c9dhkvkgam0j79sb019kl80f";
-    };
-  }
-  {
-    goPackagePath  = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev =  "87b1dfb5b2fa649f52695dd9eae19abe404a4308";
-      sha256 = "1iyfxs3nxdn1fyfqv3gggxcxab66a3m6cmjkhqhcapxm3qvgbrlc";
-    };
-  }
-  {
-    goPackagePath  = "github.com/syndtr/goleveldb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/syndtr/goleveldb";
-      rev =  "b89cc31ef7977104127d34c1bd31ebd1a9db2199";
-      sha256 = "0pbmssaw7fsgspv0jr3hsd1208qqxcvy4faks9hypqgl5gwday4p";
-    };
-  }
-  {
-    goPackagePath  = "github.com/tylertreat/BoomFilters";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tylertreat/BoomFilters";
-      rev =  "37e169ae37ed529d93ecacb509c0dc80078478fc";
-      sha256 = "15wwdsxxvkgxbxv3v0ywnwjwndpmps49n3a49z7bzjl7r2nsm7qv";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev =  "da118f7b8e5954f39d0d2130ab35d4bf0e3cb344";
-      sha256 = "09xpndqc6a2r0lw42cyl1pkhfddl01sd9c3qqjjwp3vmxm004whv";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev =  "9ccfe848b9db8435a24c424abbc07a921adf1df5";
-      sha256 = "0wn3p7nrf9lx5svnya5mxy5b8cxqs2rp8lxc477szna313m1jhs4";
-    };
-  }
-  {
-    goPackagePath  = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev =  "470f45bf29f4147d6fbd7dfd0a02a848e49f5bf4";
-      sha256 = "1yzh1qxwd0xkh0k04hwp7yii21i26b4ngxvm1g98qlji1g2wbjbc";
-    };
-  }
-  {
-    goPackagePath  = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev =  "170382fa85b10b94728989dfcf6cc818b335c952";
-      sha256 = "0dqx24qc7h53p16xnkwn2jpk3wjjlvv48akqk74vx31pr2nn0g56";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/mgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-mgo/mgo";
-      rev =  "3f83fa5005286a7fe593b055f0d7771a7dce4655";
-      sha256 = "19vwb6qlcyh3nh6pkk0bynwmr5cmi6mm4hdz01lwb4ybnkzxryc7";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/olivere/elastic.v5";
-    fetch = {
-      type = "git";
-      url = "https://github.com/olivere/elastic";
-      rev =  "79ff368708b3a2a9da641dc831d95fd0782bf4ef";
-      sha256 = "1lq8nhjnkf246nl5h40ldh1qz2yx73yaqfmsh9ddvkwn4173c7jj";
-    };
-  }
-  {
-    goPackagePath  = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-yaml/yaml";
-      rev =  "cd8b52f8269e0feb286dfeef29f8fe4d5b397e0b";
-      sha256 = "1hj2ag9knxflpjibck0n90jrhsrqz7qvad4qnif7jddyapi9bqzl";
-    };
-  }
-]
diff --git a/pkgs/servers/computing/slurm/default.nix b/pkgs/servers/computing/slurm/default.nix
index 1a9d2d53a1b2d..341c89c4a0c3b 100644
--- a/pkgs/servers/computing/slurm/default.nix
+++ b/pkgs/servers/computing/slurm/default.nix
@@ -6,13 +6,14 @@
 , libjwt
 , libyaml
 , json_c
+, http-parser
 # enable internal X11 support via libssh2
 , enableX11 ? true
 }:
 
 stdenv.mkDerivation rec {
   pname = "slurm";
-  version = "22.05.0.1";
+  version = "22.05.2.1";
 
   # N.B. We use github release tags instead of https://www.schedmd.com/downloads.php
   # because the latter does not keep older releases.
@@ -21,7 +22,7 @@ stdenv.mkDerivation rec {
     repo = "slurm";
     # The release tags use - instead of .
     rev = "${pname}-${builtins.replaceStrings ["."] ["-"] version}";
-    sha256 = "0bc8kycrc5a8kqffbd03k22z38f7z8fj725iniq8hz6srhf5nxgs";
+    sha256 = "1zfv5n7cqqn3c78h2svjazbdkdchyrk54prn2bq5diw80wgcmyrc";
   };
 
   outputs = [ "out" "dev" ];
@@ -53,10 +54,12 @@ stdenv.mkDerivation rec {
       libmysqlclient ncurses gtk2 lz4 rdma-core
       lua hwloc numactl readline freeipmi shadow.su
       pmix json_c libjwt libyaml dbus libbpf
+      http-parser
   ] ++ lib.optionals enableX11 [ xorg.xauth ];
 
   configureFlags = with lib;
     [ "--with-freeipmi=${freeipmi}"
+      "--with-http-parser=${http-parser}"
       "--with-hwloc=${hwloc.dev}"
       "--with-json=${json_c.dev}"
       "--with-jwt=${libjwt}"
diff --git a/pkgs/servers/confluencepot/default.nix b/pkgs/servers/confluencepot/default.nix
new file mode 100644
index 0000000000000..242e2b93d7ad9
--- /dev/null
+++ b/pkgs/servers/confluencepot/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "confluencepot";
+  version = "1.0.0";
+
+  src = fetchFromGitHub {
+    owner = "SIFalcon";
+    repo = "confluencePot";
+    rev = "v${version}";
+    hash = "sha256-jIbL6prOUII8o9FghIYa80BytJ9SSuyj/TZmAxwAbJk=";
+  };
+
+  vendorSha256 = "sha256-nzPHx+c369T4h9KETqMurxZK3LsJAhwBaunkcWIW3Ps=";
+
+  postPatch = ''
+    substituteInPlace confluencePot.go \
+      --replace "confluence.html" "$out/share/confluence.html"
+  '';
+
+  postInstall = lib.optionalString (!stdenv.isDarwin) ''
+    mv $out/bin/confluencePot $out/bin/${pname}
+  '';
+
+  preFixup = ''
+    # Install HTML file
+    install -vD confluence.html -t $out/share
+  '';
+
+  meta = with lib; {
+    description = "Honeypot for the Atlassian Confluence OGNL injection vulnerability";
+    homepage = "https://github.com/SIFalcon/confluencePot";
+    longDescription = ''
+      ConfluencePot is a simple honeypot for the Atlassian Confluence unauthenticated
+      and remote OGNL injection vulnerability (CVE-2022-26134).
+    '';
+    license = with licenses; [ agpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/servers/dendrite/default.nix b/pkgs/servers/dendrite/default.nix
index 9a8a1a369843b..9ea9aceb117e4 100644
--- a/pkgs/servers/dendrite/default.nix
+++ b/pkgs/servers/dendrite/default.nix
@@ -3,16 +3,16 @@
 
 buildGoModule rec {
   pname = "matrix-dendrite";
-  version = "0.8.7";
+  version = "0.8.8";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "dendrite";
     rev = "v${version}";
-    sha256 = "sha256-grMMD85hiJ6Ka8KU0fIAcpflFyZrPEZSZxFsGls5NEI=";
+    sha256 = "sha256-kQSzTFqmxcLi0BNxrd8a9TVBh3IfkHfZgPvafO9I++8=";
   };
 
-  vendorSha256 = "sha256-yTlg1K0Pf1AmF227ca73gLDx12ea5yMamnOUksKGN4U=";
+  vendorSha256 = "sha256-axR+tZH8kwqEIZm0899umTsEkzNKSbi6NdbUv8o+80A=";
 
   checkInputs = [
     postgresqlTestHook
diff --git a/pkgs/servers/dns/bind/default.nix b/pkgs/servers/dns/bind/default.nix
index 7b56061a4aa81..d2923ee23345d 100644
--- a/pkgs/servers/dns/bind/default.nix
+++ b/pkgs/servers/dns/bind/default.nix
@@ -9,11 +9,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bind";
-  version = "9.18.3";
+  version = "9.18.4";
 
   src = fetchurl {
     url = "https://downloads.isc.org/isc/bind9/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-CtjadzvZPLoO9mzIGZlpjr35w+UfrtXlyMHrdcrSrm8=";
+    sha256 = "sha256-8neuUBWaAMMA65JqnF1RlTA4qTa9gkLWkT37bqxCdh0=";
   };
 
   outputs = [ "out" "lib" "dev" "man" "dnsutils" "host" ];
diff --git a/pkgs/servers/dns/coredns/default.nix b/pkgs/servers/dns/coredns/default.nix
index c93d1235ea821..54965fd998aa6 100644
--- a/pkgs/servers/dns/coredns/default.nix
+++ b/pkgs/servers/dns/coredns/default.nix
@@ -6,16 +6,16 @@
 
 buildGoModule rec {
   pname = "coredns";
-  version = "1.9.2";
+  version = "1.9.3";
 
   src = fetchFromGitHub {
     owner = "coredns";
     repo = "coredns";
     rev = "v${version}";
-    sha256 = "sha256-6ABcXRuPEkzhjVZcltPoWGAc+fs6FwmgQCMRuLmhXxo=";
+    sha256 = "sha256-9lRZjY85SD1HXAWVCp8fpzV0d1Y+LbodT3Sp21CNp+k=";
   };
 
-  vendorSha256 = "sha256-0S77748voNlIuY6yUAa669pB09h35THojCyQKUm5VFc=";
+  vendorSha256 = "sha256-gNa+dm7n71IiSCztTO5VZ5FnGTGYfNXo/HMichNzek0=";
 
   postPatch = ''
     substituteInPlace test/file_cname_proxy_test.go \
diff --git a/pkgs/servers/dns/dnsdist/default.nix b/pkgs/servers/dns/dnsdist/default.nix
index 8af431640e895..2081f32ea67e9 100644
--- a/pkgs/servers/dns/dnsdist/default.nix
+++ b/pkgs/servers/dns/dnsdist/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dnsdist";
-  version = "1.7.1";
+  version = "1.7.2";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/dnsdist-${version}.tar.bz2";
-    sha256 = "sha256-JzqCEr4t3691T3UrzaTCq8Zxyl1C93YmMxLrRmHqLWY=";
+    hash = "sha256-UkvSuwWqLgWYKpca6FEPKBIwOrRIajhhtiIS0GsRJ80=";
   };
 
   patches = [
diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix
index 1ec5a78ea1a2b..3b2faf7eaa455 100644
--- a/pkgs/servers/dns/knot-resolver/default.nix
+++ b/pkgs/servers/dns/knot-resolver/default.nix
@@ -17,11 +17,11 @@ lua = luajitPackages;
 
 unwrapped = stdenv.mkDerivation rec {
   pname = "knot-resolver";
-  version = "5.5.0";
+  version = "5.5.1";
 
   src = fetchurl {
     url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz";
-    sha256 = "4e6f48c74d955f143d603f6072670cb41ab9acdd95d4455d6e74b6908562c55a";
+    sha256 = "9bad1edfd6631446da2d2331bd869887d7fe502f6eeaf62b2e43e2c113f02b6d";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/servers/dns/pdns-recursor/default.nix b/pkgs/servers/dns/pdns-recursor/default.nix
index d244b2920ba89..fedec6213f040 100644
--- a/pkgs/servers/dns/pdns-recursor/default.nix
+++ b/pkgs/servers/dns/pdns-recursor/default.nix
@@ -5,11 +5,11 @@
 
 stdenv.mkDerivation rec {
   pname = "pdns-recursor";
-  version = "4.6.2";
+  version = "4.7.0";
 
   src = fetchurl {
     url = "https://downloads.powerdns.com/releases/pdns-recursor-${version}.tar.bz2";
-    sha256 = "sha256-2mSYUHOf3XuvLfZFrMl3UszTkJc7VrjiUXHqew0lrSA=";
+    sha256 = "1329ycxavhkx963q0c6rqyzlg0689v5rrmjlydiw6px324djm1z4";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/servers/documize-community/default.nix b/pkgs/servers/documize-community/default.nix
index 66ba25f8bf4ba..3a49ad012ff53 100644
--- a/pkgs/servers/documize-community/default.nix
+++ b/pkgs/servers/documize-community/default.nix
@@ -33,7 +33,7 @@ buildGoModule rec {
   meta = with lib; {
     description = "Open source Confluence alternative for internal & external docs built with Golang + EmberJS";
     license = licenses.agpl3;
-    maintainers = with maintainers; [ ma27 elseym ];
+    maintainers = with maintainers; [ elseym ];
     mainProgram = "documize";
     homepage = "https://www.documize.com/";
   };
diff --git a/pkgs/servers/etebase/default.nix b/pkgs/servers/etebase/default.nix
index 9ed14ac5503c4..8a69645c51ed6 100644
--- a/pkgs/servers/etebase/default.nix
+++ b/pkgs/servers/etebase/default.nix
@@ -1,16 +1,17 @@
 { lib, fetchFromGitHub, buildPythonPackage, aioredis, aiofiles, django_3
-, fastapi, msgpack, pynacl, typing-extensions }:
+, fastapi, msgpack, pynacl, typing-extensions
+, withLdap ? true, ldap }:
 
 buildPythonPackage rec {
   pname = "etebase-server";
-  version = "0.8.3";
+  version = "0.9.1";
   format = "other";
 
   src = fetchFromGitHub {
     owner = "etesync";
     repo = "server";
     rev = "v${version}";
-    sha256 = "sha256-rPs34uzb5veiOw74SACLrDm4Io0CYH9EL9IuV38CkPY=";
+    sha256 = "sha256-mYXy0N7ohNk3K2XNB6JvULF6lhL5dV8yBvooR6RuV1E=";
   };
 
   patches = [ ./secret.patch ];
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     msgpack
     pynacl
     typing-extensions
-  ];
+  ] ++ lib.optional withLdap ldap;
 
   installPhase = ''
     mkdir -p $out/bin $out/lib
diff --git a/pkgs/servers/geospatial/geoserver/default.nix b/pkgs/servers/geospatial/geoserver/default.nix
new file mode 100644
index 0000000000000..0fc184e063e54
--- /dev/null
+++ b/pkgs/servers/geospatial/geoserver/default.nix
@@ -0,0 +1,38 @@
+{ lib, stdenv, fetchurl, unzip, jre, makeWrapper }:
+
+stdenv.mkDerivation rec {
+  pname = "geoserver";
+  version = "2.21.0";
+
+  src = fetchurl {
+    url = "mirror://sourceforge/geoserver/GeoServer/${version}/geoserver-${version}-bin.zip";
+    sha256 = "sha256-UCr22Ffhnux6eA0w5qoaf5Hvuypsl/FGpK+emi8G0Mc=";
+  };
+
+  sourceRoot = ".";
+  nativeBuildInputs = [ unzip makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/share/geoserver
+    cp -r . $out/share/geoserver
+    rm -fr $out/share/geoserver/bin/*.bat
+
+    makeWrapper $out/share/geoserver/bin/startup.sh $out/bin/geoserver-startup \
+      --set JAVA_HOME "${jre}" \
+      --set GEOSERVER_HOME "$out/share/geoserver"
+    makeWrapper $out/share/geoserver/bin/shutdown.sh $out/bin/geoserver-shutdown \
+      --set JAVA_HOME "${jre}" \
+      --set GEOSERVER_HOME "$out/share/geoserver"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Open source server for sharing geospatial data";
+    homepage = "https://geoserver.org/";
+    sourceProvenance = with sourceTypes; [ binaryBytecode ];
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ sikmir ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/servers/gpm/default.nix b/pkgs/servers/gpm/default.nix
index f132f98344a99..66c6607e64721 100644
--- a/pkgs/servers/gpm/default.nix
+++ b/pkgs/servers/gpm/default.nix
@@ -27,6 +27,14 @@ stdenv.mkDerivation rec {
       url = "https://github.com/kaction/gpm/commit/217b4fe4c9b62298a4e9a54c1f07e3b52b013a09.patch";
       sha256 = "1f74h12iph4z1dldbxk9imcq11805c3ai2xhbsqvx8jpjrcfp19q";
     })
+
+    # Pull fix pending upstream inclusion to fix parallel installation:
+    #   https://github.com/telmich/gpm/pull/43
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "https://github.com/telmich/gpm/commit/a88fb82a7afe96e872bb31c554e9ad5888f5a451.patch";
+      sha256 = "0g1jhz9bjw7vqjv922xkhs8xkjxdqh11nj38jj3c8nv5lcil76nx";
+    })
   ];
   preConfigure = ''
     ./autogen.sh
@@ -38,6 +46,8 @@ stdenv.mkDerivation rec {
     (if ncurses == null then "--without-curses" else "--with-curses")
   ];
 
+  enableParallelBuilding = true;
+
   # Provide libgpm.so for compatability
   postInstall = ''
     ln -sv $out/lib/libgpm.so.2 $out/lib/libgpm.so
diff --git a/pkgs/servers/hashi-ui/default.nix b/pkgs/servers/hashi-ui/default.nix
index d49d18c390192..0fad3eb2648b5 100644
--- a/pkgs/servers/hashi-ui/default.nix
+++ b/pkgs/servers/hashi-ui/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     description = "A modern user interface for hashicorp Consul & Nomad";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ numkem ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/servers/heisenbridge/default.nix b/pkgs/servers/heisenbridge/default.nix
index 3d4ef94dda490..82599cdcbaa58 100644
--- a/pkgs/servers/heisenbridge/default.nix
+++ b/pkgs/servers/heisenbridge/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchFromGitHub, fetchpatch, python3 }:
 python3.pkgs.buildPythonApplication rec {
   pname = "heisenbridge";
-  version = "1.13.0";
+  version = "1.13.1";
 
   src = fetchFromGitHub {
     owner = "hifi";
     repo = pname;
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-3YCYLhJqZAWIwpwOd8J1+uYsxw0q6jQy35Vp+ttVKhI=";
+    sha256 = "sha256-sgZql9373xKT7Hi8M5TIZTOkS2AOFoKA1DXYa2f2IkA=";
   };
 
   postPatch = ''
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 4d6152abffd83..467c628c5666c 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 = "2022.6.5";
+  version = "2022.6.7";
   components = {
     "abode" = ps: with ps; [
       abodepy
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix
index f2da36f9f63f1..b1b731642b8c2 100644
--- a/pkgs/servers/home-assistant/default.nix
+++ b/pkgs/servers/home-assistant/default.nix
@@ -29,7 +29,6 @@
 let
   defaultOverrides = [
     # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt
-    (mkOverride "python-slugify" "4.0.1" "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=")
 
     # pytest-aiohttp>0.3.0 breaks home-assistant tests
     (self: super: {
@@ -101,6 +100,17 @@ let
       });
     })
 
+    (self: super: {
+      python-slugify = super.python-slugify.overridePythonAttrs (oldAttrs: rec {
+        pname = "python-slugify";
+        version = "4.0.1";
+        src = super.fetchPypi {
+          inherit pname version;
+          hash = "sha256-aaUXdm4AwSaOW7/A0BCgqFCN4LGNMK1aH/NX+K5yQnA=";
+        };
+      });
+    })
+
     # Pinned due to API changes in 0.4.0
     (self: super: {
       vilfo-api-client = super.vilfo-api-client.overridePythonAttrs (oldAttrs: rec {
@@ -166,7 +176,7 @@ let
   extraPackagesFile = writeText "home-assistant-packages" (lib.concatMapStringsSep "\n" (pkg: pkg.pname) extraBuildInputs);
 
   # Don't forget to run parse-requirements.py after updating
-  hassVersion = "2022.6.5";
+  hassVersion = "2022.6.7";
 
 in python.pkgs.buildPythonApplication rec {
   pname = "homeassistant";
@@ -184,7 +194,7 @@ in python.pkgs.buildPythonApplication rec {
     owner = "home-assistant";
     repo = "core";
     rev = version;
-    hash = "sha256-ZGdA5AvNqx3TBZfbr8r5l3MXEt+LAodZFOsn+GeslC0=";
+    hash = "sha256-RR0CsPOzOdWRPSgmKGl3egrPXS1CDI+ODWZeLkVCSGQ=";
   };
 
   # leave this in, so users don't have to constantly update their downstream patch handling
@@ -200,6 +210,7 @@ in python.pkgs.buildPythonApplication rec {
       "attrs"
       "awesomeversion"
       "bcrypt"
+      "cryptography"
       "httpx"
       "PyJWT"
     ];
diff --git a/pkgs/servers/home-assistant/parse-requirements.py b/pkgs/servers/home-assistant/parse-requirements.py
index e2ac808b33b48..b7bf2937a297d 100755
--- a/pkgs/servers/home-assistant/parse-requirements.py
+++ b/pkgs/servers/home-assistant/parse-requirements.py
@@ -155,7 +155,7 @@ def name_to_attr_path(req: str, packages: Dict[str, Dict[str, str]]) -> Optional
         # python(minor).(major)-(pname)-(version or unstable-date)
         # we need the version qualifier, or we'll have multiple matches
         # (e.g. pyserial and pyserial-asyncio when looking for pyserial)
-        pattern = re.compile(f"^python\\d\\.\\d-{name}-(?:\\d|unstable-.*)", re.I)
+        pattern = re.compile(f"^python\\d+\\.\\d+-{name}-(?:\\d|unstable-.*)", re.I)
         for attr_path, package in packages.items():
             if pattern.match(package["name"]):
                 attr_paths.append(attr_path)
diff --git a/pkgs/servers/hqplayerd/default.nix b/pkgs/servers/hqplayerd/default.nix
index fb6194eaab3db..3c4a609b8b5df 100644
--- a/pkgs/servers/hqplayerd/default.nix
+++ b/pkgs/servers/hqplayerd/default.nix
@@ -109,6 +109,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.signalyst.com/custom.html";
     description = "High-end upsampling multichannel software embedded HD-audio player";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix b/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
index 5fb922c2df08a..f6de7f0175375 100644
--- a/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
+++ b/pkgs/servers/http/apache-modules/mod_cspnonce/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mod_cspnonce";
-  version = "1.3";
+  version = "1.4";
 
   src = fetchFromGitHub {
     owner = "wyattoday";
     repo = "mod_cspnonce";
     rev = version;
-    sha256 = "0kqvxf1dn8r0ywrfiwsxryjrxii2sq11wisbjnm7770sjwckwqh5";
+    hash = "sha256-uUWRKUjS2LvHgT5xrK+LZLQRHc6wMaxGca2OsVxVlRs=";
   };
 
   buildInputs = [ apacheHttpd ];
diff --git a/pkgs/servers/http/envoy/default.nix b/pkgs/servers/http/envoy/default.nix
index 974d00149177a..1cd6e0c785efa 100644
--- a/pkgs/servers/http/envoy/default.nix
+++ b/pkgs/servers/http/envoy/default.nix
@@ -23,8 +23,8 @@ 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.21.1";
-    rev = "af50070ee60866874b0a9383daf9364e884ded22";
+    version = "1.21.4";
+    rev = "782ba5e5ab9476770378ec9f1901803e0d38ac41";
   };
 in
 buildBazelPackage rec {
@@ -35,7 +35,7 @@ buildBazelPackage rec {
     owner = "envoyproxy";
     repo = "envoy";
     inherit (srcVer) rev;
-    hash = "sha256:11mm72zmb479ss585jzqzhklyyqmdadnvr91ghzvjxc0j2a1hrr4";
+    hash = "sha256-SthKDMQs5yNU0iouAPVsDeCPKcsBXmO9ebDwu58UQRs=";
 
     postFetch = ''
       chmod -R +w $out
@@ -85,8 +85,8 @@ buildBazelPackage rec {
 
   fetchAttrs = {
     sha256 = {
-      x86_64-linux = "sha256-23Z6SbKnbah/NCrdMrXhrNFFASd/8xRH3fSyIE++heA=";
-      aarch64-linux = "sha256-dMOu0HYUIUJ+XEtctjaZZ1jGGQq+cHbay8+KwR5XqP0=";
+      x86_64-linux = "sha256-/SA+WFHcMjk6iLwuEmuBIzy3pMhw7TThIEx292dv6IE=";
+      aarch64-linux = "sha256-0XdeirdIP7+nKy8zZbr2uHN2RZ4ZFOJt9i/+Ow1s/W4=";
     }.${stdenv.system} or (throw "unsupported system ${stdenv.system}");
     dontUseCmakeConfigure = true;
     dontUseGnConfigure = true;
diff --git a/pkgs/servers/http/nginx/modules.nix b/pkgs/servers/http/nginx/modules.nix
index 2b8e2ac7f793e..76fe626172cfe 100644
--- a/pkgs/servers/http/nginx/modules.nix
+++ b/pkgs/servers/http/nginx/modules.nix
@@ -252,8 +252,8 @@ in
       name = "modsecurity-nginx";
       owner = "SpiderLabs";
       repo = "ModSecurity-nginx";
-      rev = "v1.0.2";
-      sha256 = "sha256-UXiitc3jZlgXlCsDPS+xEFLNRVgRbn8BCCXUEqAWlII=";
+      rev = "v1.0.3";
+      sha256 = "sha256-xp0/eqi5PJlzb9NaUbNnzEqNcxDPyjyNwZOwmlv1+ag=";
     };
     inputs = [ pkgs.curl pkgs.geoip pkgs.libmodsecurity pkgs.libxml2 pkgs.lmdb pkgs.yajl ];
     disableIPC = true;
diff --git a/pkgs/servers/interlock/default.nix b/pkgs/servers/interlock/default.nix
index e151c9ec45e36..1fbe7444491c5 100644
--- a/pkgs/servers/interlock/default.nix
+++ b/pkgs/servers/interlock/default.nix
@@ -1,27 +1,28 @@
-{ sudo, coreutils, systemd, cryptsetup
-, mount, umount
-, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, coreutils
+, cryptsetup
+, mount
+, systemd
+, umount
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "interlock";
-  version = "2016.04.13";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/inversepath/interlock";
-
-  subPackages = [ "./cmd/interlock" ];
+  version = "2020.03.05";
 
   src = fetchFromGitHub {
-    inherit rev;
-    owner = "inversepath";
+    owner = "usbarmory";
     repo = "interlock";
-    sha256 = "06aqx3jy744yx29xyg8ips0dw16186hfqbxdv3hfrmwxmaxhl4lz";
+    rev = "v${version}";
+    sha256 = "sha256-YXa4vErt3YnomTKAXCv8yUVhcc0ST47n9waW5E8QZzY=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-OL6I95IpyTIc8wCwD9nWxVUTrmZH6COhsd/YwNTyvN0=";
+
+  ldflags = [ "-s" "-w" ];
 
-  nativeBuildInputs = [ sudo ];
-  tags = [ "textsecure" ];
   postPatch = ''
     grep -lr '/s\?bin/' | xargs sed -i \
       -e 's|/bin/mount|${mount}/bin/mount|' \
@@ -34,4 +35,19 @@ buildGoPackage rec {
       -e 's|/usr/bin/sudo|/run/wrappers/bin/sudo|' \
       -e 's|/sbin/cryptsetup|${cryptsetup}/bin/cryptsetup|'
   '';
+
+  postInstall = ''
+    mkdir -p $out/share
+    cp -R $src/static $out/share
+  '';
+
+  # Tests are broken due to an error during key generation.
+  doCheck = false;
+
+  meta = with lib; {
+    homepage = "https://github.com/usbarmory/interlock";
+    description = "File encryption tool and an HSM frontend";
+    license = licenses.gpl3Plus;
+    platforms = platforms.linux;
+  };
 }
diff --git a/pkgs/servers/interlock/deps.nix b/pkgs/servers/interlock/deps.nix
deleted file mode 100644
index be5c05295731d..0000000000000
--- a/pkgs/servers/interlock/deps.nix
+++ /dev/null
@@ -1,65 +0,0 @@
-[
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "a83829b6f1293c91addabc89d0571c246397bbf4";
-      sha256 = "1m4dsmk90sbi17571h6pld44zxz7jc4lrnl4f27dpd1l8g5xvjhh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "575fdbe86e5dd89229707ebec0575ce7d088a4a6";
-      sha256 = "1kgv1mkw9y404pk3lcwbs0vgl133mwyp294i18jg9hp10s5d56xa";
-    };
-  }
-  {
-    goPackagePath = "github.com/Sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Sirupsen/logrus";
-      rev = "be52937128b38f1d99787bb476c789e2af1147f1";
-      sha256 = "1m6vvd4pg4lwglhk54lv5mf6cc8h7bi0d9zb3gar4crz531r66y4";
-    };
-  }
-  {
-    goPackagePath = "github.com/agl/ed25519";
-    fetch = {
-      type = "git";
-      url = "https://github.com/agl/ed25519";
-      rev = "278e1ec8e8a6e017cd07577924d6766039146ced";
-      sha256 = "165d89cc6dl28j4hkn86pny0jz3sa6hamzdvpvwdj4iha3x6lzc9";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "59b73b37c1e45995477aae817e4a653c89a858db";
-      sha256 = "1dx22jvhvj34ivpr7gw01fncg9yyx35mbpal4mpgnqka7ajmgjsa";
-    };
-  }
-  {
-    goPackagePath = "github.com/janimo/textsecure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/janimo/textsecure";
-      rev = "c38f429e48d6b2776d17b4171f216f132185b0f6";
-      sha256 = "191pwgfgphr0x04dwpvniax4wilpv52l25bw7d3igvnw302y7i94";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "62ac18b461605b4be188bbc7300e9aa2bc836cd4";
-      sha256 = "0lwwvbbwbf3yshxkfhn6z20gd45dkvnmw2ms36diiy34krgy402p";
-    };
-  }
-]
diff --git a/pkgs/servers/irc/ergochat/default.nix b/pkgs/servers/irc/ergochat/default.nix
index 57f79ff916c3e..cbcc0cfaad214 100644
--- a/pkgs/servers/irc/ergochat/default.nix
+++ b/pkgs/servers/irc/ergochat/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "ergo";
-  version = "2.9.1";
+  version = "2.10.0";
 
   src = fetchFromGitHub {
     owner = "ergochat";
     repo = "ergo";
     rev = "v${version}";
-    sha256 = "sha256-RxsmkTfHymferS/FRW0sLnstKfvGXkW6cEb/JbeS4lc=";
+    sha256 = "sha256-SydseZSEuFhbaU4OMnT8zFLbRfmeKwXsZZeDh8mbZco=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/servers/jellyfin/nuget-deps.nix b/pkgs/servers/jellyfin/nuget-deps.nix
index 82c6386462497..91c36ac2f23a8 100644
--- a/pkgs/servers/jellyfin/nuget-deps.nix
+++ b/pkgs/servers/jellyfin/nuget-deps.nix
@@ -11,7 +11,7 @@
   (fetchNuGet { pname = "Humanizer.Core"; version = "2.8.26"; sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; })
   (fetchNuGet { pname = "Jellyfin.XmlTv"; version = "10.8.0"; sha256 = "0fv923y58z9l97zhlrifmki0x1m7r52avglhrl2h1jjv1x1wkvzx"; })
   (fetchNuGet { pname = "libse"; version = "3.6.5"; sha256 = "1h0rm8jbwjp0qgayal48zdzgsqr7c7v9lnc4v8x0r0pxrb4f0x1k"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0br5ms806jsgc2jghcjb6lm2h1ifq8wa3cgxp5ginrhzzj3p145i"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Authorization"; version = "6.0.5"; sha256 = "0ygpanmyxk8gbhv7id6hd452ll6xn20nnwshbc5kp7iix0pprhw5"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.Metadata"; version = "6.0.5"; sha256 = "0g09ic2n074nialwljfyrgm4wbi550qmgbs40g04gpyi8vdkka1b"; })
   (fetchNuGet { pname = "Microsoft.Bcl.AsyncInterfaces"; version = "6.0.0"; sha256 = "15gqy2m14fdlvy1g59207h5kisznm355kbw010gy19vh47z8gpz3"; })
@@ -82,7 +82,7 @@
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "3.1.9"; sha256 = "0538fvjz9c27nvc6kv83b0912qvc71wz2w60svl0mscj86ds49wc"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; })
   (fetchNuGet { pname = "Microsoft.Extensions.Primitives"; version = "6.0.0"; sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.5"; sha256 = "0hzsvhk5hzk0iav7cc2i8dgyx02a5jks2g0jljychw18ck9s2ilg"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; })
   (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 = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix
index da4c2b04eb4c0..834844f96741c 100644
--- a/pkgs/servers/mail/dovecot/default.nix
+++ b/pkgs/servers/mail/dovecot/default.nix
@@ -11,7 +11,7 @@
 
 stdenv.mkDerivation rec {
   pname = "dovecot";
-  version = "2.3.19";
+  version = "2.3.19.1";
 
   nativeBuildInputs = [ perl pkg-config ];
   buildInputs =
@@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://dovecot.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.gz";
-    hash = "sha256:0ys3zq9b1rgj1cz6a0i9l421y6h2j3b5zak2ia5j9dj1sj9zcwq1";
+    hash = "sha256-21q82H1zCWWeprRbLLbunF+XSGsrcZpd0Fp1nh9qXFE=";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/servers/mail/mailman/hyperkitty.nix b/pkgs/servers/mail/mailman/hyperkitty.nix
index c10f2c1ba757e..2b8959a8f37b1 100644
--- a/pkgs/servers/mail/mailman/hyperkitty.nix
+++ b/pkgs/servers/mail/mailman/hyperkitty.nix
@@ -24,6 +24,12 @@ buildPythonPackage rec {
       sha256 = "sha256-5XCrvyrDEqH3JryPMoOXSlVVDLQ+PdYBqwGYxkExdvk=";
       includes = [ "hyperkitty/*" ];
     })
+
+    # Fix for Python >=3.9.13
+    (fetchpatch {
+      url = "https://gitlab.com/mailman/hyperkitty/-/commit/3efe7507944dbdbfcfa4c182d332528712476b28.patch";
+      sha256 = "sha256-yXuhTbmfDiYEXEsnz+zp+xLHRqI4GtkOhGHN+37W0iQ=";
+    })
   ];
 
   postPatch = ''
diff --git a/pkgs/servers/mail/mlmmj/default.nix b/pkgs/servers/mail/mlmmj/default.nix
index 89e142b04f983..aba0664b8f4fd 100644
--- a/pkgs/servers/mail/mlmmj/default.nix
+++ b/pkgs/servers/mail/mlmmj/default.nix
@@ -10,6 +10,12 @@ stdenv.mkDerivation rec {
     sha256 = "1sghqvwizvm1a9w56r34qy5njaq1c26bagj85r60h32gh3fx02bn";
   };
 
+  configureFlags = lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+    # AC_FUNC_MALLOC is broken on cross builds.
+    "ac_cv_func_malloc_0_nonnull=yes"
+    "ac_cv_func_realloc_0_nonnull=yes"
+  ];
+
   # Workaround build failure on -fno-common toolchains like upstream
   # gcc-10. Otherwise build fails as:
   #   ld: getlistdelim.o:/build/mlmmj-1.3.0/src/../include/mlmmj.h:84: multiple definition of
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 7a0297757bae1..0cc0a570118a5 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -11,11 +11,11 @@ in
 with python3.pkgs;
 buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "1.60.0";
+  version = "1.61.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-sR+DZhpAkPpurPs6jSBVphYp12z8qulcQSl3ngcCrcs=";
+    sha256 = "sha256-tEYvbR7uQe7WLtkYt0xXFGLu8w4q8bhf9HqDbGXF+T8=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/servers/mattermost/default.nix b/pkgs/servers/mattermost/default.nix
index 99a949116ce05..55ea22500c562 100644
--- a/pkgs/servers/mattermost/default.nix
+++ b/pkgs/servers/mattermost/default.nix
@@ -90,6 +90,10 @@ in
     meta = with lib; {
       description = "Open-source, self-hosted Slack-alternative";
       homepage = "https://www.mattermost.org";
+      sourceProvenance = with sourceTypes; [
+        fromSource
+        binaryNativeCode  # mattermost-webapp
+      ];
       license = with licenses; [ agpl3 asl20 ];
       maintainers = with maintainers; [ fpletz ryantm numinit ];
       platforms = platforms.unix;
diff --git a/pkgs/servers/mautrix-whatsapp/default.nix b/pkgs/servers/mautrix-whatsapp/default.nix
index 35006f79782ae..52fac7f963cd9 100644
--- a/pkgs/servers/mautrix-whatsapp/default.nix
+++ b/pkgs/servers/mautrix-whatsapp/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "mautrix-whatsapp";
-  version = "0.4.0";
+  version = "0.5.0";
 
   src = fetchFromGitHub {
     owner = "mautrix";
     repo = "whatsapp";
     rev = "v${version}";
-    sha256 = "2F0smK2L9Xj3/65j7vwwGT1OLxcTqkImpn16wB5rWDw=";
+    sha256 = "xKj1iKKzFQFjzXZGqoCDyuwXs55QNmnPdojgxy0dQTY=";
   };
 
   buildInputs = [ olm ];
 
-  vendorSha256 = "Xv+3dJLOHnOjTp5vDbejmkO/NoDQlWxl0KaMx1C3ch0=";
+  vendorSha256 = "svpUQQI9dDNQoL+LDoxhEch7dtNd20ojG3YHga1r15c=";
 
   doCheck = false;
 
diff --git a/pkgs/servers/metabase/default.nix b/pkgs/servers/metabase/default.nix
index a6d2d88f7a220..9ec8ddf47d6e0 100644
--- a/pkgs/servers/metabase/default.nix
+++ b/pkgs/servers/metabase/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "metabase";
-  version = "0.42.1";
+  version = "0.43.1";
 
   src = fetchurl {
     url = "https://downloads.metabase.com/v${version}/metabase.jar";
-    hash = "sha256-PmcVVAS/5mDhmOSoFvkZeYkbvFD/KOcgVYuScwD4Olg=";
+    hash = "sha256-WGbIsmCWsSxgE7Ktr539qTt/o5cJrYi0yu3ZkfbxOV0=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/meteor/default.nix b/pkgs/servers/meteor/default.nix
index fb9221b93964b..306eeaa7a6539 100644
--- a/pkgs/servers/meteor/default.nix
+++ b/pkgs/servers/meteor/default.nix
@@ -94,6 +94,7 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Complete open source platform for building web and mobile apps in pure JavaScript";
     homepage = "https://www.meteor.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = builtins.attrNames srcs;
     maintainers = with maintainers; [ cstrahan ];
diff --git a/pkgs/servers/misc/navidrome/default.nix b/pkgs/servers/misc/navidrome/default.nix
index ea1cae99dd99f..d05b7fc2af6b5 100644
--- a/pkgs/servers/misc/navidrome/default.nix
+++ b/pkgs/servers/misc/navidrome/default.nix
@@ -42,6 +42,7 @@ stdenv.mkDerivation rec {
   meta = {
     description = "Navidrome Music Server and Streamer compatible with Subsonic/Airsonic";
     homepage = "https://www.navidrome.org/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3Only;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ aciceri ];
diff --git a/pkgs/servers/monitoring/cadvisor/default.nix b/pkgs/servers/monitoring/cadvisor/default.nix
index 760bed7b9371b..73fe3ed1192d3 100644
--- a/pkgs/servers/monitoring/cadvisor/default.nix
+++ b/pkgs/servers/monitoring/cadvisor/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "cadvisor";
-  version = "0.40.0";
+  version = "0.44.1";
 
   src = fetchFromGitHub {
     owner = "google";
     repo = "cadvisor";
     rev = "v${version}";
-    sha256 = "sha256-8HOaKjdATVZpyx4yLf7xefz+jiOEqmkWiZnA3DOyT50=";
+    sha256 = "sha256-OVUKQGP9zzlzoC/25BHNbJuP6ELstBMaRFAzUnDSR0U=";
   };
 
   modRoot = "./cmd";
 
-  vendorSha256 = "sha256-+nrXD0hQ3zBwTTq9xoBqO3ho4s4tf8uZQz2wL1nYi/k=";
+  vendorSha256 = "sha256-LGMouB76GT/ZvG3kLoo/jmnHT0CEeND9pObTOKaS9T0=";
 
   ldflags = [ "-s" "-w" "-X github.com/google/cadvisor/version.Version=${version}" ];
 
diff --git a/pkgs/servers/monitoring/grafana-agent/default.nix b/pkgs/servers/monitoring/grafana-agent/default.nix
index ab342acb258df..f549d3ece33fd 100644
--- a/pkgs/servers/monitoring/grafana-agent/default.nix
+++ b/pkgs/servers/monitoring/grafana-agent/default.nix
@@ -1,4 +1,4 @@
-{ lib, buildGoModule, fetchFromGitHub, systemd }:
+{ lib, buildGoModule, fetchFromGitHub, systemd, nixosTests }:
 
 buildGoModule rec {
   pname = "grafana-agent";
@@ -36,6 +36,8 @@ buildGoModule rec {
       $out/bin/agent
   '';
 
+  passthru.tests.grafana-agent = nixosTests.grafana-agent;
+
   meta = with lib; {
     description = "A lightweight subset of Prometheus and more, optimized for Grafana Cloud";
     license = licenses.asl20;
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 1f3989ada4982..87430bda86d78 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -2,23 +2,23 @@
 
 buildGoModule rec {
   pname = "grafana";
-  version = "8.5.5";
+  version = "9.0.1";
 
-  excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" ];
+  excludedPackages = [ "alert_webhook_listener" "clean-swagger" "release_publisher" "slow_proxy" "slow_proxy_mac" "macaron" "devenv" ];
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "sha256-ixqvBwwnkdEb3dFFw+I3XUksf2uMezbwcyyhmLTqh2M=";
+    sha256 = "sha256-+03bfSpUT5sb0oFf9BomglcVb5bRqAwZ1MKCPmRtAss=";
   };
 
   srcStatic = fetchurl {
     url = "https://dl.grafana.com/oss/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "0mqzrzi21qi3m4wm7q18i3n7cg8nwzlc3nw1axgmp7vs1bh5vs0l";
+    sha256 = "1kw9l3gip4lqfrc0asgsd1lf5sxa7zj67isyvhb14qdsf9rs3b2d";
   };
 
-  vendorSha256 = "sha256-ZL+A6Sz0uHg7ZzYHmA4EU5ZxfRXBLyKglk135iQT600=";
+  vendorSha256 = "sha256-eB0SswtqAb0xoLcq021KaH4CdgLbWmhODyifQDVl5XI=";
 
   nativeBuildInputs = [ wire ];
 
@@ -28,6 +28,9 @@ buildGoModule rec {
     wire gen -tags oss ./pkg/server
     wire gen -tags oss ./pkg/cmd/grafana-cli/runner
 
+    go generate ./pkg/framework/coremodel
+    go generate ./public/app/plugins
+
     # The testcase makes an API call against grafana.com:
     #
     # [...]
diff --git a/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix b/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
index 430da1ea4d08e..1e2f0a472d329 100644
--- a/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/blackbox-exporter.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "blackbox_exporter";
-  version = "0.20.0";
+  version = "0.21.0";
   rev = "v${version}";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "prometheus";
     repo = "blackbox_exporter";
-    sha256 = "sha256-Y3HdFIChkQVooxy2I2Gbqw3WLHsI4Zm+osHTzFluRZA=";
+    sha256 = "sha256-u7MCZnzzEoPSk/SVlFRSc47YikQJ0lIxE4wchSN+aec=";
   };
 
-  vendorSha256 = "sha256-KFLR0In4txQQp5dt8P0yAFtf82b4SBq2xMnlz+vMuuU=";
+  vendorSha256 = "sha256-7V5WEEy/Rz1QjscPD2Kz+viGkKQsWjs+8QN/3W7D+Ik=";
 
   # dns-lookup is performed for the tests
   doCheck = false;
diff --git a/pkgs/servers/monitoring/prometheus/default.nix b/pkgs/servers/monitoring/prometheus/default.nix
index 4b79103d7d503..84415e52ed89d 100644
--- a/pkgs/servers/monitoring/prometheus/default.nix
+++ b/pkgs/servers/monitoring/prometheus/default.nix
@@ -13,6 +13,7 @@
 , enableEureka ? true
 , enableGCE ? true
 , enableHetzner ? true
+, enableIONOS ? true
 , enableKubernetes ? true
 , enableLinode ? true
 , enableMarathon ? true
@@ -22,15 +23,16 @@
 , enableScaleway ? true
 , enableTriton ? true
 , enableUyuni ? true
+, enableVultr ? true
 , enableXDS ? true
 , enableZookeeper ? true
 }:
 
 let
-  version = "2.35.0";
+  version = "2.36.0";
   webUiStatic = fetchurl {
     url = "https://github.com/prometheus/prometheus/releases/download/v${version}/prometheus-web-ui-${version}.tar.gz";
-    sha256 = "sha256-66zWOjFTYwmspiKeklt3NAAT1uJJrZqeyQvWWsCN9fQ=";
+    sha256 = "sha256-C+Np2mqAYQ1RUqYmql0eudPD/SpWmxdMQLe85SenIA4=";
   };
 in
 buildGoModule rec {
@@ -41,10 +43,10 @@ buildGoModule rec {
     rev = "v${version}";
     owner = "prometheus";
     repo = "prometheus";
-    sha256 = "sha256-h0uBs3xMKpRH3A1VG5xrhjXVAT7GL5L3UZWb3HJ2Fz4=";
+    sha256 = "sha256-FJXNCGIVj1OVWXwbXY6k65lXJCe1MqiqK7tw8nGWrEg=";
   };
 
-  vendorSha256 = "sha256-0I6hmjhdfB41rWOQ9FM9CMq5w5437ka/jLuFXcBQBlM=";
+  vendorSha256 = "sha256-kmAQGRFmGRJ3LuGLMcSc0bJuwMsKhYVUIqQ9vDSH0Cc=";
 
   excludedPackages = [ "documentation/prometheus-mixin" ];
 
@@ -70,6 +72,8 @@ buildGoModule rec {
       "echo - github.com/prometheus/prometheus/discovery/gce"}
     ${lib.optionalString (enableHetzner)
       "echo - github.com/prometheus/prometheus/discovery/hetzner"}
+    ${lib.optionalString (enableIONOS)
+      "echo - github.com/prometheus/prometheus/discovery/ionos"}
     ${lib.optionalString (enableKubernetes)
       "echo - github.com/prometheus/prometheus/discovery/kubernetes"}
     ${lib.optionalString (enableLinode)
@@ -88,6 +92,8 @@ buildGoModule rec {
       "echo - github.com/prometheus/prometheus/discovery/triton"}
     ${lib.optionalString (enableUyuni)
       "echo - github.com/prometheus/prometheus/discovery/uyuni"}
+    ${lib.optionalString (enableVultr)
+      "echo - github.com/prometheus/prometheus/discovery/vultr"}
     ${lib.optionalString (enableXDS)
       "echo - github.com/prometheus/prometheus/discovery/xds"}
     ${lib.optionalString (enableZookeeper)
diff --git a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
index 875db1777fba4..a171051223bc3 100644
--- a/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
+++ b/pkgs/servers/monitoring/prometheus/dnsmasq-exporter.nix
@@ -21,6 +21,6 @@ buildGoModule rec {
     inherit (src.meta) homepage;
     description = "A dnsmasq exporter for Prometheus";
     license = licenses.asl20;
-    maintainers = with maintainers; [ willibutz globin ma27 ];
+    maintainers = with maintainers; [ willibutz globin ];
   };
 }
diff --git a/pkgs/servers/networkaudiod/default.nix b/pkgs/servers/networkaudiod/default.nix
index fcf713d9fe88d..5a09c7933d148 100644
--- a/pkgs/servers/networkaudiod/default.nix
+++ b/pkgs/servers/networkaudiod/default.nix
@@ -64,6 +64,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.signalyst.com/index.html";
     description = "Network Audio Adapter daemon";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lovesegfault ];
     platforms = platforms.linux;
diff --git a/pkgs/servers/nextcloud/default.nix b/pkgs/servers/nextcloud/default.nix
index 94d69ad81dc26..a666c3fee358e 100644
--- a/pkgs/servers/nextcloud/default.nix
+++ b/pkgs/servers/nextcloud/default.nix
@@ -46,13 +46,13 @@ in {
   '';
 
   nextcloud23 = generic {
-    version = "23.0.5";
-    sha256 = "3cf51a795f8439e5d34f0a521d939cefafbae38450cce64c6673016984195f29";
+    version = "23.0.6";
+    sha256 = "34fbc3a6c16a623f57971b8c4df7c5e62b3650728edec7d05ec116b295040548";
   };
 
   nextcloud24 = generic {
-    version = "24.0.1";
-    sha256 = "d32a8f6c4722a45cb67de7018163cfafcfa22a871fbac0f623c3875fa4304e5a";
+    version = "24.0.2";
+    sha256 = "30d6cac1265dff221836bec46a937dcafd7e7d52ee59b939841750b514e5033d";
   };
 
   # tip: get she sha with:
diff --git a/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch b/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch
new file mode 100644
index 0000000000000..f5c4a5c354085
--- /dev/null
+++ b/pkgs/servers/nosql/mongodb/patches/mongodb-4.0-glibc-2.34.patch
@@ -0,0 +1,14 @@
+--- a/src/mongo/stdx/thread.h
++++ b/src/mongo/stdx/thread.h
+@@ -103,10 +103,7 @@ private:
+     //   .                     N   Y :      4,344 |  13,048 |     7,352
+     //   .                     Y   Y :      4,424 |  13,672 |     8,392
+     //   ( https://jira.mongodb.org/secure/attachment/233569/233569_stacktrace-writeup.txt )
+-    static constexpr std::size_t kMongoMinSignalStackSize = std::size_t{64} << 10;
+-
+-    static constexpr std::size_t kStackSize =
+-        std::max(kMongoMinSignalStackSize, std::size_t{MINSIGSTKSZ});
++    static constexpr std::size_t kStackSize = std::size_t{64} << 10;
+     std::unique_ptr<char[]> _stackStorage = std::make_unique<char[]>(kStackSize);
+
+ #else   // !MONGO_HAS_SIGALTSTACK
\ No newline at end of file
diff --git a/pkgs/servers/nosql/mongodb/v4_0.nix b/pkgs/servers/nosql/mongodb/v4_0.nix
index 24349686fbec8..9d28a9185ba13 100644
--- a/pkgs/servers/nosql/mongodb/v4_0.nix
+++ b/pkgs/servers/nosql/mongodb/v4_0.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, fetchpatch, lib, sasl, boost, Security, CoreFoundation, cctools }:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -11,7 +11,15 @@ let
 in buildMongoDB {
   version = "4.0.27";
   sha256 = "sha256-ct33mnK4pszhYM4Is7j0GZQRyi8i8Qmy0wcklyq5LjM=";
-  patches =
-    [ ./forget-build-dependencies.patch ./mozjs-45_fix-3-byte-opcode.patch ]
+  patches = [
+    ./forget-build-dependencies.patch
+    ./mozjs-45_fix-3-byte-opcode.patch
+    ./patches/mongodb-4.0-glibc-2.34.patch # https://github.com/NixOS/nixpkgs/issues/171928
+    (fetchpatch {
+      name = "mongodb-4.4.1-gcc11.patch";
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/7168257cad6ea7c4856b01c5703d0ed5b764367c/dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch";
+      sha256 = "sha256-RvfCP462RG+ZVjcb23DgCuxCdfPl2/UgH8N7FgCghGI=";
+    })
+  ]
     ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view.patch ];
 }
diff --git a/pkgs/servers/nosql/mongodb/v4_2.nix b/pkgs/servers/nosql/mongodb/v4_2.nix
index 3759cc1e6d585..53b73b510e3ad 100644
--- a/pkgs/servers/nosql/mongodb/v4_2.nix
+++ b/pkgs/servers/nosql/mongodb/v4_2.nix
@@ -1,4 +1,4 @@
-{ stdenv, callPackage, lib, sasl, boost, Security, CoreFoundation, cctools }:
+{ stdenv, callPackage, fetchpatch, lib, sasl, boost, Security, CoreFoundation, cctools }:
 
 let
   buildMongoDB = callPackage ./mongodb.nix {
@@ -11,7 +11,12 @@ let
 in buildMongoDB {
   version = "4.2.19";
   sha256 = "sha256-fngTHd+fSdHqiqQYOYS7o6P5eHybeZy3iNKkGzFmjTw=";
-  patches =
-    [ ./forget-build-dependencies-4-2.patch ]
-    ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
+  patches = [
+    ./forget-build-dependencies-4-2.patch
+    (fetchpatch {
+      name = "mongodb-4.4.1-gcc11.patch";
+      url = "https://raw.githubusercontent.com/gentoo/gentoo/7168257cad6ea7c4856b01c5703d0ed5b764367c/dev-db/mongodb/files/mongodb-4.4.1-gcc11.patch";
+      sha256 = "sha256-RvfCP462RG+ZVjcb23DgCuxCdfPl2/UgH8N7FgCghGI=";
+    })
+  ] ++ lib.optionals stdenv.isDarwin [ ./asio-no-experimental-string-view-4-2.patch ];
 }
diff --git a/pkgs/servers/nosql/riak/2.2.0.nix b/pkgs/servers/nosql/riak/2.2.0.nix
deleted file mode 100644
index 102d69f82b40d..0000000000000
--- a/pkgs/servers/nosql/riak/2.2.0.nix
+++ /dev/null
@@ -1,106 +0,0 @@
-{ stdenv, lib, fetchurl, unzip, erlang, which, pam, nixosTests }:
-
-let
-  solrName = "solr-4.10.4-yz-2.tgz";
-  yokozunaJarName = "yokozuna-3.jar";
-  yzMonitorJarName = "yz_monitor-1.jar";
-
-  srcs = {
-    riak = fetchurl {
-      url = "https://s3.amazonaws.com/downloads.basho.com/riak/2.2/2.2.0/riak-2.2.0.tar.gz";
-      sha256 = "0kl28bpyzajcllybili46jfr1schl45w5ysii187jr0ssgls2c9p";
-    };
-    solr = fetchurl {
-      url = "http://s3.amazonaws.com/files.basho.com/solr/${solrName}";
-      sha256 = "0fy5slnldn628gmr2kilyx606ph0iykf7pz6j0xjcc3wqvrixa2a";
-    };
-    yokozunaJar = fetchurl {
-      url = "http://s3.amazonaws.com/files.basho.com/yokozuna/${yokozunaJarName}";
-      sha256 = "17n6m100fz8affdcxsn4niw2lrpnswgfnd6aszgzipffwbg7v8v5";
-    };
-    yzMonitorJar = fetchurl {
-      url = "http://s3.amazonaws.com/files.basho.com/yokozuna/${yzMonitorJarName}";
-      sha256 = "0kb97d1a43vw759j1h5qwbhx455pidn2pi7sfxijqic37h81ri1m";
-    };
-  };
-in
-
-stdenv.mkDerivation {
-  pname = "riak";
-  version = "2.2.0";
-
-  nativeBuildInputs = [ unzip ];
-  buildInputs = [
-    which erlang pam
-  ];
-
-  src = srcs.riak;
-
-  hardeningDisable = [ "format" ];
-
-  postPatch = ''
-    sed -i deps/node_package/priv/base/env.sh \
-      -e 's@{{platform_data_dir}}@''${RIAK_DATA_DIR:-/var/db/riak}@' \
-      -e 's@^RUNNER_SCRIPT_DIR=.*@RUNNER_SCRIPT_DIR='$out'/bin@' \
-      -e 's@^RUNNER_BASE_DIR=.*@RUNNER_BASE_DIR='$out'@' \
-      -e 's@^RUNNER_ETC_DIR=.*@RUNNER_ETC_DIR=''${RIAK_ETC_DIR:-/etc/riak}@' \
-      -e 's@^RUNNER_LOG_DIR=.*@RUNNER_LOG_DIR=''${RIAK_LOG_DIR:-/var/log}@'
-  '';
-
-  preBuild = ''
-    mkdir solr-pkg
-    cp ${srcs.solr} solr-pkg/${solrName}
-    export SOLR_PKG_DIR=$(readlink -f solr-pkg)
-
-    mkdir -p deps/yokozuna/priv/java_lib
-    cp ${srcs.yokozunaJar} deps/yokozuna/priv/java_lib/${yokozunaJarName}
-
-    mkdir -p deps/yokozuna/priv/solr/lib/ext
-    cp ${srcs.yzMonitorJar} deps/yokozuna/priv/solr/lib/ext/${yzMonitorJarName}
-
-    patchShebangs .
-  '';
-
-  buildPhase = ''
-    runHook preBuild
-
-    make locked-deps
-    make rel
-
-    runHook postBuild
-  '';
-
-  doCheck = false;
-
-  installPhase = ''
-    runHook preInstall
-
-    mkdir $out
-    mv rel/riak/etc rel/riak/riak-etc
-    mkdir -p rel/riak/etc
-    mv rel/riak/riak-etc rel/riak/etc/riak
-    mv rel/riak/* $out
-
-    for prog in $out/bin/*; do
-      substituteInPlace $prog \
-        --replace '. "`cd \`dirname $0\` && /bin/pwd`/../lib/env.sh"' \
-                  ". $out/lib/env.sh"
-    done
-
-    runHook postInstall
-  '';
-
-  passthru.tests = { inherit (nixosTests) riak; };
-
-  meta = with lib; {
-    maintainers = with maintainers; [ cstrahan mdaiter ];
-    description = "Dynamo inspired NoSQL DB by Basho";
-    platforms   = [ "x86_64-linux" ];
-    sourceProvenance = with sourceTypes; [
-      fromSource
-      binaryBytecode  # dependencies
-    ];
-    license     = licenses.asl20;
-    knownVulnerabilities = [ "CVE-2017-3163 - see https://github.com/NixOS/nixpkgs/issues/33876" ];
-  };
-}
diff --git a/pkgs/servers/peertube/default.nix b/pkgs/servers/peertube/default.nix
index 558c21c6cd153..f4a80cbe26f68 100644
--- a/pkgs/servers/peertube/default.nix
+++ b/pkgs/servers/peertube/default.nix
@@ -6,18 +6,18 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then "linux-x64"
     else throw "Unsupported architecture: ${stdenv.hostPlatform.system}";
 
-  version = "4.1.1";
+  version = "4.2.1";
 
   source = fetchFromGitHub {
     owner = "Chocobozzz";
     repo = "PeerTube";
     rev = "v${version}";
-    sha256 = "sha256-yBRontvkcVU3BNUIB6WfH2a5blU9u3CNyHrou16h42s=";
+    sha256 = "sha256-bb22/GidSPaRtvbht6FzVqTGzzNDYgBdHqHGnzA1Iy0=";
   };
 
   yarnOfflineCacheServer = fetchYarnDeps {
     yarnLock = "${source}/yarn.lock";
-    sha256 = "sha256-L1Nr6sGjYVm42OyeFOQeQ6WEXjmNkngWilBtfQJ6bPE=";
+    sha256 = "sha256-7fYQ4YS92XbzeI7nwpQfI2reDp6EiDgncK5YGSWzHF0=";
   };
 
   yarnOfflineCacheTools = fetchYarnDeps {
@@ -27,7 +27,7 @@ let
 
   yarnOfflineCacheClient = fetchYarnDeps {
     yarnLock = "${source}/client/yarn.lock";
-    sha256 = "sha256-cBa0lNq9JsYi34EJzl0pPbDXSYL9a8g6MmiL6Ge65ms=";
+    sha256 = "sha256-6Snx1OwEndGrkMZbAEsoNRUQnZcwH+pwSDZW8igCzXA=";
   };
 
   bcrypt_version = "5.0.1";
diff --git a/pkgs/servers/plex/raw.nix b/pkgs/servers/plex/raw.nix
index bdecf19c42ca2..87e36134acbba 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.26.2.5797-5bd057d2b";
+  version = "1.27.1.5916-6b0e31a64";
   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 = "1wcscq5n98b37j9rm10kcdv3fjaf82hx4zgk4vfhkbs9lh9349rz";
+    sha256 = "0cyx83a64vdq68qknsscdnawx9lcyr5siiwys2gc9gnxm6sv8x82";
   } else fetchurl {
     url = "https://downloads.plex.tv/plex-media-server-new/${version}/debian/plexmediaserver_${version}_amd64.deb";
-    sha256 = "08nqqp9i346f6i4xypba441by000fc8xsm93q9bzc96kslid3f2d";
+    sha256 = "0v5gkk0izqkma9m4gvqyx94mij4jvv8vdv6897r7v8xqg9wji24l";
   };
 
   outputs = [ "out" "basedb" ];
@@ -79,6 +79,7 @@ stdenv.mkDerivation rec {
 
   meta = with lib; {
     homepage = "https://plex.tv/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "x86_64-linux" "aarch64-linux" ];
     maintainers = with maintainers; [
diff --git a/pkgs/servers/plik/default.nix b/pkgs/servers/plik/default.nix
index 4572573d16f2e..c79a48ad123ca 100644
--- a/pkgs/servers/plik/default.nix
+++ b/pkgs/servers/plik/default.nix
@@ -1,13 +1,13 @@
 { lib, fetchurl, makeWrapper, runCommand, callPackage }:
 
 let
-  version = "1.3.4";
+  version = "1.3.6";
 
   programs = callPackage ./programs.nix { };
 
   webapp = fetchurl {
     url = "https://github.com/root-gg/plik/releases/download/${version}/plik-${version}-linux-amd64.tar.gz";
-    sha256 = "1qp96va5l0m7jp4g007bhgcpf4ydg3cpg2x9wa9rkpp9k1svdhjy";
+    sha256 = "sha256-UGzevhZDfQBoFgPZQIs5Ftgz1cUHGfY/IRSEWQHFVSQ=";
   };
 
 in
diff --git a/pkgs/servers/plik/programs.nix b/pkgs/servers/plik/programs.nix
index 40633da7d3fc3..5e64f92c52a55 100644
--- a/pkgs/servers/plik/programs.nix
+++ b/pkgs/servers/plik/programs.nix
@@ -1,13 +1,13 @@
 { lib, buildGoModule, fetchFromGitHub, fetchurl, makeWrapper, runCommand }:
 
 let
-  version = "1.3.4";
+  version = "1.3.6";
 
   src = fetchFromGitHub {
     owner = "root-gg";
     repo = "plik";
     rev = version;
-    sha256 = "0kmcidnjw26vnxx9h3swcg72i507awg89s4nfxw6rwbyw36iiiqf";
+    sha256 = "sha256-Xfk7+60iB5/qJh/6j6AxW0aKXuzdINRfILXRzOFejW4=";
   };
 
   vendorSha256 = null;
@@ -18,12 +18,18 @@ let
     maintainers = with maintainers; [ freezeboy ];
     license = licenses.mit;
   };
+
+  postPatch = ''
+    substituteInPlace server/common/version.go \
+      --replace '"0.0.0"' '"${version}"'
+  '';
+
 in
 {
 
   plik = buildGoModule {
     pname = "plik";
-    inherit version meta src vendorSha256;
+    inherit version meta src vendorSha256 postPatch;
 
     subPackages = [ "client" ];
     postInstall = ''
@@ -33,7 +39,7 @@ in
 
   plikd-unwrapped = buildGoModule {
     pname = "plikd-unwrapped";
-    inherit version src vendorSha256;
+    inherit version src vendorSha256 postPatch;
 
     subPackages = [ "server" ];
     postFixup = ''
diff --git a/pkgs/servers/roon-bridge/default.nix b/pkgs/servers/roon-bridge/default.nix
index 8b4d81437e2da..5d4393bae566f 100644
--- a/pkgs/servers/roon-bridge/default.nix
+++ b/pkgs/servers/roon-bridge/default.nix
@@ -76,6 +76,7 @@ stdenv.mkDerivation rec {
     description = "The music player for music lovers";
     changelog = "https://community.roonlabs.com/c/roon/software-release-notes/18";
     homepage = "https://roonlabs.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lovesegfault ];
     platforms = [ "aarch64-linux" "x86_64-linux" ];
diff --git a/pkgs/servers/roon-server/default.nix b/pkgs/servers/roon-server/default.nix
index 206490e49f2ab..358e55291ac55 100644
--- a/pkgs/servers/roon-server/default.nix
+++ b/pkgs/servers/roon-server/default.nix
@@ -91,6 +91,7 @@ stdenv.mkDerivation rec {
     description = "The music player for music lovers";
     changelog = "https://community.roonlabs.com/c/roon/software-release-notes/18";
     homepage = "https://roonlabs.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ lovesegfault steell ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/servers/rt/default.nix b/pkgs/servers/rt/default.nix
index 2b5188f743ad5..a113c25f396cd 100644
--- a/pkgs/servers/rt/default.nix
+++ b/pkgs/servers/rt/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "rt";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchFromGitHub {
     repo = pname;
     rev = "${pname}-${version}";
     owner = "bestpractical";
-    sha256 = "1qqh6w094x7dljz001va802v4s6mixs9lkhs2cs47lf5ph3vwq2q";
+    sha256 = "1qdvbsmdynjw2v0clnmhdmrky7w4dsiysv92n7d7jdbawnicqahn";
   };
 
   patches = [
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
         MozillaCA
         NetCIDR
         NetIP
+        ParallelForkManager
         PathDispatcher
         PerlIOeol
         Plack
diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix
index 503a2b46adf2f..e299931f9e773 100644
--- a/pkgs/servers/sabnzbd/default.nix
+++ b/pkgs/servers/sabnzbd/default.nix
@@ -10,21 +10,7 @@
 }:
 
 let
-
-  python = python3.override {
-    packageOverrides = final: prev: {
-      sabyenc3 = prev.sabyenc3.overridePythonAttrs (oldAttrs: rec {
-        version = "4.0.0";
-        src = oldAttrs.src.override {
-          inherit version;
-          hash = "sha256-PwwQ2jChKIqh7jJ6E2hkqPquTDSN4MklghfJ+MkM0n0=";
-        };
-      });
-    };
-    self = python;
-  };
-
-  pythonEnv = python.withPackages(ps: with ps; [
+  pythonEnv = python3.withPackages(ps: with ps; [
     chardet
     cheetah3
     cherrypy
@@ -38,14 +24,14 @@ let
   ]);
   path = lib.makeBinPath [ par2cmdline unrar unzip p7zip ];
 in stdenv.mkDerivation rec {
-  version = "3.5.3";
+  version = "3.6.0";
   pname = "sabnzbd";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = version;
-    sha256 = "sha256-pdYTTahdn9YVFreU5KhMGlUzQxHviN5G4TxWKKRBxOc=";
+    sha256 = "sha256-X5O3TxNjQ+8kOd3OakKV0+KncxQr+oQn0mXeBXDV/Xs=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/servers/search/lnx/default.nix b/pkgs/servers/search/lnx/default.nix
new file mode 100644
index 0000000000000..cda779ee26322
--- /dev/null
+++ b/pkgs/servers/search/lnx/default.nix
@@ -0,0 +1,31 @@
+{ stdenv
+, lib
+, rustPlatform
+, fetchFromGitHub
+, DiskArbitration
+, Foundation
+}:
+
+# unstable was chosen because of an added Cargo.lock
+# revert to stable for the version after 0.9.0
+let version = "unstable-2022-06-25";
+in
+rustPlatform.buildRustPackage {
+  pname = "lnx";
+  inherit version;
+  src = fetchFromGitHub {
+    owner = "lnx-search";
+    repo = "lnx";
+    rev = "2cb80f344c558bfe37f21ccfb83265bf351419d9";
+    sha256 = "sha256-iwoZ6xRzEDArmhWYxIrbIXRTQjOizyTsXCvMdnUrs2g=";
+  };
+  cargoSha256 = "sha256-JpsZ37u3+4+X8knTxoGmJisopTsPR221rv3Bu4DMZZI=";
+  buildInputs = lib.optionals stdenv.isDarwin [ DiskArbitration Foundation ];
+  meta = with lib; {
+    description = "Insanely fast, Feature-rich searching. lnx is the adaptable, typo tollerant deployment of the tantivy search engine. Standing on the shoulders of giants. ";
+    homepage = "https://lnx.rs/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ happysalada ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/servers/serf/default.nix b/pkgs/servers/serf/default.nix
index 8964796862ce6..da1bf0770fd03 100644
--- a/pkgs/servers/serf/default.nix
+++ b/pkgs/servers/serf/default.nix
@@ -1,23 +1,43 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "serf";
-  version = "0.8.1";
-  rev = "v${version}";
-
-  goPackagePath = "github.com/hashicorp/serf";
+  version = "0.9.8";
+  rev = "a2bba5676d6e37953715ea10e583843793a0c507";
 
   src = fetchFromGitHub {
     owner = "hashicorp";
     repo = "serf";
-    inherit rev;
-    sha256 = "1arakjvhyasrk52vhxas2ghlrby3i3wj59r7sjrkbpln2cdbqnlx";
+    rev = "v${version}";
+    sha256 = "sha256-UWCxzwV2bcT8Sfl296HpBThe+qYX19M7sNcEJHs/sXc=";
   };
 
+  vendorSha256 = "sha256-DaPcCuj0KGpuOC6XynltMBE9wO7w5qKrTChC401249o=";
+
+  subPackages = [ "cmd/serf" ];
+
+  # These values are expected by version/version.go
+  # https://github.com/hashicorp/serf/blob/7faa1b06262f70780c3c35ac25a4c96d754f06f3/version/version.go#L8-L22
+  ldflags = lib.mapAttrsToList
+    (n: v: "-X github.com/hashicorp/serf/version.${n}=${v}") {
+      GitCommit = rev;
+      Version = version;
+      VersionPrerelease = "";
+    };
+
+  # There are no tests for cmd/serf.
+  doCheck = false;
+
   meta = with lib; {
-    description = "Tool for service orchestration and management";
-    homepage = "https://www.serf.io/";
-    platforms = platforms.linux ++ platforms.darwin;
+    description = "Service orchestration and management tool";
+    longDescription = ''
+      Serf is a decentralized solution for service discovery and orchestration
+      that is lightweight, highly available, and fault tolerant.
+    '';
+    homepage = "https://www.serf.io";
     license = licenses.mpl20;
     maintainers = with maintainers; [ pradeepchhetri ];
   };
diff --git a/pkgs/servers/shairport-sync/default.nix b/pkgs/servers/shairport-sync/default.nix
index ed3c0dcc7f9de..dbe478568ac64 100644
--- a/pkgs/servers/shairport-sync/default.nix
+++ b/pkgs/servers/shairport-sync/default.nix
@@ -1,6 +1,12 @@
-{ lib, stdenv, fetchFromGitHub, autoreconfHook, openssl, avahi, alsa-lib
-, libdaemon, popt, pkg-config, libconfig, libpulseaudio, soxr }:
+{ lib, stdenv, fetchFromGitHub
+, autoreconfHook, pkg-config
+, openssl, avahi, alsa-lib, glib, libdaemon, popt, libconfig, libpulseaudio, soxr
+, enableDbus ? stdenv.isLinux
+, enableMetadata ? false
+, enableMpris ? stdenv.isLinux
+}:
 
+with lib;
 stdenv.mkDerivation rec {
   version = "3.3.9";
   pname = "shairport-sync";
@@ -23,7 +29,12 @@ stdenv.mkDerivation rec {
     libconfig
     libpulseaudio
     soxr
-  ];
+  ] ++ optional stdenv.isLinux glib;
+
+  prePatch = ''
+    sed -i -e 's/G_BUS_TYPE_SYSTEM/G_BUS_TYPE_SESSION/g' dbus-service.c
+    sed -i -e 's/G_BUS_TYPE_SYSTEM/G_BUS_TYPE_SESSION/g' mpris-service.c
+  '';
 
   enableParallelBuilding = true;
 
@@ -32,7 +43,10 @@ stdenv.mkDerivation rec {
     "--with-avahi" "--with-ssl=openssl" "--with-soxr"
     "--without-configfiles"
     "--sysconfdir=/etc"
-  ];
+  ]
+    ++ optional enableDbus "--with-dbus-interface"
+    ++ optional enableMetadata "--with-metadata"
+    ++ optional enableMpris "--with-mpris-interface";
 
   meta = with lib; {
     inherit (src.meta) homepage;
diff --git a/pkgs/servers/sickbeard/sickgear.nix b/pkgs/servers/sickbeard/sickgear.nix
index 4c2048000a64b..c1c3c6dc05bff 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 ]);
 in stdenv.mkDerivation rec {
   pname = "sickgear";
-  version = "0.25.31";
+  version = "0.25.35";
 
   src = fetchFromGitHub {
     owner = "SickGear";
     repo = "SickGear";
     rev = "release_${version}";
-    sha256 = "11l537c7d6mrbvn24bfkzydb96mwzhr8z5rl6imiphjzr0f8qyyp";
+    sha256 = "0hc43wfa256nkjm7bvsr6b7xsyilm1ks4x16kvpprqmj1symlkz3";
   };
 
   dontBuild = true;
diff --git a/pkgs/servers/sql/mariadb/galera/default.nix b/pkgs/servers/sql/mariadb/galera/default.nix
index d124664dd7b52..0c6c085866e33 100644
--- a/pkgs/servers/sql/mariadb/galera/default.nix
+++ b/pkgs/servers/sql/mariadb/galera/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "mariadb-galera";
-  version = "26.4.11";
+  version = "26.4.12";
 
   src = fetchFromGitHub {
     owner = "codership";
     repo = "galera";
     rev = "release_${version}";
-    sha256 = "sha256-zAS/YCUNSgkjehUXJpa+FyPC6zHnx3Nmlx0m7hbuZo0=";
+    sha256 = "sha256-1Jw99Eo8xhCNLd2XHm9M6DatzBl0w5VvgUahvKs4glg=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/servers/tailscale/default.nix b/pkgs/servers/tailscale/default.nix
index 96e46165b537a..dd2fc355dc6a1 100644
--- a/pkgs/servers/tailscale/default.nix
+++ b/pkgs/servers/tailscale/default.nix
@@ -2,15 +2,15 @@
 
 buildGoModule rec {
   pname = "tailscale";
-  version = "1.26.0";
+  version = "1.26.1";
 
   src = fetchFromGitHub {
     owner = "tailscale";
     repo = "tailscale";
     rev = "v${version}";
-    sha256 = "sha256-n8g8ciK3QZYeoGdD6SUAkATlklAzjH9QYnXLyOGB1Bw=";
+    sha256 = "sha256-3WBvJI9uyzreUbk8ROYxXQgvttZ95OEepdzA4ZhdaJ0=";
   };
-  vendorSha256 = "sha256-rIYDpGrUPVrDQjiT3zsNmiojNXrIM1wV5/Ci5+lQDqc=";
+  vendorSha256 = "sha256-NHmMkYfGgAEFjvFvKaPoaAuzeDbTJAw+85fZcxVA2jY=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ makeWrapper ];
 
diff --git a/pkgs/servers/tautulli/default.nix b/pkgs/servers/tautulli/default.nix
index df327f0e8f32c..c2d44b29a0e00 100644
--- a/pkgs/servers/tautulli/default.nix
+++ b/pkgs/servers/tautulli/default.nix
@@ -2,7 +2,7 @@
 
 buildPythonApplication rec {
   pname = "Tautulli";
-  version = "2.9.5";
+  version = "2.10.1";
   format = "other";
 
   pythonPath = [ setuptools ];
@@ -12,7 +12,7 @@ buildPythonApplication rec {
     owner = "Tautulli";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-agkYfLWmeQOD+dtoYvTcNPXjfU3kv56c15AFeB7eVTw=";
+    sha256 = "sha256-qM3PiBZD0AfbhIdJFYFUGYhsB4U6ZZEW4i7S9waP7VE=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/traefik/default.nix b/pkgs/servers/traefik/default.nix
index 622662645c7ef..d6a0f497da14f 100644
--- a/pkgs/servers/traefik/default.nix
+++ b/pkgs/servers/traefik/default.nix
@@ -1,33 +1,34 @@
-{ lib, fetchzip, buildGoModule, go-bindata, nixosTests }:
+{ lib, fetchFromGitHub, buildGoModule, nixosTests }:
 
 buildGoModule rec {
   pname = "traefik";
-  version = "2.6.3";
+  version = "2.7.1";
 
-  src = fetchzip {
-    url = "https://github.com/traefik/traefik/releases/download/v${version}/traefik-v${version}.src.tar.gz";
-    sha256 = "sha256-OaKgX3qwiJM/EPprV1r3CbUnxOaWl7BTMcS5v+tmHoo=";
-    stripRoot = false;
+  src = fetchFromGitHub {
+    owner = "traefik";
+    repo = "traefik";
+    rev = "v${version}";
+    sha256 = "sha256-uTE0Z7lgxKNq1wQSMUSp9dMfxV+aIm7cwYSkZBUdnug=";
   };
 
-  vendorSha256 = "sha256-tqrfCpZ/fRYZBZ/SBAvvJebLBeD2M/AVJEPiseehJHY=";
+  vendorSha256 = "sha256-WlLntYrXs1kOu26yNeZI1xpb6FsHPiA/bNzaxCZTG4Y=";
 
   subPackages = [ "cmd/traefik" ];
 
-  nativeBuildInputs = [ go-bindata ];
-
-  passthru.tests = { inherit (nixosTests) traefik; };
-
   preBuild = ''
     go generate
 
     CODENAME=$(awk -F "=" '/CODENAME=/ { print $2}' script/binary)
 
-    buildFlagsArray+=("-ldflags=\
-      -X github.com/traefik/traefik/v2/pkg/version.Version=${version} \
-      -X github.com/traefik/traefik/v2/pkg/version.Codename=$CODENAME")
+    buildFlagsArray+=("-ldflags= -s -w \
+      -X github.com/traefik/traefik/v${lib.versions.major version}/pkg/version.Version=${version} \
+      -X github.com/traefik/traefik/v${lib.versions.major version}/pkg/version.Codename=$CODENAME")
   '';
 
+  doCheck = false;
+
+  passthru.tests = { inherit (nixosTests) traefik; };
+
   meta = with lib; {
     homepage = "https://traefik.io";
     description = "A modern reverse proxy";
diff --git a/pkgs/servers/trickster/trickster.nix b/pkgs/servers/trickster/trickster.nix
index 5cf08ee6c3cfd..a798e0ceff0d8 100644
--- a/pkgs/servers/trickster/trickster.nix
+++ b/pkgs/servers/trickster/trickster.nix
@@ -1,26 +1,53 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "trickster";
-  version = "0.1.10";
-
-  goPackagePath = "github.com/Comcast/trickster";
-
-  goDeps = ./trickster_deps.nix;
+  version = "1.1.5";
+  rev = "4595bd6a1ae1165ef497251ad85c646dadc8a925";
 
   src = fetchFromGitHub {
-    owner = "Comcast";
-    repo = pname;
+    owner = "trickstercache";
+    repo = "trickster";
     rev = "v${version}";
-    sha256 = "12z71rf03g2x8r7cgns0n4n46r0gjsfyig6z9r5xrn9kfghabfi8";
+    sha256 = "sha256-BRD8IF3s9RaDorVtXRvbKLVVVXWiEQTQyKBR9jFo1eM=";
   };
 
-  doCheck = true;
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/trickster" ];
+
+  preBuild =
+    let
+      ldflags = with lib;
+        concatStringsSep " " (
+          [ "-extldflags '-static'" "-s" "-w" ] ++
+          (mapAttrsToList (n: v: "-X main.application${n}=${v}") {
+            BuildTime = "1970-01-01T00:00:00+0000";
+            GitCommitID = rev;
+            GoVersion = "$(go env GOVERSION)";
+            GoArch = "$(go env GOARCH)";
+          })
+        );
+    in
+    ''
+      buildFlagsArray+=("-ldflags=${ldflags}")
+    '';
+
+  # Tests are broken.
+  doCheck = false;
 
   meta = with lib; {
-    description = "Reverse proxy cache for the Prometheus HTTP APIv1";
-    homepage = "https://github.com/Comcast/trickster";
+    description = "Reverse proxy cache and time series dashboard accelerator";
+    longDescription = ''
+      Trickster is a fully-featured HTTP Reverse Proxy Cache for HTTP
+      applications like static file servers and web APIs.
+    '';
+    homepage = "https://trickstercache.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ _1000101 ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/trickster/trickster_deps.nix b/pkgs/servers/trickster/trickster_deps.nix
deleted file mode 100644
index ab100bed760e1..0000000000000
--- a/pkgs/servers/trickster/trickster_deps.nix
+++ /dev/null
@@ -1,237 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/gopher-json";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/gopher-json";
-      rev = "5a6b3ba71ee6";
-      sha256 = "0hx6n722zq51p852lv56k39yjy09lw6mnr2c3x0p23rfyyrakj2p";
-    };
-  }
-  {
-    goPackagePath = "github.com/alicebob/miniredis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alicebob/miniredis";
-      rev = "cfad8aca71cc";
-      sha256 = "0x2401nxyhdz037lj98c0sa77d8k49jfcq7is3ddiyim3csg5a0w";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "3a771d992973";
-      sha256 = "1l2lns4f5jabp61201sh88zf3b0q793w4zdgp9nll7mmfcxxjif3";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/bbolt";
-      rev = "v1.3.0";
-      sha256 = "0cp5v9iypg9ysiq40k3h3lg7aisxplnmxshha7nama6b170izyay";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-redis/redis";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-redis/redis";
-      rev = "v6.14.2";
-      sha256 = "0s1if96r8xnadan7pz1j8hvzk9g4fm3phwmwzadwpq21pgni66d7";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.2.0";
-      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/snappy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/snappy";
-      rev = "2e65f85255db";
-      sha256 = "05w6mpc4qcy0pv8a2bzng8nf4s5rf5phfang4jwy9rgf808q0nxf";
-    };
-  }
-  {
-    goPackagePath = "github.com/gomodule/redigo";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gomodule/redigo";
-      rev = "v2.0.0";
-      sha256 = "1kg7s8027b4g1sfw0v3nh30c15j407kv684s53gg281r807dnfpk";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/context";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/context";
-      rev = "v1.1.1";
-      sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "v1.4.0";
-      sha256 = "0mnw81ayjm4d8462qg8spmcwxmchn24158bf93zxjab51pg8n9gm";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/mux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/mux";
-      rev = "v1.6.2";
-      sha256 = "0pvzm23hklxysspnz52mih6h1q74vfrdhjfm1l3sa9r8hhqmmld2";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.8.0";
-      sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.1";
-      sha256 = "01gnylazia30pcp069xcng482gwmm3xcx5zgrlwdkhic1lyb6i9l";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "5c3871d89910";
-      sha256 = "04psf81l9fjcwascsys428v03fx4fi894h7fhrj2vvcz723q57k0";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "4724e9255275";
-      sha256 = "0pcx8hlnrxx5nnmpk786cn99rsgqk1jrd3c9f6fsx8qd8y5iwjy6";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "1dc9a6cbc91a";
-      sha256 = "1zlv1x30xp7z5c3vn5vp870v4bjim0zcidzc3mr2l3xhazc0svab";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/gopher-lua";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/gopher-lua";
-      rev = "a0dfe84f6227";
-      sha256 = "13k2dphx4zv6fwgqsydsc0g0b0pf7qx3yb6i7hai6nnkh0db91nn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "a5c9d58dba9a";
-      sha256 = "02qv5i7yps35p7fa81345qz7k8i73gkigj69anwmpw9rhpmzayf9";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/natefinch/lumberjack.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/natefinch/lumberjack.v2";
-      rev = "a96e63847dc3";
-      sha256 = "1l3vlv72b7rfkpy1164kwd3qzrqmmjnb67akzxqp2mlvc66k6p3d";
-    };
-  }
-]
diff --git a/pkgs/servers/tt-rss/plugin-feediron/default.nix b/pkgs/servers/tt-rss/plugin-feediron/default.nix
new file mode 100644
index 0000000000000..d7353bf4c439d
--- /dev/null
+++ b/pkgs/servers/tt-rss/plugin-feediron/default.nix
@@ -0,0 +1,33 @@
+{ lib, stdenv, fetchFromGitHub, tt-rss }:
+
+stdenv.mkDerivation rec {
+  pname = "tt-rss-plugin-feediron";
+  version = "1.32";
+
+  src = fetchFromGitHub {
+    owner = "feediron";
+    repo = "ttrss_plugin-feediron";
+    rev = "v${version}";
+    sha256 = "0a4nq0k0zmgmx7dzz70smhp0yxp7jynk9djz0nnbaa138h8888pr";
+  };
+
+  installPhase = ''
+    mkdir -p $out/feediron
+
+    cp -r bin filters init.php preftab recipes $out/feediron/
+  '';
+
+  meta = with lib; {
+    description = "Evolution of ttrss_plugin-af_feedmod";
+    longDescription = ''
+      This is a plugin for Tiny Tiny RSS (tt-rss).
+      It allows you to replace an article's contents by the contents of an element on the linked URL's page
+
+      i.e. create a "full feed".
+    '';
+    license = licenses.mit;
+    homepage = "https://github.com/feediron/ttrss_plugin-feediron";
+    maintainers = with maintainers; [ milogert ];
+    inherit (tt-rss.meta) platforms;
+  };
+}
diff --git a/pkgs/servers/unifi-video/default.nix b/pkgs/servers/unifi-video/default.nix
index 4c55d51025911..45a9b5c6fb61e 100755
--- a/pkgs/servers/unifi-video/default.nix
+++ b/pkgs/servers/unifi-video/default.nix
@@ -53,6 +53,10 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://www.ui.com";
     downloadPage = "https://www.ui.com/download/unifi-video/";
+    sourceProvenance = with sourceTypes; [
+      binaryBytecode
+      binaryNativeCode
+    ];
     license = licenses.unfree;
     maintainers = [ maintainers.rsynnest ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/servers/urserver/default.nix b/pkgs/servers/urserver/default.nix
index 392277eeedc36..c84d40b69c227 100644
--- a/pkgs/servers/urserver/default.nix
+++ b/pkgs/servers/urserver/default.nix
@@ -38,6 +38,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     homepage = "https://www.unifiedremote.com/";
     description = "The one-and-only remote for your computer";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ sfrijters ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/servers/web-apps/hedgedoc/default.nix b/pkgs/servers/web-apps/hedgedoc/default.nix
index c38aac202d216..92f1713372ffc 100644
--- a/pkgs/servers/web-apps/hedgedoc/default.nix
+++ b/pkgs/servers/web-apps/hedgedoc/default.nix
@@ -116,7 +116,7 @@ mkYarnPackage rec {
     description = "Realtime collaborative markdown notes on all platforms";
     license = licenses.agpl3;
     homepage = "https://hedgedoc.org";
-    maintainers = with maintainers; [ willibutz ma27 globin ];
+    maintainers = with maintainers; [ willibutz globin ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/servers/web-apps/jirafeau/default.nix b/pkgs/servers/web-apps/jirafeau/default.nix
index 6091eb498208d..8001e58049704 100644
--- a/pkgs/servers/web-apps/jirafeau/default.nix
+++ b/pkgs/servers/web-apps/jirafeau/default.nix
@@ -8,13 +8,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "jirafeau";
-  version = "4.3.0";
+  version = "4.4.0";
 
   src = fetchFromGitLab {
     owner = "mojo42";
     repo = "Jirafeau";
     rev = version;
-    hash = "sha256-9v6rtxViXsolx5AKSp2HxcFyU1XJWFSiqzTBl+dQBD4=";
+    hash = "sha256-jJ2r8XTtAzawTVo2A2pDwy7Z6KHeyBkgXXaCPY0w/rg=";
   };
 
   installPhase = ''
diff --git a/pkgs/servers/web-apps/lemmy/package.json b/pkgs/servers/web-apps/lemmy/package.json
index bb7dc863d5bbf..934cccd205f7d 100644
--- a/pkgs/servers/web-apps/lemmy/package.json
+++ b/pkgs/servers/web-apps/lemmy/package.json
@@ -1,7 +1,7 @@
 {
   "name": "lemmy-ui",
   "description": "An isomorphic UI for lemmy",
-  "version": "0.15.1",
+  "version": "0.16.4",
   "author": "Dessalines <tyhou13@gmx.com>",
   "license": "AGPL-3.0",
   "scripts": {
@@ -17,14 +17,14 @@
   },
   "repository": "https://github.com/LemmyNet/lemmy-ui",
   "dependencies": {
-    "@typescript-eslint/parser": "^5.6.0",
+    "@typescript-eslint/parser": "^5.21.0",
     "autosize": "^5.0.1",
-    "check-password-strength": "^2.0.3",
-    "choices.js": "^10.0.0",
+    "check-password-strength": "^2.0.5",
+    "choices.js": "^10.1.0",
     "classnames": "^2.3.1",
-    "emoji-short-name": "^1.0.0",
-    "express": "~4.17.1",
-    "i18next": "^21.5.4",
+    "emoji-short-name": "^2.0.0",
+    "express": "~4.18.0",
+    "i18next": "^21.6.16",
     "inferno": "^7.4.11",
     "inferno-create-element": "^7.4.11",
     "inferno-helmet": "^5.2.1",
@@ -34,15 +34,16 @@
     "inferno-server": "^7.4.11",
     "isomorphic-cookie": "^1.2.4",
     "jwt-decode": "^3.1.2",
-    "markdown-it": "^12.1.0",
+    "markdown-it": "^13.0.0",
     "markdown-it-container": "^3.0.0",
+    "markdown-it-footnote": "^3.0.3",
     "markdown-it-html5-embed": "^1.0.0",
     "markdown-it-sub": "^1.0.0",
     "markdown-it-sup": "^1.0.0",
-    "moment": "^2.29.1",
+    "moment": "^2.29.3",
     "register-service-worker": "^1.7.2",
-    "rxjs": "^7.4.0",
-    "sass": "^1.47.0",
+    "rxjs": "^7.5.5",
+    "sass": "^1.51.0",
     "serialize-javascript": "^6.0.0",
     "tippy.js": "^6.3.7",
     "toastify-js": "^1.11.2",
@@ -50,48 +51,47 @@
     "websocket-ts": "^1.1.1"
   },
   "devDependencies": {
-    "@babel/core": "^7.16.0",
-    "@babel/plugin-transform-runtime": "^7.16.4",
+    "@babel/core": "^7.17.9",
+    "@babel/plugin-transform-runtime": "^7.17.0",
     "@babel/plugin-transform-typescript": "^7.16.1",
-    "@babel/preset-env": "7.16.8",
+    "@babel/preset-env": "7.16.11",
     "@babel/preset-typescript": "^7.16.0",
-    "@babel/runtime": "^7.16.3",
+    "@babel/runtime": "^7.17.9",
     "@types/autosize": "^4.0.0",
     "@types/express": "^4.17.13",
-    "@types/node": "^17.0.8",
-    "@types/node-fetch": "^2.5.11",
+    "@types/node": "^17.0.29",
+    "@types/node-fetch": "^2.6.1",
     "@types/serialize-javascript": "^5.0.1",
-    "@typescript-eslint/eslint-plugin": "^5.6.0",
-    "babel-loader": "^8.2.3",
-    "babel-plugin-inferno": "^6.3.0",
+    "@typescript-eslint/eslint-plugin": "^5.21.0",
+    "babel-loader": "^8.2.5",
+    "babel-plugin-inferno": "^6.4.0",
     "bootstrap": "^5.1.3",
     "bootswatch": "^5.1.3",
     "clean-webpack-plugin": "^4.0.0",
-    "copy-webpack-plugin": "^10.0.0",
-    "css-loader": "^6.5.1",
-    "eslint": "^8.4.0",
+    "copy-webpack-plugin": "^10.2.4",
+    "css-loader": "^6.7.1",
+    "eslint": "^8.14.0",
     "eslint-plugin-prettier": "^4.0.0",
     "husky": "^7.0.4",
     "import-sort-style-module": "^6.0.0",
-    "iso-639-1": "^2.1.10",
-    "lemmy-js-client": "0.15.0",
-    "lint-staged": "^12.1.2",
-    "mini-css-extract-plugin": "^2.4.5",
+    "lemmy-js-client": "0.16.4",
+    "lint-staged": "^12.4.1",
+    "mini-css-extract-plugin": "^2.6.0",
     "node-fetch": "^2.6.1",
-    "prettier": "^2.5.1",
+    "prettier": "^2.6.2",
     "prettier-plugin-import-sort": "^0.0.7",
     "prettier-plugin-organize-imports": "^2.3.4",
-    "prettier-plugin-packagejson": "^2.2.15",
+    "prettier-plugin-packagejson": "^2.2.17",
     "rimraf": "^3.0.2",
     "run-node-webpack-plugin": "^1.3.0",
-    "sass-loader": "^12.3.0",
+    "sass-loader": "^12.6.0",
     "sortpack": "^2.2.0",
     "style-loader": "^3.3.1",
-    "terser": "^5.10.0",
-    "typescript": "^4.5.2",
-    "webpack": "5.66.0",
-    "webpack-cli": "^4.9.1",
-    "webpack-dev-server": "4.7.3",
+    "terser": "^5.13.0",
+    "typescript": "^4.6.3",
+    "webpack": "5.72.0",
+    "webpack-cli": "^4.9.2",
+    "webpack-dev-server": "4.8.1",
     "webpack-node-externals": "^3.0.0"
   },
   "engines": {
diff --git a/pkgs/servers/web-apps/lemmy/pin.json b/pkgs/servers/web-apps/lemmy/pin.json
index 9a588b54da99f..c22c821f5db3f 100644
--- a/pkgs/servers/web-apps/lemmy/pin.json
+++ b/pkgs/servers/web-apps/lemmy/pin.json
@@ -1,7 +1,7 @@
 {
-  "version": "0.15.1",
-  "serverSha256": "sha256-HHr9mG0AuI/86+EjODE/GT9lhl5DeNkzQ4k077b7ICU=",
-  "serverCargoSha256": "sha256-ErMNsyHfBiYZA4gjaxPHO+fQseUVIKy/928oGqw+Adg=",
-  "uiSha256": "sha256-Al6Q1xXkjqIb2v2S4JbmlQAAFCKwzkAW924uolC0tu8=",
-  "uiYarnDepsSha256": "sha256-Zadp74ZHmbxCHxpDAYOa6Ot2kWujIj8ZzrSaIEsYgMY="
+  "version": "0.16.4",
+  "serverSha256": "sha256-xbxavlmRm7QTbrAjw6IMgQq8rEgyEHdcj11EhsOY+j0=",
+  "serverCargoSha256": "sha256-vDIaLpw0C6fnv0quH20qRN0I38Br338+MS9YzVfNizU=",
+  "uiSha256": "sha256-GZH/fSYLbxwigrr5LwAzxH4ElDVjTs8Tqqq+xYDFNCU",
+  "uiYarnDepsSha256": "sha256-BQs9UXUT/CcxJ7CdLksYGvGPGAaW7FLUAShLsbPC0jw="
 }
diff --git a/pkgs/servers/web-apps/lemmy/server.nix b/pkgs/servers/web-apps/lemmy/server.nix
index 5526d8fe31f3e..52dddc8183c0d 100644
--- a/pkgs/servers/web-apps/lemmy/server.nix
+++ b/pkgs/servers/web-apps/lemmy/server.nix
@@ -7,6 +7,7 @@
 , libiconv
 , Security
 , protobuf
+, rustfmt
 }:
 let
   pinData = lib.importJSON ./pin.json;
@@ -21,6 +22,7 @@ rustPlatform.buildRustPackage rec {
     repo = "lemmy";
     rev = version;
     sha256 = pinData.serverSha256;
+    fetchSubmodules = true;
   };
 
   cargoSha256 = pinData.serverCargoSha256;
@@ -37,7 +39,7 @@ rustPlatform.buildRustPackage rec {
 
   PROTOC = "${protobuf}/bin/protoc";
   PROTOC_INCLUDE = "${protobuf}/include";
-  nativeBuildInputs = [ protobuf ];
+  nativeBuildInputs = [ protobuf rustfmt ];
 
   passthru.updateScript = ./update.sh;
 
diff --git a/pkgs/servers/web-apps/snipe-it/default.nix b/pkgs/servers/web-apps/snipe-it/default.nix
index cf72123ba1e8a..02a1ff30d8f9a 100644
--- a/pkgs/servers/web-apps/snipe-it/default.nix
+++ b/pkgs/servers/web-apps/snipe-it/default.nix
@@ -18,13 +18,13 @@ let
 
 in package.override rec {
   pname = "snipe-it";
-  version = "6.0.2";
+  version = "6.0.5";
 
   src = fetchFromGitHub {
     owner = "snipe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "174s2h3whim98d9h8l4qr3vpk199zfxgwyys3d3gblpx1m5mr07k";
+    sha256 = "15dp8y0kdjg9x4iwa5ha5w4qbwwsdg5z8337rmkkla2yjmf4lrxb";
   };
 
   meta = with lib; {
diff --git a/pkgs/servers/web-apps/snipe-it/update.sh b/pkgs/servers/web-apps/snipe-it/update.sh
index cf06f81b07811..3e5f70f1a5879 100755
--- a/pkgs/servers/web-apps/snipe-it/update.sh
+++ b/pkgs/servers/web-apps/snipe-it/update.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#! nix-shell -i bash -p nix curl jq nix-update
+#! nix-shell -I nixpkgs=../../../.. -i bash -p nix curl jq nix-update
 
 # check if composer2nix is installed
 if ! command -v composer2nix &> /dev/null; then
@@ -7,7 +7,7 @@ if ! command -v composer2nix &> /dev/null; then
   exit 1
 fi
 
-CURRENT_VERSION=$(nix eval --raw '(with import ../../../.. {}; snipe-it.version)')
+CURRENT_VERSION=$(nix eval -f ../../../.. --raw snipe-it.version)
 TARGET_VERSION_REMOTE=$(curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} https://api.github.com/repos/snipe/snipe-it/releases/latest | jq -r ".tag_name")
 TARGET_VERSION=${TARGET_VERSION_REMOTE:1}
 SNIPE_IT=https://github.com/snipe/snipe-it/raw/$TARGET_VERSION_REMOTE
diff --git a/pkgs/servers/web-apps/wordpress/default.nix b/pkgs/servers/web-apps/wordpress/default.nix
index f1c43bde3ce09..41b42f3762e76 100644
--- a/pkgs/servers/web-apps/wordpress/default.nix
+++ b/pkgs/servers/web-apps/wordpress/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "wordpress";
-  version = "5.9.3";
+  version = "6.0";
 
   src = fetchurl {
     url = "https://wordpress.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-cMvqXXLez7Ep9MyObD0BdepkvsaOl5YbbbA3cnilKlY=";
+    sha256 = "sha256-GIfzIj2wHW2Ijfd+oLO43eTGJDlhprSG0b7hvpMkvwg=";
   };
 
   installPhase = ''
diff --git a/pkgs/shells/fish/default.nix b/pkgs/shells/fish/default.nix
index 8fc79ecfbb230..f2a6492e251d3 100644
--- a/pkgs/shells/fish/default.nix
+++ b/pkgs/shells/fish/default.nix
@@ -134,7 +134,7 @@ let
 
   fish = stdenv.mkDerivation rec {
     pname = "fish";
-    version = "3.4.1";
+    version = "3.5.0";
 
     src = fetchurl {
       # There are differences between the release tarball and the tarball GitHub
@@ -144,19 +144,9 @@ let
       # --version`), as well as the local documentation for all builtins (and
       # maybe other things).
       url = "https://github.com/fish-shell/fish-shell/releases/download/${version}/${pname}-${version}.tar.xz";
-      sha256 = "sha256-tvI7OEOwTbawqQ/qH28NDkDMAntKcyCYIAhj8oZKlOo=";
+      sha256 = "sha256-KR5Ox8bD/qVNwa7QV849QrNW+m9whlYnssffzsrv0hA=";
     };
 
-    patches = [
-      # merged https://github.com/fish-shell/fish-shell/pull/8978
-      # "create_manpage_completions.py: Do not overstrip commands with dots"
-      (fetchpatch {
-        name = "fix-cmdname-completeion-generator.patch";
-        url = "https://github.com/fish-shell/fish-shell/commit/32d646a5483844e9b1fae4b73f252a34ec0d4c76.patch";
-        sha256 = "sha256-51hqgPHQ7oQbl1i3SfqvGsbkYMe2Jh+sEwCRu2kiv1U=";
-      })
-    ];
-
     # Fix FHS paths in tests
     postPatch = ''
       # src/fish_tests.cpp
diff --git a/pkgs/shells/fish/plugins/fzf-fish.nix b/pkgs/shells/fish/plugins/fzf-fish.nix
index 374e4db4bb223..a4a4e319c6bbe 100644
--- a/pkgs/shells/fish/plugins/fzf-fish.nix
+++ b/pkgs/shells/fish/plugins/fzf-fish.nix
@@ -2,13 +2,13 @@
 
 buildFishPlugin rec {
   pname = "fzf.fish";
-  version = "8.3";
+  version = "9.0";
 
   src = fetchFromGitHub {
     owner = "PatrickF1";
     repo = "fzf.fish";
     rev = "v${version}";
-    sha256 = "sha256-eSNUqvKXTxcuvICxo8BmVWL1ESXQuU7VhOl7aONrhwM=";
+    sha256 = "sha256-0rnd8oJzLw8x/U7OLqoOMQpK81gRc7DTxZRSHxN9YlM=";
   };
 
   checkInputs = [ fzf fd util-linux ];
diff --git a/pkgs/shells/oh/default.nix b/pkgs/shells/oh/default.nix
index 68f34fe8eb170..e9a09c8c28880 100644
--- a/pkgs/shells/oh/default.nix
+++ b/pkgs/shells/oh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "oh";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "michaelmacinnis";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0sdpk77i5mfamkdqldybl9znzz92hqgi4xvby5j28m0a5gw46kj0";
+    sha256 = "sha256-DMxC5fv5ZLDv7gMajC/eyJd2YpO+OXFdvwAPYotnczw=";
   };
 
-  vendorSha256 = "12vlvh37hvi8c1i9arppm5wj4v9c98s7myxra10q6qpdqssgc8a0";
+  vendorSha256 = "sha256-f4rqXOu6yXUzNsseSaV9pb8c2KXItYOalB5pfH3Acnc=";
 
   meta = with lib; {
     homepage = "https://github.com/michaelmacinnis/oh";
diff --git a/pkgs/shells/zsh/default.nix b/pkgs/shells/zsh/default.nix
index e5967ac1f78be..7e177a1744cdf 100644
--- a/pkgs/shells/zsh/default.nix
+++ b/pkgs/shells/zsh/default.nix
@@ -19,6 +19,7 @@ in
 stdenv.mkDerivation {
   pname = "zsh";
   inherit version;
+  outputs = [ "out" "doc" "info" "man" ];
 
   src = fetchurl {
     url = "mirror://sourceforge/zsh/zsh-${version}.tar.xz";
@@ -50,9 +51,8 @@ stdenv.mkDerivation {
   checkFlags = map (T: "TESTNUM=${T}") (lib.stringToCharacters "ABCDEVW");
 
   # XXX: think/discuss about this, also with respect to nixos vs nix-on-X
-  postInstall = lib.optionalString stdenv.isLinux ''
+  postInstall = ''
     make install.info install.html
-    '' + ''
     mkdir -p $out/etc/
     cat > $out/etc/zprofile <<EOF
 if test -e /etc/NIXOS; then
@@ -84,6 +84,8 @@ EOF
     mv $out/etc/zprofile $out/etc/zprofile_zwc_is_used
 
     rm $out/bin/zsh-${version}
+    mkdir -p $out/share/doc/
+    mv $out/share/zsh/htmldoc $out/share/doc/zsh-$version
   '';
   # XXX: patch zsh to take zwc if newer _or equal_
 
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 3b41ba902a5c9..8d73c63f67aed 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -5,15 +5,15 @@
 , git, nix, nixfmt, jq, coreutils, gnused, curl, cacert, bash }:
 
 stdenv.mkDerivation rec {
-  version = "2022-06-12";
+  version = "2022-06-19";
   pname = "oh-my-zsh";
-  rev = "50550c70eaa36e79fdf380bdc4ddad4a1ad581a0";
+  rev = "4c82a2eedf0c43d47601ffa8b0303ed1326fab8f";
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "ohmyzsh";
     repo = "ohmyzsh";
-    sha256 = "lZ63wtvrF5DMXXGE6GC6T4oEpN0G47Pvhas5IZ+vzAA=";
+    sha256 = "evFMOZUVpF8Qv3os+hx8Z7nC216sZclxO1g9ZaO//QU=";
   };
 
   strictDeps = true;
diff --git a/pkgs/stdenv/common-path.nix b/pkgs/stdenv/common-path.nix
index da468d56a2cda..8c1acfb50dd68 100644
--- a/pkgs/stdenv/common-path.nix
+++ b/pkgs/stdenv/common-path.nix
@@ -12,4 +12,12 @@
   pkgs.bash
   pkgs.patch
   pkgs.xz.bin
+
+  # The `file` command is added here because an enormous number of
+  # packages have a vendored dependency upon `file` in their
+  # `./configure` script, due to libtool<=2.4.6, or due to
+  # libtool>=2.4.7 in which the package author decided to set FILECMD
+  # when running libtoolize.  In fact, file-5.4.6 *depends on itself*
+  # and tries to invoke `file` from its own ./configure script.
+  pkgs.file
 ]
diff --git a/pkgs/stdenv/darwin/default.nix b/pkgs/stdenv/darwin/default.nix
index 32e4fe9749ab3..bbc15bad26203 100644
--- a/pkgs/stdenv/darwin/default.nix
+++ b/pkgs/stdenv/darwin/default.nix
@@ -486,6 +486,7 @@ rec {
           gmp
           libiconv
           brotli.lib
+          file
         ] ++ lib.optional haveKRB5 libkrb5) ++
         (with pkgs."${finalLlvmPackages}"; [
           libcxx
@@ -561,6 +562,7 @@ rec {
           gmp
           libiconv
           brotli.lib
+          file
         ] ++ lib.optional haveKRB5 libkrb5) ++
         (with pkgs."${finalLlvmPackages}"; [
           libcxx
@@ -737,6 +739,7 @@ rec {
         brotli.lib
         cc.expand-response-params
         libxml2.out
+        file
       ] ++ lib.optional haveKRB5 libkrb5
       ++ lib.optionals localSystem.isAarch64 [
         pkgs.updateAutotoolsGnuConfigScriptsHook
diff --git a/pkgs/stdenv/generic/make-derivation.nix b/pkgs/stdenv/generic/make-derivation.nix
index 5f1a22cee06f3..bde8735642d8c 100644
--- a/pkgs/stdenv/generic/make-derivation.nix
+++ b/pkgs/stdenv/generic/make-derivation.nix
@@ -111,9 +111,9 @@ let
 , # Target is not included by default because most programs don't care.
   # Including it then would cause needless mass rebuilds.
   #
-  # TODO(@Ericson2314): Make [ "build" "host" ] always the default.
+  # TODO(@Ericson2314): Make [ "build" "host" ] always the default / resolve #87909
   configurePlatforms ? lib.optionals
-    (stdenv.hostPlatform != stdenv.buildPlatform)
+    (stdenv.hostPlatform != stdenv.buildPlatform || config.configurePlatformsByDefault)
     [ "build" "host" ]
 
 # TODO(@Ericson2314): Make unconditional / resolve #33599
@@ -124,7 +124,7 @@ let
 # InstallCheck phase
 , doInstallCheck ? config.doCheckByDefault or false
 
-, # TODO(@Ericson2314): Make always true and remove
+, # TODO(@Ericson2314): Make always true and remove / resolve #178468
   strictDeps ? if config.strictDepsByDefault then true else stdenv.hostPlatform != stdenv.buildPlatform
 
 , enableParallelBuilding ? config.enableParallelBuildingByDefault
diff --git a/pkgs/stdenv/generic/setup.sh b/pkgs/stdenv/generic/setup.sh
index 6d30e6c01ffbf..40ffd9344e34d 100644
--- a/pkgs/stdenv/generic/setup.sh
+++ b/pkgs/stdenv/generic/setup.sh
@@ -1021,6 +1021,21 @@ configurePhase() {
             echo "fixing libtool script $i"
             fixLibtool "$i"
         done
+
+        # replace `/usr/bin/file` with `file` in any `configure`
+        # scripts with vendored libtool code.  Preserve mtimes to
+        # prevent some packages (e.g. libidn2) from spontaneously
+        # autoreconf'ing themselves
+        CONFIGURE_MTIME_REFERENCE=$(mktemp configure.mtime.reference.XXX)
+        find . \
+          -executable \
+          -type f \
+          -name configure \
+          -execdir grep -l 'GNU Libtool is free software; you can redistribute it and/or modify' {} \; \
+          -execdir touch -r {} "$CONFIGURE_MTIME_REFERENCE" \; \
+          -execdir sed -i s_/usr/bin/file_file_g {} \;    \
+          -execdir touch -r "$CONFIGURE_MTIME_REFERENCE" {} \;
+        rm -f "$CONFIGURE_MTIME_REFERENCE"
     fi
 
     if [[ -z "${dontAddPrefix:-}" && -n "$prefix" ]]; then
diff --git a/pkgs/stdenv/linux/default.nix b/pkgs/stdenv/linux/default.nix
index 712d1b001c1ae..d625ab5b30132 100644
--- a/pkgs/stdenv/linux/default.nix
+++ b/pkgs/stdenv/linux/default.nix
@@ -417,7 +417,7 @@ in
         # Simple executable tools
         concatMap (p: [ (getBin p) (getLib p) ]) [
             gzip bzip2 xz bash binutils.bintools coreutils diffutils findutils
-            gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed
+            gawk gnumake gnused gnutar gnugrep gnupatch patchelf ed file
           ]
         # Library dependencies
         ++ map getLib (
diff --git a/pkgs/tools/X11/focus/default.nix b/pkgs/tools/X11/focus/default.nix
new file mode 100644
index 0000000000000..20c7e2e25d90a
--- /dev/null
+++ b/pkgs/tools/X11/focus/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+, libXinerama
+}:
+
+stdenv.mkDerivation rec {
+  pname = "focus";
+  version = "unstable-2021-02-23";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "focus";
+    rev = "fed2fdbd3f73b192882d97aeb5b1cea681bb7d85";
+    sha256 = "sha256-IDiUXindzv5Ng5oCTyUlj2il/2kLvXG4YhgiYp7ZebQ=";
+  };
+
+  buildInputs = [ libX11 libXinerama ];
+
+  makeFlags = [ "PREFIX=\${out}" ];
+
+  meta = with lib; {
+    description = "Focus window, workspace or monitor by direction or cycle through them";
+    longDescription = ''
+      A collection of utilities that change the focus of windows, workspaces or
+      monitors.
+    '';
+    homepage = "https://github.com/phillbush/focus";
+    license = licenses.publicDomain;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/X11/pmenu/default.nix b/pkgs/tools/X11/pmenu/default.nix
new file mode 100644
index 0000000000000..7de509a299c58
--- /dev/null
+++ b/pkgs/tools/X11/pmenu/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, writeText
+, fontconfig
+, imlib2
+, libX11
+, libXext
+, libXft
+, libXinerama
+, libXrender
+, conf ? null
+}:
+
+stdenv.mkDerivation rec {
+  pname = "pmenu";
+  version = "3.0.1";
+
+  src = fetchFromGitHub {
+    owner = "phillbush";
+    repo = "pmenu";
+    rev = "v${version}";
+    sha256 = "sha256-xeOiJEOPz5QEMlWP6bWhTjmj4tfNqh3rsEVmnKvrKuM=";
+  };
+
+  buildInputs = [
+    fontconfig
+    imlib2
+    libX11
+    libXext
+    libXft
+    libXinerama
+    libXrender
+  ];
+
+  postPatch = let
+      configFile =
+        if lib.isDerivation conf || builtins.isPath conf
+        then conf else writeText "config.h" conf;
+    in
+    lib.optionalString (conf != null) "mv ${configFile} config.h";
+
+  makeFlags = [
+    "INSTALL=install"
+    "PREFIX=\${out}"
+  ];
+
+  meta = with lib; {
+    description = "A pie-menu tool";
+    longDescription = ''
+      πmenu is a pie menu utility for X. πmenu receives a menu specification in
+      stdin, shows a menu for the user to select one of the options, and outputs
+      the option selected to stdout.
+    '';
+    homepage = "https://github.com/phillbush/pmenu";
+    license = licenses.mit;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/tools/X11/sx/default.nix b/pkgs/tools/X11/sx/default.nix
index c03d4443fcf0e..1b04bb8876d33 100644
--- a/pkgs/tools/X11/sx/default.nix
+++ b/pkgs/tools/X11/sx/default.nix
@@ -1,6 +1,13 @@
-{ coreutils, fetchFromGitHub, lib, makeWrapper, stdenv, util-linux, xauth, xorgserver }:
+{ lib
+, bash
+, coreutils
+, fetchFromGitHub
+, resholve
+, xauth
+, xorgserver
+}:
 
-stdenv.mkDerivation rec {
+resholve.mkDerivation rec {
   pname = "sx";
   version = "2.1.7";
 
@@ -11,20 +18,28 @@ stdenv.mkDerivation rec {
     sha256 = "0xv15m30nhcknasqiybj5wwf7l91q4a4jf6xind8x5x00c6br6nl";
   };
 
-  nativeBuildInputs = [ makeWrapper ];
-
   makeFlags = [ "PREFIX=$(out)" ];
 
-  postInstall = ''
-    wrapProgram $out/bin/sx \
-      --prefix PATH : ${lib.makeBinPath [ coreutils util-linux xorgserver xauth ]}
-  '';
+  solutions = {
+    sx = {
+      scripts = [ "bin/sx" ];
+      interpreter = "${bash}/bin/sh";
+      inputs = [
+        coreutils
+        xauth
+        xorgserver
+      ];
+      execer = [
+        "cannot:${xorgserver}/bin/Xorg"
+      ];
+    };
+  };
 
   meta = with lib; {
     description = "Simple alternative to both xinit and startx for starting a Xorg server";
     homepage = "https://github.com/earnestly/sx";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ figsoda ];
+    maintainers = with maintainers; [ figsoda thiagokokada ];
   };
 }
diff --git a/pkgs/tools/X11/xdg-utils/default.nix b/pkgs/tools/X11/xdg-utils/default.nix
index 7d01ee59b3efb..6be7e940c1f27 100644
--- a/pkgs/tools/X11/xdg-utils/default.nix
+++ b/pkgs/tools/X11/xdg-utils/default.nix
@@ -31,7 +31,7 @@ stdenv.mkDerivation rec {
   };
 
   # just needed when built from git
-  buildInputs = [ libxslt docbook_xml_dtd_412 docbook_xsl xmlto w3m ];
+  nativeBuildInputs = [ libxslt docbook_xml_dtd_412 docbook_xsl xmlto w3m ];
 
   postInstall = lib.optionalString mimiSupport ''
     cp ${mimisrc}/xdg-open $out/bin/xdg-open
diff --git a/pkgs/tools/X11/xlogo/default.nix b/pkgs/tools/X11/xlogo/default.nix
new file mode 100644
index 0000000000000..c1eef3842f3f7
--- /dev/null
+++ b/pkgs/tools/X11/xlogo/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, xorg
+, autoreconfHook
+, pkg-config
+, xorg-autoconf
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xlogo";
+  version = "1.0.5";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.freedesktop.org";
+    group = "xorg";
+    owner = "app";
+    repo = "xlogo";
+    rev = "refs/tags/xlogo-${version}";
+    hash = "sha256-AyNFzRZtbCKkGacBCaGZZkLRTAGq5TrA2OXGqwoKq24=";
+  };
+
+  nativeBuildInputs = [ xorg-autoconf autoreconfHook pkg-config ];
+
+  configureFlags = [ "--with-appdefaultdir=$out/share/X11/app-defaults" ];
+
+  buildInputs = [ xorg.libX11 xorg.libXext xorg.libSM xorg.libXmu xorg.libXaw xorg.libXt ];
+
+  meta = with lib; {
+    description = "X Window System logo display demo";
+    homepage = "https://gitlab.freedesktop.org/xorg/app/xlogo";
+    maintainers = with maintainers; [ raboof ];
+    platforms = platforms.unix;
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/tools/X11/xmcp/default.nix b/pkgs/tools/X11/xmcp/default.nix
new file mode 100644
index 0000000000000..178861d637246
--- /dev/null
+++ b/pkgs/tools/X11/xmcp/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, libX11
+}:
+
+stdenv.mkDerivation rec {
+  pname = "xmcp";
+  version = "unstable-2020-10-10";
+
+  src = fetchFromGitHub {
+    owner = "blblapco";
+    repo = "xmcp";
+    rev = "ee56225f1665f9edc04fe5c165809f2fe160a420";
+    sha256 = "sha256-B3YkYrVEg6UJ2ApaVook4N2XvrCboxDMUG5CN9I79Sg=";
+  };
+
+  buildInputs = [ libX11 ];
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm0755 xmcp $out/bin/xmcp
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Tiny color picker for X11";
+    homepage = "https://github.com/blblapco/xmcp";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ azahi ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/admin/aliyun-cli/default.nix b/pkgs/tools/admin/aliyun-cli/default.nix
index e2359bd5e117a..b18b8a82088ee 100644
--- a/pkgs/tools/admin/aliyun-cli/default.nix
+++ b/pkgs/tools/admin/aliyun-cli/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "aliyun-cli";
-  version = "3.0.121";
+  version = "3.0.123";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "aliyun";
     repo = pname;
     fetchSubmodules = true;
-    sha256 = "sha256-1D1JZZ/KMC4oZRaYvWpUazTk7llvX5WHPBxWEGCiKrI=";
+    sha256 = "sha256-68u31s7SsRRT9OQpTqlhAs5Dx+ggbTTSeKYBByiqn6g=";
   };
 
-  vendorSha256 = "sha256-f3GXkAvTe8rPFWCR5TM4mDK/VOQWt2lrZrfJ/Wvw8Uc=";
+  vendorSha256 = "sha256-X5r89aI7UdVlzEJi8zaOzwTETwb+XH8dKO6rVe//FNs=";
 
   subPackages = [ "main" ];
 
diff --git a/pkgs/tools/admin/aws-sso-cli/default.nix b/pkgs/tools/admin/aws-sso-cli/default.nix
new file mode 100644
index 0000000000000..96ee8959dba8a
--- /dev/null
+++ b/pkgs/tools/admin/aws-sso-cli/default.nix
@@ -0,0 +1,25 @@
+{ buildGoModule, fetchFromGitHub, lib }:
+  buildGoModule rec {
+    pname = "aws-sso-cli";
+    version = "1.9.2";
+
+    src = fetchFromGitHub {
+      owner = "synfinatic";
+      repo = pname;
+      rev = "v${version}";
+      sha256 = "9/dZfRmFAyE5NEMmuiVsRvwgqQrTNhXkTR9N0d3zgfk=";
+    };
+    vendorSha256 = "BlSCLvlrKiubMtfFSZ5ppMmL2ZhJcBXxJfeRgMADYB4=";
+
+    postInstall = ''
+      mv $out/bin/cmd $out/bin/aws-sso
+    '';
+
+    meta = with lib; {
+      homepage = "https://github.com/synfinatic/aws-sso-cli";
+      description = "AWS SSO CLI is a secure replacement for using the aws configure sso wizard";
+      license = licenses.gpl3Plus;
+      maintainers = with maintainers; [ devusb ];
+      mainProgram = "aws-sso";
+    };
+}
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index ca74704309d3d..fa61df14173cd 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -8,11 +8,11 @@ let
   py = python3.override {
     packageOverrides = self: super: {
       awscrt = super.awscrt.overridePythonAttrs (oldAttrs: rec {
-        version = "0.13.5";
+        version = "0.13.11";
         src = self.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-dUNljMKsbl6eByhEYivWgRJczTBw3N1RVl8r3e898mg=";
+          sha256 = "sha256-Yx3I3RD57Nx6Cvm4moc5zmMbdsHeYiMghDfbQUor38E=";
         };
       });
       jmespath = super.jmespath.overridePythonAttrs (oldAttrs: rec {
@@ -29,13 +29,13 @@ let
 in
 with py.pkgs; buildPythonApplication rec {
   pname = "awscli2";
-  version = "2.7.3"; # N.B: if you change this, check if overrides are still up-to-date
+  version = "2.7.8"; # N.B: if you change this, check if overrides are still up-to-date
 
   src = fetchFromGitHub {
     owner = "aws";
     repo = "aws-cli";
     rev = version;
-    sha256 = "sha256-CM20zBuby1X+XOiphDDtWHUB08Mw7IYf0aZUWIvEAqI=";
+    sha256 = "sha256-6JlBgcHpR2ZfrljS+flxaog/KZQLvPUacJGLMQNsZ5Y=";
   };
 
   propagatedBuildInputs = [
@@ -67,6 +67,7 @@ with py.pkgs; buildPythonApplication rec {
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "colorama>=0.2.5,<0.4.4" "colorama" \
+      --replace "cryptography>=3.3.2,<37.0.0" "cryptography" \
       --replace "docutils>=0.10,<0.16" "docutils" \
       --replace "ruamel.yaml>=0.15.0,<0.16.0" "ruamel.yaml" \
       --replace "wcwidth<0.2.0" "wcwidth" \
diff --git a/pkgs/tools/admin/awsrm/default.nix b/pkgs/tools/admin/awsrm/default.nix
new file mode 100644
index 0000000000000..e01f16267a2e7
--- /dev/null
+++ b/pkgs/tools/admin/awsrm/default.nix
@@ -0,0 +1,28 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "awsrm";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "jckuester";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-KAujqYDtZbCBRO5WK9b9mxqe84ZllbBoO2tLnDH/bdo=";
+  };
+
+  vendorSha256 = "sha256-CldEAeiFH7gdFNLbIe/oTzs8Pdnde7EqLr7vP7SMDGU=";
+
+  ldflags =
+    let t = "github.com/jckuester/awsrm/internal";
+    in [ "-s" "-w" "-X ${t}.version=${version}" "-X ${t}.commit=${src.rev}" "-X ${t}.date=unknown" ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "A remove command for AWS resources";
+    homepage = "https://github.com/jckuester/awsrm";
+    license = licenses.mit;
+    maintainers = [ maintainers.markus1189 ];
+  };
+}
diff --git a/pkgs/tools/admin/azure-cli/default.nix b/pkgs/tools/admin/azure-cli/default.nix
index b4d1d6dd7b76b..4237a5a412a25 100644
--- a/pkgs/tools/admin/azure-cli/default.nix
+++ b/pkgs/tools/admin/azure-cli/default.nix
@@ -1,7 +1,7 @@
 { stdenv, lib, python3, fetchFromGitHub, installShellFiles }:
 
 let
-  version = "2.34.1";
+  version = "2.37.0";
   srcName = "azure-cli-${version}-src";
 
   src = fetchFromGitHub {
@@ -9,7 +9,7 @@ let
     owner = "Azure";
     repo = "azure-cli";
     rev = "azure-cli-${version}";
-    sha256 = "sha256-BEEwxf3UTShKi3K/uBK1yMxyPCvybL/BbKsu8XAwu0M=";
+    sha256 = "sha256-Y1P+cTOK7NbV7k9rg38vE7EPuZQo88IQW3IYYou8ZOI=";
   };
 
   # put packages that needs to be overriden in the py package scope
@@ -27,12 +27,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     substituteInPlace setup.py \
       --replace "chardet~=3.0.4" "chardet" \
       --replace "javaproperties~=0.5.1" "javaproperties" \
-      --replace "pytz==2019.1" "pytz" \
-      --replace "scp~=0.13.2" "scp" \
-      --replace "PyNaCl~=1.4.0" "PyNaCl" \
-      --replace "jsondiff~=1.2.0" "jsondiff~=1.2" \
-      --replace "antlr4-python3-runtime~=4.7.2" "antlr4-python3-runtime~=4.7" \
-      --replace "mock~=4.0" "mock"
+      --replace "scp~=0.13.2" "scp"
 
     # remove namespace hacks
     # remove urllib3 because it was added as 'urllib3[secure]', which doesn't get handled well
@@ -50,6 +45,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-cli-core
     azure-cli-telemetry
     azure-cosmos
+    azure-data-tables
     azure-datalake-store
     azure-functions-devops-build
     azure-graphrbac
@@ -131,6 +127,7 @@ py.pkgs.toPythonApplication (py.pkgs.buildAzureCliPackage {
     azure-synapse-artifacts
     azure-synapse-managedprivateendpoints
     azure-synapse-spark
+    chardet
     colorama
     cryptography
     distro
diff --git a/pkgs/tools/admin/azure-cli/python-packages.nix b/pkgs/tools/admin/azure-cli/python-packages.nix
index b65b4a8fbbbb4..bc0328cef1ffa 100644
--- a/pkgs/tools/admin/azure-cli/python-packages.nix
+++ b/pkgs/tools/admin/azure-cli/python-packages.nix
@@ -1,28 +1,17 @@
 { stdenv, python3, lib, src, version }:
 
 let
-  buildAzureCliPackage = with py.pkgs; attrs: buildPythonPackage attrs;
+  buildAzureCliPackage = with py.pkgs; buildPythonPackage;
 
   overrideAzureMgmtPackage = package: version: extension: sha256:
     # check to make sure overriding is even necessary
-    if version == package.version then
-      package
-    else package.overrideAttrs(oldAttrs: rec {
+    package.overrideAttrs(oldAttrs: rec {
       inherit version;
 
       src = py.pkgs.fetchPypi {
         inherit (oldAttrs) pname;
         inherit version sha256 extension;
       };
-
-      preBuild = ''
-        rm -f azure_bdist_wheel.py
-        substituteInPlace setup.cfg \
-          --replace "azure-namespace-package = azure-mgmt-nspkg" ""
-      '';
-
-      # force PEP420
-      pythonNamespaces = [ "azure.mgmt" ];
     });
 
   py = python3.override {
@@ -60,6 +49,7 @@ let
           pyjwt
           pyopenssl
           pyperclip
+          pysocks
           pyyaml
           requests
           six
@@ -72,7 +62,6 @@ let
             --replace "cryptography>=3.2,<3.4" "cryptography" \
             --replace "msal-extensions>=0.3.1,<0.4" "msal-extensions"
         '';
-
         checkInputs = with self; [ pytest ];
         doCheck = stdenv.isLinux;
         # ignore tests that does network call, or assume powershell
@@ -118,14 +107,18 @@ let
         '';
       };
 
+      antlr4-python3-runtime = super.antlr4-python3-runtime.override(_: {
+        antlr4 = super.pkgs.antlr4_9;
+      });
+
       azure-batch = overrideAzureMgmtPackage super.azure-batch "12.0.0" "zip"
         "sha256-GpseF4mEp79JWvZ7zOUfDbHkqKlXr7KeM1VKFKlnTes=";
 
       azure-mgmt-apimanagement = overrideAzureMgmtPackage super.azure-mgmt-apimanagement "3.0.0" "zip"
         "9262f54ed387eb083d8dae66d32a8df35647319b902bd498cdc376f50a12d154";
 
-      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "16.0.0" "zip"
-        "1b3cecd6f16813879c6ac1a1bb01f9a6f2752cd1f9157eb04d5e41e4a89f3c34";
+      azure-mgmt-batch = overrideAzureMgmtPackage super.azure-mgmt-batch "16.1.0" "zip"
+        "sha256-9J0VQ3uAsi4kuEe9UG4xpcEV1Sc+nkjECgVfzG7j5jk=";
 
       azure-mgmt-batchai = overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip"
         "sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
@@ -136,8 +129,11 @@ let
       azure-mgmt-botservice = overrideAzureMgmtPackage super.azure-mgmt-botservice "0.3.0" "zip"
         "f8318878a66a0685a01bf27b7d1409c44eb90eb72b0a616c1a2455c72330f2f1";
 
-      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.0.0" "zip"
-        "75103fb4541aeae30bb687dee1fedd9ca65530e6b97b2d9ea87f74816905202a";
+      azure-mgmt-extendedlocation = overrideAzureMgmtPackage super.azure-mgmt-extendedlocation "1.0.0b2" "zip"
+        "sha256-mjfH35T81JQ97jVgElWmZ8P5MwXVxZQv/QJKNLS3T8A=";
+
+      azure-mgmt-policyinsights = overrideAzureMgmtPackage super.azure-mgmt-policyinsights "1.1.0b2" "zip"
+        "sha256-e+I5MdbbX7WhxHCj1Ery3z2WUrJtpWGD1bhLbqReb58=";
 
       azure-mgmt-rdbms = overrideAzureMgmtPackage super.azure-mgmt-rdbms "10.0.0" "zip"
         "bdc479b3bbcac423943d63e746a81dd5fc80b46a4dbb4393e760016e3fa4f74a";
@@ -145,29 +141,29 @@ let
       azure-mgmt-recoveryservices = overrideAzureMgmtPackage super.azure-mgmt-recoveryservices "2.0.0" "zip"
         "sha256-p9MTfVxGD1CsLUQGHWCnC08nedTKhEt3QZtXJeZeCb4=";
 
-      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "4.0.0" "zip"
-        "a848ac1d99c935e61dfb91ca3e1577904a3eff5820fce179eb6937df8e1019ec";
+      azure-mgmt-recoveryservicesbackup = overrideAzureMgmtPackage super.azure-mgmt-recoveryservicesbackup "5.0.0" "zip"
+        "sha256-BciA3sFyja5xo9yS3WVglC73y8gTfw8UejdEzbD4HYE=";
 
-      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "20.0.0" "zip"
-        "622dca4484be64f9f5ce335d327dffabf3e71e14e8a3f4a1051dc85a5c3ebbca";
+      azure-mgmt-resource = overrideAzureMgmtPackage super.azure-mgmt-resource "21.1.0b1" "zip"
+        "sha256-oiC5k+Mg9KJn940jMxG4AB9Pom+t/DWRA5KRv8HO0HI=";
 
-      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "2.0.0" "zip"
-        "b58bbe82a7429ba589292024896b58d96fe9fa732c578569cac349928dc2ca5f";
+      azure-mgmt-appconfiguration = overrideAzureMgmtPackage super.azure-mgmt-appconfiguration "2.1.0b2" "zip"
+        "sha256-/w+kI/tSNo0vW5ZFcMjRGPPrmNwZbFLKbKVkblZQ6FY=";
 
-      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.0.0" "zip"
-        "dc6116e8394d45312c7ad5a9098ce0dd2370bd92d43afd33d8b3bfab724fa498";
+      azure-mgmt-cognitiveservices = overrideAzureMgmtPackage super.azure-mgmt-cognitiveservices "13.1.0" "zip"
+        "sha256-FXS834v5uDGiEGcQMIv9iaHxhfcW9uY3VmX7l91Tfj4=";
 
-      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "25.0.0" "zip"
-        "sha256-Y0WNBtQ9v0yhTVFfTvfcudWHOjzGagGB+/b++3Ie5Kk=";
+      azure-mgmt-compute = overrideAzureMgmtPackage super.azure-mgmt-compute "27.0.0" "zip"
+        "sha256-n+MQJ0ZeQ/hyS2G8CrNCtoxbvcfrIXmn4LXB/V6JXT0=";
 
       azure-mgmt-consumption = overrideAzureMgmtPackage super.azure-mgmt-consumption "2.0.0" "zip"
         "12ai4qps73ivawh0yzvgb148ksx02r30pqlvfihx497j62gsi1cs";
 
       azure-mgmt-containerinstance = overrideAzureMgmtPackage super.azure-mgmt-containerinstance "9.1.0" "zip"
-        "sha256-N+zUTEnOyn18lDHlkUj+vRXX/sJhZR7XLd1YdV50ULA=";
+        "sha256-IhZLDFkTize8SLptR2v2NRUrxCjctCC1IaFLjCXHl60=";
 
-      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "17.0.0" "zip"
-        "sha256-oUbWdZryabCCg/gTujchT7p1nS7IDoU5W9MQ4ekJYH8=";
+      azure-mgmt-containerservice = overrideAzureMgmtPackage super.azure-mgmt-containerservice "19.1.0" "zip"
+        "sha256-t06Cesxvjk31aDxkX2Yj0VzFubWbiAc26LzNTIgVEqs=";
 
       azure-mgmt-cosmosdb = overrideAzureMgmtPackage super.azure-mgmt-cosmosdb "7.0.0b2" "zip"
         "sha256-hVvYW9gkfTVMwis3IdD0JXYDxdKcyyzIFx3hNk7VMLI=";
@@ -190,8 +186,8 @@ let
       azure-mgmt-iothubprovisioningservices = overrideAzureMgmtPackage super.azure-mgmt-iothubprovisioningservices "1.1.0" "zip"
         "sha256-04OoJuff93L62G6IozpmHpEaUbHHHD6nKlkMHVoJvJ4=";
 
-      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "9.0.0" "zip"
-        "64df73df449a6f3717f3d0963e5869224ed3e6216c79de571493bea7c1b52cb6";
+      azure-mgmt-iotcentral = overrideAzureMgmtPackage super.azure-mgmt-iotcentral "10.0.0b1" "zip"
+        "sha256-1CiZuTXYhIb74eGQZUJHHzovYNnnVd3Ydu1UCy2Bu00=";
 
       azure-mgmt-kusto = overrideAzureMgmtPackage super.azure-mgmt-kusto "0.3.0" "zip"
         "1pmcdgimd66h964a3d5m2j2fbydshcwhrk87wblhwhfl3xwbgf4y";
@@ -199,17 +195,17 @@ let
       azure-mgmt-devtestlabs = overrideAzureMgmtPackage super.azure-mgmt-devtestlabs "4.0.0" "zip"
         "1397ksrd61jv7400mgn8sqngp6ahir55fyq9n5k69wk88169qm2r";
 
-      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "6.0.1" "zip"
-        "6ce683587be1638d8d77620b7af118060b8b7dfc4fd23d46a623a66edcb388e1";
+      azure-mgmt-netapp = overrideAzureMgmtPackage super.azure-mgmt-netapp "7.0.0" "zip"
+        "sha256-ziaddG+6MoPG18OYZyQ9HRx8nfGsz2UbWPC1pWacKto=";
 
       azure-mgmt-dns = overrideAzureMgmtPackage super.azure-mgmt-dns "8.0.0" "zip"
         "407c2dacb33513ffbe9ca4be5addb5e9d4bae0cb7efa613c3f7d531ef7bf8de8";
 
-      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b2" "zip"
-        "sha256-j8CyWZGF7Z/5szJ+CD96E0EbNsceJ1SScrlPqWVLjnk=";
+      azure-mgmt-loganalytics = overrideAzureMgmtPackage super.azure-mgmt-loganalytics "13.0.0b4" "zip"
+        "sha256-Jm1t7v5vyFjNNM/evVaEI9sXJKNwJk6XAXuJSRSnKHk=";
 
-      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "19.3.0" "zip"
-        "0b6a1ccdffd76e057ab16a6c319740a0ca68d59fedf7e9c02f2437396e72aa11";
+      azure-mgmt-network = overrideAzureMgmtPackage super.azure-mgmt-network "20.0.0" "zip"
+        "sha256-mnjPyCAJ+rlNgZ4umSYjfVVVg83EobZYY/zupyDjdoY=";
 
       azure-mgmt-maps = overrideAzureMgmtPackage super.azure-mgmt-maps "2.0.0" "zip"
         "384e17f76a68b700a4f988478945c3a9721711c0400725afdfcb63cf84e85f0e";
@@ -223,21 +219,15 @@ let
       azure-mgmt-marketplaceordering = overrideAzureMgmtPackage super.azure-mgmt-marketplaceordering "1.1.0" "zip"
         "68b381f52a4df4435dacad5a97e1c59ac4c981f667dcca8f9d04453417d60ad8";
 
-      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "7.0.0" "zip"
-        "sha256-tF6CpZTtkc1ap6XNXQHwOLesPPEiM+e6K+qqNHeQDo4=";
+      azure-mgmt-media = overrideAzureMgmtPackage super.azure-mgmt-media "9.0.0" "zip"
+        "sha256-TI7l8sSQ2QUgPqiE3Cu/F67Wna+KHbQS3fuIjOb95ZM=";
 
       azure-mgmt-msi = super.azure-mgmt-msi.overridePythonAttrs (old: rec {
-        version = "0.2.0";
+        version = "6.0.1";
         src = old.src.override {
           inherit version;
-          sha256 = "0rvik03njz940x2hvqg6iiq8k0d88gyygsr86w8s0sa12sdbq8l6";
+          sha256 = "sha256-PPkQmUoBkJ8Su7h9G2/t8dVy/PT3uCYZjlf70fnY2vU=";
         };
-        propagatedBuildInputs = with self; [
-          msrest
-          msrestazure
-          azure-common
-          azure-mgmt-nspkg
-        ];
       });
 
       azure-mgmt-privatedns = overrideAzureMgmtPackage super.azure-mgmt-privatedns "1.0.0" "zip"
@@ -246,14 +236,14 @@ let
       azure-mgmt-web = overrideAzureMgmtPackage super.azure-mgmt-web "6.1.0" "zip"
         "c26635089276515b0488fcf014aab50a0446f54800c6e0e5583cc493ac8d738f";
 
-      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.0.0" "zip"
-        "94cd41f1ebd82e40620fd3e6d88f666b5c19ac7cf8b4e8edadb9721bd7c80980";
+      azure-mgmt-redhatopenshift = overrideAzureMgmtPackage super.azure-mgmt-redhatopenshift "1.1.0" "zip"
+        "sha256-Tq8h3fvajxIG2QjtCyHCQDE2deBDioxLLaQQek/O24U=";
 
       azure-mgmt-redis = overrideAzureMgmtPackage super.azure-mgmt-redis "13.1.0" "zip"
         "ece913e5fc7f157e945809e557443f79ff7691cabca4bbc5ecb266352f843179";
 
-      azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "0.6.0" "zip"
-        "16ycni3cjl9c0mv419gy5rgbrlg8zp0vnr6aj8z8p2ypdw6sgac3";
+      azure-mgmt-reservations = overrideAzureMgmtPackage super.azure-mgmt-reservations "2.0.0" "zip"
+        "sha256-5vXdXiRubnzPk4uTFeNHR6rwiHSGbeUREX9eW1pqC3E=";
 
       azure-mgmt-search = overrideAzureMgmtPackage super.azure-mgmt-search "8.0.0" "zip"
         "a96d50c88507233a293e757202deead980c67808f432b8e897c4df1ca088da7e";
@@ -264,11 +254,11 @@ let
       azure-mgmt-signalr = overrideAzureMgmtPackage super.azure-mgmt-signalr "1.0.0b2" "zip"
         "sha256-FTxY8qoihHG4OZuKT3sRRlKfORbIoqDqug9Ko+6S9dw=";
 
-      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "3.0.1" "zip"
-        "129042cc011225e27aee6ef2697d585fa5722e5d1aeb0038af6ad2451a285457";
+      azure-mgmt-sql = overrideAzureMgmtPackage super.azure-mgmt-sql "4.0.0b1" "zip"
+        "sha256-dYk3stvQHN/VEZS8OBCp0IbG8g6iIHpMrLxCWWg7Id8=";
 
-      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b1" "zip"
-        "sha256-SrFTvU+67U3CpMLPZMawXuRdSIbTsfav2jFZIsZWPmw=";
+      azure-mgmt-sqlvirtualmachine = overrideAzureMgmtPackage super.azure-mgmt-sqlvirtualmachine "1.0.0b2" "zip"
+        "sha256-zqsLufjUmOl1Zxu8QhYzsEKYgoS+m8GTpRydl7jvXMk=";
 
       azure-mgmt-synapse = overrideAzureMgmtPackage super.azure-mgmt-synapse "2.1.0b2" "zip"
         "sha256-/BAxKDttp/tS/X45y8X4KBm5qxtNuVXhrc5qB3A+wRE=";
@@ -279,14 +269,14 @@ let
       azure-mgmt-relay = overrideAzureMgmtPackage super.azure-mgmt-relay "0.1.0" "zip"
         "1jss6qhvif8l5s0lblqw3qzijjf0h88agciiydaa7f4q577qgyfr";
 
-      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "9.1.0" "zip"
-        "0ba9f10e1e8d03247a316e777d6f27fabf268d596dda2af56ac079fcdf5e7afe";
+      azure-mgmt-eventhub = overrideAzureMgmtPackage super.azure-mgmt-eventhub "10.0.0" "zip"
+        "0856574ef4b73bbbc62834051061e2081400aba7e3715e10ef5181d639e86a0b";
 
       azure-mgmt-keyvault = overrideAzureMgmtPackage super.azure-mgmt-keyvault "9.3.0" "zip"
         "54156422e618b686d52232a7989594b240bd18afd0fa381e12e4772ed4ab5ea8";
 
-      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "11.0.0" "zip"
-        "28e7070001e7208cdb6c2ad253ec78851abdd73be482230d2c0874eed5bc0907";
+      azure-mgmt-cdn = overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"
+        "sha256-t8PuIYkjS0r1Gs4pJJJ8X9cz8950imQtbVBABnyMnd0=";
 
       azure-mgmt-containerregistry = overrideAzureMgmtPackage super.azure-mgmt-containerregistry "8.2.0" "zip"
         "f2bcdbcf0b9fdc2df0df9eccb77cb489091d3c670ed53cba77e5ffd734e9539b";
@@ -303,8 +293,8 @@ let
       azure-mgmt-authorization = overrideAzureMgmtPackage super.azure-mgmt-authorization "0.61.0" "zip"
         "0xfvx2dvfj3fbz4ngn860ipi4v6gxqajyjc8x92r8knhmniyxk7m";
 
-      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "19.1.0" "zip"
-        "sha256-Seoi8A4JZaNVCvNKQcGh06SBaQ9lAMeOhUCIAvVtdBY=";
+      azure-mgmt-storage = overrideAzureMgmtPackage super.azure-mgmt-storage "20.0.0" "zip"
+        "sha256-buR2tWIv9vWVTt7m6w2N1CezIXAihVrfHshjPKBM3uI=";
 
       azure-mgmt-servicebus = overrideAzureMgmtPackage super.azure-mgmt-servicebus "7.1.0" "zip"
         "d8ae7905fb7d3e24822daa20aa7bc5014f41aa18b48ea2d0161e997fc11a3d36";
@@ -312,14 +302,14 @@ let
       azure-mgmt-servicefabric = overrideAzureMgmtPackage super.azure-mgmt-servicefabric "1.0.0" "zip"
         "de35e117912832c1a9e93109a8d24cab94f55703a9087b2eb1c5b0655b3b1913";
 
-      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.0.0b1" "zip"
-        "sha256-T3DTvNmLpTm/74cOPEl+vcXv7TIAwmJ6YXGLqpqyGmE=";
+      azure-mgmt-servicelinker = overrideAzureMgmtPackage super.azure-mgmt-servicelinker "1.0.0" "zip"
+        "sha256-lAjgwEa2TJDEUU8pwfwkU8EyA1bhLkcAv++I6WHb7Xs=";
 
       azure-mgmt-hdinsight = overrideAzureMgmtPackage super.azure-mgmt-hdinsight "9.0.0" "zip"
         "41ebdc69c0d1f81d25dd30438c14fff4331f66639f55805b918b9649eaffe78a";
 
-      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.7.0" "tar.gz"
-        "cd4f184be8c9ca8aca969f93ed50dc7fe556d28ca11520440fc182cf876abdf9";
+      azure-multiapi-storage = overrideAzureMgmtPackage super.azure-multiapi-storage "0.9.0" "tar.gz"
+        "sha256-7uq8uRZ3MXI1Gy+DmMkRVNV7uZPw6j8r9KfhS8d+tCY=";
 
       azure-appconfiguration = super.azure-appconfiguration.overrideAttrs(oldAttrs: rec {
         version = "1.1.1";
@@ -362,11 +352,11 @@ let
       });
 
       azure-synapse-artifacts = super.azure-synapse-artifacts.overrideAttrs(oldAttrs: rec {
-        version = "0.10.0";
+        version = "0.12.0";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
-          sha256 = "sha256-P3gsm1kLiuQ2eMbgA9+MqMymdYMgOdJwsLdDf/AVV/0=";
+          sha256 = "sha256-IfQWsITuThzh+TRgv99JTtcDFY3gMq5PjALkN4mJEZo=";
           extension = "zip";
         };
       });
@@ -428,12 +418,12 @@ let
       });
 
       azure-keyvault-keys = super.azure-keyvault-keys.overridePythonAttrs(oldAttrs: rec {
-        version = "4.5.0b6";
+        version = "4.5.1";
         src = super.fetchPypi {
           inherit (oldAttrs) pname;
           inherit version;
           extension = "zip";
-          sha256 = "sha256-WFSRJaia0+WnvGxoMYZIvf81ue51VPYXzTp8huUh1fc=";
+          sha256 = "sha256-2ojnH+ySoU+1jOyIaKv366BAGI3Nzjac4QUK3RllhvY=";
         };
       });
 
@@ -486,6 +476,16 @@ let
         doCheck = false;
       });
 
+      msal = super.msal.overridePythonAttrs(oldAttrs: rec {
+        version = "1.18.0b1";
+
+        src = super.fetchPypi {
+          inherit (oldAttrs) pname;
+          inherit version;
+          sha256 = "sha256-kiYDjzX756uulLFr4gCuLnXgmAi+s2WDCGmvkQFC8Ow=";
+        };
+      });
+
       semver = super.semver.overridePythonAttrs(oldAttrs: rec {
         version = "2.13.0";
 
@@ -496,6 +496,15 @@ let
         };
       });
 
+      jsondiff = super.jsondiff.overridePythonAttrs(oldAttrs: rec {
+        version = "2.0.0";
+
+        src = oldAttrs.src.override {
+          inherit version;
+          sha256 = "sha256-J5WETvB17IorjThcTVn16kiwjnGA/OPLJ4e+DbALH7Q=";
+        };
+      });
+
       knack = super.knack.overridePythonAttrs(oldAttrs: rec {
         version = "0.9.0";
 
@@ -528,11 +537,11 @@ let
       });
 
       websocket-client = super.websocket-client.overridePythonAttrs(oldAttrs: rec {
-        version = "0.56.0";
+        version = "1.3.1";
 
         src = oldAttrs.src.override {
           inherit version;
-          sha256 = "0fpxjyr74klnyis3yf6m54askl0h5dchxcwbfjsq92xng0455m8z";
+          sha256 = "sha256-YninUGU5VBgoP4h958O+r7OqaNraXKy+SyFOjSbaSZs=";
         };
       });
 
diff --git a/pkgs/tools/admin/bluemix-cli/default.nix b/pkgs/tools/admin/bluemix-cli/default.nix
index b0a5af35def5f..ebfcd17064ed2 100644
--- a/pkgs/tools/admin/bluemix-cli/default.nix
+++ b/pkgs/tools/admin/bluemix-cli/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     description  = "Administration CLI for IBM BlueMix";
     homepage     = "https://console.bluemix.net/docs/cli/index.html";
     downloadPage = "https://console.bluemix.net/docs/cli/reference/bluemix_cli/download_cli.html#download_install";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license      = licenses.unfree;
     maintainers  = [ maintainers.tazjin maintainers.jensbin ];
     platforms    = [ "x86_64-linux" "i686-linux" ];
diff --git a/pkgs/tools/admin/boulder/default.nix b/pkgs/tools/admin/boulder/default.nix
index 706ac84afb330..e953248b26fa5 100644
--- a/pkgs/tools/admin/boulder/default.nix
+++ b/pkgs/tools/admin/boulder/default.nix
@@ -1,30 +1,53 @@
-{ buildGoPackage
-, libtool
-, fetchFromGitHub
+{ stdenv
 , lib
+, buildGoModule
+, fetchFromGitHub
 }:
 
-buildGoPackage rec{
-
+buildGoModule rec {
   pname = "boulder";
-  version = "release-2019-10-13";
-
-  goPackagePath = "github.com/letsencrypt/boulder";
-
-  buildInputs = [ libtool ];
+  version = "2022-06-21";
+  rev = "09f87bb31a57f9a04932b7175fab1e3cabffd86f";
 
   src = fetchFromGitHub {
     owner = "letsencrypt";
     repo = "boulder";
-    rev = version;
-    sha256 = "0kis23dnjja6jp192rjpv2m9m2zmzfwhs93440nxg354k6fp8jdg";
+    rev = "release-${version}";
+    sha256 = "sha256-Q5fMM3UXMFqmpJks1xnINeKBA7dDam4bfczO3D43Yoo=";
   };
 
-  meta = {
+  vendorSha256 = null;
+
+  subPackages = [ "cmd/boulder" ];
+
+  ldflags = with lib;
+    mapAttrsToList (n: v: ''"-X github.com/letsencrypt/boulder/core.Build${n}=${v}"'') {
+      ID = substring 0 8 rev;
+      Host = "nixbld@localhost";
+      Time = "Thu  1 Jan 00:00:00 UTC 1970";
+    };
+
+  postInstall = ''
+    for i in $($out/bin/boulder --list); do
+      ln -s $out/bin/boulder $out/bin/$i
+    done
+  '';
+
+  # There are no tests for cmd/boulder.
+  doCheck = false;
+
+  meta = with lib; {
     homepage = "https://github.com/letsencrypt/boulder";
-    description = "An ACME-based CA, written in Go";
-    license = [ lib.licenses.mpl20 ];
-    maintainers = [ ];
+    description = "An 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
+      actually controls an identifier, and allows domain holders to issue and
+      revoke certificates for their domains. Boulder is the software that runs
+      Let's Encrypt.
+    '';
+    license = licenses.mpl20;
+    maintainers = with maintainers; [ azahi ];
+    broken = stdenv.isDarwin;
   };
-
 }
diff --git a/pkgs/tools/admin/chamber/default.nix b/pkgs/tools/admin/chamber/default.nix
index 25b3048199518..fff2343cf21de 100644
--- a/pkgs/tools/admin/chamber/default.nix
+++ b/pkgs/tools/admin/chamber/default.nix
@@ -2,18 +2,18 @@
 
 buildGoModule rec {
   pname = "chamber";
-  version = "2.10.10";
+  version = "2.10.12";
 
   src = fetchFromGitHub {
     owner = "segmentio";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-W/yuCQ1kE300//if/H73ZEJh/r2vttJ0GotZkBZNM+4=";
+    sha256 = "sha256-KbKOaUwJEy/mT59yW0VhZ3MIWkXarCRY8cyNlaI51mQ=";
   };
 
   CGO_ENABLED = 0;
 
-  vendorSha256 = "sha256-XpLLolxWu9aMp1cyG4dUQk4YtknbIRMmBUdSeyY4PNk=";
+  vendorSha256 = "sha256-ENsKm3D3URCrRUiqqebkgFS//2h9SlLbAQHdjisdGlE=";
 
   ldflags = [ "-s" "-w" "-X main.Version=v${version}" ];
 
diff --git a/pkgs/tools/admin/chkservice/default.nix b/pkgs/tools/admin/chkservice/default.nix
new file mode 100644
index 0000000000000..949a65290d226
--- /dev/null
+++ b/pkgs/tools/admin/chkservice/default.nix
@@ -0,0 +1,37 @@
+{ stdenv, fetchFromGitHub, cmake, ninja, pkg-config, systemd, ncurses, lib }:
+
+stdenv.mkDerivation rec {
+  pname = "chkservice";
+  version = "0.3";
+
+  src = fetchFromGitHub {
+    owner = "linuxenko";
+    repo = "chkservice";
+    rev = version;
+    hash = "sha256:0dfvm62h6dwg18f17fn58nr09mfh6kylm8wy88j00fiy13l4wnb6";
+  };
+
+  # Tools needed during build time
+  nativeBuildInputs = [
+    cmake
+    # Makes the build faster, adds less than half a megabyte to the build
+    # dependencies
+    ninja
+    pkg-config
+  ];
+
+  buildInputs = [
+    systemd
+    ncurses
+  ];
+
+  hardeningDisable = [ "format" ];
+
+  meta = {
+    description = "chkservice is a tool for managing systemd units in terminal.";
+    platforms = lib.platforms.all;
+    maintainers = with lib.maintainers; [ infinisil ];
+    license = lib.licenses.gpl3Plus;
+    homepage = "https://github.com/linuxenko/chkservice";
+  };
+}
diff --git a/pkgs/tools/admin/docker-credential-gcr/default.nix b/pkgs/tools/admin/docker-credential-gcr/default.nix
index a3cd4b9b5149c..02d75ac629c87 100644
--- a/pkgs/tools/admin/docker-credential-gcr/default.nix
+++ b/pkgs/tools/admin/docker-credential-gcr/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "docker-credential-gcr";
-  version = "2.1.4";
+  version = "2.1.5";
 
   src = fetchFromGitHub {
     owner = "GoogleCloudPlatform";
     repo = "docker-credential-gcr";
     rev = "v${version}";
-    sha256 = "sha256-1AUs8Gt2Qw8BJk2zwRcazVl+POkPSy9e1jW9Mk/0rx8=";
+    sha256 = "sha256-NUFSnegLVGNUc6f/WSyIk1U6UQorxRykqojhgE/maw8=";
   };
 
   patches = [
diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix
index cc2cffa82b2a1..8448b24e59913 100644
--- a/pkgs/tools/admin/eksctl/default.nix
+++ b/pkgs/tools/admin/eksctl/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "eksctl";
-  version = "0.99.0";
+  version = "0.104.0";
 
   src = fetchFromGitHub {
     owner = "weaveworks";
     repo = pname;
     rev = version;
-    sha256 = "sha256-J2d3Uyc/gYciQaZJnOw0piO90ixtqgdnC0gprIoWmvs=";
+    sha256 = "sha256-s/7RoFVf7mejPsMz6lMBHDGG8+N1KBMzUesXu9MPrzo=";
   };
 
-  vendorSha256 = "sha256-sRtFfJ7umVK8ruCpZ7TcTVcY9gr3Fldcf3KEdmbgkX4=";
+  vendorSha256 = "sha256-mwQahKRHR9cy2Yb4IGCIRtA0j38QJoPKNtpS/T4ndC4=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/admin/exoscale-cli/default.nix b/pkgs/tools/admin/exoscale-cli/default.nix
index 95af146a742f0..04d3d5a075a27 100644
--- a/pkgs/tools/admin/exoscale-cli/default.nix
+++ b/pkgs/tools/admin/exoscale-cli/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "exoscale-cli";
-  version = "1.56.0";
+  version = "1.57.0";
 
   src = fetchFromGitHub {
     owner = "exoscale";
     repo = "cli";
     rev = "v${version}";
-    sha256 = "sha256-YhVMlGSpigkzwppRnm5or0OErC01Mp93i1/uZcHskcQ=";
+    sha256 = "sha256-q+KbRtgZdyFaDIeRJ9H0bIXrgnUcuKNaMnbk701rzTs=";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/admin/google-cloud-sdk/default.nix b/pkgs/tools/admin/google-cloud-sdk/default.nix
index f0b0c042cbe4f..c1627ae18b867 100644
--- a/pkgs/tools/admin/google-cloud-sdk/default.nix
+++ b/pkgs/tools/admin/google-cloud-sdk/default.nix
@@ -108,6 +108,10 @@ in stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Tools for the google cloud platform";
     longDescription = "The Google Cloud SDK. This package has the programs: gcloud, gsutil, and bq";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryNativeCode  # anthoscli and possibly more
+    ];
     # This package contains vendored dependencies. All have free licenses.
     license = licenses.free;
     homepage = "https://cloud.google.com/sdk/";
diff --git a/pkgs/tools/admin/lxd/default.nix b/pkgs/tools/admin/lxd/default.nix
index 5198f79a7f188..d664cdd50860d 100644
--- a/pkgs/tools/admin/lxd/default.nix
+++ b/pkgs/tools/admin/lxd/default.nix
@@ -1,4 +1,4 @@
-{ lib, hwdata, pkg-config, lxc, buildGo118Package, fetchurl, fetchpatch
+{ lib, hwdata, pkg-config, lxc, buildGo118Package, fetchurl
 , makeWrapper, acl, rsync, gnutar, xz, btrfs-progs, gzip, dnsmasq, attr
 , squashfsTools, iproute2, iptables, libcap
 , dqlite, raft-canonical, sqlite-replication, udev
@@ -11,7 +11,7 @@
 
 buildGo118Package rec {
   pname = "lxd";
-  version = "5.2";
+  version = "5.3";
 
   goPackagePath = "github.com/lxc/lxd";
 
@@ -20,7 +20,7 @@ buildGo118Package rec {
       "https://linuxcontainers.org/downloads/lxd/lxd-${version}.tar.gz"
       "https://github.com/lxc/lxd/releases/download/lxd-${version}/lxd-${version}.tar.gz"
     ];
-    sha256 = "sha256-4i0rNKGEjTOyCAsrHII1WvttNv3+SeZ/RLN0ntvALkw=";
+    sha256 = "sha256-DRdKCfp0nL3lg5O/Wm7vX2grO/DBuyhHRi85XI5laZU=";
   };
 
   postPatch = ''
@@ -60,6 +60,7 @@ buildGo118Package rec {
   meta = with lib; {
     description = "Daemon based on liblxc offering a REST API to manage containers";
     homepage = "https://linuxcontainers.org/lxd/";
+    changelog = "https://github.com/lxc/lxd/releases/tag/lxd-${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fpletz marsam ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/admin/nomachine-client/default.nix b/pkgs/tools/admin/nomachine-client/default.nix
index 204fc2be58992..d0ed40c7d059d 100644
--- a/pkgs/tools/admin/nomachine-client/default.nix
+++ b/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,8 +1,8 @@
 { lib, stdenv, file, fetchurl, makeWrapper,
   autoPatchelfHook, jsoncpp, libpulseaudio }:
 let
-  versionMajor = "7.9";
-  versionMinor = "2";
+  versionMajor = "7.10";
+  versionMinor = "1";
   versionBuild_x86_64 = "1";
   versionBuild_i686 = "1";
 in
@@ -14,12 +14,12 @@ in
       if stdenv.hostPlatform.system == "x86_64-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
-          sha256 = "sha256-Gsi0Hj6cfpxzr0zbWfsq0ZJvCPATQn9YvHbx0Cziia4=";
+          sha256 = "sha256-alClFaNbQ76r8LukbygesWWXA5rx6VEzxK+bY5tOfO0=";
         }
       else if stdenv.hostPlatform.system == "i686-linux" then
         fetchurl {
           url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
-          sha256 = "sha256-zmXOLzFePAD+oH00bAkNsEFviQwkjjqC/gAv87E1qX4=";
+          sha256 = "sha256-UDvrjb/2rXvSvpiA+UwiVi4YyXhFLNiEtrszqjAPGXc=";
         }
       else
         throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
@@ -81,6 +81,7 @@ in
     meta = with lib; {
       description = "NoMachine remote desktop client (nxplayer)";
       homepage = "https://www.nomachine.com/";
+      sourceProvenance = with sourceTypes; [ binaryNativeCode ];
       license = {
         fullName = "NoMachine 7 End-User License Agreement";
         url = "https://www.nomachine.com/licensing-7";
diff --git a/pkgs/tools/admin/pebble/default.nix b/pkgs/tools/admin/pebble/default.nix
index f111cb887b424..8fc32a2e4e767 100644
--- a/pkgs/tools/admin/pebble/default.nix
+++ b/pkgs/tools/admin/pebble/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "pebble";
-  version = "2.3.1";
+  version = "2.4.0";
 
   src = fetchFromGitHub {
     owner = "letsencrypt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-S9+iRaTSRt4F6yMKK0OJO6Zto9p0dZ3q/mULaipudVo=";
+    sha256 = "0sh67bzq3hlagk73w2kp45viq15g2rcxm760jk9fqshamq784m6m";
   };
 
   vendorSha256 = null;
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 29f9cbe0f3fc4..69b1c584313b6 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -1,64 +1,64 @@
 # DO NOT EDIT! This file is generated automatically by update.sh
 { }:
 {
-  version = "3.31.0";
+  version = "3.34.1";
   pulumiPkgs = {
     x86_64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.31.0-linux-x64.tar.gz";
-        sha256 = "195jqrgax3sy9bz9i36d60x5y3j47bp43453yhs2zdcllh29jfn2";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.34.1-linux-x64.tar.gz";
+        sha256 = "04gavrv62m32nbw34mifm4vjwdrwwicnvhsln27m7jv0b67w5zpi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-linux-amd64.tar.gz";
-        sha256 = "10vn054iia68rn37ibrri150k795hr3vdvwgsxdkr2qyp8rna6mx";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.2-linux-amd64.tar.gz";
+        sha256 = "18hkna4vr1m6gh93952wzz3nlal8q39m0gzc9fmy8lgaw3h7n2y7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-linux-amd64.tar.gz";
         sha256 = "1xsrskiw91izjvj1xqfhaf4728vl28wcq4dsinh232g7gfm862r3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-linux-amd64.tar.gz";
-        sha256 = "16vg56vyxqid566nzdvcnx0fm70nif31wr71mrx1n6ibk767l00i";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.21.0-linux-amd64.tar.gz";
+        sha256 = "10cj7d0lf8jj3wmz7l67s8ibs3znw2b07vr6k3yj3xg42dd5a4fr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-linux-amd64.tar.gz";
-        sha256 = "1nfga7mqrb62vf96cfrwdwc41a82fm1xmjby01l3074y6nzb45mg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.3.2-linux-amd64.tar.gz";
+        sha256 = "05a9vf1g9nnvwmsm6y5rn0b0asjb253b7mph137g08m12ajm2fxv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-linux-amd64.tar.gz";
-        sha256 = "1x1fvnxhnhhv9fhqp4syhqcybjqpa2rq8d9nb8yvm9rxgcjllr0n";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.9.0-linux-amd64.tar.gz";
+        sha256 = "01sgghfnd6wgvx2h4i69asbjshscbw9g4yl15ar5w178dp17p44n";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.3.0-linux-amd64.tar.gz";
-        sha256 = "0srdq0blsm5p10kxds64ybh0pmy7n6v4sdd2s0555gc6w9l1ir40";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.8.0-linux-amd64.tar.gz";
+        sha256 = "0448vga6w9073lnsjj3d02cbxnb9rsfz0vhr6fzkznkxpg51lw3w";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.3.0-linux-amd64.tar.gz";
-        sha256 = "1mla2lc639w5shlih3nsf6hp696h7n592bwbhn9hl3xlpxvmwhdz";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.21.0-linux-amd64.tar.gz";
-        sha256 = "06sp11azls8agqcrww3pgk19232ngbd19v9czp55321xpmgs0d6h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.24.0-linux-amd64.tar.gz";
+        sha256 = "06x03vbdgg93lzmyf5cjzjmhb2nk724ml28h2bj230iip64gqj9x";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-linux-amd64.tar.gz";
         sha256 = "1z8f287mm2mqfa76021fp5a1bj9045iwxcy8xs1ygh48b1890j49";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-linux-amd64.tar.gz";
-        sha256 = "0hbrjydkw32xfks636pcfh00w0crn9ivhk0nw0a62812gvdafm9f";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.10.0-linux-amd64.tar.gz";
+        sha256 = "1v4cpdl97mgcq0s7lbdl8hncxrbx5pqscawjjywh4qnvq1qzrzb2";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.7.0-linux-amd64.tar.gz";
+        sha256 = "1g2qzmbzb7bs2shzxnhkml1hxrbryyms3zviziqv787dn0p85p08";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-linux-amd64.tar.gz";
         sha256 = "0a5nav53dg3j4rrx7747a7bk90krfg9fxj0kw0wahcnjijbv1255";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-linux-amd64.tar.gz";
-        sha256 = "0hy6j7n1jdqxmd6wq5lab1f31zzb3pkvali882fsgjvjw9clbk6a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.9.0-linux-amd64.tar.gz";
+        sha256 = "1gypzjjdadw4cpzxz77h06l2fjq9arddh22m1ibp9bwy8ql9k0kq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-linux-amd64.tar.gz";
-        sha256 = "10v7rsd0k0zbkk4i0drhnv8c2wkjahgzy6niai00sk3kcd0c5p92";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.13.0-linux-amd64.tar.gz";
+        sha256 = "041gi7yhgmksxnvx3v0w7nsnf8zkj3zx916kkiv0jijmdszvs1rj";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-linux-amd64.tar.gz";
@@ -69,40 +69,40 @@
         sha256 = "0hnardid0kbzy65dmn7vz8ddy5hq78nf2871zz6srf2hfyiv7qa4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.1-linux-amd64.tar.gz";
-        sha256 = "0n1xqsfsqi773lwg9xbvglrd4pfb060fq8llxf06qj8h2imlxx34";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.4-linux-amd64.tar.gz";
+        sha256 = "0qi0gz3dylmcm4wj5ld79ris9lvq00fx54vds36q8wwikawyil00";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.21.0-linux-amd64.tar.gz";
-        sha256 = "18m3c22lgh1byj3va8mxv8dk6ivaphmf4azqz8ndvva7jmiqayyb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.27.0-linux-amd64.tar.gz";
+        sha256 = "10pl9cx6nh4384sq9ssv1vd98k91cnlqwlx15h2rjsh5nn0c3yjk";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-linux-amd64.tar.gz";
-        sha256 = "0m6rz6mljdz5w921gzmr3b20g6fpdhd1n9y8cplhdgpg1jvg1405";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.12.0-linux-amd64.tar.gz";
+        sha256 = "0p770idxdxn4nydgf1q56m0lf3x9fz66m2pydp09ba07kqnk9xvn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-amd64.tar.gz";
         sha256 = "17v460kbghvrvhxgckzg2bq556amy5hwmks4m1idkcz8akh6vlni";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-linux-amd64.tar.gz";
-        sha256 = "010jm1x4id53wx8jwabqglyvkv73j8bnhksk5jcg20wbf1864hli";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.20.0-linux-amd64.tar.gz";
+        sha256 = "0lbda2cdbn5jhivydxh8fgwxjnmdr8hskdh3hm1ss095kq56b8i9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-amd64.tar.gz";
         sha256 = "1gfiiwgb51ylwns3mqgnbgm2knrdzvy9r9v23yx0z03ba189d3m9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.3-linux-amd64.tar.gz";
-        sha256 = "1bs8bdkaa6qrrzddppar7yzcn3ml9rfvdmd72fcgvz1hw5vp7gzn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.19.3-linux-amd64.tar.gz";
+        sha256 = "087k66789jrd26mygfbg25z4qrkfkp95240jsk2mrrzmmnyp8h4h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-amd64.tar.gz";
-        sha256 = "0nrpxd2hnpd3r17938vjkx36fs7bgli4gmzbz5lz27666zzizhmz";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.8.0-linux-amd64.tar.gz";
+        sha256 = "0c7zvk5l1v789hj2xnqkbjmd4a10xwq7hnw8why7dbbmlwqypvnb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-amd64.tar.gz";
-        sha256 = "0nri27c71kf3pjivd0w9ymkl4rn39flh5n2rphi4gn6v4kfb1192";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.0-linux-amd64.tar.gz";
+        sha256 = "01lvr1zzm0xl5larfz44wfxssi2k5kh6mn8mpif89vj0s3z0zxyq";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-amd64.tar.gz";
@@ -113,36 +113,36 @@
         sha256 = "111q7jxkjni1091m3kp9c2n1zqlkiy7lrfsrqk4bzpcf67krk9vj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-linux-amd64.tar.gz";
-        sha256 = "156wmbxm8c15lzqj2mx4mm14p569skfddfbq9rjyjlvxljklx2fd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.5.0-linux-amd64.tar.gz";
+        sha256 = "08wyx9j5q9pn1jya849wg35v2d7kagzj77h8qr94j8w7agf6ds2a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.5.0-linux-amd64.tar.gz";
-        sha256 = "0fs68z18lmhl46dl45fnavhycysfbfkparvq9irhcc679icwn5id";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.8.0-linux-amd64.tar.gz";
+        sha256 = "0h3a9nywj0a3ib425274nf19xb9bmk012w1kjv240hnhcnrgg1kp";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-linux-amd64.tar.gz";
-        sha256 = "1jx9ngzk3k8ab5s1ms2j8k7sb2zfcxkwhjj7zwvdna5x2lxrvq20";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.9.0-linux-amd64.tar.gz";
+        sha256 = "0gcay22abws4nxk8lpk0asw67y3immw2669y2hs9mfbqinvj58cv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-linux-amd64.tar.gz";
-        sha256 = "1abgvb6bqdpy4rh94rq94bjcvz7ksd0f4ywzwxh02f7qv9lacsx9";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.20.0-linux-amd64.tar.gz";
+        sha256 = "1pn1q398y50rw2r306pfqqsv8wvplz7a1z8hf8x2g1z2bfcip0nd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-linux-amd64.tar.gz";
-        sha256 = "014aqs91gyzsi413v6f6npnmx72yflhxc6ybxngybkphc6hzx5y2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.7.1-linux-amd64.tar.gz";
+        sha256 = "0p1vh1hp90niqdr3scmh4pwb177lv6d3nqp6apcjabsg5w5nmim9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-linux-amd64.tar.gz";
-        sha256 = "0yhsidz5mi6xznmrkvlg1jxyykhg3kccqd4fxg9zj9yv4l8ih2rw";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.9.0-linux-amd64.tar.gz";
+        sha256 = "1rayjf72ryxy1ss9d049jsibl7rqhn78r1qiwm7yyfnna1f02x4z";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.3.0-linux-amd64.tar.gz";
-        sha256 = "14kgn1xz3i5lh096chd1bqac0391g13zma0nkraynnaqziqw5xgf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.6.0-linux-amd64.tar.gz";
+        sha256 = "1jx1h7p72wacplnqdvjqrzkgfc6fsrpjx6xl4f6dyvnvc9sgv7l9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-linux-amd64.tar.gz";
-        sha256 = "1n780mk61vshxyf7h9wdx3rddnrmjljzzx979c4hw1ycq40iwxkh";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.5.0-linux-amd64.tar.gz";
+        sha256 = "1rif5ilxh84qzp2p19wal8k3xczppwv9rqk2ynhh82pp316hwf0a";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-linux-amd64.tar.gz";
@@ -163,60 +163,60 @@
     ];
     x86_64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.31.0-darwin-x64.tar.gz";
-        sha256 = "1n1c05dpv1xhj7wsy4vxh31mzppmiz1qvjz9vhjnpjhcp9r949gr";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.34.1-darwin-x64.tar.gz";
+        sha256 = "1wg9s0ngk26icvv7cyg8parh74f0ls5ixpdrjqvzib4k2mifnh54";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-darwin-amd64.tar.gz";
-        sha256 = "0i43sspz7bcg6nhdf3ncj6mcs087qn2z0fkfcylj7nsvvvwcacyr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.2-darwin-amd64.tar.gz";
+        sha256 = "1mph89ghx4agvip8iqkwlqxwk506xh9a0jlf9aw64xagvag8ady8";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-darwin-amd64.tar.gz";
         sha256 = "0xnlj48lgjhb3cf0yp958j7js5akxygd6034r4fa26kzhqq6rnl6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-darwin-amd64.tar.gz";
-        sha256 = "14skymvy5mf0509v3b8wrmi7n390la9nr859l7afbhxk4cwvq3av";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.21.0-darwin-amd64.tar.gz";
+        sha256 = "1ssi3w7rzgi9781r04lbpsfbcprsk7a7l6wmadjp4i7gbzii55q2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-darwin-amd64.tar.gz";
-        sha256 = "0zjcbaflcbm52bjfpsr9pbg4jddf9y8zq4i1w8ki46bdcvyi998g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.3.2-darwin-amd64.tar.gz";
+        sha256 = "1clh35pm87bbad49m8gb7ycbzxvncjpdqy8rsjm7kg99dywwm4yd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-darwin-amd64.tar.gz";
-        sha256 = "15a89ydv8yp71aamd9kciz9yggxza5njdikch5pvmd24jvar03gm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.9.0-darwin-amd64.tar.gz";
+        sha256 = "0fxr55qdll5bxx5hz80na2zhcfds231kycbpd7ahsxf3yfvwppm9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.3.0-darwin-amd64.tar.gz";
-        sha256 = "1qqbqjr0yh5ipyj074a86hjga126dib9x0c3rp40x7q03avsii3g";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.8.0-darwin-amd64.tar.gz";
+        sha256 = "1j090zl24sdyw28p2vj5d382cmamabvg0pg33dsfqhw9smzkc6c0";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.3.0-darwin-amd64.tar.gz";
-        sha256 = "0pig9hcmhig7ygx43fj0jjpv1js9kgdryhak62sfdvbsvcaqzp44";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.21.0-darwin-amd64.tar.gz";
-        sha256 = "18b63y3wiw99wmkna5zv8k7bkrnnzm9nv4k14f93lg22jcmnhrkc";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.24.0-darwin-amd64.tar.gz";
+        sha256 = "1nivhnyv7750vw0bsw8bp2il3a57r572pskfbd9njr2kvmlic7wf";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-darwin-amd64.tar.gz";
         sha256 = "1shc7m4xlsmcjnrlbi2jyvmnvf9bg1cs6knfkl82jfs65ya5iidf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-darwin-amd64.tar.gz";
-        sha256 = "11g07qp5b4p7ak5lrc1jaxlngfappba56lk9z8c6rlfs6ajkrfmq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.10.0-darwin-amd64.tar.gz";
+        sha256 = "0himardpabg8wiqd6557pgnpj5p6i45fy2j4yyixi7jqaiashig7";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.7.0-darwin-amd64.tar.gz";
+        sha256 = "1p1ba58ifz2vl1zi15kny6jlijzjgd9cdbsvkh11m4am2fi18qsa";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-darwin-amd64.tar.gz";
         sha256 = "0pvq5mwl8scsyvkqgy32v1qs4060w0m12z0f1cw0aw34wd3zs67a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-darwin-amd64.tar.gz";
-        sha256 = "159h2l7dzj2bfzvifsq5vnsvp2z86bivim65pp0w8gf460n9v8b0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.9.0-darwin-amd64.tar.gz";
+        sha256 = "00gnqfbmqa731n0g6qzvhkq240x7pbfqh6hppprrzxcxr4i25qkh";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-darwin-amd64.tar.gz";
-        sha256 = "0ywycfl0arsfqjirk3b56i8kpx7c9wpbisadmcz0m5fahi47j2v8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.13.0-darwin-amd64.tar.gz";
+        sha256 = "0241frab4w2xfyml9vbzvmrjxsbpyvl14z1y3f3cqzp655srpmi9";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-darwin-amd64.tar.gz";
@@ -227,40 +227,40 @@
         sha256 = "1m5lh59h7nck1flzxs9m4n0ag0klk3jmnpf7hc509vffxs89xnjq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.1-darwin-amd64.tar.gz";
-        sha256 = "0i3aysdy7i13fx2a2kpnvd3qpn7vmc2mbln718kks3mikiz26aii";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.4-darwin-amd64.tar.gz";
+        sha256 = "0zjap38frc6d5r2y7a4k5arvdc9fhh4bnr0swzqm5k9vxza3vfq8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.21.0-darwin-amd64.tar.gz";
-        sha256 = "1zqbxqyv4x1fsyrdjpy2ham5fjs1yzjly0i3jpqrrkxfxw68z7an";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.27.0-darwin-amd64.tar.gz";
+        sha256 = "0p9mk3h8943cpd7slwmj6swx0jmb1mrkmkq70lmcx9633zzf91v6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-darwin-amd64.tar.gz";
-        sha256 = "0bgznj8569m2zzx9qjmnbcn0c3zbz12iyiffp4kg1c7g7chrlvy6";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.12.0-darwin-amd64.tar.gz";
+        sha256 = "1vg68hfx568cqqvdwybsx580r1jgic6g71nrh5587hi8lbkcxvx7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-amd64.tar.gz";
         sha256 = "08b6p6gliay66bd7687kjc9n3n7xdgbrrcnbjbqi7a3am14mf5p6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-darwin-amd64.tar.gz";
-        sha256 = "0828lrq07586liz2k7pjk7hnz4nxawkq03nw8x2s4j8paszrz295";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.20.0-darwin-amd64.tar.gz";
+        sha256 = "0vsgjl6hzznh12dwbwqgdb2wdpa4nhhj0kfa1y49553mk8zsymgh";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-amd64.tar.gz";
         sha256 = "11r73jfqkc0wgdf66zp6pmgq5packlm4dkjp12a00z6l2s4f0w4h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.3-darwin-amd64.tar.gz";
-        sha256 = "0ffnl6mbh9wpfb384zbv5v1sss4vvn0hqrcsy6v585984v1pays2";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.19.3-darwin-amd64.tar.gz";
+        sha256 = "1i4waql9mcj48xzsb6i54cf1b7gpw5dqdlj2m4fjr3kfagw7xfqb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-amd64.tar.gz";
-        sha256 = "15zf53m0mgrk11qp3dvkrrh86j48hqs1p7x552gkqfqkn291d5z8";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.8.0-darwin-amd64.tar.gz";
+        sha256 = "10y87y3llb7y5mf15681c4l7nnmq3i63wm4hphcc7y1pfald86cr";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-amd64.tar.gz";
-        sha256 = "06s58xlwm3wf7895bzsqx4jsfb0kbxanzlaf21jff45y62nk1f1p";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.0-darwin-amd64.tar.gz";
+        sha256 = "1ga3gb8b7ik070gah73jwjd9l26rfzk2a0a5zdxw0jf7qlmwirf6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-amd64.tar.gz";
@@ -271,36 +271,36 @@
         sha256 = "13qxwzfsy0hmvgazry0q3qna0jk7llharcvdwz302fj4ad98s71j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-darwin-amd64.tar.gz";
-        sha256 = "0zjha6vv6j386h2gfhvwicpqz53v13v7zdfl6bydjzh3mw2x7bcg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.5.0-darwin-amd64.tar.gz";
+        sha256 = "0d1w1zak2ma701w26va74ahi3lmsjywsk2x84ds4l4mj8ckpl2va";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.5.0-darwin-amd64.tar.gz";
-        sha256 = "1fnv2d4b458blx5k2s861lj8zc0fcxkw5jfjcm25nhdc7694v04w";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.8.0-darwin-amd64.tar.gz";
+        sha256 = "043zi2khq6bdp19njw7nz1rkx5ddxx5w51qac7lym7pdfx1pvd4i";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-darwin-amd64.tar.gz";
-        sha256 = "0z5w42m0229gjlbp36aqh8cfd0l47nv5jh6gcjqfp5pkgwh37gnj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.9.0-darwin-amd64.tar.gz";
+        sha256 = "0r3wm8a9fzlhpapr7xmfdk5pmanz2phzbpplnh0irzl4nikwx80h";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-darwin-amd64.tar.gz";
-        sha256 = "119a3dfrri8qdbianml7i2fm6yr8rrq1q0cnpk9r8qsyja2vsvp7";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.20.0-darwin-amd64.tar.gz";
+        sha256 = "1g1fmsb3414xdw77al6pbps16pa07x09pli8bvgfmyysvgm1wb4l";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-darwin-amd64.tar.gz";
-        sha256 = "11zhgrljwqkj3a200kdh8gyzvxm6jcbwm71929a87wqppgwvcbag";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.7.1-darwin-amd64.tar.gz";
+        sha256 = "0y1lcafl477ja9kib00zprz7gamfx821mdj5nyiyjkggwylp0lwl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-darwin-amd64.tar.gz";
-        sha256 = "1n6w6da58crv2dyi0s7pjzjk3y85qlz6qaa77r0lm58f8wcj4a9d";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.9.0-darwin-amd64.tar.gz";
+        sha256 = "0pjikivf87p7s9m162j7dxrxxs99lf25sjkfaixzldf3l5dqddfm";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.3.0-darwin-amd64.tar.gz";
-        sha256 = "0whh7br959dc4hz47iskgkcxf4d6zg9lv9jvx1b9lyplra7iwyv0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.6.0-darwin-amd64.tar.gz";
+        sha256 = "16dxc4pkb5arb8qb6gg45m59jn20is3fcn0d1lc66d6sh35z7lsb";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-darwin-amd64.tar.gz";
-        sha256 = "0l89yiwjs39nhicln0bbwb8j1dajc1r1gdbqrl3zjpq6mnhanphb";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.5.0-darwin-amd64.tar.gz";
+        sha256 = "0w8s908ny5zdn0i8j0klaq2ig7f8vnzx88cm5r110573ya3l9b1m";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-darwin-amd64.tar.gz";
@@ -321,60 +321,60 @@
     ];
     aarch64-linux = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.31.0-linux-arm64.tar.gz";
-        sha256 = "1p3c7ks1q6i9frz8ljjf7jn00sr6bgqm53hxxwxkim7hkr614ndp";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.34.1-linux-arm64.tar.gz";
+        sha256 = "0nnl0qkd5xblvbhgzy2ikhs1xyjsmzfz4fda8kfgmcn9lh3hwjlz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-linux-arm64.tar.gz";
-        sha256 = "0c55b6jn7xxkvpcbgc4l8nxbjpdlpy6xhrk8j65ch27jhn3nwags";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.2-linux-arm64.tar.gz";
+        sha256 = "1a264gf1kwvq8x0qdccnfj8d5h0z1mw86lcv9qpawym98zms7jq7";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-linux-arm64.tar.gz";
         sha256 = "0vn6rdqfl79p666v2h72dsqgwqfag5k3hh4abb7hdz2kzqrl7l9k";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-linux-arm64.tar.gz";
-        sha256 = "1g6ymjsmxp149cv93sn5843pxlih1dbw16nvv4sn3prl360c4lxa";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.21.0-linux-arm64.tar.gz";
+        sha256 = "1h55nmzlaba249iy5lkd6zk7a2zz97n5jkfy1a2yy5xa9v4kv8ab";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-linux-arm64.tar.gz";
-        sha256 = "08qjb17rpxmpl5waq6dsza28aa9lj8blf3x59xv3dv4ngzzymh07";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.3.2-linux-arm64.tar.gz";
+        sha256 = "1i1qnpg722cjj5z208yx2r0yswrir2bqy8fzdgmlwl0ffm8v3f47";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-linux-arm64.tar.gz";
-        sha256 = "0j5wa27zhqf4vvpxgs4cmay8n3a74jsif4sr9x60mhkrhr0s117k";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.9.0-linux-arm64.tar.gz";
+        sha256 = "126hqi44avcw21q8niyagb86p191ci78089sfig56irzkykc7gsy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.3.0-linux-arm64.tar.gz";
-        sha256 = "051lksfn7na30y6r7qn24wg222kf4bsvd26ga3y7i2xh00nh82kp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.8.0-linux-arm64.tar.gz";
+        sha256 = "0i89v1wm17wj7nb63ywydmvgzz3klm884m8di8qmg03mmlr2h6p3";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.3.0-linux-arm64.tar.gz";
-        sha256 = "0g41dc6q42rr81167n4319llznjvb9i6zgfs5hrlxgz622grmax0";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.21.0-linux-arm64.tar.gz";
-        sha256 = "1wyryxfmahcr668cp8kqc7l1spa6c1pzhxkwscd8payar78rswls";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.24.0-linux-arm64.tar.gz";
+        sha256 = "076g4h58hv8g062r9swp4gfcqb7bmkfn8a63p2069v7k8c594rgq";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-linux-arm64.tar.gz";
         sha256 = "0w55pk3ham08lrg3vq0hg3p23qipz21ln01g61xd0cpl79aysbq4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-linux-arm64.tar.gz";
-        sha256 = "1b1w886m6glpq49baj6zhyb2rcyi4y0kh4sl19ni3afmn9bw6xn3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.10.0-linux-arm64.tar.gz";
+        sha256 = "0rkgx3xb6p8r40yjbwg49irqxyc7lb5ksiifb93dz9650za4bs4v";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.7.0-linux-arm64.tar.gz";
+        sha256 = "00ja951rzxkq01yzygp27wrq1s34j2fzs2lv2njxskqwmhqd77xw";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-linux-arm64.tar.gz";
         sha256 = "085flnzp062p6ankfl77p1y7n8ijrhmknnb4r46x6b3lrw891pgd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-linux-arm64.tar.gz";
-        sha256 = "00y77pyxnish3zym103al5z3r881p7nf9d1aqh887nnz6i5jw7nq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.9.0-linux-arm64.tar.gz";
+        sha256 = "01hf8ycb6w3ny3ccfimxj1l96m0jzjp7f1r0xm9an8i59d3wslx8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-linux-arm64.tar.gz";
-        sha256 = "1iwckjvbhrbic64yj8ydnn1ml19lw4k164xkkc4066dpxbjz128q";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.13.0-linux-arm64.tar.gz";
+        sha256 = "03x8mwzwnkjw1pj8rv3mkzj3jrw921xq8izf1qnr32aglskmqvjn";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-linux-arm64.tar.gz";
@@ -385,40 +385,40 @@
         sha256 = "111pia2f5xwkwaqs6p90ri29l5b3ivmahsa1bji4fwyyjyp22h4r";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.1-linux-arm64.tar.gz";
-        sha256 = "0qpan6zvny2h2ckigwnf4dhsgmnywam1m4d2jp0nj9pm3628pldv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.4-linux-arm64.tar.gz";
+        sha256 = "1w03vj5an0mkb9cawkz94xxj9d2yp2zvr67nnwvmdgaj6kwb9by8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.21.0-linux-arm64.tar.gz";
-        sha256 = "0zwlr58wyd9aly58shffr24vsbna8bj2igl8l0j8gsf2g310n513";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.27.0-linux-arm64.tar.gz";
+        sha256 = "18cb2ka8yvjxnhhhf5zmhy79rmz3zacyz4i2mm9rvx3nljkxmm4a";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-linux-arm64.tar.gz";
-        sha256 = "1lnc40lgc2rgrbhw54gc3g24zp1v3vspr4c0bryjq21yrhisppdd";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.12.0-linux-arm64.tar.gz";
+        sha256 = "1zs7skijbrs496545qz7gjkmqvax43wb0p0pna3bm034sd7zcl6z";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-linux-arm64.tar.gz";
         sha256 = "0i6qxrdijf653nj6yqhdikbj3spzzwr5rbgngkc0v7yxkphlzlnj";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-linux-arm64.tar.gz";
-        sha256 = "1q5fxlrfiqlwib5bwwinmghq3j25rv14ldklpxihviyz1b5sdiyk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.20.0-linux-arm64.tar.gz";
+        sha256 = "1rnz5cli8q59wwdvadd08kf51nl5rmrlkch9szc3yk92i79kl6wg";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-linux-arm64.tar.gz";
         sha256 = "1vrz3pm14i5zdmk3yibny2sghxk8kzwb2qi77mjbiyfhbvciy97q";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.3-linux-arm64.tar.gz";
-        sha256 = "1ydmpcf13yj8jiw72nzzvnzpg3qwnwfr8j2qhr2jdwp1wxw46658";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.19.3-linux-arm64.tar.gz";
+        sha256 = "17qm3sbfxi5i24rdcicr7pairxvlh8bi48fldazccpwfsbmgd83c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-linux-arm64.tar.gz";
-        sha256 = "1glpxiq8v1fgjnh0r9hkl89s81iv44r24pha2jfvk1ww2jf54gwq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.8.0-linux-arm64.tar.gz";
+        sha256 = "0dqjyyh4jarzr385qqa4dwlpi5nribc8l22jxhdjgj52av6hc9pv";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-linux-arm64.tar.gz";
-        sha256 = "14v7wm2gkhd064drw2l894dacdsm5lnndii5qzl5hsl6p9a5m970";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.0-linux-arm64.tar.gz";
+        sha256 = "0s2qma2cl69ghvkjapvsgfrry6c1icbm6rxglqfdg6da1lrabx40";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-linux-arm64.tar.gz";
@@ -429,36 +429,36 @@
         sha256 = "0dh28hhg2lbvbgw2yadw0ig68z2pcg51h38v74yczblm24k97jvq";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-linux-arm64.tar.gz";
-        sha256 = "11y6vbmhrjqdlgzg9px1sm2p058v6mvk69gzhy2ix1c1a2sh6c56";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.5.0-linux-arm64.tar.gz";
+        sha256 = "0lky1gchcmjn6nxlasjqviq89hi2k9fi8lx7ac7hy6x6b7wl40sf";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.5.0-linux-arm64.tar.gz";
-        sha256 = "16wshr4q9wfp7gi09n2c2ckvybg28adw429mghzmcs13aws1cycp";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.8.0-linux-arm64.tar.gz";
+        sha256 = "13i481a9xj9aw1mi8j3sw4m69kfcaqdl1cj9w4silqwyqk4gzmyd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-linux-arm64.tar.gz";
-        sha256 = "0k5ic9i7cd6ccl3v20sj7jgpdrcc4bkv697p0pslb7i3fnhdcawf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.9.0-linux-arm64.tar.gz";
+        sha256 = "0f3sp3zl4zikwa7rswnqgy09pwv8r8rn08n3zyk3vmqzsyrldbgy";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-linux-arm64.tar.gz";
-        sha256 = "1ssrqxf1gss0fcpffgh40hasbgh4cc4ysqkk0lxdl90avb7lf2zr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.20.0-linux-arm64.tar.gz";
+        sha256 = "1rv2k5kqjsg01qdqvb1yhkbh1sc7jszh8wgm42q223zdyplqlid2";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-linux-arm64.tar.gz";
-        sha256 = "10sb3lm8m90fwf20nqy6yzfwbxxlwf13hmygrqnyicvfmiajihkn";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.7.1-linux-arm64.tar.gz";
+        sha256 = "1fdg6sl2rchmzcsxyfbml33cq34slpf6bbr4s2cx7k2bwfvc8wwl";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-linux-arm64.tar.gz";
-        sha256 = "0zkmkg9bivf5hlcbdj2aqyszpsqk7x8ag99z0x2yd00v72x2qcb5";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.9.0-linux-arm64.tar.gz";
+        sha256 = "1g9z3nv18mwklvbqrz07pxcar3373f19jmbdn1m6z5v871qg97r8";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.3.0-linux-arm64.tar.gz";
-        sha256 = "06djcfard6yq6qd98gbsnkry0jv3nnlgmwr90d818vbf923z0b1h";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.6.0-linux-arm64.tar.gz";
+        sha256 = "0mnw1cbi789c9iqnxg67pw1v6rgp6s0g2w3yvnbllbdafvd6pp3b";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-linux-arm64.tar.gz";
-        sha256 = "08rxnqdvpb7lrknhlnyhnfnvsmbdi7cxds7dc5zdslx27fcywz8a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.5.0-linux-arm64.tar.gz";
+        sha256 = "09jbs7mvbf3bbrf6b4m1nfj52zybxawza2ccsvz99yc4g5r2ixj8";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-linux-arm64.tar.gz";
@@ -479,60 +479,60 @@
     ];
     aarch64-darwin = [
       {
-        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.31.0-darwin-arm64.tar.gz";
-        sha256 = "0ixqqvzigq9l8xr2rcdf1ln7a3xhf9f52qz0zkabr8kq7l11vz3v";
+        url = "https://get.pulumi.com/releases/sdk/pulumi-v3.34.1-darwin-arm64.tar.gz";
+        sha256 = "1g5sy9z3vg2s7g589q7247a7i2j3lpc0mla4z1nhmalfk4yh4qf4";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.1-darwin-arm64.tar.gz";
-        sha256 = "0l2xmaybgrbln3zgpdx6pmrg05hm08maigr62hpj2q6l8z06gsfk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aiven-v4.5.2-darwin-arm64.tar.gz";
+        sha256 = "0m99mp7b1vcw2yb79yhms35mlz6f3b6xijyv5x1pdakays4bn16q";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-akamai-v2.9.0-darwin-arm64.tar.gz";
         sha256 = "14qf3y7nz4dd6qf9fq49f90415dn5hcjymm86rmcgyw1w1dkjpqi";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.19.0-darwin-arm64.tar.gz";
-        sha256 = "1n061d8phk6cjvr24138vqzxs5midfadqgrpmaaknbpykcd3vym3";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-alicloud-v3.21.0-darwin-arm64.tar.gz";
+        sha256 = "06pia0q1ajmlbfzgj3p30zw611drq5vbp2maj21jhdkcxfbjsbw6";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.0.0-darwin-arm64.tar.gz";
-        sha256 = "1s9affk1y1bzg44rz6cahnvzln4sc8ycwvmskqwrfqankrzk5730";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-artifactory-v2.3.2-darwin-arm64.tar.gz";
+        sha256 = "028h8yqj9xb048hy9j5j2jdgqipfcra5rrwdaa76k0vxhdk7514v";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.8.0-darwin-arm64.tar.gz";
-        sha256 = "1qx9717a5qajn3dp4i0gswd2pb80dq98igfad9nbz1f9sbbax2dv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-auth0-v2.9.0-darwin-arm64.tar.gz";
+        sha256 = "12dx70f5fiy2qvd4cmkxk2ph2dq19sc2a9rxhfxqn1bjjs8ifh2j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.3.0-darwin-arm64.tar.gz";
-        sha256 = "0miqrbsivw7r4sw9q25lkn9z8fxq00sdx0l88agvzjp6rgsggbsl";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v5.8.0-darwin-arm64.tar.gz";
+        sha256 = "01l9bl8wjkh8cfm7d7xky2zliwnfx2kgzlwd7bph7zkngwjg86b9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.3.0-darwin-arm64.tar.gz";
-        sha256 = "0nxmcssbsn2yqbndaz50xj7jmd7ynjak13yicmli0l7jcrw7ksyp";
-      }
-      {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.21.0-darwin-arm64.tar.gz";
-        sha256 = "1a7psd9l3rpf6sfil3wjc55mfdz856h5ixnsbjkpjy9zfblv42nv";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuread-v5.24.0-darwin-arm64.tar.gz";
+        sha256 = "17yxlxqa0jjraz19y3x164hhdn1w8rhfxn2m3nkl9gqh6bjx0pvr";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azuredevops-v2.4.0-darwin-arm64.tar.gz";
         sha256 = "0ivwpfhknhyidpafm2347g1pair7vk055ajhhyg631vizx53hrr9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.6.0-darwin-arm64.tar.gz";
-        sha256 = "1i7n2yvvsijhhxrdd6i9vvrlmrn382qyrs258kbrza5zckxshdwq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v5.10.0-darwin-arm64.tar.gz";
+        sha256 = "10c0jsp2kcyw2vrx495jlqyiljgz5701a9dlzqb37ys67qixmfnj";
+      }
+      {
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-cloudflare-v4.7.0-darwin-arm64.tar.gz";
+        sha256 = "0f4fylipawslcal2267q7vih0l4j7yq0pkkw1vaqww2xgvpy2ds4";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.6.0-darwin-arm64.tar.gz";
         sha256 = "11b8dr2ycn3p4k06y2f4pj19hy7zpq0glh8npqixmvn66flp3wa7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.8.0-darwin-arm64.tar.gz";
-        sha256 = "0payziqwl9f1xja001mymaabxd5524b6ksanfr5jifcfchy9zq47";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-datadog-v4.9.0-darwin-arm64.tar.gz";
+        sha256 = "0p1zvwi53gxsl13cw3n7iiy9ndcd5v0w8y7i4kshlnjrsxc10x42";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.12.0-darwin-arm64.tar.gz";
-        sha256 = "19cqahnk217cr5pz6jp4d8v1hpxma0x4igvccgm2i02sfqlyr65y";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-digitalocean-v4.13.0-darwin-arm64.tar.gz";
+        sha256 = "1wkhifv4ag4w2plvh63ii8rhc72724zyg49i7xc3kgm5jg3cadn6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-docker-v3.2.0-darwin-arm64.tar.gz";
@@ -543,40 +543,40 @@
         sha256 = "12bzicm43l7yvh02v5fx3z8v46l9i7a9f677735xi5rjbmd2an4c";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.1-darwin-arm64.tar.gz";
-        sha256 = "0jj35mj57sivi5qsbwv8qm2jginppi192qlx6ashvgm352gia9r1";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-fastly-v4.0.4-darwin-arm64.tar.gz";
+        sha256 = "06m4cn4v6hcqlk7pq50zd8dg5bg4zjh28r3466k532d3jvl99vr9";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.21.0-darwin-arm64.tar.gz";
-        sha256 = "0k3cyflqnf5n72lg02my28mmclacrnxpyjkakl4gj8qknsj7q94r";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v6.27.0-darwin-arm64.tar.gz";
+        sha256 = "09nh1vdislil9ip7v96bxxivplrlz0yzz1v6d5rvp872m9qknpij";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.11.0-darwin-arm64.tar.gz";
-        sha256 = "0vvdbk778dlpwkadllm911f71vz1i1v48wmyws9z780nky6zrbii";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.12.0-darwin-arm64.tar.gz";
+        sha256 = "0hpjrvvqr8lnfy0gwi534l3dnp1c5az35y6g45w1hx0ix9n4kvip";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gitlab-v4.7.0-darwin-arm64.tar.gz";
         sha256 = "1gvzjf5mp3iy43srvx3blxfwcg20gqbqvycysnl2p8g8sg3scx5f";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.18.1-darwin-arm64.tar.gz";
-        sha256 = "0gjxk12z2ww31nhvnyvjgr0kxn80sn3i1x4a3f5w9mk7xc1y7bhk";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-google-native-v0.20.0-darwin-arm64.tar.gz";
+        sha256 = "0m8aafbpvg6gkz660b2qa5f3ax4r3aql8j6r8s10d5aga657dqp3";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-hcloud-v1.8.0-darwin-arm64.tar.gz";
         sha256 = "058f1j40ar4xh860c3qrm0qaagm69fdmbw14avvrhsmw245cyyzc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.18.3-darwin-arm64.tar.gz";
-        sha256 = "1smhffxxr9kfpx1czd5c2sx4srgnp2yafrqv7r4y7xqdxi92x2k0";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.19.3-darwin-arm64.tar.gz";
+        sha256 = "0218n86hz0lds4k1x2nq4and7cikl6nv65sh7k7p8hv4fpgbnsfd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.7.1-darwin-arm64.tar.gz";
-        sha256 = "0287l9snqwq801h44vxqawk0bpniszd41rw600jb1vp5h7qpksgf";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.8.0-darwin-arm64.tar.gz";
+        sha256 = "040fx2a8sgs1rpzz2bnlsrlrha07b1klh3vq21zjr77apg7l9kya";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.3.0-darwin-arm64.tar.gz";
-        sha256 = "0n60fk2nyb1idf4rdc61jxjpzpw4v9106gwn6r1by10g8f1712yr";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mailgun-v3.4.0-darwin-arm64.tar.gz";
+        sha256 = "05pjh1xlg82v8vfzkcnn6krnjkd5njfgrfy392vfqcp235z569s6";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.1.0-darwin-arm64.tar.gz";
@@ -587,36 +587,36 @@
         sha256 = "0xqxk9xp49s0l5cxxz9wg26fg4fj57h4yjpvs4xs8fpaqa1saynd";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.4.0-darwin-arm64.tar.gz";
-        sha256 = "14qp5vlmny68hjca1xykc06z2f740q1flkn9d7n2k6knzp1db9xq";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-postgresql-v3.5.0-darwin-arm64.tar.gz";
+        sha256 = "0im3ydgkm4vjia17c03szv1i77jq7abczq0a023k0kw8r3dgd8xc";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.5.0-darwin-arm64.tar.gz";
-        sha256 = "1m6rbisrfh6im9l9c5kfmi0fqp1ndr8wayc33ay18yikrnpfiibj";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.8.0-darwin-arm64.tar.gz";
+        sha256 = "1hgqybvag1mlj3hikjgx9pn2hr4r3bag0lv3l9qnjdzkmdcy248j";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.7.0-darwin-arm64.tar.gz";
-        sha256 = "0yqwxkd1rby0q7isxxyx1nn0vrz72znrms2d220haj1482gacj0a";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-snowflake-v0.9.0-darwin-arm64.tar.gz";
+        sha256 = "1y6ikzk7npajc5y0b8q6r3ks7ipwlyymjb1gh06604iylgd708nw";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.17.0-darwin-arm64.tar.gz";
-        sha256 = "1j985hv5qmjvmh4vr978z3d6bpmj4mg3pil57402rifgdz3q7i17";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-spotinst-v3.20.0-darwin-arm64.tar.gz";
+        sha256 = "0jlci2ba7vkizzjd2rw35fbl0qib3dvfalypa13a8lgqcjmyn9p7";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.6.0-darwin-arm64.tar.gz";
-        sha256 = "1j9128vmm70mhdhl8rxgz1p7vf6ywbaq906jldm0izr7yi119k76";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-sumologic-v0.7.1-darwin-arm64.tar.gz";
+        sha256 = "1k52qh6z068s2np1gcg7wp8vvw5rig8c877m8x9qq5xy72w3mzgg";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.7.1-darwin-arm64.tar.gz";
-        sha256 = "1vbbca4z6z92yk2y6g15s0cyvs5n6vx84h30ldnn4mn3gdfdi7gg";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tailscale-v0.9.0-darwin-arm64.tar.gz";
+        sha256 = "16p0qsp8gi28xj7p7zi4yl2w9kadv9n8z97f4s28agg62b3fh5x5";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.3.0-darwin-arm64.tar.gz";
-        sha256 = "16rnbbzx6fsck769sqghb9gqkkpl6vwbpczm8wrfa5ya90743mcm";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-tls-v4.6.0-darwin-arm64.tar.gz";
+        sha256 = "143qpa51q6fl2s759fjhfq6z2fqwkqcwfpzmzsxdjh74mfqz5xpz";
       }
       {
-        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.4.1-darwin-arm64.tar.gz";
-        sha256 = "0h423svxl2qfpgv4xl4kf3y2zsjz5lwndmvxjm9g8i01k9mn3v30";
+        url = "https://api.pulumi.com/releases/plugins/pulumi-resource-vault-v5.5.0-darwin-arm64.tar.gz";
+        sha256 = "170iwzg3dnr8ysj882ws6c7vwkziw5a04bsddkrmy7j7d37r8gla";
       }
       {
         url = "https://api.pulumi.com/releases/plugins/pulumi-resource-venafi-v1.4.1-darwin-arm64.tar.gz";
diff --git a/pkgs/tools/admin/pulumi/default.nix b/pkgs/tools/admin/pulumi/default.nix
index 89fee3e61605c..02e1bb29c01b2 100644
--- a/pkgs/tools/admin/pulumi/default.nix
+++ b/pkgs/tools/admin/pulumi/default.nix
@@ -26,6 +26,7 @@ in stdenv.mkDerivation {
   meta = {
     homepage = "https://pulumi.io/";
     description = "Pulumi is a cloud development platform that makes creating cloud programs easy and productive";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = with licenses; [ asl20 ];
     platforms = builtins.attrNames data.pulumiPkgs;
     maintainers = with maintainers; [
diff --git a/pkgs/tools/admin/pulumi/update-pulumi-shell.nix b/pkgs/tools/admin/pulumi/update-pulumi-shell.nix
index cf69e640550d4..a972b633abb01 100644
--- a/pkgs/tools/admin/pulumi/update-pulumi-shell.nix
+++ b/pkgs/tools/admin/pulumi/update-pulumi-shell.nix
@@ -5,4 +5,3 @@ mkShell {
     pkgs.gh
   ];
 }
-
diff --git a/pkgs/tools/admin/pulumi/update.sh b/pkgs/tools/admin/pulumi/update.sh
index 1097759c3bd6d..0c8a3b38294dc 100755
--- a/pkgs/tools/admin/pulumi/update.sh
+++ b/pkgs/tools/admin/pulumi/update.sh
@@ -12,7 +12,7 @@ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
 
 # Version of Pulumi from
 # https://www.pulumi.com/docs/get-started/install/versions/
-VERSION="3.31.0"
+VERSION="3.34.1"
 
 # An array of plugin names. The respective repository inside Pulumi's
 # Github organization is called pulumi-$name by convention.
@@ -109,8 +109,6 @@ function genSrcs() {
   local tmpdir
   tmpdir="$(mktemp -d)"
 
-  local i=0
-
   for plugVers in "${plugins[@]}"; do
     local plug=${plugVers%=*}
     local version=${plugVers#*=}
@@ -118,7 +116,6 @@ function genSrcs() {
     # https://github.com/pulumi/pulumi/blob/06d4dde8898b2a0de2c3c7ff8e45f97495b89d82/pkg/workspace/plugins.go#L197
     local url="https://api.pulumi.com/releases/plugins/pulumi-resource-${plug}-v${version}-${1}-${2}.tar.gz"
     genSrc "${url}" "${plug}" "${tmpdir}" &
-    ((++i))
   done
 
   wait
diff --git a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
index 4f990c5380863..b1d22d5ee3cb1 100644
--- a/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
+++ b/pkgs/tools/admin/realvnc-vnc-viewer/default.nix
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "VNC remote desktop client software by RealVNC";
     homepage = "https://www.realvnc.com/en/connect/download/viewer/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = {
       fullName = "VNC Connect End User License Agreement";
       url = "https://static.realvnc.com/media/documents/LICENSE-4.0a_en.pdf";
diff --git a/pkgs/tools/admin/salt/0001-Fix-Jinja2-3.1.0.patch b/pkgs/tools/admin/salt/0001-Fix-Jinja2-3.1.0.patch
deleted file mode 100644
index bdcc82c708dfa..0000000000000
--- a/pkgs/tools/admin/salt/0001-Fix-Jinja2-3.1.0.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0a763a13ef55964395dff60283ececc16f957792 Mon Sep 17 00:00:00 2001
-From: Derek Kulinski <d@kulinski.us>
-Date: Sun, 8 May 2022 01:30:39 -0700
-Subject: [PATCH] Fix Jinja2 3.1.0
-
----
- salt/utils/jinja.py | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/salt/utils/jinja.py b/salt/utils/jinja.py
-index 0cb70bf64a..322c2f7f46 100644
---- a/salt/utils/jinja.py
-+++ b/salt/utils/jinja.py
-@@ -25,10 +25,11 @@ import salt.utils.json
- import salt.utils.stringutils
- import salt.utils.url
- import salt.utils.yaml
--from jinja2 import BaseLoader, Markup, TemplateNotFound, nodes
-+from jinja2 import BaseLoader, TemplateNotFound, nodes
- from jinja2.environment import TemplateModule
- from jinja2.exceptions import TemplateRuntimeError
- from jinja2.ext import Extension
-+from markupsafe import Markup
- from salt.exceptions import TemplateError
- from salt.utils.decorators.jinja import jinja_filter, jinja_global, jinja_test
- from salt.utils.odict import OrderedDict
-@@ -706,7 +707,7 @@ def method_call(obj, f_name, *f_args, **f_kwargs):
-     return getattr(obj, f_name, lambda *args, **kwargs: None)(*f_args, **f_kwargs)
- 
- 
--@jinja2.contextfunction
-+@jinja2.pass_context
- def show_full_context(ctx):
-     return salt.utils.data.simple_types_filter(
-         {key: value for key, value in ctx.items()}
--- 
-2.35.1
-
diff --git a/pkgs/tools/admin/salt/default.nix b/pkgs/tools/admin/salt/default.nix
index b59bc46e9c2be..bac3bca4cc6b5 100644
--- a/pkgs/tools/admin/salt/default.nix
+++ b/pkgs/tools/admin/salt/default.nix
@@ -8,11 +8,11 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "salt";
-  version = "3004.1";
+  version = "3004.2";
 
   src = python3.pkgs.fetchPypi {
     inherit pname version;
-    hash = "sha256-fzRKJDJkik8HjapazMaNzf/hCVzqE+wh5QQTVg8Ewpg=";
+    hash = "sha256-L6ZE9iANTja1WEbLNytuZ7bKD77AaX8djXPncbZl7XA=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
@@ -29,9 +29,6 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     ./fix-libcrypto-loading.patch
-
-    # Bug in 3004.1: https://github.com/saltstack/salt/pull/61856
-    ./0001-Fix-Jinja2-3.1.0.patch
   ];
 
   postPatch = ''
diff --git a/pkgs/tools/admin/syft/default.nix b/pkgs/tools/admin/syft/default.nix
index 73c2553ba71b6..6895129363952 100644
--- a/pkgs/tools/admin/syft/default.nix
+++ b/pkgs/tools/admin/syft/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "syft";
-  version = "0.46.3";
+  version = "0.49.0";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4Yo9CIAVEOtAvsvGzSXerTwCbvylo7MjwJwWU6uJAX8=";
+    sha256 = "sha256-VsiQa3W/5eG5/U4sGRvYPa0MDYrayXIJtbutPnH/vUI=";
     # 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;
@@ -20,7 +20,7 @@ buildGoModule rec {
       find "$out" -name .git -print0 | xargs -0 rm -rf
     '';
   };
-  vendorSha256 = "sha256-K4bPldGOQVkmAavEbVxMjOhiHgfSrNpQ2ljFLqyceCw=";
+  vendorSha256 = "sha256-NENKogPlp6upMkRULnkkqMep9U7cI+CR+6TDF38T2vk=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/admin/trinsic-cli/default.nix b/pkgs/tools/admin/trinsic-cli/default.nix
index d6e6d6f100c56..907516ce3655b 100644
--- a/pkgs/tools/admin/trinsic-cli/default.nix
+++ b/pkgs/tools/admin/trinsic-cli/default.nix
@@ -2,11 +2,11 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "trinsic-cli";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchurl {
     url = "https://github.com/trinsic-id/sdk/releases/download/v${version}/trinsic-cli-vendor-${version}.tar.gz";
-    sha256 = "sha256-Dxmjbd1Q2JNeET22Fte7bygd+oH3ZfovRTJh5xforuw=";
+    sha256 = "sha256-Z9orGhxbu/ehyaYhY35lYWcZQWNVk+zLSoqwAZwnpLY=";
   };
 
   cargoVendorDir = "vendor";
diff --git a/pkgs/tools/admin/trivy/default.nix b/pkgs/tools/admin/trivy/default.nix
index 1208fcc5eba5e..7488ad331bcb8 100644
--- a/pkgs/tools/admin/trivy/default.nix
+++ b/pkgs/tools/admin/trivy/default.nix
@@ -6,15 +6,15 @@
 
 buildGoModule rec {
   pname = "trivy";
-  version = "0.28.1";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "aquasecurity";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-x9mojwA86zgXRwKDp1kIh5/LRdHjm02119CKYlIkZgw=";
+    sha256 = "sha256-L1MjPgypKWVTdR16grloRY1JoJ6giXqihsWFa8yWXd0=";
   };
-  vendorSha256 = "sha256-7rX4j188IXhSS4E4NStAsJq4FEfAFxIys7jucDCCe+4=";
+  vendorSha256 = "sha256-wM8OOOVw8Pb37/JMpz0AWbpJyHeDBQ0+DO15AiDduUU=";
 
   excludedPackages = "misc";
 
diff --git a/pkgs/tools/admin/winbox/default.nix b/pkgs/tools/admin/winbox/default.nix
index ae55eb4ed69e9..24f28dbd27141 100644
--- a/pkgs/tools/admin/winbox/default.nix
+++ b/pkgs/tools/admin/winbox/default.nix
@@ -70,6 +70,7 @@ symlinkJoin {
     homepage = "https://mikrotik.com";
     downloadPage = "https://mikrotik.com/download";
     changelog = "https://wiki.mikrotik.com/wiki/Winbox_changelog";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ yrd ];
   };
diff --git a/pkgs/tools/archivers/7zz/default.nix b/pkgs/tools/archivers/7zz/default.nix
index b734232ca053f..4f41a09304fb8 100644
--- a/pkgs/tools/archivers/7zz/default.nix
+++ b/pkgs/tools/archivers/7zz/default.nix
@@ -26,13 +26,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "7zz";
-  version = "21.07";
+  version = "22.00";
 
   src = fetchurl {
     url = "https://7-zip.org/a/7z${lib.replaceStrings [ "." ] [ "" ] version}-src.tar.xz";
-    sha256 = {
-      free = "sha256-SMM6kQ6AZ05s4miJjMoE4NnsXQ0tlkdWx0q2HKjhaM8=";
-      unfree = "sha256-IT1ZRAfLjvy6NmELFSykkh7aFBYzELQ5A9E+aDE+Hjk=";
+    hash = {
+      free = "sha256-QzGZgPxHobGwstFfVRtb4V+hqMM7dMIy2/EZcJ2aZe8=";
+      unfree = "sha256-QJafYB6Gr/Saqgug31zm/Tl89+JoOoS1kbAIHkYe9nU=";
     }.${if enableUnfree then "unfree" else "free"};
     downloadToTemp = (!enableUnfree);
     # remove the unRAR related code from the src drv
diff --git a/pkgs/tools/archivers/rar/default.nix b/pkgs/tools/archivers/rar/default.nix
index 6f47992b512c0..7a5fd320c9480 100644
--- a/pkgs/tools/archivers/rar/default.nix
+++ b/pkgs/tools/archivers/rar/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Utility for RAR archives";
     homepage = "https://www.rarlab.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ thiagokokada ];
     platforms = with platforms; linux ++ darwin;
diff --git a/pkgs/tools/archivers/unrar/default.nix b/pkgs/tools/archivers/unrar/default.nix
index b988a135e4548..16756bf91fbe1 100644
--- a/pkgs/tools/archivers/unrar/default.nix
+++ b/pkgs/tools/archivers/unrar/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "unrar";
-  version = "6.1.6";
+  version = "6.1.7";
 
   src = fetchurl {
     url = "https://www.rarlab.com/rar/unrarsrc-${version}.tar.gz";
-    sha256 = "sha256-Z/SriRwGIhjCut+qycjKtci/1eltq/ylbI+qPSCagB0=";
+    hash = "sha256-3nW2E2lYFz/fxTDTigFFtyNCzw04Qr97sSDTNmAtiO0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/audio/abcmidi/default.nix b/pkgs/tools/audio/abcmidi/default.nix
index 961234fed493b..17b83a0913193 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 = "2022.06.07";
+  version = "2022.06.14";
 
   src = fetchzip {
     url = "https://ifdo.ca/~seymour/runabc/${pname}-${version}.zip";
-    hash = "sha256-gMEqcdpJ4dFnxmGJHayM6ZH+n6osHvZ8Tlxk0Vvm1qI=";
+    hash = "sha256-dmd0iPRKm5/GNz3VJ9pJgYiCSTENB0ZAOt3rLjujlYs=";
   };
 
   meta = with lib; {
diff --git a/pkgs/tools/audio/liquidsoap/full.nix b/pkgs/tools/audio/liquidsoap/full.nix
index 73e9bf51636e2..b390c943cd2a7 100644
--- a/pkgs/tools/audio/liquidsoap/full.nix
+++ b/pkgs/tools/audio/liquidsoap/full.nix
@@ -7,14 +7,14 @@
 
 let
   pname = "liquidsoap";
-  version = "2.0.5";
+  version = "2.0.6";
 in
 stdenv.mkDerivation {
   inherit pname version;
 
   src = fetchurl {
     url = "https://github.com/savonet/${pname}/releases/download/v${version}/${pname}-${version}.tar.bz2";
-    sha256 = "sha256-+BHRAnO2sKK504EhXc6LPabnOzcOAAHmtmqVNQ8OeZU=";
+    sha256 = "sha256-1wD9BApbDA/ovzZoniay+jciP/V2C8EoGQehd5N8PPQ=";
   };
 
   postFixup = ''
diff --git a/pkgs/tools/audio/mpd-discord-rpc/default.nix b/pkgs/tools/audio/mpd-discord-rpc/default.nix
index f7cdf52f44a2e..cbaeb9e01145c 100644
--- a/pkgs/tools/audio/mpd-discord-rpc/default.nix
+++ b/pkgs/tools/audio/mpd-discord-rpc/default.nix
@@ -2,20 +2,26 @@
 , lib
 , rustPlatform
 , fetchFromGitHub
+, pkg-config
+, openssl
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "mpd-discord-rpc";
-  version = "1.4.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
     owner = "JakeStanger";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-CdgR9G598LmxA9lhY6yppP3ZZUhTqgMcWccEhSuCcJQ=";
+    sha256 = "sha256-/QWIoP6KcrI8cYTh3x2lQz7nPSvzb1zRWg8TFoYY9vE=";
   };
 
-  cargoSha256 = "sha256-WhlVWQCUGP+K9md0yp6ZD6mGYMso1fUYKDuXXrC2FeI=";
+  cargoSha256 = "sha256-46PS1+ud7GYuMOJMp93Hf7+nlngvgL67zedaF44TcYY=";
+
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [ openssl ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/tools/backup/borgmatic/default.nix b/pkgs/tools/backup/borgmatic/default.nix
index 904e64704c90a..a63cdcda7cb8a 100644
--- a/pkgs/tools/backup/borgmatic/default.nix
+++ b/pkgs/tools/backup/borgmatic/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "borgmatic";
-  version = "1.5.18";
+  version = "1.6.4";
 
   src = python3Packages.fetchPypi {
     inherit pname version;
-    sha256 = "sha256-dX1U1zza8zMhDiTLE+DgtN6RLRciLks4NDOukpKH/po=";
+    sha256 = "sha256-2kQ+KO69RxpIQkrkD6n7l9ti9ITwdpHYK7LuXYUo3ck=";
   };
 
   checkInputs = with python3Packages; [ flexmock pytestCheckHook pytest-cov ];
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 92642973d45b3..f4f2a2630098e 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -9,12 +9,12 @@
 with lib;
 
 stdenv.mkDerivation rec {
-  version = "2.7.5";
+  version = "2.7.6";
   pname = "dar";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${pname}-${version}.tar.gz";
-    sha256 = "sha256-lfpJOomadV/oTJsOloH1rYF5Wy3kVr+EBUvqZ+xaCWY=";
+    sha256 = "sha256-PV5ESJE1B2gQnX6QUeJgOb3rkG3jApTn4NcRBbh9bao=";
   };
 
   outputs = [ "out" "dev" ];
diff --git a/pkgs/tools/backup/duplicity/default.nix b/pkgs/tools/backup/duplicity/default.nix
index 95e29686f24e6..46f841c8f5b3b 100644
--- a/pkgs/tools/backup/duplicity/default.nix
+++ b/pkgs/tools/backup/duplicity/default.nix
@@ -70,7 +70,6 @@ pythonPackages.buildPythonApplication rec {
 
   pythonPath = with pythonPackages; [
     b2sdk
-    boto
     boto3
     cffi
     cryptography
diff --git a/pkgs/tools/backup/gphotos-sync/default.nix b/pkgs/tools/backup/gphotos-sync/default.nix
index 515bfc31cf291..cdcc824c535de 100644
--- a/pkgs/tools/backup/gphotos-sync/default.nix
+++ b/pkgs/tools/backup/gphotos-sync/default.nix
@@ -1,54 +1,80 @@
 { lib
 , fetchFromGitHub
-, python3Packages
+, fetchpatch
+, python3
 , ffmpeg
 }:
-
-python3Packages.buildPythonApplication rec {
+let
+  py = python3.override {
+    packageOverrides = self: super: {
+      google-auth-oauthlib = super.google-auth-oauthlib.overridePythonAttrs (oldAttrs: rec {
+        version = "0.5.2b1";
+        src = fetchFromGitHub {
+          owner = "gilesknap";
+          repo = "google-auth-library-python-oauthlib";
+          rev = "v${version}";
+          hash = "sha256-o4Jakm/JgLszumrSoTTnU+nc79Ei70abjpmn614qGyc=";
+        };
+      });
+    };
+  };
+in
+py.pkgs.buildPythonApplication rec {
   pname = "gphotos-sync";
-  version = "2.14.2";
+  version = "3.04";
+  format = "pyproject";
+
+  SETUPTOOLS_SCM_PRETEND_VERSION = version;
 
   src = fetchFromGitHub {
     owner = "gilesknap";
     repo = "gphotos-sync";
     rev = version;
-    sha256 = "0cfmbrdy6w18hb623rjn0a4hnn3n63jw2jlmgn4a2k1sjqhpx3bf";
+    sha256 = "0mnlnqmlh3n1b6fjwpx2byl1z41vgghjb95598kz5gvdi95iirrs";
   };
 
-  propagatedBuildInputs = with python3Packages; [
+  patches = [
+    ./skip-network-tests.patch
+  ];
+
+  propagatedBuildInputs = with py.pkgs; [
     appdirs
     attrs
     exif
+    google-auth-oauthlib
     psutil
     pyyaml
     requests-oauthlib
+    types-pyyaml
+    types-requests
   ];
 
+  postPatch = ''
+    # this is a patched release that we include via packageOverrides above
+    substituteInPlace setup.cfg \
+      --replace " @ https://github.com/gilesknap/google-auth-library-python-oauthlib/archive/refs/tags/v0.5.2b1.zip" ""
+  '';
+
   buildInputs = [
     ffmpeg
   ];
 
-  checkInputs = with python3Packages; [
-    pytestCheckHook
+  checkInputs = with py.pkgs; [
     mock
+    pytestCheckHook
+    setuptools-scm
   ];
 
-  checkPhase = ''
+  preCheck = ''
     export HOME=$(mktemp -d)
-
-    # patch to skip all tests that do network access
-    cat >>test/test_setup.py <<EOF
-    import pytest, requests
-    requests.Session.__init__ = lambda *args, **kwargs: pytest.skip("no network access")
-    EOF
-
-    pytestCheckPhase
+    substituteInPlace setup.cfg \
+      --replace "--cov=gphotos_sync --cov-report term --cov-report xml:cov.xml" ""
   '';
 
   meta = with lib; {
     description = "Google Photos and Albums backup with Google Photos Library API";
     homepage = "https://github.com/gilesknap/gphotos-sync";
-    license = licenses.mit;
+    license = licenses.asl20;
     maintainers = with maintainers; [ dnr ];
   };
 }
diff --git a/pkgs/tools/backup/gphotos-sync/skip-network-tests.patch b/pkgs/tools/backup/gphotos-sync/skip-network-tests.patch
new file mode 100644
index 0000000000000..6f78ed7db3f21
--- /dev/null
+++ b/pkgs/tools/backup/gphotos-sync/skip-network-tests.patch
@@ -0,0 +1,21 @@
+diff --git a/tests/test_setup.py b/tests/test_setup.py
+index 085b110..ea4a7d2 100644
+--- a/tests/test_setup.py
++++ b/tests/test_setup.py
+@@ -45,7 +45,8 @@ class SetupDbAndCredentials:
+         return self
+ 
+     def __exit__(self, exc_type=None, exc_value=None, traceback=None):
+-        self.gp.google_photos_down.close()
++        if hasattr(self.gp, 'google_photos_down'):
++            self.gp.google_photos_down.close()
+ 
+     def test_setup(self, test_name, args=None, trash_db=False, trash_files=False):
+         self.root = Path("/tmp/gpTests/{}".format(test_name))
+@@ -76,3 +77,6 @@ class SetupDbAndCredentials:
+ 
+     def test_done(self):
+         self.gp.data_store.store()
++
++import pytest, requests
++requests.Session.__init__ = lambda *args, **kwargs: pytest.skip("no network access")
diff --git a/pkgs/tools/backup/rsbep/default.nix b/pkgs/tools/backup/rsbep/default.nix
index 7f59b0af94448..b30ddddb2b07f 100644
--- a/pkgs/tools/backup/rsbep/default.nix
+++ b/pkgs/tools/backup/rsbep/default.nix
@@ -41,6 +41,6 @@ stdenv.mkDerivation rec {
     description = "Create resilient backups with Reed-Solomon error correction and byte-spreading";
     homepage = "https://www.thanassis.space/rsbep.html";
     license = licenses.gpl3Plus;
-    maintainers = [ maintainers.earvstedt ];
+    maintainers = [ maintainers.erikarvstedt ];
   };
 }
diff --git a/pkgs/tools/backup/tsm-client/default.nix b/pkgs/tools/backup/tsm-client/default.nix
index 441b8bdd005d0..eb80f33bcd7a4 100644
--- a/pkgs/tools/backup/tsm-client/default.nix
+++ b/pkgs/tools/backup/tsm-client/default.nix
@@ -72,6 +72,7 @@ let
     downloadPage = "https://www.ibm.com/support/pages/ibm-spectrum-protect-downloads-latest-fix-packs-and-interim-fixes";
     platforms = [ "x86_64-linux" ];
     mainProgram = "dsmc";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     maintainers = [ lib.maintainers.yarny ];
     description = "IBM Spectrum Protect (Tivoli Storage Manager) CLI and API";
diff --git a/pkgs/tools/backup/zfsbackup/default.nix b/pkgs/tools/backup/zfsbackup/default.nix
index ff47ce47edef1..332ad619a431d 100644
--- a/pkgs/tools/backup/zfsbackup/default.nix
+++ b/pkgs/tools/backup/zfsbackup/default.nix
@@ -1,26 +1,34 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, zfs
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "zfsbackup";
-  version = "unstable-2020-09-30";
-  rev = "092f80846b23e02f99d2aa72d9d889eabfdcb053";
-
-  goPackagePath = "github.com/someone1/zfsbackup-go";
+  version = "unstable-2021-05-26";
+  rev = "2d4534b920d3c57552667e1c6da9978b3a9278f0";
 
   src = fetchFromGitHub {
     owner = "someone1";
     repo = "zfsbackup-go";
     inherit rev;
-    sha256 = "1xiacaf4r9jkx0m8wjfis14cq622yhljldwkflh9ni3khax7dlgi";
+    sha256 = "sha256-slVwXXGLvq+eAlqzD8p1fnc17CGUBY0Z68SURBBuf2k=";
   };
 
-  goDeps = ./deps.nix;
+  vendorSha256 = "sha256-jpxp8RKDBrkBBaY89QnKYGWFI/DUURUVX8cPJ/qoLrg=";
+
+  ldflags = [ "-w" "-s" ];
+
+  # Tests require loading the zfs kernel module.
+  doCheck = false;
 
   meta = with lib; {
     description = "Backup ZFS snapshots to cloud storage such as Google, Amazon, Azure, etc";
     homepage = "https://github.com/someone1/zfsbackup-go";
     license = licenses.mit;
-    maintainers = [ maintainers.xfix ];
+    maintainers = with maintainers; [ xfix ];
+    platforms = platforms.linux;
     mainProgram = "zfsbackup-go";
   };
 }
diff --git a/pkgs/tools/backup/zfsbackup/deps.nix b/pkgs/tools/backup/zfsbackup/deps.nix
deleted file mode 100644
index 28be9fa141cf9..0000000000000
--- a/pkgs/tools/backup/zfsbackup/deps.nix
+++ /dev/null
@@ -1,1326 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "cloud.google.com/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-cloud-go";
-      rev = "v0.57.0";
-      sha256 = "0lcq68h0x56qb14yx2df584ad0g9s1s19py813dy9nzqp0bmjig8";
-    };
-  }
-  {
-    goPackagePath = "dmitri.shuralyov.com/gpu/mtl";
-    fetch = {
-      type = "git";
-      url = "https://dmitri.shuralyov.com/gpu/mtl";
-      rev = "666a987793e9";
-      sha256 = "1isd03hgiwcf2ld1rlp0plrnfz7r4i7c5q4kb6hkcd22axnmrv0z";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-pipeline-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-pipeline-go";
-      rev = "v0.2.2";
-      sha256 = "1agn2nzmm1dkwggm4w7h4bnrav4n5jrl0vqbqy2s49vqlr8zirn6";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-sdk-for-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-sdk-for-go";
-      rev = "v42.3.0";
-      sha256 = "1nqxpifrr8n17irkfzhx253b17cwd15x4vfqxx80l5y7dn0jqavq";
-    };
-  }
-  {
-    goPackagePath = "github.com/Azure/azure-storage-blob-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/Azure/azure-storage-blob-go";
-      rev = "v0.8.0";
-      sha256 = "00gsnk9s1rlrakqvcm917hn4r47jannxwp7rkhrb71pamzm46752";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/toml";
-      rev = "v0.3.1";
-      sha256 = "1fjdwwfzyzllgiwydknf1pwjvy49qxfsczqx5gz3y0izs7as99j6";
-    };
-  }
-  {
-    goPackagePath = "github.com/BurntSushi/xgb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/BurntSushi/xgb";
-      rev = "27f122750802";
-      sha256 = "18lp2x8f5bljvlz0r7xn744f0c9rywjsb9ifiszqqdcpwhsa0kvj";
-    };
-  }
-  {
-    goPackagePath = "github.com/OneOfOne/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/OneOfOne/xxhash";
-      rev = "v1.2.2";
-      sha256 = "1mjfhrwhvxa48rycjnqpqzm521i38h1hdyz6pdwmhd7xb8j6gwi6";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/template";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/template";
-      rev = "a0175ee3bccc";
-      sha256 = "0qjgvvh26vk1cyfq9fadyhfgdj36f1iapbmr5xp6zqipldz8ffxj";
-    };
-  }
-  {
-    goPackagePath = "github.com/alecthomas/units";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/units";
-      rev = "2efee857e7cf";
-      sha256 = "1j65b91qb9sbrml9cpabfrcf07wmgzzghrl7809hjjhrmbzri5bl";
-    };
-  }
-  {
-    goPackagePath = "github.com/armon/consul-api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/armon/consul-api";
-      rev = "eb2c6b5be1b6";
-      sha256 = "1j6fdr1sg36qy4n4xjl7brq739fpm5npq98cmvklzjc9qrx98nk9";
-    };
-  }
-  {
-    goPackagePath = "github.com/aws/aws-sdk-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/aws/aws-sdk-go";
-      rev = "v1.31.4";
-      sha256 = "07ia78j6j2y139iq9x5gin0fwc77wv8x0zhg47kibykxn4iyx85y";
-    };
-  }
-  {
-    goPackagePath = "github.com/beorn7/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/beorn7/perks";
-      rev = "v1.0.0";
-      sha256 = "1i1nz1f6g55xi2y3aiaz5kqfgvknarbfl4f0sx4nyyb4s7xb1z9x";
-    };
-  }
-  {
-    goPackagePath = "github.com/cenkalti/backoff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cenkalti/backoff";
-      rev = "v2.2.1";
-      sha256 = "1mf4lsl3rbb8kk42x0mrhzzy4ikqy0jf6nxpzhkr02rdgwh6rjk8";
-    };
-  }
-  {
-    goPackagePath = "github.com/census-instrumentation/opencensus-proto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-proto";
-      rev = "v0.2.1";
-      sha256 = "19fcx3sc99i5dsklny6r073z5j20vlwn2xqm6di1q3b1xwchzqfj";
-    };
-  }
-  {
-    goPackagePath = "github.com/cespare/xxhash";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cespare/xxhash";
-      rev = "v1.1.0";
-      sha256 = "1qyzlcdcayavfazvi03izx83fvip8h36kis44zr2sg7xf6sx6l4x";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/logex";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/logex";
-      rev = "v1.1.10";
-      sha256 = "08pbjj3wx9acavlwyr055isa8a5hnmllgdv5k6ra60l5y1brmlq4";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/readline";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/readline";
-      rev = "2972be24d48e";
-      sha256 = "104q8dazj8yf6b089jjr82fy9h1g80zyyzvp3g8b44a7d8ngjj6r";
-    };
-  }
-  {
-    goPackagePath = "github.com/chzyer/test";
-    fetch = {
-      type = "git";
-      url = "https://github.com/chzyer/test";
-      rev = "a1ea475d72b1";
-      sha256 = "0rns2aqk22i9xsgyap0pq8wi4cfaxsri4d9q6xxhhyma8jjsnj2k";
-    };
-  }
-  {
-    goPackagePath = "github.com/client9/misspell";
-    fetch = {
-      type = "git";
-      url = "https://github.com/client9/misspell";
-      rev = "v0.3.4";
-      sha256 = "1vwf33wsc4la25zk9nylpbp9px3svlmldkm0bha4hp56jws4q9cs";
-    };
-  }
-  {
-    goPackagePath = "github.com/cncf/udpa";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cncf/udpa";
-      rev = "269d4d468f6f";
-      sha256 = "0i1jiaw2k3hlwwmg4hap81vb4s1p25xp9kdfww37v0fbgjariccs";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/bbolt";
-      rev = "v1.3.2";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/etcd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/etcd";
-      rev = "v3.3.10";
-      sha256 = "1x2ii1hj8jraba8rbxz6dmc03y3sjxdnzipdvg6fywnlq1f3l3wl";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-semver";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-semver";
-      rev = "v0.2.0";
-      sha256 = "1gghi5bnqj50hfxhqc1cxmynqmh2yk9ii7ab9gsm75y5cp94ymk0";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/go-systemd";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/go-systemd";
-      rev = "95778dfbb74e";
-      sha256 = "1s3bg9p78wkixn2bqb2p23wbsqfg949ml6crw2b498s71mwh8rcf";
-    };
-  }
-  {
-    goPackagePath = "github.com/coreos/pkg";
-    fetch = {
-      type = "git";
-      url = "https://github.com/coreos/pkg";
-      rev = "399ea9e2e55f";
-      sha256 = "0nxbn0m7lr4dg0yrwnvlkfiyg3ndv8vdpssjx7b714nivpc6ar0y";
-    };
-  }
-  {
-    goPackagePath = "github.com/cpuguy83/go-md2man";
-    fetch = {
-      type = "git";
-      url = "https://github.com/cpuguy83/go-md2man";
-      rev = "v2.0.0";
-      sha256 = "0r1f7v475dxxgzqci1mxfliwadcrk86ippflx9n411325l4g3ghv";
-    };
-  }
-  {
-    goPackagePath = "github.com/davecgh/go-spew";
-    fetch = {
-      type = "git";
-      url = "https://github.com/davecgh/go-spew";
-      rev = "v1.1.1";
-      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgrijalva/jwt-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgrijalva/jwt-go";
-      rev = "v3.2.0";
-      sha256 = "08m27vlms74pfy5z79w67f9lk9zkx6a9jd68k3c4msxy75ry36mp";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-sip13";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-sip13";
-      rev = "e10d5fee7954";
-      sha256 = "15fyibfas209ljz3f7g07kdmfbl3hhyd9n5n7aq5n5p9m5mn41d6";
-    };
-  }
-  {
-    goPackagePath = "github.com/dnaeon/go-vcr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dnaeon/go-vcr";
-      rev = "v1.0.1";
-      sha256 = "1d0kpqr12qrqlamz5a47bp05mx49za2v6l1k7c6z71xahfmb7v2d";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "v1.0.0";
-      sha256 = "1kqf1kavdyvjk7f8kx62pnm7fbypn9z1vbf8v2qdh3y7z7a0cbl3";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/go-control-plane";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/go-control-plane";
-      rev = "v0.9.4";
-      sha256 = "0m0crzx70lp7vz13v20wxb1fcfdnzp7h3mkh3bn6a8mbfz6w5asj";
-    };
-  }
-  {
-    goPackagePath = "github.com/envoyproxy/protoc-gen-validate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/envoyproxy/protoc-gen-validate";
-      rev = "v0.1.0";
-      sha256 = "0kxd3wwh3xwqk0r684hsy281xq4y71cd11d4q2hspcjbnlbwh7cy";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "v1.4.7";
-      sha256 = "07va9crci0ijlivbb7q57d2rz9h27zgn2fsm60spjsqpdbvyrx4g";
-    };
-  }
-  {
-    goPackagePath = "github.com/ghodss/yaml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ghodss/yaml";
-      rev = "v1.0.0";
-      sha256 = "0skwmimpy7hlh7pva2slpcplnm912rp3igs98xnqmn859kwa5v8g";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-gl/glfw";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-gl/glfw";
-      rev = "6f7a984d4dc4";
-      sha256 = "1nyv7h08qf4dp8w9pmcnrc6vv9bkwj8fil6pz0mkbss5hf4i8xcq";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-kit/kit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-kit/kit";
-      rev = "v0.8.0";
-      sha256 = "1rcywbc2pvab06qyf8pc2rdfjv7r6kxdv2v4wnpqnjhz225wqvc0";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-logfmt/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-logfmt/logfmt";
-      rev = "v0.4.0";
-      sha256 = "06smxc112xmixz78nyvk3b2hmc7wasf2sl5vxj1xz62kqcq9lzm9";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-sql-driver/mysql";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-sql-driver/mysql";
-      rev = "v1.5.0";
-      sha256 = "11x0m9yf3kdnf6981182r824psgxwfaqhn3x3in4yiidp0w0hk3v";
-    };
-  }
-  {
-    goPackagePath = "github.com/go-stack/stack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/go-stack/stack";
-      rev = "v1.8.0";
-      sha256 = "0wk25751ryyvxclyp8jdk5c3ar0cmfr8lrjb66qbg4808x66b96v";
-    };
-  }
-  {
-    goPackagePath = "github.com/gogo/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gogo/protobuf";
-      rev = "v1.2.1";
-      sha256 = "06yqa6h0kw3gr5pc3qmas7f7435a96zf7iw7p0l00r2hqf6fqq6m";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/glog";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/glog";
-      rev = "23def4e6c14b";
-      sha256 = "0jb2834rw5sykfr937fxi8hxi2zy80sj2bdn9b3jb4b26ksqng30";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/groupcache";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/groupcache";
-      rev = "8c9f03a8e57e";
-      sha256 = "0vjjr79r32icjzlb05wn02k59av7jx0rn1jijml8r4whlg7dnkfh";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/mock";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/mock";
-      rev = "v1.4.3";
-      sha256 = "1p37xnja1dgq5ykx24n7wincwz2gahjh71b95p8vpw7ss2g8j8wx";
-    };
-  }
-  {
-    goPackagePath = "github.com/golang/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/protobuf";
-      rev = "v1.4.1";
-      sha256 = "0w7ks4vffnnkp0miwgc3chrsnmya45lzvpahb2wmw0jwhdp5kdx7";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/btree";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/btree";
-      rev = "v1.0.0";
-      sha256 = "0ba430m9fbnagacp57krgidsyrgp3ycw5r7dj71brgp5r52g82p6";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.4.0";
-      sha256 = "1x5pvl3fb5sbyng7i34431xycnhmx8xx94gq2n19g6p0vz68z2v2";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/martian";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/martian";
-      rev = "v2.1.0";
-      sha256 = "197hil6vrjk50b9wvwyzf61csid83whsjj6ik8mc9r2lryxlyyrp";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/pprof";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/pprof";
-      rev = "fc25d7d30c6d";
-      sha256 = "0ba28qx2i1bi6n6x5g670v8hmqavwj8lwl8psnc6vzagmdhjw0vg";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/renameio";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/renameio";
-      rev = "v0.1.0";
-      sha256 = "1ki2x5a9nrj17sn092d6n4zr29lfg5ydv4xz5cp58z6cw8ip43jx";
-    };
-  }
-  {
-    goPackagePath = "github.com/googleapis/gax-go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/gax-go";
-      rev = "v2.0.5";
-      sha256 = "1lxawwngv6miaqd25s3ba0didfzylbwisd2nz7r4gmbmin6jsjrx";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/websocket";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/websocket";
-      rev = "v1.4.0";
-      sha256 = "00i4vb31nsfkzzk7swvx3i75r2d960js3dri1875vypk3v2s0pzk";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-middleware";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-middleware";
-      rev = "v1.0.0";
-      sha256 = "0lwgxih021xfhfb1xb9la5f98bpgpaiz63sbllx77qwwl2rmhrsp";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/go-grpc-prometheus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/go-grpc-prometheus";
-      rev = "v1.2.0";
-      sha256 = "1lzk54h7np32b3acidg1ggbn8ppbnns0m71gcg9d1qkkdh8zrijl";
-    };
-  }
-  {
-    goPackagePath = "github.com/grpc-ecosystem/grpc-gateway";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc-ecosystem/grpc-gateway";
-      rev = "v1.9.0";
-      sha256 = "1r4y48c76yxc2hpqszfjirvh7zxjb6z72qmk95li12ar79dhv3dy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/golang-lru";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/golang-lru";
-      rev = "v0.5.1";
-      sha256 = "13f870cvk161bzjj6x41l45r5x9i1z9r2ymwmvm7768kg08zznpy";
-    };
-  }
-  {
-    goPackagePath = "github.com/hashicorp/hcl";
-    fetch = {
-      type = "git";
-      url = "https://github.com/hashicorp/hcl";
-      rev = "v1.0.0";
-      sha256 = "0q6ml0qqs0yil76mpn4mdx4lp94id8vbv575qm60jzl1ijcl5i66";
-    };
-  }
-  {
-    goPackagePath = "github.com/ianlancetaylor/demangle";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ianlancetaylor/demangle";
-      rev = "5e5cf60278f6";
-      sha256 = "1fhjk11cip9c3jyj1byz9z77n6n2rlxmyz0xjx1zpn1da3cvri75";
-    };
-  }
-  {
-    goPackagePath = "github.com/inconshreveable/mousetrap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/inconshreveable/mousetrap";
-      rev = "v1.0.0";
-      sha256 = "1mn0kg48xkd74brf48qf5hzp0bc6g8cf5a77w895rl3qnlpfw152";
-    };
-  }
-  {
-    goPackagePath = "github.com/jmespath/go-jmespath";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jmespath/go-jmespath";
-      rev = "v0.3.0";
-      sha256 = "12qgp7yb7yfjxhd311kb820fcjmg7gd4hp2fc4v6x8s7121pwnjp";
-    };
-  }
-  {
-    goPackagePath = "github.com/jonboulle/clockwork";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jonboulle/clockwork";
-      rev = "v0.1.0";
-      sha256 = "1pqxhsdavbp1n5grgyx2j6ylvql2fzn2cvpsgkc8li69dil7sibl";
-    };
-  }
-  {
-    goPackagePath = "github.com/jstemmer/go-junit-report";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jstemmer/go-junit-report";
-      rev = "v0.9.1";
-      sha256 = "1knip80yir1cdsjlb3rzy0a4w3kl4ljpiciaz6hjzwqlfhnv7bkw";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/ratelimit";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/ratelimit";
-      rev = "v1.0.1";
-      sha256 = "0ppwvwbh9jdpdk4f9924vw373cpfz5g5ad10c707p22a984vanrz";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "v1.2.0";
-      sha256 = "1k8bylc9s4vpvf5xhqh9h246dl1snxrzzz0614zz88cdh8yzs666";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/errcheck";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/errcheck";
-      rev = "v1.1.0";
-      sha256 = "19vd4rxmqbk5lpiav3pf7df3yjlz0l0dwx9mn0gjq5f998iyhy6y";
-    };
-  }
-  {
-    goPackagePath = "github.com/kisielk/gotool";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kisielk/gotool";
-      rev = "v1.0.0";
-      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
-    };
-  }
-  {
-    goPackagePath = "github.com/klauspost/compress";
-    fetch = {
-      type = "git";
-      url = "https://github.com/klauspost/compress";
-      rev = "v1.10.6";
-      sha256 = "0jnm5mjazxkjwzb7z6sjlqm2l68z4h4xjhir2lgfkf04rj4l290s";
-    };
-  }
-  {
-    goPackagePath = "github.com/klauspost/pgzip";
-    fetch = {
-      type = "git";
-      url = "https://github.com/klauspost/pgzip";
-      rev = "v1.2.4";
-      sha256 = "0mnhfdn0isbkra455jynqjbmrwymx09shlbzbyvgfycih3nbrif0";
-    };
-  }
-  {
-    goPackagePath = "github.com/konsorten/go-windows-terminal-sequences";
-    fetch = {
-      type = "git";
-      url = "https://github.com/konsorten/go-windows-terminal-sequences";
-      rev = "v1.0.1";
-      sha256 = "1lchgf27n276vma6iyxa0v1xds68n2g8lih5lavqnx5x6q5pw2ip";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/logfmt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/logfmt";
-      rev = "b84e30acd515";
-      sha256 = "02ldzxgznrfdzvghfraslhgp19la1fczcbzh7wm2zdc6lmpd1qq9";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pretty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pretty";
-      rev = "v0.1.0";
-      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/pty";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/pty";
-      rev = "v1.1.1";
-      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
-    };
-  }
-  {
-    goPackagePath = "github.com/kr/text";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kr/text";
-      rev = "v0.1.0";
-      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
-    };
-  }
-  {
-    goPackagePath = "github.com/kurin/blazer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/kurin/blazer";
-      rev = "v0.5.3";
-      sha256 = "18jsq7n31ycvaivpvyksbddj82spw4g29w6dx92x2wab2hzbc7ik";
-    };
-  }
-  {
-    goPackagePath = "github.com/magiconair/properties";
-    fetch = {
-      type = "git";
-      url = "https://github.com/magiconair/properties";
-      rev = "v1.8.0";
-      sha256 = "1a10362wv8a8qwb818wygn2z48lgzch940hvpv81hv8gc747ajxn";
-    };
-  }
-  {
-    goPackagePath = "github.com/mattn/go-ieproxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mattn/go-ieproxy";
-      rev = "v0.0.1";
-      sha256 = "0x1ijwwp22s20vjbca5ac7y7bx2jp6jizzqa38ks4943q7vi4w09";
-    };
-  }
-  {
-    goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matttproud/golang_protobuf_extensions";
-      rev = "v1.0.1";
-      sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
-    };
-  }
-  {
-    goPackagePath = "github.com/miolini/datacounter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miolini/datacounter";
-      rev = "v1.0.2";
-      sha256 = "0lqhdb9glx65ycjjrqqqpd28zi95qnr2sdz93y6fma0khss46c5f";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/go-homedir";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/go-homedir";
-      rev = "v1.1.0";
-      sha256 = "0ydzkipf28hwj2bfxqmwlww47khyk6d152xax4bnyh60f4lq3nx1";
-    };
-  }
-  {
-    goPackagePath = "github.com/mitchellh/mapstructure";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mitchellh/mapstructure";
-      rev = "v1.1.2";
-      sha256 = "03bpv28jz9zhn4947saqwi328ydj7f6g6pf1m2d4m5zdh5jlfkrr";
-    };
-  }
-  {
-    goPackagePath = "github.com/mwitkow/go-conntrack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mwitkow/go-conntrack";
-      rev = "cc309e4a2223";
-      sha256 = "0nbrnpk7bkmqg9mzwsxlm0y8m7s9qd9phr1q30qlx2qmdmz7c1mf";
-    };
-  }
-  {
-    goPackagePath = "github.com/nightlyone/lockfile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/nightlyone/lockfile";
-      rev = "v1.0.0";
-      sha256 = "0jzlngank7yaq5pl5mipsfglmalv9x2b9yhqr78w5dmx4hikh7kr";
-    };
-  }
-  {
-    goPackagePath = "github.com/oklog/ulid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/oklog/ulid";
-      rev = "v1.3.1";
-      sha256 = "0hybwyid820n80axrk863k2py93hbqlq6hxhf84ppmz0qd0ys0gq";
-    };
-  }
-  {
-    goPackagePath = "github.com/op/go-logging";
-    fetch = {
-      type = "git";
-      url = "https://github.com/op/go-logging";
-      rev = "970db520ece7";
-      sha256 = "1cpna2x5l071z1vrnk7zipdkka8dzwsjyx7m79xk0lr08rip0kcj";
-    };
-  }
-  {
-    goPackagePath = "github.com/pelletier/go-toml";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pelletier/go-toml";
-      rev = "v1.2.0";
-      sha256 = "1fjzpcjng60mc3a4b2ql5a00d5gah84wj740dabv9kq67mpg8fxy";
-    };
-  }
-  {
-    goPackagePath = "github.com/pkg/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pkg/errors";
-      rev = "v0.9.1";
-      sha256 = "1761pybhc2kqr6v5fm8faj08x9bql8427yqg6vnfv6nhrasx1mwq";
-    };
-  }
-  {
-    goPackagePath = "github.com/pmezard/go-difflib";
-    fetch = {
-      type = "git";
-      url = "https://github.com/pmezard/go-difflib";
-      rev = "v1.0.0";
-      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_golang";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_golang";
-      rev = "v0.9.3";
-      sha256 = "1608rm1y2p3iv8k2x7wyc6hshvpbfkv2k77hy0x870syms1g3g1p";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/client_model";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/client_model";
-      rev = "14fe0d1b01d4";
-      sha256 = "0zdmk6rbbx39cvfz0r59v2jg5sg9yd02b4pds5n5llgvivi99550";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/common";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/common";
-      rev = "v0.4.0";
-      sha256 = "00008pczafy982m59n1j31pnp41f4grbc2c40jccp52xg3m5klmr";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/procfs";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/procfs";
-      rev = "5867b95ac084";
-      sha256 = "1rahdk62ajj4zpfb3mgzjqip773la9fb0m87m7s9a0b39l3fmzvr";
-    };
-  }
-  {
-    goPackagePath = "github.com/prometheus/tsdb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/prometheus/tsdb";
-      rev = "v0.7.1";
-      sha256 = "1c1da8i5byvhh4fp3vqjfb65aaksjskn3ggb8wg9hcfzjrhgpz04";
-    };
-  }
-  {
-    goPackagePath = "github.com/rogpeppe/fastuuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rogpeppe/fastuuid";
-      rev = "6724a57986af";
-      sha256 = "12s65phfx6hxj4v0b5kj8akgrbf5mxpa101fyzw03h6hld1f70cz";
-    };
-  }
-  {
-    goPackagePath = "github.com/rogpeppe/go-internal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rogpeppe/go-internal";
-      rev = "v1.3.0";
-      sha256 = "0mcdh1licgnnahwml9y2iq6xy5x9xmjw5frcnds2s3wpjyqrl216";
-    };
-  }
-  {
-    goPackagePath = "github.com/russross/blackfriday";
-    fetch = {
-      type = "git";
-      url = "https://github.com/russross/blackfriday";
-      rev = "v2.0.1";
-      sha256 = "0nlz7isdd4rgnwzs68499hlwicxz34j2k2a0b8jy0y7ycd2bcr5j";
-    };
-  }
-  {
-    goPackagePath = "github.com/satori/go.uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satori/go.uuid";
-      rev = "v1.2.0";
-      sha256 = "1j4s5pfg2ldm35y8ls8jah4dya2grfnx2drb4jcbjsyrp4cm5yfb";
-    };
-  }
-  {
-    goPackagePath = "github.com/shurcooL/sanitized_anchor_name";
-    fetch = {
-      type = "git";
-      url = "https://github.com/shurcooL/sanitized_anchor_name";
-      rev = "v1.0.0";
-      sha256 = "1gv9p2nr46z80dnfjsklc6zxbgk96349sdsxjz05f3z6wb6m5l8f";
-    };
-  }
-  {
-    goPackagePath = "github.com/sirupsen/logrus";
-    fetch = {
-      type = "git";
-      url = "https://github.com/sirupsen/logrus";
-      rev = "v1.2.0";
-      sha256 = "0r6334x2bls8ddznvzaldx4g88msjjns4mlks95rqrrg7h0ijigg";
-    };
-  }
-  {
-    goPackagePath = "github.com/soheilhy/cmux";
-    fetch = {
-      type = "git";
-      url = "https://github.com/soheilhy/cmux";
-      rev = "v0.1.4";
-      sha256 = "1f736g68d9vwlyfb6g0fxkr0r875369xafk30cz8kaq5niaqwv0h";
-    };
-  }
-  {
-    goPackagePath = "github.com/spaolacci/murmur3";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spaolacci/murmur3";
-      rev = "f09979ecbc72";
-      sha256 = "1lv3zyz3jy2d76bhvvs8svygx66606iygdvwy5cwc0p5z8yghq25";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/afero";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/afero";
-      rev = "v1.1.2";
-      sha256 = "0miv4faf5ihjfifb1zv6aia6f6ik7h1s4954kcb8n6ixzhx9ck6k";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cast";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cast";
-      rev = "v1.3.0";
-      sha256 = "0xq1ffqj8y8h7dcnm0m9lfrh0ga7pssnn2c1dnr09chqbpn4bdc5";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/cobra";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/cobra";
-      rev = "v1.0.0";
-      sha256 = "0vbppqqhby302a5ayn0296jqr71qkcd4c9am7wzsk6z71fwdsa7h";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/jwalterweatherman";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/jwalterweatherman";
-      rev = "v1.0.0";
-      sha256 = "093fmmvavv84pv4q84hav7ph3fmrq87bvspjj899q0qsx37yvdr8";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/pflag";
-      rev = "v1.0.5";
-      sha256 = "0gpmacngd0gpslnbkzi263f5ishigzgh6pbdv9hp092rnjl4nd31";
-    };
-  }
-  {
-    goPackagePath = "github.com/spf13/viper";
-    fetch = {
-      type = "git";
-      url = "https://github.com/spf13/viper";
-      rev = "v1.4.0";
-      sha256 = "1zpzxvn13wpvbblbbn73svaq39zgxfjqhci9d68g3qf309pcfy19";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/objx";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/objx";
-      rev = "v0.1.1";
-      sha256 = "0iph0qmpyqg4kwv8jsx6a56a7hhqq8swrazv40ycxk9rzr0s8yls";
-    };
-  }
-  {
-    goPackagePath = "github.com/stretchr/testify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/stretchr/testify";
-      rev = "v1.5.1";
-      sha256 = "09r89m1wy4cjv2nps1ykp00qjpi0531r07q3s34hr7m6njk4srkl";
-    };
-  }
-  {
-    goPackagePath = "github.com/tmc/grpc-websocket-proxy";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tmc/grpc-websocket-proxy";
-      rev = "0ad062ec5ee5";
-      sha256 = "1anw4v9wspnw9xf2z5r9w0sszwjklyanl0l85wgg6nxak9gnrqp4";
-    };
-  }
-  {
-    goPackagePath = "github.com/ugorji/go";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ugorji/go";
-      rev = "v1.1.4";
-      sha256 = "0ma2qvn5wqvjidpdz74x832a813qnr1cxbx6n6n125ak9b3wbn5w";
-    };
-  }
-  {
-    goPackagePath = "github.com/xiang90/probing";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xiang90/probing";
-      rev = "43a291ad63a2";
-      sha256 = "1z22ms16j5j42775mf31isanwx2pwr1d8wqw8006dczjv36qnz5i";
-    };
-  }
-  {
-    goPackagePath = "github.com/xordataexchange/crypt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/xordataexchange/crypt";
-      rev = "b2862e3d0a77";
-      sha256 = "04q3856anpzl4gdfgmg7pbp9cx231nkz3ymq2xp27rnmmwhfxr8y";
-    };
-  }
-  {
-    goPackagePath = "github.com/yuin/goldmark";
-    fetch = {
-      type = "git";
-      url = "https://github.com/yuin/goldmark";
-      rev = "v1.1.27";
-      sha256 = "1872cqnii0kwiqcy81yin0idvjy5mdy4zlzz0csb319lcjs3b923";
-    };
-  }
-  {
-    goPackagePath = "go.etcd.io/bbolt";
-    fetch = {
-      type = "git";
-      url = "https://github.com/etcd-io/bbolt";
-      rev = "v1.3.2";
-      sha256 = "13d5l6p6c5wvkr6vn9hkhz9c593qifn7fgx0hg4d6jcvg1y0bnm2";
-    };
-  }
-  {
-    goPackagePath = "go.opencensus.io";
-    fetch = {
-      type = "git";
-      url = "https://github.com/census-instrumentation/opencensus-go";
-      rev = "v0.22.3";
-      sha256 = "0xj16iq5jp26hi2py7lsd8cvqh651fgn39y05gzvjdi88d9xd3nw";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/atomic";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/atomic";
-      rev = "v1.4.0";
-      sha256 = "0c6yzx15c20719xii3dm0vyjd8i9jx45m0wh5yp1zf29b0gbljcy";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/multierr";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/multierr";
-      rev = "v1.1.0";
-      sha256 = "1slfc6syvw8cvr6rbrjsy6ja5w8gsx0f8aq8qm16rp2x5c2pj07w";
-    };
-  }
-  {
-    goPackagePath = "go.uber.org/zap";
-    fetch = {
-      type = "git";
-      url = "https://github.com/uber-go/zap";
-      rev = "v1.10.0";
-      sha256 = "10hdzr1rghwbsl6bbd30779dx44fh9mg9pq8d2cgqlknqxxpvpvr";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "06a226fb4e37";
-      sha256 = "0fdig6jx81g7a44dnxggibl909wchsj4nakmmhhz7db36sl0d7m5";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/exp";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/exp";
-      rev = "6cc2880d07d6";
-      sha256 = "1iia6hiif6hcp0cg1i6nq63qg0pmvm2kq24pf2r2il3597rfmlgy";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/image";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/image";
-      rev = "cff245a6509b";
-      sha256 = "0hiznlkiaay30acwvvyq8g6bm32r7bc6gv47pygrcxqpapasbz84";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/lint";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/lint";
-      rev = "738671d3881b";
-      sha256 = "0jkiz4py59jjnkyxbxifpf7bsar11lbgmj5jiq2kic5k03shkn9c";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mobile";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mobile";
-      rev = "d2bd2a29d028";
-      sha256 = "1nv6vvhnjr01nx9y06q46ww87dppdwpbqrlsfg1xf2587wxl8xiv";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/mod";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/mod";
-      rev = "v0.2.0";
-      sha256 = "1fp6885dclq77mh73v7i54v2b9llpv4di193zc8vmsbbkkc483cl";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "7e3656a0809f";
-      sha256 = "1rmj59bd0hvf8cbp42c0y8y38prs5ill1zszhqp9i8m86cvkfqk9";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/oauth2";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/oauth2";
-      rev = "bf48bf16ab8d";
-      sha256 = "1sirdib60zwmh93kf9qrx51r8544k1p9rs5mk0797wibz3m4mrdg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "43a5402ce75a";
-      sha256 = "0j6zrrb81qjr1926kkwmn0di9a0jn8qyjd9dw614rfkihxgq1vsm";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "7e40ca221e25";
-      sha256 = "1fkhs1sn6prfsqaj70kya2gn1sqqa85lmgff6j6s7027zc1yjvqa";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/time";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/time";
-      rev = "555d28b269f0";
-      sha256 = "1rhl4lyz030kwfsg63yk83yd3ivryv1afmzdz9sxbhcj84ym6h4r";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2bc93b1c0c88";
-      sha256 = "10sg7nvw40f2d6hxmsy4nvhmawbidk022v3arbh8acsjxglw84zs";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "9bdfabe68543";
-      sha256 = "1yjfi1bk9xb81lqn85nnm13zz725wazvrx3b50hx19qmwg7a4b0c";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/api";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/google-api-go-client";
-      rev = "v0.25.0";
-      sha256 = "0bfpii160ns1pl3iqc38h5db258mv58igf2ifglds3dajgsj2qrr";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/appengine";
-    fetch = {
-      type = "git";
-      url = "https://github.com/golang/appengine";
-      rev = "v1.6.6";
-      sha256 = "15c38h6fbv06cnkr6yknygfrpibyms2mya4w0l29kaxf42jn1qi5";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/genproto";
-    fetch = {
-      type = "git";
-      url = "https://github.com/googleapis/go-genproto";
-      rev = "f5ebc3bea380";
-      sha256 = "1v5dyp6g35rwjwx1ixjy7yh1hay4n7ya5aq5h4ckvd9h0j7rw5sz";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/grpc";
-    fetch = {
-      type = "git";
-      url = "https://github.com/grpc/grpc-go";
-      rev = "v1.29.1";
-      sha256 = "1465947r6536si36cl2ppx7929la9zba1y6xfczfyp4kgf8988hf";
-    };
-  }
-  {
-    goPackagePath = "google.golang.org/protobuf";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/protobuf";
-      rev = "v1.22.0";
-      sha256 = "0n7lc4m7kfvj01glc0gnjy0zsnsic7cxnbvlajy0h14cxbab87pj";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/alecthomas/kingpin.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/alecthomas/kingpin.v2";
-      rev = "v2.2.6";
-      sha256 = "0mndnv3hdngr3bxp7yxfd47cas4prv98sqw534mx7vp38gd88n5r";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/check.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/check.v1";
-      rev = "788fd7840127";
-      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/errgo.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/errgo.v2";
-      rev = "v2.1.0";
-      sha256 = "065mbihiy7q67wnql0bzl9y1kkvck5ivra68254zbih52jxwrgr2";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/resty.v1";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/resty.v1";
-      rev = "v1.12.0";
-      sha256 = "062mn735rqzhha5ag07z4gz08hxzrfm2yx067jfmaaxmb6797lmp";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "v2.2.2";
-      sha256 = "01wj12jzsdqlnidpyjssmj0r4yavlqy7dwrg7adqd8dicjc4ncsa";
-    };
-  }
-  {
-    goPackagePath = "honnef.co/go/tools";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dominikh/go-tools";
-      rev = "v0.0.1-2020.1.3";
-      sha256 = "0pvi1mzhy6zgx4zfgdypbl4zhvgg11hl5qv7blf2qs0a96j2djhf";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/binaryregexp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/binaryregexp";
-      rev = "v0.2.0";
-      sha256 = "1kar0myy85waw418zslviwx8846zj0m9cmqkxjx0fvgjdi70nc4b";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/quote";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/quote";
-      rev = "v3.1.0";
-      sha256 = "0nvv97hwwrl1mx5gzsbdm1ndnwpg3m7i2jb10ig9wily7zmvki0i";
-    };
-  }
-  {
-    goPackagePath = "rsc.io/sampler";
-    fetch = {
-      type = "git";
-      url = "https://github.com/rsc/sampler";
-      rev = "v1.3.0";
-      sha256 = "0byxk2ynba50py805kcvbvjzh59l1r308i1xgyzpw6lff4xx9xjh";
-    };
-  }
-]
diff --git a/pkgs/tools/backup/zrepl/default.nix b/pkgs/tools/backup/zrepl/default.nix
index 0bbc7267af80f..74d74b7947606 100644
--- a/pkgs/tools/backup/zrepl/default.nix
+++ b/pkgs/tools/backup/zrepl/default.nix
@@ -24,6 +24,8 @@ buildGoModule rec {
     makeWrapper
   ];
 
+  ldflags = [ "-s" "-w" "-X github.com/zrepl/zrepl/version.zreplVersion=${version}" ];
+
   postInstall = ''
     mkdir -p $out/lib/systemd/system
     substitute dist/systemd/zrepl.service $out/lib/systemd/system/zrepl.service \
diff --git a/pkgs/tools/bluetooth/blueman/default.nix b/pkgs/tools/bluetooth/blueman/default.nix
index 74ebb04f74744..2f59d14902bb2 100644
--- a/pkgs/tools/bluetooth/blueman/default.nix
+++ b/pkgs/tools/bluetooth/blueman/default.nix
@@ -9,11 +9,11 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "blueman";
-  version = "2.2.4";
+  version = "2.2.5";
 
   src = fetchurl {
     url = "https://github.com/blueman-project/blueman/releases/download/${version}/${pname}-${version}.tar.xz";
-    sha256 = "sha256-VdY5/u2gtDsYplnmWYUhOlS0fcsTSPO07/tSONskJgI=";
+    sha256 = "sha256-yfPAqU3HyAvTIwS7Jf3tIU/jC3AY6e9Gsvy9HYA8fHw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/add-mips64.patch b/pkgs/tools/cd-dvd/ventoy-bin/001-add-mips64.diff
index 66c9085d2edfb..66c9085d2edfb 100644
--- a/pkgs/tools/cd-dvd/ventoy-bin/add-mips64.patch
+++ b/pkgs/tools/cd-dvd/ventoy-bin/001-add-mips64.diff
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch b/pkgs/tools/cd-dvd/ventoy-bin/002-fix-for-read-only-file-system.diff
index d448417bf913e..d448417bf913e 100644
--- a/pkgs/tools/cd-dvd/ventoy-bin/fix-for-read-only-file-system.patch
+++ b/pkgs/tools/cd-dvd/ventoy-bin/002-fix-for-read-only-file-system.diff
diff --git a/pkgs/tools/cd-dvd/ventoy-bin/default.nix b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
index f272a1d6bb657..4e88ac1864834 100644
--- a/pkgs/tools/cd-dvd/ventoy-bin/default.nix
+++ b/pkgs/tools/cd-dvd/ventoy-bin/default.nix
@@ -1,17 +1,38 @@
-{ lib, stdenv, fetchurl, fetchpatch
-, autoPatchelfHook, makeWrapper
-, bash, coreutils, dosfstools, exfat, gawk, gnugrep, gnused, hexdump, parted
-, procps, util-linux, which, xz
-, withCryptsetup ? false, cryptsetup
-, withXfs ? false, xfsprogs
-, withExt4 ? false, e2fsprogs
-, withNtfs ? false, ntfs3g
-, withGtk3 ? false, gtk3
-, withQt5 ? false, qt5
+{ lib
+, stdenv
+, fetchurl
+, fetchpatch
+, autoPatchelfHook
+, bash
+, coreutils
+, cryptsetup
+, dosfstools
+, e2fsprogs
+, exfat
+, gawk
+, gnugrep
+, gnused
+, gtk3
+, hexdump
+, makeWrapper
+, ntfs3g
+, parted
+, procps
+, qt5
+, util-linux
+, which
+, xfsprogs
+, xz
 , defaultGuiType ? ""
+, withCryptsetup ? false
+, withXfs ? false
+, withExt4 ? false
+, withNtfs ? false
+, withGtk3 ? false
+, withQt5 ? false
 }:
 
-assert lib.elem defaultGuiType ["" "gtk3" "qt5"];
+assert lib.elem defaultGuiType [ "" "gtk3" "qt5" ];
 assert defaultGuiType == "gtk3" -> withGtk3;
 assert defaultGuiType == "qt5" -> withQt5;
 
@@ -21,37 +42,30 @@ let
     i686-linux = "i386";
     aarch64-linux = "aarch64";
     mipsel-linux = "mips64el";
-  }.${stdenv.hostPlatform.system} or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+  }.${stdenv.hostPlatform.system}
+    or (throw "Unsupported platform ${stdenv.hostPlatform.system}");
+
 in stdenv.mkDerivation rec {
   pname = "ventoy-bin";
-  version = "1.0.76";
-
-  nativeBuildInputs = [ autoPatchelfHook makeWrapper ]
-    ++ lib.optional withQt5 qt5.wrapQtAppsHook;
-  buildInputs = [
-    bash coreutils dosfstools exfat gawk gnugrep gnused hexdump parted procps
-    util-linux which xz
-  ] ++ lib.optional withCryptsetup cryptsetup
-    ++ lib.optional withXfs xfsprogs
-    ++ lib.optional withExt4 e2fsprogs
-    ++ lib.optional withNtfs ntfs3g
-    ++ lib.optional withGtk3 gtk3
-    ++ lib.optional withQt5 qt5.qtbase;
+  version = "1.0.77";
 
   src = fetchurl {
     url = "https://github.com/ventoy/Ventoy/releases/download/v${version}/ventoy-${version}-linux.tar.gz";
-    sha256 = "f13c3c81eafe15ae4b3de3d98d240d94eabba7cda8e3330ff1769502ecfa33c0";
+    hash = "sha256-DmDWt06gjrAEZ9Qvb7qbKbfJr/u84qmQ44kfDA3HDp0=";
   };
+
   patches = [
     (fetchpatch {
       name = "sanitize.patch";
       url = "https://aur.archlinux.org/cgit/aur.git/plain/sanitize.patch?h=057f2d1eb496c7a3aaa8229e99a7f709428fa4c5";
       sha256 = "sha256-iAtLtM+Q4OsXDK83eCnPNomeNSEqdRLFfK2x7ybPSpk=";
     })
-    ./fix-for-read-only-file-system.patch
-    ./add-mips64.patch
+    ./001-add-mips64.diff
+    ./002-fix-for-read-only-file-system.diff
   ];
+
   patchFlags = [ "-p0" ];
+
   postPatch = ''
     # Fix permissions.
     find -type f -name \*.sh -exec chmod a+x '{}' \;
@@ -60,7 +74,38 @@ in stdenv.mkDerivation rec {
     sed -i 's:log\.txt:/var/log/ventoy\.log:g' \
         WebUI/static/js/languages.js tool/languages.json
   '';
+
+  nativeBuildInputs = [
+    autoPatchelfHook
+    makeWrapper
+  ]
+  ++ lib.optional withQt5 qt5.wrapQtAppsHook;
+
+  buildInputs = [
+    bash
+    coreutils
+    dosfstools
+    exfat
+    gawk
+    gnugrep
+    gnused
+    hexdump
+    parted
+    procps
+    util-linux
+    which
+    xz
+  ]
+  ++ lib.optional withCryptsetup cryptsetup
+  ++ lib.optional withExt4 e2fsprogs
+  ++ lib.optional withGtk3 gtk3
+  ++ lib.optional withNtfs ntfs3g
+  ++ lib.optional withXfs xfsprogs
+  ++ lib.optional withQt5 qt5.qtbase;
+
   installPhase = ''
+    runHook preInstall
+
     # Setup variables.
     local VENTOY_PATH="$out"/share/ventoy
     local ARCH='${arch}'
@@ -99,9 +144,10 @@ in stdenv.mkDerivation rec {
                     --prefix PATH : "${lib.makeBinPath buildInputs}" \
                     --chdir "$VENTOY_PATH"
     done
-  '' + lib.optionalString (withGtk3 || withQt5) ''
-    # VentoGUI uses the `ventoy_gui_type` file to determine the type of GUI.
-    # See <https://github.com/ventoy/Ventoy/blob/471432fc50ffad80bde5de0b22e4c30fa3aac41b/LinuxGUI/Ventoy2Disk/ventoy_gui.c#L1044>.
+  ''
+  # VentoGUI uses the `ventoy_gui_type` file to determine the type of GUI.
+  # See <https://github.com/ventoy/Ventoy/blob/471432fc50ffad80bde5de0b22e4c30fa3aac41b/LinuxGUI/Ventoy2Disk/ventoy_gui.c#L1044>.
+  + lib.optionalString (withGtk3 || withQt5) ''
     echo "${defaultGuiType}" > "$VENTOY_PATH/ventoy_gui_type"
     makeWrapper "$VENTOY_PATH/VentoyGUI.$ARCH" "$out/bin/ventoy-gui" \
                 --prefix PATH : "${lib.makeBinPath buildInputs}" \
@@ -109,31 +155,37 @@ in stdenv.mkDerivation rec {
     mkdir "$out"/share/{applications,pixmaps}
     ln -s "$VENTOY_PATH"/WebUI/static/img/VentoyLogo.png "$out"/share/pixmaps/
     cp ${./ventoy-gui.desktop} "$out"/share/applications/
-  '' + lib.optionalString (!withGtk3) ''
+  ''
+  + lib.optionalString (!withGtk3) ''
     rm "$VENTOY_PATH"/tool/{"$ARCH"/Ventoy2Disk.gtk3,VentoyGTK.glade}
-  '' + lib.optionalString (!withQt5) ''
+  ''
+  + lib.optionalString (!withQt5) ''
     rm "$VENTOY_PATH/tool/$ARCH/Ventoy2Disk.qt5"
-  '' + lib.optionalString (!withGtk3 && !withQt5) ''
+  ''
+  + lib.optionalString (!withGtk3 && !withQt5) ''
     rm "$VENTOY_PATH"/VentoyGUI.*
+  '' +
+  ''
+
+    runHook postInstall
   '';
 
   meta = with lib; {
-    description = "An open source tool to create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI files";
+    description = "A New Bootable USB Solution";
     longDescription = ''
-      An open source tool to create bootable USB drive for
+    homepage = "https://www.ventoy.net";
+      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
-      disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI
-      files to the USB drive and boot them directly.  You can copy many files
-      at a time and ventoy will give you a boot menu to select them.  You can
-      also browse ISO/WIM/IMG/VHD(x)/EFI files in local disk and boot them.
-      x86 Legacy BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are
-      supported in the same way.  Most type of OS supported
+      disk over and over, you just need to copy the ISO/WIM/IMG/VHD(x)/EFI files
+      to the USB drive and boot them directly. You can copy many files at a time
+      and ventoy will give you a boot menu to select them. You can also browse
+      ISO/WIM/IMG/VHD(x)/EFI files in local disk and boot them. x86 Legacy
+      BIOS, IA32 UEFI, x86_64 UEFI, ARM64 UEFI and MIPS64EL UEFI are supported
+      in the same way.  Most type of OS supported
       (Windows/WinPE/Linux/ChromeOS/Unix/VMware/Xen...).  With ventoy you can
       also browse ISO/WIM/IMG/VHD(x)/EFI files in local disk and boot them.
-      800+ image files are tested.  90%+ distros in <distrowatch.com>
-      supported.
+      800+ image files are tested.  90%+ distros in DistroWatch supported.
     '';
-    homepage = "https://www.ventoy.net";
     changelog = "https://www.ventoy.net/doc_news.html";
     license = licenses.gpl3Plus;
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "mipsel-linux" ];
diff --git a/pkgs/tools/compression/bzip3/default.nix b/pkgs/tools/compression/bzip3/default.nix
index fa9b5d0845df7..c265a54a9813b 100644
--- a/pkgs/tools/compression/bzip3/default.nix
+++ b/pkgs/tools/compression/bzip3/default.nix
@@ -2,11 +2,12 @@
 , stdenv
 , fetchFromGitHub
 , autoreconfHook
+, pkg-config
 }:
 
 stdenv.mkDerivation rec {
   pname = "bzip3";
-  version = "1.1.3";
+  version = "1.1.4";
 
   outputs = [ "bin" "dev" "out" ];
 
@@ -14,7 +15,7 @@ stdenv.mkDerivation rec {
     owner = "kspalaiologos";
     repo = "bzip3";
     rev = version;
-    hash = "sha256-puGtaL76p4BzSiTPf3qFgXN4pz90CDU9dziGIszk3to=";
+    hash = "sha256-rbJUvFm8WYgQLNpbX6kcXb5qAGAJfylTo4HgOvZVCu8=";
   };
 
   postPatch = ''
@@ -24,6 +25,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     autoreconfHook
+    pkg-config
   ];
 
   configureFlags = [
diff --git a/pkgs/tools/filesystems/bindfs/default.nix b/pkgs/tools/filesystems/bindfs/default.nix
index 12052100db32a..333157d829fb8 100644
--- a/pkgs/tools/filesystems/bindfs/default.nix
+++ b/pkgs/tools/filesystems/bindfs/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, fuse, pkg-config }:
 
 stdenv.mkDerivation rec {
-  version = "1.15.1";
+  version = "1.16.0";
   pname = "bindfs";
 
   src = fetchurl {
     url    = "https://bindfs.org/downloads/${pname}-${version}.tar.gz";
-    sha256 = "sha256-BN01hKbN+a9DRNQDxiGFyp+rMc465aJdAQG8EJNsaKs=";
+    sha256 = "sha256-AuvvqqZOGwRPxcdDxYKarSHtb3FF9NsHI7zEXwhXgfY=";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/filesystems/catcli/default.nix b/pkgs/tools/filesystems/catcli/default.nix
index 540c4ba6c5f96..dbce4cb7c8c18 100644
--- a/pkgs/tools/filesystems/catcli/default.nix
+++ b/pkgs/tools/filesystems/catcli/default.nix
@@ -7,13 +7,13 @@
 buildPythonApplication rec {
 
   pname = "catcli";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "deadc0de6";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hkgf692h3akdxiwhzm3vqibh1ps661qllilf55nyk109cx79gna";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-fnnioUMZZZOydpZixiTOHAL2fSA6TOE4AO9Gff5SDxY=";
   };
 
   propagatedBuildInputs = [ docopt anytree ];
diff --git a/pkgs/tools/filesystems/ceph/default.nix b/pkgs/tools/filesystems/ceph/default.nix
index 678835bf7bf86..47a76c33c80e6 100644
--- a/pkgs/tools/filesystems/ceph/default.nix
+++ b/pkgs/tools/filesystems/ceph/default.nix
@@ -2,7 +2,7 @@
 , ensureNewerSourcesHook
 , cmake, pkg-config
 , which, git
-, boost
+, boost175
 , libxml2, zlib, lz4
 , openldap, lttng-ust
 , babeltrace, gperf
@@ -21,7 +21,7 @@
 , doxygen
 , graphviz
 , fmt
-, python3
+, python39
 
 # Optional Dependencies
 , yasm ? null, fcgi ? null, expat ? null
@@ -104,7 +104,13 @@ let
     meta = getMeta "Ceph common module for code shared by manager modules";
   };
 
-  python = python3;
+  # Boost 1.75 is not compatible with Python 3.10
+  python = python39;
+
+  boost = boost175.override {
+    enablePython = true;
+    inherit python;
+  };
 
   ceph-python-env = python.withPackages (ps: [
     ps.sphinx
diff --git a/pkgs/tools/filesystems/gcsfuse/default.nix b/pkgs/tools/filesystems/gcsfuse/default.nix
index 0a621c5e034df..12447377ae933 100644
--- a/pkgs/tools/filesystems/gcsfuse/default.nix
+++ b/pkgs/tools/filesystems/gcsfuse/default.nix
@@ -1,32 +1,32 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "gcsfuse";
-  version = "0.41.1";
+  version = "0.41.4";
 
   src = fetchFromGitHub {
     owner = "googlecloudplatform";
     repo = "gcsfuse";
     rev = "v${version}";
-    sha256 = "sha256-5Kfd033SG1ldF+2QCZ01aa7ts0mA8uPXiLmqZIr94YQ=";
+    sha256 = "sha256-8QzSvR/uelp9iBLK+DsUXsH6fBOIoeXePeN7Spht6SE=";
   };
 
-  goPackagePath = "github.com/googlecloudplatform/gcsfuse";
+  vendorSha256 = null;
 
   subPackages = [ "." "tools/mount_gcsfuse" ];
 
+  ldflags = [ "-s" "-w" "-X main.gcsfuseVersion=${version}" ];
+
   postInstall = ''
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.gcsfuse
     ln -s $out/bin/mount_gcsfuse $out/bin/mount.fuse.gcsfuse
   '';
 
-  ldflags = [ "-s" "-w" "-X main.gcsfuseVersion=${version}" ];
-
   meta = with lib;{
     description = "A user-space file system for interacting with Google Cloud Storage";
     homepage = "https://cloud.google.com/storage/docs/gcs-fuse";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = [];
+    maintainers = with maintainers; [ aaronjheng ];
   };
 }
diff --git a/pkgs/tools/filesystems/httm/default.nix b/pkgs/tools/filesystems/httm/default.nix
index f4cfdc46e9b43..51f0e039df798 100644
--- a/pkgs/tools/filesystems/httm/default.nix
+++ b/pkgs/tools/filesystems/httm/default.nix
@@ -6,16 +6,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "httm";
-  version = "0.11.6";
+  version = "0.12.2";
 
   src = fetchFromGitHub {
     owner = "kimono-koans";
     repo = pname;
     rev = version;
-    sha256 = "5jeCENAas7i/eBySSBjwmdc3MEHVhWWH7/RZGS8g1Y4=";
+    sha256 = "gly3P4b6MlhJA/Qre6S0iFGBaY0Hi/u4hzlirdTdZoc=";
   };
 
-  cargoSha256 = "x4qfi3Wm5r0HNqDgmJBXNvS1xQDU7MQ/H2+zNpHon+s=";
+  cargoSha256 = "fq4RVJT6u2ST4Nu9zAnfcXZQqWe8gdC4cFwrJzFums4=";
 
   nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/filesystems/sftpman/default.nix b/pkgs/tools/filesystems/sftpman/default.nix
index e89012b76f638..267b2b649c302 100644
--- a/pkgs/tools/filesystems/sftpman/default.nix
+++ b/pkgs/tools/filesystems/sftpman/default.nix
@@ -2,13 +2,13 @@
 
 python3Packages.buildPythonApplication rec {
   pname = "sftpman";
-  version = "1.1.3";
+  version = "1.2.2";
 
   src = fetchFromGitHub {
     owner = "spantaleev";
     repo = pname;
     rev = version;
-    sha256 = "04awwwfw51fi1q18xdysp54jyhr0rhb4kfyrgv0vhhrlpwwyhnqy";
+    hash = "sha256-YxqN4+u0nYUWehbyRhjddIo2sythH3E0fiPSyrUlWhM=";
   };
 
   checkPhase = ''
diff --git a/pkgs/tools/games/minecraft/fabric-installer/default.nix b/pkgs/tools/games/minecraft/fabric-installer/default.nix
index 4ba2dc542aaff..f0068f5c829d7 100644
--- a/pkgs/tools/games/minecraft/fabric-installer/default.nix
+++ b/pkgs/tools/games/minecraft/fabric-installer/default.nix
@@ -6,11 +6,11 @@
 
 stdenv.mkDerivation rec {
   pname = "fabric-installer";
-  version = "0.10.2";
+  version = "0.11.0";
 
   src = fetchurl {
     url = "https://maven.fabricmc.net/net/fabricmc/fabric-installer/${version}/fabric-installer-${version}.jar";
-    sha256 = "sha256-xjnL1nURAr4z2OZKEqiC/E6+rSvDpxrfGwm/5Bvxxno=";
+    sha256 = "sha256-aLpC6k+Cum0QfdIa1sUXS4BBKFTudJGbcjS1LSFP0Qo=";
   };
 
   dontUnpack = true;
diff --git a/pkgs/tools/games/minecraft/packwiz/default.nix b/pkgs/tools/games/minecraft/packwiz/default.nix
index 3be2798312e77..80feced2b7013 100644
--- a/pkgs/tools/games/minecraft/packwiz/default.nix
+++ b/pkgs/tools/games/minecraft/packwiz/default.nix
@@ -6,13 +6,13 @@
 
 buildGoModule rec {
   pname = "packwiz";
-  version = "unstable-2022-5-25";
+  version = "unstable-2022-06-08";
 
   src = fetchFromGitHub {
     owner = "packwiz";
     repo = "packwiz";
-    rev = "e71b63ea98283c8c1f0e03ee51ae40f452f22a61";
-    sha256 = "sha256-XwGacEVfQAduDCSMQFRw7Xnx4bND2zaV7l27B+2u5xg=";
+    rev = "d051932bbbeb7b16cd21a1897019428e71f63bfd";
+    sha256 = "sha256-H1v5pY9hJYGP0ZiE/GrsATf1ljw69085t6PQhPOfYCs=";
   };
 
   vendorSha256 = "sha256-M9u7N4IrL0B4pPRQwQG5TlMaGT++w3ZKHZ0RdxEHPKk=";
diff --git a/pkgs/tools/games/opentracker/deps.nix b/pkgs/tools/games/opentracker/deps.nix
index 9b9fa946c95d0..25a5789c0a1f0 100644
--- a/pkgs/tools/games/opentracker/deps.nix
+++ b/pkgs/tools/games/opentracker/deps.nix
@@ -26,10 +26,10 @@
   (fetchNuGet { pname = "HarfBuzzSharp.NativeAssets.Linux"; version = "2.6.1.7"; sha256 = "1slackrhcwsjn3f6sa0nlrcynzmx5pbqv8j33l9w6z9w7ssq4wkn"; })
   (fetchNuGet { pname = "JetBrains.Annotations"; version = "2020.3.0"; sha256 = "04xlfqnfg3069f014q8f0vx7y70m8nldbf9fia4b50bp3rry2lv2"; })
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "3.1.10"; sha256 = "0xn4zh7shvijqlr03fqsmps6gz856isd9bg9rk4z2c4599ggal77"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.24"; sha256 = "1r523n8k44d9fasnx48wxnm0vnqfcakfi99jmgcdah7avscxr7aq"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.24"; sha256 = "0dn0s3y3v9msaxh6n36xlkw09qvz63382v853qn4yvz8cwmmy182"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.24"; sha256 = "0y3iayfabyyxg1f5ls7sd760p04kzhiwii1hwbslanz29gfqzphx"; })
-  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.24"; sha256 = "02cc4b10bi37rslg4bkn7g0y0mvwsl6qdinp039swh98c5vp3xvm"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "0rib2121wri6wj6h4f6w4yqw9qp2xsad3ind63fmp1sr649jifyh"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0z29rrhc87g0bi273lcqd608f7ngd16nv85v8549231yvf99n60x"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "0pbm6hpibsvq5w8hyvvllz4qns287x3l8bc07krffv23yfbv8zwy"; })
+  (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.win-x86"; version = "3.1.26"; sha256 = "1kiahv55qyqy7g772m0v731yb5jfpqxqb0wlyp5wa0jppkhdnqxc"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.2"; sha256 = "162vb5894zxps0cf5n9gc08an7gwybzz87allx3lsszvllr9ldx4"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "3.9.0"; sha256 = "1x6l6kn8iv5gk1545nxs2gwzkb8gj4sb9kryai132l7yg9afjqik"; })
   (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "3.9.0"; sha256 = "0crb9x5rhija8y7b0iya9axcvinz2hv3bgf80bvz7kv6zpbpszkz"; })
@@ -40,15 +40,15 @@
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.0.1"; sha256 = "0zxc0apx1gcx361jlq8smc9pfdgmyjh6hpka8dypc9w23nlsh6yj"; })
   (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
   (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.9.1"; sha256 = "1761mvkp5mwhw150fvazdhh4ybvxpvx05g9znf8n1fqx832wxrw5"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.24"; sha256 = "16wn8f3aswbbp1ivh0rdmhq99924ba8jmgaw964h23ncy6xyh2ip"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.24"; sha256 = "0a4ra58nhh8q8r9lmzihjabx3dwyzh0wpdjlz4qxvjjbr6cqnhy9"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.24"; sha256 = "0gciy9nmxpqbcmfdiv4xb4x46dsgkmcr9v4b55906r0iykld0idr"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.24"; sha256 = "179b7jm59va8vgi3k3qyk5xsvlb166awbjdz4vw22ws20mcspd6i"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "3.1.26"; sha256 = "1xyha28nvy9zqanb4ciscm60jls2fcc4c93k1ma6z3hgk6g9nfqr"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.osx-x64"; version = "3.1.26"; sha256 = "1vk4dr2z72nmjg2skqvy2m2h5brqp21v51pnd7ldpm7asgr5ck8n"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x64"; version = "3.1.26"; sha256 = "0l5yfnpbd36n38rjlmhsnq4bniq1fcssv4qh8kb9h3qigz40qxj9"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.win-x86"; version = "3.1.26"; sha256 = "0z8g5jp18r0k4klw4jch17ps4f78vxaxkcmnmj8wrr7qdp81jy44"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "3.1.0"; sha256 = "08svsiilx9spvjamcnjswv0dlpdrgryhr3asdz7cvnl914gjzq4y"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.24"; sha256 = "17aqy20wyxbzfmnlhm7x8pzhzpapak66qq7wfg27am9n5lb82k77"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.24"; sha256 = "1xm8ijzrwd9pyrsqz0p4gg1lwxqjm3zh6cimyixxs1ir4hp9ravw"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.24"; sha256 = "0a4dy6awv2337zyvcqq6hsgyg2i82xrl1l6p4vcsdv3g0rvv00y4"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.24"; sha256 = "1pjg053pp0vazjhp6kh3y75a876xwk6nadnv8pfs7vdnbksmqc7s"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "3.1.26"; sha256 = "1h9b8fwgwbycvn1ngxnpdz3s1zh59wi2iy8n4y2nfkmz2rbldrrm"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.osx-x64"; version = "3.1.26"; sha256 = "0y06qz4pgflwia222mljg19nlfmhcg0qs1a8wm3zwj602wzy3nll"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x64"; version = "3.1.26"; sha256 = "1half7rywhxb1x19gzddvjqbll4whx9wmwdlk57iy68djas95lmy"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.win-x86"; version = "3.1.26"; sha256 = "09grar210h1r6af15ng418vx6ln3pi4x22vn5n2889xldf4x2n56"; })
   (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 = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
diff --git a/pkgs/tools/graphics/flam3/default.nix b/pkgs/tools/graphics/flam3/default.nix
index 01e3693259a5a..4eb0bc67c3f0d 100644
--- a/pkgs/tools/graphics/flam3/default.nix
+++ b/pkgs/tools/graphics/flam3/default.nix
@@ -37,6 +37,6 @@ stdenv.mkDerivation rec {
     '';
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ AndersonTorres ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/graphics/resvg/default.nix b/pkgs/tools/graphics/resvg/default.nix
index 4318140471476..245fc07cdb2d9 100644
--- a/pkgs/tools/graphics/resvg/default.nix
+++ b/pkgs/tools/graphics/resvg/default.nix
@@ -1,21 +1,17 @@
-{ stdenv, lib, rustPlatform, fetchFromGitHub, libiconv }:
+{ lib, rustPlatform, fetchFromGitHub }:
 
 rustPlatform.buildRustPackage rec {
   pname = "resvg";
-  version = "0.22.0";
+  version = "0.23.0";
 
   src = fetchFromGitHub {
     owner = "RazrFalcon";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-3WFzLyg6335twcAMIjzza9r45ljcFlAzvTqyqXOfs1A=";
+    sha256 = "sha256-GiRLunAfDBqJtaq2ccQ3tvPDfmTg5OklkI6apAiMYL0=";
   };
 
-  cargoSha256 = "sha256-twKiuxRpsiJu+hHrg6kUclX9+BWPUop492C+CkwQF2k=";
-
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
-
-  doCheck = false;
+  cargoSha256 = "sha256-rFhmR3H2u5LBBUCK5mCfHvIevFjbIe+CQLS535mJ53w=";
 
   meta = with lib; {
     description = "An SVG rendering library";
diff --git a/pkgs/tools/graphics/vulkan-tools/default.nix b/pkgs/tools/graphics/vulkan-tools/default.nix
index 6ff9bd833eae7..7944a4036b653 100644
--- a/pkgs/tools/graphics/vulkan-tools/default.nix
+++ b/pkgs/tools/graphics/vulkan-tools/default.nix
@@ -103,6 +103,7 @@ stdenv.mkDerivation rec {
       use of the Vulkan API.
     '';
     homepage    = "https://github.com/KhronosGroup/Vulkan-Tools";
+    hydraPlatforms = [ "x86_64-linux" "i686-linux" ];
     platforms   = platforms.unix;
     license     = licenses.asl20;
     maintainers = [ maintainers.ralith ];
diff --git a/pkgs/tools/graphics/wallutils/default.nix b/pkgs/tools/graphics/wallutils/default.nix
index d7c37bb2742b7..a10f0673fc2f6 100644
--- a/pkgs/tools/graphics/wallutils/default.nix
+++ b/pkgs/tools/graphics/wallutils/default.nix
@@ -5,13 +5,13 @@
 
 buildGoPackage rec {
   pname = "wallutils";
-  version = "5.10.0";
+  version = "5.11.0";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "wallutils";
     rev = version;
-    sha256 = "1phlkpy8kg4ai2xmachpbbxvl8fga9hqqbad2a2121yl60709l1k";
+    sha256 = "sha256-5yx6++uciCoT+gcqGnag9V1eYdfwHIQ8WrsuGU4A51E=";
   };
 
   goPackagePath = "github.com/xyproto/wallutils";
diff --git a/pkgs/tools/inputmethods/droidmote/default.nix b/pkgs/tools/inputmethods/droidmote/default.nix
index 24c2bcee8cdcc..017c548f84d3e 100644
--- a/pkgs/tools/inputmethods/droidmote/default.nix
+++ b/pkgs/tools/inputmethods/droidmote/default.nix
@@ -54,6 +54,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Control your computer from your couch";
     homepage = "https://www.videomap.it/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ atila ];
     platforms = lib.attrNames srcs;
diff --git a/pkgs/tools/inputmethods/uim/default.nix b/pkgs/tools/inputmethods/uim/default.nix
index 9336d5429c128..e1daecbd10ff7 100644
--- a/pkgs/tools/inputmethods/uim/default.nix
+++ b/pkgs/tools/inputmethods/uim/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, shared-mime-info
+{ lib, stdenv, fetchFromGitHub, fetchpatch, shared-mime-info
 , autoconf, automake, intltool, libtool, pkg-config, cmake
 , ruby, librsvg
 , ncurses, m17n_lib, m17n_db, expat
@@ -86,7 +86,21 @@ stdenv.mkDerivation rec {
     ./autogen.sh
   '';
 
-  patches = [ ./data-hook.patch ];
+  patches = [
+    ./data-hook.patch
+
+    # Pull upstream fix for -fno-common toolchains
+    #   https://github.com/uim/libgcroots/pull/4
+    (fetchpatch {
+      name = "libgcroots-fno-common.patch";
+      url = "https://github.com/uim/libgcroots/commit/7e39241344ad0663409e836560ae6b5eb231e1fc.patch";
+      sha256 = "0iifcl5lk8bvl0cflm47gkymg88aiwzj0gxh2aj3mqlyhvyx78nz";
+      # Patch comes from git submodule. Relocate as:
+      # a/include/private/gc_priv.h -> a/sigscheme/libgcroots/include/private/gc_priv.h
+      stripLen = 1;
+      extraPrefix = "sigscheme/libgcroots/";
+    })
+  ];
 
   configureFlags = [
     # configure in maintainer mode or else some pixmaps won't get autogenerated
diff --git a/pkgs/tools/misc/alarm-clock-applet/default.nix b/pkgs/tools/misc/alarm-clock-applet/default.nix
deleted file mode 100644
index 7bf58bb2ff399..0000000000000
--- a/pkgs/tools/misc/alarm-clock-applet/default.nix
+++ /dev/null
@@ -1,77 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch
-, pkg-config
-, autoconf
-, automake111x
-, libtool
-
-, glib
-, gtk2
-, gst_all_1
-, gnome2
-, gnome-icon-theme
-, libnotify
-, libxml2
-, libunique
-, intltool
-, gst_plugins ? with gst_all_1; [ gst-plugins-base gst-plugins-good gst-plugins-ugly ]
-, wrapGAppsHook
-}:
-
-stdenv.mkDerivation rec {
-  version = "0.3.4";
-  pname = "alarm-clock-applet";
-
-  src = fetchFromGitHub {
-    owner = "joh";
-    repo = "alarm-clock";
-    rev = version;
-    sha256 = "18blvgy8hmw3jidz7xrv9yiiilnzcj65m6wxhw58nrnbcqbpydwn";
-  };
-
-  patches = [
-    # Pull patch pending upstream inclusion for -fno-common toolchain support:
-    #   https://github.com/joh/alarm-clock/pull/209
-    (fetchpatch {
-      name = "fno-common.patch";
-      url = "https://github.com/joh/alarm-clock/commit/969e7ba8225610cce55b14fcb599bc6f7771bd9a.patch";
-      sha256 = "0ajhir22b5ww9pkmzy9mlc9f2lr1q6wgvm9iqzjf4xsg4gm4jy1k";
-    })
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-    intltool
-    automake111x
-    autoconf
-    libtool
-
-    gnome2.gnome-common
-
-    wrapGAppsHook
-  ];
-
-  preConfigure = "./autogen.sh";
-
-  buildInputs = [
-    glib
-    gtk2
-    gst_all_1.gstreamer
-    gnome2.GConf
-    gnome-icon-theme
-    libnotify
-    libxml2
-    libunique
-  ] ++ gst_plugins;
-
-  propagatedUserEnvPkgs = [ gnome2.GConf.out ];
-
-  enableParallelBuilding = true;
-
-  meta = with lib; {
-    homepage = "http://alarm-clock.pseudoberries.com/";
-    description = "A fully-featured alarm clock for your GNOME panel or equivalent";
-    license = licenses.gpl2;
-    platforms = platforms.linux;
-    maintainers = [ maintainers.rasendubi ];
-  };
-}
diff --git a/pkgs/tools/misc/antimicrox/default.nix b/pkgs/tools/misc/antimicrox/default.nix
index b39d9b17002fe..73e430e54e340 100644
--- a/pkgs/tools/misc/antimicrox/default.nix
+++ b/pkgs/tools/misc/antimicrox/default.nix
@@ -12,13 +12,13 @@
 
 mkDerivation rec {
   pname = "antimicrox";
-  version = "3.2.3";
+  version = "3.2.4";
 
   src = fetchFromGitHub {
     owner = "AntiMicroX";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Qn2XT/l3zx0u3twKsQr1cHbaRiLTglQf0WNx8tqtKro=";
+    sha256 = "sha256-catgal3bpWJUcTo0x0V0X3VV87AHO2Dp58IpQ/ILsZ8=";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules pkg-config itstool ];
diff --git a/pkgs/tools/misc/archi/default.nix b/pkgs/tools/misc/archi/default.nix
index 8d35ff717f5fd..14465cc3a9455 100644
--- a/pkgs/tools/misc/archi/default.nix
+++ b/pkgs/tools/misc/archi/default.nix
@@ -58,6 +58,7 @@ stdenv.mkDerivation rec {
       models and sketches.
     '';
     homepage = "https://www.archimatetool.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ earldouglas ];
diff --git a/pkgs/tools/misc/asciinema-scenario/default.nix b/pkgs/tools/misc/asciinema-scenario/default.nix
index a818c6114d870..45d1ba4a79eca 100644
--- a/pkgs/tools/misc/asciinema-scenario/default.nix
+++ b/pkgs/tools/misc/asciinema-scenario/default.nix
@@ -5,14 +5,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "asciinema-scenario";
-  version = "0.1.0";
+  version = "0.3.0";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-ubiVpKFU81Ot9V9oMexWSiUXHepoJ6nXtrWVAFhgcYw=";
+    sha256 = "sha256-fnX5CIYLdFqi04PQPVIAYDGn+xXi016l8pPcIrYIhmQ=";
   };
 
-  cargoSha256 = "1yf63w2findgqipvgmlkw3pqfkai7mvqp86jg40lvr0mpnvly2ny";
+  cargoSha256 = "sha256-8I3mPSJ5aXvQ88nh0SWyuTq9JSTktS2lQPrXlcvD66c=";
 
   meta = with lib; {
     description = "Create asciinema videos from a text file";
diff --git a/pkgs/tools/misc/asciinema/default.nix b/pkgs/tools/misc/asciinema/default.nix
index e08d0b5d3f702..11ad6b8b36afc 100644
--- a/pkgs/tools/misc/asciinema/default.nix
+++ b/pkgs/tools/misc/asciinema/default.nix
@@ -1,26 +1,39 @@
-{ lib, python3Packages, fetchFromGitHub, glibcLocales }:
+{ lib
+, python3Packages
+, fetchFromGitHub
+, glibcLocales
+}:
 
 python3Packages.buildPythonApplication rec {
   pname = "asciinema";
-  version = "2.1.0";
+  version = "2.2.0";
+  format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "asciinema";
     repo = "asciinema";
     rev = "v${version}";
-    sha256 = "1alcz018jrrpasrmgs8nw775a6pf62xq2xgs54c4mb396prdqy4x";
+    hash = "sha256-ioSNd0Fjk2Fp05lk3HeokIjNYGU0jQEaIDfcFB18mV0=";
   };
 
-  checkInputs = [ glibcLocales python3Packages.nose ];
+  postPatch = ''
+    substituteInPlace tests/pty_test.py \
+      --replace "python3" "${python3Packages.python}/bin/python"
+  '';
+
+  checkInputs = [
+    glibcLocales
+    python3Packages.nose
+  ];
 
   checkPhase = ''
     LC_ALL=en_US.UTF-8 nosetests
   '';
 
-  meta = {
+  meta = with lib; {
     description = "Terminal session recorder and the best companion of asciinema.org";
     homepage = "https://asciinema.org/";
-    license = with lib.licenses; [ gpl3 ];
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix
index 73b302809c8b1..dc7a92c4bef0d 100644
--- a/pkgs/tools/misc/broot/default.nix
+++ b/pkgs/tools/misc/broot/default.nix
@@ -15,14 +15,14 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "broot";
-  version = "1.12.0";
+  version = "1.13.3";
 
   src = fetchCrate {
     inherit pname version;
-    sha256 = "sha256-WCnTmb9EEFmA4nEBD3UzV3JfyHtJyJibMd85madoyto=";
+    sha256 = "sha256-OiBmgXGyxEIS7rkRmJbEZdoWPk27j+QD5I+mqJSSxH0=";
   };
 
-  cargoHash = "sha256-FH+swtzO65fKWFLG3rDOysmbsVSjGFGeMiYtNQU62ww=";
+  cargoHash = "sha256-qc68n8bxKuzqnhwS+d33hC4PWZJG1UQMytQUGyJd1bc=";
 
   nativeBuildInputs = [
     installShellFiles
diff --git a/pkgs/tools/misc/bsp-layout/default.nix b/pkgs/tools/misc/bsp-layout/default.nix
index bad5b4d9a89fe..48f68bebe6c5a 100644
--- a/pkgs/tools/misc/bsp-layout/default.nix
+++ b/pkgs/tools/misc/bsp-layout/default.nix
@@ -9,13 +9,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bsp-layout";
-  version = "unstable-2021-05-10";
+  version = "unstable-2022-06-19";
 
   src = fetchFromGitHub {
     owner = "phenax";
     repo = pname;
-    rev = "726b850b79eabdc6f4d236cff52e434848cb55e3";
-    sha256 = "1wqlzbz7l9vz37gin2zckrnxkkabnd7x5mi9pb0x96w4yhld5mx6";
+    rev = "181d38443778e81df2d4bc3639063c3ae608f9c7";
+    sha256 = "sha256-4NKI+OnOTYGaJnaPvSoXGJdSSzMo9AjYRLOomp9onoo=";
   };
 
   nativeBuildInputs = [ makeWrapper git bc ];
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
     '';
     homepage = "https://github.com/phenax/bsp-layout";
     license = licenses.mit;
-    maintainers = with maintainers; [ devins2518 totoroot ];
+    maintainers = with maintainers; [ totoroot ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/calamares-nixos-extensions/default.nix b/pkgs/tools/misc/calamares-nixos-extensions/default.nix
index 793f341a07310..a587cd585e1af 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.8";
+  version = "0.3.10";
 
   src = fetchFromGitHub {
     owner = "NixOS";
     repo = "calamares-nixos-extensions";
     rev = version;
-    sha256 = "MtqAOwlY5euVNAGRl2pRkbg/OolJPNOSQcR4DS5gFz4=";
+    sha256 = "YJyK0rsrftrCwYD+aCAkPe/kAqUXsP/4WBAGtNKIGj8=";
   };
 
   installPhase = ''
diff --git a/pkgs/tools/misc/calamares/default.nix b/pkgs/tools/misc/calamares/default.nix
index a73a2821cbf2c..7565aa018253e 100644
--- a/pkgs/tools/misc/calamares/default.nix
+++ b/pkgs/tools/misc/calamares/default.nix
@@ -7,12 +7,12 @@
 
 mkDerivation rec {
   pname = "calamares";
-  version = "3.2.57";
+  version = "3.2.59";
 
   # release including submodule
   src = fetchurl {
     url = "https://github.com/calamares/calamares/releases/download/v${version}/${pname}-${version}.tar.gz";
-    sha256 = "ef7f564ec2cd8baaf94a44982ce1db88c1192696617f21538d0b8472a63b4c2b";
+    sha256 = "55adef250613e80a868f2aa3d1e57bdae5b769387d91decf0fe2b64e3605574f";
   };
 
   patches = lib.optionals nixos-extensions [
@@ -57,7 +57,7 @@ mkDerivation rec {
 
   postPatch = ''
     # Run calamares without root. Other patches make it functional as a normal user
-    sed -e "s,pkexec calamares,calamares," \
+    sed -e "s,pkexec calamares,calamares -D6," \
         -i calamares.desktop
 
     sed -e "s,X-AppStream-Ignore=true,&\nStartupWMClass=calamares," \
diff --git a/pkgs/tools/misc/chafa/default.nix b/pkgs/tools/misc/chafa/default.nix
index 7a0178eea735f..85b52dd398c25 100644
--- a/pkgs/tools/misc/chafa/default.nix
+++ b/pkgs/tools/misc/chafa/default.nix
@@ -4,14 +4,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.8.0";
+  version = "1.10.3";
   pname = "chafa";
 
   src = fetchFromGitHub {
     owner = "hpjansson";
     repo = "chafa";
     rev = version;
-    sha256 = "sha256-8ENPmcl0KVxoBu8FGOGk+y8XsONWW0YW32MHAKBUiPE=";
+    sha256 = "sha256-GRPn0xPWtCayOdmA6M+KQrObAHtZIJLEydXaKhhO5IU=";
   };
 
   nativeBuildInputs = [ autoconf
diff --git a/pkgs/tools/misc/chezmoi/default.nix b/pkgs/tools/misc/chezmoi/default.nix
index 782efb24f48d3..7fc8f0ad1458a 100644
--- a/pkgs/tools/misc/chezmoi/default.nix
+++ b/pkgs/tools/misc/chezmoi/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "chezmoi";
-  version = "2.16.0";
+  version = "2.18.1";
 
   src = fetchFromGitHub {
     owner = "twpayne";
     repo = "chezmoi";
     rev = "v${version}";
-    sha256 = "sha256-J5L4xFdRV8eOJgILQqK0DhvP5/AXAmr7spzokhd4kcg=";
+    sha256 = "sha256-eRlEhtpUBZBS3fNrkkXPiktPyGQ2K8MFwsDVo3DUb+o=";
   };
 
-  vendorSha256 = "sha256-y+xPuW8l3XvpnlqdlNIWdweNXMsAOrwbXHq2cJQRcOY=";
+  vendorSha256 = "sha256-u+iFnBzlaa+7heQEI18WWD45TSxEpIY73ZrxjLx84Ic=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/colorpanes/default.nix b/pkgs/tools/misc/colorpanes/default.nix
new file mode 100644
index 0000000000000..7028232c367d5
--- /dev/null
+++ b/pkgs/tools/misc/colorpanes/default.nix
@@ -0,0 +1,27 @@
+{ lib, rustPlatform, fetchFromGitea }:
+
+rustPlatform.buildRustPackage rec {
+  pname = "colorpanes";
+  version = "3.0.1";
+
+  src = fetchFromGitea {
+    domain = "codeberg.org";
+    owner = "papojari";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "qaOH+LXNDq+utwyI1yzHWNt25AvdAXCTAziGV9ElroU=";
+  };
+
+  cargoSha256 = "eJne4OmV4xHxntTb8HE+2ghX1hZLE3WQ3QqsjVm9E4M=";
+
+  postInstall = ''
+    ln -s $out/bin/colp $out/bin/colorpanes
+  '';
+
+  meta = with lib; {
+    description = "Panes in the 8 bright terminal colors with shadows of the respective darker color";
+    homepage = "https://codeberg.org/papojari/colorpanes";
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ papojari ];
+  };
+}
diff --git a/pkgs/tools/misc/dateutils/default.nix b/pkgs/tools/misc/dateutils/default.nix
index 20837d5ee3ec7..ec8f9ca83d93e 100644
--- a/pkgs/tools/misc/dateutils/default.nix
+++ b/pkgs/tools/misc/dateutils/default.nix
@@ -1,12 +1,12 @@
 { lib, stdenv, fetchurl, autoreconfHook, tzdata, fetchpatch }:
 
 stdenv.mkDerivation rec {
-  version = "0.4.9";
+  version = "0.4.10";
   pname = "dateutils";
 
   src = fetchurl {
     url = "https://bitbucket.org/hroptatyr/dateutils/downloads/${pname}-${version}.tar.xz";
-    sha256 = "1hy96h9imxdbg9y7305mgv4grr6x4qic9xy3vhgh15lvjkcmc0kr";
+    sha256 = "sha256-PFCOKIm51a7Kt9WdcyWnAIlZMRGhIwpJbasPWtZ3zew=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/misc/depotdownloader/deps.nix b/pkgs/tools/misc/depotdownloader/deps.nix
index 9c25e0bc1d897..2cdb777206be2 100644
--- a/pkgs/tools/misc/depotdownloader/deps.nix
+++ b/pkgs/tools/misc/depotdownloader/deps.nix
@@ -1,6 +1,6 @@
 { fetchNuGet }: [
   (fetchNuGet { pname = "Microsoft.AspNetCore.App.Ref"; version = "5.0.0"; sha256 = "0d7sjr89zwq0wxirf8la05hfalv9nhvlczg1c7a508k8aw79jvfg"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.16"; sha256 = "19wv518vwn15a61qb1z9zmrg8mbf7pzw1c3n23wn22h4ssrhmxjb"; })
+  (fetchNuGet { pname = "Microsoft.NETCore.App.Host.linux-x64"; version = "5.0.17"; sha256 = "1lc2jhr4ikffi5ylyf8f6ya6k0hdj0wp1l0017grrwd4m5ajj4vv"; })
   (fetchNuGet { pname = "Microsoft.NETCore.App.Ref"; version = "5.0.0"; sha256 = "1p62khf9zk23lh91lvz7plv3g1nzmm3b5szqrcm6mb8w3sjk03wi"; })
   (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "5.0.0"; sha256 = "0mwpwdflidzgzfx2dlpkvvnkgkr2ayaf0s80737h4wa35gaj11rc"; })
   (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "5.0.0"; sha256 = "102hvhq2gmlcbq8y2cb7hdr2dnmjzfp2k3asr1ycwrfacwyaak7n"; })
diff --git a/pkgs/tools/misc/depotdownloader/fetch-deps.sh b/pkgs/tools/misc/depotdownloader/fetch-deps.sh
index a767f3fea9bf3..12a18b9996ad1 100755
--- a/pkgs/tools/misc/depotdownloader/fetch-deps.sh
+++ b/pkgs/tools/misc/depotdownloader/fetch-deps.sh
@@ -1,5 +1,5 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nuget-to-nix dotnet-sdk_5
+#!nix-shell -I nixpkgs=../../../../. -i bash -p nuget-to-nix dotnet-sdk
 set -eo pipefail
 cd "$(dirname "${BASH_SOURCE[0]}")"
 
diff --git a/pkgs/tools/misc/diffoscope/default.nix b/pkgs/tools/misc/diffoscope/default.nix
index bbbb180f6f697..2307dddf6cacc 100644
--- a/pkgs/tools/misc/diffoscope/default.nix
+++ b/pkgs/tools/misc/diffoscope/default.nix
@@ -11,11 +11,11 @@
 # Note: when upgrading this package, please run the list-missing-tools.sh script as described below!
 python3Packages.buildPythonApplication rec {
   pname = "diffoscope";
-  version = "216";
+  version = "217";
 
   src = fetchurl {
     url = "https://diffoscope.org/archive/diffoscope-${version}.tar.bz2";
-    sha256 = "sha256-KSmC2mNNzsC2H5xOOQ/3gODsSvFQD95XGtrzbDud0W0=";
+    sha256 = "sha256-JS6lzxOsE3K4gH3VHsRY5Iucq5PBH3jFD5lSmNZWEG4=";
   };
 
   outputs = [ "out" "man" ];
@@ -77,6 +77,9 @@ python3Packages.buildPythonApplication rec {
     # fails because it fails to determine llvm version
     "test_item3_deflate_llvm_bitcode"
 
+    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/pytest-of-nixbld/pytest-0/\xf0(\x8c('
+    "test_non_unicode_filename"
+
     # disable formatting tests because they can break on black updates
     "test_code_is_black_clean"
   ] ++ lib.optionals stdenv.isDarwin [
@@ -122,7 +125,7 @@ python3Packages.buildPythonApplication rec {
     '';
     homepage = "https://diffoscope.org/";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ dezgeg ma27 danielfullmer ];
+    maintainers = with maintainers; [ dezgeg danielfullmer ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/direnv/default.nix b/pkgs/tools/misc/direnv/default.nix
index f2901917b6b4e..534e77bd24394 100644
--- a/pkgs/tools/misc/direnv/default.nix
+++ b/pkgs/tools/misc/direnv/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "direnv";
-  version = "2.32.0";
+  version = "2.32.1";
 
   src = fetchFromGitHub {
     owner = "direnv";
     repo = "direnv";
     rev = "v${version}";
-    sha256 = "sha256-VPFN1W49FDzCblmTEq9UR2+j7wL5YIRxwpy6nlxBLfk=";
+    sha256 = "sha256-xweCJtGp+id2ledK5ddoXoKJp57KUvwHuqhrIo8ch8Q=";
   };
 
-  vendorSha256 = "sha256-gFGGnnR1UNT4MYC411X8NwIqVJZqhnmUlVR+XAnrKY8=";
+  vendorSha256 = "sha256-u/LukIOYRudFYOrrlZTMtDAlM3+WjoSBiueR7aySSVU=";
 
   # we have no bash at the moment for windows
   BASH_PATH =
diff --git a/pkgs/tools/misc/docker-ls/default.nix b/pkgs/tools/misc/docker-ls/default.nix
index a56107ebce13a..230887ffd09f2 100644
--- a/pkgs/tools/misc/docker-ls/default.nix
+++ b/pkgs/tools/misc/docker-ls/default.nix
@@ -22,7 +22,7 @@ buildGoModule rec {
     '';
 
     homepage = "https://github.com/mayflower/docker-ls";
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
     platforms = docker.meta.platforms;
     license = licenses.mit;
   };
diff --git a/pkgs/tools/misc/dsq/default.nix b/pkgs/tools/misc/dsq/default.nix
index 72cc82282e3af..62a17142bde6b 100644
--- a/pkgs/tools/misc/dsq/default.nix
+++ b/pkgs/tools/misc/dsq/default.nix
@@ -9,42 +9,36 @@
 , python3
 , curl
 , jq
+, p7zip
 , dsq
 }:
 
 buildGoModule rec {
   pname = "dsq";
-  version = "0.16.0";
+  version = "0.20.2";
 
   src = fetchFromGitHub {
     owner = "multiprocessio";
     repo = "dsq";
     rev = version;
-    hash = "sha256-emBLYiNOHYp3XsaY172DDtIdquj3U3U/Q6bogC3rvFQ=";
+    hash = "sha256-dgx1rFdhEtvyH/N3AtQE89ASBoE3CLl+ZFWwWWYe0II=";
   };
 
-  vendorSha256 = "sha256-ZZDZ3FWgOpRJB+X1hrlP8Hh1n3l7jUd39H5MDz88wOs=";
+  vendorSha256 = "sha256-bLaBBWChK2RKXd/rX9m9UfHu8zt0j8TOm5S2M02U91A=";
 
   ldflags = [ "-X" "main.Version=${version}" ];
 
-  checkInputs = [ python3 curl jq ];
+  checkInputs = [ python3 curl jq p7zip ];
 
-  preCheck =
-    let
-      taxiCsv = fetchurl {
-        url = "https://s3.amazonaws.com/nyc-tlc/trip+data/yellow_tripdata_2021-04.csv";
-        hash = "sha256-CXJPraOYAy5tViDcBi9gxI/rJ3ZXqOa/nJ/d+aREV+M=";
-      };
-    in
-    ''
-      substituteInPlace scripts/test.py \
-        --replace '${taxiCsv.url}' file://${taxiCsv} \
-        --replace 'dsq latest' 'dsq ${version}'
-    '';
+  preCheck = ''
+    substituteInPlace scripts/test.py \
+      --replace 'dsq latest' 'dsq ${version}'
+  '';
 
   checkPhase = ''
     runHook preCheck
 
+    7z e testdata/taxi.csv.7z
     cp "$GOPATH/bin/dsq" .
     python3 scripts/test.py
 
diff --git a/pkgs/tools/misc/dt-shell-color-scripts/default.nix b/pkgs/tools/misc/dt-shell-color-scripts/default.nix
new file mode 100644
index 0000000000000..6a0b3da4410fb
--- /dev/null
+++ b/pkgs/tools/misc/dt-shell-color-scripts/default.nix
@@ -0,0 +1,41 @@
+{ stdenv
+, lib
+, fetchFromGitLab
+, runtimeShell
+, makeWrapper
+}:
+
+stdenv.mkDerivation {
+  pname = "dt-shell-color-scripts";
+  version = "unstable-2022-02-22";
+
+  src = fetchFromGitLab {
+    owner = "dwt1";
+    repo = "shell-color-scripts";
+    rev = "fcd013ea2e1ff80e01adbcea9d0eaf9c73db94c0";
+    sha256 = "sha256-bd3NBf99rCiADUKQb6fzCBDaKBmYaZHcO4qokm/39do=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+    patchShebangs ./colorscript.sh
+    patchShebangs ./colorscripts
+    mkdir -p $out/bin
+    mkdir -p $out/opt/shell-color-scripts/
+    cp -r colorscripts $out/opt/shell-color-scripts/colorscripts
+    chmod +x colorscript.sh
+    cp colorscript.sh $out/bin/colorscript
+    substituteInPlace $out/bin/colorscript \
+      --replace "/opt/shell-color-scripts/colorscripts" "$out/opt/shell-color-scripts/colorscripts"
+    runHook postInstall
+  '';
+
+    meta = with lib; {
+      description = "A collection of shell color scripts collected by dt (Derek Taylor)";
+      homepage = "https://gitlab.com/dwt1/shell-color-scripts";
+      license = with licenses; [ mit ];
+      maintainers = with maintainers; [ drzoidberg ];
+    };
+}
diff --git a/pkgs/tools/misc/dua/default.nix b/pkgs/tools/misc/dua/default.nix
index 4a83d8147acb3..526eb705e4cc8 100644
--- a/pkgs/tools/misc/dua/default.nix
+++ b/pkgs/tools/misc/dua/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "dua";
-  version = "2.17.5";
+  version = "2.17.7";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
 
@@ -10,7 +10,7 @@ rustPlatform.buildRustPackage rec {
     owner = "Byron";
     repo = "dua-cli";
     rev = "v${version}";
-    sha256 = "sha256-dpkUbZz/bIiTMhZalXHGct77qMzYB6LATs7MPVyW1GY=";
+    sha256 = "sha256-FiTjN4coOJZ3Uu9LfaJxcpvVKS+5MVYWQPmwllBh1Jg=";
     # Remove unicode file names which leads to different checksums on HFS+
     # vs. other filesystems because of unicode normalisation.
     postFetch = ''
@@ -18,7 +18,7 @@ rustPlatform.buildRustPackage rec {
     '';
   };
 
-  cargoSha256 = "sha256-xBiabY0aGPxrAHypuSg3AF/EcChDgtIK9cJDCeTNkm0=";
+  cargoSha256 = "sha256-xCHbS+D7ss85hklv9xftJTsctvQlAjkKtuJbTt5R8nM=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/esphome/default.nix b/pkgs/tools/misc/esphome/default.nix
index 89cc3efcbf233..39325d637b11b 100644
--- a/pkgs/tools/misc/esphome/default.nix
+++ b/pkgs/tools/misc/esphome/default.nix
@@ -15,14 +15,14 @@ let
 in
 with python.pkgs; buildPythonApplication rec {
   pname = "esphome";
-  version = "2022.5.1";
+  version = "2022.6.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    sha256 = "sha256-pX84pXiRxg0HxB6rOuApqnzaFchmF4xHCGKk8suu4yA=";
+    sha256 = "sha256-Fe58aBEVogYcN+ZFZZ8XSnijVuQoKuMcaor59e5pREw=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/fend/default.nix b/pkgs/tools/misc/fend/default.nix
index 07880c4fbdc54..afdc719a5e448 100644
--- a/pkgs/tools/misc/fend/default.nix
+++ b/pkgs/tools/misc/fend/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "fend";
-  version = "1.0.1";
+  version = "1.0.3";
 
   src = fetchFromGitHub {
     owner = "printfn";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-EV3uxoN6RuQ7grXLcFev1ZCfjVnVIDumQmHdpUm1Jbc=";
+    sha256 = "sha256-eYCFX3JVsTnmVzHQd9JU6BT80kS0LTjVwVcfNJink1M=";
   };
 
-  cargoSha256 = "sha256-lNpFdrriAglLaiWjxVP4JoiBuU+zdLlerAIApIvHHZw=";
+  cargoSha256 = "sha256-+N8/ZKj1Ht2lkTYSEm/lrLtopBQqc82gIFiLzJ6NogU=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
 
diff --git a/pkgs/tools/misc/ffsend/default.nix b/pkgs/tools/misc/ffsend/default.nix
index b6c7cefbccb24..1aedac7ca16f5 100644
--- a/pkgs/tools/misc/ffsend/default.nix
+++ b/pkgs/tools/misc/ffsend/default.nix
@@ -1,6 +1,6 @@
-{ lib, stdenv, fetchFromGitLab, rustPlatform, cmake, pkg-config, openssl
+{ lib, stdenv, fetchFromGitLab, rustPlatform, pkg-config, openssl
 , installShellFiles
-, CoreFoundation, CoreServices, Security, AppKit, libiconv
+, Security, AppKit
 
 , x11Support ? stdenv.isLinux || stdenv.hostPlatform.isBSD
 , xclip ? null, xsel ? null
@@ -17,20 +17,21 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "ffsend";
-  version = "0.2.74";
+  version = "0.2.76";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "ffsend";
     rev = "v${version}";
-    sha256 = "0ia9agh0h9hp06ijmlgnw63n3xz2jajjw1maz27sawqp342x9vn5";
+    sha256 = "sha256-L1j1lXPxy9nWMeED9uzQHV5y7XTE6+DB57rDnXa4kMo=";
   };
 
-  cargoSha256 = "0dl671sw3amny52a81bx7imh94dvi91dprwhcm1b0g40mjic45pw";
+  cargoSha256 = "sha256-zNLU9QnBGna5qb+iu2imOUvCIw3ZWRFsQlpFo5ECtKo=";
 
-  nativeBuildInputs = [ cmake pkg-config installShellFiles ];
+  nativeBuildInputs = [ installShellFiles ]
+    ++ lib.optionals stdenv.isLinux [ pkg-config ];
   buildInputs =
-    if stdenv.isDarwin then [ libiconv CoreFoundation CoreServices Security AppKit ]
+    if stdenv.isDarwin then [ Security AppKit ]
     else [ openssl ];
 
   preBuild = lib.optionalString (x11Support && usesX11) (
@@ -56,7 +57,7 @@ buildRustPackage rec {
     '';
     homepage = "https://gitlab.com/timvisee/ffsend";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ lilyball equirosa ];
+    maintainers = with maintainers; [ lilyball equirosa marsam ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/file/default.nix b/pkgs/tools/misc/file/default.nix
index 6454bb4eac284..9b982f2c2eac5 100644
--- a/pkgs/tools/misc/file/default.nix
+++ b/pkgs/tools/misc/file/default.nix
@@ -1,5 +1,10 @@
 { lib, stdenv, fetchurl, file, zlib, libgnurx }:
 
+# Note: this package is used for bootstrapping fetchurl, and thus
+# cannot use fetchpatch! All mutable patches (generated by GitHub or
+# cgit) that are needed here should be included directly in Nixpkgs as
+# files.
+
 stdenv.mkDerivation rec {
   pname = "file";
   version = "5.41";
diff --git a/pkgs/tools/misc/flameshot/default.nix b/pkgs/tools/misc/flameshot/default.nix
index 82cf7a3b78fd9..4bbe0508c12c5 100644
--- a/pkgs/tools/misc/flameshot/default.nix
+++ b/pkgs/tools/misc/flameshot/default.nix
@@ -10,13 +10,13 @@
 
 mkDerivation rec {
   pname = "flameshot";
-  version = "11.0.0";
+  version = "12.0.0";
 
   src = fetchFromGitHub {
     owner = "flameshot-org";
     repo = "flameshot";
     rev = "v${version}";
-    sha256 = "sha256-SlnEXW3Uhdgl0icwYyYsKQOcYkAtHpAvL6LMXBF2gWM=";
+    sha256 = "sha256-ByW+XYTaeBTTbOaxNeF367nqgnBM+EC8jm+PmwHcVGQ=";
   };
 
   passthru = {
diff --git a/pkgs/tools/misc/gams/default.nix b/pkgs/tools/misc/gams/default.nix
index c6bd2c53844cc..be71618aae204 100644
--- a/pkgs/tools/misc/gams/default.nix
+++ b/pkgs/tools/misc/gams/default.nix
@@ -43,6 +43,7 @@ stdenv.mkDerivation rec {
       GAMS is designed for modeling and solving linear, nonlinear, and mixed-integer optimization problems.
     '';
     homepage = "https://www.gams.com/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.Scriptkiddi ];
     platforms = platforms.linux;
diff --git a/pkgs/tools/misc/geekbench/default.nix b/pkgs/tools/misc/geekbench/default.nix
index 355d3e348852c..bb25b7502f185 100644
--- a/pkgs/tools/misc/geekbench/default.nix
+++ b/pkgs/tools/misc/geekbench/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "geekbench";
-  version = "5.4.4";
+  version = "5.4.5";
 
   src = fetchurl {
     url = "https://cdn.geekbench.com/Geekbench-${version}-Linux.tar.gz";
-    sha256 = "sha256-2kiaP7V/dGDHiYTqvVEwAaAMrSoLzYtvR4hgtG6iUoQ=";
+    sha256 = "sha256-JA9bvRb8u0qG6ZsQR9qJ3yaV9ni/MkdWo9xRtmPp92I=";
   };
 
   dontConfigure = true;
diff --git a/pkgs/tools/misc/hakuneko/default.nix b/pkgs/tools/misc/hakuneko/default.nix
index eb6101f6498ab..128cddd8c6829 100644
--- a/pkgs/tools/misc/hakuneko/default.nix
+++ b/pkgs/tools/misc/hakuneko/default.nix
@@ -72,6 +72,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Manga & Anime Downloader";
     homepage = "https://sourceforge.net/projects/hakuneko/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unlicense;
     maintainers = with maintainers; [
       nloomans
diff --git a/pkgs/tools/misc/hyperledger-fabric/default.nix b/pkgs/tools/misc/hyperledger-fabric/default.nix
index c2c48bfa7d80d..ba3c9495a43f1 100644
--- a/pkgs/tools/misc/hyperledger-fabric/default.nix
+++ b/pkgs/tools/misc/hyperledger-fabric/default.nix
@@ -1,35 +1,55 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "hyperledger-fabric";
-  version = "1.3.0";
-
-  goPackagePath = "github.com/hyperledger/fabric";
-
-  # taken from https://github.com/hyperledger/fabric/blob/v1.3.0/Makefile#L108
-  subPackages = [
-    "common/tools/configtxgen"
-    "common/tools/configtxlator"
-    "common/tools/cryptogen"
-    "common/tools/idemixgen"
-    "cmd/discover"
-    "peer"
-    "orderer"
-  ];
+  version = "2.4.3";
+  commit = "9711fb5d0c16297584f5c53123f589110828736f";
 
   src = fetchFromGitHub {
     owner = "hyperledger";
     repo = "fabric";
     rev = "v${version}";
-    sha256 = "08qrrxzgkqg9v7n3y8f2vggyqx9j65wisxi17hrabz5mzaq299xs";
+    sha256 = "sha256-gXVahzpuIUWAHq4gJ1rbq943zIuWrl/ojDMQDFfI14I=";
   };
 
-  doCheck = true;
+  vendorSha256 = null;
+
+  postPatch = ''
+    # Broken
+    rm cmd/peer/main_test.go
+  '';
+
+  subPackages = [
+    "cmd/configtxgen"
+    "cmd/configtxlator"
+    "cmd/cryptogen"
+    "cmd/discover"
+    "cmd/ledgerutil"
+    "cmd/orderer"
+    "cmd/osnadmin"
+    "cmd/peer"
+  ];
+
+  ldflags = lib.mapAttrsToList
+    (n: v: "github.com/hyperledger/fabric/common/metadata.${n}=${v}") {
+      Version = version;
+      CommitSha = commit;
+    };
 
   meta = with lib; {
-    description = "An implementation of blockchain technology, leveraging familiar and proven technologies";
+    description = "High-performance, secure, permissioned blockchain network";
+    longDescription = ''
+      Hyperledger Fabric is an enterprise-grade permissioned distributed ledger
+      framework for developing solutions and applications. Its modular and
+      versatile design satisfies a broad range of industry use cases. It offers
+      a unique approach to consensus that enables performance at scale while
+      preserving privacy.
+    '';
     homepage = "https://wiki.hyperledger.org/display/fabric";
     license = licenses.asl20;
-    maintainers = [ maintainers.marsam ];
+    maintainers = with maintainers; [ marsam ];
   };
 }
diff --git a/pkgs/tools/misc/iam-policy-json-to-terraform/default.nix b/pkgs/tools/misc/iam-policy-json-to-terraform/default.nix
new file mode 100644
index 0000000000000..4ac31329706e4
--- /dev/null
+++ b/pkgs/tools/misc/iam-policy-json-to-terraform/default.nix
@@ -0,0 +1,23 @@
+{ lib, buildGoModule, fetchFromGitHub }:
+
+buildGoModule rec {
+  pname = "iam-policy-json-to-terraform";
+  version = "1.8.0";
+
+  src = fetchFromGitHub {
+    owner = "flosell";
+    repo = pname;
+    rev = "${version}";
+    sha256 = "sha256-1OQvm3M/n/8F3QHNfPlq9YQVyV97NlHX3dXWA/VXEZU=";
+  };
+
+  vendorSha256 = "sha256-Fn5GgGW9QhnQOKV34Kzl1Yctv3XLQ51lCuuGx5kvlIA=";
+
+  meta = with lib; {
+    description = "Small tool to convert an IAM Policy in JSON format into a Terraform aws_iam_policy_document ";
+    homepage = "https://github.com/flosell/iam-policy-json-to-terraform";
+    changelog = "https://github.com/flosell/iam-policy-json-to-terraform/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = [ maintainers.ivankovnatsky ];
+  };
+}
diff --git a/pkgs/tools/misc/kisslicer/default.nix b/pkgs/tools/misc/kisslicer/default.nix
index f80e15b3b3c22..c016c0b88f4b0 100644
--- a/pkgs/tools/misc/kisslicer/default.nix
+++ b/pkgs/tools/misc/kisslicer/default.nix
@@ -53,6 +53,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Convert STL files into Gcode";
     homepage = "http://www.kisslicer.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = [ maintainers.cransom ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/misc/logstash/7.x.nix b/pkgs/tools/misc/logstash/7.x.nix
index 69729b3f9578e..f0a760e42f28d 100644
--- a/pkgs/tools/misc/logstash/7.x.nix
+++ b/pkgs/tools/misc/logstash/7.x.nix
@@ -17,8 +17,8 @@ let
   shas =
     if enableUnfree
     then {
-      x86_64-linux  = "698b6000788e123b647c988993f710c6d9bc44eb8c8e6f97d6b18a695a61f0a6";
-      x86_64-darwin = "35e50e05fba0240aa5b138bc1c81f67addaf557701f8df41c682b5bc708f7455";
+      x86_64-linux  = "35e50e05fba0240aa5b138bc1c81f67addaf557701f8df41c682b5bc708f7455";
+      x86_64-darwin = "698b6000788e123b647c988993f710c6d9bc44eb8c8e6f97d6b18a695a61f0a6";
       aarch64-linux = "69694856fde11836eb1613bf3a2ba31fbdc933f58c8527b6180f6122c8bb528b";
     }
     else {
diff --git a/pkgs/tools/misc/mandown/default.nix b/pkgs/tools/misc/mandown/default.nix
index 08755ede14db5..4851c764d0eb0 100644
--- a/pkgs/tools/misc/mandown/default.nix
+++ b/pkgs/tools/misc/mandown/default.nix
@@ -15,6 +15,6 @@ rustPlatform.buildRustPackage rec {
     description = "Markdown to groff (man page) converter";
     homepage = "https://gitlab.com/kornelski/mandown";
     license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ zowoq ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/misc/mongodb-compass/default.nix b/pkgs/tools/misc/mongodb-compass/default.nix
index 5a86018fc2ab3..9d0e9f62b5dcb 100644
--- a/pkgs/tools/misc/mongodb-compass/default.nix
+++ b/pkgs/tools/misc/mongodb-compass/default.nix
@@ -33,7 +33,7 @@ xorg,
 }:
 
 let
-  version = "1.31.2";
+  version = "1.32.2";
 
   rpath = lib.makeLibraryPath [
     alsa-lib
@@ -82,7 +82,7 @@ let
     if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchurl {
         url = "https://downloads.mongodb.com/compass/mongodb-compass_${version}_amd64.deb";
-        sha256 = "sha256-ij5lOP3xaty9YjKPionfUhZTcuumlFHt46MUMkjO2yA=";
+        sha256 = "sha256-ceQp4EiLEWy8niGC0uUdWJrvmdt9Ijt29YdLt7vtcyY=";
       }
     else
       throw "MongoDB compass is not supported on ${stdenv.hostPlatform.system}";
@@ -129,6 +129,7 @@ in stdenv.mkDerivation {
     description = "The GUI for MongoDB";
     maintainers = with maintainers; [ bryanasdev000 ];
     homepage = "https://www.mongodb.com/products/compass";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.sspl;
     platforms = [ "x86_64-linux" ];
   };
diff --git a/pkgs/tools/misc/mongodb-tools/default.nix b/pkgs/tools/misc/mongodb-tools/default.nix
index b59a466e3d17a..45e9a08a356fb 100644
--- a/pkgs/tools/misc/mongodb-tools/default.nix
+++ b/pkgs/tools/misc/mongodb-tools/default.nix
@@ -1,58 +1,50 @@
-{ lib
-, buildGoPackage
-, fetchFromGitHub
-, openssl
-, pkg-config
-, libpcap
-}:
-
-let
-  tools = [
-    "bsondump"
-    "mongoimport"
-    "mongoexport"
-    "mongodump"
-    "mongorestore"
-    "mongostat"
-    "mongofiles"
-    "mongotop"
-  ];
-  version = "100.5.2";
-
-in buildGoPackage {
-  pname = "mongo-tools";
-  inherit version;
+{ lib, buildGoModule, fetchFromGitHub, openssl, pkg-config, libpcap }:
 
-  goPackagePath = "github.com/mongodb/mongo-tools";
-  subPackages = tools;
+buildGoModule rec {
+  pname = "mongo-tools";
+  version = "100.5.3";
 
   src = fetchFromGitHub {
-    rev = version;
     owner = "mongodb";
     repo = "mongo-tools";
-    sha256 = "sha256-qYTfC7+5XWDCyQQFKmuPmDmwsekDdY6OAerxZgzf8D0=";
+    rev = version;
+    sha256 = "sha256-8RkpBCFVxKVsu4h2z+rhlwvYfbSDHZUg8erO4+2GRbw=";
   };
 
+  vendorSha256 = null;
+
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ openssl libpcap ];
 
   # Mongodb incorrectly names all of their binaries main
   # Let's work around this with our own installer
-  buildPhase = ''
-    # move vendored codes so nixpkgs go builder could find it
-    runHook preBuild
-
-    ${lib.concatMapStrings (t: ''
-      go build -o "$out/bin/${t}" -tags ssl -ldflags "-s -w" $goPackagePath/${t}/main
-    '') tools}
-
-    runHook postBuild
-  '';
+  buildPhase =
+    let
+      tools = [
+        "bsondump"
+        "mongodump"
+        "mongoexport"
+        "mongofiles"
+        "mongoimport"
+        "mongorestore"
+        "mongostat"
+        "mongotop"
+      ]; in
+    ''
+      # move vendored codes so nixpkgs go builder could find it
+      runHook preBuild
+
+      ${lib.concatMapStrings (t: ''
+        go build -o "$out/bin/${t}" -tags ssl -ldflags "-s -w" ./${t}/main
+      '') tools}
+
+      runHook postBuild
+    '';
 
   meta = {
     homepage = "https://github.com/mongodb/mongo-tools";
     description = "Tools for the MongoDB";
-    maintainers = with lib.maintainers; [ bryanasdev000 ];
     license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ bryanasdev000 ];
   };
 }
diff --git a/pkgs/tools/misc/moreutils/default.nix b/pkgs/tools/misc/moreutils/default.nix
index d64b690b7636c..1f002136ad022 100644
--- a/pkgs/tools/misc/moreutils/default.nix
+++ b/pkgs/tools/misc/moreutils/default.nix
@@ -1,4 +1,15 @@
-{ lib, stdenv, fetchgit, libxml2, libxslt, docbook-xsl, docbook_xml_dtd_44, perlPackages, makeWrapper, darwin }:
+{ lib
+, stdenv
+, fetchgit
+, libxml2
+, libxslt
+, docbook-xsl
+, docbook_xml_dtd_44
+, perlPackages
+, makeWrapper
+, perl # for pod2man
+, darwin
+}:
 
 with lib;
 stdenv.mkDerivation rec {
@@ -15,9 +26,9 @@ stdenv.mkDerivation rec {
     substituteInPlace Makefile --replace /usr/share/xml/docbook/stylesheet/docbook-xsl ${docbook-xsl}/xml/xsl/docbook
   '';
 
-  nativeBuildInputs = [ makeWrapper ];
-  buildInputs = [ libxml2 libxslt docbook-xsl docbook_xml_dtd_44 ]
-    ++ optional stdenv.isDarwin darwin.cctools;
+  strictDeps = true;
+  nativeBuildInputs = [ makeWrapper perl libxml2 libxslt docbook-xsl docbook_xml_dtd_44 ];
+  buildInputs = optional stdenv.isDarwin darwin.cctools;
 
   propagatedBuildInputs = with perlPackages; [ perl IPCRun TimeDate TimeDuration ];
 
diff --git a/pkgs/tools/misc/mutagen/default.nix b/pkgs/tools/misc/mutagen/default.nix
index f853ec39f60be..9ec6dbf3147ca 100644
--- a/pkgs/tools/misc/mutagen/default.nix
+++ b/pkgs/tools/misc/mutagen/default.nix
@@ -39,6 +39,7 @@ buildGo118Module rec {
     homepage = "https://mutagen.io/";
     changelog = "https://github.com/mutagen-io/mutagen/releases/tag/v${version}";
     maintainers = [ maintainers.marsam ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/ntfy-sh/default.nix b/pkgs/tools/misc/ntfy-sh/default.nix
index 29e09c25b43ef..fe5c8f56168e9 100644
--- a/pkgs/tools/misc/ntfy-sh/default.nix
+++ b/pkgs/tools/misc/ntfy-sh/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "ntfy-sh";
-  version = "1.25.2";
+  version = "1.26.0";
 
   src = fetchFromGitHub {
     owner = "binwiederhier";
     repo = "ntfy";
     rev = "v${version}";
-    sha256 = "sha256-xf0hk2GpBbjovZ1DIG6unnKQ297p8fjKZmgk/23IKdY=";
+    sha256 = "sha256-LR3orzh/xwmxt5RhmjOacFs8NUp6tKPUwYDdzVFhx4k=";
   };
 
-  vendorSha256 = "sha256-ZZdGve6+g0bhE+iqemWl9XtLRfUn4V3hbdVz/UhrxCA=";
+  vendorSha256 = "sha256-16S3Up1D4PycBY2Wk11cm0F4z5PkQL2reXj1mGpsOv4=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/misc/ntfy/default.nix b/pkgs/tools/misc/ntfy/default.nix
index e976ca5fd691d..d905c92438dab 100644
--- a/pkgs/tools/misc/ntfy/default.nix
+++ b/pkgs/tools/misc/ntfy/default.nix
@@ -1,9 +1,21 @@
-{ lib, python3Packages, fetchFromGitHub, fetchpatch }:
+{ lib
+, python39
+, fetchFromGitHub
+, fetchpatch
+}:
 
-python3Packages.buildPythonApplication rec {
+let
+  python = python39.override {
+    packageOverrides = self: super: {
+      ntfy-webpush = self.callPackage ./webpush.nix { };
+    };
+  };
+in python.pkgs.buildPythonApplication rec {
   pname = "ntfy";
   version = "2.7.0";
 
+  format = "setuptools";
+
   src = fetchFromGitHub {
     owner = "dschep";
     repo = "ntfy";
@@ -11,11 +23,11 @@ python3Packages.buildPythonApplication rec {
     sha256 = "09f02cn4i1l2aksb3azwfb70axqhn7d0d0vl2r6640hqr74nc1cv";
   };
 
-  checkInputs = with python3Packages; [
+  checkInputs = with python.pkgs; [
     mock
   ];
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = with python.pkgs; [
     requests ruamel-yaml appdirs
     sleekxmpp dnspython
     emoji
@@ -37,7 +49,7 @@ python3Packages.buildPythonApplication rec {
   ];
 
   checkPhase = ''
-    HOME=$(mktemp -d) ${python3Packages.python.interpreter} setup.py test
+    HOME=$(mktemp -d) ${python.interpreter} setup.py test
   '';
 
   meta = with lib; {
diff --git a/pkgs/tools/misc/ntfy-webpush/default.nix b/pkgs/tools/misc/ntfy/webpush.nix
index 27559dabbddfe..aad5bf48a4036 100644
--- a/pkgs/tools/misc/ntfy-webpush/default.nix
+++ b/pkgs/tools/misc/ntfy/webpush.nix
@@ -1,6 +1,11 @@
-{ lib, python3Packages, fetchFromGitHub }:
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pywebpush
+, py-vapid
+}:
 
-python3Packages.buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "ntfy-webpush";
   version = "0.1.3";
 
@@ -17,7 +22,7 @@ python3Packages.buildPythonPackage rec {
       --replace "'ntfy', " ""
   '';
 
-  propagatedBuildInputs = with python3Packages; [
+  propagatedBuildInputs = [
     pywebpush
     py-vapid
   ];
diff --git a/pkgs/tools/misc/phraseapp-client/default.nix b/pkgs/tools/misc/phraseapp-client/default.nix
deleted file mode 100644
index 12b11cf20d018..0000000000000
--- a/pkgs/tools/misc/phraseapp-client/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "phraseapp-client";
-  version = "1.17.1";
-
-  goPackagePath = "github.com/phrase/phraseapp-client";
-  subPackages = [ "." ];
-
-  src = fetchFromGitHub {
-    owner = "phrase";
-    repo = "phraseapp-client";
-    rev = version;
-    sha256 = "0j8fygp9bw68p1736hq7n7qv86rghchxbdm1xibvk5jpgph1nzl7";
-  };
-
-  postInstall = ''
-    ln -s $out/bin/phraseapp-client $out/bin/phraseapp
-  '';
-
-  meta = with lib; {
-    homepage = "http://docs.phraseapp.com";
-    description = "PhraseApp API v2 Command Line Client";
-    license = licenses.mit;
-    maintainers = with maintainers; [ manveru ];
-  };
-}
diff --git a/pkgs/tools/misc/pipelight/default.nix b/pkgs/tools/misc/pipelight/default.nix
index a5a5b727a8deb..9cabb74b231de 100644
--- a/pkgs/tools/misc/pipelight/default.nix
+++ b/pkgs/tools/misc/pipelight/default.nix
@@ -24,6 +24,9 @@ in stdenv.mkDerivation rec {
   patches = [
     ./pipelight.patch
     ./wine-6.13-new-args.patch
+    # https://source.winehq.org/git/wine.git/commit/cf4a781e987a98a8d48610362a20a320c4a1016d
+    # adds ControlMask as a static variable.
+    ./wine-7.10-ControlMask.patch
   ];
 
   configurePhase = ''
diff --git a/pkgs/tools/misc/pipelight/wine-7.10-ControlMask.patch b/pkgs/tools/misc/pipelight/wine-7.10-ControlMask.patch
new file mode 100644
index 0000000000000..87280d17788a0
--- /dev/null
+++ b/pkgs/tools/misc/pipelight/wine-7.10-ControlMask.patch
@@ -0,0 +1,26 @@
+diff --git a/src/windows/pluginloader/pluginloader.c b/src/windows/pluginloader/pluginloader.c
+index 751e072..7a4589d 100644
+--- a/src/windows/pluginloader/pluginloader.c
++++ b/src/windows/pluginloader/pluginloader.c
+@@ -190,7 +190,7 @@ static inline WPARAM wParamFromX11State(uint32_t state){
+ 	if (state & Button3Mask) wParam |= MK_RBUTTON;
+ 	if (state & Button2Mask) wParam |= MK_MBUTTON;
+ 	if (state & ShiftMask)   wParam |= MK_SHIFT;
+-	if (state & ControlMask) wParam |= MK_CONTROL;
++	if (state & ControlMask_) wParam |= MK_CONTROL;
+ 	return wParam;
+ }
+ 
+diff --git a/src/windows/pluginloader/pluginloader.h b/src/windows/pluginloader/pluginloader.h
+index ffe89a7..a1ebabc 100644
+--- a/src/windows/pluginloader/pluginloader.h
++++ b/src/windows/pluginloader/pluginloader.h
+@@ -149,7 +149,7 @@ typedef unsigned long int XID;
+ 
+ #define ShiftMask	(1<<0)
+ #define LockMask	(1<<1)
+-#define ControlMask	(1<<2)
++#define ControlMask_	(1<<2)
+ #define Button1Mask	(1<<8)
+ #define Button2Mask	(1<<9)
+ #define Button3Mask	(1<<10)
diff --git a/pkgs/tools/misc/plocate/default.nix b/pkgs/tools/misc/plocate/default.nix
index f4504a73637e1..468b2ca7842b2 100644
--- a/pkgs/tools/misc/plocate/default.nix
+++ b/pkgs/tools/misc/plocate/default.nix
@@ -14,12 +14,12 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "plocate";
-  version = "1.1.15";
+  version = "1.1.16";
 
   src = fetchgit {
     url = "https://git.sesse.net/plocate";
     rev = version;
-    sha256 = "sha256-r8/LivQhJkMTE8ejznr+eGplXFrQl4xwCgXOwbR4wlw=";
+    sha256 = "sha256-rwvzDr3leve8BQ30+c3l1+q/7+u7FhPQ7iFcvbx/HjM=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/qjoypad/default.nix b/pkgs/tools/misc/qjoypad/default.nix
index 0c3b4a9ed2f83..018086e6dc7cb 100644
--- a/pkgs/tools/misc/qjoypad/default.nix
+++ b/pkgs/tools/misc/qjoypad/default.nix
@@ -1,21 +1,19 @@
-{ lib, stdenv, fetchurl, pkg-config, libX11, libXtst, qt4 }:
-stdenv.mkDerivation rec {
+{ lib, mkDerivation, fetchFromGitHub, pkg-config, cmake, libX11, libXtst, qtbase, qttools, qtx11extras }:
+mkDerivation rec {
   pname = "qjoypad";
-  version = "4.1.0";
-  src = fetchurl {
-    url = "mirror://sourceforge/qjoypad/qjoypad-${version}.tar.gz";
-    sha256 = "1jlm7i26nfp185xrl41kz5z6fgvyj51bjpz48cg27xx64y40iamm";
+  version = "4.3.1";
+
+  src = fetchFromGitHub {
+    owner = "panzi";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256:1w26ddxb1xirb7qjf7kv9llxzjhbhcb7warnxbx41qhbni46g26y";
   };
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libX11 libXtst qt4 ];
-  NIX_LDFLAGS = "-lX11";
-  patchPhase = ''
-    cd src
-    substituteInPlace config --replace /bin/bash ${stdenv.shell}
-    mkdir -p $out
-    export NIX_LDFLAGS="$NIX_LDFLAGS -rpath ${libX11}/lib"
-  '';
-  meta = {
+
+  nativeBuildInputs = [ pkg-config cmake ];
+  buildInputs = [ libX11 libXtst qtbase qttools qtx11extras ];
+
+  meta = with lib; {
     description = "A program that lets you use gaming devices anywhere";
     longDescription = ''
       A simple Linux/QT program that lets you use your gaming devices
@@ -33,9 +31,9 @@ stdenv.mkDerivation rec {
       of gaming devices in Linux, and makes the Linux gaming
       experience just a little bit nicer.
     '';
-    homepage = "http://qjoypad.sourceforge.net";
+    homepage = "https://github.com/panzi/qjoypad/";
     license = lib.licenses.gpl2;
-    maintainers = with lib.maintainers; [ astsmtl ];
-    platforms = with lib.platforms; linux;
+    maintainers = with maintainers; [ astsmtl ];
+    platforms = with platforms; linux;
   };
 }
diff --git a/pkgs/tools/misc/sam-ba/default.nix b/pkgs/tools/misc/sam-ba/default.nix
index 291063f43cb18..6a383cd4fc4e1 100644
--- a/pkgs/tools/misc/sam-ba/default.nix
+++ b/pkgs/tools/misc/sam-ba/default.nix
@@ -39,6 +39,7 @@ stdenv.mkDerivation rec {
     '';
     # Alternatively: https://www.microchip.com/en-us/development-tool/SAM-BA-In-system-Programmer
     homepage = "http://www.at91.com/linux4sam/bin/view/Linux4SAM/SoftwareTools";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.gpl2Only;
     platforms = [ "x86_64-linux" ];
     maintainers = [ maintainers.bjornfor ];
diff --git a/pkgs/tools/misc/sheldon/default.nix b/pkgs/tools/misc/sheldon/default.nix
new file mode 100644
index 0000000000000..db6aa9d8f1708
--- /dev/null
+++ b/pkgs/tools/misc/sheldon/default.nix
@@ -0,0 +1,60 @@
+{ lib
+, stdenv
+, fetchCrate
+, rustPlatform
+, pkg-config
+, openssl
+, installShellFiles
+, Security
+, curl
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "sheldon";
+  version = "0.6.6";
+
+  src = fetchCrate {
+    inherit pname version;
+    sha256 = "sha256-NjNBTjSaFoh+DAJfcM4G3+Meih1czLxs/RMmMwrXqD4=";
+  };
+
+  cargoSha256 = "sha256-uRcaHuDLQm6OYqt01kLbW/mfZnL4HaDabaweaw1EOfs=";
+
+  buildInputs = [ openssl ] ++ lib.optional stdenv.isDarwin [ Security curl ];
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+
+  # Needs network connection
+  checkFlags = [
+    "--skip cli::tests::raw_opt_help"
+    "--skip lock::tests::external_plugin_lock_git_with_matches"
+    "--skip lock::tests::external_plugin_lock_git_with_matches_error"
+    "--skip lock::tests::external_plugin_lock_git_with_matches_not_each"
+    "--skip lock::tests::external_plugin_lock_git_with_uses"
+    "--skip lock::tests::external_plugin_lock_remote"
+    "--skip lock::tests::git_checkout_resolve_branch"
+    "--skip lock::tests::git_checkout_resolve_rev"
+    "--skip lock::tests::git_checkout_resolve_tag"
+    "--skip lock::tests::locked_config_clean"
+    "--skip lock::tests::source_lock_git_and_reinstall"
+    "--skip lock::tests::source_lock_git_git_with_checkout"
+    "--skip lock::tests::source_lock_git_https_with_checkout"
+    "--skip lock::tests::source_lock_local"
+    "--skip lock::tests::source_lock_remote_and_reinstall"
+    "--skip lock::tests::source_lock_with_git"
+    "--skip lock::tests::source_lock_with_remote"
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd sheldon \
+      --bash <($out/bin/sheldon completions --shell bash) \
+      --zsh <($out/bin/sheldon completions --shell zsh)
+  '';
+
+  meta = with lib; {
+    description = "A fast and configurable shell plugin manager";
+    homepage = "https://github.com/rossmacarthur/sheldon";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ seqizz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/starfetch/default.nix b/pkgs/tools/misc/starfetch/default.nix
new file mode 100755
index 0000000000000..3dfff1400e9e5
--- /dev/null
+++ b/pkgs/tools/misc/starfetch/default.nix
@@ -0,0 +1,36 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+  pname = "starfetch";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "Haruno19";
+    repo = "starfetch";
+    rev = version;
+    sha256 = "sha256-waJ1DbOqhZ3hHtqcODSXBC+O46S8RSxuBuoEqs8OfgI=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/starfetch.cpp --replace /usr/local/ $out/
+  '';
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    mkdir -p $out/share/starfetch
+    cp starfetch $out/bin/
+    cp -r res/* $out/share/starfetch/
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "CLI star constellations displayer";
+    homepage = "https://github.com/Haruno19/starfetch";
+    license = licenses.gpl3Plus;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ papojari ];
+  };
+}
diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix
index 97d5a4599fbec..9754c9f0c143b 100644
--- a/pkgs/tools/misc/starship/default.nix
+++ b/pkgs/tools/misc/starship/default.nix
@@ -14,13 +14,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "starship";
-  version = "1.7.1";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "starship";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-/vP8q2tWDR8EXDekpcONXIgdzRHh3mZzZGY04wb4aA0=";
+    sha256 = "sha256-+LfQ7ce8j7LBopV9bo+WjYcZCnwntOToKUHctPMaGXw=";
   };
 
   nativeBuildInputs = [ installShellFiles pkg-config ];
@@ -38,7 +38,7 @@ rustPlatform.buildRustPackage rec {
     done
   '';
 
-  cargoSha256 = "sha256-6y0Du3YGfH+SDbG3NdokJyG+Y1q5cI4UZp6XwFdvYxk=";
+  cargoSha256 = "sha256-XPbirDdSDzIgsukkMYJrS/ghfF3VCplZ4BuOrzIRK0E=";
 
   preCheck = ''
     HOME=$TMPDIR
diff --git a/pkgs/tools/misc/staruml/default.nix b/pkgs/tools/misc/staruml/default.nix
index 1e0b50d6f85ba..d414d36070bda 100644
--- a/pkgs/tools/misc/staruml/default.nix
+++ b/pkgs/tools/misc/staruml/default.nix
@@ -70,6 +70,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A sophisticated software modeler";
     homepage = "https://staruml.io/";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index 091ff8d039002..23a7e7ad95644 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -9,13 +9,13 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "svtplay-dl";
-  version = "4.12";
+  version = "4.13";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "0vkrbizfgchnzinyyl5ppmbqs156j6mmy1gqxj41d3082w1gqr09";
+    sha256 = "sha256-0Lqm6zN/H6yPIhkVvULmoQsV9SDG25LDiGWmtyiXHxI=";
   };
 
   pythonPaths = [ cryptography pyyaml requests ];
diff --git a/pkgs/tools/misc/sweep-visualizer/default.nix b/pkgs/tools/misc/sweep-visualizer/default.nix
deleted file mode 100644
index 74f0807a70804..0000000000000
--- a/pkgs/tools/misc/sweep-visualizer/default.nix
+++ /dev/null
@@ -1,59 +0,0 @@
-{ stdenv, lib, makeWrapper, fetchurl,
-  alsa-lib, atk, cairo, cups, dbus, expat, fontconfig, freetype, gdk-pixbuf, glib,
-  gnome2, pango, gtk2-x11, nspr, nss,
-  libX11, libxcb, libXcomposite, libXcursor, libXdamage, libXext, libXfixes,
-  libXi, libXrandr, libXrender, libXScrnSaver, libXtst,
-  libudev0-shim
-}:
-  stdenv.mkDerivation rec {
-    pname = "sweep-visualizer";
-    version = "0.15.0";
-
-    src = fetchurl {
-      url = "https://s3.amazonaws.com/scanse/Visualizer/v${version}/sweepvisualizer_${version}_amd64.deb";
-      sha256 = "1k6rdjw2340qrzafv6hjxvbvyh3s1wad6d3629nchdcrpyx9xy1c";
-    };
-
-    nativeBuildInputs = [ makeWrapper ];
-
-    sourceRoot = ".";
-    unpackCmd = ''
-      ar p "$src" data.tar.xz | tar xJ
-    '';
-
-    dontBuild = true;
-
-    installPhase = ''
-      mkdir -p $out/bin $out/share/sweep-visualizer
-      mv usr/share/* $out/share
-      mv opt/Sweep\ Visualizer\ BETA/* $out/share/sweep-visualizer/
-      ln -s $out/share/sweep-visualizer/sweep_visualizer $out/bin/sweep_visualizer
-    '';
-
-    preFixup = let
-      libPath = lib.makeLibraryPath [
-        alsa-lib atk cairo cups.lib dbus.lib expat fontconfig.lib freetype
-        gdk-pixbuf glib gnome2.GConf pango gtk2-x11 nspr nss stdenv.cc.cc.lib
-        libX11 libxcb libXcomposite libXcursor libXdamage libXext libXfixes
-        libXi libXrandr libXrender libXScrnSaver libXtst
-      ];
-      runtimeLibs = lib.makeLibraryPath [ libudev0-shim ];
-    in ''
-      for lib in $out/share/sweep-visualizer/*.so; do
-        patchelf --set-rpath "$out/share/sweep-visualizer:${libPath}" $lib
-      done
-      patchelf \
-        --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
-        --set-rpath "$out/share/sweep-visualizer:${libPath}" \
-        $out/share/sweep-visualizer/sweep_visualizer
-      wrapProgram "$out/bin/sweep_visualizer" --prefix LD_LIBRARY_PATH : ${runtimeLibs}
-    '';
-
-    meta = with lib; {
-      homepage = "https://support.scanse.io/hc/en-us/articles/115006008948-Visualizer-Overview";
-      description = "A minimal desktop application for interfacing with the Sweep device";
-      license = licenses.unfree;
-      platforms = [ "x86_64-linux" ];
-      maintainers = with maintainers; [ mt-caret ];
-    };
-  }
diff --git a/pkgs/tools/misc/termtosvg/default.nix b/pkgs/tools/misc/termtosvg/default.nix
index a89ed808c8b14..a4e624f18f313 100644
--- a/pkgs/tools/misc/termtosvg/default.nix
+++ b/pkgs/tools/misc/termtosvg/default.nix
@@ -15,6 +15,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://nbedos.github.io/termtosvg/";
     description = "Record terminal sessions as SVG animations";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ma27 ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/tools/misc/time-decode/default.nix b/pkgs/tools/misc/time-decode/default.nix
index 6dbb694770c8d..5dcc64cf1cfdf 100644
--- a/pkgs/tools/misc/time-decode/default.nix
+++ b/pkgs/tools/misc/time-decode/default.nix
@@ -5,13 +5,13 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "time-decode";
-  version = "3.2.0";
+  version = "4.0.0";
 
   src = fetchFromGitHub {
     owner = "digitalsleuth";
     repo = "time_decode";
-    rev = "v${version}";
-    sha256 = "1iwqdq1ail04hs8pkb6rxan4ng2jl2iar6pk72skj41xh4qhlyg6";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-J5mgAEANAKKbzRMX/LIpdlnP8GkOXFEOmhEO495Z0p4=";
   };
 
   propagatedBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index fd4361d27678a..44cbe713f096e 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -6,7 +6,7 @@
 , libevent
 , ncurses
 , pkg-config
-, systemd
+, withSystemd ? stdenv.isLinux && !stdenv.hostPlatform.isStatic, systemd
 , utf8proc
 }:
 
@@ -43,13 +43,13 @@ stdenv.mkDerivation rec {
   buildInputs = [
     ncurses
     libevent
-  ] ++ lib.optionals stdenv.isLinux [ systemd ]
+  ] ++ lib.optionals withSystemd [ systemd ]
   ++ lib.optionals stdenv.isDarwin [ utf8proc ];
 
   configureFlags = [
     "--sysconfdir=/etc"
     "--localstatedir=/var"
-  ] ++ lib.optionals stdenv.isLinux [ "--enable-systemd" ]
+  ] ++ lib.optionals withSystemd [ "--enable-systemd" ]
   ++ lib.optionals stdenv.isDarwin [ "--enable-utf8proc" ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/tools/misc/unclutter-xfixes/default.nix b/pkgs/tools/misc/unclutter-xfixes/default.nix
index 710932af5e92d..d04846637a0ce 100644
--- a/pkgs/tools/misc/unclutter-xfixes/default.nix
+++ b/pkgs/tools/misc/unclutter-xfixes/default.nix
@@ -16,6 +16,9 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkg-config asciidoc libxslt docbook_xsl ];
   buildInputs = [ xlibsWrapper libev libXi libXfixes ];
 
+  prePatch = ''
+    substituteInPlace Makefile --replace 'PKG_CONFIG =' 'PKG_CONFIG ?='
+  '';
   makeFlags = [ "CC=${stdenv.cc.targetPrefix}cc" ];
 
   installFlags = [ "PREFIX=$(out)" ];
diff --git a/pkgs/tools/misc/vector/default.nix b/pkgs/tools/misc/vector/default.nix
index 51a949ab4a206..a3e2265a6e1c7 100644
--- a/pkgs/tools/misc/vector/default.nix
+++ b/pkgs/tools/misc/vector/default.nix
@@ -30,19 +30,19 @@
 
 let
   pname = "vector";
-  version = "0.22.1";
+  version = "0.22.2";
 in
 rustPlatform.buildRustPackage {
   inherit pname version;
 
   src = fetchFromGitHub {
-    owner = "timberio";
+    owner = "vectordotdev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Or8YxzSqPzuRNgPDwyUxHKmXpbYA5+x7qcC03WWWuHc=";
+    sha256 = "sha256-5vfV58UvukD4CGAKUzew/se6wZw+JLSpDs8nwNihuWg=";
   };
 
-  cargoSha256 = "sha256-V+b2s2XTahfN97yzwI9u4/DwhkvloRwJJXCzjAcolTs=";
+  cargoSha256 = "sha256-FlWwUIau7QJsH3ax4y3yz+iBRP/KaEB/eHzUPTq0+tQ=";
   nativeBuildInputs = [ pkg-config cmake perl ];
   buildInputs = [ oniguruma openssl protobuf rdkafka zstd ]
     ++ lib.optionals stdenv.isDarwin [ Security libiconv coreutils CoreServices ];
diff --git a/pkgs/tools/misc/viddy/default.nix b/pkgs/tools/misc/viddy/default.nix
index f882ce4b5be3d..dafb91b09f0db 100644
--- a/pkgs/tools/misc/viddy/default.nix
+++ b/pkgs/tools/misc/viddy/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "viddy";
-  version = "0.3.4";
+  version = "0.3.5";
 
   src = fetchFromGitHub {
     owner = "sachaos";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-V/x969wi5u5ND9QgJfc4vtI2t1G1ETlATzeqnpHMncc=";
+    sha256 = "sha256-+0Twa9OYIuyt1+F/sLkQSOj0u04r7y/DqYd11buquow=";
   };
 
   vendorSha256 = "sha256-LtRHnZF0ynnIp77K9anljqq42BumXohDMwlU7hzSxZk=";
diff --git a/pkgs/tools/misc/vtm/default.nix b/pkgs/tools/misc/vtm/default.nix
index 5066145b72afd..a2a52a260b60a 100644
--- a/pkgs/tools/misc/vtm/default.nix
+++ b/pkgs/tools/misc/vtm/default.nix
@@ -3,15 +3,16 @@
 , fetchFromGitHub
 , cmake
 }:
+
 stdenv.mkDerivation rec {
   pname = "vtm";
-  version = "0.6.0";
+  version = "0.7.6";
 
   src = fetchFromGitHub {
     owner = "netxs-group";
     repo = "vtm";
     rev = "v${version}";
-    sha256 = "sha256-Z6PSx7TwarQx0Mc3fSRPwV7yIPJK3xtW4k0LJ6RPYRY=";
+    sha256 = "sha256-YAS/HcgtA4Ms8EB7RRCg6ElBL4aI/FqXjqymHy/voRs=";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/tools/misc/watchlog/default.nix b/pkgs/tools/misc/watchlog/default.nix
index 1cc323ca45772..b89d42354e1bb 100644
--- a/pkgs/tools/misc/watchlog/default.nix
+++ b/pkgs/tools/misc/watchlog/default.nix
@@ -22,5 +22,8 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://gitlab.com/kevincox/watchlog";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ kevincox ];
+
+    # Dependency only supports Linux + Windows: https://github.com/mentaljam/standard_paths/tree/master/src
+    platforms = with lib.platforms; linux ++ windows;
   };
 }
diff --git a/pkgs/tools/misc/wayback-machine-archiver/default.nix b/pkgs/tools/misc/wayback-machine-archiver/default.nix
new file mode 100644
index 0000000000000..986ca165ed246
--- /dev/null
+++ b/pkgs/tools/misc/wayback-machine-archiver/default.nix
@@ -0,0 +1,31 @@
+{ lib, python3, fetchFromGitHub }:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "wayback-machine-archiver";
+  version = "1.9.1";
+
+  src = fetchFromGitHub {
+    owner = "agude";
+    repo = "wayback-machine-archiver";
+    rev = "v${version}";
+    sha256 = "0dnnqx507gpj8wsx6f2ivfmha969ydayiqsvxh23p9qcixw9257x";
+  };
+
+  nativeBuildInputs = with python3.pkgs; [ pypandoc ];
+  propagatedBuildInputs = with python3.pkgs; [ requests ];
+  checkInputs = with python3.pkgs; [ pytestCheckHook requests-mock ];
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace \"pytest-runner\", ""
+  '';
+
+  pythonImportsCheck = [ "wayback_machine_archiver" ];
+
+  meta = with lib; {
+    description = "A 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/xflux/default.nix b/pkgs/tools/misc/xflux/default.nix
index 54a339f1d7753..55a72dc4a7345 100644
--- a/pkgs/tools/misc/xflux/default.nix
+++ b/pkgs/tools/misc/xflux/default.nix
@@ -33,6 +33,7 @@ stdenv.mkDerivation {
       when the sun rises.
     '';
     homepage = "https://justgetflux.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = lib.licenses.unfree;
     platforms = lib.platforms.linux;
     maintainers = [ lib.maintainers.paholg ];
diff --git a/pkgs/tools/misc/youtube-dl/default.nix b/pkgs/tools/misc/youtube-dl/default.nix
index faf4b558ad643..4aee6bdeb5f51 100644
--- a/pkgs/tools/misc/youtube-dl/default.nix
+++ b/pkgs/tools/misc/youtube-dl/default.nix
@@ -25,8 +25,8 @@ buildPythonPackage rec {
   };
 
   patches = [
-    # Fixes throttling on youtube.com. Without the patch downloads are capped at
-    # about 80KiB/s. See, e.g.,
+    # Fixes throttling on youtube.com by decoding a "n-parameter". Without the patch
+    # downloads are capped at about 80KiB/s. See, e.g.,
     #
     #   https://github.com/ytdl-org/youtube-dl/issues/29326
     #
@@ -37,6 +37,20 @@ buildPythonPackage rec {
       url = "https://github.com/ytdl-org/youtube-dl/compare/57044eacebc6f2f3cd83c345e1b6e659a22e4773...1e677567cd083d43f55daef0cc74e5fa24575ae3.diff";
       sha256 = "11s0j3w60r75xx20p0x2j3yc4d3yvz99r0572si8b5qd93lqs4pr";
     })
+    # The above patch may fail to decode the n-parameter (if, say, YouTube is updated). Failure to decode
+    # it blocks the download instead of falling back to the throttled version. The patch below implements
+    # better fallback behaviour.
+    (fetchpatch {
+      name = "avoid-crashing-if-nsig-decode-fails.patch";
+      url = "https://github.com/ytdl-org/youtube-dl/commit/41f0043983c831b7c0c3614340d2f66ec153087b.diff";
+      sha256 = "sha256-a72gWhBXCLjuBBD36PpZ5F/AHBdiBv4W8Wf9g4P/aBY=";
+    })
+    # YouTube changed the n-parameter format in April 2022, so decoder updates are required.
+    (fetchpatch {
+      name = "fix-n-descrambling.patch";
+      url = "https://github.com/ytdl-org/youtube-dl/commit/a0068bd6bec16008bda7a39caecccbf84881c603.diff";
+      sha256 = "sha256-tSuEns4jputa2nOOo6JsFXpK3hvJ/+z1/ymcLsd3A6w=";
+    })
   ];
 
   nativeBuildInputs = [ installShellFiles makeWrapper ];
@@ -75,7 +89,7 @@ buildPythonPackage rec {
       it however you like.
     '';
     license = licenses.publicDomain;
-    maintainers = with maintainers; [ bluescreen303 fpletz ma27 ];
+    maintainers = with maintainers; [ bluescreen303 fpletz ];
     platforms = with platforms; linux ++ darwin;
   };
 }
diff --git a/pkgs/tools/misc/yt-dlp/default.nix b/pkgs/tools/misc/yt-dlp/default.nix
index 0eab77c5ab655..28f9021cb1c05 100644
--- a/pkgs/tools/misc/yt-dlp/default.nix
+++ b/pkgs/tools/misc/yt-dlp/default.nix
@@ -20,12 +20,12 @@ 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 = "2022.05.18";
+  version = "2022.6.22.1";
 
   src = fetchPypi {
     inherit pname;
     version = builtins.replaceStrings [ ".0" ] [ "." ] version;
-    sha256 = "sha256-OntZ0vtLOc6LqOC5xaN/4g5WJPRqI0a0rmarEyDjUTQ=";
+    sha256 = "sha256-7kAancx+koWxTxMinD3O/fOH5Zf09Pdz2rMmqv47gww=";
   };
 
   propagatedBuildInputs = [ brotli certifi mutagen pycryptodomex websockets ];
diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix
index f7dc1fc54f2ed..de8c6777ae61f 100644
--- a/pkgs/tools/misc/yubikey-manager/default.nix
+++ b/pkgs/tools/misc/yubikey-manager/default.nix
@@ -2,14 +2,14 @@
 
 python3Packages.buildPythonPackage rec {
   pname = "yubikey-manager";
-  version = "4.0.8";
+  version = "4.0.9";
   format = "pyproject";
 
   src = fetchFromGitHub {
     repo = "yubikey-manager";
-    rev = version;
+    rev = "refs/tags/${version}";
     owner = "Yubico";
-    sha256 = "sha256-OszXOu/NhoX4WutsT4Z1LsY54KTOWRKt13yDo2fzDbA=";
+    sha256 = "sha256-MwM/b1QP6pkyBjz/r6oC4sW1mKC0CKMay45a0wCktk0=";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix
index 96c7c29a2d90b..c83a3e9a80684 100644
--- a/pkgs/tools/misc/zoxide/default.nix
+++ b/pkgs/tools/misc/zoxide/default.nix
@@ -10,13 +10,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "zoxide";
-  version = "0.8.1";
+  version = "0.8.2";
 
   src = fetchFromGitHub {
     owner = "ajeetdsouza";
     repo = "zoxide";
     rev = "v${version}";
-    sha256 = "sha256-f6HzSnrOaAOnA9k6e3CnXioxCTOM0VSpTOpxnmz+Tyk=";
+    sha256 = "sha256-yueUpOU28IzQA/SI8YB9Lo3J4fiKDXze0MGDCUv0+jI=";
   };
 
   nativeBuildInputs = [ installShellFiles ];
@@ -28,7 +28,7 @@ rustPlatform.buildRustPackage rec {
       --replace '"fzf"' '"${fzf}/bin/fzf"'
   '';
 
-  cargoSha256 = "sha256-OAvE/KFoS4+18J+kOZTYa9zgnkWh/0bgy9iglGyZ8PQ=";
+  cargoSha256 = "sha256-toFfxDQcN6nSzSrvlW7aychikc6GeZ8eHjvH9e6dtHQ=";
 
   postInstall = ''
     installManPage man/man*/*
diff --git a/pkgs/tools/networking/asleap/default.nix b/pkgs/tools/networking/asleap/default.nix
new file mode 100644
index 0000000000000..1d40bb3b22d42
--- /dev/null
+++ b/pkgs/tools/networking/asleap/default.nix
@@ -0,0 +1,27 @@
+{lib, stdenv, fetchFromGitHub, openssl, libpcap, libxcrypt}:
+
+stdenv.mkDerivation rec {
+  pname = "asleap";
+  version = "unstable-2021-06-20";
+
+  src = fetchFromGitHub {
+    owner = "zackw";
+    repo = pname;
+    rev = "eb3bd42098cba42b65f499c9d8c73d890861b94f";
+    sha256 = "sha256-S6jS0cg9tHSfmP6VHyISkXJxczhPx3HDdxT46c+YmE8=";
+  };
+
+  buildInputs = [ openssl libpcap libxcrypt ];
+
+  installPhase = ''
+    install -Dm755 asleap $out/bin/asleap
+    install -Dm755 genkeys $out/bin/genkeys
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/zackw/asleap";
+    description = "Recovers weak LEAP and PPTP passwords";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ thehedgeh0g ];
+  };
+}
diff --git a/pkgs/tools/networking/bandwhich/default.nix b/pkgs/tools/networking/bandwhich/default.nix
index 35d342beb1a9f..07483f24e2263 100644
--- a/pkgs/tools/networking/bandwhich/default.nix
+++ b/pkgs/tools/networking/bandwhich/default.nix
@@ -37,7 +37,7 @@ rustPlatform.buildRustPackage rec {
     '';
     homepage = "https://github.com/imsnif/bandwhich";
     license = licenses.mit;
-    maintainers = with maintainers; [ Br1ght0ne ma27 SuperSandro2000 ];
+    maintainers = with maintainers; [ Br1ght0ne SuperSandro2000 ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/networking/boundary/default.nix b/pkgs/tools/networking/boundary/default.nix
index 73f9ce690703a..4a20273153b64 100644
--- a/pkgs/tools/networking/boundary/default.nix
+++ b/pkgs/tools/networking/boundary/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   pname = "boundary";
-  version = "0.8.1";
+  version = "0.9.0";
 
   src =
     let
@@ -15,10 +15,10 @@ stdenv.mkDerivation rec {
         aarch64-darwin = "darwin_arm64";
       };
       sha256 = selectSystem {
-        x86_64-linux = "sha256-JvWzDdslO1S/nVsIwvFAEhLo/kkHIE1AVwoI980LV4Y=";
-        aarch64-linux = "sha256-IwD7iazbh94c9CZfFsg5t39D8oVWgpfXP1H0/GsTe3Y=";
-        x86_64-darwin = "sha256-SkNSZVdbR6KW/vChDdvHMP+fGQp+mPVxKpEHb7BR4+4=";
-        aarch64-darwin = "sha256-Mx9YhMk5eBgtDiYWPq7jfhrM3TjH0VCUE1QXycz5Cfc=";
+        x86_64-linux = "sha256-+Ewk+tLLwp8xszDS3RadeAOpS261wSG5NC8Gk2OwHiY=";
+        aarch64-linux = "sha256-knEI3a4xL+kAllNColEXBCKhnWoM3Fcso3cwFGaA1fQ=";
+        x86_64-darwin = "sha256-jPdW3ovcb5yhQHJGUEBB2hou2og4tMIGtr5V+W6vNlc=";
+        aarch64-darwin = "sha256-8Fx6lQUHna5J8M67wSzpRmAGZlZbQdpMxgSa6/07g/Y=";
       };
     in
     fetchzip {
@@ -61,6 +61,7 @@ stdenv.mkDerivation rec {
       and resilient. It can run in clouds, on-prem, secure enclaves and more,
       and does not require an agent to be installed on every end host.
     '';
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.mpl20;
     maintainers = with maintainers; [ jk techknowlogick ];
   };
diff --git a/pkgs/tools/networking/brook/default.nix b/pkgs/tools/networking/brook/default.nix
index e0e37e99ac743..b4a5a30beeb35 100644
--- a/pkgs/tools/networking/brook/default.nix
+++ b/pkgs/tools/networking/brook/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "brook";
-  version = "20220515";
+  version = "20220707";
 
   src = fetchFromGitHub {
     owner = "txthinking";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-olYlAuIcK34nNXbfiPT4+u0L3xcxBMMty72FjSeuNqg=";
+    sha256 = "sha256-TlbVXfNUvCHHX0BReSVE6GNfmS+p6lWSdO0OtOC+I2U=";
   };
 
-  vendorSha256 = "sha256-ic5QYRVElEuH4D29PXgTzMHU0KjrxDqcdfg7Kd37/YU=";
+  vendorSha256 = "sha256-MPLM1lBM1K55q6nsfmOekdFlSDmPsLLDv09mD1XqLNo=";
 
   meta = with lib; {
     homepage = "https://github.com/txthinking/brook";
diff --git a/pkgs/tools/networking/cantoolz/default.nix b/pkgs/tools/networking/cantoolz/default.nix
index b31dc21b7a326..ca0d05131ca76 100644
--- a/pkgs/tools/networking/cantoolz/default.nix
+++ b/pkgs/tools/networking/cantoolz/default.nix
@@ -17,6 +17,11 @@ python3.pkgs.buildPythonApplication rec {
 
   patches = [
     (fetchpatch {
+      # Import Iterable from collections.abc
+      url = "https://github.com/CANToolz/CANToolz/commit/9e818946716a744b3c7356f248e24ea650791d1f.patch";
+      hash = "sha256-BTQ0Io2RF8WpWlLoYfBj8IhL92FRR8ustGClt28/R8c=";
+    })
+    (fetchpatch {
       # Replace time.clock() which was removed, https://github.com/CANToolz/CANToolz/pull/30
       url = "https://github.com/CANToolz/CANToolz/pull/30/commits/d75574523d3b273c40fb714532c4de27f9e6dd3e.patch";
       sha256 = "0g91hywg5q6f2qk1awgklywigclrbhh6a6mwd0kpbkk1wawiiwbc";
diff --git a/pkgs/tools/networking/clash/default.nix b/pkgs/tools/networking/clash/default.nix
index d3125d13adabd..0341e7e7f3d32 100644
--- a/pkgs/tools/networking/clash/default.nix
+++ b/pkgs/tools/networking/clash/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "clash";
-  version = "1.10.6";
+  version = "1.11.0";
 
   src = fetchFromGitHub {
     owner = "Dreamacro";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-v9MUMgHIpHDUEmB5vXOIOkSriX+PCPtiiHHB4H5FeMw=";
+    sha256 = "sha256-8g5rrkRA31wHvwY3JDFIU+slU0cLHFpADyd897hVyw0=";
   };
 
-  vendorSha256 = "sha256-egbXCRmC862tctapMUWTcNej1g6a9wCt2JIC9DSEP6k=";
+  vendorSha256 = "sha256-iW14KxtUY2nhpShcdrHLiCRZxsoXyLSPt01dB0Ds28Y=";
 
   # Do not build testing suit
   excludedPackages = [ "./test" ];
diff --git a/pkgs/tools/networking/cloudflare-warp/default.nix b/pkgs/tools/networking/cloudflare-warp/default.nix
index a96b8e005e3b6..917274338a2e0 100644
--- a/pkgs/tools/networking/cloudflare-warp/default.nix
+++ b/pkgs/tools/networking/cloudflare-warp/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Replaces the connection between your device and the Internet with a modern, optimized, protocol";
     homepage = "https://pkg.cloudflareclient.com/packages/cloudflare-warp";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/networking/discord-sh/default.nix b/pkgs/tools/networking/discord-sh/default.nix
new file mode 100644
index 0000000000000..98696fad0780d
--- /dev/null
+++ b/pkgs/tools/networking/discord-sh/default.nix
@@ -0,0 +1,50 @@
+{ lib, stdenvNoCC, fetchFromGitHub, makeWrapper, curl, jq, coreutils }:
+
+stdenvNoCC.mkDerivation {
+  pname = "discord-sh";
+  version = "unstable-2022-05-19";
+
+  src = fetchFromGitHub {
+    owner = "ChaoticWeg";
+    repo = "discord.sh";
+    rev = "6aaea548f88eb48b7adeef824fbddac1c4749447";
+    sha256 = "sha256-RoPhn/Ot4ID1nEbZEz1bd2iq8g7mU2e7kwNRvZOD/pc=";
+  };
+
+  # ignore Makefile by disabling buildPhase. Upstream Makefile tries to download
+  # binaries from the internet for linting
+  dontBuild = true;
+
+  # discord.sh looks for the .webhook file in the source code directory, which
+  # isn't mutable on Nix
+  postPatch = ''
+    substituteInPlace discord.sh \
+      --replace 'thisdir="$(cd "$(dirname "$(readlink -f "''${BASH_SOURCE[0]}")")" && pwd)"' 'thisdir="$(pwd)"'
+  '';
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  doInstallCheck = true;
+
+  installCheckPhase = ''
+    runHook preCheck
+    $out/bin/discord.sh --help
+    runHook postCheck
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm555 discord.sh $out/bin/discord.sh
+    wrapProgram $out/bin/discord.sh \
+      --set PATH "${lib.makeBinPath [ curl jq coreutils ]}"
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    description = "Write-only command-line Discord webhook integration written in 100% Bash script";
+    homepage = "https://github.com/ChaoticWeg/discord.sh";
+    license = licenses.gpl3;
+    platforms = platforms.unix;
+    maintainers = with maintainers; [ matthewcroughan ];
+  };
+}
diff --git a/pkgs/tools/networking/dnsmon-go/default.nix b/pkgs/tools/networking/dnsmon-go/default.nix
new file mode 100644
index 0000000000000..26f705c67fb86
--- /dev/null
+++ b/pkgs/tools/networking/dnsmon-go/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "dnsmon-go";
+  version = "unstable-2022-05-13";
+
+  src = fetchFromGitHub {
+    owner = "jonpulsifer";
+    repo = pname;
+    rev = "ec1d59f1f1314ce310ad4c04d2924e0ebd857f1d";
+    hash = "sha256-lAJ2bjs5VLzrHd09eFK4X0V/cCee2QsgdgiKq+y2c10=";
+  };
+
+  vendorSha256 = "sha256-aiX+NGUsFK0N9vC5baAHHMr28CbF5Xa4WgYLFFLBYTs=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  meta = with lib; {
+    description = "Tool to collect DNS traffic";
+    homepage = "https://github.com/jonpulsifer/dnsmon-go";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/networking/dnsmonster/default.nix b/pkgs/tools/networking/dnsmonster/default.nix
new file mode 100644
index 0000000000000..e222ae9a407c4
--- /dev/null
+++ b/pkgs/tools/networking/dnsmonster/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "dnsmonster";
+  version = "0.9.3";
+
+  src = fetchFromGitHub {
+    owner = "mosajjal";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-1tYC76g3GOqMaosAYYXOrOKTdW7muPTaeeLzGUsjogE=";
+  };
+
+  vendorSha256 = "sha256-2gWifzBjAx+c/if6ZZQ/s73oPPTY9eJfHYL4F/058h0=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/mosajjal/dnsmonster/util.releaseVersion=${version}"
+  ];
+
+  meta = with lib; {
+    description = "Passive DNS Capture and Monitoring Toolkit";
+    homepage = "https://github.com/mosajjal/dnsmonster";
+    changelog = "https://github.com/mosajjal/dnsmonster/releases/tag/v${version}";
+    license = licenses.gpl2Only;
+    maintainers = with maintainers; [ fab ];
+    broken = stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/tools/networking/fdm/default.nix b/pkgs/tools/networking/fdm/default.nix
index 608b669535d46..7e66fde030342 100644
--- a/pkgs/tools/networking/fdm/default.nix
+++ b/pkgs/tools/networking/fdm/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fdm";
-  version = "2.0";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "nicm";
     repo = pname;
     rev = version;
-    sha256 = "0j2n271ni5wslgjq1f4zgz1nsvqjf895dxy3ij5c904bbp8ckcwq";
+    sha256 = "sha256-w7jgFq/uWGTF8+CsQCwXKu3eJ7Yjp1WWY4DGQhpBFmQ=";
   };
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/networking/frp/default.nix b/pkgs/tools/networking/frp/default.nix
index 5e39491096f27..864893b1467af 100644
--- a/pkgs/tools/networking/frp/default.nix
+++ b/pkgs/tools/networking/frp/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "frp";
-  version = "0.42.0";
+  version = "0.43.0";
 
   src = fetchFromGitHub {
     owner = "fatedier";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-Ubc9jRZ+rkJ5TelizP6z9Hef6TkypfGMhZN+H4Awdqc=";
+    sha256 = "sha256-ked1emPx9pOz54s4ViutY41s7sQG+IjX/eZJkX15IGo=";
   };
 
   vendorSha256 = "sha256-5ljUbEvynNo1AxGpJq9B0bTFgzVfgVZbsqXcPBERLMI=";
diff --git a/pkgs/tools/networking/ghostunnel/default.nix b/pkgs/tools/networking/ghostunnel/default.nix
index f6986a1516b37..16350850163e3 100644
--- a/pkgs/tools/networking/ghostunnel/default.nix
+++ b/pkgs/tools/networking/ghostunnel/default.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "ghostunnel";
-  version = "1.6.0";
+  version = "1.6.1";
 
   src = fetchFromGitHub {
     owner = "ghostunnel";
     repo = "ghostunnel";
     rev = "v${version}";
-    sha256 = "sha256-EE8gCm/gOp3lmCx1q4PahulipLoBZnEatNAVUXzHIVw=";
+    sha256 = "sha256-VameENcHZ6AttV0D8ekPGGFoMHTiTXAY2FxK/Nxwjmk=";
   };
 
-  vendorSha256 = "sha256-XgmvqB1PCfL2gSDqwqauSixk8vlINHRmX6U0h9EXXdU=";
+  vendorSha256 = null;
 
   deleteVendor = true;
 
diff --git a/pkgs/tools/networking/gnirehtet/default.nix b/pkgs/tools/networking/gnirehtet/default.nix
index 123ab3d76eef6..d0c5e92236fd1 100644
--- a/pkgs/tools/networking/gnirehtet/default.nix
+++ b/pkgs/tools/networking/gnirehtet/default.nix
@@ -43,6 +43,10 @@ rustPlatform.buildRustPackage {
       This relies on adb, make sure you have the required permissions/udev rules.
     '';
     homepage = "https://github.com/Genymobile/gnirehtet";
+    sourceProvenance = with sourceTypes; [
+      fromSource
+      binaryBytecode  # gnirehtet.apk
+    ];
     license = licenses.asl20;
     maintainers = with maintainers; [ symphorien ];
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/godns/default.nix b/pkgs/tools/networking/godns/default.nix
index 1e86d1c2ed086..063a8c34cffe4 100644
--- a/pkgs/tools/networking/godns/default.nix
+++ b/pkgs/tools/networking/godns/default.nix
@@ -2,16 +2,16 @@
 
 buildGoModule rec {
   pname = "godns";
-  version = "2.7.7";
+  version = "2.7.9";
 
   src = fetchFromGitHub {
     owner = "TimothyYe";
     repo = "godns";
     rev = "v${version}";
-    sha256 = "sha256-55A1dxVRIngfS43V+iM1RX2U6eQyPsIAHgyxKGO4yrY=";
+    sha256 = "sha256-gFleIRXYfO/gocyVyVzp3ZnJ6gUVmR7IAc0Z985YnVI=";
   };
 
-  vendorSha256 = "sha256-vhByl9oJjFIvOskAgLubZ5RCcitKd2jjxi8D9nU6850=";
+  vendorSha256 = "sha256-tXH62HyA/pJxt69GWkVrJ4VrA16KfpEtpK/YKiUkvtU=";
 
   # Some tests require internet access, broken in sandbox
   doCheck = false;
diff --git a/pkgs/tools/networking/mu/default.nix b/pkgs/tools/networking/mu/default.nix
index fd140bfe55edc..ec5b13b34f26e 100644
--- a/pkgs/tools/networking/mu/default.nix
+++ b/pkgs/tools/networking/mu/default.nix
@@ -1,53 +1,46 @@
-{ lib, stdenv, fetchFromGitHub, sqlite, pkg-config, autoreconfHook, pmccabe
-, xapian, glib, gmime3, texinfo, emacs, guile
-, gtk3, webkitgtk, libsoup, icu
-, makeWrapper
-, withMug ? false
-, batchSize ? null }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, meson
+, ninja
+, pkg-config
+, coreutils
+, emacs
+, glib
+, gmime3
+, texinfo
+, xapian
+}:
 
 stdenv.mkDerivation rec {
   pname = "mu";
-  version = "1.6.11";
+  version = "1.8.1";
 
   src = fetchFromGitHub {
     owner  = "djcb";
     repo   = "mu";
-    rev    = version;
-    sha256 = "E/6+vEwYXk65/ZoAtUeTjvg56g6gz+Qtcaz0qwEru6c=";
+    rev    = "v${version}";
+    sha256 = "dFYITyO9znocf9fv3eh2h83NM3RDYcpDV/uxOISChZo=";
   };
 
-  postPatch = lib.optionalString (batchSize != null) ''
-    sed -i lib/mu-store.cc --regexp-extended \
-      -e 's@(constexpr auto BatchSize).*@\1 = ${toString batchSize};@'
-  '';
+  postPatch = ''
+      # Fix mu4e-builddir (set it to $out)
+      substituteInPlace mu4e/mu4e-config.el.in \
+        --replace "@abs_top_builddir@" "$out"
+      substituteInPlace lib/utils/mu-utils.cc \
+        --replace "/bin/rm" "${coreutils}/bin/rm"
+    '';
 
-  buildInputs = [
-    sqlite xapian glib gmime3 texinfo emacs libsoup icu
-  ]
-    # Workaround for https://github.com/djcb/mu/issues/1641
-    ++ lib.optional (!stdenv.isDarwin) guile
-    ++ lib.optionals withMug [ gtk3 webkitgtk ];
+  buildInputs = [ emacs glib gmime3 texinfo xapian ];
 
-  nativeBuildInputs = [ pkg-config autoreconfHook pmccabe makeWrapper ];
+  mesonFlags = [
+    "-Dguile=disabled"
+    "-Dreadline=disabled"
+  ];
 
-  enableParallelBuilding = true;
+  nativeBuildInputs = [ pkg-config meson ninja ];
 
-  preBuild = ''
-    # Fix mu4e-builddir (set it to $out)
-    substituteInPlace mu4e/mu4e-meta.el.in \
-      --replace "@abs_top_builddir@" "$out"
-  '';
-
-  # Make sure included scripts can find their dependencies & optionally install mug
-  postInstall = ''
-    wrapProgram "$out/bin/mu" \
-      --prefix LD_LIBRARY_PATH : "$out/lib" \
-      --prefix GUILE_LOAD_PATH : "$out/share/guile/site/2.2"
-  '' + lib.optionalString withMug ''
-    for f in mug ; do
-      install -m755 toys/$f/$f $out/bin/$f
-    done
-  '';
+  enableParallelBuilding = true;
 
   doCheck = true;
 
@@ -55,7 +48,7 @@ stdenv.mkDerivation rec {
     description = "A collection of utilties for indexing and searching Maildirs";
     license = licenses.gpl3Plus;
     homepage = "https://www.djcbsoftware.nl/code/mu/";
-    changelog = "https://github.com/djcb/mu/releases/tag/${version}";
+    changelog = "https://github.com/djcb/mu/releases/tag/v${version}";
     maintainers = with maintainers; [ antono chvp peterhoeg ];
     platforms = platforms.mesaPlatforms;
   };
diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix
index 5dc59f9590f5d..97a029d353b2d 100644
--- a/pkgs/tools/networking/networkmanager/default.nix
+++ b/pkgs/tools/networking/networkmanager/default.nix
@@ -54,11 +54,11 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "networkmanager";
-  version = "1.38.0";
+  version = "1.38.2";
 
   src = fetchurl {
     url = "mirror://gnome/sources/NetworkManager/${lib.versions.majorMinor version}/NetworkManager-${version}.tar.xz";
-    sha256 = "sha256-gqTPB93+sIFnh7Z8D1BYrmxQ1iWcCwVBok41FWBisu8=";
+    sha256 = "sha256-nP/SrcaGUTFt8tL4oJ4XF7sdDC6jic/HIaAQnbmzWCY=";
   };
 
   outputs = [ "out" "dev" "devdoc" "man" "doc" ];
@@ -119,6 +119,22 @@ stdenv.mkDerivation rec {
     # Meson does not support using different directories during build and
     # for installation like Autotools did with flags passed to make install.
     ./fix-install-paths.patch
+
+    (fetchpatch {
+      # Prevent downgrade to plain network on Enhanced Open profiles
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/b7946e50acc0d20d31b0c1098fdadc2f105ba799.patch";
+      hash = "sha256-CdZiubfqhJQ5w4+s9O8C5WI9Ls/paONzDX4rX6yEmS0=";
+    })
+    (fetchpatch {
+      # Treat OWE BSSIDs as valid candidates for open profiles
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/dd80cdcc1bd5e2535b8e4a1d1d0c62f1d3328a7c.patch";
+      hash = "sha256-QMZvWN3g8K+UH6y05+RkCmF+gHHU4pB+UXfU770AUis=";
+    })
+    (fetchpatch {
+      # Allow distinguishing pure OWE networks from those with transition mode enabled
+      url = "https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/commit/13ea8d2e7dddd8279c82230594cea533ca349dd3.patch";
+      hash = "sha256-BiINGzX/Zp8pwdbMiDScrZvrHtH7coXkZm1HScFuFWA=";
+    })
   ];
 
   buildInputs = [
diff --git a/pkgs/tools/networking/networkmanager/libnma/default.nix b/pkgs/tools/networking/networkmanager/libnma/default.nix
index a14ba1663d331..4993068d2a515 100644
--- a/pkgs/tools/networking/networkmanager/libnma/default.nix
+++ b/pkgs/tools/networking/networkmanager/libnma/default.nix
@@ -26,13 +26,13 @@
 
 stdenv.mkDerivation rec {
   pname = "libnma";
-  version = "1.8.38";
+  version = "1.8.40";
 
   outputs = [ "out" "dev" "devdoc" ];
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
-    sha256 = "Xtk+rhhFb/WopPQIF4we4ZjcjTpGxl+QdbEBkW5k6LQ=";
+    sha256 = "hwp1+NRkHtDZD4Nq6m/1ESJL3pf/1W1git4um1rLKyI=";
   };
 
   patches = [
diff --git a/pkgs/tools/networking/ngrok-2/versions.json b/pkgs/tools/networking/ngrok-2/versions.json
deleted file mode 100644
index 85b0e47168a2c..0000000000000
--- a/pkgs/tools/networking/ngrok-2/versions.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-  "linux-386": {
-    "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/c4ZY6f7svn7/ngrok-2.3.40-linux-386",
-    "sha256": "1b645ff0abbb28ca7c0f6a2109653be2dc281860b582b4de6927fde12c99da26",
-    "version": "2.3.40"
-  },
-  "linux-amd64": {
-    "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/b5PAmc6L9z2/ngrok-2.3.40-linux-amd64",
-    "sha256": "218d267cd1195334718bafac14bfdf1c19dc95dcf8a24aaa6a1383c21dc86e76",
-    "version": "2.3.40"
-  },
-  "linux-arm": {
-    "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/aRh9rdUAJyf/ngrok-2.3.40-linux-arm",
-    "sha256": "538a7431df141a929a250eaf6ed7afdcce817bcd8cfe60b61f4c6d7a289b1d1c",
-    "version": "2.3.40"
-  },
-  "linux-arm64": {
-    "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/2gpRjDRBpJv/ngrok-2.3.40-linux-arm64",
-    "sha256": "dc7b4465ef95f6d04d1b1996111b3a2631e5f464d7dca7f4994f59ea4edbe21f",
-    "version": "2.3.40"
-  },
-  "darwin-amd64": {
-    "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/fcZQXtHSDgM/ngrok-2.3.40-darwin-amd64",
-    "sha256": "80c8fb121d6c93350d84351d9516674f4e20a3e003cdd7dcb4c3e7c48b9c5b07",
-    "version": "2.3.40"
-  },
-  "darwin-arm64": {
-    "sys": "darwin-arm64",
-    "url": "https://bin.equinox.io/a/3TEKdZeyAnt/ngrok-2.3.40-darwin-arm64",
-    "sha256": "c9e6dfec454f9faec92a13dfd3f3857de982007e3b85987bb875aa0d74ca8101",
-    "version": "2.3.40"
-  }
-}
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok/default.nix
index 6093cea40f079..f12ae31a541ea 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok/default.nix
@@ -40,8 +40,9 @@ stdenv.mkDerivation {
   meta = {
     description = "Allows you to expose a web server running on your local machine to the internet";
     homepage = "https://ngrok.com/";
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
-    maintainers = [ maintainers.bobvanderlinden ];
+    maintainers = with maintainers; [ bobvanderlinden brodes ];
   };
 }
diff --git a/pkgs/tools/networking/ngrok-2/update.sh b/pkgs/tools/networking/ngrok/update.sh
index 4e2aaf4e5596b..ed2d975bee2f0 100755
--- a/pkgs/tools/networking/ngrok-2/update.sh
+++ b/pkgs/tools/networking/ngrok/update.sh
@@ -10,7 +10,7 @@ get_download_info() {
          https://update.equinox.io/check \
          'Accept:application/json; q=1; version=1; charset=utf-8' \
          'Content-Type:application/json; charset=utf-8' \
-         app_id=app_goVRodbMVm \
+         app_id=app_c3U4eZcDbjV \
          channel=stable \
          os=$1 \
          goarm= \
@@ -31,4 +31,4 @@ get_download_info() {
     get_download_info darwin amd64
     get_download_info darwin arm64
 ) | jq --slurp 'map ({ (.sys): . }) | add' \
-    > pkgs/tools/networking/ngrok-2/versions.json
+    > pkgs/tools/networking/ngrok/versions.json
diff --git a/pkgs/tools/networking/ngrok/versions.json b/pkgs/tools/networking/ngrok/versions.json
new file mode 100644
index 0000000000000..0ee279a888266
--- /dev/null
+++ b/pkgs/tools/networking/ngrok/versions.json
@@ -0,0 +1,38 @@
+{
+  "linux-386": {
+    "sys": "linux-386",
+    "url": "https://bin.equinox.io/a/fZXabEBxqTt/ngrok-v3-3.0.4-linux-386",
+    "sha256": "94c106392171a537d45ff5db749ce064d721b7c2204c7c951b9e9bfd96fd41f5",
+    "version": "3.0.4"
+  },
+  "linux-amd64": {
+    "sys": "linux-amd64",
+    "url": "https://bin.equinox.io/a/fydLsfbG16K/ngrok-v3-3.0.4-linux-amd64",
+    "sha256": "1d93dfcbcf8f1be3a21460022b5644228f9dcc2e71012bd61fcfb39ddf2a7a89",
+    "version": "3.0.4"
+  },
+  "linux-arm": {
+    "sys": "linux-arm",
+    "url": "https://bin.equinox.io/a/8Fzm6mvbW6H/ngrok-v3-3.0.4-linux-arm",
+    "sha256": "d9bf182808f254bea7f177f7dc814dbfa0f3a5ee2aea18cfabac7975a9c6397e",
+    "version": "3.0.4"
+  },
+  "linux-arm64": {
+    "sys": "linux-arm64",
+    "url": "https://bin.equinox.io/a/NGErr1qsBJ/ngrok-v3-3.0.4-linux-arm64",
+    "sha256": "26174fa2a0c22cf44fff118658348d6e4bfa8d60e4cfc092dedc4a0223427916",
+    "version": "3.0.4"
+  },
+  "darwin-amd64": {
+    "sys": "darwin-amd64",
+    "url": "https://bin.equinox.io/a/RZEPEGHd2t/ngrok-v3-3.0.4-darwin-amd64",
+    "sha256": "a7eca7635e6174174880a79d51e2d9c4ec32e15752751d5427f70ecf59f9f8e2",
+    "version": "3.0.4"
+  },
+  "darwin-arm64": {
+    "sys": "darwin-arm64",
+    "url": "https://bin.equinox.io/a/dxEFAXR7WZr/ngrok-v3-3.0.4-darwin-arm64",
+    "sha256": "6db91466407e9538a4f598cc362e8be292d4621f8b331e0d0818e1c672decc66",
+    "version": "3.0.4"
+  }
+}
diff --git a/pkgs/tools/networking/norouter/default.nix b/pkgs/tools/networking/norouter/default.nix
new file mode 100644
index 0000000000000..e0f6a8f3aee2f
--- /dev/null
+++ b/pkgs/tools/networking/norouter/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "norouter";
+  version = "0.6.4";
+
+  src = fetchFromGitHub {
+    owner = "norouter";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0h5jzxm4fw50781zj76r5ksnxkzsnrygrykpa913v9nd24c09c7m";
+  };
+
+  vendorSha256 = "sha256-DZ2kcNV8AzNogAUTaeus4rz9gCFo0wm306jcz/cAj0M=";
+
+  subPackages = [ "cmd/norouter" ];
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/norouter --version | grep ${version} > /dev/null
+
+    runHook postInstallCheck
+  '';
+
+  meta = with lib; {
+    description = "Tool to handle unprivileged networking by using multiple loopback addresses";
+    homepage = "https://github.com/norouter/norouter";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ blaggacao ];
+  };
+}
diff --git a/pkgs/tools/networking/offlineimap/default.nix b/pkgs/tools/networking/offlineimap/default.nix
index 98aabadf6da33..aa9c588e25312 100644
--- a/pkgs/tools/networking/offlineimap/default.nix
+++ b/pkgs/tools/networking/offlineimap/default.nix
@@ -32,7 +32,6 @@ python3.pkgs.buildPythonApplication rec {
     certifi
     distro
     imaplib2
-    kerberos
     pysocks
     rfc6555
     urllib3
diff --git a/pkgs/tools/networking/ookla-speedtest/default.nix b/pkgs/tools/networking/ookla-speedtest/default.nix
index c9e58174f85e3..2ba9f0cfb2fdb 100644
--- a/pkgs/tools/networking/ookla-speedtest/default.nix
+++ b/pkgs/tools/networking/ookla-speedtest/default.nix
@@ -41,6 +41,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "Command line internet speedtest tool by Ookla";
     homepage = "https://www.speedtest.net/apps/cli";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ kranzes ];
     platforms = lib.attrNames srcs;
diff --git a/pkgs/tools/networking/p2p/amule/default.nix b/pkgs/tools/networking/p2p/amule/default.nix
index fc389f2c4dc4a..9431da7cf468c 100644
--- a/pkgs/tools/networking/p2p/amule/default.nix
+++ b/pkgs/tools/networking/p2p/amule/default.nix
@@ -80,6 +80,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
     # cmake fails: Cannot specify link libraries for target "wxWidgets::ADV" which is not built by this project.
-    broken = enableDaemon;
+    broken = enableDaemon || stdenv.isDarwin;
   };
 }
diff --git a/pkgs/tools/networking/pykms/default.nix b/pkgs/tools/networking/pykms/default.nix
index d648ff3ec1ed1..fac532110d2f2 100644
--- a/pkgs/tools/networking/pykms/default.nix
+++ b/pkgs/tools/networking/pykms/default.nix
@@ -37,15 +37,15 @@ pypkgs.buildPythonApplication rec {
   version = "unstable-2021-01-25";
 
   src = fetchFromGitHub {
-    owner = "SystemRage";
+    owner = "Py-KMS-Organization";
     repo = "py-kms";
-    rev = "a3b0c85b5b90f63b33dfa5ae6085fcd52c6da2ff";
-    sha256 = "sha256-u0R0uJMQxHnJUDenxglhQkZza3/1DcyXCILcZVceygA=";
+    rev = "1435c86fe4f11aa7fd42d77fa61715ca3015eeab";
+    hash = "sha256-9KiMbS0uKTbWSZVIv5ziIeR9c8+EKfKd20yPmjCX7GQ=";
   };
 
   sourceRoot = "source/py-kms";
 
-  propagatedBuildInputs = with pypkgs; [ systemd pytz tzlocal ];
+  propagatedBuildInputs = with pypkgs; [ systemd pytz tzlocal dnspython ];
 
   postPatch = ''
     siteDir=$out/${python3.sitePackages}
@@ -64,11 +64,14 @@ pypkgs.buildPythonApplication rec {
 
     mkdir -p $siteDir
 
+    PYTHONPATH="$PYTHONPATH:$siteDir"
+
     mv * $siteDir
     for b in Client Server ; do
       makeWrapper ${python3.interpreter} $out/bin/''${b,,} \
         --argv0 pykms-''${b,,} \
-        --add-flags $siteDir/pykms_$b.py
+        --add-flags $siteDir/pykms_$b.py \
+        --set PYTHONPATH $PYTHONPATH
     done
 
     install -Dm755 ${dbScript} $out/libexec/create_pykms_db.sh
@@ -82,8 +85,8 @@ pypkgs.buildPythonApplication rec {
 
   meta = with lib; {
     description = "Windows KMS (Key Management Service) server written in Python";
-    homepage = "https://github.com/SystemRage/py-kms";
+    homepage = "https://github.com/Py-KMS-Organization/py-kms";
     license = licenses.unlicense;
-    maintainers = with maintainers; [ peterhoeg ];
+    maintainers = with maintainers; [ peterhoeg zopieux ];
   };
 }
diff --git a/pkgs/tools/networking/routedns/default.nix b/pkgs/tools/networking/routedns/default.nix
new file mode 100644
index 0000000000000..4cf2c9eeeed8b
--- /dev/null
+++ b/pkgs/tools/networking/routedns/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "routedns";
+  version = "0.1.5";
+
+  src = fetchFromGitHub {
+    owner = "folbricht";
+    repo = "routedns";
+    # https://github.com/folbricht/routedns/issues/237
+    rev = "02f14a567fee2a289810979446f5260b8a31bf73";
+    sha256 = "sha256-oImimNBz1qizUPD6qHi73fGKNCu5cii99GIUo21e+bs=";
+  };
+
+  vendorSha256 = "sha256-T6adpxJgOPGy+UOOlGAAf1gjk1wJxwOc9enfv9X3LBE=";
+
+  subPackages = [ "./cmd/routedns" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/folbricht/routedns";
+    description = "DNS stub resolver, proxy and router";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ jsimonetti ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/networking/s3gof3r/default.nix b/pkgs/tools/networking/s3gof3r/default.nix
deleted file mode 100644
index 2e3b838408796..0000000000000
--- a/pkgs/tools/networking/s3gof3r/default.nix
+++ /dev/null
@@ -1,25 +0,0 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "s3gof3r";
-  version = "0.5.0";
-
-  goPackagePath = "github.com/rlmcpherson/s3gof3r";
-
-  src = fetchFromGitHub {
-    owner = "rlmcpherson";
-    repo = "s3gof3r";
-    rev = "v${version}";
-    sha256 = "sha256-88C6c4DRD/4ePTO1+1YiI8ApXWE2uUlr07dDCxGzaoE=";
-  };
-
-  goDeps = ./deps.nix;
-
-  meta = with lib; {
-    description = "Fast, concurrent, streaming access to Amazon S3, including gof3r, a CLI";
-    homepage = "https://pkg.go.dev/github.com/rlmcpherson/s3gof3r";
-    maintainers = with maintainers; [ ];
-    mainProgram = "gof3r";
-    license = licenses.mit;
-  };
-}
diff --git a/pkgs/tools/networking/s3gof3r/deps.nix b/pkgs/tools/networking/s3gof3r/deps.nix
deleted file mode 100644
index 49c5d600be2fa..0000000000000
--- a/pkgs/tools/networking/s3gof3r/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-  {
-    goPackagePath = "github.com/jessevdk/go-flags";
-    fetch = {
-      type = "git";
-      url = "https://github.com/jessevdk/go-flags";
-      rev = "1b89bf73cd2c3a911d7b2a279ab085c4a18cf539";
-      sha256 = "027nglc5xx1cm03z9sisg0iqrhwcj6gh5z254rrpl8p4fwrxx680";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/vde2/default.nix b/pkgs/tools/networking/vde2/default.nix
index 31d4f9e3ff57b..c14aa8bb3c13b 100644
--- a/pkgs/tools/networking/vde2/default.nix
+++ b/pkgs/tools/networking/vde2/default.nix
@@ -1,22 +1,17 @@
-{ lib, stdenv, fetchurl, fetchpatch, openssl, libpcap, python2, withPython ? false }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, autoreconfHook, libpcap, wolfssl }:
 
 stdenv.mkDerivation rec {
   pname = "vde2";
-  version = "2.3.2";
+  version = "2.3.3";
 
-  src = fetchurl {
-    url = "mirror://sourceforge/vde/vde2/${version}/vde2-${version}.tar.gz";
-    sha256 = "14xga0ib6p1wrv3hkl4sa89yzjxv7f1vfqaxsch87j6scdm59pr2";
+  src = fetchFromGitHub {
+    owner = "virtualsquare";
+    repo = "vde-2";
+    rev = "v${version}";
+    sha256 = "sha256-Yf6QB7j5lYld2XtqhYspK4037lTtimoFc7nCavCP+mU=";
   };
 
-  patches = [
-    # Fix build with openssl 1.1.0
-    (fetchpatch {
-      name = "vde_cryptcab-compile-against-openssl-1.1.0.patch";
-      url = "https://raw.githubusercontent.com/archlinux/svntogit-packages/15b11be49997fa94b603e366064690b7cc6bce61/trunk/vde_cryptcab-compile-against-openssl-1.1.0.patch";
-      sha256 = "07z1yabwigq35mkwzqa934n7vjnjlqz5xfzq8cfj87lgyjjp00qi";
-    })
-  ] ++ lib.optional stdenv.hostPlatform.isMusl [
+  patches = lib.optional stdenv.hostPlatform.isMusl [
     (fetchpatch {
       url = "https://git.alpinelinux.org/aports/plain/main/vde2/musl-build-fix.patch?id=ddee2f86a48e087867d4a2c12849b2e3baccc238";
       sha256 = "0b5382v541bkxhqylilcy34bh83ag96g71f39m070jzvi84kx8af";
@@ -27,19 +22,9 @@ stdenv.mkDerivation rec {
     MACOSX_DEPLOYMENT_TARGET=10.16
   '';
 
-  configureFlags = lib.optional (!withPython) "--disable-python";
-
-  buildInputs = [ openssl libpcap ]
-    ++ lib.optional withPython python2;
-
-  hardeningDisable = [ "format" ];
+  nativeBuildInputs = [ autoreconfHook ];
 
-  # Disable parallel build as it fails as:
-  #   make: *** No rule to make target '../../src/lib/libvdemgmt.la',
-  #    needed by 'libvdesnmp.la'.  Stop.
-  # Next release should address it with
-  #     https://github.com/virtualsquare/vde-2/commit/7dd9ed46d5dca125ca45d679ac9f3acbfb0f9300.patch
-  enableParallelBuilding = false;
+  buildInputs = [ libpcap wolfssl ];
 
   meta = with lib; {
     homepage = "https://github.com/virtualsquare/vde-2";
diff --git a/pkgs/tools/networking/vegeta/default.nix b/pkgs/tools/networking/vegeta/default.nix
index 16abe8c60335e..6e7bbaa8366bf 100644
--- a/pkgs/tools/networking/vegeta/default.nix
+++ b/pkgs/tools/networking/vegeta/default.nix
@@ -1,25 +1,40 @@
-{ lib, fetchFromGitHub, buildGoPackage }:
+{ lib
+, fetchFromGitHub
+, buildGoModule
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "vegeta";
   version = "12.8.4";
+  rev = "e04d9c0df8177e8633bff4afe7b39c2f3a9e7dea";
 
   src = fetchFromGitHub {
-    owner  = "tsenart";
-    repo   = pname;
-    rev    = "v${version}";
-    sha256 = "0sw10k4g370c544dgw2c1sqdnxryld8lf6c1wnyknrm3zsfzn1hl";
+    owner = "tsenart";
+    repo = "vegeta";
+    rev = "v${version}";
+    sha256 = "sha256-FAb7nf6jZju95YEZR1GjPnfbsA5M8NcIKQyc8cgEgWs=";
   };
 
-  goPackagePath = "github.com/tsenart/${pname}";
+  vendorSha256 = "sha256-v9Hu9eQJSmm4Glt49F7EN40rKjrg4acyll9Bfgey+Mw=";
 
-  goDeps = ./deps.nix;
+  subPackages = [ "." ];
+
+  ldflags = (lib.mapAttrsToList (n: v: "-X main.${n}=${v}") {
+    Version = version;
+    Commit = rev;
+    Date = "1970-01-01T00:00:00Z";
+  }) ++ [ "-s" "-w" "-extldflags '-static'" ];
 
   meta = with lib; {
     description = "Versatile HTTP load testing tool";
-    license = licenses.mit;
+    longDescription = ''
+      Vegeta is a versatile HTTP load testing tool built out of a need to drill
+      HTTP services with a constant request rate. It can be used both as a
+      command line utility and a library.
+    '';
     homepage = "https://github.com/tsenart/vegeta/";
-    maintainers = [ maintainers.mmahut ];
+    changelog = "https://github.com/tsenart/vegeta/releases/tag/${src.rev}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mmahut ];
   };
 }
-
diff --git a/pkgs/tools/networking/vegeta/deps.nix b/pkgs/tools/networking/vegeta/deps.nix
deleted file mode 100644
index 1a06ad178ec44..0000000000000
--- a/pkgs/tools/networking/vegeta/deps.nix
+++ /dev/null
@@ -1,255 +0,0 @@
-# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
-[
-  {
-    goPackagePath = "github.com/alecthomas/jsonschema";
-    fetch = {
-      type = "git";
-      url = "https://github.com/alecthomas/jsonschema";
-      rev = "f2c93856175a";
-      sha256 = "145w6zg453mbspfyixs71xfjwi3djq20lij1rcgrdcn5gmwj2cal";
-    };
-  }
-  {
-    goPackagePath = "github.com/bmizerany/perks";
-    fetch = {
-      type = "git";
-      url = "https://github.com/bmizerany/perks";
-      rev = "d9a9656a3a4b";
-      sha256 = "0f39b3zfm1zd6xcvlm6szgss026qs84n2j9y5bnb3zxzdkxb9w9n";
-    };
-  }
-  {
-    goPackagePath = "github.com/c2h5oh/datasize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/c2h5oh/datasize";
-      rev = "4eba002a5eae";
-      sha256 = "02sxd659q7m7axfywiqfxk5rh6djh2m5240bin1makldj1nj16j3";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-gk";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-gk";
-      rev = "201884a44051";
-      sha256 = "17csmdlqibg5g2pjybh4522dis6nklyhjvly55pawy0vprd17agz";
-    };
-  }
-  {
-    goPackagePath = "github.com/dgryski/go-lttb";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dgryski/go-lttb";
-      rev = "318fcdf10a77";
-      sha256 = "0cs2rr2j6fbbpgmfxkq39pir4bibfzkfwxvd2cvw30q97cmfpiz3";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/blas";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/blas";
-      rev = "f22b278b28ac";
-      sha256 = "0dh73akv4gazyhva9xbm9xbq786vij8iisivp3p65p6ahf502fs6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/diff";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/diff";
-      rev = "500114f11e71";
-      sha256 = "1bg4k3bxqb44nz1nmyigr5bx55859n55vvi45w2rq4y5djvpral8";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/floats";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/floats";
-      rev = "c233463c7e82";
-      sha256 = "12m7pa64mk3am2i10agg6c1aqdfgx9i3f4bgf3w7wra8bnnjncp6";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/integrate";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/integrate";
-      rev = "a422b5c0fdf2";
-      sha256 = "01wfav882h3bcp137cd2bsr91hkmmi4d6qwhdm0xv1p2z2qzs7iq";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/internal";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/internal";
-      rev = "f884aa714029";
-      sha256 = "038w8pc82vxq773qg0mw472f3p8h5vkh3ggcdn09qd3s6myp2zq7";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/lapack";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/lapack";
-      rev = "e4cdc5a0bff9";
-      sha256 = "046fffskysg0bmha16s5582bimpis0m6qd7c7k1n65a0qhrslli1";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/mathext";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/mathext";
-      rev = "8a4bf007ea55";
-      sha256 = "044xy32mgcjc5948na6f6fgqqq17canw3z6sppidmj52s17p0k7i";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/matrix";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/matrix";
-      rev = "c518dec07be9";
-      sha256 = "0i6pyxxhcy2s9as77g90dsj9xya48775dl5fxgvqal665cxc4l4i";
-    };
-  }
-  {
-    goPackagePath = "github.com/gonum/stat";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gonum/stat";
-      rev = "41a0da705a5b";
-      sha256 = "0r9mqiy3ma0c15p57bz4xq2vf105s9g1lqysb7ff0nip4050cpvn";
-    };
-  }
-  {
-    goPackagePath = "github.com/google/go-cmp";
-    fetch = {
-      type = "git";
-      url = "https://github.com/google/go-cmp";
-      rev = "v0.2.0";
-      sha256 = "1fbv0x27k9sn8svafc0hjwsnckk864lv4yi7bvzrxvmd3d5hskds";
-    };
-  }
-  {
-    goPackagePath = "github.com/influxdata/tdigest";
-    fetch = {
-      type = "git";
-      url = "https://github.com/influxdata/tdigest";
-      rev = "a7d76c6f093a";
-      sha256 = "02jxrb2d1n6zflwa7jhgid5344l6zj4gxg4kis20v7xa6iqrj1ni";
-    };
-  }
-  {
-    goPackagePath = "github.com/mailru/easyjson";
-    fetch = {
-      type = "git";
-      url = "https://github.com/mailru/easyjson";
-      rev = "v0.7.0";
-      sha256 = "13zv5fvjp3nr65lhqhiw6i6mlmqvyls882rlmcas0ab35alsxni8";
-    };
-  }
-  {
-    goPackagePath = "github.com/miekg/dns";
-    fetch = {
-      type = "git";
-      url = "https://github.com/miekg/dns";
-      rev = "v1.1.17";
-      sha256 = "0x0375n7n1qmgyn7yvpr65z4ll4l39q2xagyfafw09h3kkrkpka8";
-    };
-  }
-  {
-    goPackagePath = "github.com/streadway/quantile";
-    fetch = {
-      type = "git";
-      url = "https://github.com/streadway/quantile";
-      rev = "b0c588724d25";
-      sha256 = "1y27nrg7wkyrvw07a5s7wl4lpwxshwyvhzc6i0rzn20dajah2vkh";
-    };
-  }
-  {
-    goPackagePath = "github.com/tsenart/go-tsz";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tsenart/go-tsz";
-      rev = "cdeb9e1e981e";
-      sha256 = "1lgnllx810ly0203jn9vkimcwqv3302mnh9d7mip1yyq4cmvlj3b";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/crypto";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/crypto";
-      rev = "9756ffdc2472";
-      sha256 = "0q7hxaaq6lp0v8qqzifvysl47z5rfdlrxkh3d29vsl3wyby3dxl8";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/net";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/net";
-      rev = "ba9fcec4b297";
-      sha256 = "1hbqvy6r0s5h0dpdqw8fynl3cq0acin3iyqki9xvl5r8h33yb9bx";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sync";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sync";
-      rev = "112230192c58";
-      sha256 = "05i2k43j2d0llq768hg5pf3hb2yhfzp9la1w5wp0rsnnzblr0lfn";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "749cb33beabd";
-      sha256 = "0dm3257q3rv2kyn5lmqqim2fqg634v6rhrqq4glvbk4wx4l3v337";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/text";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/text";
-      rev = "v0.3.2";
-      sha256 = "0flv9idw0jm5nm8lx25xqanbkqgfiym6619w575p7nrdh0riqwqh";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/tools";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/tools";
-      rev = "2ca718005c18";
-      sha256 = "1nl4cw8vrfigab0hij86vl2mmhfmyim69r7vy5qk2v60g8frvgxg";
-    };
-  }
-  {
-    goPackagePath = "golang.org/x/xerrors";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/xerrors";
-      rev = "a985d3407aa7";
-      sha256 = "00wzr5w8aadipgc3rkk8f11i41znskfj9ix5nhhaxyg7isrslgcj";
-    };
-  }
-  {
-    goPackagePath = "pgregory.net/rapid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/flyingmutant/rapid";
-      rev = "v0.3.3";
-      sha256 = "04w4dmx753b2xp5z5br5wxalgkkgag8qpbxics2gdcksqgi85vg3";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/waitron/default.nix b/pkgs/tools/networking/waitron/default.nix
index 4f2f634d4942d..7ef984147a322 100644
--- a/pkgs/tools/networking/waitron/default.nix
+++ b/pkgs/tools/networking/waitron/default.nix
@@ -1,29 +1,38 @@
-{ lib, buildGoPackage, fetchFromGitHub, fetchhg, fetchbzr, fetchsvn }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "waitron";
-  version = "unstable-2020-01-24";
-
-  goPackagePath = "github.com/ns1/waitron";
+  version = "unstable-2020-08-04";
+  rev = "2315857d94e3d1a1e79ac48f8f6a68d59d0ce300";
 
   src = fetchFromGitHub {
     owner = "ns1";
     repo = "waitron";
-    rev = "c96833619cbb0cf2bc71b1d7b534101e139cc6e6";
+    inherit rev;
     sha256 = "sha256-ZkGhEOckIOYGb6Yjr4I4e9cjAHDfksRwHW+zgOMZ/FE=";
   };
 
+  vendorSha256 = "sha256-grQFLo0BIIa/kNKF4vPw/V1WN9sxOucz6+wET2PBU1I=";
+
+  subPackages = [ "." ];
+
   patches = [
     ./staticfiles-directory.patch
   ];
 
-  goDeps = ./deps.nix;
-
-  meta = {
+  meta = with lib; {
     description = "A 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
+      specified inventory sources.
+    '';
     homepage = "https://github.com/ns1/waitron";
-    license =  lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ guibert ];
-    platforms = lib.platforms.linux;
+    license =  licenses.asl20;
+    maintainers = with maintainers; [ guibert ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/tools/networking/waitron/deps.nix b/pkgs/tools/networking/waitron/deps.nix
deleted file mode 100644
index 46369c783184f..0000000000000
--- a/pkgs/tools/networking/waitron/deps.nix
+++ /dev/null
@@ -1,57 +0,0 @@
-# This file was generated by https://github.com/kamilchm/go2nix v1.3.0
-[
-  {
-    goPackagePath = "github.com/flosch/pongo2";
-    fetch = {
-      type = "git";
-      url = "https://github.com/flosch/pongo2";
-      rev = "bbf5a6c351f4d4e883daa40046a404d7553e0a00";
-      sha256 = "0yqh58phznnxakm64w82gawrpndb0r85vsd1s7h244qqrq7w4avq";
-    };
-  }
-  {
-    goPackagePath = "github.com/gorilla/handlers";
-    fetch = {
-      type = "git";
-      url = "https://github.com/gorilla/handlers";
-      rev = "f08afc1876ad882db8074bcb8a4cc96107d3a5f4";
-      sha256 = "1ysm6sw3jqa3h8pb5qpqgh44g91c23n3as277sh0vyp7282290jq";
-    };
-  }
-  {
-    goPackagePath = "github.com/juju/errors";
-    fetch = {
-      type = "git";
-      url = "https://github.com/juju/errors";
-      rev = "d42613fe1ab9e303fc850e7a19fda2e8eeb6516e";
-      sha256 = "0qggzzvh9lzlfk8ixlyw8bw645rh0lrjrd367505hhl6cg18v8yf";
-    };
-  }
-  {
-    goPackagePath = "github.com/julienschmidt/httprouter";
-    fetch = {
-      type = "git";
-      url = "https://github.com/julienschmidt/httprouter";
-      rev = "8c9f31f047a304abedb5614d4a18a843cd5f4a40";
-      sha256 = "00f5ja1yslrjclx3sf29mzpcsrpfd15kkw5ygv7n4jsyb4v3xgj6";
-    };
-  }
-  {
-    goPackagePath = "github.com/satori/go.uuid";
-    fetch = {
-      type = "git";
-      url = "https://github.com/satori/go.uuid";
-      rev = "b2ce2384e17bbe0c6d34077efa39dbab3e09123b";
-      sha256 = "1yz4cx02377ijlf8mnn84j1dcmlwh8ncx7y3kw1zg2qw0z4x119c";
-    };
-  }
-  {
-    goPackagePath = "gopkg.in/yaml.v2";
-    fetch = {
-      type = "git";
-      url = "https://gopkg.in/yaml.v2";
-      rev = "53403b58ad1b561927d19068c655246f2db79d48";
-      sha256 = "1inf7svydzscwv9fcjd2rm61a4xjk6jkswknybmns2n58shimapw";
-    };
-  }
-]
diff --git a/pkgs/tools/networking/zerotierone/default.nix b/pkgs/tools/networking/zerotierone/default.nix
index 5a9239e2737ca..e06d8bb2f41dc 100644
--- a/pkgs/tools/networking/zerotierone/default.nix
+++ b/pkgs/tools/networking/zerotierone/default.nix
@@ -15,13 +15,13 @@
 
 let
   pname = "zerotierone";
-  version = "1.8.9";
+  version = "1.10.0";
 
   src = fetchFromGitHub {
     owner = "zerotier";
     repo = "ZeroTierOne";
     rev = version;
-    sha256 = "sha256-N1VqzjaFJRJiSG4qHqRy4Fs8TlkUqyDoq0/3JQdGwfA=";
+    sha256 = "sha256-2lxXgQArHTFCuSBbKRSaLka42p2INLDg0z3TZ+J5msc=";
   };
 in stdenv.mkDerivation {
   inherit pname version src;
@@ -29,7 +29,7 @@ in stdenv.mkDerivation {
   cargoDeps = rustPlatform.fetchCargoTarball {
     src = "${src}/zeroidc";
     name = "${pname}-${version}";
-    sha256 = "sha256-PDsJtz279P2IpgiL0T92IbcANeGSUnGKhEH1dj9VtbM=";
+    sha256 = "sha256-Q9uBUD5xxo5gcTQTedVqQv+Z7B1TTPWtaTSuWo7WEPM=";
   };
   postPatch = "cp ${src}/zeroidc/Cargo.lock Cargo.lock";
 
@@ -39,7 +39,8 @@ in stdenv.mkDerivation {
       --replace '/usr/bin/ronn' '${buildPackages.ronn}/bin/ronn' \
 
     substituteInPlace ./make-linux.mk \
-      --replace 'armv5' 'armv6'
+      --replace '-march=armv6zk' "" \
+      --replace '-mcpu=arm1176jzf-s' ""
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/nix/alejandra/default.nix b/pkgs/tools/nix/alejandra/default.nix
index 0e7f5e133eaad..5cfacdb50bc04 100644
--- a/pkgs/tools/nix/alejandra/default.nix
+++ b/pkgs/tools/nix/alejandra/default.nix
@@ -7,16 +7,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "alejandra";
-  version = "1.4.0";
+  version = "1.5.0";
 
   src = fetchFromGitHub {
     owner = "kamadorueda";
     repo = "alejandra";
     rev = version;
-    sha256 = "sha256-0AolxQtKj3Oek0WSbODDpPVO5Ih8PXHOA3qXEKPB4dQ=";
+    sha256 = "sha256-A0ruEdPeKIzGYxyXNACnzaKtQUVc30s2ExTUzdFTcWM=";
   };
 
-  cargoSha256 = "sha256-USI98hozlTaTj07tMbCQEWDgRkHsd4PFW1HUpKsNZJA=";
+  cargoSha256 = "sha256-BmpFyVF2fxV3rExI7rpOQlVwHEJNlof44dnUshaO/no=";
 
   passthru.tests = {
     version = testers.testVersion { package = alejandra; };
diff --git a/pkgs/tools/nix/nar-serve/default.nix b/pkgs/tools/nix/nar-serve/default.nix
index 1d7fd6beb4a7d..10ac797578f98 100644
--- a/pkgs/tools/nix/nar-serve/default.nix
+++ b/pkgs/tools/nix/nar-serve/default.nix
@@ -4,16 +4,16 @@
 }:
 buildGoModule rec {
   pname = "nar-serve";
-  version = "0.4.0";
+  version = "0.6.1";
 
   src = fetchFromGitHub {
     owner = "numtide";
     repo = "nar-serve";
     rev = "v${version}";
-    hash = "sha256-h/pzKRXgcGTpr1YUKppDa+iTLKak/PGhbYa8ZczWj1U=";
+    hash = "sha256-cSOYHYJJEGzFtkD4mjTmYBiM9CaWKt64xgV/JeNHpfM=";
   };
 
-  vendorSha256 = "sha256-eW+cul/5qJocpKV/6azxj7HTmkezDw6dNubPtAOP5HU=";
+  vendorSha256 = "sha256-RpjLs4+9abbbysYAlPDUXBLe1cz4Lp+QmR1yv+LpYwQ=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/nix/nixel/default.nix b/pkgs/tools/nix/nixel/default.nix
new file mode 100644
index 0000000000000..5ce14a8d312fe
--- /dev/null
+++ b/pkgs/tools/nix/nixel/default.nix
@@ -0,0 +1,36 @@
+{ lib
+, rustPlatform
+, fetchFromGitHub
+, testers
+, nixel
+}:
+
+rustPlatform.buildRustPackage rec {
+  pname = "nixel";
+  version = "4.1.0";
+
+  src = fetchFromGitHub {
+    owner = "kamadorueda";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-dQ3wzBTjteqk9rju+FMAO+ydimnGu24Y2DEDLX/P+1A=";
+  };
+
+  cargoSha256 = "sha256-1OsHs0W3ji9Kgpv7nGY9XyGxJ4c0faN2VuFLsdwkgKY=";
+
+  # Package requires a non reproducible submodule
+  # https://github.com/kamadorueda/nixel/blob/2873bd84bf4fc540d0ae8af062e109cc9ad40454/.gitmodules#L7
+  doCheck = false;
+  #
+  # Let's test it runs
+  passthru.tests = {
+    version = testers.testVersion { package = nixel; };
+  };
+
+  meta = with lib; {
+    description = "Lexer, Parser, Abstract Syntax Tree and Concrete Syntax Tree for the Nix Expressions Language";
+    homepage = "https://github.com/kamadorueda/nixel";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ kamadorueda ];
+  };
+}
diff --git a/pkgs/tools/nix/nixpkgs-fmt/default.nix b/pkgs/tools/nix/nixpkgs-fmt/default.nix
index b203d2992fbfc..793f19e533290 100644
--- a/pkgs/tools/nix/nixpkgs-fmt/default.nix
+++ b/pkgs/tools/nix/nixpkgs-fmt/default.nix
@@ -1,16 +1,16 @@
 { lib, rustPlatform, fetchFromGitHub }:
 rustPlatform.buildRustPackage rec {
   pname = "nixpkgs-fmt";
-  version = "1.2.0";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "nix-community";
     repo = pname;
     rev = "v${version}";
-    sha256 = "0dqirvn8pq6ssxjlf6rkqcsx6ndasws93lz2v9f9s01k9ny8x8mq";
+    sha256 = "sha256-6Ut4/ix915EoaPCewoG3KhKBA+OaggpDqnx2nvKxEpQ=";
   };
 
-  cargoSha256 = "0mm79hfh8p1rs02pkpcv25p59b24q1rymwh11yxry4d4f12b6aw0";
+  cargoSha256 = "sha256-yIwCBm46sgrpTt45uCyyS7M6V0ReGUXVu7tyrjdNqeQ=";
 
   meta = with lib; {
     description = "Nix code formatter for nixpkgs";
diff --git a/pkgs/tools/nix/statix/default.nix b/pkgs/tools/nix/statix/default.nix
index d25f51ae5aa26..e4e3cb8575031 100644
--- a/pkgs/tools/nix/statix/default.nix
+++ b/pkgs/tools/nix/statix/default.nix
@@ -5,16 +5,16 @@ rustPlatform.buildRustPackage rec {
   # also update version of the vim plugin in
   # pkgs/applications/editors/vim/plugins/overrides.nix
   # the version can be found in flake.nix of the source code
-  version = "0.5.4";
+  version = "0.5.6";
 
   src = fetchFromGitHub {
     owner = "nerdypepper";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-9208bR3awxXR1MSh9HbsKeen5V4r4hPuJFkK/CMJRfg=";
+    sha256 = "sha256-OQk80eTUufVUbYvZ38el2lmkgkU+5gr0hLTrBvzIp4A=";
   };
 
-  cargoSha256 = "sha256-f1/PMbXUiqjFI8Y0mvgEyNqGGYqGq3nV094mg1aZIHM=";
+  cargoSha256 = "sha256-j+FcV5JtO66Aa0ncIUfjuWtqnMmFb7zW7rNXttYBUU4=";
 
   buildFeatures = lib.optional withJson "json";
 
diff --git a/pkgs/tools/package-management/appimagekit/default.nix b/pkgs/tools/package-management/appimagekit/default.nix
index 3118b784334b0..151566ba8e8e2 100644
--- a/pkgs/tools/package-management/appimagekit/default.nix
+++ b/pkgs/tools/package-management/appimagekit/default.nix
@@ -96,6 +96,7 @@ in stdenv.mkDerivation rec {
     "-DUSE_SYSTEM_LIBARCHIVE=ON"
     "-DUSE_SYSTEM_GTEST=ON"
     "-DUSE_SYSTEM_MKSQUASHFS=ON"
+    "-DTOOLS_PREFIX=${stdenv.cc.targetPrefix}"
   ];
 
   postInstall = ''
diff --git a/pkgs/tools/package-management/micromamba/default.nix b/pkgs/tools/package-management/micromamba/default.nix
index c1f8fc9c990bd..70443695e0ff1 100644
--- a/pkgs/tools/package-management/micromamba/default.nix
+++ b/pkgs/tools/package-management/micromamba/default.nix
@@ -1,5 +1,20 @@
-{ lib, stdenv, fetchFromGitHub, fetchpatch, cmake
-, cli11, nlohmann_json, curl, libarchive, libyamlcpp, libsolv, reproc, spdlog, termcolor, ghc_filesystem
+{ lib
+, stdenv
+, fetchFromGitHub
+, fetchpatch
+, cli11
+, cmake
+, curl
+, ghc_filesystem
+, libarchive
+, libsolv
+, libyamlcpp
+, nlohmann_json
+, python3
+, reproc
+, spdlog
+, termcolor
+, tl-expected
 }:
 
 let
@@ -9,7 +24,8 @@ let
     ];
 
     patches = [
-      # Patch added by the mamba team
+      # Apply the same patch as in the "official" boa-forge build:
+      # https://github.com/mamba-org/boa-forge/tree/master/libsolv
       (fetchpatch {
         url = "https://raw.githubusercontent.com/mamba-org/boa-forge/20530f80e2e15012078d058803b6e2c75ed54224/libsolv/conda_variant_priorization.patch";
         sha256 = "1iic0yx7h8s662hi2jqx68w5kpyrab4fr017vxd4wyxb6wyk35dd";
@@ -28,13 +44,13 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "micromamba";
-  version = "0.22.0";
+  version = "0.24.0";
 
   src = fetchFromGitHub {
     owner = "mamba-org";
     repo = "mamba";
     rev = "micromamba-" + version;
-    sha256 = "sha256-9/vkn8wks2nyzIn5hnK+zvX18Du2B8YZ3/ugrmEGVH8=";
+    sha256 = "sha256-CszDmt3SElHo1D2sNy2tPhZ43YD3pDjT8+fp2PVk+7Y=";
   };
 
   nativeBuildInputs = [ cmake ];
@@ -50,6 +66,8 @@ stdenv.mkDerivation rec {
     spdlog'
     termcolor
     ghc_filesystem
+    python3
+    tl-expected
   ];
 
   cmakeFlags = [
@@ -63,7 +81,7 @@ stdenv.mkDerivation rec {
     description = "Reimplementation of the conda package manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = licenses.bsd3;
-    platforms = platforms.linux;
+    platforms = platforms.all;
     maintainers = with maintainers; [ mausch ];
   };
 }
diff --git a/pkgs/tools/package-management/nix-doc/default.nix b/pkgs/tools/package-management/nix-doc/default.nix
index defbcdf6e1bbf..6749f1fbea2b0 100644
--- a/pkgs/tools/package-management/nix-doc/default.nix
+++ b/pkgs/tools/package-management/nix-doc/default.nix
@@ -2,13 +2,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "nix-doc";
-  version = "0.5.4";
+  version = "0.5.5";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "lf-";
     repo = "nix-doc";
-    sha256 = "sha256-bijcLIRBfoqirwz98Q3uQjHXSOaaqZECfav4TUvCuxg=";
+    sha256 = "sha256-JGzrDSAJMH7BaqGfyfLe041T2f8QdwLlFi11yHo+4JI=";
   };
 
   doCheck = true;
@@ -16,7 +16,7 @@ rustPlatform.buildRustPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-LpcAMsBeNa2GDGN7+9rTtkQluPfHSnAxanRtDtRahzc=";
+  cargoSha256 = "sha256-o49xT26X1QdkSWDlz//ZgnLs592DkxktyFaY5S4vVTM=";
 
   meta = with lib; {
     description = "An interactive Nix documentation tool";
diff --git a/pkgs/tools/security/adenum/default.nix b/pkgs/tools/security/adenum/default.nix
new file mode 100644
index 0000000000000..8bcac264d95de
--- /dev/null
+++ b/pkgs/tools/security/adenum/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, john
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "adenum";
+  version = "unstable-2022-04-01";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "SecuProject";
+    repo = "ADenum";
+    rev = "0e3576eca1d987d3ef22d53fc725189bb301e804";
+    hash = "sha256-8s4Kmt4ZjYbQGGVDWKfuRZ6kthcL8FiQytoq9Koy7Kc=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    impacket
+    pwntools
+    ldap
+  ] ++ [
+    john
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    # Add shebang so we can patch it
+    sed -i -e '1i#!/usr/bin/python' ADenum.py
+    patchShebangs ADenum.py
+    install -vD ADenum.py $out/bin/adenum
+
+    runHook postInstall
+  '';
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Tool to find misconfiguration through LDAP";
+    homepage = "https://github.com/SecuProject/ADenum";
+    license = with licenses; [ gpl3Only ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/beyond-identity/default.nix b/pkgs/tools/security/beyond-identity/default.nix
index a9e554ff42cc7..15a8ab3882c2a 100644
--- a/pkgs/tools/security/beyond-identity/default.nix
+++ b/pkgs/tools/security/beyond-identity/default.nix
@@ -11,6 +11,7 @@ let
     description = "Passwordless MFA identities for workforces, customers, and developers";
     homepage = "https://www.beyondidentity.com";
     downloadPage = "https://app.byndid.com/downloads";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ klden ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/security/bitwarden/default.nix b/pkgs/tools/security/bitwarden/default.nix
index 7f3dd2afd8158..9ae5da86497bd 100644
--- a/pkgs/tools/security/bitwarden/default.nix
+++ b/pkgs/tools/security/bitwarden/default.nix
@@ -14,11 +14,11 @@
 
 stdenv.mkDerivation rec {
   pname = "bitwarden";
-  version = "1.32.1";
+  version = "2022.5.1";
 
   src = fetchurl {
-    url = "https://github.com/bitwarden/desktop/releases/download/v${version}/Bitwarden-${version}-amd64.deb";
-    sha256 = "sha256-G1k8kf00EQVH/z2foH4NHCw82/eTi7BMMfkVtX6IfQo=";
+    url = "https://github.com/bitwarden/clients/releases/download/desktop-v${version}/Bitwarden-${version}-amd64.deb";
+    sha256 = "sha256-L6Mow4wC5PlpR9IYXOztW4FyGDq9wWEuV2PvzQ7M/rU=";
   };
 
   desktopItem = makeDesktopItem {
@@ -65,6 +65,7 @@ stdenv.mkDerivation rec {
   meta = with lib; {
     description = "A secure and free password manager for all of your devices";
     homepage = "https://bitwarden.com";
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.gpl3;
     maintainers = with maintainers; [ kiwi ];
     platforms = [ "x86_64-linux" ];
diff --git a/pkgs/tools/security/certstrap/default.nix b/pkgs/tools/security/certstrap/default.nix
index ff6522f1d35f3..9edd8b3884f8b 100644
--- a/pkgs/tools/security/certstrap/default.nix
+++ b/pkgs/tools/security/certstrap/default.nix
@@ -1,21 +1,33 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "certstrap";
   version = "1.2.0";
 
-  goPackagePath = "github.com/square/certstrap";
-
   src = fetchFromGitHub {
     owner = "square";
     repo = "certstrap";
     rev = "v${version}";
-    sha256 = "1ymchnn7c9g3pq7rw4lrwsd6z3wfjx90g7qgrw6r5hssl77mnscj";
+    sha256 = "sha256-kmlbz6Faw5INzw+fB1KXjo9vmuaZEp4PvuMldqyFrPo=";
   };
 
+  vendorSha256 = null;
+
+  subPackages = [ "." ];
+
+  ldflags = [ "-X main.release=${version}" ];
+
   meta = with lib; {
-    inherit (src.meta) homepage;
     description = "Tools to bootstrap CAs, certificate requests, and signed certificates";
+    longDescription = ''
+      A simple certificate manager written in Go, to bootstrap your own
+      certificate authority and public key infrastructure. Adapted from etcd-ca.
+    '';
+    homepage = "https://github.com/square/certstrap";
+    changelog = "https://github.com/square/certstrap/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ volth ];
   };
diff --git a/pkgs/tools/security/chain-bench/default.nix b/pkgs/tools/security/chain-bench/default.nix
new file mode 100644
index 0000000000000..43e1ecd0894cb
--- /dev/null
+++ b/pkgs/tools/security/chain-bench/default.nix
@@ -0,0 +1,62 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+}:
+
+buildGoModule rec {
+  pname = "chain-bench";
+  version = "0.0.2";
+
+  src = fetchFromGitHub {
+    owner = "aquasecurity";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-aoqkCaMEFTmaV9ewSZW6iy5Uc+riha8ecOECVccb9MM=";
+  };
+  vendorSha256 = "sha256-MTWXDIHVdgqdRO0ZoXzUPeTZ6Y19TjFQSvrhKP35BuM=";
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  ldflags = [
+    "-s"
+    "-w"
+    "-X main.version=v${version}"
+  ];
+
+  postInstall = ''
+    installShellCompletion --cmd chain-bench \
+      --bash <($out/bin/chain-bench completion bash) \
+      --fish <($out/bin/chain-bench completion fish) \
+      --zsh <($out/bin/chain-bench completion zsh)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+    $out/bin/chain-bench --help
+    $out/bin/chain-bench --version | grep "v${version}"
+    runHook postInstallCheck
+  '';
+
+  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";
+    longDescription = ''
+      Chain-bench is an open-source tool for auditing your software supply chain
+      stack for security compliance based on a new CIS Software Supply Chain
+      benchmark. The auditing focuses on the entire SDLC process, where it can
+      reveal risks from code time into deploy time. To win the race against
+      hackers and protect your sensitive data and customer trust, you need to
+      ensure your code is compliant with your organization's policies.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jk ];
+    # TODO: see if this is an issue
+    # # Need updated macOS SDK
+    # # https://github.com/NixOS/nixpkgs/issues/101229
+    # broken = (stdenv.isDarwin && stdenv.isx86_64);
+  };
+}
diff --git a/pkgs/tools/security/commix/default.nix b/pkgs/tools/security/commix/default.nix
new file mode 100644
index 0000000000000..54444d8e40567
--- /dev/null
+++ b/pkgs/tools/security/commix/default.nix
@@ -0,0 +1,27 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "commix";
+  version = "3.4";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "commixproject";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-JM4NE77LpgsdWhzPe/8K0sQhOSpzDu9usuH7pfQ6dR0=";
+  };
+
+  # Project has no tests
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Automated Command Injection Exploitation Tool";
+    homepage = "https://github.com/commixproject/commix";
+    license = with licenses; [ gpl3Plus ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/cve-bin-tool/default.nix b/pkgs/tools/security/cve-bin-tool/default.nix
index dd26ce887eaad..ac3771510c38f 100644
--- a/pkgs/tools/security/cve-bin-tool/default.nix
+++ b/pkgs/tools/security/cve-bin-tool/default.nix
@@ -3,10 +3,6 @@
 , fetchFromGitHub
 , jsonschema
 , plotly
-, pytest
-, pytest-xdist
-, pytest-cov
-, pytest-asyncio
 , beautifulsoup4
 , pyyaml
 , isort
@@ -25,16 +21,19 @@
 , cchardet
 , pillow
 , pytestCheckHook
+, xmlschema
+, setuptools
+, packaging
 }:
 buildPythonApplication rec {
   pname = "cve-bin-tool";
-  version = "3.0";
+  version = "3.1.1";
 
   src = fetchFromGitHub {
     owner = "intel";
     repo = "cve-bin-tool";
     rev = "v${version}";
-    sha256 = "1fmdnlhi03fdr4d4n7ydf6m0gx0cl77n3db8ldbs3m9zryblhzpr";
+    sha256 = "0nz3ax3ldnrzk8694x0p743g5h2zply29ljpn21llbc7ca27zdv9";
   };
 
   # Wants to open a sqlite database, access the internet, etc
@@ -43,10 +42,6 @@ buildPythonApplication rec {
   propagatedBuildInputs = [
     jsonschema
     plotly
-    pytest
-    pytest-xdist
-    pytest-cov
-    pytest-asyncio
     beautifulsoup4
     pyyaml
     isort
@@ -65,6 +60,9 @@ buildPythonApplication rec {
     cchardet
     # needed by brotlipy
     pillow
+    setuptools
+    xmlschema
+    packaging
   ];
 
   checkInputs = [
@@ -75,10 +73,15 @@ buildPythonApplication rec {
     "cve_bin_tool"
   ];
 
+  # required until https://github.com/intel/cve-bin-tool/pull/1665 is merged
+  postPatch = ''
+    sed '/^pytest/d' -i requirements.txt
+  '';
+
   meta = with lib; {
     description = "CVE Binary Checker Tool";
     homepage = "https://github.com/intel/cve-bin-tool";
-    license = licenses.gpl3Only;
+    license = licenses.gpl3Plus;
     maintainers = teams.determinatesystems.members;
   };
 }
diff --git a/pkgs/tools/security/decoder/default.nix b/pkgs/tools/security/decoder/default.nix
new file mode 100644
index 0000000000000..baaacac5da8af
--- /dev/null
+++ b/pkgs/tools/security/decoder/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, openssl
+}:
+
+stdenv.mkDerivation rec {
+  pname = "decoder";
+  version = "unstable-2021-11-20";
+
+  src = fetchFromGitHub {
+    owner = "PeterPawn";
+    repo = "decoder";
+    rev = "da0f826629d4e7b873f9d1a39f24c50ff0a68cd2";
+    sha256 = "sha256-1sT1/iwtc2ievmLuNuooy9b14pTs1ZC5noDwzFelk7w=";
+  };
+
+  buildInputs = [
+    openssl
+  ];
+
+  makeFlags = [ "OPENSSL=y" ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -Dm755 src/decoder "$out/bin/decoder"
+
+    runHook postInstall
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/PeterPawn/decoder";
+    description = ''"secrets" decoding for FRITZ!OS devices'';
+    license = licenses.gpl2Plus;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ Luflosi ];
+  };
+}
diff --git a/pkgs/tools/security/exploitdb/default.nix b/pkgs/tools/security/exploitdb/default.nix
index df1972267f158..08357b3499552 100644
--- a/pkgs/tools/security/exploitdb/default.nix
+++ b/pkgs/tools/security/exploitdb/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   pname = "exploitdb";
-  version = "2022-06-11";
+  version = "2022-06-15";
 
   src = fetchFromGitHub {
     owner = "offensive-security";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-nquqOmQYuEcvHYTkf+90kyAfVkVdZ0Z2I67+R5hmn1o=";
+    hash = "sha256-Qh9MoNZ0B8cL8G5maFvkGWLDuwQ3LDpqh3BYyJx3/Rk=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix
index 62bc16f6a4147..ef09cc1ac71b0 100644
--- a/pkgs/tools/security/fail2ban/default.nix
+++ b/pkgs/tools/security/fail2ban/default.nix
@@ -27,6 +27,12 @@ python3.pkgs.buildPythonApplication rec {
       url = "https://github.com/fail2ban/fail2ban/commit/5ac303df8a171f748330d4c645ccbf1c2c7f3497.patch";
       sha256 = "sha256-aozQJHwPcJTe/D/PLQzBk1YH3OAP6Qm7wO7cai5CVYI=";
     })
+    # fix use of MutableMapping with Python >= 3.10
+    # https://github.com/fail2ban/fail2ban/issues/3142
+    (fetchpatch {
+      url = "https://github.com/fail2ban/fail2ban/commit/294ec73f629d0e29cece3a1eb5dd60b6fccea41f.patch";
+      sha256 = "sha256-Eimm4xjBDYNn5QdTyMqGgT5EXsZdd/txxcWJojXlsFE=";
+    })
   ];
 
   preConfigure = ''
diff --git a/pkgs/tools/security/fpm2/default.nix b/pkgs/tools/security/fpm2/default.nix
index 0ca45957d695f..15d5a5adcffb2 100644
--- a/pkgs/tools/security/fpm2/default.nix
+++ b/pkgs/tools/security/fpm2/default.nix
@@ -1,22 +1,20 @@
-{ lib, stdenv, fetchurl, pkg-config, gnupg, gtk2
-, libxml2, intltool
+{ lib, stdenv, fetchurl, pkg-config, gnupg, gtk3
+, libxml2, intltool, nettle
 }:
 
-with lib;
-
 stdenv.mkDerivation rec {
   pname = "fpm2";
-  version = "0.79";
+  version = "0.90";
 
   src = fetchurl {
-    url = "https://als.regnet.cz/fpm2/download/fpm2-${version}.tar.bz2";
-    sha256 = "d55e9ce6be38a44fc1053d82db2d117cf3991a51898bd86d7913bae769f04da7";
+    url = "https://als.regnet.cz/fpm2/download/fpm2-${version}.tar.xz";
+    sha256 = "1lfzja3vzd6l6hfvw8gvg4qkl5iy6gra5pa8gjlps9l63k2bjfhz";
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ gnupg gtk2 libxml2 intltool ];
+  buildInputs = [ gnupg gtk3 libxml2 intltool nettle ];
 
-  meta = {
+  meta = with lib; {
     description = "GTK2 port from Figaro's Password Manager originally developed by John Conneely, with some new enhancements";
     homepage    = "https://als.regnet.cz/fpm2/";
     license     = licenses.gpl2;
diff --git a/pkgs/tools/security/gitleaks/default.nix b/pkgs/tools/security/gitleaks/default.nix
index b48dec714926a..8c4f0a80545d0 100644
--- a/pkgs/tools/security/gitleaks/default.nix
+++ b/pkgs/tools/security/gitleaks/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "gitleaks";
-  version = "8.8.7";
+  version = "8.8.8";
 
   src = fetchFromGitHub {
     owner = "zricethezav";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-C4AbxE37kqO3FJR/J7wP7WcV/mzzLZxPLBku5qgCxV4=";
+    sha256 = "sha256-NMlUk0tofQoJSiv3tHGyyad61624Losyv2YnxngAlrY=";
   };
 
   vendorSha256 = "sha256-X8z9iKRR3PptNHwy1clZG8QsClsjbW45nZb2fHGfSYk=";
diff --git a/pkgs/tools/security/gitls/default.nix b/pkgs/tools/security/gitls/default.nix
new file mode 100644
index 0000000000000..f6ef854ce8101
--- /dev/null
+++ b/pkgs/tools/security/gitls/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildGoModule
+, gitls
+, fetchFromGitHub
+, testers
+}:
+
+buildGoModule rec {
+  pname = "gitls";
+  version = "1.0.3";
+
+  src = fetchFromGitHub {
+    owner = "hahwul";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-snoWnq+xmaxWzFthhO/gOYQDUMbpIZR9VkqcPaHzS6g=";
+  };
+
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  passthru.tests.version = testers.testVersion {
+    package = gitls;
+    command = "gitls -version";
+    version = "v${version}";
+  };
+
+  meta = with lib; {
+    description = "Tools to enumerate git repository URL";
+    homepage = "https://github.com/hahwul/gitls";
+    changelog = "https://github.com/hahwul/gitls/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/gitsign/default.nix b/pkgs/tools/security/gitsign/default.nix
index 8914420ca63cf..4e207f2fd1420 100644
--- a/pkgs/tools/security/gitsign/default.nix
+++ b/pkgs/tools/security/gitsign/default.nix
@@ -2,17 +2,17 @@
 
 buildGoModule rec {
   pname = "gitsign";
-  version = "0.1.0";
+  version = "0.1.1";
 
   src = fetchFromGitHub {
     owner = "sigstore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tcWq+WZJLyO8lJKxV0QSDH1JKgW+9FaC9FxrSotLQag=";
+    sha256 = "sha256-0cu5uJVFiqkvfVxCbrruHLa4Zj0EU75cbgrTrwzo7+U=";
   };
-  vendorSha256 = "sha256-34pyHAUU1+K9qNAi7rPZIvaGAen+LrwEqLyrrzUaLbk=";
+  vendorSha256 = "sha256-JMS/OFL2oxQFWa+wNhxS7fXSYQbCSEV3Sakq4rmsolI=";
 
-  ldflags = [ "-s" "-w" ];
+  ldflags = [ "-s" "-w" "-buildid=" "-X github.com/sigstore/gitsign/pkg/version.gitVersion=${version}" ];
 
   meta = {
     homepage = "https://github.com/sigstore/gitsign";
diff --git a/pkgs/tools/security/gopass/git-credential.nix b/pkgs/tools/security/gopass/git-credential.nix
index 0b15e9b023537..9877131d0a345 100644
--- a/pkgs/tools/security/gopass/git-credential.nix
+++ b/pkgs/tools/security/gopass/git-credential.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "git-credential-gopass";
-  version = "1.12.0";
+  version = "1.14.3";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-IvYxpUMclDAKJ/EkRbNrX8eIFyhtY9Q0B0RipweieZA=";
+    sha256 = "sha256-ggdQL8BU56zE5figmbfHKlZ7WGZ7z5nKunXTy3kn170=";
   };
 
-  vendorSha256 = "sha256-N6eU6KsnUrYBK90ydwUH8LNkR9KRjgc4ciGOGvy7pw8=";
+  vendorSha256 = "sha256-fwqkiPzrfo83NweuGONRx8+MOE4wQxg2Xk4/1kZwnCM=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/hibp.nix b/pkgs/tools/security/gopass/hibp.nix
new file mode 100644
index 0000000000000..49618c53aead2
--- /dev/null
+++ b/pkgs/tools/security/gopass/hibp.nix
@@ -0,0 +1,39 @@
+{ lib
+, makeWrapper
+, buildGoModule
+, fetchFromGitHub
+, gopass
+}:
+
+buildGoModule rec {
+  pname = "gopass-hibp";
+  version = "1.14.3";
+
+  src = fetchFromGitHub {
+    owner = "gopasspw";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-JwZZ2VaSD9xkLny5sFeku5rN4FitI1dyW56JSWPMagM=";
+  };
+
+  vendorSha256 = "sha256-YySkVWdfGIT5qz0jTGlLEHoO0vGY0iNZ/oG9IZCjwRE=";
+
+  subPackages = [ "." ];
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  ldflags = [
+    "-s" "-w" "-X main.version=${version}" "-X main.commit=${src.rev}"
+  ];
+
+  postFixup = ''
+    wrapProgram $out/bin/gopass-hibp --prefix PATH : "${lib.makeBinPath [ gopass ]}"
+  '';
+
+  meta = with lib; {
+    description = "Gopass haveibeenpwnd.com integration";
+    homepage = "https://www.gopass.pw/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sikmir ];
+  };
+}
diff --git a/pkgs/tools/security/gopass/jsonapi.nix b/pkgs/tools/security/gopass/jsonapi.nix
index c138bde2cc3c6..5f6dab2e9069a 100644
--- a/pkgs/tools/security/gopass/jsonapi.nix
+++ b/pkgs/tools/security/gopass/jsonapi.nix
@@ -8,16 +8,16 @@
 
 buildGoModule rec {
   pname = "gopass-jsonapi";
-  version = "1.11.1";
+  version = "1.14.3";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "03xhza7n92xg12z83as9qdvvc0yx1qy6q0c7i4njvng594f9a8x2";
+    sha256 = "sha256-uLsKxx2Yr0g3vf2AQqRqRzNsBX2D4+6wwxM+czthL+I=";
   };
 
-  vendorSha256 = "0d4fyppsdfzvmjb0qvpnfnw0vl6z256bly7hfb0whk6rldks60wr";
+  vendorSha256 = "sha256-QEqtyHb+/tpbbHLCSBw7uafAtKzKkmxoFGqFVHSR03I=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/gopass/summon.nix b/pkgs/tools/security/gopass/summon.nix
index c1be7c9eb0811..f3968bb3ce2a1 100644
--- a/pkgs/tools/security/gopass/summon.nix
+++ b/pkgs/tools/security/gopass/summon.nix
@@ -7,16 +7,16 @@
 
 buildGoModule rec {
   pname = "gopass-summon-provider";
-  version = "1.12.0";
+  version = "1.14.3";
 
   src = fetchFromGitHub {
     owner = "gopasspw";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-mRZXczIlW1s0VGZJ+KQue4Dz6XCXGfl56+g6iRv2lZg=";
+    sha256 = "sha256-Pbe5LMQioHDBHeEoT2brtsEBKq4oNROIlLccIjppRVo=";
   };
 
-  vendorSha256 = "sha256-fiV4rtel2jOw6y/ukOZHeFuNVqxHS3rnYhXJ6JZ+a/8=";
+  vendorSha256 = "sha256-U0qniRHl4YgSy1GpsaYknMQpjpM8uKNtyLm6YblSd4U=";
 
   subPackages = [ "." ];
 
diff --git a/pkgs/tools/security/graphqlmap/default.nix b/pkgs/tools/security/graphqlmap/default.nix
new file mode 100644
index 0000000000000..84b72d3b6a16c
--- /dev/null
+++ b/pkgs/tools/security/graphqlmap/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "graphqlmap";
+  version = "unstable-2022-01-17";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "swisskyrepo";
+    repo = "GraphQLmap";
+    rev = "98997bd7cf647aac7378b72913241060464749b1";
+    hash = "sha256-lGnhNwtDc8KoPlwJ1p2FYq0NQ8PhSR3HgtluU7uxa/c=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  # Tests are not available
+  doCheck = false;
+
+  pythonImportsCheck = [
+    "graphqlmap"
+  ];
+
+  meta = with lib; {
+    description = "Tool to interact with a GraphQL endpoint";
+    homepage = "https://github.com/swisskyrepo/GraphQLmap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/graphw00f/default.nix b/pkgs/tools/security/graphw00f/default.nix
new file mode 100644
index 0000000000000..ef8147ed24cd4
--- /dev/null
+++ b/pkgs/tools/security/graphw00f/default.nix
@@ -0,0 +1,37 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "graphw00f";
+  version = "1.1.2";
+  format = "other";
+
+  src = fetchFromGitHub {
+    owner = "dolevf";
+    repo = pname;
+    rev = version;
+    hash = "sha256-DzpSbaGYtRXtRjZBn9rgZumuCqdZ/auKiWO5/TYIE34=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    requests
+  ];
+
+  installPhase = ''
+    runHook preInstall
+
+    install -vD main.py $out/bin/graphw00f
+    install -vD {conf,version}.py -t $out/${python3.sitePackages}/
+    install -vD graphw00f/* -t $out/${python3.sitePackages}/graphw00f
+
+    runHook postInstall
+  '';
+  meta = with lib; {
+    description = "GraphQL Server Engine Fingerprinting utility";
+    homepage = "https://github.com/dolevf/graphw00f";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/grype/default.nix b/pkgs/tools/security/grype/default.nix
index 6f7a7276942e2..47aa65264ff4d 100644
--- a/pkgs/tools/security/grype/default.nix
+++ b/pkgs/tools/security/grype/default.nix
@@ -1,4 +1,5 @@
 { lib
+, stdenv
 , buildGoModule
 , fetchFromGitHub
 , installShellFiles
@@ -6,13 +7,13 @@
 
 buildGoModule rec {
   pname = "grype";
-  version = "0.37.0";
+  version = "0.40.1";
 
   src = fetchFromGitHub {
     owner = "anchore";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-LcJtEzwChafG269cGZV3iBSlkjQSGIxSMZNj/5HbXVw=";
+    hash = "sha256-op0oNtHljAjEmWCjvWHk/jGf8De6IdX7Y0dfPl7dkN0=";
     # 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 +26,7 @@ buildGoModule rec {
     '';
   };
 
-  vendorSha256 = "sha256-7f/kHCWUYilhJeyB6UBJ6yJVFf4Ij6ZBwaeKTaQrZdY=";
+  vendorSha256 = "sha256-5huViLIs6SZoO0cAIf2sI20qlQUsFi+Rv68PvfbVgBw=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -68,5 +69,8 @@ buildGoModule rec {
     '';
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab jk ];
+    # Need updated macOS SDK
+    # https://github.com/NixOS/nixpkgs/issues/101229
+    broken = (stdenv.isDarwin && stdenv.isx86_64);
   };
 }
diff --git a/pkgs/tools/security/himitsu-firefox/default.nix b/pkgs/tools/security/himitsu-firefox/default.nix
new file mode 100644
index 0000000000000..b462863011871
--- /dev/null
+++ b/pkgs/tools/security/himitsu-firefox/default.nix
@@ -0,0 +1,46 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, hare
+, himitsu
+, zip
+}:
+
+stdenv.mkDerivation rec {
+  pname = "himitsu-firefox";
+  version = "0.3";
+
+  src = fetchFromSourcehut {
+    name = pname + "-src";
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "d6d0fdb30aefc93f6ff7d48e5737557051f1ffea";
+    hash = "sha256-5RbNdEGPnfDt1KDeU2LnuRsqqqMRyV/Dh2cgEWkz4vQ=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    zip
+  ];
+
+  buildInputs = [
+    himitsu
+  ];
+
+  buildFlags = [ "LIBEXECDIR=$(out)/libexec" ];
+
+  # Only install the native component; per the docs:
+  # > To install the add-on for Firefox ESR, run make install-xpi. Be advised
+  # > that this will probably not work. The recommended installation procedure
+  # > for the native extension is to install it from addons.mozilla.org instead.
+  installTargets = [ "install-native" ];
+  installFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://git.sr.ht/~sircmpwn/himitsu-firefox";
+    description = "Himitsu integration for Firefox";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ auchter ];
+    inherit (hare.meta) platforms badPlatforms;
+  };
+}
diff --git a/pkgs/tools/security/himitsu/default.nix b/pkgs/tools/security/himitsu/default.nix
new file mode 100644
index 0000000000000..e48de780d72dd
--- /dev/null
+++ b/pkgs/tools/security/himitsu/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, stdenv
+, fetchFromSourcehut
+, hare
+, scdoc
+}:
+
+stdenv.mkDerivation rec {
+  pname = "himitsu";
+  version = "0.1";
+
+  src = fetchFromSourcehut {
+    name = pname + "-src";
+    owner = "~sircmpwn";
+    repo = pname;
+    rev = "003c14747fcddceb5359c9503f20c44b15fea5fa";
+    hash = "sha256-tzBTDJKMuFh9anURy1aKQTmt77tI7wZDZQiOUowuomk=";
+  };
+
+  nativeBuildInputs = [
+    hare
+    scdoc
+  ];
+
+  installFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
+
+  meta = with lib; {
+    homepage = "https://himitsustore.org/";
+    description = "A secret storage manager";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ auchter ];
+    inherit (hare.meta) platforms badPlatforms;
+  };
+}
diff --git a/pkgs/tools/security/jsubfinder/default.nix b/pkgs/tools/security/jsubfinder/default.nix
new file mode 100644
index 0000000000000..e182af68b95e2
--- /dev/null
+++ b/pkgs/tools/security/jsubfinder/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "jsubfinder";
+  version = "unstable-2022-05-31";
+
+  src = fetchFromGitHub {
+    owner = "ThreatUnkown";
+    repo = pname;
+    rev = "e21de1ebc174bb69485f1c224e8063c77d87e4ad";
+    hash = "sha256-QjRYJyk0uFGa6FCCYK9SIJhoyam4ALsQJ26DsmbNk8s=";
+  };
+
+  vendorSha256 = "sha256-pr4KkszyzEl+yLJousx29tr7UZDJf0arEfXBb7eumww=";
+
+  meta = with lib; {
+    description = "Tool to search for in Javascript hidden subdomains and secrets";
+    homepage = "https://github.com/ThreatUnkown/jsubfinder";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/jwt-hack/default.nix b/pkgs/tools/security/jwt-hack/default.nix
new file mode 100644
index 0000000000000..975d93d61da19
--- /dev/null
+++ b/pkgs/tools/security/jwt-hack/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+  pname = "jwt-hack";
+  version = "1.1.2";
+
+  src = fetchFromGitHub {
+    owner = "hahwul";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-K0ZtEi0zAKRlIGvorrXmtmkcMvyLIXWPnVMQANZbClk=";
+  };
+
+  vendorSha256 = "sha256-VYh3oRy8bmtXf6AnLNi/M2kA6t+crW3AXBiGovpdt8U=";
+
+  meta = with lib; {
+    description = "Tool for attacking JWT";
+    homepage = "https://github.com/hahwul/jwt-hack";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/kdigger/default.nix b/pkgs/tools/security/kdigger/default.nix
new file mode 100644
index 0000000000000..5067d4003274a
--- /dev/null
+++ b/pkgs/tools/security/kdigger/default.nix
@@ -0,0 +1,82 @@
+{ lib
+, stdenv
+, buildGoModule
+, fetchFromGitHub
+, installShellFiles
+, fetchpatch
+}:
+
+buildGoModule rec {
+  pname = "kdigger";
+  version = "1.2.0";
+
+  src = fetchFromGitHub {
+    owner = "quarkslab";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "sha256-j4HIwfRIUpV25DmbQ+9go8aJMEYaFDPxrdr/zGWBeVU=";
+    # 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;
+    postFetch = ''
+      cd "$out"
+      git rev-parse HEAD > $out/COMMIT
+      find "$out" -name .git -print0 | xargs -0 rm -rf
+    '';
+  };
+  vendorSha256 = "sha256-3vn3MsE/4lBw89wgYgzm0RuJJ5RQTkgS6O74PpfFcUk=";
+
+  patches = [
+    (fetchpatch {
+      name = "simplify-ldflags.patch";
+      url = "https://github.com/quarkslab/kdigger/pull/2.patch";
+      sha256 = "sha256-d/NdoAdnheVgdqr2EF2rNn3gJvbjRZtOKFw2DqWR8TY=";
+    })
+  ];
+
+  nativeBuildInputs = [ installShellFiles ];
+
+  CGO_ENABLED = 0;
+  ldflags = [
+    "-s"
+    "-w"
+    "-X github.com/quarkslab/kdigger/commands.VERSION=v${version}"
+    "-X github.com/quarkslab/kdigger/commands.BUILDERARCH=${stdenv.hostPlatform.linuxArch}"
+  ];
+
+  preBuild = ''
+    ldflags+=" -X github.com/quarkslab/kdigger/commands.GITCOMMIT=$(cat COMMIT)"
+  '';
+
+  postInstall = ''
+    installShellCompletion --cmd kdigger \
+      --bash <($out/bin/kdigger completion bash) \
+      --fish <($out/bin/kdigger completion fish) \
+      --zsh <($out/bin/kdigger completion zsh)
+  '';
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    runHook preInstallCheck
+
+    $out/bin/kdigger --help
+
+    runHook postInstallCheck
+  '';
+
+  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";
+    longDescription = ''
+      kdigger, short for "Kubernetes digger", is a context discovery tool for
+      Kubernetes penetration testing. This tool is a compilation of various
+      plugins called buckets to facilitate pentesting Kubernetes from inside a
+      pod.
+    '';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ jk ];
+    # aarch64-linux support progress - https://github.com/quarkslab/kdigger/issues/3
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/tools/security/keybase/default.nix b/pkgs/tools/security/keybase/default.nix
index 1f53dc2a8aecd..afc2eadb63fc2 100644
--- a/pkgs/tools/security/keybase/default.nix
+++ b/pkgs/tools/security/keybase/default.nix
@@ -5,7 +5,7 @@
 
 buildGoModule rec {
   pname = "keybase";
-  version = "5.9.3";
+  version = "6.0.2";
 
   modRoot = "go";
   subPackages = [ "kbnm" "keybase" ];
@@ -16,9 +16,9 @@ buildGoModule rec {
     owner = "keybase";
     repo = "client";
     rev = "v${version}";
-    sha256 = "sha256-vPQ1hBd33DwsW0b79kNH1yd7mrwkoftIYFgmMVxC+78=";
+    sha256 = "sha256-JiYufEsoj/98An2qKdm/Uu4YHJr6ttc/VHn4kMgkuwI=";
   };
-  vendorSha256 = "sha256-ckAnSSSEF00gbgxnPAi2Pi8TNu3nmAahK7TP6HnfmNo=";
+  vendorSha256 = "sha256-D8b/pvmBGCnaRuf92FYgRcSSbN59Yu0CHKxAybdYjS4=";
 
   patches = [
     (substituteAll {
diff --git a/pkgs/tools/security/keybase/gui.nix b/pkgs/tools/security/keybase/gui.nix
index f5147e17ac5ed..6b218de45dc2d 100644
--- a/pkgs/tools/security/keybase/gui.nix
+++ b/pkgs/tools/security/keybase/gui.nix
@@ -4,16 +4,16 @@
 , runtimeShell, gsettings-desktop-schemas }:
 
 let
-  versionSuffix = "20220216215910.c82d65a685";
+  versionSuffix = "20220610191041.a459abf326";
 in
 
 stdenv.mkDerivation rec {
   pname = "keybase-gui";
-  version = "5.9.3"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
+  version = "6.0.2"; # Find latest version from https://prerelease.keybase.io/deb/dists/stable/main/binary-amd64/Packages
 
   src = fetchurl {
     url = "https://s3.amazonaws.com/prerelease.keybase.io/linux_binaries/deb/keybase_${version + "-" + versionSuffix}_amd64.deb";
-    hash = "sha256-JY2DaqApv6K02y3B+JIXpV4SvvMQpBhw9eqr/5Sn0cg=";
+    hash = "sha256-FMhbMSuJHq5d5E0dTVAk02y85UXmhtKZYk4qcbnhRxI=";
   };
 
   nativeBuildInputs = [
@@ -111,6 +111,7 @@ stdenv.mkDerivation rec {
     description = "The Keybase official GUI";
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ avaq rvolosatovs puffnfresh np Br1ght0ne shofius ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/tools/security/kubescape/default.nix b/pkgs/tools/security/kubescape/default.nix
index e1d05a632dc30..a4a6969b34a59 100644
--- a/pkgs/tools/security/kubescape/default.nix
+++ b/pkgs/tools/security/kubescape/default.nix
@@ -6,7 +6,7 @@
 
 buildGoModule rec {
   pname = "kubescape";
-  version = "2.0.156";
+  version = "2.0.158";
 
   src = fetchFromGitHub {
     owner = "armosec";
diff --git a/pkgs/tools/security/libmodsecurity/default.nix b/pkgs/tools/security/libmodsecurity/default.nix
index 531f88333d057..177b7574f63ae 100644
--- a/pkgs/tools/security/libmodsecurity/default.nix
+++ b/pkgs/tools/security/libmodsecurity/default.nix
@@ -1,34 +1,35 @@
 { lib, stdenv, fetchFromGitHub
 , autoreconfHook, bison, flex, pkg-config
-, curl, geoip, libmaxminddb, libxml2, lmdb, lua, pcre
-, ssdeep, yajl
+, curl, geoip, libmaxminddb, libxml2, lmdb, lua, pcre, pcre2, ssdeep, yajl
 , nixosTests
 }:
 
 stdenv.mkDerivation rec {
   pname = "libmodsecurity";
-  version = "3.0.6";
+  version = "3.0.7";
 
   src = fetchFromGitHub {
     owner = "SpiderLabs";
     repo = "ModSecurity";
     rev = "v${version}";
-    sha256 = "sha256-V+NBT2YN8qO3Px8zEzSA2ZsjSf1pv8+VlLxYlrpqfGg=";
+    sha256 = "sha256-Xf+wtYg0ZKgP5qo891fCMML/7tgSM/fvBdrmsgJixY4=";
     fetchSubmodules = true;
   };
 
   nativeBuildInputs = [ autoreconfHook bison flex pkg-config ];
-  buildInputs = [ curl geoip libmaxminddb libxml2 lmdb lua pcre ssdeep yajl ];
+  buildInputs = [ curl geoip libmaxminddb libxml2 lmdb lua pcre pcre2 ssdeep yajl ];
 
   outputs = [ "out" "dev" ];
 
   configureFlags = [
     "--enable-parser-generation"
+    "--disable-doxygen-doc"
     "--with-curl=${curl.dev}"
     "--with-libxml=${libxml2.dev}"
     "--with-lmdb=${lmdb.out}"
     "--with-maxmind=${libmaxminddb}"
     "--with-pcre=${pcre.dev}"
+    "--with-pcre2=${pcre2.out}"
     "--with-ssdeep=${ssdeep}"
   ];
 
@@ -36,6 +37,10 @@ stdenv.mkDerivation rec {
     substituteInPlace build/lmdb.m4 \
       --replace "\''${path}/include/lmdb.h" "${lmdb.dev}/include/lmdb.h" \
       --replace "lmdb_inc_path=\"\''${path}/include\"" "lmdb_inc_path=\"${lmdb.dev}/include\""
+    substituteInPlace build/pcre2.m4 \
+      --replace "/usr/local/pcre2" "${pcre2.out}/lib" \
+      --replace "\''${path}/include/pcre2.h" "${pcre2.dev}/include/pcre2.h" \
+      --replace "pcre2_inc_path=\"\''${path}/include\"" "pcre2_inc_path=\"${pcre2.dev}/include\""
     substituteInPlace build/ssdeep.m4 \
       --replace "/usr/local/libfuzzy" "${ssdeep}/lib" \
       --replace "\''${path}/include/fuzzy.h" "${ssdeep}/include/fuzzy.h" \
diff --git a/pkgs/tools/security/metasploit/Gemfile b/pkgs/tools/security/metasploit/Gemfile
index 9ef9000b89924..8350e202156e4 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.2.2"
+gem "metasploit-framework", git: "https://github.com/rapid7/metasploit-framework", ref: "refs/tags/6.2.4"
diff --git a/pkgs/tools/security/metasploit/Gemfile.lock b/pkgs/tools/security/metasploit/Gemfile.lock
index 62d171cd0dc6e..6dd9a21eaa9da 100644
--- a/pkgs/tools/security/metasploit/Gemfile.lock
+++ b/pkgs/tools/security/metasploit/Gemfile.lock
@@ -1,9 +1,9 @@
 GIT
   remote: https://github.com/rapid7/metasploit-framework
-  revision: 1bfa54f5d72a9c088ee4a65443753e1d10b05504
-  ref: refs/tags/6.2.2
+  revision: ed772a23efa7e2a7d7ae6417939e900c66950fd9
+  ref: refs/tags/6.2.4
   specs:
-    metasploit-framework (6.2.2)
+    metasploit-framework (6.2.4)
       actionpack (~> 6.0)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -32,7 +32,7 @@ GIT
       metasploit-concern
       metasploit-credential
       metasploit-model
-      metasploit-payloads (= 2.0.93)
+      metasploit-payloads (= 2.0.94)
       metasploit_data_models
       metasploit_payloads-mettle (= 1.0.18)
       mqtt
@@ -130,13 +130,13 @@ GEM
     arel-helpers (2.14.0)
       activerecord (>= 3.1.0, < 8)
     aws-eventstream (1.2.0)
-    aws-partitions (1.598.0)
-    aws-sdk-core (3.131.1)
+    aws-partitions (1.601.0)
+    aws-sdk-core (3.131.2)
       aws-eventstream (~> 1, >= 1.0.2)
       aws-partitions (~> 1, >= 1.525.0)
       aws-sigv4 (~> 1.1)
       jmespath (~> 1, >= 1.6.1)
-    aws-sdk-ec2 (1.317.0)
+    aws-sdk-ec2 (1.319.0)
       aws-sdk-core (~> 3, >= 3.127.0)
       aws-sigv4 (~> 1.1)
     aws-sdk-iam (1.69.0)
@@ -182,7 +182,8 @@ GEM
       faraday-net_http (~> 2.0)
       ruby2_keywords (>= 0.0.4)
     faraday-net_http (2.0.3)
-    faraday-retry (1.0.3)
+    faraday-retry (2.0.0)
+      faraday (~> 2.0)
     faye-websocket (0.11.1)
       eventmachine (>= 0.12.0)
       websocket-driver (>= 0.5.1)
@@ -233,11 +234,11 @@ GEM
       rex-socket
       rubyntlm
       rubyzip
-    metasploit-model (4.0.4)
+    metasploit-model (4.0.5)
       activemodel (~> 6.0)
       activesupport (~> 6.0)
       railties (~> 6.0)
-    metasploit-payloads (2.0.93)
+    metasploit-payloads (2.0.94)
     metasploit_data_models (5.0.5)
       activerecord (~> 6.0)
       activesupport (~> 6.0)
@@ -251,7 +252,7 @@ GEM
     metasploit_payloads-mettle (1.0.18)
     method_source (1.0.0)
     mini_portile2 (2.8.0)
-    minitest (5.15.0)
+    minitest (5.16.1)
     mqtt (0.5.0)
     msgpack (1.5.2)
     multi_json (1.15.0)
@@ -273,7 +274,7 @@ GEM
       mini_portile2 (~> 2.8.0)
       racc (~> 1.4)
     nori (2.6.0)
-    octokit (4.24.0)
+    octokit (4.25.0)
       faraday (>= 1, < 3)
       sawyer (~> 0.9)
     openssl-ccm (1.2.2)
@@ -289,7 +290,7 @@ GEM
       hashery (~> 2.0)
       ruby-rc4
       ttfunk
-    pg (1.3.5)
+    pg (1.4.1)
     public_suffix (4.0.7)
     puma (5.6.4)
       nio4r (~> 2.0)
@@ -297,8 +298,8 @@ GEM
     rack (2.2.3.1)
     rack-protection (2.2.0)
       rack
-    rack-test (1.1.0)
-      rack (>= 1.0, < 3)
+    rack-test (2.0.0)
+      rack (>= 1.3)
     rails-dom-testing (2.0.3)
       activesupport (>= 4.2.0)
       nokogiri (>= 1.6)
@@ -355,7 +356,7 @@ GEM
       metasm
       rex-core
       rex-text
-    rex-socket (0.1.39)
+    rex-socket (0.1.40)
       rex-core
     rex-sslscan (0.1.7)
       rex-core
@@ -370,7 +371,7 @@ GEM
     ruby-macho (3.0.0)
     ruby-rc4 (0.1.5)
     ruby2_keywords (0.0.5)
-    ruby_smb (3.1.3)
+    ruby_smb (3.1.4)
       bindata
       openssl-ccm
       openssl-cmac
@@ -388,7 +389,7 @@ GEM
       rack (~> 2.2)
       rack-protection (= 2.2.0)
       tilt (~> 2.0)
-    sqlite3 (1.4.2)
+    sqlite3 (1.4.4)
     sshkey (2.0.0)
     swagger-blocks (3.0.0)
     thin (1.8.1)
@@ -429,7 +430,7 @@ GEM
       activesupport (>= 4.2, < 8.0)
     xmlrpc (0.3.2)
       webrick
-    zeitwerk (2.5.4)
+    zeitwerk (2.6.0)
 
 PLATFORMS
   ruby
diff --git a/pkgs/tools/security/metasploit/default.nix b/pkgs/tools/security/metasploit/default.nix
index e1d253177f1c6..ae3c75c630fe8 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.2.2";
+  version = "6.2.4";
 
   src = fetchFromGitHub {
     owner = "rapid7";
     repo = "metasploit-framework";
     rev = version;
-    sha256 = "sha256-Did2OFR/0F3aeS3qbHIRLRmqOlvC29l1yCVZgsdxPAM=";
+    sha256 = "sha256-9JzavB6VMEM7UFa30WlHdZ/hajOly+JX75I+3DECOqM=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/security/metasploit/gemset.nix b/pkgs/tools/security/metasploit/gemset.nix
index 93e43a72ba22f..98a026aaa9f20 100644
--- a/pkgs/tools/security/metasploit/gemset.nix
+++ b/pkgs/tools/security/metasploit/gemset.nix
@@ -104,30 +104,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vcw9p4ngkcdrdallp6fgzmj4cgm7i04z1dc8rcxd5awybbglvv8";
+      sha256 = "0ydlikjhhsiqk7v8k7q1f036fd7yrmimasw40rnwcj3f1747lygd";
       type = "gem";
     };
-    version = "1.598.0";
+    version = "1.601.0";
   };
   aws-sdk-core = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0yiz3aaik62rxhxipwznb2bv8ywha13vdxg9nk6anq9bd0nn0728";
+      sha256 = "164abp3cvmvfa2qsgzbxvkafbhwbgn3qwknp0amwmxw5nwvz8p3s";
       type = "gem";
     };
-    version = "3.131.1";
+    version = "3.131.2";
   };
   aws-sdk-ec2 = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0ihv5bbyphpbifviw57nfw733d1mcaf8qy7ws7hfbb462cizgxl0";
+      sha256 = "0b42j6hdw62qz02j1llqp4c4y0dx39x3wfk1nprxwl27sdvy1mgk";
       type = "gem";
     };
-    version = "1.317.0";
+    version = "1.319.0";
   };
   aws-sdk-iam = {
     groups = ["default"];
@@ -374,10 +374,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "153i967yrwnswqgvnnajgwp981k9p50ys1h80yz3q94rygs59ldd";
+      sha256 = "07bn75d784ndj9ljqk19ff6217hkqqmxjlnjx5b9v36k2nnj9kys";
       type = "gem";
     };
-    version = "1.0.3";
+    version = "2.0.0";
   };
   faye-websocket = {
     groups = ["default"];
@@ -614,32 +614,32 @@
     platforms = [];
     source = {
       fetchSubmodules = false;
-      rev = "1bfa54f5d72a9c088ee4a65443753e1d10b05504";
-      sha256 = "00rwf73q4n95r1sxkny2bcxal69d25r6rsidg7d5vl3zahw7c9qf";
+      rev = "ed772a23efa7e2a7d7ae6417939e900c66950fd9";
+      sha256 = "18rs08qxqgljxxby5jx56dmf37vm8xlx3dsna0xl6c4m3sydm77l";
       type = "git";
       url = "https://github.com/rapid7/metasploit-framework";
     };
-    version = "6.2.2";
+    version = "6.2.4";
   };
   metasploit-model = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "16mc0f7hqpqmnvyqar3hn3yr83xxvnm1ikmq6sxwbf08zhgz6v64";
+      sha256 = "1i08iwb7xgddh798xb3blyygqwgnb15ww3vlvw45248llk01gay3";
       type = "gem";
     };
-    version = "4.0.4";
+    version = "4.0.5";
   };
   metasploit-payloads = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0y06rkm2zh13qz1b40srx7dd1f5yl669k01ji4ha41pqn7wcv32v";
+      sha256 = "1azr70qfq14wpki61hnljqnxnxlx9ifa4p92wh29cnak8v697v69";
       type = "gem";
     };
-    version = "2.0.93";
+    version = "2.0.94";
   };
   metasploit_data_models = {
     groups = ["default"];
@@ -686,10 +686,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
+      sha256 = "08z6rgs1jgbc032843mwg3fayvzn4hihz8bl2gp87pf7z02kw5f3";
       type = "gem";
     };
-    version = "5.15.0";
+    version = "5.16.1";
   };
   mqtt = {
     groups = ["default"];
@@ -837,10 +837,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0mzrjqsdm4gdiwjpqs089ihfr3l184lfjxlmxvyma85ayyqarmkv";
+      sha256 = "0yqs5cn07lwh7nhc6zh92rymk0aran90zfjgcbvpgsr2mjsyq8rc";
       type = "gem";
     };
-    version = "4.24.0";
+    version = "4.25.0";
   };
   openssl-ccm = {
     groups = ["default"];
@@ -917,10 +917,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "10ryzmc3r5ja6g90a9ycsxcxsy5872xa1vf01jam0bm74zq3zmi6";
+      sha256 = "11q4zw8n0lmff5k514ip30yizr38jb2x5nh3m7fy3k13sbxbysrq";
       type = "gem";
     };
-    version = "1.3.5";
+    version = "1.4.1";
   };
   public_suffix = {
     groups = ["default"];
@@ -977,10 +977,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0rh8h376mx71ci5yklnpqqn118z3bl67nnv5k801qaqn1zs62h8m";
+      sha256 = "01igqmm7xqw6vg6x28phivl044n2crq0bcfjrxr4979kzxydgh8h";
       type = "gem";
     };
-    version = "1.1.0";
+    version = "2.0.0";
   };
   rails-dom-testing = {
     groups = ["default"];
@@ -1197,10 +1197,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "07nbcnn2pb7rcl6flr4kb9dzq29zrwa01kw5333pzwy5b5jfp65w";
+      sha256 = "1ckcqycg8jl2iiibpcry88rl0j2hsiklsxh6za5vp9rxsl09wlv6";
       type = "gem";
     };
-    version = "0.1.39";
+    version = "0.1.40";
   };
   rex-sslscan = {
     groups = ["default"];
@@ -1297,10 +1297,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0vqj4lb41vkpv0dl65caw7w9h804vzbdw5q6wvkzqv1q0k8nbqbd";
+      sha256 = "0cvavqvgwq2gcrg0gh8fdzyn9zzpkyh9g07jz6cn7zzxzgwxfn9v";
       type = "gem";
     };
-    version = "3.1.3";
+    version = "3.1.4";
   };
   rubyntlm = {
     groups = ["default"];
@@ -1357,10 +1357,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78";
+      sha256 = "1z1wa639c278bsipczn6kv8b13fj85pi8gk7x462chqx6k0wm0ax";
       type = "gem";
     };
-    version = "1.4.2";
+    version = "1.4.4";
   };
   sshkey = {
     groups = ["default"];
@@ -1577,9 +1577,9 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "09bq7j2p6mkbxnsg71s253dm2463kg51xc7bmjcxgyblqbh4ln7m";
+      sha256 = "0xjdr2szxvn3zb1sb5l8nfd6k9jr3b4qqbbg1mj9grf68m3fxckc";
       type = "gem";
     };
-    version = "2.5.4";
+    version = "2.6.0";
   };
 }
diff --git a/pkgs/tools/security/minica/default.nix b/pkgs/tools/security/minica/default.nix
index 29574e39cd922..b984221bec36d 100644
--- a/pkgs/tools/security/minica/default.nix
+++ b/pkgs/tools/security/minica/default.nix
@@ -1,33 +1,34 @@
-{ lib, buildGoPackage, fetchFromGitHub }:
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
 
-buildGoPackage rec {
+buildGoModule rec {
   pname = "minica";
   version = "1.0.2";
 
-  goPackagePath = "github.com/jsha/minica";
-
   src = fetchFromGitHub {
     owner = "jsha";
     repo = "minica";
     rev = "v${version}";
-    sha256 = "18518wp3dcjhf3mdkg5iwxqr3326n6jwcnqhyibphnb2a58ap7ny";
+    sha256 = "sha256-3p6rUFFiWXhX9BBbxqWxRoyRceexvNnqcFCyNi5HoaA=";
   };
 
-  ldflags = [
-    "-X main.BuildVersion=${version}"
-  ];
+  vendorSha256 = "sha256-pQpattmS9VmO3ZIQUFn66az8GSmB4IvYhTTCFn6SUmo=";
+
+  ldflags = [ "-s" "-w" ];
 
   meta = with lib; {
     description = "A simple tool for generating self signed certificates";
     longDescription = ''
-      Minica is a simple CA intended for use in situations where the CA
-      operator also operates each host where a certificate will be used. It
-      automatically generates both a key and a certificate when asked to
-      produce a certificate.
+      Minica is a simple CA intended for use in situations where the CA operator
+      also operates each host where a certificate will be used. It automatically
+      generates both a key and a certificate when asked to produce a
+      certificate.
     '';
     homepage = "https://github.com/jsha/minica/";
+    changelog = "https://github.com/jsha/minica/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ m1cr0man ];
-    platforms = platforms.linux ++ platforms.darwin;
   };
 }
diff --git a/pkgs/tools/security/mitmproxy2swagger/default.nix b/pkgs/tools/security/mitmproxy2swagger/default.nix
index 61c27633c4ad5..bdd189b479a11 100644
--- a/pkgs/tools/security/mitmproxy2swagger/default.nix
+++ b/pkgs/tools/security/mitmproxy2swagger/default.nix
@@ -5,14 +5,14 @@
 
 python3.pkgs.buildPythonApplication rec {
   pname = "mitmproxy2swagger";
-  version = "0.6.0";
+  version = "0.6.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alufers";
     repo = pname;
-    rev = version;
-    hash = "sha256-NTxRq7lIm3Y5RxOxdXiKVv39Co8GG9YE2kuEryRUw1Y=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7c+SIU5re1GaqKmzjY+wBXwm8CoQ4uaNLNHzUfG0GDA=";
   };
 
   nativeBuildInputs = with python3.pkgs; [
diff --git a/pkgs/tools/security/munge/default.nix b/pkgs/tools/security/munge/default.nix
index 2c242f256d3df..99d72fc7c95c4 100644
--- a/pkgs/tools/security/munge/default.nix
+++ b/pkgs/tools/security/munge/default.nix
@@ -11,7 +11,11 @@ stdenv.mkDerivation rec {
     sha256 = "15h805rwcb9f89dyrkxfclzs41n3ff8x7cc1dbvs8mb0ds682c4j";
   };
 
-  nativeBuildInputs = [ autoreconfHook ];
+  strictDeps = true;
+  nativeBuildInputs = [
+    autoreconfHook
+    libgcrypt # provides libgcrypt.m4
+  ];
   buildInputs = [ libgcrypt zlib bzip2 ];
 
   preAutoreconf = ''
@@ -21,6 +25,10 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--localstatedir=/var"
+    "--with-libgcrypt-prefix=${libgcrypt.dev}"
+    # workaround for cross compilation: https://github.com/dun/munge/issues/103
+    "ac_cv_file__dev_spx=no"
+    "x_ac_cv_check_fifo_recvfd=no"
   ];
 
   meta = with lib; {
diff --git a/pkgs/tools/security/nmap-formatter/default.nix b/pkgs/tools/security/nmap-formatter/default.nix
index 5b9494bf9d372..132d6b852b507 100644
--- a/pkgs/tools/security/nmap-formatter/default.nix
+++ b/pkgs/tools/security/nmap-formatter/default.nix
@@ -5,22 +5,16 @@
 
 buildGoModule rec {
   pname = "nmap-formatter";
-  version = "0.3.0";
+  version = "1.0.2";
 
   src = fetchFromGitHub {
     owner = "vdjagilev";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-tG91Cutk+RCBPv4Rf8CVnZa5Wh8qgsxEL0C6WIoEdsw=";
+    hash = "sha256-ePhm1qwluHhMC0oS/qEHkZv04nAdh2IDSkIW507MLjo=";
   };
 
-  vendorSha256 = "sha256-WXX1b8fPcwIE40w+Kzd7ZuSRXPiYtolRXC/Z8Kc9H2s=";
-
-  postPatch = ''
-    # Fix hard-coded release
-    substituteInPlace cmd/root.go \
-      --replace "0.2.0" "${version}"
-  '';
+  vendorSha256 = "sha256-zkPXjCC+ZdR14O60ZaGFYdEZVxQ5z99HVmLOR10qqfg=";
 
   meta = with lib; {
     description = "Tool that allows you to convert nmap output";
diff --git a/pkgs/tools/security/nuclei/default.nix b/pkgs/tools/security/nuclei/default.nix
index 8487d8a260509..0019c82bfbe69 100644
--- a/pkgs/tools/security/nuclei/default.nix
+++ b/pkgs/tools/security/nuclei/default.nix
@@ -5,16 +5,16 @@
 
 buildGoModule rec {
   pname = "nuclei";
-  version = "2.7.2";
+  version = "2.7.3";
 
   src = fetchFromGitHub {
     owner = "projectdiscovery";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-knpsoDVDGxG85YiD7pc+XDV7BgCSpNRFRuN+qM3Gv/U=";
+    sha256 = "sha256-E0oEB7N1+XyyoGrIgR7IECyKFRV5oDiEwZncVbq5urs=";
   };
 
-  vendorSha256 = "sha256-e17QpSXttso1crvBj0vrfuJliIDcXoXJzWt87ulSZXQ=";
+  vendorSha256 = "sha256-oqM/rOaqL/6un9J9OEconmobvzUwmuz0Hi+C7CR8Yak=";
 
   modRoot = "./v2";
   subPackages = [
diff --git a/pkgs/tools/security/osv-detector/default.nix b/pkgs/tools/security/osv-detector/default.nix
new file mode 100644
index 0000000000000..63d4e07a7b569
--- /dev/null
+++ b/pkgs/tools/security/osv-detector/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, osv-detector
+, testers
+}:
+
+buildGoModule rec {
+  pname = "osv-detector";
+  version = "0.6.0";
+
+  src = fetchFromGitHub {
+    owner = "G-Rath";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-Y/9q4ZJ4vxDitqrM4hGe49iqLYk4ebhTs4jrD7P8fdw=";
+  };
+
+  vendorSha256 = "sha256-KAxpDQIRrLZIOvfW8wf0CV4Fj6l3W6nNZNCH3ZE6yJc=";
+
+  ldflags = [
+    "-w"
+    "-s"
+    "-X main.version=${version}"
+  ];
+
+  passthru.tests.version = testers.testVersion {
+    package = osv-detector;
+    command = "osv-detector -version";
+    version = "osv-detector ${version} (unknown, commit none)";
+  };
+
+  meta = with lib; {
+    description = "Auditing tool for detecting vulnerabilities";
+    homepage = "https://github.com/G-Rath/osv-detector";
+    changelog = "https://github.com/G-Rath/osv-detector/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/pcsc-safenet/default.nix b/pkgs/tools/security/pcsc-safenet/default.nix
index 639aafee23c5f..68006a40da8d3 100644
--- a/pkgs/tools/security/pcsc-safenet/default.nix
+++ b/pkgs/tools/security/pcsc-safenet/default.nix
@@ -90,6 +90,7 @@ stdenv.mkDerivation rec {
     homepage = "https://safenet.gemalto.com/multi-factor-authentication/security-applications/authentication-client-token-management";
     description = "Safenet Authentication Client";
     platforms = [ "x86_64-linux" ];
+    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.unfree;
     maintainers = with maintainers; [ wldhx ];
   };
diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix
index 5a020dde9cc43..2a901a599d490 100644
--- a/pkgs/tools/security/prs/default.nix
+++ b/pkgs/tools/security/prs/default.nix
@@ -14,16 +14,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "prs";
-  version = "0.3.2";
+  version = "0.3.4";
 
   src = fetchFromGitLab {
     owner = "timvisee";
     repo = "prs";
     rev = "v${version}";
-    sha256 = "sha256-90Ed/mafACSJvH+DjCbdXs3eeyT+pGflRzDD9l3b0/s=";
+    hash = "sha256-dfyTaWwV2hNZPZfvM+AqqR1zbChjT6Y/TEkQPEXRtGA=";
   };
 
-  cargoSha256 = "sha256-5teiF8s11Ml8UtbVn6fXur2OQzE52JZnsgyDihbEFTQ=";
+  cargoHash = "sha256-yf46le0jG4EXo60kGKc0GwSO5vl4Dw0gmYJ4yr+TFdE=";
 
   postPatch = ''
     # The GPGME backend is recommended
diff --git a/pkgs/tools/security/pwdsafety/default.nix b/pkgs/tools/security/pwdsafety/default.nix
index 2a6ed328e49e1..ce4e149e77002 100644
--- a/pkgs/tools/security/pwdsafety/default.nix
+++ b/pkgs/tools/security/pwdsafety/default.nix
@@ -1,20 +1,20 @@
-{ buildGoModule
+{ lib
+, buildGoModule
 , fetchFromGitHub
-, lib
 }:
 
 buildGoModule rec {
   pname = "pwdsafety";
-  version = "0.1.4";
+  version = "0.3";
 
   src = fetchFromGitHub {
     owner = "edoardottt";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1qnkabgc2924qg9x1ij51jq7lnxzcj1ygdp3x4mzi9gl532i191w";
+    hash = "sha256-ryMLiehJVZhQ3ZQf4/g7ILeJri78A6z5jfell0pD9E8=";
   };
 
-  vendorSha256 = "0avm4zwwqv476yrraaf5xkc1lac0mwnmzav5wckifws6r4x3xrsb";
+  vendorSha256 = "sha256-b+tWTQUyYDzY2O28hwy5vI6b6S889TCiVh7hQhw/KAc=";
 
   meta = with lib; {
     description = "Command line tool checking password safety";
diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix
index 09e7b2b416959..1d23209a3b1b9 100644
--- a/pkgs/tools/security/rage/default.nix
+++ b/pkgs/tools/security/rage/default.nix
@@ -4,22 +4,20 @@
 , fetchFromGitHub
 , installShellFiles
 , Foundation
-, Security
-, libiconv
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "rage";
-  version = "0.8.0";
+  version = "0.8.1";
 
   src = fetchFromGitHub {
     owner = "str4d";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-ra68q5gwcbod5iajPIWEIGQceMK8ikSq/UKUfIEYaGE=";
+    sha256 = "sha256-FexplUdn56TanxAKC+a8uWoR3soJT1/1qi9t2tw19Vw=";
   };
 
-  cargoSha256 = "sha256-o5HVMRWSIrCsbOEOeUvCvj+mkmjqRY3XaHx82IY73Cc=";
+  cargoSha256 = "sha256-xlpi6UQTL1p9JSLENKrLjG2DF9mYiV+E8bfjHQtqOyY=";
 
   nativeBuildInputs = [
     installShellFiles
@@ -27,8 +25,6 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [
     Foundation
-    Security
-    libiconv
   ];
 
   # cargo test has an x86-only dependency
diff --git a/pkgs/tools/security/regpg/default.nix b/pkgs/tools/security/regpg/default.nix
new file mode 100644
index 0000000000000..aaefbef227b88
--- /dev/null
+++ b/pkgs/tools/security/regpg/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, makeWrapper
+, gnupg
+, perl
+}:
+
+let
+  perlEnv = perl.withPackages (p: with p; [ TextMarkdown ]);
+in
+stdenv.mkDerivation rec {
+  pname = "regpg";
+  version = "1.11";
+
+  src = fetchFromGitHub {
+    owner = "fanf2";
+    repo = "regpg";
+    rev = "regpg-${version}";
+    sha256 = "2ea99950804078190e1cc2a76d4740e3fdd5395a9043db3f3fe86bf2477d3a7d";
+  };
+
+  nativeBuildInputs = [ makeWrapper perlEnv ];
+
+  postPatch = ''
+    patchShebangs ./util/insert-here.pl ./util/markdown.pl
+    substituteInPlace ./Makefile \
+      --replace 'util/insert-here.pl' 'perl util/insert-here.pl'
+    substituteInPlace ./Makefile \
+      --replace 'util/markdown.pl' 'perl util/markdown.pl'
+    substituteInPlace util/insert-here.pl \
+      --replace 'qx(git describe)' '"regpg-${version}"'
+  '';
+
+  dontConfigure = true;
+
+  makeFlags = [ "prefix=$(out)" ];
+
+  postFixup = ''
+    patchShebangs $out/bin/regpg
+    wrapProgram $out/bin/regpg --prefix PATH ":" \
+      "${lib.makeBinPath [ gnupg ]}"
+  '';
+
+  meta = with lib; {
+    description = "GPG wrapper utility for storing secrets in VCS";
+    homepage = "https://dotat.at/prog/regpg";
+    license = licenses.gpl3;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ _0xC45 ];
+  };
+}
diff --git a/pkgs/tools/security/rekor/default.nix b/pkgs/tools/security/rekor/default.nix
index 80f88fa575cf0..99928b96caa49 100644
--- a/pkgs/tools/security/rekor/default.nix
+++ b/pkgs/tools/security/rekor/default.nix
@@ -4,13 +4,13 @@ let
   generic = { pname, packageToBuild, description }:
     buildGoModule rec {
       inherit pname;
-      version = "0.8.0";
+      version = "0.8.2";
 
       src = fetchFromGitHub {
         owner = "sigstore";
         repo = "rekor";
         rev = "v${version}";
-        sha256 = "sha256-DLgNHyw8PuQ5OS/5okzLqe5/J2m+JFmV4/xgt5fDNRI=";
+        sha256 = "sha256-EaOLqStoZJMTSS6g56UhFQRhuwYBjh/XLRX6JjD17+g=";
         # 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;
@@ -23,7 +23,7 @@ let
         '';
       };
 
-      vendorSha256 = "sha256-OZyRIi6y47c9eS8GLClgV4JGbSsvjd6KvED3N8LIe6I=";
+      vendorSha256 = "sha256-bvn5TKfTcB/0p47r5kW1P4OlnbWYQpESo9t8IC9f+fM=";
 
       nativeBuildInputs = [ installShellFiles ];
 
diff --git a/pkgs/tools/security/routersploit/default.nix b/pkgs/tools/security/routersploit/default.nix
new file mode 100644
index 0000000000000..e2a511c811b1e
--- /dev/null
+++ b/pkgs/tools/security/routersploit/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, fetchFromGitHub
+, python3
+}:
+
+python3.pkgs.buildPythonApplication rec {
+  pname = "routersploit";
+  version = "unstable-2021-02-06";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "threat9";
+    repo = pname;
+    rev = "3fd394637f5566c4cf6369eecae08c4d27f93cda";
+    hash = "sha256-IET0vL0VVP9ZNn75hKdTCiEmOZRHHYICykhzW2g3LEg=";
+  };
+
+  propagatedBuildInputs = with python3.pkgs; [
+    future
+    paramiko
+    pycryptodome
+    pysnmp
+    requests
+    setuptools
+  ];
+
+  checkInputs = with python3.pkgs; [
+    pytest-xdist
+    pytestCheckHook
+    threat9-test-bed
+  ];
+
+  postInstall = ''
+    mv $out/bin/rsf.py $out/bin/rsf
+  '';
+
+  pythonImportsCheck = [
+    "routersploit"
+  ];
+
+  pytestFlagsArray = [
+    "-n"
+    "$NIX_BUILD_CORES"
+    # Run the same tests as upstream does in the first round
+    "tests/core/"
+    "tests/test_exploit_scenarios.py"
+    "tests/test_module_info.py"
+  ];
+
+  meta = with lib; {
+    description = "Exploitation Framework for Embedded Devices";
+    homepage = "https://github.com/threat9/routersploit";
+    license = with licenses; [ bsd3 ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/schleuder/Gemfile b/pkgs/tools/security/schleuder/Gemfile
new file mode 100644
index 0000000000000..687c293bac913
--- /dev/null
+++ b/pkgs/tools/security/schleuder/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org' do
+  gem 'schleuder'
+end
diff --git a/pkgs/tools/security/schleuder/Gemfile.lock b/pkgs/tools/security/schleuder/Gemfile.lock
new file mode 100644
index 0000000000000..a5b7312901c27
--- /dev/null
+++ b/pkgs/tools/security/schleuder/Gemfile.lock
@@ -0,0 +1,85 @@
+GEM
+  specs:
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    activemodel (6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activerecord (6.1.4.4)
+      activemodel (= 6.1.4.4)
+      activesupport (= 6.1.4.4)
+    activesupport (6.1.4.4)
+      concurrent-ruby (~> 1.0, >= 1.0.2)
+      i18n (>= 1.6, < 2)
+      minitest (>= 5.1)
+      tzinfo (~> 2.0)
+      zeitwerk (~> 2.3)
+    bcrypt (3.1.16)
+    charlock_holmes (0.7.7)
+    concurrent-ruby (1.1.9)
+    daemons (1.4.1)
+    eventmachine (1.2.7)
+    gpgme (2.0.20)
+      mini_portile2 (~> 2.3)
+    i18n (1.8.11)
+      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.7.1)
+    minitest (5.15.0)
+    multi_json (1.15.0)
+    mustermann (1.1.1)
+      ruby2_keywords (~> 0.0.1)
+    rack (2.2.3)
+    rack-protection (2.1.0)
+      rack
+    rake (13.0.6)
+    ruby2_keywords (0.0.5)
+    schleuder (4.0.2)
+      activerecord (~> 6.1.3)
+      bcrypt (~> 3.1.2)
+      charlock_holmes (~> 0.7.6)
+      gpgme (~> 2.0, >= 2.0.19)
+      mail (~> 2.7.1)
+      mail-gpg (~> 0.3)
+      rake (>= 10.5.0)
+      sinatra (~> 2)
+      sinatra-contrib (~> 2)
+      sqlite3 (~> 1.4.2)
+      thin (~> 1)
+      thor (~> 0)
+    sinatra (2.1.0)
+      mustermann (~> 1.0)
+      rack (~> 2.2)
+      rack-protection (= 2.1.0)
+      tilt (~> 2.0)
+    sinatra-contrib (2.1.0)
+      multi_json
+      mustermann (~> 1.0)
+      rack-protection (= 2.1.0)
+      sinatra (= 2.1.0)
+      tilt (~> 2.0)
+    sqlite3 (1.4.2)
+    thin (1.8.1)
+      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)
+      concurrent-ruby (~> 1.0)
+    zeitwerk (2.5.3)
+
+PLATFORMS
+  x86_64-linux
+
+DEPENDENCIES
+  schleuder!
+
+BUNDLED WITH
+   2.2.24
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile b/pkgs/tools/security/schleuder/cli/Gemfile
new file mode 100644
index 0000000000000..428e856aecc65
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/Gemfile
@@ -0,0 +1,4 @@
+source "https://rubygems.org"
+
+gem "schleuder-cli", git: "https://0xacab.org/schleuder/schleuder-cli", tag: "schleuder-cli-0.1.0"
+
diff --git a/pkgs/tools/security/schleuder/cli/Gemfile.lock b/pkgs/tools/security/schleuder/cli/Gemfile.lock
new file mode 100644
index 0000000000000..bd47b9df7f9a0
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/Gemfile.lock
@@ -0,0 +1,21 @@
+GIT
+  remote: https://0xacab.org/schleuder/schleuder-cli
+  revision: 1de2548695d9a74f47b7868954561b48cbc966f9
+  tag: schleuder-cli-0.1.0
+  specs:
+    schleuder-cli (0.1.0)
+      thor (~> 0)
+
+GEM
+  remote: https://rubygems.org/
+  specs:
+    thor (0.20.3)
+
+PLATFORMS
+  x86_64-linux
+
+DEPENDENCIES
+  schleuder-cli!
+
+BUNDLED WITH
+   2.3.6
diff --git a/pkgs/tools/security/schleuder/cli/default.nix b/pkgs/tools/security/schleuder/cli/default.nix
new file mode 100644
index 0000000000000..e34afa699f042
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, bundlerApp
+, ruby
+, bundlerUpdateScript
+}:
+
+bundlerApp {
+  inherit ruby;
+
+  pname = "schleuder-cli";
+
+  gemdir = ./.;
+
+  installManpages = false;
+
+  exes = [
+    "schleuder-cli"
+  ];
+
+  passthru.updateScript = bundlerUpdateScript "schleuder-cli";
+
+  meta = with lib; {
+    description = "A 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
+      schleuder-api-daemon (part of Schleuder).
+    '';
+    homepage = "https://schleuder.org";
+    changelog = "https://0xacab.org/schleuder/schleuder-cli/-/blob/main/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/tools/security/schleuder/cli/gemset.nix b/pkgs/tools/security/schleuder/cli/gemset.nix
new file mode 100644
index 0000000000000..45ff62f891370
--- /dev/null
+++ b/pkgs/tools/security/schleuder/cli/gemset.nix
@@ -0,0 +1,25 @@
+{
+  schleuder-cli = {
+    dependencies = ["thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      fetchSubmodules = false;
+      rev = "1de2548695d9a74f47b7868954561b48cbc966f9";
+      sha256 = "0k4i33w9a0bscw4wbs301vxca367g7pa89y6cr24i0014pbmhs9z";
+      type = "git";
+      url = "https://0xacab.org/schleuder/schleuder-cli";
+    };
+    version = "0.1.0";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      type = "gem";
+    };
+    version = "0.20.3";
+  };
+}
diff --git a/pkgs/tools/security/schleuder/default.nix b/pkgs/tools/security/schleuder/default.nix
new file mode 100644
index 0000000000000..84597f6f51bf7
--- /dev/null
+++ b/pkgs/tools/security/schleuder/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, bundlerApp
+, ruby
+, bundlerUpdateScript
+, defaultGemConfig
+, nixosTests
+}:
+
+bundlerApp {
+  inherit ruby;
+
+  pname = "schleuder";
+
+  gemdir = ./.;
+
+  exes = [
+    "schleuder"
+    "schleuder-api-daemon"
+  ];
+
+  passthru.updateScript = bundlerUpdateScript "schleuder";
+  passthru.tests = {
+    inherit (nixosTests) schleuder;
+  };
+
+  meta = with lib; {
+    description = "Schleuder is an encrypting mailing list manager with remailing-capabilities";
+    longDescription = ''
+      Schleuder is a group's email-gateway: subscribers can exchange
+      encrypted emails among themselves, receive emails from
+      non-subscribers and send emails to non-subscribers via the list.
+    '';
+    homepage = "https://schleuder.org";
+    changelog = "https://0xacab.org/schleuder/schleuder/blob/main/CHANGELOG.md";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ hexa lheckemann ];
+  };
+}
diff --git a/pkgs/tools/security/schleuder/gemset.nix b/pkgs/tools/security/schleuder/gemset.nix
new file mode 100644
index 0000000000000..9bd9cadbb883b
--- /dev/null
+++ b/pkgs/tools/security/schleuder/gemset.nix
@@ -0,0 +1,316 @@
+{
+  activemodel = {
+    dependencies = ["activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0g3qdz8dw6zkgz45jd13lwfdnm7rhgczv1pssw63g9k6qj3bkxjm";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  activerecord = {
+    dependencies = ["activemodel" "activesupport"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "090d4wl1pq06m9mibpck0m5nm8h45fwhs3fjx27297kjmnv4gzik";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  activesupport = {
+    dependencies = ["concurrent-ruby" "i18n" "minitest" "tzinfo" "zeitwerk"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rvnz9lsf9mrkpji748sf51f54m027snkw6rm8flyvf7fq18rm98";
+      type = "gem";
+    };
+    version = "6.1.4.4";
+  };
+  bcrypt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "02r1c3isfchs5fxivbq99gc3aq4vfyn8snhcy707dal1p8qz12qb";
+      type = "gem";
+    };
+    version = "3.1.16";
+  };
+  charlock_holmes = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hybw8jw9ryvz5zrki3gc9r88jqy373m6v46ynxsdzv1ysiyr40p";
+      type = "gem";
+    };
+    version = "0.7.7";
+  };
+  concurrent-ruby = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0nwad3211p7yv9sda31jmbyw6sdafzmdi2i2niaz6f0wk5nq9h0f";
+      type = "gem";
+    };
+    version = "1.1.9";
+  };
+  daemons = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "07cszb0zl8mqmwhc8a2yfg36vi6lbgrp4pa5bvmryrpcz9v6viwg";
+      type = "gem";
+    };
+    version = "1.4.1";
+  };
+  eventmachine = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0wh9aqb0skz80fhfn66lbpr4f86ya2z5rx6gm5xlfhd05bj1ch4r";
+      type = "gem";
+    };
+    version = "1.2.7";
+  };
+  gpgme = {
+    dependencies = ["mini_portile2"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0xbgh9d8nbvsvyzqnd0mzhz0nr9hx4qn025kmz6d837lry4lc6gw";
+      type = "gem";
+    };
+    version = "2.0.20";
+  };
+  i18n = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
+      type = "gem";
+    };
+    version = "1.8.11";
+  };
+  mail = {
+    dependencies = ["mini_mime"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "00wwz6ys0502dpk8xprwcqfwyf3hmnx6lgxaiq6vj43mkx43sapc";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  mail-gpg = {
+    dependencies = ["gpgme" "mail"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rz936m8nacy7agksvpvkf6b37d1h5qvh5xkrjqvv5wbdqs3cyfj";
+      type = "gem";
+    };
+    version = "0.4.4";
+  };
+  mini_mime = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lbim375gw2dk6383qirz13hgdmxlan0vc5da2l072j3qw6fqjm5";
+      type = "gem";
+    };
+    version = "1.1.2";
+  };
+  mini_portile2 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0d3ga166pahsxavzwj19yjj4lr13rw1vsb36s2qs8blcxigrdp6z";
+      type = "gem";
+    };
+    version = "2.7.1";
+  };
+  minitest = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "06xf558gid4w8lwx13jwfdafsch9maz8m0g85wnfymqj63x5nbbd";
+      type = "gem";
+    };
+    version = "5.15.0";
+  };
+  multi_json = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0pb1g1y3dsiahavspyzkdy39j4q377009f6ix0bh1ag4nqw43l0z";
+      type = "gem";
+    };
+    version = "1.15.0";
+  };
+  mustermann = {
+    dependencies = ["ruby2_keywords"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0ccm54qgshr1lq3pr1dfh7gphkilc19dp63rw6fcx7460pjwy88a";
+      type = "gem";
+    };
+    version = "1.1.1";
+  };
+  rack = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0i5vs0dph9i5jn8dfc6aqd6njcafmb20rwqngrf759c9cvmyff16";
+      type = "gem";
+    };
+    version = "2.2.3";
+  };
+  rack-protection = {
+    dependencies = ["rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "159a4j4kragqh0z0z8vrpilpmaisnlz3n7kgiyf16bxkwlb3qlhz";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  rake = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15whn7p9nrkxangbs9hh75q585yfn66lv0v2mhj6q6dl6x8bzr2w";
+      type = "gem";
+    };
+    version = "13.0.6";
+  };
+  ruby2_keywords = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1vz322p8n39hz3b4a9gkmz9y7a5jaz41zrm2ywf31dvkqm03glgz";
+      type = "gem";
+    };
+    version = "0.0.5";
+  };
+  schleuder = {
+    dependencies = ["activerecord" "bcrypt" "charlock_holmes" "gpgme" "mail" "mail-gpg" "rake" "sinatra" "sinatra-contrib" "sqlite3" "thin" "thor"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "15j1rfkfvni82msamikynsg48s50hbsx1pxm3y967caq9s80ll6c";
+      type = "gem";
+    };
+    version = "4.0.2";
+  };
+  sinatra = {
+    dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0dd53rzpkxgs697pycbhhgc9vcnxra4ly4xar8ni6aiydx2f88zk";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  sinatra-contrib = {
+    dependencies = ["multi_json" "mustermann" "rack-protection" "sinatra" "tilt"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1rl1iiafz51yzjd0vchl2lni7lmwppjql6cn1fnfxbma707qlcja";
+      type = "gem";
+    };
+    version = "2.1.0";
+  };
+  sqlite3 = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lja01cp9xd5m6vmx99zwn4r7s97r1w5cb76gqd8xhbm1wxyzf78";
+      type = "gem";
+    };
+    version = "1.4.2";
+  };
+  thin = {
+    dependencies = ["daemons" "eventmachine" "rack"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "123bh7qlv6shk8bg8cjc84ix8bhlfcilwnn3iy6zq3l57yaplm9l";
+      type = "gem";
+    };
+    version = "1.8.1";
+  };
+  thor = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1yhrnp9x8qcy5vc7g438amd5j9sw83ih7c30dr6g6slgw9zj3g29";
+      type = "gem";
+    };
+    version = "0.20.3";
+  };
+  tilt = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
+      type = "gem";
+    };
+    version = "2.0.10";
+  };
+  tzinfo = {
+    dependencies = ["concurrent-ruby"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "10qp5x7f9hvlc0psv9gsfbxg4a7s0485wsbq1kljkxq94in91l4z";
+      type = "gem";
+    };
+    version = "2.0.4";
+  };
+  zeitwerk = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0lmg9x683gr9mkrbq9df2m0zb0650mdfxqna0bs10js44inv7znx";
+      type = "gem";
+    };
+    version = "2.5.3";
+  };
+}
diff --git a/pkgs/tools/security/secrets-extractor/default.nix b/pkgs/tools/security/secrets-extractor/default.nix
new file mode 100644
index 0000000000000..948ee05bbd91a
--- /dev/null
+++ b/pkgs/tools/security/secrets-extractor/default.nix
@@ -0,0 +1,31 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+, libpcap
+}:
+
+buildGoModule rec {
+  pname = "secrets-extractor";
+  version = "1.0.1";
+
+  src = fetchFromGitHub {
+    owner = "Xenios91";
+    repo = "Secrets-Extractor";
+    rev = "v${version}";
+    hash = "sha256-cwEG0cXlyhrUSQAuZ/5KVqJtez13GvZghabsooXCM/U=";
+  };
+
+  vendorSha256 = "sha256-KhAaBNSpFu7LAWiHCWD1OssexW9N96ArDb7Oo1AaiWI=";
+
+  buildInputs = [
+    libpcap
+  ];
+
+  meta = with lib; {
+    description = "Tool to check packets for secrets";
+    homepage = "https://github.com/Xenios91/Secrets-Extractor";
+    # https://github.com/Xenios91/Secrets-Extractor/issues/1
+    license = with licenses; [ unfree ];
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/tools/security/sherlock/default.nix b/pkgs/tools/security/sherlock/default.nix
new file mode 100644
index 0000000000000..7d402fd8f3f06
--- /dev/null
+++ b/pkgs/tools/security/sherlock/default.nix
@@ -0,0 +1,56 @@
+{ stdenv, lib, fetchFromGitHub, python3, makeWrapper }:
+let
+  pyenv = python3.withPackages (pp: with pp; [
+    beautifulsoup4
+    certifi
+    colorama
+    lxml
+    pysocks
+    requests
+    requests-futures
+    soupsieve
+    stem
+    torrequest
+  ]);
+in
+stdenv.mkDerivation rec {
+  pname = "sherlock";
+  version = "0.14.0";
+
+  src = fetchFromGitHub {
+    owner = "sherlock-project";
+    repo = pname;
+    rev = "f8566960d461783558b7bcba5c818d9275de492a";
+    sha256 = "sha256-6jG/SmsiEL63EcBrx2fcQDYbmMCA+A7Jsc3E4f5NGts=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  postPatch = ''
+    substituteInPlace sherlock/sherlock.py \
+      --replace "os.path.dirname(__file__)" "\"$out/share\""
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/bin $out/share
+    cp ./sherlock/*.py $out/bin/
+    cp --recursive ./sherlock/resources/ $out/share
+    makeWrapper ${pyenv.interpreter} $out/bin/sherlock --add-flags "$out/bin/sherlock.py"
+    runHook postInstall
+  '';
+
+  checkPhase = ''
+    runHook preCheck
+    cd $srcRoot/sherlock
+    ${pyenv.interpreter} -m unittest tests.all.SherlockSiteCoverageTests --verbose
+    runHook postCheck
+  '';
+
+  meta = with lib; {
+    homepage = "https://sherlock-project.github.io/";
+    description = "Hunt down social media accounts by username across social networks";
+    license = licenses.mit;
+    maintainers = with maintainers; [ applePrincess ];
+  };
+}
diff --git a/pkgs/tools/security/spire/default.nix b/pkgs/tools/security/spire/default.nix
index fcb74d421ebbc..4664e058367e7 100644
--- a/pkgs/tools/security/spire/default.nix
+++ b/pkgs/tools/security/spire/default.nix
@@ -1,8 +1,8 @@
-{ lib, buildGoModule, fetchFromGitHub }:
+{ lib, buildGo118Module, fetchFromGitHub }:
 
-buildGoModule rec {
+buildGo118Module rec {
   pname = "spire";
-  version = "1.2.3";
+  version = "1.3.1";
 
   outputs = [ "out" "agent" "server" ];
 
@@ -10,10 +10,10 @@ buildGoModule rec {
     owner = "spiffe";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-k2kg1Wz0pPV9di2T1A1QvPxLqS5uZBvklNfBW72dQa0=";
+    sha256 = "sha256-8LDdHChCTSpepwTMg2hUvQ6ZDoqaZt9QeKrBgfIOLx8=";
   };
 
-  vendorSha256 = "sha256-J2D5hD0+0VY0sWi6O/McLIvK775aQiDqA+h24oYgRxY=";
+  vendorSha256 = "sha256-QgPDhUu5uCkmC6L5UKtnz/wt/M1rERxc5nXmVVPtRKY=";
 
   subPackages = [ "cmd/spire-agent" "cmd/spire-server" ];
 
diff --git a/pkgs/tools/security/sslscan/default.nix b/pkgs/tools/security/sslscan/default.nix
index ae94b6e254702..6c112d6488daa 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.0.13";
+  version = "2.0.14";
 
   src = fetchFromGitHub {
     owner = "rbsec";
     repo = "sslscan";
     rev = version;
-    sha256 = "sha256-boXp26f8jiw73lMLwUMuAuDBRIw8JzokYadbKx/VeSg=";
+    sha256 = "sha256-CqfxiTRIgrr4J6qThDFqohkxJj5Byf0vQzG+voAEzag=";
   };
 
   buildInputs = [ openssl ];
diff --git a/pkgs/tools/security/terrascan/default.nix b/pkgs/tools/security/terrascan/default.nix
index eb7553d89f47f..573f0324969db 100644
--- a/pkgs/tools/security/terrascan/default.nix
+++ b/pkgs/tools/security/terrascan/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "terrascan";
-  version = "1.15.1";
+  version = "1.15.2";
 
   src = fetchFromGitHub {
     owner = "accurics";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-4Yd+ifOW5T84hPv+tyEO5HPq2esSk8DkK0G5YSjY+V8=";
+    sha256 = "sha256-lxieqHOmkazkBnwfKLVYy0TE7rfrKcLBENeABdmWpXI=";
   };
 
   vendorSha256 = "sha256-EfHcCk2NkicSPeJYgHJT2kh9EwLldksET75ZQambrWA=";
diff --git a/pkgs/tools/security/tor/default.nix b/pkgs/tools/security/tor/default.nix
index 90485ae817ed3..75492e877386f 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.7.7";
+  version = "0.4.7.8";
 
   src = fetchurl {
     url = "https://dist.torproject.org/${pname}-${version}.tar.gz";
-    sha256 = "sha256-PhMRWLUrlDXX5D0cR+8oi5bQBTQsxEuMlQu0A4UaW0Q=";
+    sha256 = "sha256-nppcZ60qzdXw+L4U7Vkf7QdrFwir+DRAZpkKD6Zv4ZU=";
   };
 
   outputs = [ "out" "geoip" ];
diff --git a/pkgs/tools/security/witness/default.nix b/pkgs/tools/security/witness/default.nix
index f443d765b571e..c3334875d2f05 100644
--- a/pkgs/tools/security/witness/default.nix
+++ b/pkgs/tools/security/witness/default.nix
@@ -2,25 +2,25 @@
 
 buildGoModule rec {
   pname = "witness";
-  version = "0.1.8";
+  version = "0.1.10";
 
   src = fetchFromGitHub {
     owner = "testifysec";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-i76sw5ysWDZwuNt7CYtpVy9mEV643i4YaMxksglyPWw=";
+    sha256 = "sha256-BRYp8gp3TNZrl6fRNHOIgdhCVCN+N2lReFk+0FxCUxY=";
   };
-  vendorSha256 = "sha256-A3fnAWEJ7SeUnDfIIOkbHIhUBRB8INcqMleOLL3LHF0=";
+  vendorSha256 = "sha256-/NniYty50dO44VUTfVq9b8dbT3le4uZ2ZoDN4IjLBto=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   # We only want the witness binary, not the helper utilities for generating docs.
-  subPackages = [ "cmd/witness" ];
+  subPackages = [ "." ];
 
   ldflags = [
     "-s"
     "-w"
-    "-X github.com/testifysec/witness/cmd/witness/cmd.Version=v${version}"
+    "-X github.com/testifysec/witness/cmd.Version=v${version}"
   ];
 
   # Feed in all tests for testing
diff --git a/pkgs/tools/security/yubikey-agent/default.nix b/pkgs/tools/security/yubikey-agent/default.nix
index eca528f1c9047..c4a9dfd5b0fda 100644
--- a/pkgs/tools/security/yubikey-agent/default.nix
+++ b/pkgs/tools/security/yubikey-agent/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "yubikey-agent";
-  version = "0.1.5";
 
+  version = "unstable-2022-03-17";
   src = fetchFromGitHub {
     owner = "FiloSottile";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "14s61jgcmpqh70jz0krrai8xg0xqhwmillxkij50vbsagpxjssk6";
+    repo = "yubikey-agent";
+    rev = "205a7ef2554625c7494038600d963123d6311873";
+    sha256 = "sha256-wJpN63KY5scmez6yYFsIr3JLEUB+YSl/XvoatIIeRI0=";
   };
 
   buildInputs =
@@ -21,7 +21,7 @@ buildGoModule rec {
     substituteInPlace main.go --replace 'notify-send' ${libnotify}/bin/notify-send
   '';
 
-  vendorSha256 = "1v4ccn7ysh8ax1nkf1v9fcgsdnz6zjyh6j6ivyljyfvma1lmcrmk";
+  vendorSha256 = "sha256-SnjbkDPVjAnCbM2nLqBsuaPZwOmvDTKiUbi/93BlWVQ=";
 
   doCheck = false;
 
diff --git a/pkgs/tools/system/bfs/default.nix b/pkgs/tools/system/bfs/default.nix
index bf98e5dcece10..68feb0c1857cf 100644
--- a/pkgs/tools/system/bfs/default.nix
+++ b/pkgs/tools/system/bfs/default.nix
@@ -1,17 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, libcap, acl }:
+{ lib, stdenv, fetchFromGitHub, libcap, acl, oniguruma }:
 
 stdenv.mkDerivation rec {
   pname = "bfs";
-  version = "2.3.1";
+  version = "2.6";
 
   src = fetchFromGitHub {
     repo = "bfs";
     owner = "tavianator";
     rev = version;
-    sha256 = "sha256-V82UdCG0J04sZP3FTVQqANrez/LCwOLQY6zzFOoIeNo=";
+    sha256 = "sha256-QFhU8MElVaEtjCP0Wjt8d9/etCYsy4QrpOFldVdok8k=";
   };
 
-  buildInputs = lib.optionals stdenv.isLinux [ libcap acl ];
+  buildInputs = [ oniguruma ] ++ lib.optionals stdenv.isLinux [ libcap acl ];
 
   # Disable LTO on darwin. See https://github.com/NixOS/nixpkgs/issues/19098
   preConfigure = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/tools/system/btop/default.nix b/pkgs/tools/system/btop/default.nix
index 86547d04e467d..7b18f0ec604fe 100644
--- a/pkgs/tools/system/btop/default.nix
+++ b/pkgs/tools/system/btop/default.nix
@@ -8,8 +8,8 @@
 
 stdenv.mkDerivation rec {
   pname = "btop";
-  version = "1.2.6";
-  hash = "sha256-q1Dpdw7bVSG10xtoUpelRgMrWe71vCWajjsAHjAZzQ4=";
+  version = "1.2.7";
+  hash = "sha256-zQpt/CEWW3oPqPo6SPuawyfLa50y6M4hL07uRO7YjLo=";
 
   src = fetchFromGitHub {
     owner = "aristocratos";
diff --git a/pkgs/tools/system/colorls/Gemfile.lock b/pkgs/tools/system/colorls/Gemfile.lock
index e9cd8cbf766d4..29f4e6bd87da8 100644
--- a/pkgs/tools/system/colorls/Gemfile.lock
+++ b/pkgs/tools/system/colorls/Gemfile.lock
@@ -1,17 +1,21 @@
 GEM
   remote: https://rubygems.org/
   specs:
+    addressable (2.8.0)
+      public_suffix (>= 2.0.2, < 5.0)
     clocale (0.0.4)
-    colorls (1.4.3)
+    colorls (1.4.6)
+      addressable (~> 2.7)
       clocale (~> 0)
       filesize (~> 0)
       manpages (~> 0)
       rainbow (>= 2.2, < 4.0)
-      unicode-display_width (~> 1.7)
+      unicode-display_width (>= 1.7, < 3.0)
     filesize (0.2.0)
     manpages (0.6.1)
-    rainbow (3.0.0)
-    unicode-display_width (1.7.0)
+    public_suffix (4.0.7)
+    rainbow (3.1.1)
+    unicode-display_width (2.1.0)
 
 PLATFORMS
   ruby
@@ -20,4 +24,4 @@ DEPENDENCIES
   colorls
 
 BUNDLED WITH
-   2.1.4
+   2.3.9
diff --git a/pkgs/tools/system/colorls/gemset.nix b/pkgs/tools/system/colorls/gemset.nix
index b978a4762acc6..ca9db9cb250de 100644
--- a/pkgs/tools/system/colorls/gemset.nix
+++ b/pkgs/tools/system/colorls/gemset.nix
@@ -1,4 +1,15 @@
 {
+  addressable = {
+    dependencies = ["public_suffix"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "022r3m9wdxljpbya69y2i3h9g3dhhfaqzidf95m6qjzms792jvgp";
+      type = "gem";
+    };
+    version = "2.8.0";
+  };
   clocale = {
     groups = ["default"];
     platforms = [];
@@ -10,15 +21,15 @@
     version = "0.0.4";
   };
   colorls = {
-    dependencies = ["clocale" "filesize" "manpages" "rainbow" "unicode-display_width"];
+    dependencies = ["addressable" "clocale" "filesize" "manpages" "rainbow" "unicode-display_width"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1w9d99qzgxw8wwa4z1vkdnr70fppx2g9shma6dz3ihjhajj2xvmq";
+      sha256 = "16r9c61lamjiig4rxfx1rs0bagqq8lbz88vf1250zkvq4fdk93p9";
       type = "gem";
     };
-    version = "1.4.3";
+    version = "1.4.6";
   };
   filesize = {
     groups = ["default"];
@@ -40,24 +51,34 @@
     };
     version = "0.6.1";
   };
+  public_suffix = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "1f3knlwfwm05sfbaihrxm4g772b79032q14c16q4b38z8bi63qcb";
+      type = "gem";
+    };
+    version = "4.0.7";
+  };
   rainbow = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
+      sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
       type = "gem";
     };
-    version = "3.0.0";
+    version = "3.1.1";
   };
   unicode-display_width = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "06i3id27s60141x6fdnjn5rar1cywdwy64ilc59cz937303q3mna";
+      sha256 = "0csjm9shhfik0ci9mgimb7hf3xgh7nx45rkd9rzgdz6vkwr8rzxn";
       type = "gem";
     };
-    version = "1.7.0";
+    version = "2.1.0";
   };
 }
diff --git a/pkgs/tools/system/fancy-motd/default.nix b/pkgs/tools/system/fancy-motd/default.nix
index e8f21c6fbd319..f2ac62f2874a9 100644
--- a/pkgs/tools/system/fancy-motd/default.nix
+++ b/pkgs/tools/system/fancy-motd/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fancy-motd";
-  version = "unstable-2021-07-15";
+  version = "unstable-2022-06-06";
 
   src = fetchFromGitHub {
     owner = "bcyran";
     repo = pname;
-    rev = "e8d2d2602d9b9fbc132ddc4f9fbf22428d715721";
-    sha256 = "10fxr1grsiwvdc5m2wd4n51lvz0zd4sldg9rzviaim18nw68gdq3";
+    rev = "812c58f04f65053271f866f3797baa2eba7324f5";
+    sha256 = "sha256-O/euB63Dyj+NyfZK42egSEYwZhL8B0jCxSSDYoT4cpo=";
   };
 
   buildInputs = [ bc curl figlet fortune gawk iproute2 ];
diff --git a/pkgs/tools/system/netdata/default.nix b/pkgs/tools/system/netdata/default.nix
index 24c791bed4a45..7db1472431e57 100644
--- a/pkgs/tools/system/netdata/default.nix
+++ b/pkgs/tools/system/netdata/default.nix
@@ -16,14 +16,14 @@ with lib;
 let
   go-d-plugin = callPackage ./go.d.plugin.nix {};
 in stdenv.mkDerivation rec {
-  version = "1.34.1";
+  version = "1.35.1";
   pname = "netdata";
 
   src = fetchFromGitHub {
     owner = "netdata";
     repo = "netdata";
     rev = "v${version}";
-    sha256 = "sha256-MGXHIbmoPRyjjYHV/RD9sd8Dn74YVlET2V3d/wJ3blo=";
+    sha256 = "sha256-wYphy3+DlT0UpQ5su/LkMJRIcABiBR+fIL/0w9bUeS0=";
     fetchSubmodules = true;
   };
 
@@ -101,6 +101,8 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/netdata-claim.sh --prefix PATH : ${lib.makeBinPath [ openssl ]}
   '';
 
+  enableParallelBuild = true;
+
   passthru = {
     inherit withIpmi;
     tests.netdata = nixosTests.netdata;
diff --git a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
index eb7b4f8bb60fe..0daaf6ee7ed3d 100644
--- a/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
+++ b/pkgs/tools/system/netdata/no-files-in-etc-and-var.patch
@@ -1,8 +1,8 @@
 diff --git a/collectors/Makefile.am b/collectors/Makefile.am
-index 021e2ff23..115b88277 100644
+index a0a972e8f..b4a2a5f53 100644
 --- a/collectors/Makefile.am
 +++ b/collectors/Makefile.am
-@@ -33,7 +33,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
+@@ -32,7 +32,7 @@ usercustompluginsconfigdir=$(configdir)/custom-plugins.d
  usergoconfigdir=$(configdir)/go.d
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -37,21 +37,8 @@ index 2d5f92a6b..8b11c7502 100644
  	$(INSTALL) -d $(DESTDIR)$(userebpfconfigdir)
  
  dist_noinst_DATA = \
-diff --git a/collectors/node.d.plugin/Makefile.am b/collectors/node.d.plugin/Makefile.am
-index c3142d433..95e324455 100644
---- a/collectors/node.d.plugin/Makefile.am
-+++ b/collectors/node.d.plugin/Makefile.am
-@@ -26,7 +26,7 @@ dist_usernodeconfig_DATA = \
-     $(NULL)
- 
- # Explicitly install directories to avoid permission issues due to umask
--install-exec-local:
-+no-install-exec-local:
- 	$(INSTALL) -d $(DESTDIR)$(usernodeconfigdir)
- 
- nodeconfigdir=$(libconfigdir)/node.d
 diff --git a/collectors/python.d.plugin/Makefile.am b/collectors/python.d.plugin/Makefile.am
-index 38eb90f79..ce7079441 100644
+index 667f1627c..eb6810057 100644
 --- a/collectors/python.d.plugin/Makefile.am
 +++ b/collectors/python.d.plugin/Makefile.am
 @@ -32,7 +32,7 @@ dist_userpythonconfig_DATA = \
@@ -64,10 +51,10 @@ index 38eb90f79..ce7079441 100644
  
  pythonconfigdir=$(libconfigdir)/python.d
 diff --git a/collectors/statsd.plugin/Makefile.am b/collectors/statsd.plugin/Makefile.am
-index 71f2d468d..2c9ced2bf 100644
+index c8144c137..f8aaa89b6 100644
 --- a/collectors/statsd.plugin/Makefile.am
 +++ b/collectors/statsd.plugin/Makefile.am
-@@ -18,5 +18,5 @@ dist_userstatsdconfig_DATA = \
+@@ -19,5 +19,5 @@ dist_userstatsdconfig_DATA = \
      $(NULL)
  
  # Explicitly install directories to avoid permission issues due to umask
@@ -75,7 +62,7 @@ index 71f2d468d..2c9ced2bf 100644
 +no-install-exec-local:
  	$(INSTALL) -d $(DESTDIR)$(userstatsdconfigdir)
 diff --git a/health/Makefile.am b/health/Makefile.am
-index 349b86d61..514f1874f 100644
+index d5eb88468..ab246e77a 100644
 --- a/health/Makefile.am
 +++ b/health/Makefile.am
 @@ -19,7 +19,7 @@ dist_userhealthconfig_DATA = \
diff --git a/pkgs/tools/system/nvtop/default.nix b/pkgs/tools/system/nvtop/default.nix
index b25897b69267d..9b3ac780099e7 100644
--- a/pkgs/tools/system/nvtop/default.nix
+++ b/pkgs/tools/system/nvtop/default.nix
@@ -2,6 +2,7 @@
 , stdenv
 , fetchFromGitHub
 , cmake
+, gtest
 , cudatoolkit
 , libdrm
 , ncurses
@@ -23,24 +24,25 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "nvtop" + pname-suffix;
-  version = "2.0.1";
+  version = "2.0.2";
 
   src = fetchFromGitHub {
     owner = "Syllo";
     repo = "nvtop";
     rev = version;
-    sha256 = "sha256-4Alc5pBXb38PUhTRhdKZMiW+P3daDB0q3jiVL8qqEe4=";
+    sha256 = "sha256-TlhCU7PydzHG/YMlk922mxEJ3CZw40784U0w1YawI3I=";
   };
 
   cmakeFlags = with lib; [
     "-DCMAKE_BUILD_TYPE=Release"
+    "-DBUILD_TESTING=ON"
   ] ++ optional nvidia "-DNVML_INCLUDE_DIRS=${cudatoolkit}/include"
   ++ optional nvidia "-DNVML_LIBRARIES=${cudatoolkit}/targets/x86_64-linux/lib/stubs/libnvidia-ml.so"
   ++ optional (!amd) "-DAMDGPU_SUPPORT=OFF"
   ++ optional (!nvidia) "-DNVIDIA_SUPPORT=OFF"
   ++ optional amd "-DLibdrm_INCLUDE_DIRS=${libdrm}/lib/stubs/libdrm.so.2"
   ;
-  nativeBuildInputs = [ cmake] ++ lib.optional nvidia addOpenGLRunpath;
+  nativeBuildInputs = [ cmake gtest ] ++ lib.optional nvidia addOpenGLRunpath;
   buildInputs = with lib; [ ncurses ]
     ++ optional nvidia cudatoolkit
     ++ optional amd libdrm
@@ -49,11 +51,13 @@ stdenv.mkDerivation rec {
   # ordering of fixups is important
   postFixup = (lib.optionalString amd amd-postFixup) + (lib.optionalString nvidia nvidia-postFixup);
 
+  doCheck = true;
+
   meta = with lib; {
     description = "A (h)top like task monitor for AMD and NVIDIA GPUs";
     longDescription = ''
       Nvtop stands for Neat Videocard TOP, a (h)top like task monitor for AMD and NVIDIA GPUs. It can handle multiple GPUs and print information about them in a htop familiar way.
-  '';
+    '';
     homepage = "https://github.com/Syllo/nvtop";
     license = licenses.gpl3;
     platforms = platforms.linux;
diff --git a/pkgs/tools/system/openipmi/default.nix b/pkgs/tools/system/openipmi/default.nix
index 7e54a5549b714..228c305de0c6f 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, python39, readline, lib }:
 
 stdenv.mkDerivation rec {
   pname = "OpenIPMI";
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-9tD9TAp0sF+AkHIp0LJw9UyiMpS8wRl5+LjRJ2Z4aUU=";
   };
 
-  buildInputs = [ ncurses popt python3 readline ];
+  buildInputs = [ ncurses popt python39 readline ];
 
   outputs = [ "out" "lib" "dev" "man" ];
 
@@ -18,6 +18,6 @@ stdenv.mkDerivation rec {
     description = "A 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 SuperSandro2000 ];
+    maintainers = with maintainers; [ arezvov ] ++ teams.c3d2.members;
   };
 }
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index e72d7ff5e1c20..18dc89a868045 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -10,22 +10,22 @@
 }:
 
 let
-  dbrev = "5171";
-  drivedbBranch = "RELEASE_7_2_DRIVEDB";
+  dbrev = "5388";
+  drivedbBranch = "RELEASE_7_3_DRIVEDB";
   driverdb = fetchurl {
     url = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "0vncr98xagbcfsxgfgxsip2qrl9q3y8va19qhv6yknlwbdfap4mn";
+    sha256 = "sha256-0dtLev4JjeHsS259+qOgg19rz4yjkeX4D3ooUgS4RTI=";
     name = "smartmontools-drivedb.h";
   };
 
 in
 stdenv.mkDerivation rec {
   pname = "smartmontools";
-  version = "7.2";
+  version = "7.3";
 
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${pname}-${version}.tar.gz";
-    sha256 = "1mlc25sd5rgj5xmzcllci47inmfdw7cp185fday6hc9rwqkqmnaw";
+    sha256 = "sha256-pUT4gI0MWM+w50JMoYQcuFipdJIrA11QXU5MJIvjois=";
   };
 
   patches = [
diff --git a/pkgs/tools/system/tre-command/default.nix b/pkgs/tools/system/tre-command/default.nix
index 8e8d5c1205164..f79c1625fbf25 100644
--- a/pkgs/tools/system/tre-command/default.nix
+++ b/pkgs/tools/system/tre-command/default.nix
@@ -2,23 +2,28 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "tre-command";
-  version = "0.3.6";
+  version = "0.4.0";
 
   src = fetchFromGitHub {
     owner = "dduan";
     repo = "tre";
     rev = "v${version}";
-    sha256 = "1r84xzv3p0ml3wac2j7j5fkm7i93v2xvadb8f8al5wi57q39irj7";
+    sha256 = "sha256-JlkONhXMWLzxAf3SYoLkSvXw4bFYBnsCyyj0TUsezwg=";
   };
 
-  cargoSha256 = "1f7yhnbgccqmz8hpc1xdv97j53far6d5p5gqvq6xxaqq9irf9bgj";
+  cargoSha256 = "sha256-b3fScJMG/CIkMrahbELLQp1otmT5En+p8kQsip05SOc=";
 
   nativeBuildInputs = [ installShellFiles ];
 
   preFixup = ''
     installManPage manual/tre.1
+    installShellCompletion scripts/completion/tre.{bash,fish}
+    installShellCompletion --zsh scripts/completion/_tre
   '';
 
+  # this test requires package to be in a git repo to succeed
+  checkFlags = "--skip respect_git_ignore";
+
   meta = with lib; {
     description = "Tree command, improved";
     homepage = "https://github.com/dduan/tre";
diff --git a/pkgs/tools/text/chroma/default.nix b/pkgs/tools/text/chroma/default.nix
index 8b8a8a7b7753c..ef990a5b99d62 100644
--- a/pkgs/tools/text/chroma/default.nix
+++ b/pkgs/tools/text/chroma/default.nix
@@ -6,7 +6,7 @@ in
 
 buildGoModule rec {
   pname = "chroma";
-  version = "0.10.0";
+  version = "2.2.0";
 
   # To update:
   # nix-prefetch-git --rev v${version} https://github.com/alecthomas/chroma.git > src.json
@@ -17,7 +17,7 @@ buildGoModule rec {
     inherit (srcInfo) sha256;
   };
 
-  vendorSha256 = "09b718vjd6npg850fr7z6srs2sc5vsr7byzlz5yb5qx0vm3ajxpf";
+  vendorSha256 = "1f5pv32vg0ci71kj5bbg24ymmm12yi6r07n8blj47qz8203l5yab";
 
   modRoot = "./cmd/chroma";
 
diff --git a/pkgs/tools/text/chroma/src.json b/pkgs/tools/text/chroma/src.json
index 224bb4328d71d..ed8d0b6c0e4fb 100644
--- a/pkgs/tools/text/chroma/src.json
+++ b/pkgs/tools/text/chroma/src.json
@@ -1,9 +1,9 @@
 {
   "url": "https://github.com/alecthomas/chroma.git",
-  "rev": "36bdd4b98823bd1d7be96767cde3dd575e60b406",
-  "date": "2022-01-12T21:49:38+11:00",
-  "path": "/nix/store/951ya4wlxp217a2j3qdni29zwqfq0z7v-chroma",
-  "sha256": "0hjzb61m5lzx95xss82wil9s8f9hbw1zb3jj73ljfwkq5lqk76zq",
+  "rev": "d18e8a46f25ce0eb40f276410ab6cb3f2def9b7e",
+  "date": "2022-06-14T21:17:50+10:00",
+  "path": "/nix/store/mzph49sgiv5xfmpn6d6znlq483k4hyca-chroma",
+  "sha256": "0rxsi4kdf363p6ysvxvgndbvcb0a5zgm0iaxkkqllj3m8nfwmzlk",
   "fetchLFS": false,
   "fetchSubmodules": false,
   "deepClone": false,
diff --git a/pkgs/tools/text/cmigemo/default.nix b/pkgs/tools/text/cmigemo/default.nix
index 8bd60b516fd13..1f9ef7701ba16 100644
--- a/pkgs/tools/text/cmigemo/default.nix
+++ b/pkgs/tools/text/cmigemo/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, fetchurl, buildPackages
+{ lib, stdenv, fetchFromGitHub, buildPackages
 , libiconv, nkf, perl, which
 , skk-dicts
 }:
@@ -13,8 +13,8 @@ stdenv.mkDerivation {
   src = fetchFromGitHub {
     owner = "koron";
     repo = "cmigemo";
-    rev = "5c014a885972c77e67d0d17d367d05017c5873f7";
-    sha256 = "0xrblwhaf70m0knkd5584iahaq84rlk0926bhdsrzmakpw77hils";
+    rev = "e0f6145f61e0b7058c3006f344e58571d9fdd83a";
+    sha256 = "00a6kdmxp16b8x0p04ws050y39qspd1bqlfq74bkirc55b77a2m1";
   };
 
   nativeBuildInputs = [ libiconv nkf perl which ];
diff --git a/pkgs/tools/text/difftastic/default.nix b/pkgs/tools/text/difftastic/default.nix
index f33eee62549fb..ef117d1c1d3be 100644
--- a/pkgs/tools/text/difftastic/default.nix
+++ b/pkgs/tools/text/difftastic/default.nix
@@ -9,13 +9,13 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "difftastic";
-  version = "0.28.0";
+  version = "0.29.1";
 
   src = fetchFromGitHub {
     owner = "wilfred";
     repo = pname;
     rev = version;
-    sha256 = "sha256-krY1NbFilUHn6ePMRX4+EddsIu33Y7W8Wt5bIeB6wRE=";
+    sha256 = "sha256-eOW+cNIE/H4VtwqbWLGSmS/UAbKMoHFBFcUaLpcPHfw=";
   };
 
   depsExtraArgs = {
@@ -40,7 +40,7 @@ rustPlatform.buildRustPackage rec {
       popd
     '';
   };
-  cargoSha256 = "sha256-nE6sl8n12fHLWH/tEXZhDjVBxGDoLyFDtVC5GFNClzM=";
+  cargoSha256 = "sha256-/z+jimIDNej1vottvqmG3exd5BpOBUfmx1qaILhLKJU=";
 
   passthru.tests.version = testers.testVersion { package = difftastic; };
 
diff --git a/pkgs/tools/text/dos2unix/default.nix b/pkgs/tools/text/dos2unix/default.nix
index f694b91762c55..6a0c5fc57ee93 100644
--- a/pkgs/tools/text/dos2unix/default.nix
+++ b/pkgs/tools/text/dos2unix/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   pname = "dos2unix";
-  version = "7.4.2";
+  version = "7.4.3";
 
   src = fetchurl {
     url = "https://waterlan.home.xs4all.nl/dos2unix/${pname}-${version}.tar.gz";
-    sha256 = "00dfsf4rfyjb5j12gan8xjiirm0asshdz6dmd3l34a7ays6wadb0";
+    sha256 = "sha256-to20GVba+TOChCOqMFEOAMEtKe9ZFucV6NTmlP5mynI=";
   };
 
   nativeBuildInputs = [ perl gettext ];
diff --git a/pkgs/tools/text/mdbook/default.nix b/pkgs/tools/text/mdbook/default.nix
index 075dd1b2b5879..57f373a9ce1a5 100644
--- a/pkgs/tools/text/mdbook/default.nix
+++ b/pkgs/tools/text/mdbook/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "mdbook";
-  version = "0.4.17";
+  version = "0.4.18";
 
   src = fetchFromGitHub {
     owner = "rust-lang";
     repo = "mdBook";
     rev = "v${version}";
-    sha256 = "sha256-08ccRiOBXYqueKfyi/Ry39O2xOXUKishgqhn6RdbvUE=";
+    sha256 = "sha256-lsryNrgjOGdugOhtkNbnYEreF0X1ywLVaFmKUXDf884=";
   };
 
-  cargoSha256 = "sha256-vXUjKpCGlHlBvXLtmGkFtHRxxZakiEzuNzReFGEl6dw=";
+  cargoSha256 = "sha256-l95nbp9PEgO97D1M/R9IB3Xfog6+DkZwyVY2DEl5mG4=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
diff --git a/pkgs/tools/text/nkf/default.nix b/pkgs/tools/text/nkf/default.nix
index a2b5f66a6e915..9a70ea9461af5 100644
--- a/pkgs/tools/text/nkf/default.nix
+++ b/pkgs/tools/text/nkf/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchurl }:
+{ lib, stdenv, fetchurl, fetchpatch }:
 
 stdenv.mkDerivation rec {
   pname = "nkf";
@@ -9,6 +9,15 @@ stdenv.mkDerivation rec {
     sha256 = "0i5dbcb9aipwr8ym4mhvgf1in3frl6y8h8x96cprz9s7b11xz9yi";
   };
 
+  patches = [
+    # Pull upstream fix for parllel build failures
+    (fetchpatch {
+      name = "parallel-install.patch";
+      url = "http://git.osdn.net/view?p=nkf/nkf.git;a=patch;h=9ccff5975bec7963e591e042e1ab1139252a4dc9";
+      sha256 = "00f0x414gfch650b20w0yj5x2bd67hchmadl7v54lk3vdgkc6jwj";
+    })
+  ];
+
   makeFlags = [ "prefix=$(out)" ];
 
   meta = {
diff --git a/pkgs/tools/text/poedit/default.nix b/pkgs/tools/text/poedit/default.nix
index fcb2a7019acad..c64828579c948 100644
--- a/pkgs/tools/text/poedit/default.nix
+++ b/pkgs/tools/text/poedit/default.nix
@@ -1,22 +1,22 @@
-{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK31-gtk3,
+{ lib, stdenv, fetchFromGitHub, autoconf, automake, libtool, gettext, pkg-config, wxGTK30-gtk3,
   boost, icu, lucenepp, asciidoc, libxslt, xmlto, gtk3, gtkspell3, pugixml,
   nlohmann_json, hicolor-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "poedit";
-  version = "3.0.1";
+  version = "3.1";
 
   src = fetchFromGitHub {
     owner = "vslavik";
     repo = "poedit";
     rev = "v${version}-oss";
-    sha256 = "sha256-PBAOCAO3OrBE7lOho7nJNEpqwds7XiblN/f+GonrXHA=";
+    sha256 = "sha256-Wxj1xPbtupEnzuvf7JdUgdTxX2oAZDEYk6W4CjrmRRE=";
   };
 
   nativeBuildInputs = [ autoconf automake asciidoc wrapGAppsHook
     libxslt xmlto boost libtool pkg-config ];
 
-  buildInputs = [ lucenepp nlohmann_json wxGTK31-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
+  buildInputs = [ lucenepp nlohmann_json wxGTK30-gtk3 icu pugixml gtk3 gtkspell3 hicolor-icon-theme ];
 
   propagatedBuildInputs = [ gettext ];
 
diff --git a/pkgs/tools/text/qshowdiff/default.nix b/pkgs/tools/text/qshowdiff/default.nix
deleted file mode 100644
index 8396e39e6d1ca..0000000000000
--- a/pkgs/tools/text/qshowdiff/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, stdenv, fetchFromGitHub, qt4, perl, pkg-config }:
-
-stdenv.mkDerivation rec {
-  pname = "qshowdiff";
-  version = "1.2";
-
-  src = fetchFromGitHub {
-    owner = "danfis";
-    repo = "qshowdiff";
-    rev = "v${version}";
-    sha256 = "g3AWQ6/LSF59ztzdgNuLi+8d6fFTPiC9z0yXMdPdB5U=";
-  };
-
-  nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ qt4 perl ];
-
-  configurePhase = ''
-    mkdir -p $out/{bin,man/man1}
-    makeFlags="PREFIX=$out CC=$CXX"
-  '';
-
-  meta = {
-    homepage = "http://qshowdiff.danfis.cz/";
-    description = "Colourful diff viewer";
-    license = lib.licenses.gpl3Plus;
-  };
-}
diff --git a/pkgs/tools/text/sad/default.nix b/pkgs/tools/text/sad/default.nix
index 8ddf15041f324..08665e22d9eca 100644
--- a/pkgs/tools/text/sad/default.nix
+++ b/pkgs/tools/text/sad/default.nix
@@ -5,16 +5,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "sad";
-  version = "0.4.21";
+  version = "0.4.22";
 
   src = fetchFromGitHub {
     owner = "ms-jpq";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-kM5jeoFmDOwgnzdSwfPJfZhpBS8RPMNt143S5iYYrF4=";
+    sha256 = "sha256-v1fXEC+bV561cewH17x+1anhfXstGBOHG5rHvhYIvLo=";
   };
 
-  cargoSha256 = "sha256-JwYUM4o4I3dC1HgG4bkUS1PH4MsxcvwdefjefnEZQFs=";
+  cargoSha256 = "sha256-krQTa9R3hmMVKLoBgnbCw+aSQu9HUXfA3XflB8AZv6w=";
 
   meta = with lib; {
     description = "CLI tool to search and replace";
diff --git a/pkgs/tools/text/vale/default.nix b/pkgs/tools/text/vale/default.nix
index f53816c46f20c..a4d62af5b67a9 100644
--- a/pkgs/tools/text/vale/default.nix
+++ b/pkgs/tools/text/vale/default.nix
@@ -2,7 +2,7 @@
 
 buildGoModule rec {
   pname = "vale";
-  version = "2.17.0";
+  version = "2.18.0";
 
   subPackages = [ "cmd/vale" ];
   outputs = [ "out" "data" ];
@@ -11,7 +11,7 @@ buildGoModule rec {
     owner = "errata-ai";
     repo = "vale";
     rev = "v${version}";
-    sha256 = "sha256-PUaIx6rEaLz0HUxkglsVHw0Kx/ovI2f4Yhknuysr5Gs=";
+    sha256 = "sha256-hstjE3+1QQSeS1z8fNhxTJI81liW77CdkEP+aS3c2zM=";
   };
 
   vendorSha256 = "sha256-zdgLWEArmtHTDM844LoSJwKp0UGoAR8bHnFOSlrrjdg=";
diff --git a/pkgs/tools/text/zim-tools/default.nix b/pkgs/tools/text/zim-tools/default.nix
new file mode 100644
index 0000000000000..319eb47be2713
--- /dev/null
+++ b/pkgs/tools/text/zim-tools/default.nix
@@ -0,0 +1,31 @@
+{ lib, stdenv, fetchFromGitHub
+, meson, ninja, pkg-config
+, docopt_cpp, file, gumbo, mustache-hpp, zimlib, zlib
+, gtest
+}:
+
+stdenv.mkDerivation rec {
+  pname = "zim-tools";
+  version = "3.1.1";
+
+  src = fetchFromGitHub {
+    owner = "openzim";
+    repo = "zim-tools";
+    rev = version;
+    sha256 = "sha256-xZae1o4L9AdGDqBnFDZniWNM/dLsYRcS0OLWw9+Wecs=";
+  };
+
+  nativeBuildInputs = [ meson ninja pkg-config ];
+  buildInputs = [ docopt_cpp file gumbo mustache-hpp zimlib zlib ];
+
+  checkInputs = [ gtest ];
+  doCheck = true;
+
+  meta = {
+    description = "Various ZIM command line tools";
+    homepage = "https://github.com/openzim/zim-tools";
+    maintainers = with lib.maintainers; [ robbinch ];
+    license = lib.licenses.gpl3Plus;
+    platforms = lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/text/zimwriterfs/default.nix b/pkgs/tools/text/zimwriterfs/default.nix
deleted file mode 100644
index 9a7e495df2b85..0000000000000
--- a/pkgs/tools/text/zimwriterfs/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib, stdenv
-, fetchFromGitHub
-
-, autoconf
-, automake
-, libtool
-, pkg-config
-
-, file
-, icu
-, gumbo
-, xz
-, xapian
-, zimlib
-, zlib
-}:
-
-stdenv.mkDerivation rec {
-  pname = "zimwriterfs";
-  version = "1.0";
-
-  src = fetchFromGitHub {
-    owner = "wikimedia";
-    repo = "openzim";
-    rev = "${pname}-${version}";
-    sha256 = "1vkrrq929a8s3m5rri1lg0l2vd0mc9n2fsb2z1g88k4n4j2l6f19";
-  };
-
-  nativeBuildInputs = [ automake autoconf libtool pkg-config ];
-  buildInputs = [ file icu gumbo xz zimlib zlib xapian ];
-  setSourceRoot = ''
-    sourceRoot=$(echo */zimwriterfs)
-  '';
-  preConfigure = "./autogen.sh";
-
-  meta = {
-    description = "A console tool to create ZIM files";
-    homepage = "http://git.wikimedia.org/log/openzim";
-    maintainers = with lib.maintainers; [ robbinch ];
-    license = lib.licenses.gpl3;
-    platforms = with lib.platforms; [ linux ];
-  };
-}
diff --git a/pkgs/tools/typesetting/asciidoctorj/default.nix b/pkgs/tools/typesetting/asciidoctorj/default.nix
index 6a3b43dc8d189..7482930983c33 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.4.2";
+  version = "2.5.4";
 
   src = fetchzip {
-    url = "http://dl.bintray.com/asciidoctor/maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
-    sha256 = "1b4ivyzpg9p3idk48nfvgpz18qlxyycswkaab31j3dp1mniwvjla";
+    url = "mirror://maven/org/asciidoctor/${pname}/${version}/${pname}-${version}-bin.zip";
+    sha256 = "DMP47YgGE8qQwS9kcS9lUg+2N7z9T+7joClqrgF055Q=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/typesetting/htmldoc/default.nix b/pkgs/tools/typesetting/htmldoc/default.nix
index d4cd1478ac46d..37b0b42d23e5c 100644
--- a/pkgs/tools/typesetting/htmldoc/default.nix
+++ b/pkgs/tools/typesetting/htmldoc/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "htmldoc";
-  version = "1.9.15";
+  version = "1.9.16";
   src = fetchFromGitHub {
     owner = "michaelrsweet";
     repo = "htmldoc";
     rev = "v${version}";
-    sha256 = "sha256-WNsYJacZBYoZ8Bxj+InQ9ePvelqhU5y9nY7aikUNxEk=";
+    sha256 = "117cj5sfzl18gan53ld8lxb0wycizcp9jcakcs3nsvnss99rw3a6";
   };
 
   nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix
index 88e3a9720d047..1549de8862151 100644
--- a/pkgs/tools/typesetting/lowdown/default.nix
+++ b/pkgs/tools/typesetting/lowdown/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   pname = "lowdown";
-  version = "0.11.1";
+  version = "1.0.0";
 
   outputs = [ "out" "lib" "dev" "man" ];
 
   src = fetchurl {
     url = "https://kristaps.bsd.lv/lowdown/snapshots/lowdown-${version}.tar.gz";
-    sha512 = "1l0055g8v0dygyxvk5rchp4sn1g2lakbf6hhq0wkj6nxkfpl43mkyc4vpb02r7v6iqfdwq4461dmdi78blsb3nj8b1gcjx75v7x9pa1";
+    sha512 = "2izqgzk677y511kms09c0hgar2ax5cd5hspr8djsa3qykaxq0688xkgfad00bl6j0jpixna714ipvqa0gxm480iz2sma7qhdgr6bl4x";
   };
 
   # Upstream always passes GNU-style "soname", but cctools expects "install_name".
diff --git a/pkgs/tools/typesetting/sile/default.nix b/pkgs/tools/typesetting/sile/default.nix
index a56b3991ae0f7..d46a43a23f6f1 100644
--- a/pkgs/tools/typesetting/sile/default.nix
+++ b/pkgs/tools/typesetting/sile/default.nix
@@ -44,11 +44,11 @@ in
 
 stdenv.mkDerivation rec {
   pname = "sile";
-  version = "0.13.0";
+  version = "0.13.1";
 
   src = fetchurl {
     url = "https://github.com/sile-typesetter/sile/releases/download/v${version}/${pname}-${version}.tar.xz";
-    sha256 = "0ff4gcfabr6259nl1nkyfrn2r7mww2q8srvi0wakwxgh427faby3";
+    sha256 = "09mvydgv81pkp2nz9rkz32n3df21cfc2aslpqrivf3svr6sp9hxy";
   };
 
   configureFlags = [
diff --git a/pkgs/tools/typesetting/tex/texlive/combine.nix b/pkgs/tools/typesetting/tex/texlive/combine.nix
index 8686502a1345f..c18b7a011a860 100644
--- a/pkgs/tools/typesetting/tex/texlive/combine.nix
+++ b/pkgs/tools/typesetting/tex/texlive/combine.nix
@@ -180,7 +180,7 @@ in (buildEnv {
       echo -n "Wrapping '$link'"
       rm "$link"
       makeWrapper "$target" "$link" \
-        --prefix PATH : "$out/bin:${perl}/bin" \
+        --prefix PATH : "${gnused}/bin:${gnugrep}/bin:${coreutils}/bin:$out/bin:${perl}/bin" \
         --prefix PERL5LIB : "$PERL5LIB" \
         --set-default TEXMFCNF "$TEXMFCNF"
 
diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix
index 0cdf0f3976774..27db30593e882 100644
--- a/pkgs/tools/typesetting/tex/texlive/default.nix
+++ b/pkgs/tools/typesetting/tex/texlive/default.nix
@@ -4,7 +4,7 @@
 */
 { stdenv, lib, fetchurl, runCommand, writeText, buildEnv
 , callPackage, ghostscriptX, harfbuzz
-, makeWrapper, python3, ruby, perl
+, makeWrapper, python3, ruby, perl, gnused, gnugrep, coreutils
 , useFixedHashes ? true
 , recurseIntoAttrs
 }:
@@ -23,7 +23,7 @@ let
   # function for creating a working environment from a set of TL packages
   combine = import ./combine.nix {
     inherit bin combinePkgs buildEnv lib makeWrapper writeText
-      stdenv python3 ruby perl;
+      stdenv python3 ruby perl gnused gnugrep coreutils;
     ghostscript = ghostscriptX; # could be without X, probably, but we use X above
   };
 
diff --git a/pkgs/tools/video/harvid/default.nix b/pkgs/tools/video/harvid/default.nix
index 729c26de57ea9..90ed6d425869e 100644
--- a/pkgs/tools/video/harvid/default.nix
+++ b/pkgs/tools/video/harvid/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, ffmpeg, libjpeg, libpng, pkg-config }:
+{ lib, stdenv, fetchFromGitHub, fetchpatch, ffmpeg, libjpeg, libpng, pkg-config }:
 
 stdenv.mkDerivation rec {
   pname = "harvid";
@@ -11,6 +11,16 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-qt6aep7iMF8/lnlT2wLqu6LkFDqzdfsGLZvrOlXttG8=";
   };
 
+  patches = [
+    # Fix pending upstream inclusion to support parallel builds:
+    #   https://github.com/x42/harvid/pull/10
+    (fetchpatch {
+      name = "parallel-build.patch";
+      url = "https://github.com/x42/harvid/commit/a3f85c57ad2559558706d9b22989de36452704d9.patch";
+      sha256 = "sha256-0aBfM/4XEqM7C1nFw996IVwaeL0tNgMUQ1C3kblOobI=";
+    })
+  ];
+
   nativeBuildInputs = [ pkg-config ];
 
   buildInputs = [ ffmpeg libjpeg libpng ];
diff --git a/pkgs/tools/video/rtmpdump/default.nix b/pkgs/tools/video/rtmpdump/default.nix
index 5f301ae88915a..6e05f81fcd8ce 100644
--- a/pkgs/tools/video/rtmpdump/default.nix
+++ b/pkgs/tools/video/rtmpdump/default.nix
@@ -15,13 +15,13 @@ assert (gnutlsSupport || opensslSupport);
 with lib;
 stdenv.mkDerivation {
   pname = "rtmpdump";
-  version = "unstable-2019-03-30";
+  version = "unstable-2021-02-19";
 
   src = fetchgit {
     url = "git://git.ffmpeg.org/rtmpdump";
     # Currently the latest commit is used (a release has not been made since 2011, i.e. '2.4')
-    rev = "c5f04a58fc2aeea6296ca7c44ee4734c18401aa3";
-    sha256 = "07ias612jgmxpam9h418kvlag32da914jsnjsfyafklpnh8gdzjb";
+    rev = "f1b83c10d8beb43fcc70a6e88cf4325499f25857";
+    sha256 = "0vchr0f0d5fi0zaa16jywva5db3x9dyws7clqaq32gwh5drbkvs0";
   };
 
   patches = [
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
index 012546160e091..fa74aa26cec39 100644
--- a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -30,6 +30,7 @@ stdenv.mkDerivation rec {
     homepage = "https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html";
     description = "The 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;
     maintainers = with maintainers; [ Scriptkiddi ];
     platforms = [ "x86_64-linux" "x86_64-darwin" ];
diff --git a/pkgs/tools/virtualization/awless/default.nix b/pkgs/tools/virtualization/awless/default.nix
deleted file mode 100644
index 97b3fbd1b7a67..0000000000000
--- a/pkgs/tools/virtualization/awless/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ stdenv, lib, buildGoPackage, fetchFromGitHub }:
-
-buildGoPackage rec {
-  pname = "awless";
-  version = "0.1.11";
-
-  goPackagePath = "github.com/wallix/awless";
-
-  src = fetchFromGitHub {
-    owner  = "wallix";
-    repo   = "awless";
-    rev    = "v${version}";
-    sha256 = "187i21yrm10r3f5naj3jl0rmydr5dkhmdhxs90hhf8hjp59a89kg";
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/wallix/awless/";
-    description = "A Mighty CLI for AWS";
-    platforms = with platforms; linux ++ darwin;
-    license = licenses.asl20;
-    maintainers = with maintainers; [ pradeepchhetri swdunlop ];
-    # asm: InitTextSym double init for "".Syscall
-    # panic: invalid use of LSym - NewFuncInfo with Extra of type *obj.FuncInfo
-    broken = (stdenv.isLinux && stdenv.isAarch64);
-  };
-}
diff --git a/pkgs/tools/virtualization/awsebcli/default.nix b/pkgs/tools/virtualization/awsebcli/default.nix
index bc4a920051a80..7c892339fedea 100644
--- a/pkgs/tools/virtualization/awsebcli/default.nix
+++ b/pkgs/tools/virtualization/awsebcli/default.nix
@@ -29,7 +29,6 @@ let
           };
         }
         );
-        six = changeVersion super.six.overridePythonAttrs "1.14.0" "02lw67hprv57hyg3cfy02y3ixjk3nzwc0dx3c4ynlvkfwkfdnsr3";
         wcwidth = changeVersion super.wcwidth.overridePythonAttrs "0.1.9" "1wf5ycjx8s066rdvr0fgz4xds9a8zhs91c4jzxvvymm1c8l8cwzf";
         semantic-version = changeVersion super.semantic-version.overridePythonAttrs "2.8.5" "d2cb2de0558762934679b9a104e82eca7af448c9f4974d1f3eeccff651df8a54";
         pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
@@ -57,6 +56,11 @@ with localPython.pkgs; buildPythonApplication rec {
     sha256 = "sha256-W3nUXPAXoicDQNXigktR1+b/9W6qvi90fujrXAekxTU=";
   };
 
+
+  preConfigure = ''
+    substituteInPlace setup.py --replace "six>=1.11.0,<1.15.0" "six"
+  '';
+
   buildInputs = [
     glibcLocales
   ];
diff --git a/pkgs/tools/virtualization/extra-container/default.nix b/pkgs/tools/virtualization/extra-container/default.nix
index dad7a3d1be72d..eee1baca28ae0 100644
--- a/pkgs/tools/virtualization/extra-container/default.nix
+++ b/pkgs/tools/virtualization/extra-container/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "extra-container";
-  version = "0.8";
+  version = "0.10";
 
   src = fetchFromGitHub {
     owner = "erikarvstedt";
     repo = pname;
     rev = version;
-    hash = "sha256-/AetqDPkz32JMdjbSdzZCBVmGbvzjeAb8Wv82iTgHFE=";
+    hash = "sha256-vtCZ0w1Kaiw9bIrzwEb4Jnv7QoQLp8JDjaGmAP91hpE=";
   };
 
   buildCommand = ''
@@ -18,13 +18,14 @@ stdenv.mkDerivation rec {
     install $src/eval-config.nix -Dt $share
 
     # Use existing PATH for systemctl and machinectl
-    scriptPath="export PATH=${lib.makeBinPath [ nixos-container openssh ]}:\$PATH"
+    scriptPath="export PATH=${lib.makeBinPath [ openssh ]}:\$PATH"
 
-    sed -i \
-      -e "s|evalConfig=.*|evalConfig=$share/eval-config.nix|" \
-      -e "s|LOCALE_ARCHIVE=.*|LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive|" \
-      -e "2i$scriptPath" \
-      $out/bin/extra-container
+    sed -i "
+      s|evalConfig=.*|evalConfig=$share/eval-config.nix|
+      s|LOCALE_ARCHIVE=.*|LOCALE_ARCHIVE=${glibcLocales}/lib/locale/locale-archive|
+      2i$scriptPath
+      2inixosContainer=${nixos-container}/bin
+    " $out/bin/extra-container
   '';
 
   meta = with lib; {
@@ -32,6 +33,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/erikarvstedt/extra-container";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = [ maintainers.earvstedt ];
+    maintainers = [ maintainers.erikarvstedt ];
   };
 }
diff --git a/pkgs/tools/virtualization/nixos-shell/default.nix b/pkgs/tools/virtualization/nixos-shell/default.nix
index 4e54a8db6bf42..1847dc42147ac 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 = "0.2.2";
+  version = "1.0.0";
 
   src = fetchFromGitHub {
     owner = "Mic92";
     repo = "nixos-shell";
     rev = version;
-    sha256 = "sha256-a3NJJv7MscAXhIdr07gEAQDYX0Qgb6ax5E8zSdCIgE8=";
+    sha256 = "sha256-whHBBcthLhEIy2VTaioRZOSZoZR7pk4Qr4DVxwU0r9Y=";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/tools/wayland/way-displays/default.nix b/pkgs/tools/wayland/way-displays/default.nix
new file mode 100644
index 0000000000000..77b97563d524f
--- /dev/null
+++ b/pkgs/tools/wayland/way-displays/default.nix
@@ -0,0 +1,47 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, pkg-config
+, wayland
+, libinput
+, libyamlcpp
+}:
+
+stdenv.mkDerivation rec {
+  pname = "way-displays";
+  version = "1.5.3";
+
+  src = fetchFromGitHub {
+    owner = "alex-courtis";
+    repo = "way-displays";
+    rev = "${version}";
+    sha256 = "sha256-5A0qZRpWw3Deo9cGqGULpQMoPCVh85cWE/wJ5XSbVJk=";
+  };
+
+  postPatch = ''
+    substituteInPlace src/cfg.cpp --replace "\"/etc" "\"$out/etc"
+  '';
+
+  strictDeps = true;
+
+  nativeBuildInputs = [
+    pkg-config
+    wayland
+  ];
+
+  buildInputs = [
+    wayland
+    libyamlcpp
+    libinput
+  ];
+
+  makeFlags = [ "DESTDIR=$(out) PREFIX= PREFIX_ETC="];
+
+  meta = with lib; {
+    homepage = "https://github.com/alex-courtis/way-displays";
+    description = "Auto Manage Your Wayland Displays";
+    license = licenses.mit;
+    maintainers = with maintainers; [ simoneruffini ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/wayland/wl-clipboard/default.nix b/pkgs/tools/wayland/wl-clipboard/default.nix
index 40857a4720334..59f7c9110cf61 100644
--- a/pkgs/tools/wayland/wl-clipboard/default.nix
+++ b/pkgs/tools/wayland/wl-clipboard/default.nix
@@ -11,19 +11,23 @@
 
 stdenv.mkDerivation rec {
   pname = "wl-clipboard";
-  version = "2.0.0";
+  version = "2.1.0";
 
   src = fetchFromGitHub {
     owner = "bugaevc";
     repo = "wl-clipboard";
     rev = "v${version}";
-    sha256 = "0c4w87ipsw09aii34szj9p0xfy0m00wyjpll0gb0aqmwa60p0c5d";
+    sha256 = "sha256-lqtLHLsSChWcYWsfFigj0Xveo9doAr7G31fRSaxm0Lw=";
   };
 
   strictDeps = true;
   nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ];
   buildInputs = [ wayland wayland-protocols ];
 
+  mesonFlags = [
+    "-Dfishcompletiondir=share/fish/vendor_completions.d"
+  ];
+
   meta = with lib; {
     homepage = "https://github.com/bugaevc/wl-clipboard";
     description = "Command-line copy/paste utilities for Wayland";
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 7b9c55ee702e9..6b17ea7fcfa20 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -60,6 +60,7 @@ mapAliases ({
   ag = throw "'ag' has been renamed to/replaced by 'silver-searcher'"; # Converted to throw 2022-02-22
   aircrackng = throw "'aircrackng' has been renamed to/replaced by 'aircrack-ng'"; # Converted to throw 2022-02-22
   airtame = throw "airtame has been removed due to being unmaintained"; # Added 2022-01-19
+  alarm-clock-applet = throw "'alarm-clock-applet' has been abandoned upstream and depends on deprecated GNOME2/GTK2"; # Added 2022-06-16
   aleth = throw "aleth (previously packaged as cpp_ethereum) has been removed; abandoned upstream"; # Added 2020-11-30
   alsaLib = alsa-lib; # Added 2021-06-09
   alsaOss = alsa-oss; # Added 2021-06-10
@@ -94,6 +95,7 @@ mapAliases ({
   avldrums-lv2 = x42-avldrums; # Added 2020-03-29
   avxsynth = throw "avxsynth was removed because it was broken"; # Added 2021-05-18
   awesome-4-0 = awesome; # Added 2022-05-05
+  awless = throw "awless has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-05-30
   aws-okta = throw "aws-okta is on indefinite hiatus. See https://github.com/segmentio/aws-okta/issues/278"; # Added 2022-04-05;
   axoloti = throw "axoloti has been removed: abandoned by upstream"; # Added 2022-05-13
   azure-vhd-utils = throw "azure-vhd-utils has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-03
@@ -175,6 +177,7 @@ mapAliases ({
   cipherscan = throw "cipherscan was removed from nixpkgs, as it was unmaintained"; # added 2021-12-11
   citra = citra-nightly; # added 2022-05-17
   ckb = throw "'ckb' has been renamed to/replaced by 'ckb-next'"; # Converted to throw 2022-02-22
+  clickshare-csc1 = throw "'clickshare-csc1' has been removed as it requires qt4 which is being removed"; # Added 2022-06-16
   inherit (libsForQt5.mauiPackages) clip; # added 2022-05-17
   cpp-ipfs-api = cpp-ipfs-http-client; # Project has been renamed. Added 2022-05-15
   creddump = throw "creddump has been removed from nixpkgs as the upstream has abandoned the project"; # Added 2022-01-01
@@ -527,6 +530,8 @@ mapAliases ({
   google-gflags = gflags; # Added 2019-07-25
   google-musicmanager = throw "google-musicmanager has been removed because Google Play Music was discontinued"; # Added 2021-03-07
   google-music-scripts = throw "google-music-scripts has been removed because Google Play Music was discontinued"; # Added 2021-03-07
+  gotags = throw "gotags has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-03
+  google-play-music-desktop-player = throw "GPMDP shows a black screen, upstream homepage is dead, use 'ytmdesktop' instead"; # Added 2022-06-16
   go-mk = throw "go-mk has been dropped due to the lack of maintanence from upstream since 2015"; # Added 2022-06-02
   go-pup = throw "'go-pup' has been renamed to/replaced by 'pup'"; # Converted to throw 2022-02-22
   go-repo-root = throw "go-repo-root has been dropped due to the lack of maintanence from upstream since 2014"; # Added 2022-06-02
@@ -614,11 +619,13 @@ mapAliases ({
   iops = throw "iops was removed: upstream is gone"; # Added 2022-02-06
   iproute = iproute2; # moved from top-level 2021-03-14
   ipsecTools = throw "ipsecTools has benn removed, because it was no longer maintained upstream"; # Added 2021-12-15
+  itch-setup = throw "itch-setup has benn removed, use itch instead"; # Added 2022-06-02
 
   ### J ###
 
 
   jack2Full = jack2; # moved from top-level 2021-03-14
+  jami-client-gnome = throw "jami-client-gnome has been removed: abandoned upstream"; # Added 2022-05-15
   jamomacore = throw "jamomacore has been removed: abandoned upstream"; # Added 2020-11-21
   jbidwatcher = throw "jbidwatcher was discontinued in march 2021"; # Added 2021-03-15
   jbuilder = throw "'jbuilder' has been renamed to/replaced by 'dune_1'"; # Converted to throw 2022-02-22
@@ -673,6 +680,7 @@ mapAliases ({
   krita-beta = krita; # moved from top-level 2021-12-23
   kube-aws = throw "kube-aws is deprecated and archived by upstream"; # Added 2022-04-05
   kubeless = throw "kubeless is deprecated and archived by upstream"; # Added 2022-04-05
+  kubicorn = throw "kubicorn has been dropped due to the lack of maintenance from upstream since 2019"; # Added 2022-05-30
   kvm = throw "'kvm' has been renamed to/replaced by 'qemu_kvm'"; # Converted to throw 2022-02-22
 
   ### L ###
@@ -682,6 +690,7 @@ mapAliases ({
   letsencrypt = throw "'letsencrypt' has been renamed to/replaced by 'certbot'"; # Converted to throw 2022-02-22
   libGL_driver = throw "'libGL_driver' has been renamed to/replaced by 'mesa.drivers'"; # Converted to throw 2022-02-22
   libaudit = throw "'libaudit' has been renamed to/replaced by 'audit'"; # Converted to throw 2022-02-22
+  libbluedevil = throw "'libbluedevil' (Qt4) is unmaintained and unused since 'kde4.bluedevil's removal in 2017"; # Added 2022-06-14
   libcanberra_gtk2 = throw "'libcanberra_gtk2' has been renamed to/replaced by 'libcanberra-gtk2'"; # Converted to throw 2022-02-22
   libcanberra_gtk3 = throw "'libcanberra_gtk3' has been renamed to/replaced by 'libcanberra-gtk3'"; # Converted to throw 2022-02-22
   libcap_manpages = throw "'libcap_manpages' has been renamed to/replaced by 'libcap.doc'"; # Converted to throw 2022-02-22
@@ -690,6 +699,7 @@ mapAliases ({
   libco-canonical = throw "libco-canonical: Canonical deleted the repo, libco-canonical is not used anymore"; # Added 2021-05-16
   libcroco = throw "libcroco has been removed as it's no longer used in any derivations"; # Added 2020-03-04
   libdbusmenu-glib = throw "'libdbusmenu-glib' has been renamed to/replaced by 'libdbusmenu'"; # Converted to throw 2022-02-22
+  libdbusmenu_qt = throw "'libdbusmenu_qt' (Qt4) is deprecated and unused, use 'libsForQt5.libdbusmenu'"; # Added 2022-06-14
   libdbusmenu_qt5 = throw "'libdbusmenu_qt5' has been renamed to/replaced by 'libsForQt5.libdbusmenu'"; # Converted to throw 2022-02-22
   libdigidoc = throw "'libdigidoc' is unused in nixpkgs, deprecated and archived by upstream, use 'libdigidocpp' instead"; # Added 2022-06-03
   liberation_ttf_v1_from_source = throw "'liberation_ttf_v1_from_source' has been renamed to/replaced by 'liberation_ttf_v1'"; # Converted to throw 2022-02-22
@@ -739,6 +749,7 @@ mapAliases ({
   libva1-full = throw "'libva1-full' has been renamed to/replaced by 'libva1'"; # Converted to throw 2022-02-22
   libwnck3 = libwnck;
   lighthouse = throw "lighthouse has been removed: abandoned by upstream"; # Added 2022-04-24
+  lighttable = throw "'lighttable' crashes (SIGSEGV) on startup, has not been updated in years and depends on deprecated GTK2"; # Added 2022-06-15
   lilypond-unstable = lilypond; # Added 2021-03-11
   lilyterm = throw "lilyterm has been removed from nixpkgs, because it was relying on a vte version that depended on python2"; # Added 2022-01-14
   lilyterm-git = throw "lilyterm-git has been removed from nixpkgs, because it was relying on a vte version that depended on python2"; # Added 2022-01-14
@@ -1012,6 +1023,7 @@ mapAliases ({
   phantomjs = throw "phantomjs 1.9.8 has been dropped due to lack of maintenance and security issues"; # Added 2022-02-20
   phantomjs2 = throw "phantomjs2 has been dropped due to lack of maintenance"; # Added 2022-04-22
   philter = throw "philter has been removed: abandoned by upstream"; # Added 2022-04-26
+  phraseapp-client = throw "phraseapp-client is archived by upstream. Use phrase-cli instead"; # Added 2022-05-15
   phwmon = throw "phwmon has been removed: abandoned by upstream"; # Added 2022-04-24
 
   # Obsolete PHP version aliases
@@ -1168,10 +1180,12 @@ mapAliases ({
   qflipper = qFlipper; # Added 2022-02-11
   qmk_firmware = throw "qmk_firmware has been removed because it was broken"; # Added 2021-04-02
   qr-filetransfer = throw ''"qr-filetransfer" has been renamed to "qrcp"''; # Added 2020-12-02
+  qshowdiff = throw "'qshowdiff' (Qt4) is unmaintained and not been updated since its addition in 2010"; # Added 2022-06-14
   qt-3 = throw "qt-3 has been removed from nixpkgs, as it's unmaintained and insecure"; # Added 2021-02-15
   qt5ct = libsForQt5.qt5ct; # Added 2021-12-27
   qtcurve = libsForQt5.qtcurve; # Added 2020-11-07
   qtkeychain = throw "the qtkeychain attribute (qt4 version) has been removes, use the qt5 version: libsForQt5.qtkeychain"; # Added 2021-08-04
+  qtscriptgenerator = throw "'qtscriptgenerator' (Qt4) is unmaintained upstream and not used in nixpkgs"; # Added 2022-06-14
   quagga = throw "quagga is no longer maintained upstream"; # Added 2021-04-22
   quake3game = throw "'quake3game' has been renamed to/replaced by 'ioquake3'"; # Converted to throw 2022-02-22
   quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # Added 2020-04-09
@@ -1204,6 +1218,7 @@ mapAliases ({
   retroArchCores = throw "retroArchCores has been removed. Please use overrides instead, e.g.: `retroarch.override { cores = with libretro; [ ... ]; }`"; # Added 2021-11-19
   retroshare06 = retroshare;
   rfkill = throw "rfkill has been removed, as it's included in util-linux"; # Added 2020-08-23
+  riak = throw "riak has been removed due to lack of maintainer to update the package"; # Added 2022-06-22
   riak-cs = throw "riak-cs is not maintained anymore"; # Added 2020-10-14
   rimshot = throw "rimshot has been removed, because it is broken and no longer maintained upstream"; # Added 2022-01-15
   ring-daemon = jami-daemon; # Added 2021-10-26
@@ -1231,6 +1246,7 @@ mapAliases ({
   ### S ###
 
   s2n = s2n-tls; # Added 2021-03-03
+  s3gof3r = throw "s3gof3r has been dropped due to the lack of maintenance from upstream since 2017"; # Added 2022-06-04
   s6Dns = throw "'s6Dns' has been renamed to/replaced by 's6-dns'"; # Converted to throw 2022-02-22
   s6LinuxUtils = throw "'s6LinuxUtils' has been renamed to/replaced by 's6-linux-utils'"; # Converted to throw 2022-02-22
   s6Networking = throw "'s6Networking' has been renamed to/replaced by 's6-networking'"; # Converted to throw 2022-02-22
@@ -1318,6 +1334,7 @@ mapAliases ({
   ssmtp = throw "'ssmtp' has been removed due to the software being unmaintained. 'msmtp' can be used as a replacement"; # Added 2022-04-17
   stanchion = throw "Stanchion was part of riak-cs which is not maintained anymore"; # added 2020-10-14
   steam-run-native = steam-run; # added 2022-02-21
+  stride = throw "'stride' aka. Atlassian Stride is dead since 2019 (bought by Slack)"; # added 2022-06-15
   stumpwm-git = throw "stumpwm-git has been broken for a long time and lispPackages.stumpwm follows Quicklisp that is close to git version"; # Added 2021-05-09
   subversion_1_10 = throw "subversion_1_10 has been removed as it has reached its end of life"; # Added 2022-04-26
   subversion19 = throw "subversion19 has been removed as it has reached its end of life"; # Added 2021-03-31
@@ -1325,6 +1342,7 @@ mapAliases ({
   sundials_3 = throw "sundials_3 was removed in 2020-02. outdated and no longer needed";
   surf-webkit2 = throw "'surf-webkit2' has been renamed to/replaced by 'surf'"; # Converted to throw 2022-02-22
   swec = throw "swec has been removed; broken and abandoned upstream"; # Added 2021-10-14
+  sweep-visualizer = throw "'sweep-visualizer' is abondoned upstream and depends on deprecated GNOME2/GTK2"; # Added 2022-06-15
   swfdec = throw "swfdec has been removed as broken and unmaintained"; # Added 2020-08-23
   swtpm-tpm2 = swtpm; # Added 2021-02-26
   syncthing-cli = syncthing; # Added 2021-04-06
@@ -1352,12 +1370,9 @@ mapAliases ({
   telepathy_qt5 = throw "'telepathy_qt5' has been renamed to/replaced by 'libsForQt5.telepathy'"; # Converted to throw 2022-02-22
   telnet = throw "'telnet' has been renamed to/replaced by 'inetutils'"; # Converted to throw 2022-02-22
   terminus = throw "terminus has been removed, it was unmaintained in nixpkgs"; # Added 2021-08-21
-  terraform-provider-ibm = throw "'terraform-provider-ibm' has been renamed to/replaced by 'terraform-providers.ibm'"; # Converted to throw 2022-02-22
-  terraform-provider-libvirt = throw "'terraform-provider-libvirt' has been renamed to/replaced by 'terraform-providers.libvirt'"; # Converted to throw 2022-02-22
-  terraform-provider-lxd = terraform-providers.lxd; # Added 2020-03-16
-  terraform_0_12 = throw "terraform_0_12 has been removed from nixpkgs on 2021/01";
-  terraform_1_0 = throw "terraform_1_0 has been renamed to terraform_1"; # Added 2021-12-08
-  terraform_1_0_0 = throw "terraform_1_0_0 has been renamed to terraform_1"; # Added 2021-06-15
+  terraform_0_13 = throw "terraform_0_13 has been removed from nixpkgs"; # Added 2022-06-26
+  terraform_0_14 = throw "terraform_0_14 has been removed from nixpkgs"; # Added 2022-06-26
+  terraform_0_15 = throw "terraform_0_15 has been removed from nixpkgs"; # Added 2022-06-26
   tesseract_4 = throw "'tesseract_4' has been renamed to/replaced by 'tesseract4'"; # Converted to throw 2022-02-22
   testVersion = testers.testVersion; # Added 2022-04-20
   invalidateFetcherByDrvHash = testers.invalidateFetcherByDrvHash; # Added 2022-05-05
@@ -1408,6 +1423,7 @@ mapAliases ({
   ultrastardx-beta = throw "'ultrastardx-beta' has been renamed to/replaced by 'ultrastardx'"; # Converted to throw 2022-02-22
   unicorn-emu = unicorn; # Added 2020-10-29
   unifiStable = unifi6; # Added 2020-12-28
+  unity3d = throw "'unity3d' is unmaintained, has seen no updates in years and depends on deprecated GTK2"; # Added 2022-06-16
   untrunc = untrunc-anthwlock; # Added 2021-02-01
   urxvt_autocomplete_all_the_things = rxvt-unicode-plugins.autocomplete-all-the-things; # Added 2020-02-02
   urxvt_bidi = rxvt-unicode-plugins.bidi; # Added 2020-02-02
@@ -1467,6 +1483,7 @@ mapAliases ({
   wmii_hg = wmii;
   ws = throw "ws has been dropped due to the lack of maintenance from upstream since 2018"; # Added 2022-06-03
   wxmupen64plus = throw "wxmupen64plus was removed because the upstream disappeared"; # Added 2022-01-31
+  wxcam = throw "'wxcam' has seen no updates in ten years, crashes (SIGABRT) on startup and depends on deprecated wxGTK28/GNOME2/GTK2, use 'gnome.cheese'"; # Added 2022-06-15
 
   ### X ###
 
@@ -1512,6 +1529,7 @@ mapAliases ({
   zabbix30 = throw "Zabbix 3.0.x is end of life, see https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/sources for a direct upgrade path to 5.0.x"; # Added 2021-04-07
   zdfmediathk = throw "'zdfmediathk' has been renamed to/replaced by 'mediathekview'"; # Converted to throw 2022-02-22
   zimreader = throw "zimreader has been removed from nixpkgs as it has been replaced by kiwix-serve and stopped working with modern zimlib versions"; # Added 2021-03-28
+  zimwriterfs = throw "zimwriterfs is now part of zim-tools"; # Added 2022-06-10.
 
   # TODO(ekleog): add ‘wasm’ alias to ‘ocamlPackages.wasm’ after 19.03
   # branch-off
@@ -1625,7 +1643,8 @@ mapAliases ({
     ffmpegthumbs filelight granatier gwenview k3b kactivitymanagerd kaddressbook
     kalendar kalzium kapman kapptemplate kate katomic kblackbox kblocks kbounce
     kcachegrind kcalc kcharselect kcolorchooser kde-cli-tools kde-gtk-config
-    kdenlive kdeplasma-addons kdf kdialog kdiamond keditbookmarks kfind kfloppy
+    kdenlive kdeplasma-addons kdevelop-pg-qt kdevelop-unwrapped kdev-php
+    kdev-python kdevelop kdf kdialog kdiamond keditbookmarks kfind kfloppy
     kgamma5 kget kgpg khelpcenter kig kigo killbots kinfocenter kitinerary
     kleopatra klettres klines kmag kmail kmenuedit kmines kmix kmplot
     knavalbattle knetwalk knights kollision kolourpaint kompare konsole kontact
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index e53048ee6ad24..8ed604e43d894 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -207,6 +207,10 @@ with pkgs;
       }
     '');
 
+  chkservice = callPackage ../tools/admin/chkservice {
+    stdenv = gcc10StdenvCompat;
+  };
+
   addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
 
   quickemu = callPackage ../development/quickemu { };
@@ -225,6 +229,8 @@ with pkgs;
 
   ani-cli = callPackage ../applications/video/ani-cli { };
 
+  anime-downloader = callPackage ../applications/video/anime-downloader { };
+
   aocd = with python3Packages; toPythonApplication aocd;
 
   aesfix = callPackage ../tools/security/aesfix { };
@@ -350,6 +356,8 @@ with pkgs;
 
   colorz = callPackage ../tools/misc/colorz { };
 
+  colorpanes = callPackage ../tools/misc/colorpanes { };
+
   colorpicker = callPackage ../tools/misc/colorpicker { };
 
   comedilib = callPackage ../development/libraries/comedilib {  };
@@ -358,6 +366,8 @@ with pkgs;
 
   commit-formatter = callPackage ../applications/version-management/commit-formatter { };
 
+  commix = callPackage ../tools/security/commix { };
+
   containerpilot = callPackage ../applications/networking/cluster/containerpilot { };
 
   coordgenlibs  = callPackage ../development/libraries/coordgenlibs { };
@@ -624,6 +634,8 @@ with pkgs;
 
   graph-easy = callPackage ../tools/graphics/graph-easy { };
 
+  graphw00f = callPackage ../tools/security/graphw00f { };
+
   opendrop = python3Packages.callPackage ../tools/networking/opendrop { };
 
   owl = callPackage ../tools/networking/owl { };
@@ -989,7 +1001,9 @@ with pkgs;
 
   acpica-tools = callPackage ../tools/system/acpica-tools { };
 
-  act = callPackage ../development/tools/misc/act { };
+  act = callPackage ../development/tools/misc/act {
+    buildGoModule = buildGo118Module;
+  };
 
   actdiag = with python3.pkgs; toPythonApplication actdiag;
 
@@ -1001,6 +1015,8 @@ with pkgs;
 
   addlicense = callPackage ../tools/misc/addlicense { };
 
+  adenum  = callPackage ../tools/security/adenum { };
+
   adlplug = callPackage ../applications/audio/adlplug {
     inherit (darwin.apple_sdk.frameworks) Foundation Cocoa Carbon CoreServices ApplicationServices CoreAudio CoreMIDI AudioToolbox Accelerate CoreImage IOKit AudioUnit QuartzCore WebKit DiscRecording CoreAudioKit;
     jack = libjack2;
@@ -1125,6 +1141,10 @@ with pkgs;
 
   amidst = callPackage ../tools/games/minecraft/amidst { };
 
+  asleap = callPackage ../tools/networking/asleap { };
+
+  butler = callPackage ../games/itch/butler.nix { };
+
   cf-vault = callPackage ../tools/admin/cf-vault { };
 
   bikeshed = python3Packages.callPackage ../applications/misc/bikeshed { };
@@ -1225,6 +1245,8 @@ with pkgs;
 
   tfk8s = callPackage ../tools/misc/tfk8s { };
 
+  tfplugindocs = callPackage ../development/tools/tfplugindocs { };
+
   thumbs = callPackage ../tools/misc/thumbs { };
 
   tnat64 = callPackage ../tools/networking/tnat64 { };
@@ -1236,6 +1258,12 @@ with pkgs;
   veikk-linux-driver-gui = libsForQt5.callPackage ../tools/misc/veikk-linux-driver-gui { };
 
   ventoy-bin = callPackage ../tools/cd-dvd/ventoy-bin { };
+  ventoy-bin-full = ventoy-bin.override {
+    withCryptsetup = true;
+    withXfs = true;
+    withExt4 = true;
+    withNtfs = true;
+  };
 
   voms = callPackage ../tools/networking/voms { };
 
@@ -1559,6 +1587,8 @@ with pkgs;
 
   darktile = callPackage ../applications/terminal-emulators/darktile { };
 
+  dterm = callPackage ../applications/terminal-emulators/dterm { };
+
   eterm = callPackage ../applications/terminal-emulators/eterm { };
 
   foot = callPackage ../applications/terminal-emulators/foot { };
@@ -1911,20 +1941,22 @@ with pkgs;
 
   aws-sam-cli = callPackage ../development/tools/aws-sam-cli { };
 
+  aws-sso-cli = callPackage ../tools/admin/aws-sso-cli { };
+
   aws-vault = callPackage ../tools/admin/aws-vault { };
 
   aws-workspaces = callPackage ../applications/networking/remote/aws-workspaces { };
 
   iamy = callPackage ../tools/admin/iamy { };
 
+  iam-policy-json-to-terraform = callPackage ../tools/misc/iam-policy-json-to-terraform { };
+
   azure-cli = callPackage ../tools/admin/azure-cli { };
 
   azure-functions-core-tools = callPackage ../development/tools/azure-functions-core-tools { };
 
   azure-storage-azcopy = callPackage ../development/tools/azcopy { };
 
-  awless = callPackage ../tools/virtualization/awless { };
-
   bashblog = callPackage ../tools/text/bashblog { };
 
   berglas = callPackage ../tools/admin/berglas { };
@@ -2059,7 +2091,9 @@ with pkgs;
 
   botamusique = callPackage ../tools/audio/botamusique { };
 
-  boulder = callPackage ../tools/admin/boulder { };
+  boulder = callPackage ../tools/admin/boulder {
+    buildGoModule = buildGo118Module;
+  };
 
   btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { };
 
@@ -2301,6 +2335,8 @@ with pkgs;
 
   gitless = callPackage ../applications/version-management/gitless { };
 
+  gitls = callPackage ../tools/security/gitls { };
+
   gistyc = with python3Packages; toPythonApplication gistyc;
 
   gitlint = python3Packages.callPackage ../tools/misc/gitlint { };
@@ -2373,6 +2409,10 @@ with pkgs;
 
   hime = callPackage ../tools/inputmethods/hime {};
 
+  himitsu = callPackage ../tools/security/himitsu { };
+
+  himitsu-firefox = callPackage ../tools/security/himitsu-firefox { };
+
   hinit = haskell.lib.compose.justStaticExecutables haskellPackages.hinit;
 
   hostctl = callPackage ../tools/system/hostctl { };
@@ -2401,8 +2441,6 @@ with pkgs;
 
   itch = callPackage ../games/itch {};
 
-  itch-setup = callPackage ../games/itch-setup {};
-
   lastpass-cli = callPackage ../tools/security/lastpass-cli { };
 
   leetcode-cli = callPackage ../applications/misc/leetcode-cli { };
@@ -2461,11 +2499,23 @@ with pkgs;
     buildGoModule = buildGo118Module;
   };
 
-  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix { };
+  gopass-hibp = callPackage ../tools/security/gopass/hibp.nix {
+    buildGoModule = buildGo118Module;
+  };
+
+  gopass-jsonapi = callPackage ../tools/security/gopass/jsonapi.nix {
+    buildGoModule = buildGo118Module;
+  };
+
+  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix {
+    buildGoModule = buildGo118Module;
+  };
 
-  git-credential-gopass = callPackage ../tools/security/gopass/git-credential.nix { };
+  gopass-summon-provider = callPackage ../tools/security/gopass/summon.nix {
+    buildGoModule = buildGo118Module;
+  };
 
-  gopass-summon-provider = callPackage ../tools/security/gopass/summon.nix { };
+  gosca = callPackage ../development/tools/gosca { };
 
   gosh = callPackage ../tools/security/gosh { };
 
@@ -2613,6 +2663,8 @@ with pkgs;
 
   awsls = callPackage ../tools/admin/awsls { };
 
+  awsrm = callPackage ../tools/admin/awsrm { };
+
   awstats = callPackage ../tools/system/awstats { };
 
   awsweeper = callPackage ../tools/admin/awsweeper { };
@@ -2959,6 +3011,8 @@ with pkgs;
 
   catch2 = callPackage ../development/libraries/catch2 { };
 
+  catch2_3 = callPackage ../development/libraries/catch2/3.nix { };
+
   catdoc = callPackage ../tools/text/catdoc { };
 
   catdocx = callPackage ../tools/text/catdocx { };
@@ -3131,6 +3185,8 @@ with pkgs;
 
   wayland-proxy-virtwl = callPackage ../tools/wayland/wayland-proxy-virtwl { };
 
+  way-displays = callPackage ../tools/wayland/way-displays { };
+
   wev = callPackage ../tools/wayland/wev { };
 
   wdomirror = callPackage ../tools/wayland/wdomirror { };
@@ -3402,6 +3458,8 @@ with pkgs;
 
   dtools = callPackage ../development/tools/dtools { };
 
+  dt-shell-color-scripts = callPackage ../tools/misc/dt-shell-color-scripts { };
+
   dtrx = callPackage ../tools/compression/dtrx { };
 
   dua = callPackage ../tools/misc/dua {
@@ -3848,6 +3906,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  jwt-hack = callPackage ../tools/security/jwt-hack { } ;
+
   kapacitor = callPackage ../servers/monitoring/kapacitor { };
 
   kaldi = callPackage ../tools/audio/kaldi { };
@@ -3879,6 +3939,8 @@ with pkgs;
 
   languagetool = callPackage ../tools/text/languagetool {  };
 
+  ldtk = callPackage ../applications/editors/ldtk { };
+
   lepton = callPackage ../tools/graphics/lepton { };
 
   lepton-eda = callPackage ../applications/science/electronics/lepton-eda { };
@@ -4055,6 +4117,8 @@ with pkgs;
 
   nix-direnv = callPackage ../tools/misc/nix-direnv { };
 
+  nixel = callPackage ../tools/nix/nixel { };
+
   nix-output-monitor = callPackage ../tools/nix/nix-output-monitor { };
 
   nix-template = callPackage ../tools/package-management/nix-template {
@@ -4123,6 +4187,8 @@ with pkgs;
 
   ossutil = callPackage ../tools/admin/ossutil {};
 
+  osv-detector = callPackage ../tools/security/osv-detector {};
+
   pastel = callPackage ../applications/misc/pastel {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -4226,6 +4292,8 @@ with pkgs;
 
   shab = callPackage ../tools/text/shab { };
 
+  sheldon = callPackage ../tools/misc/sheldon { };
+
   shell-hist = callPackage ../tools/misc/shell-hist { };
 
   shellhub-agent = callPackage ../applications/networking/shellhub-agent { };
@@ -4280,8 +4348,6 @@ with pkgs;
 
   swappy = callPackage ../applications/misc/swappy { gtk = gtk3; };
 
-  sweep-visualizer = callPackage ../tools/misc/sweep-visualizer { };
-
   swego = callPackage ../servers/swego { };
 
   sydbox = callPackage ../os-specific/linux/sydbox { };
@@ -4318,6 +4384,8 @@ with pkgs;
 
   roundcubePlugins = dontRecurseIntoAttrs (callPackage ../servers/roundcube/plugins { });
 
+  routersploit = callPackage ../tools/security/routersploit { };
+
   routinator = callPackage ../servers/routinator {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -4359,6 +4427,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  xlogo = callPackage ../tools/X11/xlogo { };
+
   xmlbeans = callPackage ../tools/misc/xmlbeans { };
 
   xmlsort = perlPackages.XMLFilterSort;
@@ -4613,7 +4683,6 @@ with pkgs;
 
   libceph = ceph.lib;
   inherit (callPackages ../tools/filesystems/ceph {
-    boost = boost175.override { enablePython = true; python = python3; };
     lua = lua5_4;
   })
     ceph
@@ -4629,6 +4698,10 @@ with pkgs;
 
   cgreen = callPackage ../development/libraries/cgreen { };
 
+  chain-bench = callPackage ../tools/security/chain-bench {
+    buildGoModule = buildGo118Module;
+  };
+
   checkinstall = callPackage ../tools/package-management/checkinstall { };
 
   checkmake = callPackage ../development/tools/checkmake { };
@@ -5191,12 +5264,18 @@ with pkgs;
 
   dnscrypt-wrapper = callPackage ../tools/networking/dnscrypt-wrapper { };
 
-  dnscontrol = callPackage ../applications/networking/dnscontrol { };
+  dnscontrol = callPackage ../applications/networking/dnscontrol {
+    buildGoModule = buildGo118Module;
+  };
 
   dnsenum = callPackage ../tools/security/dnsenum { };
 
   dnsmasq = callPackage ../tools/networking/dnsmasq { };
 
+  dnsmon-go = callPackage ../tools/networking/dnsmon-go { };
+
+  dnsmonster = callPackage ../tools/networking/dnsmonster { };
+
   dnspeep = callPackage ../tools/security/dnspeep { };
 
   dnsproxy = callPackage ../tools/networking/dnsproxy { };
@@ -5464,7 +5543,7 @@ with pkgs;
   };
 
   rage = callPackage ../tools/security/rage {
-    inherit (darwin.apple_sdk.frameworks) Foundation Security;
+    inherit (darwin.apple_sdk.frameworks) Foundation;
   };
 
   rar2fs = callPackage ../tools/filesystems/rar2fs { };
@@ -5498,6 +5577,10 @@ with pkgs;
     conf = config.schildichat-web.conf or {};
   };
 
+  schleuder = callPackage ../tools/security/schleuder { };
+
+  schleuder-cli = callPackage ../tools/security/schleuder/cli { };
+
   tealdeer = callPackage ../tools/misc/tealdeer {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -5597,7 +5680,7 @@ with pkgs;
   conform = callPackage ../applications/version-management/git-and-tools/conform { };
 
   emscripten = callPackage ../development/compilers/emscripten {
-    llvmPackages = llvmPackages_13;
+    llvmPackages = llvmPackages_14;
   };
 
   emscriptenPackages = recurseIntoAttrs (callPackage ./emscripten-packages.nix { });
@@ -5861,7 +5944,7 @@ with pkgs;
   };
 
   ffsend = callPackage ../tools/misc/ffsend {
-    inherit (darwin.apple_sdk.frameworks) CoreFoundation CoreServices Security AppKit;
+    inherit (darwin.apple_sdk.frameworks) Security AppKit;
   };
 
   fgallery = callPackage ../tools/graphics/fgallery { };
@@ -6036,6 +6119,10 @@ with pkgs;
     mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
   };
 
+  ferdium = callPackage ../applications/networking/instant-messengers/ferdium {
+    mkFranzDerivation = callPackage ../applications/networking/instant-messengers/franz/generic.nix { };
+  };
+
   fq = callPackage ../development/tools/fq { };
 
   franz = callPackage ../applications/networking/instant-messengers/franz {
@@ -6718,10 +6805,14 @@ with pkgs;
 
   grpcurl = callPackage ../tools/networking/grpcurl { };
 
+  grpc-gateway = callPackage ../development/tools/grpc-gateway { };
+
   grpcui = callPackage ../tools/networking/grpcui { };
 
   grpc-tools = callPackage ../development/tools/misc/grpc-tools { };
 
+  grpc-client-cli = callPackage ../development/tools/misc/grpc-client-cli { };
+
   grub = pkgsi686Linux.callPackage ../tools/misc/grub ({
     stdenv = overrideCC stdenv buildPackages.pkgsi686Linux.gcc6;
   } // (config.grub or {}));
@@ -7008,6 +7099,8 @@ with pkgs;
 
   hotspot = libsForQt5.callPackage ../development/tools/analysis/hotspot { };
 
+  hpccm = with python3Packages; toPythonApplication hpccm;
+
   hping = callPackage ../tools/networking/hping { };
 
   hqplayer-desktop = libsForQt5.callPackage ../applications/audio/hqplayer-desktop { };
@@ -7095,6 +7188,8 @@ with pkgs;
 
   deco = callPackage ../applications/misc/deco { };
 
+  decoder = callPackage ../tools/security/decoder { };
+
   icoutils = callPackage ../tools/graphics/icoutils { };
 
   idutils = callPackage ../tools/misc/idutils { };
@@ -7400,6 +7495,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  jsubfinder = callPackage ../tools/security/jsubfinder { };
+
   jtc = callPackage ../development/tools/jtc { };
 
   jumpapp = callPackage ../tools/X11/jumpapp {};
@@ -7459,6 +7556,10 @@ with pkgs;
 
   kdbplus = pkgsi686Linux.callPackage ../applications/misc/kdbplus { };
 
+  kdigger = callPackage ../tools/security/kdigger {
+    buildGoModule = buildGo118Module;
+  };
+
   keepalived = callPackage ../tools/networking/keepalived { };
 
   kexec-tools = callPackage ../os-specific/linux/kexec-tools { };
@@ -7628,6 +7729,10 @@ with pkgs;
 
   lnch = callPackage ../tools/misc/lnch { };
 
+  lnx = callPackage ../servers/search/lnx {
+    inherit (darwin.apple_sdk.frameworks) DiskArbitration Foundation;
+  };
+
   loadlibrary = callPackage ../tools/misc/loadlibrary { };
 
   loc = callPackage ../development/misc/loc { };
@@ -7695,14 +7800,6 @@ with pkgs;
 
   mani = callPackage ../development/tools/mani { };
 
-  mapcache = callPackage ../servers/geospatial/mapcache { };
-
-  mapserver = callPackage ../servers/geospatial/mapserver { };
-
-  martin = callPackage ../servers/geospatial/martin {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   mask = callPackage ../development/tools/mask { };
 
   mathpix-snipping-tool = callPackage ../tools/misc/mathpix-snipping-tool { };
@@ -8163,6 +8260,8 @@ with pkgs;
 
   longview = callPackage ../servers/monitoring/longview { };
 
+  lorien = callPackage ../applications/graphics/lorien { };
+
   lout = callPackage ../tools/typesetting/lout { };
 
   lr = callPackage ../tools/system/lr { };
@@ -8675,9 +8774,7 @@ with pkgs;
 
   neuron-notes = haskell.lib.compose.justStaticExecutables (haskell.lib.compose.generateOptparseApplicativeCompletion "neuron" haskellPackages.neuron);
 
-  ngrok = ngrok-2;
-
-  ngrok-2 = callPackage ../tools/networking/ngrok-2 { };
+  ngrok = callPackage ../tools/networking/ngrok { };
 
   nifi = callPackage ../servers/web-apps/nifi { };
 
@@ -8696,13 +8793,9 @@ with pkgs;
   # https://github.com/hashicorp/nomad/blob/master/contributing/golang.md
   nomad_1_2 = callPackage ../applications/networking/cluster/nomad/1.2.nix {
     buildGoModule = buildGo117Module;
-    inherit (linuxPackages) nvidia_x11;
-    nvidiaGpuSupport = config.cudaSupport or false;
   };
   nomad_1_3 = callPackage ../applications/networking/cluster/nomad/1.3.nix {
     buildGoModule = buildGo117Module;
-    inherit (linuxPackages) nvidia_x11;
-    nvidiaGpuSupport = config.cudaSupport or false;
   };
 
   nomad-autoscaler = callPackage ../applications/networking/cluster/nomad-autoscaler { };
@@ -9475,6 +9568,8 @@ with pkgs;
 
   pm2 = nodePackages.pm2;
 
+  pmenu = callPackage ../tools/X11/pmenu { };
+
   pngcheck = callPackage ../tools/graphics/pngcheck { };
 
   pngcrush = callPackage ../tools/graphics/pngcrush { };
@@ -9505,7 +9600,7 @@ with pkgs;
   pod2mdoc = callPackage ../tools/misc/pod2mdoc { };
 
   poedit = callPackage ../tools/text/poedit {
-    wxGTK31-gtk3 = wxGTK31-gtk3.override { withWebKit = true; };
+    wxGTK30-gtk3 = wxGTK30-gtk3.override { withWebKit = true; };
   };
 
   polipo = callPackage ../servers/polipo { };
@@ -9739,7 +9834,7 @@ with pkgs;
 
   qjournalctl = libsForQt5.callPackage ../applications/system/qjournalctl { };
 
-  qjoypad = callPackage ../tools/misc/qjoypad { };
+  qjoypad = libsForQt5.callPackage ../tools/misc/qjoypad { };
 
   qmk = callPackage ../tools/misc/qmk { };
 
@@ -9757,8 +9852,6 @@ with pkgs;
 
   qscintilla-qt4 = callPackage ../development/libraries/qscintilla-qt4 { };
 
-  qshowdiff = callPackage ../tools/text/qshowdiff { };
-
   qrcp = callPackage ../tools/networking/qrcp { };
 
   qtikz = libsForQt5.callPackage ../applications/graphics/ktikz { };
@@ -9902,8 +9995,6 @@ with pkgs;
 
   relic = callPackage ../development/tools/relic { };
 
-  alarm-clock-applet = callPackage ../tools/misc/alarm-clock-applet { };
-
   remind = callPackage ../tools/misc/remind { };
 
   remmina = callPackage ../applications/networking/remote/remmina { };
@@ -9924,6 +10015,8 @@ with pkgs;
 
   reftools = callPackage ../development/tools/reftools { };
 
+  regpg = callPackage ../tools/security/regpg { };
+
   remote-touchpad = callPackage ../tools/inputmethods/remote-touchpad { };
 
   reposurgeon = callPackage ../applications/version-management/reposurgeon { };
@@ -10101,8 +10194,6 @@ with pkgs;
 
   s5cmd = callPackage ../tools/networking/s5cmd { };
 
-  s3gof3r = callPackage ../tools/networking/s3gof3r { };
-
   s6-dns = skawarePackages.s6-dns;
 
   s6-linux-init = skawarePackages.s6-linux-init;
@@ -10923,8 +11014,6 @@ with pkgs;
 
   tidy-viewer = callPackage ../tools/text/tidy-viewer { };
 
-  tile38 = callPackage ../servers/geospatial/tile38 { };
-
   tiled = libsForQt5.callPackage ../applications/editors/tiled { };
 
   tiledb = callPackage ../development/libraries/tiledb { };
@@ -11491,6 +11580,14 @@ with pkgs;
 
   woff2 = callPackage ../development/web/woff2 { };
 
+  woodpecker-agent = callPackage ../development/tools/continuous-integration/woodpecker/agent.nix { };
+
+  woodpecker-cli = callPackage ../development/tools/continuous-integration/woodpecker/cli.nix { };
+
+  woodpecker-server = callPackage ../development/tools/continuous-integration/woodpecker/server.nix {
+    woodpecker-frontend = callPackage ../development/tools/continuous-integration/woodpecker/frontend.nix { };
+  };
+
   woof = callPackage ../tools/misc/woof { };
 
   wootility = callPackage ../tools/misc/wootility {
@@ -11539,8 +11636,6 @@ with pkgs;
 
   td = callPackage ../tools/misc/td { };
 
-  tegola = callPackage ../servers/geospatial/tegola {};
-
   tftp-hpa = callPackage ../tools/networking/tftp-hpa {};
 
   tigervnc = callPackage ../tools/admin/tigervnc {};
@@ -12024,7 +12119,7 @@ with pkgs;
   zinnia = callPackage ../tools/inputmethods/zinnia { };
   tegaki-zinnia-japanese = callPackage ../tools/inputmethods/tegaki-zinnia-japanese { };
 
-  zimwriterfs = callPackage ../tools/text/zimwriterfs { };
+  zim-tools = callPackage ../tools/text/zim-tools { };
 
   zld = callPackage ../development/tools/zld { };
 
@@ -12362,7 +12457,10 @@ with pkgs;
 
   bigloo = callPackage ../development/compilers/bigloo { };
 
-  binaryen = callPackage ../development/compilers/binaryen { };
+  binaryen = callPackage ../development/compilers/binaryen {
+    nodejs = nodejs-slim;
+    inherit (python3Packages) filecheck;
+  };
 
   blueprint-compiler = callPackage ../development/compilers/blueprint { };
 
@@ -12755,6 +12853,9 @@ with pkgs;
     isl = if !stdenv.isDarwin then isl_0_11 else null;
 
     cloog = if !stdenv.isDarwin then cloog_0_18_0 else null;
+
+    # Build fails on Darwin with clang
+    stdenv = if stdenv.isDarwin then gccStdenv else stdenv;
   }));
 
   gcc6 = lowPrio (wrapCC (callPackage ../development/compilers/gcc/6 {
@@ -13158,10 +13259,6 @@ with pkgs;
 
   remarkable2-toolchain = callPackage ../development/tools/misc/remarkable/remarkable2-toolchain { };
 
-  t-rex = callPackage ../servers/geospatial/t-rex {
-    inherit (darwin.apple_sdk.frameworks) Security;
-  };
-
   tacacsplus = callPackage ../servers/tacacsplus { };
 
   tamarin-prover =
@@ -13580,6 +13677,8 @@ with pkgs;
 
   microscheme = callPackage ../development/compilers/microscheme { };
 
+  millet = callPackage ../development/tools/millet {};
+
   mint = callPackage ../development/compilers/mint { };
 
   mitscheme = callPackage ../development/compilers/mit-scheme
@@ -13785,11 +13884,11 @@ with pkgs;
   buildRustCrateHelpers = callPackage ../build-support/rust/build-rust-crate/helpers.nix { };
   cratesIO = callPackage ../build-support/rust/crates-io.nix { };
 
-  cargo-web = callPackage ../development/tools/cargo-web {
+  cargo-web = callPackage ../development/tools/rust/cargo-web {
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
-  cargo-flamegraph = callPackage ../development/tools/cargo-flamegraph {
+  cargo-flamegraph = callPackage ../development/tools/rust/cargo-flamegraph {
     inherit (darwin.apple_sdk.frameworks) Security;
     inherit (linuxPackages) perf;
   };
@@ -13798,9 +13897,9 @@ with pkgs;
 
   defaultCrateOverrides = callPackage ../build-support/rust/default-crate-overrides.nix { };
 
-  cargo-about = callPackage ../tools/package-management/cargo-about { };
+  cargo-about = callPackage ../development/tools/rust/cargo-about { };
   cargo-all-features = callPackage ../development/tools/rust/cargo-all-features { };
-  cargo-audit = callPackage ../tools/package-management/cargo-audit {
+  cargo-audit = callPackage ../development/tools/rust/cargo-audit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-bisect-rustc = callPackage ../development/tools/rust/cargo-bisect-rustc {
@@ -13814,29 +13913,29 @@ with pkgs;
   cargo-deadlinks = callPackage ../development/tools/rust/cargo-deadlinks {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-deb = callPackage ../tools/package-management/cargo-deb {
+  cargo-deb = callPackage ../development/tools/rust/cargo-deb {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-deps = callPackage ../tools/package-management/cargo-deps { };
-  cargo-download = callPackage ../tools/package-management/cargo-download { };
-  cargo-edit = callPackage ../tools/package-management/cargo-edit {
+  cargo-deps = callPackage ../development/tools/rust/cargo-deps { };
+  cargo-download = callPackage ../development/tools/rust/cargo-download { };
+  cargo-edit = callPackage ../development/tools/rust/cargo-edit {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-kcov = callPackage ../tools/package-management/cargo-kcov { };
-  cargo-graph = callPackage ../tools/package-management/cargo-graph { };
-  cargo-license = callPackage ../tools/package-management/cargo-license { };
+  cargo-kcov = callPackage ../development/tools/rust/cargo-kcov { };
+  cargo-graph = callPackage ../development/tools/rust/cargo-graph { };
+  cargo-license = callPackage ../development/tools/rust/cargo-license { };
   cargo-llvm-lines = callPackage ../development/tools/rust/cargo-llvm-lines { };
-  cargo-outdated = callPackage ../tools/package-management/cargo-outdated {
+  cargo-outdated = callPackage ../development/tools/rust/cargo-outdated {
     inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration;
   };
-  cargo-release = callPackage ../tools/package-management/cargo-release {
+  cargo-release = callPackage ../development/tools/rust/cargo-release {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
   cargo-rr = callPackage ../development/tools/rust/cargo-rr { };
   cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-update = callPackage ../tools/package-management/cargo-update {
+  cargo-update = callPackage ../development/tools/rust/cargo-update {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
@@ -13891,7 +13990,9 @@ with pkgs;
   cargo-msrv = callPackage ../development/tools/rust/cargo-msrv {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
-  cargo-nextest = callPackage ../development/tools/rust/cargo-nextest { };
+  cargo-nextest = callPackage ../development/tools/rust/cargo-nextest {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
   cargo-play = callPackage ../development/tools/rust/cargo-play { };
   cargo-raze = callPackage ../development/tools/rust/cargo-raze {
     inherit (darwin.apple_sdk.frameworks) Security;
@@ -14344,6 +14445,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
+  graphqlmap = callPackage ../tools/security/graphqlmap { };
+
   groovy = callPackage ../development/interpreters/groovy { };
 
   inherit (callPackages ../applications/networking/cluster/hadoop { })
@@ -14441,6 +14544,8 @@ with pkgs;
 
   ngn-k = callPackage ../development/interpreters/ngn-k { };
 
+  oak = callPackage ../development/interpreters/oak { };
+
   obb = callPackage ../development/interpreters/clojure/obb.nix { };
 
   octave = callPackage ../development/interpreters/octave {
@@ -14494,11 +14599,11 @@ with pkgs;
   # available as `pythonPackages.tkinter` and can be used as any other Python package.
   # When switching these sets, please update docs at ../../doc/languages-frameworks/python.md
   python2 = python27;
-  python3 = python39;
+  python3 = python310;
 
   # pythonPackages further below, but assigned here because they need to be in sync
   python2Packages = dontRecurseIntoAttrs python27Packages;
-  python3Packages = dontRecurseIntoAttrs python39Packages;
+  python3Packages = dontRecurseIntoAttrs python310Packages;
 
   pypy = pypy2;
   pypy2 = pypy27;
@@ -14540,6 +14645,12 @@ with pkgs;
     bluezSupport = true;
     x11Support = true;
   };
+  python310Full = python310.override {
+    self = python310Full;
+    pythonAttr = "python310Full";
+    bluezSupport = true;
+    x11Support = true;
+  };
 
   pythonInterpreters = callPackage ./../development/interpreters/python { };
   inherit (pythonInterpreters) python27 python37 python38 python39 python310 python311 python3Minimal pypy27 pypy38 pypy37 rustpython;
@@ -15286,6 +15397,8 @@ with pkgs;
 
   corundum = callPackage ../development/tools/corundum { };
 
+  confluencepot = callPackage ../servers/confluencepot {};
+
   confluent-platform = callPackage ../servers/confluent-platform {};
 
   ctags = callPackage ../development/tools/misc/ctags { };
@@ -15853,8 +15966,6 @@ with pkgs;
 
   kubespy = callPackage ../applications/networking/cluster/kubespy { };
 
-  kubicorn = callPackage ../development/tools/kubicorn {  };
-
   kubie = callPackage ../development/tools/kubie {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -16051,7 +16162,7 @@ with pkgs;
 
   peg = callPackage ../development/tools/parsing/peg { };
 
-  pgcli = pkgs.python3Packages.pgcli;
+  pgcli = with pkgs.python3Packages; toPythonApplication pgcli;
 
   picotool = callPackage ../development/tools/picotool { };
 
@@ -16319,6 +16430,10 @@ with pkgs;
 
   spooles = callPackage ../development/libraries/science/math/spooles {};
 
+  spr = callPackage ../development/tools/spr {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   spruce = callPackage ../development/tools/misc/spruce {};
 
   sqlc = callPackage ../development/tools/database/sqlc { };
@@ -16800,7 +16915,7 @@ with pkgs;
 
   boost15x = boost159;
   boost16x = boost169;
-  boost17x = boost177;
+  boost17x = boost179;
   boost = boost17x;
 
   boost_process = callPackage ../development/libraries/boost-process { };
@@ -17089,6 +17204,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) AppKit;
   };
 
+  discord-sh = callPackage ../tools/networking/discord-sh { };
+
   dlib = callPackage ../development/libraries/dlib { };
 
   doctest = callPackage ../development/libraries/doctest { };
@@ -17960,7 +18077,7 @@ with pkgs;
 
   hwloc = callPackage ../development/libraries/hwloc {};
 
-  hydra_unstable = callPackage ../development/tools/misc/hydra/unstable.nix { nix = nixVersions.nix_2_8; };
+  hydra_unstable = callPackage ../development/tools/misc/hydra/unstable.nix { nix = nixVersions.nix_2_9; };
 
   hydra-cli = callPackage ../development/tools/misc/hydra-cli { };
 
@@ -18310,8 +18427,6 @@ with pkgs;
 
   libbencodetools = callPackage ../development/libraries/libbencodetools { };
 
-  libbluedevil = callPackage ../development/libraries/libbluedevil { };
-
   libbdplus = callPackage ../development/libraries/libbdplus { };
 
   libblockdev = callPackage ../development/libraries/libblockdev { };
@@ -18453,8 +18568,6 @@ with pkgs;
   libdbusmenu-gtk2 = libdbusmenu.override { gtkVersion = "2"; };
   libdbusmenu-gtk3 = libdbusmenu.override { gtkVersion = "3"; };
 
-  libdbusmenu_qt = callPackage ../development/libraries/libdbusmenu-qt { };
-
   libdc1394 = callPackage ../development/libraries/libdc1394 {
     inherit (darwin.apple_sdk.frameworks) CoreServices;
   };
@@ -20292,6 +20405,7 @@ with pkgs;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit darwin;
+      inherit buildPackages;
       stdenv = if stdenv.cc.isGNU
         then (if (stdenv.targetPlatform.isx86_64) then gcc10Stdenv else gcc9Stdenv)
         else stdenv;
@@ -20304,6 +20418,7 @@ with pkgs;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit darwin;
+      inherit buildPackages;
       stdenv = if stdenv.cc.isGNU
         then (if (stdenv.targetPlatform.isx86_64) then gcc10Stdenv else gcc9Stdenv)
         else stdenv;
@@ -20316,6 +20431,7 @@ with pkgs;
       inherit bison cups dconf harfbuzz libGL perl gtk3;
       inherit (gst_all_1) gstreamer gst-plugins-base;
       inherit darwin;
+      inherit buildPackages;
     });
 
   libsForQt512 = recurseIntoAttrs (import ./qt5-packages.nix {
@@ -20349,6 +20465,7 @@ with pkgs;
       inherit lib stdenv fetchurl fetchpatch fetchgit fetchFromGitHub makeSetupHook makeWrapper writeText;
       inherit bison cups dconf harfbuzz libGL perl gtk3 ninja;
       inherit (gst_all_1) gstreamer gst-plugins-base;
+      inherit buildPackages;
       cmake = cmake.overrideAttrs (attrs: {
         patches = attrs.patches ++ [
           ../development/libraries/qt-6/cmake.patch
@@ -20360,8 +20477,6 @@ with pkgs;
     inherit lib pkgs qt6;
   });
 
-  qtscriptgenerator = callPackage ../development/libraries/qtscriptgenerator { };
-
   quark-engine = callPackage ../tools/security/quark-engine { };
 
   quesoglc = callPackage ../development/libraries/quesoglc { };
@@ -20741,6 +20856,8 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Carbon;
   };
 
+  sokol = callPackage ../development/libraries/sokol { };
+
   sonic = callPackage ../development/libraries/sonic { };
 
   sope = callPackage ../development/libraries/sope { };
@@ -20956,6 +21073,8 @@ with pkgs;
 
   tidyp = callPackage ../development/libraries/tidyp { };
 
+  tidal-hifi = callPackage ../applications/audio/tidal-hifi { };
+
   tinycdb = callPackage ../development/libraries/tinycdb { };
 
   tinyxml = tinyxml2;
@@ -20964,7 +21083,7 @@ with pkgs;
 
   tinyxml-2 = callPackage ../development/libraries/tinyxml-2 { };
 
-  tiscamera = callPackage ../os-specific/linux/tiscamera { stdenv = gcc10StdenvCompat; };
+  tiscamera = callPackage ../os-specific/linux/tiscamera { };
 
   tivodecode = callPackage ../applications/video/tivodecode { };
 
@@ -21210,7 +21329,7 @@ with pkgs;
   wxGTK30 = callPackage ../development/libraries/wxwidgets/wxGTK30.nix {
     withGtk2 = true;
     inherit (darwin.stubs) setfile;
-    inherit (darwin.apple_sdk.frameworks) AGL Carbon Cocoa Kernel QTKit;
+    inherit (darwin.apple_sdk.frameworks) AGL AVFoundation Carbon Cocoa Kernel QTKit;
   };
   wxGTK30-gtk2 = wxGTK30.override { withGtk2 = true; };
   wxGTK30-gtk3 = wxGTK30.override { withGtk2 = false; };
@@ -21229,6 +21348,7 @@ with pkgs;
 
   wxSVG = callPackage ../development/libraries/wxSVG {
     wxGTK = wxGTK30-gtk3;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
   };
 
   wtk = callPackage ../development/libraries/wtk { };
@@ -21797,7 +21917,9 @@ with pkgs;
     gn = gn1924;
   };
 
-  ergochat = callPackage ../servers/irc/ergochat { };
+  ergochat = callPackage ../servers/irc/ergochat {
+    buildGoModule = buildGo118Module;
+  };
 
   etcd = etcd_3_3;
   etcd_3_3 = callPackage ../servers/etcd/3.3.nix { };
@@ -21854,6 +21976,8 @@ with pkgs;
 
   fusionInventory = callPackage ../servers/monitoring/fusion-inventory { };
 
+  gamehub = callPackage ../games/gamehub { };
+
   gatling = callPackage ../servers/http/gatling { };
 
   gitlab-pages = callPackage ../servers/http/gitlab-pages { };
@@ -22032,8 +22156,6 @@ with pkgs;
 
   mattermost-desktop = callPackage ../applications/networking/instant-messengers/mattermost-desktop { };
 
-  mbtileserver = callPackage ../servers/geospatial/mbtileserver { };
-
   memcached = callPackage ../servers/memcached {};
 
   meteor = callPackage ../servers/meteor { };
@@ -22157,7 +22279,9 @@ with pkgs;
     modules = [ nginxModules.rtmp nginxModules.dav nginxModules.moreheaders nginxModules.shibboleth ];
   };
 
-  libmodsecurity = callPackage ../tools/security/libmodsecurity { };
+  libmodsecurity = callPackage ../tools/security/libmodsecurity {
+    autoreconfHook = buildPackages.autoreconfHook269;
+  };
 
   ngircd = callPackage ../servers/irc/ngircd { };
 
@@ -22274,10 +22398,6 @@ with pkgs;
 
   tomcat-native = callPackage ../servers/http/tomcat/tomcat-native.nix { };
 
-  pg_featureserv = callPackage ../servers/geospatial/pg_featureserv { };
-
-  pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
-
   pies = callPackage ../servers/pies { };
 
   rpcbind = callPackage ../servers/rpcbind { };
@@ -22356,10 +22476,6 @@ with pkgs;
   percona-server56 = callPackage ../servers/sql/percona/5.6.x.nix { stdenv = gcc10StdenvCompat; };
   percona-server = percona-server56;
 
-  riak = callPackage ../servers/nosql/riak/2.2.0.nix {
-    erlang = erlang_basho_R16B02;
-  };
-
   influxdb = callPackage ../servers/nosql/influxdb { };
   influxdb2-server = callPackage ../servers/nosql/influxdb2 { };
   influxdb2-cli = callPackage ../servers/nosql/influxdb2/cli.nix { };
@@ -22740,6 +22856,7 @@ with pkgs;
   };
 
   tt-rss = callPackage ../servers/tt-rss { };
+  tt-rss-plugin-feediron = callPackage ../servers/tt-rss/plugin-feediron { };
   tt-rss-plugin-ff-instagram = callPackage ../servers/tt-rss/plugin-ff-instagram { };
   tt-rss-plugin-auth-ldap = callPackage ../servers/tt-rss/plugin-auth-ldap { };
   tt-rss-theme-feedly = callPackage ../servers/tt-rss/theme-feedly { };
@@ -22838,6 +22955,8 @@ with pkgs;
       or (if stdenv.isDarwin then "1.18" else null); # 1.19 needs fixing on Darwin
   }) // { inherit xlibsWrapper; } );
 
+  xorg-autoconf = callPackage ../development/tools/misc/xorg-autoconf { };
+
   xwayland = callPackage ../servers/x11/xorg/xwayland.nix { };
 
   yaws = callPackage ../servers/http/yaws {
@@ -22867,6 +22986,32 @@ with pkgs;
 
   zipkin = callPackage ../servers/monitoring/zipkin { };
 
+  ### SERVERS / GEOSPATIAL
+
+  geoserver = callPackage ../servers/geospatial/geoserver { };
+
+  mapcache = callPackage ../servers/geospatial/mapcache { };
+
+  mapserver = callPackage ../servers/geospatial/mapserver { };
+
+  martin = callPackage ../servers/geospatial/martin {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  mbtileserver = callPackage ../servers/geospatial/mbtileserver { };
+
+  pg_featureserv = callPackage ../servers/geospatial/pg_featureserv { };
+
+  pg_tileserv = callPackage ../servers/geospatial/pg_tileserv { };
+
+  t-rex = callPackage ../servers/geospatial/t-rex {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
+  tegola = callPackage ../servers/geospatial/tegola { };
+
+  tile38 = callPackage ../servers/geospatial/tile38 { };
+
   ### OS-SPECIFIC
 
   afuse = callPackage ../os-specific/linux/afuse { };
@@ -22889,6 +23034,8 @@ with pkgs;
 
   alertmanager-irc-relay = callPackage ../servers/monitoring/alertmanager-irc-relay { };
 
+  tinyalsa = callPackage ../os-specific/linux/tinyalsa { };
+
   alsa-firmware = callPackage ../os-specific/linux/alsa-project/alsa-firmware { };
   alsa-lib = callPackage ../os-specific/linux/alsa-project/alsa-lib { };
   alsa-oss = callPackage ../os-specific/linux/alsa-project/alsa-oss { };
@@ -23367,8 +23514,6 @@ with pkgs;
   linux_5_10_hardened = linuxKernel.kernels.linux_5_10_hardened;
   linuxPackages_5_15_hardened = linuxKernel.packages.linux_5_15_hardened;
   linux_5_15_hardened = linuxKernel.kernels.linux_5_15_hardened;
-  linuxPackages_5_17_hardened = linuxKernel.packages.linux_5_17_hardened;
-  linux_5_17_hardened = linuxKernel.kernels.linux_5_17_hardened;
   linuxPackages_5_18_hardened = linuxKernel.packages.linux_5_18_hardened;
   linux_5_18_hardened = linuxKernel.kernels.linux_5_18_hardened;
 
@@ -23596,8 +23741,6 @@ with pkgs;
 
   gofumpt = callPackage ../development/tools/gofumpt { };
 
-  gotags = callPackage ../development/tools/gotags { };
-
   go-task = callPackage ../development/tools/go-task { };
 
   golint = callPackage ../development/tools/golint { };
@@ -23606,6 +23749,8 @@ with pkgs;
     buildGoModule = buildGo118Module;
   };
 
+  golangci-lint-langserver = callPackage ../development/tools/golangci-lint-langserver { };
+
   gocyclo = callPackage ../development/tools/gocyclo { };
 
   godef = callPackage ../development/tools/godef { };
@@ -24153,6 +24298,8 @@ with pkgs;
 
   andika = callPackage ../data/fonts/andika { };
 
+  androguard = with python3.pkgs; toPythonApplication androguard;
+
   android-udev-rules = callPackage ../os-specific/linux/android-udev-rules { };
 
   ankacoder = callPackage ../data/fonts/ankacoder { };
@@ -24667,7 +24814,9 @@ with pkgs;
 
   mobile-broadband-provider-info = callPackage ../data/misc/mobile-broadband-provider-info { };
 
-  mojave-gtk-theme = callPackage ../data/themes/mojave { };
+  mojave-gtk-theme = callPackage ../data/themes/mojave {
+    inherit (gnome) gnome-shell;
+  };
 
   moka-icon-theme = callPackage ../data/icons/moka-icon-theme { };
 
@@ -24783,6 +24932,8 @@ with pkgs;
     inherit (plasma5Packages) breeze-icons;
   };
 
+  plasma-overdose-kde-theme = callPackage ../data/themes/plasma-overdose-kde-theme { };
+
   papis = with python3Packages; toPythonApplication papis;
 
   paperlike-go = callPackage ../tools/misc/paperlike-go { };
@@ -24916,6 +25067,8 @@ with pkgs;
 
   stdmanpages = callPackage ../data/documentation/std-man-pages { };
 
+  starfetch = callPackage ../tools/misc/starfetch { };
+
   starship = callPackage ../tools/misc/starship {
     inherit (darwin.apple_sdk.frameworks) Security Foundation Cocoa;
   };
@@ -25698,8 +25851,6 @@ with pkgs;
     inherit (xorg) libSM;
   };
 
-  clickshare-csc1 = callPackage ../applications/video/clickshare-csc1 { };
-
   cligh = python3Packages.callPackage ../development/tools/github/cligh {};
 
   clight = callPackage ../applications/misc/clight { };
@@ -25742,7 +25893,7 @@ with pkgs;
 
   complete-alias = callPackage ../tools/misc/complete-alias { };
 
-  confclerk = callPackage ../applications/misc/confclerk { };
+  confclerk = libsForQt5.callPackage ../applications/misc/confclerk { };
 
   copyq = libsForQt5.callPackage ../applications/misc/copyq { };
 
@@ -26143,7 +26294,7 @@ with pkgs;
 
   eq10q = callPackage ../applications/audio/eq10q { };
 
-  errbot = python3Packages.callPackage ../applications/networking/errbot { };
+  errbot = callPackage ../applications/networking/errbot { };
 
   espeak-classic = callPackage ../applications/audio/espeak { };
 
@@ -26313,6 +26464,8 @@ with pkgs;
 
   fnc = callPackage ../applications/version-management/fnc { };
 
+  focus = callPackage ../tools/X11/focus { };
+
   focuswriter = libsForQt5.callPackage ../applications/editors/focuswriter { };
 
   foliate = callPackage ../applications/office/foliate { };
@@ -26543,6 +26696,8 @@ with pkgs;
 
   gjay = callPackage ../applications/audio/gjay { };
 
+  sherlock = callPackage ../tools/security/sherlock { };
+
   rhythmbox = callPackage ../applications/audio/rhythmbox { };
 
   puddletag = libsForQt5.callPackage ../applications/audio/puddletag { };
@@ -26676,7 +26831,7 @@ with pkgs;
   fragments = callPackage ../applications/networking/p2p/fragments { };
 
   freecad = libsForQt5.callPackage ../applications/graphics/freecad {
-    boost = python3Packages.boost169;
+    boost = python3Packages.boost;
     inherit (python3Packages)
       GitPython
       matplotlib
@@ -26791,6 +26946,8 @@ with pkgs;
   # Git with SVN support, but without GUI.
   gitSVN = lowPrio (git.override { svnSupport = true; });
 
+  git-autofixup = perlPackages.GitAutofixup;
+
   git-doc = lib.addMetaAttrs {
     description = "Additional documentation for Git";
     longDescription = ''
@@ -26985,10 +27142,6 @@ with pkgs;
 
   google-chrome-dev = google-chrome.override { chromium = chromiumDev; channel = "dev"; };
 
-  google-play-music-desktop-player = callPackage ../applications/audio/google-play-music-desktop-player {
-    inherit (gnome2) GConf;
-  };
-
   gosmore = callPackage ../applications/misc/gosmore { stdenv = gcc10StdenvCompat; };
 
   gpsbabel = libsForQt5.callPackage ../applications/misc/gpsbabel { };
@@ -27100,6 +27253,10 @@ with pkgs;
     gtk = gtk3;
   };
 
+  hollywood = callPackage ../applications/misc/hollywood {
+    inherit (python3Packages) pygments;
+  };
+
   hors = callPackage ../development/tools/hors {
     inherit (darwin.apple_sdk.frameworks) Security;
   };
@@ -27209,6 +27366,8 @@ with pkgs;
 
   pixelnuke = callPackage ../applications/graphics/pixelnuke { };
 
+  pixelorama = callPackage ../applications/editors/pixelorama { };
+
   pixeluvo = callPackage ../applications/graphics/pixeluvo { };
 
   pixinsight = libsForQt5.callPackage ../applications/graphics/pixinsight { };
@@ -27580,6 +27739,8 @@ with pkgs;
 
   josm = callPackage ../applications/misc/josm { };
 
+  js8call = qt5.callPackage ../applications/radio/js8call { };
+
   jwm = callPackage ../applications/window-managers/jwm { };
 
   jwm-settings-manager = callPackage ../applications/window-managers/jwm/jwm-settings-manager.nix { };
@@ -27616,19 +27777,6 @@ with pkgs;
 
   kdeltachat = libsForQt5.callPackage ../applications/networking/instant-messengers/kdeltachat { };
 
-  kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
-
-  kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
-    llvmPackages = llvmPackages_10;
-  };
-
-  kdev-php = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-php.nix { };
-  kdev-python = libsForQt5.callPackage ../applications/editors/kdevelop5/kdev-python.nix {
-    python = python3;
-  };
-
-  kdevelop = libsForQt5.callPackage ../applications/editors/kdevelop5/wrapper.nix { };
-
   kepubify = callPackage ../tools/misc/kepubify { };
 
   kermit = callPackage ../tools/misc/kermit { };
@@ -27728,6 +27876,7 @@ with pkgs;
 
   kubernetes = callPackage ../applications/networking/cluster/kubernetes { };
   kubectl = callPackage ../applications/networking/cluster/kubernetes/kubectl.nix { };
+  kubectl-convert = kubectl.convert;
 
   kubemqctl = callPackage ../applications/networking/cluster/kubemqctl { };
 
@@ -27948,8 +28097,6 @@ with pkgs;
 
   lighthouse-steamvr = callPackage ../tools/misc/lighthouse-steamvr { };
 
-  lighttable = callPackage ../applications/editors/lighttable {};
-
   liblinphone = callPackage ../development/libraries/liblinphone { };
 
   links2 = callPackage ../applications/networking/browsers/links2 { };
@@ -28100,7 +28247,7 @@ with pkgs;
       canonicaljson;
   };
 
-  matrix-commander = callPackage ../applications/networking/instant-messengers/matrix-commander { };
+  matrix-commander = python3Packages.callPackage ../applications/networking/instant-messengers/matrix-commander { };
 
   matrix-dl = callPackage ../applications/networking/instant-messengers/matrix-dl { };
 
@@ -28316,6 +28463,8 @@ with pkgs;
     mopidy-youtube
     mopidy-ytmusic;
 
+  monocypher = callPackage ../development/libraries/monocypher { };
+
   motif = callPackage ../development/libraries/motif { };
 
   mousai = callPackage ../applications/audio/mousai { };
@@ -28385,10 +28534,14 @@ with pkgs;
 
   nload = callPackage ../applications/networking/nload { };
 
-  nali = callPackage ../applications/networking/nali { };
+  nali = callPackage ../applications/networking/nali {
+    buildGoModule = buildGo118Module;
+   };
 
   normalize = callPackage ../applications/audio/normalize { };
 
+  norouter = callPackage ../tools/networking/norouter { };
+
   mailspring = callPackage ../applications/networking/mailreaders/mailspring {};
 
   mm = callPackage ../applications/networking/instant-messengers/mm { };
@@ -28635,6 +28788,8 @@ with pkgs;
 
   scudcloud = callPackage ../applications/networking/instant-messengers/scudcloud { };
 
+  shod = callPackage ../applications/window-managers/shod { };
+
   shotcut = libsForQt5.callPackage ../applications/video/shotcut { };
 
   shogun = callPackage ../applications/science/machine-learning/shogun {
@@ -28653,8 +28808,6 @@ with pkgs;
 
   spacegun = callPackage ../applications/networking/cluster/spacegun {};
 
-  stride = callPackage ../applications/networking/instant-messengers/stride { };
-
   speedread = callPackage ../applications/misc/speedread { };
 
   station = callPackage ../applications/networking/station { };
@@ -28667,9 +28820,7 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) CoreServices Security;
   };
 
-  synfigstudio = callPackage ../applications/graphics/synfigstudio {
-    mlt-qt5 = libsForQt514.mlt;
-  };
+  synfigstudio = callPackage ../applications/graphics/synfigstudio { };
 
   taxi = callPackage ../applications/networking/ftp/taxi { };
 
@@ -28721,6 +28872,8 @@ with pkgs;
 
   diff-pdf = callPackage ../applications/misc/diff-pdf { wxGTK = wxGTK31; };
 
+  diffuse = callPackage ../applications/misc/diffuse { };
+
   mlocate = callPackage ../tools/misc/mlocate { };
 
   plocate = callPackage ../tools/misc/plocate { };
@@ -28921,6 +29074,8 @@ with pkgs;
 
   libopenmpt = callPackage ../development/libraries/audio/libopenmpt { };
 
+  libopenmpt-modplug = callPackage ../development/libraries/audio/libopenmpt-modplug { };
+
   openrazer-daemon = with python3Packages; toPythonApplication openrazer-daemon;
 
   opusfile = callPackage ../applications/audio/opusfile { };
@@ -29036,8 +29191,6 @@ with pkgs;
 
   phrase-cli = callPackage ../tools/misc/phrase-cli { };
 
-  phraseapp-client = callPackage ../tools/misc/phraseapp-client { };
-
   pianobar = callPackage ../applications/audio/pianobar { };
 
   pianobooster = qt5.callPackage ../applications/audio/pianobooster { stdenv = gcc10StdenvCompat; };
@@ -29570,6 +29723,8 @@ with pkgs;
 
   seatd = callPackage ../applications/misc/seatd { };
 
+  secrets-extractor = callPackage ../tools/security/secrets-extractor { };
+
   secretscanner = callPackage ../tools/security/secretscanner { };
 
   semiphemeral = callPackage ../tools/misc/semiphemeral { };
@@ -29767,6 +29922,10 @@ with pkgs;
 
   robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { };
 
+  routedns = callPackage ../tools/networking/routedns {
+    buildGoModule = buildGo118Module;
+  };
+
   skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
 
   smartgithg = callPackage ../applications/version-management/smartgithg {
@@ -29966,7 +30125,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  talosctl = callPackage ../applications/networking/cluster/talosctl { };
+  talosctl = callPackage ../applications/networking/cluster/talosctl {
+    buildGoModule = buildGo118Module;
+  };
 
   talentedhack = callPackage ../applications/audio/talentedhack { };
 
@@ -30103,7 +30264,9 @@ with pkgs;
     inherit (darwin.apple_sdk.frameworks) Security;
   };
 
-  tig = callPackage ../applications/version-management/git-and-tools/tig { };
+  tig = callPackage ../applications/version-management/git-and-tools/tig {
+    readline = readline81;
+  };
 
   tilemaker = callPackage ../applications/misc/tilemaker { };
 
@@ -30399,7 +30562,9 @@ with pkgs;
     lua = luajit;
   };
 
-  neovimUtils = callPackage ../applications/editors/neovim/utils.nix { };
+  neovimUtils = callPackage ../applications/editors/neovim/utils.nix {
+    inherit (lua51Packages) buildLuarocksPackage;
+  };
   neovim = wrapNeovim neovim-unwrapped { };
 
   neovim-qt-unwrapped = libsForQt5.callPackage ../applications/editors/neovim/neovim-qt.nix { };
@@ -30741,9 +30906,6 @@ with pkgs;
     wxGTK = wxGTK31;
   };
 
-  wxcam = callPackage ../applications/video/wxcam
-    { stdenv = gcc10StdenvCompat;     inherit (gnome2) libglade; wxGTK = wxGTK28; gtk = gtk2; };
-
   xa = callPackage ../development/compilers/xa/xa.nix { };
   dxa = callPackage ../development/compilers/xa/dxa.nix { };
 
@@ -30847,7 +31009,7 @@ with pkgs;
   xdg-user-dirs = callPackage ../tools/X11/xdg-user-dirs { };
 
   xdg-utils = callPackage ../tools/X11/xdg-utils {
-    w3m = w3m-batch;
+    w3m = buildPackages.w3m-batch;
   };
 
   xdgmenumaker = callPackage ../applications/misc/xdgmenumaker { };
@@ -31534,7 +31696,13 @@ with pkgs;
 
   runescape = callPackage ../games/runescape-launcher { };
 
-  sm64ex = callPackage ../games/sm64ex { };
+  sm64ex = callPackage ../games/sm64ex {
+    branch = "sm64ex";
+  };
+
+  sm64ex-coop = callPackage ../games/sm64ex {
+    branch = "sm64ex-coop";
+  };
 
   snipes = callPackage ../games/snipes { };
 
@@ -31804,6 +31972,10 @@ with pkgs;
 
   fairymax = callPackage ../games/fairymax { };
 
+  ferium = callPackage ../games/ferium {
+    inherit (darwin.apple_sdk.frameworks) Security;
+  };
+
   fheroes2 = callPackage ../games/fheroes2 { };
 
   fish-fillets-ng = callPackage ../games/fish-fillets-ng { };
@@ -31820,20 +31992,25 @@ with pkgs;
   freecell-solver = callPackage ../games/freecell-solver { };
 
   freeciv = callPackage ../games/freeciv {
-    autoreconfHook = buildPackages.autoreconfHook269;
-    qt5 = qt514;
+    sdl2Client = false;
+    gtkClient = true;
+    qtClient = false;
   };
 
-  freeciv_gtk = freeciv.override {
-    gtkClient = true;
-    sdlClient = false;
+  freeciv_sdl2 = freeciv.override {
+    sdl2Client = true;
+    gtkClient = false;
+    qtClient = false;
   };
 
   freeciv_qt = freeciv.override {
+    sdl2Client = false;
+    gtkClient = false;
     qtClient = true;
-    sdlClient = false;
   };
 
+  freeciv_gtk = freeciv;
+
   freedink = callPackage ../games/freedink { };
 
   freeorion = callPackage ../games/freeorion { };
@@ -31910,6 +32087,8 @@ with pkgs;
     wine = wineWowPackages.unstable;
   };
 
+  graphwar = callPackage ../games/graphwar { };
+
   gtetrinet = callPackage ../games/gtetrinet {
     inherit (gnome2) GConf libgnome libgnomeui;
   };
@@ -31930,6 +32109,8 @@ with pkgs;
 
   icbm3d = callPackage ../games/icbm3d { };
 
+  infra-arcana = callPackage ../games/infra-arcana { };
+
   ingen = callPackage ../applications/audio/ingen { };
 
   ideogram = callPackage ../applications/graphics/ideogram { };
@@ -32189,6 +32370,8 @@ with pkgs;
     target = "server";
   };
 
+  pokete = callPackage ../games/pokete { };
+
   powermanga = callPackage ../games/powermanga { };
 
   prboom-plus = callPackage ../games/prboom-plus { };
@@ -32313,6 +32496,8 @@ with pkgs;
 
   sil = callPackage ../games/sil { };
 
+  sil-q = callPackage ../games/sil-q { };
+
   simutrans = callPackage ../games/simutrans { };
   # get binaries without data built by Hydra
   simutrans_binaries = lowPrio simutrans.binaries;
@@ -32428,6 +32613,8 @@ with pkgs;
 
   tinyfugue = callPackage ../games/tinyfugue { };
 
+  titanion = callPackage ../games/titanion { };
+
   tome2 = callPackage ../games/tome2 { };
 
   tome4 = callPackage ../games/tome4 { };
@@ -32474,6 +32661,8 @@ with pkgs;
 
   ultrastardx = callPackage ../games/ultrastardx { };
 
+  umoria = callPackage ../games/umoria { };
+
   unciv = callPackage ../games/unciv { };
 
   unnethack = callPackage ../games/unnethack { };
@@ -33275,6 +33464,8 @@ with pkgs;
 
   ### SCIENCE/PHYSICS
 
+  dawn = callPackage ../applications/science/physics/dawn {};
+
   elmerfem = callPackage ../applications/science/physics/elmerfem {};
 
   mcfm = callPackage ../applications/science/physics/MCFM {
@@ -33507,10 +33698,14 @@ with pkgs;
 
   verifast = callPackage ../applications/science/logic/verifast {};
 
-  veriT = callPackage ../applications/science/logic/verit {};
+  veriT = callPackage ../applications/science/logic/verit {
+    stdenv = gccStdenv;
+  };
 
   why3 = callPackage ../applications/science/logic/why3 { };
 
+  wayback-machine-archiver = callPackage ../tools/misc/wayback-machine-archiver { };
+
   workcraft = callPackage ../applications/science/logic/workcraft {};
 
   yices = callPackage ../applications/science/logic/yices {
@@ -33524,7 +33719,7 @@ with pkgs;
   z3 = z3_4_8;
   z3_4_4_0 = callPackage ../applications/science/logic/z3/4.4.0.nix {
     python = python2;
-    stdenv = gcc49Stdenv;
+    stdenv = if stdenv.isDarwin then stdenv else gcc49Stdenv;
   };
   z3-tptp = callPackage ../applications/science/logic/z3/tptp.nix {};
 
@@ -34628,7 +34823,7 @@ with pkgs;
     stdenv = gccStdenv;
   };
 
-  rss-glx = callPackage ../misc/screensavers/rss-glx { stdenv = gcc10StdenvCompat; };
+  rss-glx = callPackage ../misc/screensavers/rss-glx { };
 
   run-scaled = callPackage ../tools/X11/run-scaled { };
 
@@ -34791,9 +34986,6 @@ with pkgs;
 
   inherit (callPackage ../applications/networking/cluster/terraform { })
     mkTerraform
-    terraform_0_13
-    terraform_0_14
-    terraform_0_15
     terraform_1
     terraform_plugins_test
     ;
@@ -34879,12 +35071,6 @@ with pkgs;
 
   ums = callPackage ../servers/ums { };
 
-  unity3d = callPackage ../development/tools/unity3d {
-    stdenv = stdenv_32bit;
-    gcc_32bit = pkgsi686Linux.gcc;
-    inherit (gnome2) GConf;
-  };
-
   unityhub = callPackage ../development/tools/unityhub { };
 
   urbit = callPackage ../misc/urbit { };
@@ -35044,6 +35230,8 @@ with pkgs;
 
   wxsqliteplus = callPackage ../development/libraries/wxsqliteplus {
     wxGTK = wxGTK30;
+    inherit (darwin.apple_sdk.frameworks) Cocoa;
+    inherit (darwin.stubs) setfile;
   };
 
   x11idle = callPackage ../tools/misc/x11idle {};
@@ -35177,19 +35365,16 @@ with pkgs;
 
   mpvc = callPackage ../applications/misc/mpvc { };
 
-  discord = import ../applications/networking/instant-messengers/discord {
+  discord = callPackage ../applications/networking/instant-messengers/discord {
     branch = "stable";
-    inherit pkgs lib stdenv;
   };
 
-  discord-ptb = import ../applications/networking/instant-messengers/discord {
+  discord-ptb = callPackage ../applications/networking/instant-messengers/discord {
     branch = "ptb";
-    inherit pkgs lib stdenv;
   };
 
-  discord-canary = import ../applications/networking/instant-messengers/discord {
+  discord-canary = callPackage ../applications/networking/instant-messengers/discord {
     branch = "canary";
-    inherit pkgs lib stdenv;
   };
 
   golden-cheetah = libsForQt5.callPackage ../applications/misc/golden-cheetah {};
@@ -35459,12 +35644,12 @@ with pkgs;
 
   btcdeb = callPackage ../applications/blockchains/btcdeb { };
 
-  inherit (callPackage ../applications/networking/instant-messengers/jami {
+  jami = callPackages ../applications/networking/instant-messengers/jami {
     # TODO: remove once `udev` is `systemdMinimal` everywhere.
     udev = systemdMinimal;
     jack = libjack2;
-  })
-    jami-daemon jami-libclient jami-client-gnome jami-client-qt;
+  };
+  inherit (jami) jami-daemon jami-libclient jami-client-qt;
 
   jitsi-meet-electron = callPackage ../applications/networking/instant-messengers/jitsi-meet-electron {
     electron = electron_17;
@@ -35512,6 +35697,7 @@ with pkgs;
 
   xsos = callPackage ../os-specific/linux/xsos { };
 
+  xmcp = callPackage ../tools/X11/xmcp { };
 
   zk = callPackage ../applications/office/zk {};
 
diff --git a/pkgs/top-level/config.nix b/pkgs/top-level/config.nix
index e9cb8681f653e..0ab29d8516365 100644
--- a/pkgs/top-level/config.nix
+++ b/pkgs/top-level/config.nix
@@ -50,6 +50,10 @@ let
       feature = "set <literal>enableParallelBuilding</literal> to true by default";
     };
 
+    configurePlatformsByDefault = mkMassRebuild {
+      feature = "set <literal>configurePlatforms</literal> to <literal>[\"build\" \"host\"]</literal> by default";
+    };
+
     contentAddressedByDefault = mkMassRebuild {
       feature = "set <literal>__contentAddressed</literal> to true by default";
     };
diff --git a/pkgs/top-level/dotnet-packages.nix b/pkgs/top-level/dotnet-packages.nix
index 10188cee9148b..732fb66731efe 100644
--- a/pkgs/top-level/dotnet-packages.nix
+++ b/pkgs/top-level/dotnet-packages.nix
@@ -53,8 +53,8 @@ let self = dotnetPackages // overrides; dotnetPackages = with self; {
 
   SharpZipLib = fetchNuGet {
     pname = "SharpZipLib";
-    version = "0.86.0";
-    sha256 = "01w2038gckfnq31pncrlgm7d0c939pwr1x4jj5450vcqpd4c41jr";
+    version = "1.3.3";
+    sha256 = "sha256-HWEQTKh9Ktwg/zIl079dAiH+ob2ShWFAqLgG6XgIMr4=";
     outputFiles = [ "lib/*" ];
   };
 
diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix
index 79815b65f605c..68a3230995694 100644
--- a/pkgs/top-level/haskell-packages.nix
+++ b/pkgs/top-level/haskell-packages.nix
@@ -8,6 +8,8 @@ let
     "ghc8102BinaryMinimal"
     "ghc8107Binary"
     "ghc8107BinaryMinimal"
+    "ghc922Binary"
+    "ghc922BinaryMinimal"
     "ghcjs"
     "ghcjs810"
     "integer-simple"
@@ -76,6 +78,14 @@ in {
       minimal = true;
     };
 
+    ghc922Binary = callPackage ../development/compilers/ghc/9.2.2-binary.nix {
+      llvmPackages = pkgs.llvmPackages_12;
+    };
+    ghc922BinaryMinimal = callPackage ../development/compilers/ghc/9.2.2-binary.nix {
+      llvmPackages = pkgs.llvmPackages_12;
+      minimal = true;
+    };
+
     ghc884 = callPackage ../development/compilers/ghc/8.8.4.nix {
       bootPkgs =
         # aarch64 ghc865Binary gets SEGVs due to haskell#15449 or similar
@@ -212,6 +222,18 @@ in {
       compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-8.10.x.nix { };
       packageSetConfig = bootstrapPackageSet;
     };
+    ghc922Binary = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc922Binary;
+      ghc = bh.compiler.ghc922Binary;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
+    ghc922BinaryMinimal = callPackage ../development/haskell-modules {
+      buildHaskellPackages = bh.packages.ghc922BinaryMinimal;
+      ghc = bh.compiler.ghc922BinaryMinimal;
+      compilerConfig = callPackage ../development/haskell-modules/configuration-ghc-9.2.x.nix { };
+      packageSetConfig = bootstrapPackageSet;
+    };
     ghc884 = callPackage ../development/haskell-modules {
       buildHaskellPackages = bh.packages.ghc884;
       ghc = bh.compiler.ghc884;
diff --git a/pkgs/top-level/linux-kernels.nix b/pkgs/top-level/linux-kernels.nix
index c80c5f6613ddd..0e61796ef2816 100644
--- a/pkgs/top-level/linux-kernels.nix
+++ b/pkgs/top-level/linux-kernels.nix
@@ -162,12 +162,7 @@ in {
 
     linux_5_16 = throw "linux 5.16 was removed because it has reached its end of life upstream";
 
-    linux_5_17 = callPackage ../os-specific/linux/kernel/linux-5.17.nix {
-      kernelPatches = [
-        kernelPatches.bridge_stp_helper
-        kernelPatches.request_key_helper
-      ];
-    };
+    linux_5_17 = throw "linux 5.17 was removed because it has reached its end of life upstream";
 
     linux_5_18 = callPackage ../os-specific/linux/kernel/linux-5.18.nix {
       kernelPatches = [
@@ -189,7 +184,7 @@ in {
        else testing;
 
     linux_testing_bcachefs = callPackage ../os-specific/linux/kernel/linux-testing-bcachefs.nix rec {
-      kernel = linux_5_17;
+      kernel = linux_5_18;
       kernelPatches = kernel.kernelPatches;
    };
 
@@ -243,7 +238,6 @@ in {
     linux_5_4_hardened = hardenedKernelFor kernels.linux_5_4 { };
     linux_5_10_hardened = hardenedKernelFor kernels.linux_5_10 { };
     linux_5_15_hardened = hardenedKernelFor kernels.linux_5_15 { };
-    linux_5_17_hardened = hardenedKernelFor kernels.linux_5_17 { };
     linux_5_18_hardened = hardenedKernelFor kernels.linux_5_18 { };
 
   }));
@@ -282,6 +276,8 @@ in {
 
     apfs = callPackage ../os-specific/linux/apfs { };
 
+    ax99100 = callPackage ../os-specific/linux/ax99100 {};
+
     batman_adv = callPackage ../os-specific/linux/batman-adv {};
 
     bbswitch = callPackage ../os-specific/linux/bbswitch {};
@@ -357,6 +353,10 @@ in {
     nvidia_x11_vulkan_beta = nvidiaPackages.vulkan_beta;
     nvidia_x11             = nvidiaPackages.stable;
 
+    # this is not a replacement for nvidia_x11
+    # only the opensource kernel driver exposed for hydra to build
+    nvidia_x11_beta_open   = nvidiaPackages.beta.open;
+
     openrazer = callPackage ../os-specific/linux/openrazer/driver.nix { };
 
     ply = callPackage ../os-specific/linux/ply { };
@@ -511,7 +511,7 @@ in {
     linux_5_10 = recurseIntoAttrs (packagesFor kernels.linux_5_10);
     linux_5_15 = recurseIntoAttrs (packagesFor kernels.linux_5_15);
     linux_5_16 = throw "linux 5.16 was removed because it reached its end of life upstream"; # Added 2022-04-23
-    linux_5_17 = recurseIntoAttrs (packagesFor kernels.linux_5_17);
+    linux_5_17 = throw "linux 5.17 was removed because it reached its end of life upstream"; # Added 2022-06-23
     linux_5_18 = recurseIntoAttrs (packagesFor kernels.linux_5_18);
   };
 
@@ -551,7 +551,6 @@ in {
     });
     linux_5_10_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_10 { });
     linux_5_15_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_15 { });
-    linux_5_17_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_17 { });
     linux_5_18_hardened = recurseIntoAttrs (hardenedPackagesFor kernels.linux_5_18 { });
 
     linux_zen = recurseIntoAttrs (packagesFor kernels.linux_zen);
@@ -567,7 +566,7 @@ in {
   });
 
   packageAliases = {
-    linux_default = if stdenv.hostPlatform.is32bit then packages.linux_5_10 else packages.linux_5_15;
+    linux_default = packages.linux_5_15;
     # Update this when adding the newest kernel major version!
     linux_latest = packages.linux_5_18;
     linux_mptcp = packages.linux_mptcp_95;
diff --git a/pkgs/top-level/lua-packages.nix b/pkgs/top-level/lua-packages.nix
index 96dfd89b59589..cb963bb1b1771 100644
--- a/pkgs/top-level/lua-packages.nix
+++ b/pkgs/top-level/lua-packages.nix
@@ -50,7 +50,7 @@ in
   getLuaCPath = drv: getPath drv luaLib.luaCPathList;
 
   inherit (callPackage ../development/interpreters/lua-5/hooks { inherit (args) lib;})
-    lua-setup-hook;
+    luarocksMoveDataFolder luarocksCheckHook lua-setup-hook;
 
   inherit lua callPackage;
   inherit buildLuaPackage buildLuarocksPackage buildLuaApplication;
diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix
index 5083f1733cd09..efebf7e385332 100644
--- a/pkgs/top-level/ocaml-packages.nix
+++ b/pkgs/top-level/ocaml-packages.nix
@@ -899,6 +899,8 @@ let
 
     mirage-vnetif = callPackage ../development/ocaml-modules/mirage-vnetif { };
 
+    mldoc =  callPackage ../development/ocaml-modules/mldoc { };
+
     mlgmp =  callPackage ../development/ocaml-modules/mlgmp { };
 
     mlgmpidl =  callPackage ../development/ocaml-modules/mlgmpidl { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 94347ea4e8c60..df9b8bf3315b4 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -182,6 +182,7 @@ let
     meta = {
       description = "Perl extension to generate and test check digits";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "checkdigits.pl";
     };
   };
 
@@ -307,16 +308,16 @@ let
   };
 
   asa = buildPerlPackage {
-     pname = "asa";
-     version = "1.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/asa-1.04.tar.gz";
-       sha256 = "0pk783s1h2f45zbmm6a62yfgy71w4sqh8ppgs4cyxfikwxs3p0z5";
-     };
-     meta = {
-       description = "Lets your class/object say it works like something else";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "asa";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/asa-1.04.tar.gz";
+      sha256 = "0pk783s1h2f45zbmm6a62yfgy71w4sqh8ppgs4cyxfikwxs3p0z5";
+    };
+    meta = {
+      description = "Lets your class/object say it works like something else";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   AlienSDL = buildPerlModule {
@@ -476,6 +477,9 @@ let
     };
     propagatedBuildInputs = [ AnyEvent commonsense ];
     meta = {
+      description = "Quickly ping a large number of hosts";
+      license = with lib.licenses; [ artistic1 gpl2Plus ];
+      mainProgram = "fastping";
     };
   };
 
@@ -672,16 +676,17 @@ let
     postInstall = ''
       mkdir -p $out/share/bash-completion/completions
       mv $out/bin/clusterssh_bash_completion.dist \
-         $out/share/bash-completion/completions/clusterssh_bash_completion
+        $out/share/bash-completion/completions/clusterssh_bash_completion
       substituteInPlace $out/share/bash-completion/completions/clusterssh_bash_completion \
-         --replace '/bin/true' '${pkgs.coreutils}/bin/true' \
-         --replace 'grep' '${pkgs.gnugrep}/bin/grep' \
-         --replace 'sed' '${pkgs.gnused}/bin/sed'
+        --replace '/bin/true' '${pkgs.coreutils}/bin/true' \
+        --replace 'grep' '${pkgs.gnugrep}/bin/grep' \
+        --replace 'sed' '${pkgs.gnused}/bin/sed'
     '';
     meta = {
+      homepage = "https://github.com/duncs/clusterssh/wiki";
       description = "A container for functions of the ClusterSSH programs";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
-      homepage = "https://github.com/duncs/clusterssh/wiki";
+      mainProgram = "cssh";
     };
   };
 
@@ -715,16 +720,17 @@ let
   };
 
   AppFatPacker = buildPerlPackage {
-     pname = "App-FatPacker";
-     version = "0.010008";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz";
-       sha256 = "1kzcbpsf1p7ww45d9fl2w0nfn5jj5pz0r0c649c1lrj5r1nv778j";
-     };
-     meta = {
-       description = "pack your dependencies onto your script file";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "App-FatPacker";
+    version = "0.010008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/App-FatPacker-0.010008.tar.gz";
+      sha256 = "1kzcbpsf1p7ww45d9fl2w0nfn5jj5pz0r0c649c1lrj5r1nv778j";
+    };
+    meta = {
+      description = "pack your dependencies onto your script file";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "fatpack";
+    };
   };
 
   Appcpanminus = buildPerlPackage {
@@ -747,6 +753,7 @@ let
       homepage = "https://github.com/miyagawa/cpanminus";
       description = "Get, unpack, build and install modules from CPAN";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanm";
     };
   };
 
@@ -768,6 +775,7 @@ let
       description = "A fast CPAN module installer";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.zakame ];
+      mainProgram = "cpm";
     };
   };
 
@@ -805,6 +813,7 @@ let
       homepage = "https://www.chordpro.org";
       description = "A lyrics and chords formatting program";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "chordpro";
     };
   };
 
@@ -836,22 +845,23 @@ let
     meta = {
       description = "Manage perl installations in your $HOME";
       license = lib.licenses.mit;
+      mainProgram = "perlbrew";
     };
   };
 
   ArchiveAnyLite = buildPerlPackage {
-     pname = "Archive-Any-Lite";
-     version = "0.11";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz";
-       sha256 = "0w2i50fd81ip674zmnrb15nadw162fdpiw4rampbd94k74jqih8m";
-     };
-     propagatedBuildInputs = [ ArchiveZip ];
-     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
-     meta = {
-       description = "simple CPAN package extractor";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Archive-Any-Lite";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Archive-Any-Lite-0.11.tar.gz";
+      sha256 = "0w2i50fd81ip674zmnrb15nadw162fdpiw4rampbd94k74jqih8m";
+    };
+    propagatedBuildInputs = [ ArchiveZip ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "simple CPAN package extractor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   AppSqitch = buildPerlModule {
@@ -868,6 +878,7 @@ let
       homepage = "https://sqitch.org/";
       description = "Sane database change management";
       license = lib.licenses.mit;
+      mainProgram = "sqitch";
     };
   };
 
@@ -887,6 +898,7 @@ let
       license = lib.licenses.mit;
       homepage = "https://github.com/nferraz/st";
       maintainers = [ maintainers.eelco ];
+      mainProgram = "st";
     };
   };
 
@@ -919,17 +931,17 @@ let
   };
 
   ArrayDiff = buildPerlPackage {
-     pname = "Array-Diff";
-     version = "0.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
-       sha256 = "0xsh8k312spzl90xds075qprcaz4r0b93g1bgi9l3rv1k0p3j1l0";
-     };
-     propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
-     meta = {
-       description = "Find the differences between two arrays";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Array-Diff";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Array-Diff-0.09.tar.gz";
+      sha256 = "0xsh8k312spzl90xds075qprcaz4r0b93g1bgi9l3rv1k0p3j1l0";
+    };
+    propagatedBuildInputs = [ AlgorithmDiff ClassAccessor ];
+    meta = {
+      description = "Find the differences between two arrays";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ArrayFIFO = buildPerlPackage {
@@ -985,6 +997,7 @@ let
       description = "Module for manipulations of cpio archives";
       # See https://rt.cpan.org/Public/Bug/Display.html?id=43597#txn-569710
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpio-filter";
     };
   };
 
@@ -1011,20 +1024,21 @@ let
     meta = {
       description = "Manipulates TAR archives";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ptar";
     };
   };
 
   ArchiveTarWrapper = buildPerlPackage {
-     pname = "Archive-Tar-Wrapper";
-     version = "0.38";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
-       sha256 = "0ymknznhk5ky7f835l0l5wfkx8kl0vfm0hvhijvgyp5rm3dd1wqr";
-     };
-     propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
-     meta = {
-       description = "API wrapper around the 'tar' utility";
-     };
+    pname = "Archive-Tar-Wrapper";
+    version = "0.38";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AR/ARFREITAS/Archive-Tar-Wrapper-0.38.tar.gz";
+      sha256 = "0ymknznhk5ky7f835l0l5wfkx8kl0vfm0hvhijvgyp5rm3dd1wqr";
+    };
+    propagatedBuildInputs = [ FileWhich IPCRun LogLog4perl ];
+    meta = {
+      description = "API wrapper around the 'tar' utility";
+    };
   };
 
   ArchiveZip = buildPerlPackage {
@@ -1038,6 +1052,7 @@ let
     meta = {
       description = "Provide an interface to ZIP archive files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "crc32";
     };
   };
 
@@ -1173,6 +1188,7 @@ let
     meta = {
       description = "Generate Tickets (Signed HTTP Cookies) for mod_auth_pubtkt protected websites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mod_auth_pubtkt.pl";
     };
   };
 
@@ -1284,17 +1300,17 @@ let
   };
 
   AuthenSimplePasswd = buildPerlModule {
-     pname = "Authen-Simple-Passwd";
-     version = "0.6";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
-       sha256 = "1ckl2ry9r5nb1rcn1ik2l5b5pp1i3g4bmllsmzb0zpwy4lvbqmfg";
-     };
-     propagatedBuildInputs = [ AuthenSimple ];
-     meta = {
-       description = "Simple Passwd authentication";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Authen-Simple-Passwd";
+    version = "0.6";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Authen-Simple-Passwd-0.6.tar.gz";
+      sha256 = "1ckl2ry9r5nb1rcn1ik2l5b5pp1i3g4bmllsmzb0zpwy4lvbqmfg";
+    };
+    propagatedBuildInputs = [ AuthenSimple ];
+    meta = {
+      description = "Simple Passwd authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   autobox = buildPerlPackage {
@@ -1338,6 +1354,7 @@ let
 
       homepage = "http://www.aarontrevena.co.uk/opensource/autodia/";
       license = lib.licenses.gpl2Plus;
+      mainProgram = "autodia.pl";
     };
     buildInputs = [ DBI ];
   };
@@ -1387,6 +1404,7 @@ let
       homepage = "https://github.com/rurban/perl-compiler";
       description = "Perl compiler";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlcc";
     };
     doCheck = false; /* test fails */
   };
@@ -1554,6 +1572,7 @@ let
       homepage = "https://metacpan.org/release/Bot-Training";
       description = "Plain text training material for bots like Hailo and AI::MegaHAL";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "bot-training";
     };
   };
 
@@ -1637,18 +1656,18 @@ let
   };
 
   BUtils = buildPerlPackage {
-     pname = "B-Utils";
-     version = "0.27";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
-       sha256 = "1spzhmk3z6c4blmra3kn84nq20fira2b3vjg86m0j085lgv56zzr";
-     };
-     propagatedBuildInputs = [ TaskWeaken ];
-     buildInputs = [ ExtUtilsDepends ];
-     meta = {
-       description = "Helper functions for op tree manipulation";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "B-Utils";
+    version = "0.27";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/B-Utils-0.27.tar.gz";
+      sha256 = "1spzhmk3z6c4blmra3kn84nq20fira2b3vjg86m0j085lgv56zzr";
+    };
+    propagatedBuildInputs = [ TaskWeaken ];
+    buildInputs = [ ExtUtilsDepends ];
+    meta = {
+      description = "Helper functions for op tree manipulation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   BusinessHours = buildPerlPackage {
@@ -1887,15 +1906,15 @@ let
   };
 
   capitalization = buildPerlPackage {
-     pname = "capitalization";
-     version = "0.03";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
-       sha256 = "0g7fpckydzxsf8mjkfbyj0pv42dzym4hwbizqahnh7wlfbaicdgi";
-     };
-     propagatedBuildInputs = [ DevelSymdump ];
-     meta = {
-     };
+    pname = "capitalization";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/capitalization-0.03.tar.gz";
+      sha256 = "0g7fpckydzxsf8mjkfbyj0pv42dzym4hwbizqahnh7wlfbaicdgi";
+    };
+    propagatedBuildInputs = [ DevelSymdump ];
+    meta = {
+    };
   };
 
   CanaryStability = buildPerlPackage {
@@ -1997,6 +2016,7 @@ let
       homepage = "https://github.com/perl-carton/carton";
       description = "Perl module dependency manager (aka Bundler for Perl)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "carton";
     };
   };
 
@@ -2203,6 +2223,7 @@ let
       homepage = "http://wiki.catalystframework.org/wiki/";
       description = "The Catalyst Framework Runtime";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "catalyst.pl";
     };
   };
 
@@ -2630,6 +2651,7 @@ let
       description = "a data toolkit";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/LibreCat/Catmandu";
+      mainProgram = "catmandu";
     };
   };
 
@@ -2644,6 +2666,7 @@ let
       description = "Get the CDDB info for an audio cd";
       license = lib.licenses.artistic1;
       maintainers = [ maintainers.endgame ];
+      mainProgram = "cddb.pl";
     };
   };
 
@@ -2677,19 +2700,19 @@ let
   };
 
   CGICompile = buildPerlModule {
-     pname = "CGI-Compile";
-     version = "0.25";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.25.tar.gz";
-       sha256 = "198f94r9xjxgn0hvwy5f93xfa8jlw7d9v3v8z7qbh7mxvzp78jzl";
-     };
-     propagatedBuildInputs = [ Filepushd SubName ];
-     buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
-     meta = {
-       description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/CGI-Compile";
-     };
+    pname = "CGI-Compile";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RK/RKITOVER/CGI-Compile-0.25.tar.gz";
+      sha256 = "198f94r9xjxgn0hvwy5f93xfa8jlw7d9v3v8z7qbh7mxvzp78jzl";
+    };
+    propagatedBuildInputs = [ Filepushd SubName ];
+    buildInputs = [ CGI CaptureTiny ModuleBuildTiny SubIdentify Switch TestNoWarnings TestRequires TryTiny ];
+    meta = {
+      description = "Compile .cgi scripts to a code reference like ModPerl::Registry";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/miyagawa/CGI-Compile";
+    };
   };
 
   CGICookieXS = buildPerlPackage {
@@ -3005,6 +3028,11 @@ let
       url = "mirror://cpan/authors/id/M/MS/MSCHLUE/Class-Classgen-classgen-3.03.tar.gz";
       sha256 = "9b65d41b991538992e816b32cc4fa9b4a4a0bb3e9c10e7eebeff82658dbbc8f6";
     };
+    meta = {
+      description = "Simplifies creation, manipulation and usage of complex objects.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "classgen";
+    };
   };
 
   ClassContainer = buildPerlModule {
@@ -3224,17 +3252,17 @@ let
   };
 
   ClassTiny = buildPerlPackage {
-     pname = "Class-Tiny";
-     version = "1.008";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
-       sha256 = "05anh4hn8va46xwbdx7rqxnhb8i1lingb614lywzr89gj5iql1gf";
-     };
-     meta = {
-       description = "Minimalist class construction";
-       license = with lib.licenses; [ asl20 ];
-       homepage = "https://github.com/dagolden/Class-Tiny";
-     };
+    pname = "Class-Tiny";
+    version = "1.008";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Class-Tiny-1.008.tar.gz";
+      sha256 = "05anh4hn8va46xwbdx7rqxnhb8i1lingb614lywzr89gj5iql1gf";
+    };
+    meta = {
+      description = "Minimalist class construction";
+      license = with lib.licenses; [ asl20 ];
+      homepage = "https://github.com/dagolden/Class-Tiny";
+    };
   };
 
   ClassLoad = buildPerlPackage {
@@ -3413,58 +3441,59 @@ let
   };
 
   CloneChoose = buildPerlPackage {
-     pname = "Clone-Choose";
-     version = "0.010";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
-       sha256 = "0cin2bjn5z8xhm9v4j7pwlkx88jnvz8al0njdjwyvs6fb0glh8sn";
-     };
-     buildInputs = [ Clone ClonePP TestWithoutModule ];
-     meta = {
-       description = "Choose appropriate clone utility";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Clone-Choose";
+    version = "0.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HE/HERMES/Clone-Choose-0.010.tar.gz";
+      sha256 = "0cin2bjn5z8xhm9v4j7pwlkx88jnvz8al0njdjwyvs6fb0glh8sn";
+    };
+    buildInputs = [ Clone ClonePP TestWithoutModule ];
+    meta = {
+      description = "Choose appropriate clone utility";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ClonePP = buildPerlPackage {
-     pname = "Clone-PP";
-     version = "1.08";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
-       sha256 = "0y7m25fksiavzg4xj4cm9zkz8rmnk4iqy7lm01m4nmyqlna3082p";
-     };
-     meta = {
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Clone-PP";
+    version = "1.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Clone-PP-1.08.tar.gz";
+      sha256 = "0y7m25fksiavzg4xj4cm9zkz8rmnk4iqy7lm01m4nmyqlna3082p";
+    };
+    meta = {
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   CodeTidyAll = buildPerlPackage {
-     pname = "Code-TidyAll";
-     version = "0.78";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz";
-       sha256 = "1dmr6zkgcnc6cam204f00g5yly46cplbn9k45ginw02rv10vnpij";
-     };
-     propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
-     buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
-     meta = {
-       description = "Engine for tidyall, your all-in-one code tidier and validator";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Code-TidyAll";
+    version = "0.78";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Code-TidyAll-0.78.tar.gz";
+      sha256 = "1dmr6zkgcnc6cam204f00g5yly46cplbn9k45ginw02rv10vnpij";
+    };
+    propagatedBuildInputs = [ CaptureTiny ConfigINI FileWhich Filepushd IPCRun3 IPCSystemSimple ListCompare ListSomeUtils LogAny Moo ScopeGuard SpecioLibraryPathTiny TextDiff TimeDate TimeDurationParse ];
+    buildInputs = [ TestClass TestClassMost TestDeep TestDifferences TestException TestFatal TestMost TestWarn TestWarnings librelative ];
+    meta = {
+      description = "Engine for tidyall, your all-in-one code tidier and validator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tidyall";
+    };
   };
 
   CodeTidyAllPluginPerlAlignMooseAttributes = buildPerlPackage {
-     pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
-     version = "0.01";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
-       sha256 = "1r8w5kfm17j1dyrrsjhwww423zzdzhx1i3d3brl32wzhasgf47cd";
-     };
-     propagatedBuildInputs = [ CodeTidyAll TextAligner ];
-     meta = {
-       description = "TidyAll plugin to sort and align Moose-style attributes";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Code-TidyAll-Plugin-Perl-AlignMooseAttributes";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JS/JSWARTZ/Code-TidyAll-Plugin-Perl-AlignMooseAttributes-0.01.tar.gz";
+      sha256 = "1r8w5kfm17j1dyrrsjhwww423zzdzhx1i3d3brl32wzhasgf47cd";
+    };
+    propagatedBuildInputs = [ CodeTidyAll TextAligner ];
+    meta = {
+      description = "TidyAll plugin to sort and align Moose-style attributes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ColorLibrary = buildPerlPackage {
@@ -3525,7 +3554,7 @@ let
     };
   };
 
-   CompressLZF = buildPerlPackage rec {
+  CompressLZF = buildPerlPackage rec {
     pname = "Compress-LZF";
     version = "3.8";
     src = fetchurl {
@@ -3696,19 +3725,19 @@ let
   };
 
   ConfigIdentity = buildPerlPackage {
-     pname = "Config-Identity";
-     version = "0.0019";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
-       sha256 = "1a0jx12pxwpbnkww4xg4lav8j6ls89hrdimhj4a697k56zdhnli9";
-     };
-     propagatedBuildInputs = [ FileHomeDir IPCRun ];
-     buildInputs = [ TestDeep ];
-     meta = {
-       description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/dagolden/Config-Identity";
-     };
+    pname = "Config-Identity";
+    version = "0.0019";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DA/DAGOLDEN/Config-Identity-0.0019.tar.gz";
+      sha256 = "1a0jx12pxwpbnkww4xg4lav8j6ls89hrdimhj4a697k56zdhnli9";
+    };
+    propagatedBuildInputs = [ FileHomeDir IPCRun ];
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "Load (and optionally decrypt via GnuPG) user/pass identity information ";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/dagolden/Config-Identity";
+    };
   };
 
   ConfigIniFiles = buildPerlPackage {
@@ -3847,6 +3876,7 @@ let
     meta = {
       description = "Simple, versioned access to configuration data";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cfgver";
     };
   };
 
@@ -3871,18 +3901,18 @@ let
   };
 
   ConstFast = buildPerlModule {
-     pname = "Const-Fast";
-     version = "0.014";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
-       sha256 = "1nwlldgrx86yn7y6a53cqgvzm2ircsvxg1addahlcy6510x9a1gq";
-     };
-     propagatedBuildInputs = [ SubExporterProgressive ];
-     buildInputs = [ ModuleBuildTiny TestFatal ];
-     meta = {
-       description = "Facility for creating read-only scalars, arrays, and hashes";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Const-Fast";
+    version = "0.014";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEONT/Const-Fast-0.014.tar.gz";
+      sha256 = "1nwlldgrx86yn7y6a53cqgvzm2ircsvxg1addahlcy6510x9a1gq";
+    };
+    propagatedBuildInputs = [ SubExporterProgressive ];
+    buildInputs = [ ModuleBuildTiny TestFatal ];
+    meta = {
+      description = "Facility for creating read-only scalars, arrays, and hashes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ConvertASCIIArmour = buildPerlPackage {
@@ -3976,16 +4006,16 @@ let
   };
 
   curry = buildPerlPackage {
-     pname = "curry";
-     version = "1.001000";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-1.001000.tar.gz";
-       sha256 = "1m2n3w67cskh8ic6vf6ik0fmap9zma875kr5rhyznr1041wn064b";
-     };
-     meta = {
-       description = "Create automatic curried method call closures for any class or object";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "curry";
+    version = "1.001000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MS/MSTROUT/curry-1.001000.tar.gz";
+      sha256 = "1m2n3w67cskh8ic6vf6ik0fmap9zma875kr5rhyznr1041wn064b";
+    };
+    meta = {
+      description = "Create automatic curried method call closures for any class or object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   constant-defer = buildPerlPackage {
@@ -4034,16 +4064,16 @@ let
   };
 
   Coro = buildPerlPackage {
-     pname = "Coro";
-     version = "6.57";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
-       sha256 = "1ihl2zaiafr2k5jzj46j44j8vxqs23fqcsahypmi23jl6f0f8a0r";
-     };
-     propagatedBuildInputs = [ AnyEvent Guard commonsense ];
-     buildInputs = [ CanaryStability ];
-     meta = {
-     };
+    pname = "Coro";
+    version = "6.57";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Coro-6.57.tar.gz";
+      sha256 = "1ihl2zaiafr2k5jzj46j44j8vxqs23fqcsahypmi23jl6f0f8a0r";
+    };
+    propagatedBuildInputs = [ AnyEvent Guard commonsense ];
+    buildInputs = [ CanaryStability ];
+    meta = {
+    };
   };
 
   CoroEV = buildPerlPackage rec {
@@ -4064,18 +4094,19 @@ let
   };
 
   Corona = buildPerlPackage {
-     pname = "Corona";
-     version = "0.1004";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
-       sha256 = "0g5gpma3998rn61qfjv5csv2nrdi4sc84ipkb4k6synyhfgd3xgz";
-     };
-     propagatedBuildInputs = [ NetServerCoro Plack ];
-     buildInputs = [ TestSharedFork TestTCP ];
-     meta = {
-       description = "Coro based PSGI web server";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Corona";
+    version = "0.1004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Corona-0.1004.tar.gz";
+      sha256 = "0g5gpma3998rn61qfjv5csv2nrdi4sc84ipkb4k6synyhfgd3xgz";
+    };
+    propagatedBuildInputs = [ NetServerCoro Plack ];
+    buildInputs = [ TestSharedFork TestTCP ];
+    meta = {
+      description = "Coro based PSGI web server";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "corona";
+    };
   };
 
   CPAN = buildPerlPackage {
@@ -4089,6 +4120,7 @@ let
     meta = {
       description = "Query, download and build perl modules from CPAN sites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpan";
     };
   };
 
@@ -4110,6 +4142,7 @@ let
       description = "Create a minimal mirror of CPAN";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      mainProgram = "minicpan";
     };
   };
 
@@ -4123,6 +4156,7 @@ let
     meta = {
       description = "CPanel fork of JSON::XS, fast and correct serializing";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanel_json_xs";
     };
   };
 
@@ -4153,6 +4187,7 @@ let
     meta = {
       description = "Read and write Changes files";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tidy_changelog";
     };
   };
 
@@ -4186,16 +4221,16 @@ let
   };
 
   CPANDistnameInfo = buildPerlPackage {
-     pname = "CPAN-DistnameInfo";
-     version = "0.12";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
-       sha256 = "0d94kx596w7k328cvq4y96z1gz12hdhn3z1mklkbrb7fyzlzn91g";
-     };
-     meta = {
-       description = "Extract distribution name and version from a distribution filename";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "CPAN-DistnameInfo";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GB/GBARR/CPAN-DistnameInfo-0.12.tar.gz";
+      sha256 = "0d94kx596w7k328cvq4y96z1gz12hdhn3z1mklkbrb7fyzlzn91g";
+    };
+    meta = {
+      description = "Extract distribution name and version from a distribution filename";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   CPANMetaCheck = buildPerlPackage {
@@ -4238,6 +4273,7 @@ let
       homepage = "https://github.com/jib/cpanplus-devel";
       description = "Ameliorated interface to the CPAN";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpanp";
     };
   };
 
@@ -4253,6 +4289,7 @@ let
       homepage = "https://github.com/rjbs/cpan-uploader";
       description = "Upload things to the CPAN";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "cpan-upload";
     };
   };
 
@@ -4536,6 +4573,7 @@ let
     meta = {
       description = "Interface to /dev/random and /dev/urandom";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "makerandom";
     };
   };
 
@@ -4725,6 +4763,7 @@ let
       description = "Pure-Perl OpenPGP implementation";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      mainProgram = "pgplet";
     };
     doCheck = false; /* test fails with 'No random source available!' */
   };
@@ -4756,17 +4795,17 @@ let
   };
 
   CryptOpenSSLGuess = buildPerlPackage {
-     pname = "Crypt-OpenSSL-Guess";
-     version = "0.11";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.11.tar.gz";
-       sha256 = "0rvi9l4ljcbhwwvspq019nfq2h2v746dk355h2nwnlmqikiihsxa";
-     };
-     meta = {
-       description = "Guess OpenSSL include path";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
-     };
+    pname = "Crypt-OpenSSL-Guess";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AK/AKIYM/Crypt-OpenSSL-Guess-0.11.tar.gz";
+      sha256 = "0rvi9l4ljcbhwwvspq019nfq2h2v746dk355h2nwnlmqikiihsxa";
+    };
+    meta = {
+      description = "Guess OpenSSL include path";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/akiym/Crypt-OpenSSL-Guess";
+    };
   };
 
   CryptOpenSSLRandom = buildPerlPackage {
@@ -5064,6 +5103,7 @@ let
     meta = {
       description = "Dump with recursive encoding";
       license = lib.licenses.artistic2;
+      mainProgram = "edumper";
     };
   };
 
@@ -5139,6 +5179,7 @@ let
     meta = {
       description = "Hexadecimal Dumper";
       maintainers = with maintainers; [ AndersonTorres ];
+      mainProgram = "hexdump";
     };
   };
 
@@ -5773,6 +5814,7 @@ let
     meta = {
       description = "Create machine readable date/time with natural parsing logic";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dateparse";
     };
   };
 
@@ -5964,32 +6006,32 @@ let
   };
 
   DevelCheckBin = buildPerlPackage {
-     pname = "Devel-CheckBin";
-     version = "0.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
-       sha256 = "1r735yzgvsxkj4m6ks34xva5m21cfzp9qiis2d4ivv99kjskszqm";
-     };
-     meta = {
-       description = "check that a command is available";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/tokuhirom/Devel-CheckBin";
-     };
+    pname = "Devel-CheckBin";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-0.04.tar.gz";
+      sha256 = "1r735yzgvsxkj4m6ks34xva5m21cfzp9qiis2d4ivv99kjskszqm";
+    };
+    meta = {
+      description = "check that a command is available";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/tokuhirom/Devel-CheckBin";
+    };
   };
 
   DevelCheckCompiler = buildPerlModule {
-     pname = "Devel-CheckCompiler";
-     version = "0.07";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
-       sha256 = "1db973a4dbyknjxq608hywil5ai6vplnayshqxrd7m5qnjbpd2vn";
-     };
-     buildInputs = [ ModuleBuildTiny ];
-     meta = {
-       description = "Check the compiler's availability";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
-     };
+    pname = "Devel-CheckCompiler";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SY/SYOHEX/Devel-CheckCompiler-0.07.tar.gz";
+      sha256 = "1db973a4dbyknjxq608hywil5ai6vplnayshqxrd7m5qnjbpd2vn";
+    };
+    buildInputs = [ ModuleBuildTiny ];
+    meta = {
+      description = "Check the compiler's availability";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/tokuhirom/Devel-CheckCompiler";
+    };
   };
 
   DevelChecklib = buildPerlPackage {
@@ -6038,6 +6080,7 @@ let
       homepage = "https://github.com/bingos/devel-patchperl";
       description = "Patch perl source a la Devel::PPPort's buildperl.pl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "patchperl";
     };
   };
 
@@ -6381,6 +6424,7 @@ let
       homepage = "https://metacpan.org/pod/DBIx::Class";
       description = "Extensible and flexible object <-> relational mapper";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dbicadmin";
     };
   };
 
@@ -6501,6 +6545,7 @@ let
     meta = {
       description = "Create a DBIx::Class::Schema based on a database";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dbicdump";
     };
   };
 
@@ -6680,16 +6725,16 @@ let
   };
 
   DevelGlobalPhase = buildPerlPackage {
-     pname = "Devel-GlobalPhase";
-     version = "0.003003";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
-       sha256 = "1x9jzy3l7gwikj57swzl94qsq03j9na9h1m69azzs7d7ghph58wd";
-     };
-     meta = {
-       description = "Detect perl's global phase on older perls.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Devel-GlobalPhase";
+    version = "0.003003";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HAARG/Devel-GlobalPhase-0.003003.tar.gz";
+      sha256 = "1x9jzy3l7gwikj57swzl94qsq03j9na9h1m69azzs7d7ghph58wd";
+    };
+    meta = {
+      description = "Detect perl's global phase on older perls.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   DevelHide = buildPerlPackage {
@@ -6722,18 +6767,18 @@ let
   };
 
   DevelOverloadInfo = buildPerlPackage {
-     pname = "Devel-OverloadInfo";
-     version = "0.005";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.005.tar.gz";
-       sha256 = "1rx6g8pyhi7lx6z130b7vlf8syzrq92w9ky8mpw4d6bwlkzy5zcb";
-     };
-     propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
-     buildInputs = [ TestFatal ];
-     meta = {
-       description = "introspect overloaded operators";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Devel-OverloadInfo";
+    version = "0.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IL/ILMARI/Devel-OverloadInfo-0.005.tar.gz";
+      sha256 = "1rx6g8pyhi7lx6z130b7vlf8syzrq92w9ky8mpw4d6bwlkzy5zcb";
+    };
+    propagatedBuildInputs = [ MROCompat PackageStash SubIdentify ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "introspect overloaded operators";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   DevelPartialDump = buildPerlPackage {
@@ -6925,6 +6970,7 @@ let
       description = "Perl extension for SHA-3";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      mainProgram = "sha3sum";
     };
   };
 
@@ -7016,6 +7062,7 @@ let
       homepage = "http://dzil.org/";
       description = "Distribution builder; installer not included!";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dzil";
     };
     doCheck = false;
   };
@@ -7222,19 +7269,19 @@ let
   };
 
   DistZillaPluginTestNoTabs = buildPerlModule {
-     pname = "Dist-Zilla-Plugin-Test-NoTabs";
-     version = "0.15";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
-       sha256 = "196hchmn8y591533v3p7kl75nlhpaygbfdiw2iqbnab9j510qq8v";
-     };
-     propagatedBuildInputs = [ DistZilla ];
-     buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
-     meta = {
-       description = "Author tests that ensure hard tabs are not used";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
-     };
+    pname = "Dist-Zilla-Plugin-Test-NoTabs";
+    version = "0.15";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Plugin-Test-NoTabs-0.15.tar.gz";
+      sha256 = "196hchmn8y591533v3p7kl75nlhpaygbfdiw2iqbnab9j510qq8v";
+    };
+    propagatedBuildInputs = [ DistZilla ];
+    buildInputs = [ ModuleBuildTiny TestDeep TestNoTabs TestRequires ];
+    meta = {
+      description = "Author tests that ensure hard tabs are not used";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Plugin-Test-NoTabs";
+    };
   };
 
   DistZillaPluginTestPerlCritic = buildPerlModule {
@@ -7259,7 +7306,7 @@ let
       url = "mirror://cpan/authors/id/R/RW/RWSTAUNER/Dist-Zilla-Plugin-Test-Pod-LinkCheck-1.004.tar.gz";
       sha256 = "325d236da0940388d2aa86ec5c1326516b4ad45adef8e7a4f83bb91d5ee15490";
     };
-#    buildInputs = [ TestPodLinkCheck ];
+    # buildInputs = [ TestPodLinkCheck ];
     propagatedBuildInputs = [ DistZilla ];
     meta = {
       homepage = "https://github.com/rwstauner/Dist-Zilla-Plugin-Test-Pod-LinkCheck";
@@ -7330,19 +7377,19 @@ let
   };
 
   DistZillaRoleFileWatcher = buildPerlModule {
-     pname = "Dist-Zilla-Role-FileWatcher";
-     version = "0.006";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
-       sha256 = "15jfpr257xxp27gz156npgpj7kh2dchzgfmvzivi5bvdb2wl8fpy";
-     };
-     propagatedBuildInputs = [ DistZilla SafeIsa ];
-     buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
-     meta = {
-       description = "Receive notification when something changes a file's contents";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
-     };
+    pname = "Dist-Zilla-Role-FileWatcher";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Dist-Zilla-Role-FileWatcher-0.006.tar.gz";
+      sha256 = "15jfpr257xxp27gz156npgpj7kh2dchzgfmvzivi5bvdb2wl8fpy";
+    };
+    propagatedBuildInputs = [ DistZilla SafeIsa ];
+    buildInputs = [ ModuleBuildTiny TestDeep TestFatal ];
+    meta = {
+      description = "Receive notification when something changes a file's contents";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/karenetheridge/Dist-Zilla-Role-FileWatcher";
+    };
   };
 
   Dotenv = buildPerlPackage {
@@ -7372,6 +7419,7 @@ let
       description = "More reliable benchmarking with the least amount of thinking";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       homepage = "https://github.com/briandfoy/dumbbench";
+      mainProgram = "dumbbench";
     };
   };
 
@@ -7419,16 +7467,16 @@ let
   };
 
   EmailAddressXS = buildPerlPackage {
-     pname = "Email-Address-XS";
-     version = "1.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.04.tar.gz";
-       sha256 = "0gjrrl81z3sfwavgx5kwjd87gj44mlnbbqsm3dgdv1xllw26spwr";
-     };
-     meta = {
-       description = "Parse and format RFC 2822 email addresses and groups";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Email-Address-XS";
+    version = "1.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PA/PALI/Email-Address-XS-1.04.tar.gz";
+      sha256 = "0gjrrl81z3sfwavgx5kwjd87gj44mlnbbqsm3dgdv1xllw26spwr";
+    };
+    meta = {
+      description = "Parse and format RFC 2822 email addresses and groups";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   EmailDateFormat = buildPerlPackage {
@@ -7563,6 +7611,7 @@ let
       description = "A .MSG to mbox converter";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = with maintainers; [ peterhoeg ];
+      mainProgram = "msgconvert";
     };
   };
 
@@ -7655,6 +7704,7 @@ let
     meta = {
       description = "Character encodings in Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "piconv";
     };
   };
 
@@ -7748,17 +7798,17 @@ let
   };
 
   EncodeNewlines = buildPerlPackage {
-     pname = "Encode-Newlines";
-     version = "0.05";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
-       sha256 = "1gipd3wnma28w5gjbzycfkpi6chksy14lhxkp4hwizf8r351zcrl";
-     };
-     meta = {
-       description = "Normalize line ending sequences";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/Encode-Newlines";
-     };
+    pname = "Encode-Newlines";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Encode-Newlines-0.05.tar.gz";
+      sha256 = "1gipd3wnma28w5gjbzycfkpi6chksy14lhxkp4hwizf8r351zcrl";
+    };
+    meta = {
+      description = "Normalize line ending sequences";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/neilb/Encode-Newlines";
+    };
   };
 
   EncodePunycode = buildPerlPackage {
@@ -7809,6 +7859,11 @@ let
       url = "mirror://cpan/authors/id/D/DS/DSB/Env-Path-0.19.tar.gz";
       sha256 = "1qhmj15a66h90pjl2dgnxsb9jj3b1r5mpvnr87cafcl8g69z0jr4";
     };
+    meta = {
+      description = "Advanced operations on path variables";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "envpath";
+    };
   };
 
   EnvSanctify = buildPerlPackage {
@@ -7871,9 +7926,9 @@ let
     };
     propagatedBuildInputs = [ ArchiveZip ];
     meta = {
-      homepage = "http://jmcnamara.github.com/excel-writer-xlsx/";
       description = "Create a new file in the Excel 2007+ XLSX format";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "extract_vba";
     };
   };
 
@@ -8146,21 +8201,22 @@ let
     meta = {
       description = "Create a module Makefile";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "instmodsh";
     };
   };
 
   ExtUtilsMakeMakerCPANfile = buildPerlPackage {
-     pname = "ExtUtils-MakeMaker-CPANfile";
-     version = "0.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
-       sha256 = "0xg2z100vjhcndwaz9m3mmi90rb8h5pggpvlj1b0i8dhsh3pc1rc";
-     };
-     propagatedBuildInputs = [ ModuleCPANfile ];
-     meta = {
-       description = "cpanfile support for EUMM";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "ExtUtils-MakeMaker-CPANfile";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/ExtUtils-MakeMaker-CPANfile-0.09.tar.gz";
+      sha256 = "0xg2z100vjhcndwaz9m3mmi90rb8h5pggpvlj1b0i8dhsh3pc1rc";
+    };
+    propagatedBuildInputs = [ ModuleCPANfile ];
+    meta = {
+      description = "cpanfile support for EUMM";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ExtUtilsPkgConfig = buildPerlPackage {
@@ -8232,6 +8288,11 @@ let
       sha256 = "1zx84f93lkymqz7qa4d63gzlnhnkxm5i3gvsrwkvvqr9cxjasxli";
     };
     buildInputs = [ TestBase TestDifferences ];
+    meta = {
+      description = "XS++ is just a thin layer over plain XS";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xspp";
+    };
   };
 
   FatalException = buildPerlModule {
@@ -8258,17 +8319,17 @@ let
   };
 
   FCGIClient = buildPerlModule {
-     pname = "FCGI-Client";
-     version = "0.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
-       sha256 = "1s11casbv0jmkcl5dk8i2vhfy1nc8rg43d3bg923zassrq4wndym";
-     };
-     propagatedBuildInputs = [ Moo TypeTiny ];
-     meta = {
-       description = "client library for fastcgi protocol";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "FCGI-Client";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/FCGI-Client-0.09.tar.gz";
+      sha256 = "1s11casbv0jmkcl5dk8i2vhfy1nc8rg43d3bg923zassrq4wndym";
+    };
+    propagatedBuildInputs = [ Moo TypeTiny ];
+    meta = {
+      description = "client library for fastcgi protocol";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
     buildInputs = [ ModuleBuildTiny ];
   };
 
@@ -8419,18 +8480,18 @@ let
   };
 
   FileCopyRecursiveReduced = buildPerlPackage {
-     pname = "File-Copy-Recursive-Reduced";
-     version = "0.006";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.006.tar.gz";
-       sha256 = "0b3yf33bahaf4ipfqipn8y5z4296k3vgzzsqbhh5ahwzls9zj676";
-     };
-     buildInputs = [ CaptureTiny PathTiny ];
-     meta = {
-       description = "Recursive copying of files and directories within Perl 5 toolchain";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced/";
-     };
+    pname = "File-Copy-Recursive-Reduced";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JK/JKEENAN/File-Copy-Recursive-Reduced-0.006.tar.gz";
+      sha256 = "0b3yf33bahaf4ipfqipn8y5z4296k3vgzzsqbhh5ahwzls9zj676";
+    };
+    buildInputs = [ CaptureTiny PathTiny ];
+    meta = {
+      description = "Recursive copying of files and directories within Perl 5 toolchain";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "http://thenceforward.net/perl/modules/File-Copy-Recursive-Reduced/";
+    };
   };
 
   FileCountLines = buildPerlPackage {
@@ -8498,6 +8559,7 @@ let
       homepage = "https://www.shlomifish.org/open-source/projects/File-Find-Object/";
       description = "Alternative interface to File::Find::Object";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "findorule";
     };
   };
 
@@ -8509,6 +8571,11 @@ let
       sha256 = "1znachnhmi1w5pdqx8dzgfa892jb7x8ivrdy4pzjj7zb6g61cvvy";
     };
     propagatedBuildInputs = [ NumberCompare TextGlob ];
+    meta = {
+      description = "File::Find::Rule is a friendlier interface to File::Find";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "findrule";
+    };
   };
 
   FileFindRulePerl = buildPerlPackage {
@@ -8887,6 +8954,7 @@ let
     meta = {
       description = "Estimate file space usage (similar to `du`)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "fdu";
     };
   };
 
@@ -9018,16 +9086,16 @@ let
   };
 
   FileZglob = buildPerlPackage {
-     pname = "File-Zglob";
-     version = "0.11";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
-       sha256 = "16v61rn0yimpv5kp6b20z2f1c93n5kpsyjvr0gq4w2dc43gfvc8w";
-     };
-     meta = {
-       description = "Extended globs.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "File-Zglob";
+    version = "0.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TO/TOKUHIROM/File-Zglob-0.11.tar.gz";
+      sha256 = "16v61rn0yimpv5kp6b20z2f1c93n5kpsyjvr0gq4w2dc43gfvc8w";
+    };
+    meta = {
+      description = "Extended globs.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   Filter = buildPerlPackage {
@@ -9207,6 +9275,7 @@ let
     meta = {
       description = "Verify solutions for solitaire games";
       license = lib.licenses.mit;
+      mainProgram = "verify-solitaire-solution";
     };
   };
 
@@ -9224,6 +9293,12 @@ let
     hardeningDisable = [ "format" ];
 
     makeMakerFlags = "--lib_png_path=${pkgs.libpng.out} --lib_jpeg_path=${pkgs.libjpeg.out} --lib_zlib_path=${pkgs.zlib.out} --lib_ft_path=${pkgs.freetype.out} --lib_fontconfig_path=${pkgs.fontconfig.lib} --lib_xpm_path=${pkgs.xorg.libXpm.out}";
+
+    meta = {
+      description = "Interface to Gd Graphics Library";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "bdf2gdfont.pl";
+    };
   };
 
   GDGraph = buildPerlPackage {
@@ -9291,6 +9366,7 @@ let
     meta = {
       description = "Perl API for MaxMind's GeoIP2 web services and databases";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "web-service-request";
     };
   };
 
@@ -9368,9 +9444,10 @@ let
       shortenPerlShebang $out/bin/git-autofixup
     '';
     meta = {
-      maintainers = [ maintainers.DamienCassou ];
       description = "Create fixup commits for topic branches";
       license = lib.licenses.artistic2;
+      maintainers = [ maintainers.DamienCassou ];
+      mainProgram = "git-autofixup";
     };
   };
 
@@ -9532,14 +9609,18 @@ let
     };
     buildInputs = [ pkgs.gnupg1orig ];
     doCheck = false;
+    meta = {
+      description = "Perl interface to the GNU Privacy Guard";
+      mainProgram = "gpgmailtunl";
+    };
   };
 
   GnuPGInterface = buildPerlPackage {
     pname = "GnuPG-Interface";
-    version = "1.00";
+    version = "1.02";
     src = fetchurl {
-      url = "mirror://cpan/authors/id/J/JE/JESSE/GnuPG-Interface-1.00.tar.gz";
-      sha256 = "97e9c809491a061b2e99fb4e50c7bf74eb42e1deb11c64b081b21b4dbe6aec2f";
+      url = "mirror://cpan/authors/id/B/BP/BPS/GnuPG-Interface-1.02.tar.gz";
+      sha256 = "c27a48c3d48e1a9205e362eeea66d46b032bd84637991fdf0b13828bcafdd3e6";
     };
     buildInputs = [ pkgs.which pkgs.gnupg1compat ];
     propagatedBuildInputs = [ MooXHandlesVia MooXlate ];
@@ -9620,6 +9701,7 @@ let
     meta = {
       description = "Simple interface to Google Protocol Buffers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "protoc-perl";
     };
   };
 
@@ -9922,6 +10004,7 @@ let
       homepage = "https://github.com/hailo/hailo";
       description = "A pluggable Markov engine analogous to MegaHAL";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "hailo";
     };
   };
 
@@ -10082,6 +10165,7 @@ let
     meta = {
       description = "Cleans up HTML code for web browsers, not humans";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "htmlclean";
     };
   };
 
@@ -10121,6 +10205,9 @@ let
     };
     propagatedBuildInputs = [ HTMLParser TermVT102Boundless ];
     meta = {
+      description = "Mark up ANSI sequences as HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ansi2html";
     };
   };
 
@@ -10212,18 +10299,18 @@ let
   };
 
   HTMLFormFuMultiForm = buildPerlPackage {
-     pname = "HTML-FormFu-MultiForm";
-     version = "1.03";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
-       sha256 = "17qm94hwhn6jyhd2am4gqxq7yrlhv3jv0ayx17df95mqdgbhrw1n";
-     };
-     propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
-     meta = {
-       description = "Handle multi-page/stage forms with FormFu";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
-     };
+    pname = "HTML-FormFu-MultiForm";
+    version = "1.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NI/NIGELM/HTML-FormFu-MultiForm-1.03.tar.gz";
+      sha256 = "17qm94hwhn6jyhd2am4gqxq7yrlhv3jv0ayx17df95mqdgbhrw1n";
+    };
+    propagatedBuildInputs = [ CryptCBC CryptDES HTMLFormFu ];
+    meta = {
+      description = "Handle multi-page/stage forms with FormFu";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/FormFu/HTML-FormFu-MultiForm";
+    };
   };
 
   HTMLFormHandler = buildPerlPackage {
@@ -10437,6 +10524,11 @@ let
       sed -i "s#/usr/lib#${pkgs.tidyp}/lib#" Makefile.PL
     '';
     buildInputs = [ TestException ];
+    meta = {
+      description = "HTML::Tidy is an HTML checker in a handy dandy object";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "webtidy";
+    };
   };
 
   HTMLTiny = buildPerlPackage {
@@ -10474,6 +10566,7 @@ let
     meta = {
       description = "Work with HTML in a DOM-like tree structure";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "htmltree";
     };
   };
 
@@ -10594,19 +10687,19 @@ let
   };
 
   HTTPEntityParser = buildPerlModule {
-     pname = "HTTP-Entity-Parser";
-     version = "0.25";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
-       sha256 = "0fpchgj6jgxmjkmljjnrpmyj9anz85rjvs2fq3c7rld3rgcd131s";
-     };
-     propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
-     buildInputs = [ HTTPMessage ModuleBuildTiny ];
-     meta = {
-       description = "PSGI compliant HTTP Entity Parser";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
-     };
+    pname = "HTTP-Entity-Parser";
+    version = "0.25";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/HTTP-Entity-Parser-0.25.tar.gz";
+      sha256 = "0fpchgj6jgxmjkmljjnrpmyj9anz85rjvs2fq3c7rld3rgcd131s";
+    };
+    propagatedBuildInputs = [ HTTPMultiPartParser HashMultiValue JSONMaybeXS StreamBuffered WWWFormUrlEncoded ];
+    buildInputs = [ HTTPMessage ModuleBuildTiny ];
+    meta = {
+      description = "PSGI compliant HTTP Entity Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/kazeburo/HTTP-Entity-Parser";
+    };
   };
 
   HTTPDAV = buildPerlPackage {
@@ -10618,6 +10711,8 @@ let
     };
     meta = {
       description = "WebDAV client library.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "dave";
     };
     propagatedBuildInputs = [ XMLDOM ];
   };
@@ -10692,17 +10787,17 @@ let
   };
 
   HTTPMultiPartParser = buildPerlPackage {
-     pname = "HTTP-MultiPartParser";
-     version = "0.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
-       sha256 = "04hbs0b1lzv2c8dqfcc9qjm5akh25fn40903is36zlalkwaxmpay";
-     };
-     buildInputs = [ TestDeep ];
-     meta = {
-       description = "HTTP MultiPart Parser";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "HTTP-MultiPartParser";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/HTTP-MultiPartParser-0.02.tar.gz";
+      sha256 = "04hbs0b1lzv2c8dqfcc9qjm5akh25fn40903is36zlalkwaxmpay";
+    };
+    buildInputs = [ TestDeep ];
+    meta = {
+      description = "HTTP MultiPart Parser";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   HTTPNegotiate = buildPerlPackage {
@@ -10810,18 +10905,18 @@ let
   };
 
   HTTPServerSimplePSGI = buildPerlPackage {
-     pname = "HTTP-Server-Simple-PSGI";
-     version = "0.16";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
-       sha256 = "1fhx2glycd66m4l4m1gja81ixq8nh4r5g9wjhhkrffq4af2cnz2z";
-     };
-     propagatedBuildInputs = [ HTTPServerSimple ];
-     meta = {
-       description = "PSGI handler for HTTP::Server::Simple";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
-     };
+    pname = "HTTP-Server-Simple-PSGI";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/HTTP-Server-Simple-PSGI-0.16.tar.gz";
+      sha256 = "1fhx2glycd66m4l4m1gja81ixq8nh4r5g9wjhhkrffq4af2cnz2z";
+    };
+    propagatedBuildInputs = [ HTTPServerSimple ];
+    meta = {
+      description = "PSGI handler for HTTP::Server::Simple";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/miyagawa/HTTP-Server-Simple-PSGI";
+    };
   };
 
   HTTPTinyCache = buildPerlPackage {
@@ -10879,6 +10974,7 @@ let
     meta = {
       description = "Perl interface to the C library \"libpng\"";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pnginspect";
       broken = stdenv.isDarwin; # never built on Hydra https://hydra.nixos.org/job/nixpkgs/staging-next/perl534Packages.ImagePNGLibpng.x86_64-darwin
     };
   };
@@ -10970,6 +11066,7 @@ let
     meta = {
       description = "Read the dimensions of an image in several popular formats";
       license = with lib.licenses; [ artistic1 lgpl21Plus ];
+      mainProgram = "imgsize";
     };
   };
 
@@ -10993,6 +11090,7 @@ let
     meta = {
       description = "Read an image with tesseract ocr and get output";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ocr";
     };
   };
 
@@ -11063,6 +11161,7 @@ let
     meta = {
       description = "Asynchronous/Advanced Input/Output";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "treescan";
     };
   };
 
@@ -11149,6 +11248,7 @@ let
     meta = {
       description = "IO Interface to compressed data files/buffers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "streamzip";
     };
     # Same as CompressRawZlib
     doCheck = false && !stdenv.isDarwin;
@@ -11178,15 +11278,15 @@ let
   };
 
   IOHandleUtil = buildPerlModule {
-     pname = "IO-Handle-Util";
-     version = "0.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
-       sha256 = "1vncvsx53iiw1yy3drlk44hzx2pk5cial0h74djf9i6s2flndfcd";
-     };
-     propagatedBuildInputs = [ IOString SubExporter asa ];
-     meta = {
-     };
+    pname = "IO-Handle-Util";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/IO-Handle-Util-0.02.tar.gz";
+      sha256 = "1vncvsx53iiw1yy3drlk44hzx2pk5cial0h74djf9i6s2flndfcd";
+    };
+    propagatedBuildInputs = [ IOString SubExporter asa ];
+    meta = {
+    };
     buildInputs = [ ModuleBuildTiny TestSimple13 ];
   };
 
@@ -11242,6 +11342,10 @@ let
       sha256 = "15dimh3i61y6kybhbap91kwh9837xfww072rh95h7j40sb1did5w";
     };
     propagatedBuildInputs = [ pkgs.more FileWhich TermReadKey ]; # `more` used in tests
+    meta = {
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "tp";
+    };
   };
 
   IOPty = buildPerlModule {
@@ -11429,6 +11533,7 @@ let
     meta = {
       description = "Fast lookup of country codes from IP addresses";
       license = lib.licenses.mit;
+      mainProgram = "ip2cc";
     };
   };
 
@@ -11539,8 +11644,6 @@ let
       description = "A tool to read, write and edit EXIF meta information";
       homepage = "https://exiftool.org/";
 
-      mainProgram = "exiftool";
-
       longDescription = ''
         ExifTool is a platform-independent Perl library plus a command-line
         application for reading, writing and editing meta information in a wide
@@ -11554,8 +11657,8 @@ let
       '';
 
       license = with licenses; [ gpl1Plus /* or */ artistic2 ];
-
       maintainers = [ maintainers.kiloreux ];
+      mainProgram = "exiftool";
     };
   };
 
@@ -11658,17 +11761,17 @@ let
   };
 
   JavaScriptValueEscape = buildPerlModule {
-     pname = "JavaScript-Value-Escape";
-     version = "0.07";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
-       sha256 = "1p5365lvnax8kbcfrj169lx05af3i3qi5wg5x9mizqgd10vxmjws";
-     };
-     meta = {
-       description = "Avoid XSS with JavaScript value interpolation";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
-     };
+    pname = "JavaScript-Value-Escape";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/JavaScript-Value-Escape-0.07.tar.gz";
+      sha256 = "1p5365lvnax8kbcfrj169lx05af3i3qi5wg5x9mizqgd10vxmjws";
+    };
+    meta = {
+      description = "Avoid XSS with JavaScript value interpolation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/kazeburo/JavaScript-Value-Escape";
+    };
   };
 
   JSON = buildPerlPackage {
@@ -11741,6 +11844,7 @@ let
     meta = {
       description = "JSON::XS compatible pure-Perl module";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "json_pp";
     };
   };
 
@@ -11767,6 +11871,7 @@ let
     meta = {
       description = "Read JSON into a Perl variable";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "validjson";
     };
   };
 
@@ -11787,7 +11892,7 @@ let
     };
   };
 
- JSONWebToken = buildPerlModule {
+  JSONWebToken = buildPerlModule {
     pname = "JSON-WebToken";
     version = "0.10";
     src = fetchurl {
@@ -11812,6 +11917,11 @@ let
     };
     propagatedBuildInputs = [ TypesSerialiser ];
     buildInputs = [ CanaryStability ];
+    meta = {
+      description = "JSON serialising/deserialising, done correctly and fast";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "json_xs";
+    };
   };
 
   JSONXSVersionOneAndTwo = buildPerlPackage {
@@ -11874,6 +11984,7 @@ let
       homepage = "https://dlmf.nist.gov/LaTeXML/";
       license = lib.licenses.publicDomain;
       maintainers = with maintainers; [ xworld21 ];
+      mainProgram = "latexml";
     };
     passthru = {
       tlType = "run";
@@ -12001,17 +12112,17 @@ let
   };
 
   librelative = buildPerlPackage {
-     pname = "lib-relative";
-     version = "1.000";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.000.tar.gz";
-       sha256 = "1mvcdl87d3kyrdx4y6x79k3n5qdd1x5m1hp8lwjxvgfqbw0cgq6z";
-     };
-     meta = {
-       description = "Add paths relative to the current file to @INC";
-       license = with lib.licenses; [ artistic2 ];
-       homepage = "https://github.com/Grinnz/lib-relative";
-     };
+    pname = "lib-relative";
+    version = "1.000";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DB/DBOOK/lib-relative-1.000.tar.gz";
+      sha256 = "1mvcdl87d3kyrdx4y6x79k3n5qdd1x5m1hp8lwjxvgfqbw0cgq6z";
+    };
+    meta = {
+      description = "Add paths relative to the current file to @INC";
+      license = with lib.licenses; [ artistic2 ];
+      homepage = "https://github.com/Grinnz/lib-relative";
+    };
   };
 
   libxml_perl = buildPerlPackage {
@@ -12124,17 +12235,17 @@ let
   };
 
   LinguaPTStemmer = buildPerlPackage {
-     pname = "Lingua-PT-Stemmer";
-     version = "0.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
-       sha256 = "17c48sfbgwd2ivlgf59sr6jdhwa3aim8750f8pyzz7xpi8gz0var";
-     };
-     meta = {
-       description = "Portuguese language stemming";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
-     };
+    pname = "Lingua-PT-Stemmer";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-PT-Stemmer-0.02.tar.gz";
+      sha256 = "17c48sfbgwd2ivlgf59sr6jdhwa3aim8750f8pyzz7xpi8gz0var";
+    };
+    meta = {
+      description = "Portuguese language stemming";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/neilb/Lingua-PT-Stemmer";
+    };
   };
 
   LinguaStem = buildPerlModule {
@@ -12149,50 +12260,50 @@ let
   };
 
   LinguaStemFr = buildPerlPackage {
-     pname = "Lingua-Stem-Fr";
-     version = "0.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
-       sha256 = "0vyrspwzaqjxm5mqshf4wvwa3938mkajd1918d9ii2l9m2rn8kwx";
-     };
-     meta = {
-     };
+    pname = "Lingua-Stem-Fr";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SD/SDP/Lingua-Stem-Fr-0.02.tar.gz";
+      sha256 = "0vyrspwzaqjxm5mqshf4wvwa3938mkajd1918d9ii2l9m2rn8kwx";
+    };
+    meta = {
+    };
   };
 
   LinguaStemIt = buildPerlPackage {
-     pname = "Lingua-Stem-It";
-     version = "0.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
-       sha256 = "1207r183s5hlh4mfwa6p46vzm0dhvrs2dnss5s41a0gyfkxp7riq";
-     };
-     meta = {
-     };
+    pname = "Lingua-Stem-It";
+    version = "0.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AC/ACALPINI/Lingua-Stem-It-0.02.tar.gz";
+      sha256 = "1207r183s5hlh4mfwa6p46vzm0dhvrs2dnss5s41a0gyfkxp7riq";
+    };
+    meta = {
+    };
   };
 
   LinguaStemRu = buildPerlPackage {
-     pname = "Lingua-Stem-Ru";
-     version = "0.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
-       sha256 = "0a2jmdz7jn32qj5hyiw5kbv8fvlpmws8i00a6xcbkzb48yvwww0j";
-     };
-     meta = {
-       description = "Porter's stemming algorithm for Russian (KOI8-R only)";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/Lingua-Stem-Ru";
-     };
+    pname = "Lingua-Stem-Ru";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Lingua-Stem-Ru-0.04.tar.gz";
+      sha256 = "0a2jmdz7jn32qj5hyiw5kbv8fvlpmws8i00a6xcbkzb48yvwww0j";
+    };
+    meta = {
+      description = "Porter's stemming algorithm for Russian (KOI8-R only)";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/neilb/Lingua-Stem-Ru";
+    };
   };
 
   LinguaStemSnowballDa = buildPerlPackage {
-     pname = "Lingua-Stem-Snowball-Da";
-     version = "1.01";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
-       sha256 = "0mm0m7glm1s6i9f6a78jslw6wh573208arxhq93yriqmw17bwf9f";
-     };
-     meta = {
-     };
+    pname = "Lingua-Stem-Snowball-Da";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CI/CINE/Lingua-Stem-Snowball-Da-1.01.tar.gz";
+      sha256 = "0mm0m7glm1s6i9f6a78jslw6wh573208arxhq93yriqmw17bwf9f";
+    };
+    meta = {
+    };
   };
 
   LinguaTranslit = buildPerlPackage {
@@ -12203,6 +12314,11 @@ let
       sha256 = "113f91d8fc2c630437153a49fb7a52b023af8f6278ed96c070b1f60824b8eae1";
     };
     doCheck = false;
+    meta = {
+      description = "Transliterates text between writing systems";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "translit";
+    };
   };
 
   LinkEmbedder = buildPerlPackage {
@@ -12370,19 +12486,19 @@ let
   };
 
   ListMoreUtilsXS = buildPerlPackage {
-     pname = "List-MoreUtils-XS";
-     version = "0.430";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
-       sha256 = "0hmjkhmk1qlzbg8skq7g1zral07k1x0fk4w2fpcfr7hpgkaldkp8";
-     };
-     preConfigure = ''
-       export LD=$CC
-     '';
-     meta = {
-       description = "Provide the stuff missing in List::Util in XS";
-       license = with lib.licenses; [ asl20 ];
-     };
+    pname = "List-MoreUtils-XS";
+    version = "0.430";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/List-MoreUtils-XS-0.430.tar.gz";
+      sha256 = "0hmjkhmk1qlzbg8skq7g1zral07k1x0fk4w2fpcfr7hpgkaldkp8";
+    };
+    preConfigure = ''
+      export LD=$CC
+    '';
+    meta = {
+      description = "Provide the stuff missing in List::Util in XS";
+      license = with lib.licenses; [ asl20 ];
+    };
   };
 
   ListSomeUtils = buildPerlPackage {
@@ -12450,18 +12566,18 @@ let
   };
 
   LocaleMOFile = buildPerlPackage {
-     pname = "Locale-MO-File";
-     version = "0.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
-       sha256 = "0gsaaqimsh5bdhns2v67j1nvb178hx2536lxmr971cwxy31ns0wp";
-     };
-     propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
-     buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
-     meta = {
-       description = "Locale::MO::File - Write or read gettext MO files.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-MO-File";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-MO-File-0.09.tar.gz";
+      sha256 = "0gsaaqimsh5bdhns2v67j1nvb178hx2536lxmr971cwxy31ns0wp";
+    };
+    propagatedBuildInputs = [ ConstFast MooXStrictConstructor MooXTypesMooseLike ParamsValidate namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestHexDifferences TestNoWarnings ];
+    meta = {
+      description = "Locale::MO::File - Write or read gettext MO files.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LocaleMaketextFuzzy = buildPerlPackage {
@@ -12487,6 +12603,7 @@ let
     meta = {
       description = "Use other catalog formats in Maketext";
       license = "mit";
+      mainProgram = "xgettext.pl";
     };
   };
 
@@ -12517,78 +12634,78 @@ let
   };
 
   LocaleTextDomainOO = buildPerlPackage {
-     pname = "Locale-TextDomain-OO";
-     version = "1.036";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
-       sha256 = "0f0fajq4k1sgyywsb7qypsf6xa1sxjx4agm8l8z2284nm3hq65xm";
-     };
-     propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
-     buildInputs = [ TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-TextDomain-OO";
+    version = "1.036";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-1.036.tar.gz";
+      sha256 = "0f0fajq4k1sgyywsb7qypsf6xa1sxjx4agm8l8z2284nm3hq65xm";
+    };
+    propagatedBuildInputs = [ ClassLoad Clone JSON LocaleMOFile LocalePO LocaleTextDomainOOUtil LocaleUtilsPlaceholderBabelFish LocaleUtilsPlaceholderMaketext LocaleUtilsPlaceholderNamed MooXSingleton PathTiny TieSub ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::TextDomain::OO - Perl OO Interface to Uniforum Message Translation";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LocaleTextDomainOOUtil = buildPerlPackage {
-     pname = "Locale-TextDomain-OO-Util";
-     version = "4.002";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
-       sha256 = "1826pl11vr9p7zv7vqs7kcd8y5218086l90dw8lw0xzdcmzs0prw";
-     };
-     propagatedBuildInputs = [ namespaceautoclean ];
-     buildInputs = [ TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Locale::TextDomain::OO::Util - Lexicon utils";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-TextDomain-OO-Util";
+    version = "4.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-TextDomain-OO-Util-4.002.tar.gz";
+      sha256 = "1826pl11vr9p7zv7vqs7kcd8y5218086l90dw8lw0xzdcmzs0prw";
+    };
+    propagatedBuildInputs = [ namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::TextDomain::OO::Util - Lexicon utils";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LocaleUtilsPlaceholderBabelFish = buildPerlPackage {
-     pname = "Locale-Utils-PlaceholderBabelFish";
-     version = "0.006";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
-       sha256 = "1k54njj8xz19c8bjb0iln1mnfq55j3pvbff7samyrab3k59h071f";
-     };
-     propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
-     buildInputs = [ TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-Utils-PlaceholderBabelFish";
+    version = "0.006";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderBabelFish-0.006.tar.gz";
+      sha256 = "1k54njj8xz19c8bjb0iln1mnfq55j3pvbff7samyrab3k59h071f";
+    };
+    propagatedBuildInputs = [ HTMLParser MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderBabelFish - Utils to expand BabelFish palaceholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LocaleUtilsPlaceholderMaketext = buildPerlPackage {
-     pname = "Locale-Utils-PlaceholderMaketext";
-     version = "1.005";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
-       sha256 = "1srlbp8sfnzhndgh9s4d8bglpzw0vb8gnab9r8r8sggkv15n0a2h";
-     };
-     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
-     buildInputs = [ TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-Utils-PlaceholderMaketext";
+    version = "1.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderMaketext-1.005.tar.gz";
+      sha256 = "1srlbp8sfnzhndgh9s4d8bglpzw0vb8gnab9r8r8sggkv15n0a2h";
+    };
+    propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderMaketext - Utils to expand maketext placeholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LocaleUtilsPlaceholderNamed = buildPerlPackage {
-     pname = "Locale-Utils-PlaceholderNamed";
-     version = "1.004";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
-       sha256 = "1gd68lm5w5c6ndcilx91rn84zviqyrk3fx92jjx5khxm76i8xmvg";
-     };
-     propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
-     buildInputs = [ TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Locale-Utils-PlaceholderNamed";
+    version = "1.004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Locale-Utils-PlaceholderNamed-1.004.tar.gz";
+      sha256 = "1gd68lm5w5c6ndcilx91rn84zviqyrk3fx92jjx5khxm76i8xmvg";
+    };
+    propagatedBuildInputs = [ MooXStrictConstructor MooXTypesMooseLike namespaceautoclean ];
+    buildInputs = [ TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Locale::Utils::PlaceholderNamed - Utils to expand named placeholders";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   locallib = buildPerlPackage {
@@ -12749,17 +12866,17 @@ let
   };
 
   LogMessageSimple = buildPerlPackage {
-     pname = "Log-Message-Simple";
-     version = "0.10";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
-       sha256 = "15nxi935nfrf8dkdrgvcrf2qlai4pbz03yj8sja0n9mcq2jd24ma";
-     };
-     propagatedBuildInputs = [ LogMessage ];
-     meta = {
-       description = "Simplified interface to Log::Message";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Log-Message-Simple";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Log-Message-Simple-0.10.tar.gz";
+      sha256 = "15nxi935nfrf8dkdrgvcrf2qlai4pbz03yj8sja0n9mcq2jd24ma";
+    };
+    propagatedBuildInputs = [ LogMessage ];
+    meta = {
+      description = "Simplified interface to Log::Message";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LogTrace = buildPerlPackage {
@@ -12772,17 +12889,17 @@ let
   };
 
   MCE = buildPerlPackage {
-     pname = "MCE";
-     version = "1.874";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.874.tar.gz";
-       sha256 = "1l6khsmwzfr88xb81kdvmdskxgz3pm4yz2ybxkbml4bmhh0y62fq";
-     };
-     meta = {
-       description = "Many-Core Engine for Perl providing parallel processing capabilities";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/marioroy/mce-perl";
-     };
+    pname = "MCE";
+    version = "1.874";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARIOROY/MCE-1.874.tar.gz";
+      sha256 = "1l6khsmwzfr88xb81kdvmdskxgz3pm4yz2ybxkbml4bmhh0y62fq";
+    };
+    meta = {
+      description = "Many-Core Engine for Perl providing parallel processing capabilities";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/marioroy/mce-perl";
+    };
   };
 
   LogLog4perl = buildPerlPackage {
@@ -12796,6 +12913,7 @@ let
       homepage = "https://mschilli.github.io/log4perl/";
       description = "Log4j implementation for Perl";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "l4p-tmpl";
     };
   };
 
@@ -12958,17 +13076,17 @@ let
   };
 
   LWPProtocolhttp10 = buildPerlPackage {
-     pname = "LWP-Protocol-http10";
-     version = "6.03";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
-       sha256 = "1lxq40qfwfai9ryhzhsdnycc4189c8kfl43rf7qq34fmz48skzzk";
-     };
-     propagatedBuildInputs = [ LWP ];
-     meta = {
-       description = "Legacy HTTP/1.0 support for LWP";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "LWP-Protocol-http10";
+    version = "6.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/G/GA/GAAS/LWP-Protocol-http10-6.03.tar.gz";
+      sha256 = "1lxq40qfwfai9ryhzhsdnycc4189c8kfl43rf7qq34fmz48skzzk";
+    };
+    propagatedBuildInputs = [ LWP ];
+    meta = {
+      description = "Legacy HTTP/1.0 support for LWP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   LWPUserAgentCached = buildPerlPackage {
@@ -13049,12 +13167,13 @@ let
       url = "mirror://cpan/authors/id/W/WY/WYANT/Mac-Pasteboard-0.011.tar.gz";
       sha256 = "1a82pacp6pph3y2agdihzr4vc0phx85mq5am9czc81g8n484b35x";
     };
+    buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
     meta = with lib; {
       description = "Manipulate Mac OS X pasteboards";
       license = with licenses; [ artistic1 gpl1Plus ];
       platforms = platforms.darwin;
+      mainProgram = "pbtool";
     };
-    buildInputs = [ pkgs.darwin.apple_sdk.frameworks.ApplicationServices ];
   };
 
   MailAuthenticationResults = buildPerlPackage {
@@ -13112,17 +13231,17 @@ let
   };
 
   MailMessage = buildPerlPackage {
-     pname = "Mail-Message";
-     version = "3.010";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.010.tar.gz";
-       sha256 = "04wblxrkcjwn7hw6vkvf307lbpc9blj1glqmm59q3642wcd4nhaq";
-     };
-     propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
-     meta = {
-       description = "Processing MIME messages";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Mail-Message";
+    version = "3.010";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Message-3.010.tar.gz";
+      sha256 = "04wblxrkcjwn7hw6vkvf307lbpc9blj1glqmm59q3642wcd4nhaq";
+    };
+    propagatedBuildInputs = [ IOStringy MIMETypes MailTools URI UserIdentity ];
+    meta = {
+      description = "Processing MIME messages";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MailDKIM = buildPerlPackage {
@@ -13222,6 +13341,7 @@ let
     meta = {
       description = "An object-oriented implementation of Sender Policy Framework";
       license = lib.licenses.bsd3;
+      mainProgram = "spfquery";
     };
   };
 
@@ -13241,17 +13361,17 @@ let
   };
 
   MailTransport = buildPerlPackage {
-     pname = "Mail-Transport";
-     version = "3.005";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
-       sha256 = "18wna71iyrgn63l7samacvnx2a5ydpcffkg313c8a4jwf0zvkp6h";
-     };
-     propagatedBuildInputs = [ MailMessage ];
-     meta = {
-       description = "Email message exchange";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Mail-Transport";
+    version = "3.005";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/Mail-Transport-3.005.tar.gz";
+      sha256 = "18wna71iyrgn63l7samacvnx2a5ydpcffkg313c8a4jwf0zvkp6h";
+    };
+    propagatedBuildInputs = [ MailMessage ];
+    meta = {
+      description = "Email message exchange";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MathBase85 = buildPerlPackage {
@@ -13311,6 +13431,7 @@ let
     meta = {
       description = "Human-readable unit-aware calculator";
       license = with lib.licenses; [ artistic1 gpl2 ];
+      mainProgram = "ucalc";
     };
   };
 
@@ -13342,16 +13463,16 @@ let
   };
 
   MathBigIntLite = buildPerlPackage {
-     pname = "Math-BigInt-Lite";
-     version = "0.19";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.19.tar.gz";
-       sha256 = "06hm4vgihxr7m4jrq558phnnxy4am6ifba447j0h4p6jym5h7xih";
-     };
-     propagatedBuildInputs = [ MathBigInt ];
-     meta = {
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Math-BigInt-Lite";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PJ/PJACKLAM/Math-BigInt-Lite-0.19.tar.gz";
+      sha256 = "06hm4vgihxr7m4jrq558phnnxy4am6ifba447j0h4p6jym5h7xih";
+    };
+    propagatedBuildInputs = [ MathBigInt ];
+    meta = {
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MathClipper = buildPerlModule {
@@ -13689,17 +13810,17 @@ let
   };
 
   MemoizeExpireLRU = buildPerlPackage {
-     pname = "Memoize-ExpireLRU";
-     version = "0.56";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
-       sha256 = "1xnp3jqabl4il5kfadlqimbxhzsbm7gpwrgw0m5s5fdsrc0n70zf";
-     };
-     meta = {
-       description = "Expiry plug-in for Memoize that adds LRU cache expiration";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/Memoize-ExpireLRU";
-     };
+    pname = "Memoize-ExpireLRU";
+    version = "0.56";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Memoize-ExpireLRU-0.56.tar.gz";
+      sha256 = "1xnp3jqabl4il5kfadlqimbxhzsbm7gpwrgw0m5s5fdsrc0n70zf";
+    };
+    meta = {
+      description = "Expiry plug-in for Memoize that adds LRU cache expiration";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/neilb/Memoize-ExpireLRU";
+    };
   };
 
   Menlo = buildPerlPackage {
@@ -13757,7 +13878,7 @@ let
     # Most tests are online, so we only include offline tests
     postPatch = ''
       substituteInPlace Makefile.PL \
-         --replace '"t/*.t t/api/*.t"' \
+        --replace '"t/*.t t/api/*.t"' \
         '"t/00-report-prereqs.t t/api/_get.t t/api/_get_or_search.t t/api/_search.t t/entity.t t/request.t t/resultset.t"'
     '';
 
@@ -13819,6 +13940,7 @@ let
       homepage = "https://www.mhonarc.org/";
       description = "A mail-to-HTML converter";
       maintainers = with maintainers; [ lovek323 ];
+      mainProgram = "mhonarc";
       license = licenses.gpl2;
     };
   };
@@ -13845,6 +13967,10 @@ let
     };
     outputs = [ "out" ];
     buildInputs = [ ProcWaitStat ];
+    meta = {
+      description = "Construct and optionally mail MIME messages";
+      license = lib.licenses.gpl2Plus;
+    };
   };
 
   MIMEEncWords = buildPerlPackage {
@@ -14001,30 +14127,31 @@ let
   MNI-Perllib = callPackage ../development/perl-modules/MNI {};
 
   Mo = buildPerlPackage {
-     pname = "Mo";
-     version = "0.40";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
-       sha256 = "1fff81awg9agfawf3wxx0gpf6vgav8w920rmxsbjg30z75943lli";
-     };
-     meta = {
-       description = "Micro Objects. Mo is less.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/ingydotnet/mo-pm";
-     };
+    pname = "Mo";
+    version = "0.40";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TI/TINITA/Mo-0.40.tar.gz";
+      sha256 = "1fff81awg9agfawf3wxx0gpf6vgav8w920rmxsbjg30z75943lli";
+    };
+    meta = {
+      description = "Micro Objects. Mo is less.";
+      homepage = "https://github.com/ingydotnet/mo-pm";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mo-inline";
+    };
   };
 
   MockConfig = buildPerlPackage {
-     pname = "Mock-Config";
-     version = "0.03";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
-       sha256 = "06q0xkg5cwdwafzmb9rkaa305ddv7vli9gpm6n9jnkyaaxbk9f55";
-     };
-     meta = {
-       description = "temporarily set Config or XSConfig values";
-       license = with lib.licenses; [ artistic1 gpl1Plus artistic2 ];
-     };
+    pname = "Mock-Config";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RU/RURBAN/Mock-Config-0.03.tar.gz";
+      sha256 = "06q0xkg5cwdwafzmb9rkaa305ddv7vli9gpm6n9jnkyaaxbk9f55";
+    };
+    meta = {
+      description = "temporarily set Config or XSConfig values";
+      license = with lib.licenses; [ artistic1 gpl1Plus artistic2 ];
+    };
   };
 
   ModernPerl = buildPerlPackage {
@@ -14069,6 +14196,7 @@ let
     meta = {
       description = "Build and install Perl modules";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "config_data";
     };
   };
 
@@ -14190,49 +14318,49 @@ let
   };
 
   ModuleCPANTSAnalyse = buildPerlPackage {
-     pname = "Module-CPANTS-Analyse";
-     version = "1.01";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.01.tar.gz";
-       sha256 = "0jf83v9ylw7s9i2zv0l1v11gafp3k4389asc52r6s6q5s2j0p6dx";
-     };
-     propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff DataBinary FileFindObject PerlPrereqScannerNotQuiteLite SoftwareLicense ];
-     buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
-     meta = {
-       description = "Generate Kwalitee ratings for a distribution";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://cpants.cpanauthors.org";
-     };
+    pname = "Module-CPANTS-Analyse";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Module-CPANTS-Analyse-1.01.tar.gz";
+      sha256 = "0jf83v9ylw7s9i2zv0l1v11gafp3k4389asc52r6s6q5s2j0p6dx";
+    };
+    propagatedBuildInputs = [ ArchiveAnyLite ArrayDiff DataBinary FileFindObject PerlPrereqScannerNotQuiteLite SoftwareLicense ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestFailWarnings ];
+    meta = {
+      description = "Generate Kwalitee ratings for a distribution";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://cpants.cpanauthors.org";
+    };
   };
 
   ModuleCPANfile = buildPerlPackage {
-     pname = "Module-CPANfile";
-     version = "1.1004";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
-       sha256 = "08a9a5mybf0llwlfvk7n0q7az6lrrzgzwc3432mcwbb4k8pbxvw8";
-     };
-     meta = {
-       description = "Parse cpanfile";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/cpanfile";
-     };
+    pname = "Module-CPANfile";
+    version = "1.1004";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Module-CPANfile-1.1004.tar.gz";
+      sha256 = "08a9a5mybf0llwlfvk7n0q7az6lrrzgzwc3432mcwbb4k8pbxvw8";
+    };
+    meta = {
+      description = "Parse cpanfile";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/miyagawa/cpanfile";
+    };
     buildInputs = [ Filepushd ];
   };
 
   ModuleExtractUse = buildPerlModule {
-     pname = "Module-ExtractUse";
-     version = "0.343";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.343.tar.gz";
-       sha256 = "00hcggwnqk953s4zbvkcabd5mfidg60hawlqsw6146in91dlclj8";
-     };
-     propagatedBuildInputs = [ ParseRecDescent PodStrip ];
-     buildInputs = [ TestDeep TestNoWarnings ];
-     meta = {
-       description = "Find out what modules are used";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Module-ExtractUse";
+    version = "0.343";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOMM/Module-ExtractUse-0.343.tar.gz";
+      sha256 = "00hcggwnqk953s4zbvkcabd5mfidg60hawlqsw6146in91dlclj8";
+    };
+    propagatedBuildInputs = [ ParseRecDescent PodStrip ];
+    buildInputs = [ TestDeep TestNoWarnings ];
+    meta = {
+      description = "Find out what modules are used";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ModuleFind = buildPerlPackage {
@@ -14274,6 +14402,7 @@ let
     meta = {
       description = "Information about Perl modules";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "module_info";
     };
     propagatedBuildInputs = [ BUtils ];
   };
@@ -14413,6 +14542,7 @@ let
       homepage = "https://github.com/neilbowers/Module-Path";
       description = "Get the full path to a locally installed module";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mpath";
     };
   };
 
@@ -14497,6 +14627,7 @@ let
     meta = {
       description = "Recursively scan Perl code for dependencies";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scandeps.pl";
     };
   };
 
@@ -14511,6 +14642,7 @@ let
     meta = {
       description = "Module signature file manipulation";
       license = lib.licenses.cc0;
+      mainProgram = "cpansign";
     };
   };
 
@@ -14524,6 +14656,7 @@ let
     meta = {
       description = "Module name tools and transformations";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pm_which";
     };
   };
 
@@ -14583,6 +14716,7 @@ let
     meta = {
       description = "Embed a Perl interpreter in the Apache HTTP server";
       license = lib.licenses.asl20;
+      mainProgram = "mp2bug";
     };
 
     passthru.tests = nixosTests.mod_perl;
@@ -14600,6 +14734,7 @@ let
       description = "Real-time web framework";
       license = lib.licenses.artistic2;
       maintainers = with maintainers; [ thoughtpolice sgo ];
+      mainProgram = "mojo";
     };
   };
 
@@ -14964,6 +15099,7 @@ let
       description = "A postmodern object system for Perl 5";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.eelco ];
+      mainProgram = "moose-outdated";
     };
   };
 
@@ -14983,77 +15119,77 @@ let
   };
 
   MooXLocalePassthrough = buildPerlPackage {
-     pname = "MooX-Locale-Passthrough";
-     version = "0.001";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
-       sha256 = "04h5xhqdvydd4xk9ckb6a79chn0ygf915ix55vg1snmba9z841bs";
-     };
-     propagatedBuildInputs = [ Moo ];
-     meta = {
-       description = "provide API used in translator modules without translating";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-Locale-Passthrough";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-Passthrough-0.001.tar.gz";
+      sha256 = "04h5xhqdvydd4xk9ckb6a79chn0ygf915ix55vg1snmba9z841bs";
+    };
+    propagatedBuildInputs = [ Moo ];
+    meta = {
+      description = "provide API used in translator modules without translating";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXLocaleTextDomainOO = buildPerlPackage {
-     pname = "MooX-Locale-TextDomain-OO";
-     version = "0.001";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
-       sha256 = "0g8pwj45ccqrzvs9cqyhw29nm68vai1vj46ad39rajnqzp7m53jv";
-     };
-     propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
-     meta = {
-       description = "provide API used in translator modules without translating";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-Locale-TextDomain-OO";
+    version = "0.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Locale-TextDomain-OO-0.001.tar.gz";
+      sha256 = "0g8pwj45ccqrzvs9cqyhw29nm68vai1vj46ad39rajnqzp7m53jv";
+    };
+    propagatedBuildInputs = [ LocaleTextDomainOO MooXLocalePassthrough ];
+    meta = {
+      description = "provide API used in translator modules without translating";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXOptions = buildPerlPackage {
-     pname = "MooX-Options";
-     version = "4.103";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
-       sha256 = "0v9j0wxx4f6z6lrmdqf2k084b2c2f2jbvh86pwib0vgjz1sdbyad";
-     };
-     propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
-     buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
-     preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
-     meta = {
-       description = "Explicit Options eXtension for Object Class";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-Options";
+    version = "4.103";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Options-4.103.tar.gz";
+      sha256 = "0v9j0wxx4f6z6lrmdqf2k084b2c2f2jbvh86pwib0vgjz1sdbyad";
+    };
+    propagatedBuildInputs = [ GetoptLongDescriptive MROCompat MooXLocalePassthrough PathClass UnicodeLineBreak strictures ];
+    buildInputs = [ Mo MooXCmd MooXLocaleTextDomainOO Moose TestTrap ];
+    preCheck = "rm t/16-namespace_clean.t"; # https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=942275
+    meta = {
+      description = "Explicit Options eXtension for Object Class";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXSingleton = buildPerlModule {
-     pname = "MooX-Singleton";
-     version = "1.20";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
-       sha256 = "03i1wfag279ldjjkwi9gvpfs8fgi05my47icq5ggi66yzxpn5mzp";
-     };
-     propagatedBuildInputs = [ RoleTiny ];
-     buildInputs = [ Moo ];
-     meta = {
-       description = "turn your Moo class into singleton";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-Singleton";
+    version = "1.20";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AJ/AJGB/MooX-Singleton-1.20.tar.gz";
+      sha256 = "03i1wfag279ldjjkwi9gvpfs8fgi05my47icq5ggi66yzxpn5mzp";
+    };
+    propagatedBuildInputs = [ RoleTiny ];
+    buildInputs = [ Moo ];
+    meta = {
+      description = "turn your Moo class into singleton";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXStrictConstructor = buildPerlPackage {
-     pname = "MooX-StrictConstructor";
-     version = "0.011";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
-       sha256 = "1qjkqrmzgz7lxhv14klsv0v9v6blf8js86d47ah24kpw5y12yf6s";
-     };
-     propagatedBuildInputs = [ Moo strictures ];
-     buildInputs = [ TestFatal ];
-     meta = {
-       description = "Make your Moo-based object constructors blow up on unknown attributes.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-StrictConstructor";
+    version = "0.011";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/H/HA/HARTZELL/MooX-StrictConstructor-0.011.tar.gz";
+      sha256 = "1qjkqrmzgz7lxhv14klsv0v9v6blf8js86d47ah24kpw5y12yf6s";
+    };
+    propagatedBuildInputs = [ Moo strictures ];
+    buildInputs = [ TestFatal ];
+    meta = {
+      description = "Make your Moo-based object constructors blow up on unknown attributes.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXTypesMooseLike = buildPerlPackage {
@@ -15201,18 +15337,18 @@ let
   };
 
   MooXCmd = buildPerlPackage {
-     pname = "MooX-Cmd";
-     version = "0.017";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
-       sha256 = "1xbhmq07v9z371ygkyghva9aryhc22kwbzn5qwkp72c0ma6z4gwl";
-     };
-     propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
-     buildInputs = [ CaptureTiny ];
-     meta = {
-       description = "Giving an easy Moo style way to make command organized CLI apps";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "MooX-Cmd";
+    version = "0.017";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RE/REHSACK/MooX-Cmd-0.017.tar.gz";
+      sha256 = "1xbhmq07v9z371ygkyghva9aryhc22kwbzn5qwkp72c0ma6z4gwl";
+    };
+    propagatedBuildInputs = [ ListMoreUtils ModulePluggable Moo PackageStash ParamsUtil RegexpCommon ];
+    buildInputs = [ CaptureTiny ];
+    meta = {
+      description = "Giving an easy Moo style way to make command organized CLI apps";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   MooXlate = buildPerlPackage {
@@ -15627,6 +15763,7 @@ let
       homepage = "https://github.com/moose/MooseX-Runnable";
       description = "Tag a class as a runnable application";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mx-run";
     };
   };
 
@@ -16040,6 +16177,7 @@ let
       description = "Generates a database upgrade instruction set";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      mainProgram = "mysqldiff";
     };
   };
 
@@ -16167,6 +16305,7 @@ let
     meta = {
       description = "Use the Amazon S3 - Simple Storage Service";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "s3cl";
     };
   };
 
@@ -16313,10 +16452,10 @@ let
     propagatedBuildInputs = [ XMLTwig ];
 
     # https://gitlab.com/berrange/perl-net-dbus/-/merge_requests/19
-    patches = (fetchpatch {
+    patches = fetchpatch {
       url = "https://gitlab.com/berrange/perl-net-dbus/-/commit/6bac8f188fb06e5e5edd27aee672d66b7c28caa4.patch";
       sha256 = "19nf4xn9xhyd0sd2az9iliqldjj0k6ah2dmkyqyvq4rp2d9k5jgb";
-    });
+    };
 
     postPatch = ''
       substituteInPlace Makefile.PL --replace pkg-config $PKG_CONFIG
@@ -16345,17 +16484,17 @@ let
   };
 
   NetDNSResolverMock = buildPerlPackage {
-     pname = "Net-DNS-Resolver-Mock";
-     version = "1.20200215";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20200215.tar.gz";
-       sha256 = "1rv745c16l3m3w6xx2hjmmgzkdklmzm9imdfiddmdr9hwm8g3xxy";
-     };
-     propagatedBuildInputs = [ NetDNS ];
-     meta = {
-       description = "Mock a DNS Resolver object for testing";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Net-DNS-Resolver-Mock";
+    version = "1.20200215";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-1.20200215.tar.gz";
+      sha256 = "1rv745c16l3m3w6xx2hjmmgzkdklmzm9imdfiddmdr9hwm8g3xxy";
+    };
+    propagatedBuildInputs = [ NetDNS ];
+    meta = {
+      description = "Mock a DNS Resolver object for testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
     buildInputs = [ TestException ];
   };
 
@@ -16373,17 +16512,17 @@ let
   };
 
   NetFastCGI = buildPerlPackage {
-     pname = "Net-FastCGI";
-     version = "0.14";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
-       sha256 = "0sjrnlzci21sci5m52zz0x9bf889j67i6vnhrjlypsfm9w5914qi";
-     };
-     buildInputs = [ TestException TestHexString ];
-     meta = {
-       description = "FastCGI Toolkit";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Net-FastCGI";
+    version = "0.14";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHANSEN/Net-FastCGI-0.14.tar.gz";
+      sha256 = "0sjrnlzci21sci5m52zz0x9bf889j67i6vnhrjlypsfm9w5914qi";
+    };
+    buildInputs = [ TestException TestHexString ];
+    meta = {
+      description = "FastCGI Toolkit";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   NetFrame = buildPerlModule {
@@ -16526,6 +16665,9 @@ let
       sha256 = "1zk3591822dg187sgkwjjvg18qmvkn3yib1c34mq8z5i617xwi9q";
     };
     meta = {
+      description = "Perl extension for manipulating IPv4 addresses";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "ipv4calc";
     };
   };
 
@@ -16691,6 +16833,8 @@ let
     doCheck = false; # seems to hang waiting for connections
     meta = {
       description = "Extensible, general Perl server engine";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "net-server";
     };
   };
 
@@ -16712,35 +16856,35 @@ let
   };
 
   NetServerCoro = buildPerlPackage {
-     pname = "Net-Server-Coro";
-     version = "1.3";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
-       sha256 = "11pvfxsi0q37kd17z597wb8r9dv3r96fiagq57kc746k1lmp06hy";
-     };
-     propagatedBuildInputs = [ Coro NetServer ];
-     meta = {
-       description = "A co-operative multithreaded server using Coro";
-       license = with lib.licenses; [ mit ];
-     };
+    pname = "Net-Server-Coro";
+    version = "1.3";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AL/ALEXMV/Net-Server-Coro-1.3.tar.gz";
+      sha256 = "11pvfxsi0q37kd17z597wb8r9dv3r96fiagq57kc746k1lmp06hy";
+    };
+    propagatedBuildInputs = [ Coro NetServer ];
+    meta = {
+      description = "A co-operative multithreaded server using Coro";
+      license = with lib.licenses; [ mit ];
+    };
   };
 
   NetServerSSPrefork = buildPerlPackage {
-     pname = "Net-Server-SS-PreFork";
-     version = "0.06pre";
-     src = fetchFromGitHub {
-       owner = "kazuho";
-       repo = "p5-Net-Server-SS-PreFork";
-       rev = "5fccc0c270e25c65ef634304630af74b48807d21";
-       sha256 = "0z02labw0dd76sdf301bhrmgnsjds0ddsg22138g8ys4az49bxx6";
-     };
-     checkInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
-     buildInputs = [ ModuleInstall ];
-     propagatedBuildInputs = [ NetServer ServerStarter ];
-     meta = {
-       description = "A hot-deployable variant of Net::Server::PreFork";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Net-Server-SS-PreFork";
+    version = "0.06pre";
+    src = fetchFromGitHub {
+      owner = "kazuho";
+      repo = "p5-Net-Server-SS-PreFork";
+      rev = "5fccc0c270e25c65ef634304630af74b48807d21";
+      sha256 = "0z02labw0dd76sdf301bhrmgnsjds0ddsg22138g8ys4az49bxx6";
+    };
+    checkInputs = [ HTTPMessage LWP TestSharedFork HTTPServerSimple TestTCP TestUNIXSock ];
+    buildInputs = [ ModuleInstall ];
+    propagatedBuildInputs = [ NetServer ServerStarter ];
+    meta = {
+      description = "A hot-deployable variant of Net::Server::PreFork";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   NetSMTPSSL = buildPerlPackage {
@@ -16781,6 +16925,11 @@ let
       sha256 = "0hdpn1cw52x8cw24m9ayzpf4rwarm0khygn1sv3wvwxkrg0pphql";
     };
     doCheck = false; # The test suite fails, see https://rt.cpan.org/Public/Bug/Display.html?id=85799
+    meta = {
+      description = "Object oriented interface to SNMP";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "snmpkey";
+    };
   };
 
   NetSNPP = buildPerlPackage rec {
@@ -16862,6 +17011,7 @@ let
     meta = {
       description = "Sends statistics to the stats daemon over UDP";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "benchmark.pl";
     };
   };
 
@@ -16972,16 +17122,16 @@ let
   };
 
   NumberMisc = buildPerlModule {
-     pname = "Number-Misc";
-     version = "1.2";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
-       sha256 = "1n4ivj4ydplanwbxn3jbsfyfcl91ngn2d0addzqrq1hac26bdfbp";
-     };
-     meta = {
-       description = "Number::Misc - handy utilities for numbers";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Number-Misc";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Number-Misc-1.2.tar.gz";
+      sha256 = "1n4ivj4ydplanwbxn3jbsfyfcl91ngn2d0addzqrq1hac26bdfbp";
+    };
+    meta = {
+      description = "Number::Misc - handy utilities for numbers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   NumberPhone = buildPerlPackage {
@@ -17298,6 +17448,7 @@ let
     meta = {
       description = "Routines for manipulating stashes";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "package-stash-conflicts";
     };
   };
 
@@ -17418,18 +17569,18 @@ let
   };
 
   ParamsValidationCompiler = buildPerlPackage {
-     pname = "Params-ValidationCompiler";
-     version = "0.30";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.30.tar.gz";
-       sha256 = "1jqn1l4m4i341g14kmjsf3a1kn7vv6z89cix0xjjgr1v70iywnyw";
-     };
-     propagatedBuildInputs = [ EvalClosure ExceptionClass ];
-     buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
-     meta = {
-       description = "Build an optimized subroutine parameter validator once, use it forever";
-       license = with lib.licenses; [ artistic2 ];
-     };
+    pname = "Params-ValidationCompiler";
+    version = "0.30";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Params-ValidationCompiler-0.30.tar.gz";
+      sha256 = "1jqn1l4m4i341g14kmjsf3a1kn7vv6z89cix0xjjgr1v70iywnyw";
+    };
+    propagatedBuildInputs = [ EvalClosure ExceptionClass ];
+    buildInputs = [ Specio Test2PluginNoWarnings Test2Suite TestWithoutModule ];
+    meta = {
+      description = "Build an optimized subroutine parameter validator once, use it forever";
+      license = with lib.licenses; [ artistic2 ];
+    };
   };
 
   Paranoid = buildPerlPackage {
@@ -17465,19 +17616,20 @@ let
   };
 
   PAUSEPermissions = buildPerlPackage {
-     pname = "PAUSE-Permissions";
-     version = "0.17";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
-       sha256 = "021ink414w4mdk6rd54cc1f23kfqg0zk4njx4ngr0bw3wc6r4kks";
-     };
-     propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
-     buildInputs = [ PathTiny ];
-     meta = {
-       description = "interface to PAUSE's module permissions file (06perms.txt)";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/PAUSE-Permissions";
-     };
+    pname = "PAUSE-Permissions";
+    version = "0.17";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/PAUSE-Permissions-0.17.tar.gz";
+      sha256 = "021ink414w4mdk6rd54cc1f23kfqg0zk4njx4ngr0bw3wc6r4kks";
+    };
+    propagatedBuildInputs = [ FileHomeDir HTTPDate MooXOptions TimeDurationParse ];
+    buildInputs = [ PathTiny ];
+    meta = {
+      description = "interface to PAUSE's module permissions file (06perms.txt)";
+      homepage = "https://github.com/neilb/PAUSE-Permissions";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pause-permissions";
+    };
   };
 
   Parent = buildPerlPackage {
@@ -17518,18 +17670,18 @@ let
   };
 
   ParseLocalDistribution = buildPerlPackage {
-     pname = "Parse-LocalDistribution";
-     version = "0.19";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
-       sha256 = "17p92nj4k3acrqqjnln1j5x8hbra9jkx5hdcybrq37ld9qnc62vb";
-     };
-     propagatedBuildInputs = [ ParsePMFile ];
-     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
-     meta = {
-       description = "parses local .pm files as PAUSE does";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Parse-LocalDistribution";
+    version = "0.19";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-LocalDistribution-0.19.tar.gz";
+      sha256 = "17p92nj4k3acrqqjnln1j5x8hbra9jkx5hdcybrq37ld9qnc62vb";
+    };
+    propagatedBuildInputs = [ ParsePMFile ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "parses local .pm files as PAUSE does";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ParsePlainConfig = buildPerlPackage {
@@ -17548,17 +17700,17 @@ let
   };
 
   ParsePMFile = buildPerlPackage {
-     pname = "Parse-PMFile";
-     version = "0.43";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.43.tar.gz";
-       sha256 = "08q6j1lw5l49yhzx8gm4zal7zp1gk58iacpda86cyf27403yhqdy";
-     };
-     buildInputs = [ ExtUtilsMakeMakerCPANfile ];
-     meta = {
-       description = "parses .pm file as PAUSE does";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Parse-PMFile";
+    version = "0.43";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.43.tar.gz";
+      sha256 = "08q6j1lw5l49yhzx8gm4zal7zp1gk58iacpda86cyf27403yhqdy";
+    };
+    buildInputs = [ ExtUtilsMakeMakerCPANfile ];
+    meta = {
+      description = "parses .pm file as PAUSE does";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   ParseRecDescent = buildPerlModule {
@@ -17607,6 +17759,7 @@ let
     meta = {
       description = "Perl extension for generating and using LALR parsers";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "yapp";
     };
   };
 
@@ -17795,6 +17948,7 @@ let
       homepage = "http://pdl.perl.org/";
       description = "Perl Data Language";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pdl2";
       platforms = lib.platforms.linux;
     };
   };
@@ -17849,14 +18003,15 @@ let
     buildInputs = [ TestDeep ];
     nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang;
     propagatedBuildInputs = [ BKeywords ConfigTiny FileWhich ListMoreUtils ModulePluggable PPIxQuoteLike PPIxRegexp PPIxUtilities PerlTidy PodSpell StringFormat ];
+    postInstall = lib.optionalString stdenv.isDarwin ''
+      shortenPerlShebang $out/bin/perlcritic
+    '';
     meta = {
       homepage = "http://perlcritic.com";
       description = "Critique Perl source code for best-practices";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlcritic";
     };
-    postInstall = lib.optionalString stdenv.isDarwin ''
-      shortenPerlShebang $out/bin/perlcritic
-    '';
   };
 
   PerlCriticCommunity = buildPerlModule {
@@ -18063,6 +18218,7 @@ let
     meta = {
       description = "Indent and reformat perl scripts";
       license = lib.licenses.gpl2Plus;
+      mainProgram = "perltidy";
     };
   };
 
@@ -18095,6 +18251,7 @@ let
       description = "Pure-Perl Core-Only replacement for pkg-config";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = teams.deshaw.members;
+      mainProgram = "ppkg-config";
     };
   };
 
@@ -18111,54 +18268,55 @@ let
       homepage = "https://github.com/plack/Plack";
       description = "Perl Superglue for Web frameworks and Web Servers (PSGI toolkit)";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "plackup";
     };
   };
 
   PlackAppProxy = buildPerlPackage {
-     pname = "Plack-App-Proxy";
-     version = "0.29";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
-       sha256 = "03x6yb6ykz1ms90jp1s0pq19yplf7wswljvhzqkr16jannfrmah4";
-     };
-     propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
-     buildInputs = [ TestRequires TestSharedFork TestTCP ];
-     meta = {
-       description = "proxy requests";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Plack-App-Proxy";
+    version = "0.29";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/L/LE/LEEDO/Plack-App-Proxy-0.29.tar.gz";
+      sha256 = "03x6yb6ykz1ms90jp1s0pq19yplf7wswljvhzqkr16jannfrmah4";
+    };
+    propagatedBuildInputs = [ AnyEventHTTP LWP Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "proxy requests";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   PlackMiddlewareAuthDigest = buildPerlModule {
-     pname = "Plack-Middleware-Auth-Digest";
-     version = "0.05";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
-       sha256 = "1sqm23kfsl3ac4060zcclc3r86x1vxzhsgvgzg6mxk9njj93zgcs";
-     };
-     propagatedBuildInputs = [ DigestHMAC Plack ];
-     buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
-     meta = {
-       description = "Digest authentication";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
-     };
+    pname = "Plack-Middleware-Auth-Digest";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Auth-Digest-0.05.tar.gz";
+      sha256 = "1sqm23kfsl3ac4060zcclc3r86x1vxzhsgvgzg6mxk9njj93zgcs";
+    };
+    propagatedBuildInputs = [ DigestHMAC Plack ];
+    buildInputs = [ LWP ModuleBuildTiny TestSharedFork TestTCP ];
+    meta = {
+      description = "Digest authentication";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/miyagawa/Plack-Middleware-Auth-Digest";
+    };
   };
 
   PlackMiddlewareConsoleLogger = buildPerlModule {
-     pname = "Plack-Middleware-ConsoleLogger";
-     version = "0.05";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
-       sha256 = "1ngvhwdw9ll4cwnvf0i89ppa9pbyiwng6iba04scrqjda353lrsm";
-     };
-     propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
-     buildInputs = [ ModuleBuildTiny TestRequires ];
-     meta = {
-       description = "Write logs to Firebug or Webkit Inspector";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
-     };
+    pname = "Plack-Middleware-ConsoleLogger";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-ConsoleLogger-0.05.tar.gz";
+      sha256 = "1ngvhwdw9ll4cwnvf0i89ppa9pbyiwng6iba04scrqjda353lrsm";
+    };
+    propagatedBuildInputs = [ JavaScriptValueEscape Plack ];
+    buildInputs = [ ModuleBuildTiny TestRequires ];
+    meta = {
+      description = "Write logs to Firebug or Webkit Inspector";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/miyagawa/Plack-Middleware-ConsoleLogger";
+    };
   };
 
   PlackMiddlewareDebug = buildPerlModule {
@@ -18178,18 +18336,18 @@ let
   };
 
   PlackMiddlewareDeflater = buildPerlPackage {
-     pname = "Plack-Middleware-Deflater";
-     version = "0.12";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
-       sha256 = "0xf2visi16hgwgyp9q0cjr10ikbn474hjia5mj8mb2scvbkrbni8";
-     };
-     propagatedBuildInputs = [ Plack ];
-     buildInputs = [ TestRequires TestSharedFork TestTCP ];
-     meta = {
-       description = "Compress response body with Gzip or Deflate";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Plack-Middleware-Deflater";
+    version = "0.12";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/Plack-Middleware-Deflater-0.12.tar.gz";
+      sha256 = "0xf2visi16hgwgyp9q0cjr10ikbn474hjia5mj8mb2scvbkrbni8";
+    };
+    propagatedBuildInputs = [ Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "Compress response body with Gzip or Deflate";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   PlackMiddlewareFixMissingBodyInRedirect = buildPerlPackage {
@@ -18208,17 +18366,17 @@ let
   };
 
   PlackMiddlewareHeader = buildPerlPackage {
-     pname = "Plack-Middleware-Header";
-     version = "0.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
-       sha256 = "0pjxxbnilphn38s3mmv0fmg9q2hm4z02ngp2a1lxblzjfbzvkdjy";
-     };
-     propagatedBuildInputs = [ Plack ];
-     meta = {
-       description = "modify HTTP response headers";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Plack-Middleware-Header";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/C/CH/CHIBA/Plack-Middleware-Header-0.04.tar.gz";
+      sha256 = "0pjxxbnilphn38s3mmv0fmg9q2hm4z02ngp2a1lxblzjfbzvkdjy";
+    };
+    propagatedBuildInputs = [ Plack ];
+    meta = {
+      description = "modify HTTP response headers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   PlackMiddlewareMethodOverride = buildPerlPackage {
@@ -18265,19 +18423,19 @@ let
   };
 
   PlackMiddlewareSession = buildPerlModule {
-     pname = "Plack-Middleware-Session";
-     version = "0.33";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
-       sha256 = "1vm4a66civdzh7xvl5hy5wn1w8j1vndppwyz8ndh9n4as74s5yag";
-     };
-     propagatedBuildInputs = [ DigestHMAC Plack ];
-     buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
-     meta = {
-       description = "Middleware for session management";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/plack/Plack-Middleware-Session";
-     };
+    pname = "Plack-Middleware-Session";
+    version = "0.33";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Plack-Middleware-Session-0.33.tar.gz";
+      sha256 = "1vm4a66civdzh7xvl5hy5wn1w8j1vndppwyz8ndh9n4as74s5yag";
+    };
+    propagatedBuildInputs = [ DigestHMAC Plack ];
+    buildInputs = [ HTTPCookies LWP ModuleBuildTiny TestFatal TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "Middleware for session management";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/plack/Plack-Middleware-Session";
+    };
   };
 
   PlackTestExternalServer = buildPerlPackage {
@@ -18313,6 +18471,7 @@ let
       description = "Perl Language Server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.artturin ];
+      mainProgram = "pls";
     };
   };
 
@@ -18330,6 +18489,7 @@ let
       homepage = "http://user42.tuxfamily.org/pod-minimumversion/index.html";
       description = "Determine minimum Perl version of POD directives";
       license = lib.licenses.free;
+      mainProgram = "pod-minimumversion";
     };
   };
 
@@ -18375,9 +18535,10 @@ let
       sha256 = "0yx4wsljfmdzsiv0ni98x6lw975cm82ahngbwqvzv60wx5pwkl5y";
     };
     meta = {
-      maintainers = teams.deshaw.members;
       description = "Reusable tests for POE::Loop authors";
       license = lib.licenses.artistic2;
+      maintainers = teams.deshaw.members;
+      mainProgram = "poe-gen-tests";
     };
   };
 
@@ -18467,6 +18628,9 @@ let
       sha256 = "91b6a5aeb841b1c313498c78fad08e37d17595702dc6205b5ad38ef69949b7ee";
     };
     meta = {
+      description = "Provides a generic interface to running background processes";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "timed-process";
     };
   };
 
@@ -18664,6 +18828,7 @@ let
       homepage = "https://github.com/neilbowers/Perl-MinimumVersion";
       description = "Find a minimum required version of perl for Perl code";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlver";
     };
   };
 
@@ -18679,6 +18844,7 @@ let
       homepage = "https://github.com/rjbs/Perl-PrereqScanner";
       description = "A tool to scan your Perl code for its prerequisites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan-perl-prereqs";
     };
   };
 
@@ -18694,6 +18860,7 @@ let
     meta = {
       description = "a tool to scan your Perl code for its prerequisites";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan-perl-prereqs-nqlite";
     };
   };
 
@@ -18708,6 +18875,7 @@ let
     meta = {
       description = "Parse and manipulate Perl version strings";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perl-reversion";
     };
   };
 
@@ -18722,6 +18890,7 @@ let
     meta = {
       description = "An abstract, tree-based interface to perl POD documents";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "paf";
     };
   };
 
@@ -18732,6 +18901,11 @@ let
       url = "mirror://cpan/authors/id/M/MA/MAREKR/Pod-Checker-1.74.tar.gz";
       sha256 = "12559997r7wbhhs0p6cdxdzv7rzviv0nx1hq0dby8q481apn489f";
     };
+    meta = {
+      description = "Check POD documents for syntax errors";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podchecker";
+    };
   };
 
   PodCoverage = buildPerlPackage {
@@ -18742,6 +18916,11 @@ let
       sha256 = "01xifj83dv492lxixijmg6va02rf3ydlxly0a9slmx22r6qa1drh";
     };
     propagatedBuildInputs = [ DevelSymdump PodParser ];
+    meta = {
+      description = "Checks if the documentation of a module is comprehensive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod_cover";
+    };
   };
 
   PodCoverageTrustPod = buildPerlPackage {
@@ -18816,6 +18995,7 @@ let
     meta = {
       description = "Modules for parsing/translating POD format documents";
       license = lib.licenses.artistic1;
+      mainProgram = "podselect";
     };
   };
 
@@ -18831,6 +19011,7 @@ let
       homepage = "https://github.com/neilb/Pod-POM";
       description = "POD Object Model";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pom2";
     };
   };
 
@@ -18860,6 +19041,7 @@ let
       homepage = "https://github.com/ktat/Pod-Section";
       description = "Select specified section from Module's POD";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podsection";
     };
   };
 
@@ -18875,6 +19057,7 @@ let
       homepage = "https://github.com/timj/perl-Pod-LaTeX/tree/master";
       description = "Convert Pod data to formatted Latex";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2latex";
     };
   };
 
@@ -18933,6 +19116,7 @@ let
     meta = {
       description = "Look up Perl documentation in Pod format";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perldoc";
     };
   };
 
@@ -18962,23 +19146,25 @@ let
       homepage = "https://github.com/rwstauner/Pod-Markdown";
       description = "Convert POD to Markdown";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2markdown";
     };
     propagatedBuildInputs = [ URI ];
   };
 
   PodMarkdownGithub = buildPerlPackage {
-     pname = "Pod-Markdown-Github";
-     version = "0.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
-       sha256 = "04y67c50hpf1vb9cwsza3fbj4rshdqa47vi3zcj4kkjckh02yzmk";
-     };
-     propagatedBuildInputs = [ PodMarkdown ];
-     buildInputs = [ TestDifferences ];
-     meta = {
-       description = "Convert POD to Github's specific markdown";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Pod-Markdown-Github";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MINIMAL/Pod-Markdown-Github-0.04.tar.gz";
+      sha256 = "04y67c50hpf1vb9cwsza3fbj4rshdqa47vi3zcj4kkjckh02yzmk";
+    };
+    propagatedBuildInputs = [ PodMarkdown ];
+    buildInputs = [ TestDifferences ];
+    meta = {
+      description = "Convert POD to Github's specific markdown";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "pod2github";
+    };
   };
 
   PodSimple = buildPerlPackage {
@@ -18999,34 +19185,40 @@ let
     };
     propagatedBuildInputs = [ ClassTiny FileShareDir LinguaENInflect PathTiny PodParser ];
     buildInputs = [ FileShareDirInstall TestDeep ];
+    meta = {
+      description = "A formatter for spellchecking Pod";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podspell";
+    };
   };
 
   PodStrip = buildPerlModule {
-     pname = "Pod-Strip";
-     version = "1.02";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.02.tar.gz";
-       sha256 = "1zsjfw2cjq1bd3ppl67fdvrx46vj9lina0c3cv9qgk5clzvaq3fq";
-     };
-     meta = {
-       description = "Remove POD from Perl code";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Pod-Strip";
+    version = "1.02";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DO/DOMM/Pod-Strip-1.02.tar.gz";
+      sha256 = "1zsjfw2cjq1bd3ppl67fdvrx46vj9lina0c3cv9qgk5clzvaq3fq";
+    };
+    meta = {
+      description = "Remove POD from Perl code";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   PodTidy = buildPerlModule {
-     pname = "Pod-Tidy";
-     version = "0.10";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
-       sha256 = "1gcxjplgksnc5iggi8dzbkbkcryii5wjhypd7fs3kmbwx91y2vl8";
-     };
-     propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
-     buildInputs = [ TestCmd ];
-     meta = {
-       description = "a reformatting Pod Processor";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Pod-Tidy";
+    version = "0.10";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/J/JH/JHOBLITT/Pod-Tidy-0.10.tar.gz";
+      sha256 = "1gcxjplgksnc5iggi8dzbkbkcryii5wjhypd7fs3kmbwx91y2vl8";
+    };
+    propagatedBuildInputs = [ EncodeNewlines IOString PodWrap TextGlob ];
+    buildInputs = [ TestCmd ];
+    meta = {
+      description = "a reformatting Pod Processor";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podtidy";
+    };
   };
 
   PodWeaver = buildPerlPackage {
@@ -19046,16 +19238,17 @@ let
   };
 
   PodWrap = buildPerlModule {
-     pname = "Pod-Wrap";
-     version = "0.01";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
-       sha256 = "0qwb5hp26f85xnb3zivf8ccfdplabiyl5sd53c6wgdgvzzicpjjh";
-     };
-     propagatedBuildInputs = [ PodParser ];
-     meta = {
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Pod-Wrap";
+    version = "0.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NU/NUFFIN/Pod-Wrap-0.01.tar.gz";
+      sha256 = "0qwb5hp26f85xnb3zivf8ccfdplabiyl5sd53c6wgdgvzzicpjjh";
+    };
+    propagatedBuildInputs = [ PodParser ];
+    meta = {
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "podwrap";
+    };
   };
 
   ProbePerl = buildPerlPackage {
@@ -19113,6 +19306,7 @@ let
       homepage = "https://github.com/creaktive/rainbarf";
       description = "CPU/RAM/battery stats chart bar for tmux (and GNU screen)";
       license = with lib.licenses; [ artistic1 gpl1Plus  ];
+      mainProgram = "rainbarf";
     };
   };
 
@@ -19344,6 +19538,11 @@ let
     };
     propagatedBuildInputs = [ XMLParser ];
     doCheck = false;
+    meta = {
+      description = "An implementation of XML-RPC";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "make_method";
+    };
   };
 
   ReturnValue = buildPerlPackage {
@@ -19627,6 +19826,7 @@ let
     meta = with lib; {
       description = "Linux/POSIX emulation of Win32::SerialPort functions.";
       license = with licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "modemtest";
     };
   };
 
@@ -19642,6 +19842,7 @@ let
       homepage = "https://github.com/kazuho/p5-Server-Starter";
       description = "A superdaemon for hot-deploying server programs";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "start_server";
     };
   };
 
@@ -19732,6 +19933,11 @@ let
       url = "mirror://cpan/authors/id/R/RA/RAAB/SGMLSpm-1.1.tar.gz";
       sha256 = "1gdjf3mcz2bxir0l9iljxiz6qqqg3a9gg23y5wjg538w552r432m";
     };
+    meta = {
+      description = "Library for parsing the output from SGMLS and NSGMLS parsers";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "sgmlspl.pl";
+    };
   };
 
   SignalMask = buildPerlPackage {
@@ -19749,29 +19955,31 @@ let
   };
 
   SnowballNorwegian = buildPerlModule {
-     pname = "Snowball-Norwegian";
-     version = "1.2";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
-       sha256 = "0675v45bbsh7vr7kpf36xs2q79g02iq1kmfw22h20xdk4rzqvkqx";
-     };
-     meta = {
-       description = "Porters stemming algorithm for norwegian.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Snowball-Norwegian";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Norwegian-1.2.tar.gz";
+      sha256 = "0675v45bbsh7vr7kpf36xs2q79g02iq1kmfw22h20xdk4rzqvkqx";
+    };
+    meta = {
+      description = "Porters stemming algorithm for norwegian.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "stemmer-no.pl";
+    };
   };
 
   SnowballSwedish = buildPerlModule {
-     pname = "Snowball-Swedish";
-     version = "1.2";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
-       sha256 = "0agwc12jk5kmabnpsplw3wf4ii5w1zb159cpin44x3srb0sr5apg";
-     };
-     meta = {
-       description = "Porters stemming algorithm for swedish.";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Snowball-Swedish";
+    version = "1.2";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/A/AS/ASKSH/Snowball-Swedish-1.2.tar.gz";
+      sha256 = "0agwc12jk5kmabnpsplw3wf4ii5w1zb159cpin44x3srb0sr5apg";
+    };
+    meta = {
+      description = "Porters stemming algorithm for swedish.";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "stemmer-se.pl";
+    };
   };
 
   SOAPLite = buildPerlPackage {
@@ -19822,19 +20030,19 @@ let
   };
 
   SoftwareLicenseCCpack = buildPerlPackage {
-     pname = "Software-License-CCpack";
-     version = "1.11";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
-       sha256 = "1cakbn7am8mhalwas5h33l7c6avdqpg42z478p6rav11pim5qksr";
-     };
-     propagatedBuildInputs = [ SoftwareLicense ];
-     buildInputs = [ TestCheckDeps ];
-     meta = {
-       description = "Software::License pack for Creative Commons' licenses";
-       license = with lib.licenses; [ lgpl3Plus ];
-       homepage = "https://github.com/SineSwiper/Software-License-CCpack";
-     };
+    pname = "Software-License-CCpack";
+    version = "1.11";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BB/BBYRD/Software-License-CCpack-1.11.tar.gz";
+      sha256 = "1cakbn7am8mhalwas5h33l7c6avdqpg42z478p6rav11pim5qksr";
+    };
+    propagatedBuildInputs = [ SoftwareLicense ];
+    buildInputs = [ TestCheckDeps ];
+    meta = {
+      description = "Software::License pack for Creative Commons' licenses";
+      license = with lib.licenses; [ lgpl3Plus ];
+      homepage = "https://github.com/SineSwiper/Software-License-CCpack";
+    };
   };
 
   SortKey = buildPerlPackage {
@@ -19860,33 +20068,33 @@ let
   };
 
   Specio = buildPerlPackage {
-     pname = "Specio";
-     version = "0.46";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.46.tar.gz";
-       sha256 = "15lmxffbzj1gq7n9m80a3ka8nqxmmk3p4azp33y6wv872shjmx0b";
-     };
-     propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
-     buildInputs = [ TestFatal TestNeeds ];
-     meta = {
-       description = "Type constraints and coercions for Perl";
-       license = with lib.licenses; [ artistic2 ];
-     };
+    pname = "Specio";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-0.46.tar.gz";
+      sha256 = "15lmxffbzj1gq7n9m80a3ka8nqxmmk3p4azp33y6wv872shjmx0b";
+    };
+    propagatedBuildInputs = [ DevelStackTrace EvalClosure MROCompat ModuleRuntime RoleTiny SubQuote TryTiny ];
+    buildInputs = [ TestFatal TestNeeds ];
+    meta = {
+      description = "Type constraints and coercions for Perl";
+      license = with lib.licenses; [ artistic2 ];
+    };
   };
 
   SpecioLibraryPathTiny = buildPerlPackage {
-     pname = "Specio-Library-Path-Tiny";
-     version = "0.04";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.04.tar.gz";
-       sha256 = "0cyfx8gigsgisdwynjamh8jkpad23sr8v6a98hq285zmibm16s7g";
-     };
-     propagatedBuildInputs = [ PathTiny Specio ];
-     buildInputs = [ Filepushd TestFatal ];
-     meta = {
-       description = "Path::Tiny types and coercions for Specio";
-       license = with lib.licenses; [ asl20 ];
-     };
+    pname = "Specio-Library-Path-Tiny";
+    version = "0.04";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Specio-Library-Path-Tiny-0.04.tar.gz";
+      sha256 = "0cyfx8gigsgisdwynjamh8jkpad23sr8v6a98hq285zmibm16s7g";
+    };
+    propagatedBuildInputs = [ PathTiny Specio ];
+    buildInputs = [ Filepushd TestFatal ];
+    meta = {
+      description = "Path::Tiny types and coercions for Specio";
+      license = with lib.licenses; [ asl20 ];
+    };
   };
 
   Spiffy = buildPerlPackage {
@@ -19939,6 +20147,7 @@ let
     meta = {
       description = "Write to a cross platform Excel binary file";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "chartex";
     };
   };
 
@@ -19992,6 +20201,11 @@ let
     };
     buildInputs = [ TestException ];
     propagatedBuildInputs = [ ClassAccessor ListMoreUtils RegexpCommon SQLTokenizer ];
+    meta = {
+      description = "Split any SQL code into atomic statements";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "sql-split";
+    };
   };
 
   SQLStatement = buildPerlPackage {
@@ -20038,6 +20252,7 @@ let
     meta = {
       description = "SQL DDL transformations and more";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "sqlt";
     };
   };
 
@@ -20100,6 +20315,7 @@ let
       homepage = "https://github.com/miyagawa/Starman";
       description = "High-performance preforking PSGI/Plack web server";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "starman";
     };
   };
 
@@ -20363,6 +20579,11 @@ let
       url = "mirror://cpan/authors/id/C/CG/CGRAU/String-MkPasswd-0.05.tar.gz";
       sha256 = "15lvcc8c9hp6mg3jx02wd3b85aphn8yl5db62q3pam04c0sgh42k";
     };
+    meta = {
+      description = "Random password generator";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mkpasswd.pl";
+    };
   };
 
   StringRandom = buildPerlModule {
@@ -20398,7 +20619,9 @@ let
     doCheck = !stdenv.isDarwin;
     meta = {
       # http://cpansearch.perl.org/src/ROSCH/String-ShellQuote-1.04/README
+      description = "Quote strings for passing through the shell";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "shell-quote";
     };
   };
 
@@ -20744,6 +20967,7 @@ let
       homepage = "https://github.com/ingydotnet/swim-pm";
       description = "See What I Mean?!";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "swin";
     };
   };
 
@@ -21199,7 +21423,7 @@ let
     buildInputs = [ CGI TestLeakTrace ];
   };
 
-   TemplateGD = buildPerlPackage {
+  TemplateGD = buildPerlPackage {
     pname = "Template-GD";
     version = "2.66";
     src = fetchurl {
@@ -21321,6 +21545,7 @@ let
       homepage = "https://sourceforge.net/projects/perl-trg/";
       description = "Perl extension for the GNU Readline/History Library";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "perlsh";
     };
   };
 
@@ -21435,17 +21660,17 @@ let
   };
 
   TermUI = buildPerlPackage {
-     pname = "Term-UI";
-     version = "0.46";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.46.tar.gz";
-       sha256 = "19p92za5cx1v7g57pg993amprcvm1az3pp7y9g5b1aplsy06r54i";
-     };
-     propagatedBuildInputs = [ LogMessageSimple ];
-     meta = {
-       description = "User interfaces via Term::ReadLine made easy";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Term-UI";
+    version = "0.46";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BI/BINGOS/Term-UI-0.46.tar.gz";
+      sha256 = "19p92za5cx1v7g57pg993amprcvm1az3pp7y9g5b1aplsy06r54i";
+    };
+    propagatedBuildInputs = [ LogMessageSimple ];
+    meta = {
+      description = "User interfaces via Term::ReadLine made easy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TermVT102 = buildPerlPackage {
@@ -21500,6 +21725,7 @@ let
     meta = {
       description = "A 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
     };
   };
@@ -21518,7 +21744,7 @@ let
     };
   };
 
-   Test2PluginUUID = buildPerlPackage {
+  Test2PluginUUID = buildPerlPackage {
     pname = "Test2-Plugin-UUID";
     version = "0.002001";
     src = fetchurl {
@@ -21534,17 +21760,17 @@ let
   };
 
   Test2PluginNoWarnings = buildPerlPackage {
-     pname = "Test2-Plugin-NoWarnings";
-     version = "0.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
-       sha256 = "0x7vy9r5gyxqg3qy966frj8ywkckkv7mc83xy4mkdvrf0h0dhgdy";
-     };
-     buildInputs = [ IPCRun3 Test2Suite ];
-     meta = {
-       description = "Fail if tests warn";
-       license = with lib.licenses; [ artistic2 ];
-     };
+    pname = "Test2-Plugin-NoWarnings";
+    version = "0.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-0.09.tar.gz";
+      sha256 = "0x7vy9r5gyxqg3qy966frj8ywkckkv7mc83xy4mkdvrf0h0dhgdy";
+    };
+    buildInputs = [ IPCRun3 Test2Suite ];
+    meta = {
+      description = "Fail if tests warn";
+      license = with lib.licenses; [ artistic2 ];
+    };
     propagatedBuildInputs = [ TestSimple13 ];
   };
 
@@ -21563,19 +21789,19 @@ let
   };
 
   TestAbortable = buildPerlPackage {
-     pname = "Test-Abortable";
-     version = "0.002";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.002.tar.gz";
-       sha256 = "0v97y31j56f4mxw0vxyjbdprq4951h4wcdh4acnfm63np7wvg44p";
-     };
-     propagatedBuildInputs = [ SubExporter ];
-     buildInputs = [ TestNeeds ];
-     meta = {
-       description = "subtests that you can die your way out of ... but survive";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/rjbs/Test-Abortable";
-     };
+    pname = "Test-Abortable";
+    version = "0.002";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/R/RJ/RJBS/Test-Abortable-0.002.tar.gz";
+      sha256 = "0v97y31j56f4mxw0vxyjbdprq4951h4wcdh4acnfm63np7wvg44p";
+    };
+    propagatedBuildInputs = [ SubExporter ];
+    buildInputs = [ TestNeeds ];
+    meta = {
+      description = "subtests that you can die your way out of ... but survive";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/rjbs/Test-Abortable";
+    };
   };
 
   TestAssert = buildPerlModule {
@@ -21671,17 +21897,17 @@ let
   };
 
   TestClassMost = buildPerlModule {
-     pname = "Test-Class-Most";
-     version = "0.08";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
-       sha256 = "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33";
-     };
-     buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
-     meta = {
-       description = "Test Classes the easy way";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-Class-Most";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/O/OV/OVID/Test-Class-Most-0.08.tar.gz";
+      sha256 = "1zvx9hil0mg0pnb8xfa4m0xgjpvh8s5gnbyprq3xwpdsdgcdwk33";
+    };
+    buildInputs = [ TestClass TestDeep TestDifferences TestException TestMost TestWarn ];
+    meta = {
+      description = "Test Classes the easy way";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestCleanNamespaces = buildPerlPackage {
@@ -21701,18 +21927,18 @@ let
   };
 
   TestCmd = buildPerlPackage {
-     pname = "Test-Cmd";
-     version = "1.09";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
-       sha256 = "114nfafwfxxn7kig265b7lg0znb5ybvc282sjjwf14g7vpn20cyg";
-     };
-       doCheck = false; /* test fails */
-     meta = {
-       description = "Perl module for portable testing of commands and scripts";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/neilb/Test-Cmd";
-     };
+    pname = "Test-Cmd";
+    version = "1.09";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/N/NE/NEILB/Test-Cmd-1.09.tar.gz";
+      sha256 = "114nfafwfxxn7kig265b7lg0znb5ybvc282sjjwf14g7vpn20cyg";
+    };
+      doCheck = false; /* test fails */
+    meta = {
+      description = "Perl module for portable testing of commands and scripts";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/neilb/Test-Cmd";
+    };
   };
 
   TestCommand = buildPerlModule {
@@ -21757,17 +21983,17 @@ let
   };
 
   TestCPANMetaJSON = buildPerlPackage {
-     pname = "Test-CPAN-Meta-JSON";
-     version = "0.16";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
-       sha256 = "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37";
-     };
-     propagatedBuildInputs = [ JSON ];
-     meta = {
-       description = "Validate your CPAN META.json files";
-       license = with lib.licenses; [ artistic2 ];
-     };
+    pname = "Test-CPAN-Meta-JSON";
+    version = "0.16";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BA/BARBIE/Test-CPAN-Meta-JSON-0.16.tar.gz";
+      sha256 = "1jg9ka50ixwq083wd4k12rhdjq87w0ihb34gd8jjn7gvvyd51b37";
+    };
+    propagatedBuildInputs = [ JSON ];
+    meta = {
+      description = "Validate your CPAN META.json files";
+      license = with lib.licenses; [ artistic2 ];
+    };
   };
 
   TestDataSplit = buildPerlModule {
@@ -22037,29 +22263,29 @@ let
   };
 
   TestHexDifferences = buildPerlPackage {
-     pname = "Test-HexDifferences";
-     version = "1.001";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
-       sha256 = "18lh6shpfx567gjikrid4hixydgv1hi3mycl20qzq2j2vpn4afd6";
-     };
-     propagatedBuildInputs = [ SubExporter TextDiff ];
-     buildInputs = [ TestDifferences TestNoWarnings ];
-     meta = {
-     };
+    pname = "Test-HexDifferences";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Test-HexDifferences-1.001.tar.gz";
+      sha256 = "18lh6shpfx567gjikrid4hixydgv1hi3mycl20qzq2j2vpn4afd6";
+    };
+    propagatedBuildInputs = [ SubExporter TextDiff ];
+    buildInputs = [ TestDifferences TestNoWarnings ];
+    meta = {
+    };
   };
 
   TestHexString = buildPerlModule {
-     pname = "Test-HexString";
-     version = "0.03";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
-       sha256 = "0h1zl2l1ljlcxsn0xvin9dwiymnhyhnfnxgzg3f9899g37f4qk3x";
-     };
-     meta = {
-       description = "test binary strings with hex dump diagnostics";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-HexString";
+    version = "0.03";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/P/PE/PEVANS/Test-HexString-0.03.tar.gz";
+      sha256 = "0h1zl2l1ljlcxsn0xvin9dwiymnhyhnfnxgzg3f9899g37f4qk3x";
+    };
+    meta = {
+      description = "test binary strings with hex dump diagnostics";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestIdentity = buildPerlModule {
@@ -22100,19 +22326,20 @@ let
   };
 
   TestKwalitee = buildPerlPackage {
-     pname = "Test-Kwalitee";
-     version = "1.28";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
-       sha256 = "18s3c8qfr3kmmyxmsn5la2zgbdsgpnkmscnl68i7fnavfpfnqlxl";
-     };
-     propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
-     buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
-     meta = {
-       description = "Test the Kwalitee of a distribution before you release it";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/karenetheridge/Test-Kwalitee";
-     };
+    pname = "Test-Kwalitee";
+    version = "1.28";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/E/ET/ETHER/Test-Kwalitee-1.28.tar.gz";
+      sha256 = "18s3c8qfr3kmmyxmsn5la2zgbdsgpnkmscnl68i7fnavfpfnqlxl";
+    };
+    propagatedBuildInputs = [ ModuleCPANTSAnalyse ];
+    buildInputs = [ CPANMetaCheck TestDeep TestWarnings ];
+    meta = {
+      description = "Test the Kwalitee of a distribution before you release it";
+      homepage = "https://github.com/karenetheridge/Test-Kwalitee";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "kwalitee-metrics";
+    };
   };
 
   TestLWPUserAgent = buildPerlPackage {
@@ -22302,18 +22529,18 @@ let
   };
 
   TestMockTimeHiRes = buildPerlModule {
-     pname = "Test-MockTime-HiRes";
-     version = "0.08";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
-       sha256 = "1hfykcjrls6ywgbd49w29c7apj3nq4wlyx7jzpd2glwmz2pgfjaz";
-     };
-     buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestMockTime TestRequires ];
-     meta = {
-       description = "Replaces actual time with simulated high resolution time";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
-     };
+    pname = "Test-MockTime-HiRes";
+    version = "0.08";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/T/TA/TARAO/Test-MockTime-HiRes-0.08.tar.gz";
+      sha256 = "1hfykcjrls6ywgbd49w29c7apj3nq4wlyx7jzpd2glwmz2pgfjaz";
+    };
+    buildInputs = [ AnyEvent ModuleBuildTiny TestClass TestMockTime TestRequires ];
+    meta = {
+      description = "Replaces actual time with simulated high resolution time";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/tarao/perl5-Test-MockTime-HiRes";
+    };
   };
 
   TestMojibake = buildPerlPackage {
@@ -22327,20 +22554,21 @@ let
       homepage = "https://github.com/creaktive/Test-Mojibake";
       description = "Check your source for encoding misbehavior";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "scan_mojibake";
     };
   };
 
   TestMoreUTF8 = buildPerlPackage {
-     pname = "Test-More-UTF8";
-     version = "0.05";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
-       sha256 = "016fs77lmw8xxrcnapvp6wq4hjwgsdfi3l9ylpxgxkcpdarw9wdr";
-     };
-     meta = {
-       description = "Enhancing Test::More for UTF8-based projects";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-More-UTF8";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MO/MONS/Test-More-UTF8-0.05.tar.gz";
+      sha256 = "016fs77lmw8xxrcnapvp6wq4hjwgsdfi3l9ylpxgxkcpdarw9wdr";
+    };
+    meta = {
+      description = "Enhancing Test::More for UTF8-based projects";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestMost = buildPerlPackage {
@@ -22434,18 +22662,18 @@ let
   };
 
   TestPAUSEPermissions = buildPerlPackage {
-     pname = "Test-PAUSE-Permissions";
-     version = "0.07";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
-       sha256 = "0gh7f67g1y30yggmwj1pq6xgrx3cfjibj2378nl3gilvyaxw2w2m";
-     };
-     propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
-     buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
-     meta = {
-       description = "tests module permissions in your distribution";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-PAUSE-Permissions";
+    version = "0.07";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/SK/SKAJI/Test-PAUSE-Permissions-0.07.tar.gz";
+      sha256 = "0gh7f67g1y30yggmwj1pq6xgrx3cfjibj2378nl3gilvyaxw2w2m";
+    };
+    propagatedBuildInputs = [ ConfigIdentity PAUSEPermissions ParseLocalDistribution ];
+    buildInputs = [ ExtUtilsMakeMakerCPANfile TestUseAllModules ];
+    meta = {
+      description = "tests module permissions in your distribution";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestPerlCritic = buildPerlModule {
@@ -22579,16 +22807,16 @@ let
   };
 
   TestRequiresInternet = buildPerlPackage {
-     pname = "Test-RequiresInternet";
-     version = "0.05";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
-       sha256 = "0gl33vpj9bb78pzyijp884b66sbw6jkh1ci0xki8rmf03hmb79xv";
-     };
-     meta = {
-       description = "Easily test network connectivity";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-RequiresInternet";
+    version = "0.05";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MALLEN/Test-RequiresInternet-0.05.tar.gz";
+      sha256 = "0gl33vpj9bb78pzyijp884b66sbw6jkh1ci0xki8rmf03hmb79xv";
+    };
+    meta = {
+      description = "Easily test network connectivity";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestRoo = buildPerlPackage {
@@ -22649,8 +22877,9 @@ let
       homepage = "http://web-cpan.berlios.de/modules/Test-Run/";
       description = "Analyze tests from the command line using Test::Run";
       license = lib.licenses.mit;
+      mainProgram = "runprove";
     };
-   };
+  };
 
   TestRunPluginAlternateInterpreters = buildPerlModule {
     pname = "Test-Run-Plugin-AlternateInterpreters";
@@ -22929,16 +23158,16 @@ let
   };
 
   TestToolbox = buildPerlModule {
-     pname = "Test-Toolbox";
-     version = "0.4";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
-       sha256 = "1hxx9rhvncvn7wvzhzx4sk00w0xq2scgspfhhyqwjnm1yg3va820";
-     };
-     meta = {
-       description = "Test::Toolbox - tools for testing";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Test-Toolbox";
+    version = "0.4";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIKO/Test-Toolbox-0.4.tar.gz";
+      sha256 = "1hxx9rhvncvn7wvzhzx4sk00w0xq2scgspfhhyqwjnm1yg3va820";
+    };
+    meta = {
+      description = "Test::Toolbox - tools for testing";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TestTrailingSpace = buildPerlModule {
@@ -23086,6 +23315,11 @@ let
       sha256 = "0pwrrnwi1qaiy3c5522vy0kzncxc9g02r4b056wqqaa69w1hsc0z";
     };
     buildInputs = [ TestBase ];
+    meta = {
+      description = "Testing Module for YAML Implementations";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "test-yaml";
+    };
   };
 
   TextAligner = buildPerlModule {
@@ -23284,14 +23518,14 @@ let
   };
 
   TextGerman = buildPerlPackage {
-     pname = "Text-German";
-     version = "0.06";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
-       sha256 = "1p87pgap99lw0nv62i3ghvsi7yg90lhn8vsa3yqp75rd04clybcj";
-     };
-     meta = {
-     };
+    pname = "Text-German";
+    version = "0.06";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/U/UL/ULPFR/Text-German-0.06.tar.gz";
+      sha256 = "1p87pgap99lw0nv62i3ghvsi7yg90lhn8vsa3yqp75rd04clybcj";
+    };
+    meta = {
+    };
   };
 
   TextGlob = buildPerlPackage {
@@ -23397,6 +23631,7 @@ let
       description = "Generate random Latin looking text";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
       maintainers = [ maintainers.sgo ];
+      mainProgram = "lorem";
     };
   };
 
@@ -23425,6 +23660,11 @@ let
     postInstall = ''
       shortenPerlShebang $out/bin/Markdown.pl
     '';
+    meta = {
+      description = "Convert Markdown syntax to (X)HTML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "Markdown.pl";
+    };
   };
 
   TextMarkdownHoedown = buildPerlModule {
@@ -23483,6 +23723,7 @@ let
     meta = {
       description = "Convert MultiMarkdown syntax to (X)HTML";
       license = lib.licenses.bsd3;
+      mainProgram = "MultiMarkdown.pl";
     };
   };
 
@@ -24027,18 +24268,18 @@ let
   };
 
   TieSub = buildPerlPackage {
-     pname = "Tie-Sub";
-     version = "1.001";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
-       sha256 = "1cgiyj85hhw2m4x2iv4zgaj3hzf3fghircpcfqmjndni4r4a0wgg";
-     };
-     propagatedBuildInputs = [ ParamsValidate ];
-     buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
-     meta = {
-       description = "Tie::Sub - Tying a subroutine, function or method to a hash";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "Tie-Sub";
+    version = "1.001";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/S/ST/STEFFENW/Tie-Sub-1.001.tar.gz";
+      sha256 = "1cgiyj85hhw2m4x2iv4zgaj3hzf3fghircpcfqmjndni4r4a0wgg";
+    };
+    propagatedBuildInputs = [ ParamsValidate ];
+    buildInputs = [ ModuleBuild TestDifferences TestException TestNoWarnings ];
+    meta = {
+      description = "Tie::Sub - Tying a subroutine, function or method to a hash";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   TieToObject = buildPerlPackage {
@@ -24299,19 +24540,20 @@ let
   };
 
   Twiggy = buildPerlPackage {
-     pname = "Twiggy";
-     version = "0.1025";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1025.tar.gz";
-       sha256 = "1a57knbwync7rlzhsz1kdc0sd380xnaccwgiy1qwj5d87abdynnp";
-     };
-     propagatedBuildInputs = [ AnyEvent Plack ];
-     buildInputs = [ TestRequires TestSharedFork TestTCP ];
-     meta = {
-       description = "AnyEvent HTTP server for PSGI (like Thin)";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/miyagawa/Twiggy";
-     };
+    pname = "Twiggy";
+    version = "0.1025";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Twiggy-0.1025.tar.gz";
+      sha256 = "1a57knbwync7rlzhsz1kdc0sd380xnaccwgiy1qwj5d87abdynnp";
+    };
+    propagatedBuildInputs = [ AnyEvent Plack ];
+    buildInputs = [ TestRequires TestSharedFork TestTCP ];
+    meta = {
+      description = "AnyEvent HTTP server for PSGI (like Thin)";
+      homepage = "https://github.com/miyagawa/Twiggy";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "twiggy";
+    };
   };
 
   TypeTiny = buildPerlPackage {
@@ -24344,15 +24586,15 @@ let
   };
 
   TypesSerialiser = buildPerlPackage {
-     pname = "Types-Serialiser";
-     version = "1.01";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
-       sha256 = "104a7292pwwg57rswpkiaq1cgj7hcsrpf818azcy7l0l14xigizq";
-     };
-     propagatedBuildInputs = [ commonsense ];
-     meta = {
-     };
+    pname = "Types-Serialiser";
+    version = "1.01";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/ML/MLEHMANN/Types-Serialiser-1.01.tar.gz";
+      sha256 = "104a7292pwwg57rswpkiaq1cgj7hcsrpf818azcy7l0l14xigizq";
+    };
+    propagatedBuildInputs = [ commonsense ];
+    meta = {
+    };
   };
 
   UNIVERSALcan = buildPerlPackage {
@@ -24522,6 +24764,7 @@ let
     meta = {
       description = "Find URIs in arbitrary text";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "urifind";
     };
   };
 
@@ -24551,16 +24794,16 @@ let
   };
 
   UserIdentity = buildPerlPackage {
-     pname = "User-Identity";
-     version = "1.00";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.00.tar.gz";
-       sha256 = "0jlzishg33848qvl5x7nsrnlpnx7lfg5hr4m1qrjddzy3hkv86cj";
-     };
-     meta = {
-       description = "Collect information about a user";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "User-Identity";
+    version = "1.00";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/M/MA/MARKOV/User-Identity-1.00.tar.gz";
+      sha256 = "0jlzishg33848qvl5x7nsrnlpnx7lfg5hr4m1qrjddzy3hkv86cj";
+    };
+    meta = {
+      description = "Collect information about a user";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   URIIMAP = buildPerlPackage {
@@ -24729,9 +24972,10 @@ let
     };
     outputs = [ "out" ];
     meta = {
-      maintainers = [ maintainers.chreekat ];
       description = "Edit a directory in $EDITOR";
       license = with lib.licenses; [ gpl1 ];
+      maintainers = [ maintainers.chreekat ];
+      mainProgram = "vidir";
     };
   };
 
@@ -24776,6 +25020,7 @@ let
       homepage = "https://validator.w3.org/checklink";
       description = "A tool to check links and anchors in Web pages or full Web sites";
       license = lib.licenses.w3c;
+      mainProgram = "checklink";
     };
   };
 
@@ -24799,17 +25044,17 @@ let
   };
 
   WWWFormUrlEncoded = buildPerlModule {
-     pname = "WWW-Form-UrlEncoded";
-     version = "0.26";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
-       sha256 = "1x4h5m5fkwaa0gbn6zp9mjrhr3r989w8wyrjxiii3dqm3xghnj60";
-     };
-     meta = {
-       description = "parser and builder for application/x-www-form-urlencoded";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-       homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
-     };
+    pname = "WWW-Form-UrlEncoded";
+    version = "0.26";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/K/KA/KAZEBURO/WWW-Form-UrlEncoded-0.26.tar.gz";
+      sha256 = "1x4h5m5fkwaa0gbn6zp9mjrhr3r989w8wyrjxiii3dqm3xghnj60";
+    };
+    meta = {
+      description = "parser and builder for application/x-www-form-urlencoded";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      homepage = "https://github.com/kazeburo/WWW-Form-UrlEncoded";
+    };
   };
 
   WWWMechanize = buildPerlPackage {
@@ -24825,6 +25070,7 @@ let
       homepage = "https://github.com/libwww-perl/WWW-Mechanize";
       description = "Handy web browsing in a Perl object";
       license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "mech-dump";
     };
     buildInputs = [ CGI HTTPServerSimple PathTiny TestDeep TestFatal TestOutput TestWarnings ];
   };
@@ -25124,6 +25370,11 @@ let
     postInstall = lib.optionalString stdenv.isDarwin ''
       shortenPerlShebang $out/bin/xmlsort
     '';
+    meta = {
+      description = "SAX filter for sorting elements in XML";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xmlsort";
+    };
   };
 
   XMLGrove = buildPerlPackage {
@@ -25153,6 +25404,7 @@ let
     propagatedBuildInputs = [ libxml_perl ];
     meta = {
       description = "Yet another Perl SAX XML Writer";
+      mainProgram = "xmlpretty";
     };
   };
 
@@ -25258,6 +25510,7 @@ let
     meta = {
       description = "Modules for parsing and evaluating XPath statements";
       license = lib.licenses.artistic2;
+      mainProgram = "xpath";
     };
   };
 
@@ -25356,19 +25609,19 @@ let
   };
 
   XMLSAXExpat = buildPerlPackage {
-     pname = "XML-SAX-Expat";
-     version = "0.51";
-     src = fetchurl {
-       url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
-       sha256 = "0gy8h2bvvvlxychwsb99ikdh5cqpk6sqc073jk2b4zffs09n40ac";
-     };
-     propagatedBuildInputs = [ XMLParser XMLSAX ];
-     # Avoid creating perllocal.pod, which contains a timestamp
-     installTargets = [ "pure_install" ];
-     meta = {
-       description = "SAX Driver for Expat";
-       license = with lib.licenses; [ artistic1 gpl1Plus ];
-     };
+    pname = "XML-SAX-Expat";
+    version = "0.51";
+    src = fetchurl {
+      url = "mirror://cpan/authors/id/B/BJ/BJOERN/XML-SAX-Expat-0.51.tar.gz";
+      sha256 = "0gy8h2bvvvlxychwsb99ikdh5cqpk6sqc073jk2b4zffs09n40ac";
+    };
+    propagatedBuildInputs = [ XMLParser XMLSAX ];
+    # Avoid creating perllocal.pod, which contains a timestamp
+    installTargets = [ "pure_install" ];
+    meta = {
+      description = "SAX Driver for Expat";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+    };
   };
 
   XMLSAXWriter = buildPerlPackage {
@@ -25447,6 +25700,11 @@ let
     '';
     propagatedBuildInputs = [ XMLParser ];
     doCheck = false;  # requires lots of extra packages
+    meta = {
+      description = "A Perl module for processing huge XML documents in tree mode";
+      license = with lib.licenses; [ artistic1 gpl1Plus ];
+      mainProgram = "xml_grep";
+    };
   };
 
   XMLValidatorSchema = buildPerlPackage {
diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix
index c84d0739d31f3..a6c676ea60156 100644
--- a/pkgs/top-level/python-aliases.nix
+++ b/pkgs/top-level/python-aliases.nix
@@ -61,6 +61,7 @@ mapAliases ({
   django_extensions = django-extensions; # added 2022-01-09
   django_guardian = django-guardian; # added 2022-05-19
   django_modelcluster = django-modelcluster; # added 2022-04-02
+  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_taggit = django-taggit; # added 2021-10-11
@@ -68,6 +69,7 @@ mapAliases ({
   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
   eebrightbox = throw "eebrightbox is unmaintained upstream and has therefore been removed"; # added 2022-02-03
+  email_validator = email-validator; # added 2022-06-22
   fake_factory = throw "fake_factory has been removed because it is unused and deprecated by upstream since 2016."; # added 2022-05-30
   faulthandler = throw "faulthandler is built into ${python.executable}"; # added 2021-07-12
   flask_testing = flask-testing; # added 2022-04-25
@@ -84,6 +86,7 @@ mapAliases ({
   hdlparse = throw "hdlparse has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
   hyperkitty = throw "Please use pkgs.mailmanPackages.hyperkitty"; # added 2022-04-29
   IMAPClient = imapclient; # added 2021-10-28
+  ipaddress = throw "ipaddress has been removed because it is no longer required since python 2.7."; # added 2022-05-30
   jupyter_client = jupyter-client; # added 2021-10-15
   Keras = keras; # added 2021-11-25
   lammps-cython = throw "lammps-cython no longer builds and is unmaintained"; # added 2021-07-04
@@ -96,6 +99,7 @@ mapAliases ({
   mailman-web = throw "Please use pkgs.mailman-web"; # added 2022-04-29
   net2grid = gridnet; # add 2022-04-22
   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
+  ordereddict = throw "ordereddict has been removed because it is only useful on unsupported python versions."; # added 2022-05-28
   pam = python-pam; # added 2020-09-07.
   PasteDeploy = pastedeploy; # added 2021-10-07
   pathpy = path; # added 2022-04-12
@@ -111,8 +115,10 @@ mapAliases ({
   pydrive = throw "pydrive is broken and deprecated and has been replaced with pydrive2."; # added 2022-06-01
   pyGtkGlade = throw "Glade support for pygtk has been removed"; # added 2022-01-15
   pycallgraph = throw "pycallgraph has been removed, it was using setuptools 2to3 translation feature, which has been removed in setuptools 58"; # added 2022-01-18
+  pycryptodome-test-vectors = throw "pycryptodome-test-vectors has been removed because it is an internal package to pycryptodome"; # added 2022-05-28
   pyialarmxr = pyialarmxr-homeassistant; # added 2022-06-07
   pylibgen = throw "pylibgen is unmaintained upstreamed, and removed from nixpkgs"; # added 2020-06-20
+  PyLD = pyld; # added 2022-06-22
   pymc3 = pymc; # added 2022-06-05, module was rename starting with 4.0.0
   pymssql = throw "pymssql has been abandoned upstream."; # added 2020-05-04
   pyreadability = readability-lxml; # added 2022-05-24
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 47d7a2f9d0c5b..59cdb70f68dde 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -617,6 +617,8 @@ in {
 
   archinfo = callPackage ../development/python-modules/archinfo { };
 
+  archspec = callPackage ../development/python-modules/archspec { };
+
   area = callPackage ../development/python-modules/area { };
 
   arelle = callPackage ../development/python-modules/arelle {
@@ -889,6 +891,8 @@ in {
 
   azure-cosmosdb-table = callPackage ../development/python-modules/azure-cosmosdb-table { };
 
+  azure-data-tables = callPackage ../development/python-modules/azure-data-tables { };
+
   azure-datalake-store = callPackage ../development/python-modules/azure-datalake-store { };
 
   azure-eventgrid = callPackage ../development/python-modules/azure-eventgrid { };
@@ -1119,6 +1123,8 @@ in {
 
   babelgladeextractor = callPackage ../development/python-modules/babelgladeextractor { };
 
+  pad4pi = callPackage ../development/python-modules/pad4pi { };
+
   pulumi = callPackage ../development/python-modules/pulumi { };
 
   pulumi-aws = callPackage ../development/python-modules/pulumi-aws { };
@@ -1350,11 +1356,6 @@ in {
     enablePython = true;
   });
 
-  boost169 = toPythonModule (pkgs.boost169.override {
-    inherit (self) python numpy;
-    enablePython = true;
-  });
-
   boschshcpy = callPackage ../development/python-modules/boschshcpy { };
 
   boost-histogram = callPackage ../development/python-modules/boost-histogram {
@@ -2438,7 +2439,7 @@ in {
 
   djangorestframework-simplejwt = callPackage ../development/python-modules/djangorestframework-simplejwt { };
 
-  django_reversion = callPackage ../development/python-modules/django_reversion { };
+  django-reversion = callPackage ../development/python-modules/django-reversion { };
 
   django-sampledatahelper = callPackage ../development/python-modules/django-sampledatahelper { };
 
@@ -2733,7 +2734,7 @@ in {
 
   emailthreads = callPackage ../development/python-modules/emailthreads { };
 
-  email_validator = callPackage ../development/python-modules/email-validator { };
+  email-validator = callPackage ../development/python-modules/email-validator { };
 
   embrace = callPackage ../development/python-modules/embrace { };
 
@@ -3032,6 +3033,8 @@ in {
 
   filebytes = callPackage ../development/python-modules/filebytes { };
 
+  filecheck = callPackage ../development/python-modules/filecheck { };
+
   filelock = callPackage ../development/python-modules/filelock { };
 
   filemagic = callPackage ../development/python-modules/filemagic { };
@@ -4013,6 +4016,8 @@ in {
 
   hpack = callPackage ../development/python-modules/hpack { };
 
+  hpccm = callPackage ../development/python-modules/hpccm { };
+
   hsaudiotag3k = callPackage ../development/python-modules/hsaudiotag3k { };
 
   hsluv = callPackage ../development/python-modules/hsluv { };
@@ -4247,6 +4252,8 @@ in {
 
   incremental = callPackage ../development/python-modules/incremental { };
 
+  infinity = callPackage ../development/python-modules/infinity { };
+
   inflect = callPackage ../development/python-modules/inflect { };
 
   inflection = callPackage ../development/python-modules/inflection { };
@@ -4319,8 +4326,6 @@ in {
 
   ipaddr = callPackage ../development/python-modules/ipaddr { };
 
-  ipaddress = callPackage ../development/python-modules/ipaddress { };
-
   ipdb = callPackage ../development/python-modules/ipdb { };
 
   ipdbplugin = callPackage ../development/python-modules/ipdbplugin { };
@@ -4427,6 +4432,8 @@ in {
 
   jaraco_stream = callPackage ../development/python-modules/jaraco_stream { };
 
+  jaraco-test = callPackage ../development/python-modules/jaraco-test { };
+
   jaraco_text = callPackage ../development/python-modules/jaraco_text { };
 
   jarowinkler = callPackage ../development/python-modules/jarowinkler { };
@@ -4821,7 +4828,6 @@ in {
 
   ledger = (toPythonModule (pkgs.ledger.override {
     usePython = true;
-    boost = pkgs.boost179; # Current default boost (1.77) doesn’t work with Python 3.10.
     python3 = python;
   })).py;
 
@@ -5300,6 +5306,8 @@ in {
 
   md-toc = callPackage ../development/python-modules/md-toc { };
 
+  mdx-truly-sane-lists = callPackage ../development/python-modules/mdx-truly-sane-lists { };
+
   md2gemini = callPackage ../development/python-modules/md2gemini { };
 
   mdformat = callPackage ../development/python-modules/mdformat { };
@@ -5433,6 +5441,8 @@ in {
 
   mkdocs = callPackage ../development/python-modules/mkdocs { };
   mkdocs-drawio-exporter = callPackage ../development/python-modules/mkdocs-drawio-exporter { };
+  mkdocs-exclude = callPackage ../development/python-modules/mkdocs-exclude { };
+  mkdocs-gitlab = callPackage ../development/python-modules/mkdocs-gitlab-plugin { };
   mkdocs-macros = callPackage ../development/python-modules/mkdocs-macros { };
   mkdocs-material = callPackage ../development/python-modules/mkdocs-material { };
   mkdocs-material-extensions = callPackage ../development/python-modules/mkdocs-material/mkdocs-material-extensions.nix { };
@@ -5925,8 +5935,6 @@ in {
 
   nsapi = callPackage ../development/python-modules/nsapi { };
 
-  ntfy-webpush = callPackage ../tools/misc/ntfy-webpush { };
-
   ntc-templates = callPackage ../development/python-modules/ntc-templates { };
 
   ntlm-auth = callPackage ../development/python-modules/ntlm-auth { };
@@ -6133,8 +6141,6 @@ in {
 
   opuslib = callPackage ../development/python-modules/opuslib { };
 
-  ordereddict = callPackage ../development/python-modules/ordereddict { };
-
   orderedmultidict = callPackage ../development/python-modules/orderedmultidict { };
 
   ordered-set = callPackage ../development/python-modules/ordered-set { };
@@ -6159,6 +6165,8 @@ in {
 
   oscrypto = callPackage ../development/python-modules/oscrypto { };
 
+  oscpy = callPackage ../development/python-modules/oscpy { };
+
   oset = callPackage ../development/python-modules/oset { };
 
   osmnx = callPackage ../development/python-modules/osmnx { };
@@ -6419,7 +6427,7 @@ in {
 
   pg8000 = callPackage ../development/python-modules/pg8000 { };
 
-  pgcli = callPackage ../development/tools/database/pgcli { };
+  pgcli = callPackage ../development/python-modules/pgcli { };
 
   pglast = callPackage ../development/python-modules/pglast { };
 
@@ -6922,7 +6930,9 @@ in {
 
   psd-tools = callPackage ../development/python-modules/psd-tools { };
 
-  psutil = callPackage ../development/python-modules/psutil { };
+  psutil = callPackage ../development/python-modules/psutil {
+    inherit (pkgs.darwin.apple_sdk.frameworks) IOKit;
+  };
 
   psycopg2 = callPackage ../development/python-modules/psycopg2 { };
 
@@ -7144,6 +7154,8 @@ in {
 
   pychef = callPackage ../development/python-modules/pychef { };
 
+  pychm = callPackage ../development/python-modules/pychm { };
+
   PyChromecast = callPackage ../development/python-modules/pychromecast { };
 
   pyclimacell = callPackage ../development/python-modules/pyclimacell { };
@@ -7192,8 +7204,6 @@ in {
 
   pycryptodome = callPackage ../development/python-modules/pycryptodome { };
 
-  pycryptodome-test-vectors = callPackage ../development/python-modules/pycryptodome-test-vectors { };
-
   pycryptodomex = callPackage ../development/python-modules/pycryptodomex { };
 
   pyct = callPackage ../development/python-modules/pyct { };
@@ -7546,7 +7556,7 @@ in {
 
   pylaunches = callPackage ../development/python-modules/pylaunches { };
 
-  PyLD = callPackage ../development/python-modules/PyLD { };
+  pyld = callPackage ../development/python-modules/pyld { };
 
   pylev = callPackage ../development/python-modules/pylev { };
 
@@ -8758,6 +8768,8 @@ in {
 
   pytorch = callPackage ../development/python-modules/pytorch {
     cudaSupport = pkgs.config.cudaSupport or false;
+    inherit (pkgs.darwin.apple_sdk.frameworks) CoreServices;
+    inherit (pkgs.darwin) libobjc;
   };
 
   pytorch-bin = callPackage ../development/python-modules/pytorch/bin.nix { };
@@ -9340,6 +9352,12 @@ in {
 
   rpi-bad-power = callPackage ../development/python-modules/rpi-bad-power { };
 
+  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 { };
 
   rpm = toPythonModule (pkgs.rpm.override {
@@ -9468,6 +9486,8 @@ in {
 
   schiene = callPackage ../development/python-modules/schiene { };
 
+  schwifty = callPackage ../development/python-modules/schwifty { };
+
   scikit-bio = callPackage ../development/python-modules/scikit-bio { };
 
   scikit-build = callPackage ../development/python-modules/scikit-build { };
@@ -9502,6 +9522,8 @@ in {
 
   scramp = callPackage ../development/python-modules/scramp { };
 
+  scrap-engine = callPackage ../development/python-modules/scrap-engine { };
+
   scrapy = callPackage ../development/python-modules/scrapy { };
 
   scrapy-deltafetch = callPackage ../development/python-modules/scrapy-deltafetch { };
@@ -9991,6 +10013,8 @@ in {
 
   sphinx-autobuild = callPackage ../development/python-modules/sphinx-autobuild { };
 
+  sphinx-basic-ng = callPackage ../development/python-modules/sphinx-basic-ng { };
+
   sphinx-copybutton = callPackage ../development/python-modules/sphinx-copybutton { };
 
   sphinx-inline-tabs = callPackage ../development/python-modules/sphinx-inline-tabs { };
@@ -10267,6 +10291,8 @@ in {
 
   tablib = callPackage ../development/python-modules/tablib { };
 
+  tabula-py = callPackage ../development/python-modules/tabula-py { };
+
   tabulate = callPackage ../development/python-modules/tabulate { };
 
   tabview = callPackage ../development/python-modules/tabview { };
@@ -10456,6 +10482,8 @@ in {
 
   threadpoolctl = callPackage ../development/python-modules/threadpoolctl { };
 
+  threat9-test-bed = callPackage ../development/python-modules/threat9-test-bed { };
+
   three-merge = callPackage ../development/python-modules/three-merge { };
 
   thrift = callPackage ../development/python-modules/thrift { };
@@ -10640,6 +10668,8 @@ in {
 
   trio-asyncio = callPackage ../development/python-modules/trio-asyncio { };
 
+  trio-websocket = callPackage ../development/python-modules/trio-websocket { };
+
   trueskill = callPackage ../development/python-modules/trueskill { };
 
   trustme = callPackage ../development/python-modules/trustme { };
@@ -10756,6 +10786,8 @@ in {
 
   types-pytz = callPackage ../development/python-modules/types-pytz { };
 
+  types-pyyaml = callPackage ../development/python-modules/types-pyyaml { };
+
   types-redis = callPackage ../development/python-modules/types-redis { };
 
   types-requests = callPackage ../development/python-modules/types-requests { };
@@ -10972,6 +11004,10 @@ in {
 
   vallox-websocket-api = callPackage ../development/python-modules/vallox-websocket-api { };
 
+  vapoursynth = callPackage ../development/python-modules/vapoursynth {
+    inherit (pkgs) vapoursynth;
+  };
+
   variants = callPackage ../development/python-modules/variants { };
 
   varint = callPackage ../development/python-modules/varint { };
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix
index e066d191ef2bf..45874d33b0f22 100644
--- a/pkgs/top-level/release-lib.nix
+++ b/pkgs/top-level/release-lib.nix
@@ -146,7 +146,8 @@ rec {
   packagePlatforms = mapAttrs (name: value:
       if isDerivation value then
         value.meta.hydraPlatforms
-          or (value.meta.platforms or [ "x86_64-linux" ])
+          or (lib.subtractLists (value.meta.badPlatforms or [])
+               (value.meta.platforms or [ "x86_64-linux" ]))
       else if value.recurseForDerivations or false || value.recurseForRelease or false then
         packagePlatforms value
       else